Ignore:
Timestamp:
Jul 6, 2008, 8:20:14 PM (16 years ago)
Author:
Kevin Toppenberg
Message:

Uploading from OR_30_258

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  
    1919// LIBID: {1EA4DBF0-3C3B-11CF-810C-00AA00389B71}
    2020// LCID: 0
    21 // Helpfile: 
     21// Helpfile:
    2222// DepndLst:
    2323//   (1) v2.0 stdole, (C:\WINNT\System32\Stdole2.tlb)
     
    148148
    149149end.
     150
     151
     152
     153
     154
     155
  • cprs/branches/foia-cprs/CPRS-Chart/BA/UBACore.pas

    r459 r460  
    1111function  rpcGetPersonalDxList(UserDUZ:int64):TStringList;
    1212function  rpcDeleteFromPersonalDxList(UserDUZ:int64; Dest:TStringList):integer;
    13 procedure rpcSaveBillingData(pBillingData:TStringList);
     13procedure rpcSaveBillingDxEntered;  // save dx enteries regardless of being mandatory....
    1414function  rpcNonBillableOrders(pOrderList: TStringList): TStringList;
    1515function  rpcOrderRequiresDx(pList: TStringList):boolean;
    16 procedure rpcSetBillingAwareSwitch(encProvider: int64; encLocation: integer);
     16procedure rpcSetBillingAwareSwitch(encProvider: int64; pPatientDFN: string);
    1717procedure rpcGetProviderPatientDaysDx(ProviderIEN: string;PatientIEN: string);
    1818procedure rpcGetSC4Orders;    // returns Eligible Treatment Factors for a given patient
    19 procedure rpcSaveBillingDxEntered;  // save dx enteries regardless of being mandatory....
     19
    2020function  rpcTreatmentFactorsActive(pOrderID: string):boolean;
    2121procedure rpcBuildSCIEList(pOrderList: TList);
    2222function  rpcGetUnsignedOrdersBillingData(pOrderList: TStringList):TStringList;
    23 function  rpcRetrieveBillingData(thisOrderID: string; var thisBAData: string) : boolean;
    2423function  rpcRetrieveSelectedOrderInfo(pOrderIDList: TStringList):TStringList;
    2524function  rpcGetTFHintData:TStringList;
    2625procedure rpcSaveNurseConsultOrder(pOrderRec:TStringList);
    2726function  rpcGetBAMasterSwStatus:boolean;
    28 
     27procedure rpcSaveCIDCData(pCIDCList: TStringList);
     28function  rpcIsPatientInsured(pPatientDFN: string):boolean;
     29
     30procedure SaveBillingData(pBillingData:TStringList);
    2931function  OrdersHaveDx(pOrderList:TStringList):boolean;
    3032procedure SetTreatmentFactors(TFactors: string);
     
    3234procedure AttachPLTFactorsToDx(var Dest:String;ProblemRec:string);
    3335procedure BALoadStsFlagsAsIs(StsFlagsIN: string);
    34 function  BADxEntered:boolean;                                //  This will only be executed if bypass switch is set...
     36function  BADxEntered:boolean;  //  main logic to determine if dx has been entered for order that requires dx
    3537function  StripTFactors(FactorsIN: string): string;
    3638function  AddProviderPatientDaysDx(Dest: TStringList; ProviderIEN: string;PatientIEN: string) : TStringList;
     
    5254function  GetConsultFlags(pOrderID:String; pFlagList:TStringList;FlagsAsIs:string):string;
    5355function  SetConsultFlags(pPLFactors: string;pFlagsAsIs: string):string; //  return updated flags.
    54 procedure GetBAStatus(pProvider:int64; pLocation:integer);
     56procedure GetBAStatus(pProvider:int64; pPatientDFN: string);
    5557function  IsICD9CodeActive(ACode: string; LexApp: string; ADate:TFMDateTime = 0): boolean;
    5658function  BuildConsultDxRec(ConsultRec: TBAConsultOrderRec): string;
    5759function  ConvertPIMTreatmentFactors(pTFactors:string):string;
    5860procedure DeleteDCOrdersFromCopiedList(pOrderID:string);
    59 //function  SetOrderIDConsultDxRequired(pOrderID:String):String; // replace orderid with "R" if consult dx required.
    6061procedure UpdateBAConsultOrderList(pDcOrders: TStringList);
    61 
    62 
    63 
     62function  VerifyOrderIdExists(pOrderList: TStringList): TStringList; // removes records without order id
     63function  IsCIDCProvider(encProvider:int64):boolean;
     64function  ProcessProblemTFactors(pText:String):String;
    6465
    6566var
     
    7576
    7677
    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  ---------------------------
     79function BADxEntered:boolean;
     80var
     81  i: integer;
     82  //orderStatus: integer;
     83  x: string;
     84  passList: TStringList;
     85  holdOrderList: TStringList;
     86  thisOrderID: string;
     87  thisRec: string;
     88begin
     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;
     140end;
     141
     142
     143function rpcOrderRequiresDx(pList: TStringList):boolean;
     144var 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;
     183end;
     184
     185
     186// UBAGlobals.NonBillableOrderList must be populated prior to calling this function.
     187// call   rpcNonBillableOrders to populate List.
     188function IsOrderBillable(pOrderID: string):boolean ;
     189var
     190  i: integer;
     191  currOrderID: string;
     192  matchOrderID : string;
     193
     194begin
     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;
     219end;
     220
     221
     222procedure SaveBillingData(pBillingData:TStringList);
    95223var
    96224  RecsToSave: TStringList;
    97   i: integer;
    98   x: string;
    99225begin
    100226  RecsToSave := TStringList.Create;
    101227  RecsToSave.Clear;
     228
    102229  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
    109232  if Assigned(UBAGlobals.BAOrderList) then UBAGlobals.BAOrderList.Clear; // hds00005025
    110233end;
     
    123246      pList.Add(pOrderID);
    124247      Result := FALSE;
    125       // call returns boolean, orders is billable=1 or nonbillable=0 or discontinued = 0
     248     // call returns boolean, orders is billable=1 or nonbillable=0 or discontinued = 0
    126249      tCallV(rList,'ORWDBA1 ORPKGTYP',[pList]);
    127250     //returns boolean value by OrderID - True = billable
     
    158281     currentOrderString := pOrderList.Strings[i];
    159282     currentOrderID := piece(pOrderList.Strings[i],';',1)+ ';1';
     283
    160284     GetBADxListForOrder(baseDxRec, currentOrderID);
    161285     FlagsStatsIn := BAFlagsIN;
     
    174298end;
    175299
    176 
    177 
    178300function  rpcAddToPersonalDxList(UserDUZ:int64; DxCodes:TStringList):boolean;
    179 //input example ien^code = 12345^306.70
    180 begin
    181   Result := (sCallV('ORWDBA2 ADDPDL', [UserDUZ,DxCodes])= '1');
     301//input example ien^code(s) = 12345^306.70^431.22
     302begin
     303   Result := (sCallV('ORWDBA2 ADDPDL', [UserDUZ,DxCodes])= '1');
    182304end;
    183305
     
    198320end;
    199321
    200 function rpcOrderRequiresDx(pList: TStringList):boolean;
    201 var x: string;
    202     i,j: integer;
    203     returnList, updatedList: TStringList;
    204    begin
    205 //   for i := 0 to plist.count-1 do
    206 //      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's
    213     if UBAGlobals.BADeltedOrders.Count > 0 then
    214     begin
    215        for i := 0 to UBAGlobals.BADeltedOrders.Count-1 do
    216           x := UBAGlobals.BADeltedOrders.Strings[i];
    217          for j := 0 to pList.Count-1 do
    218          begin
    219             if x = pList.Strings[j] then
    220             continue   // orderid is removed.. or skipped
    221             else
    222                updatedList.Add(x);
    223          end;
    224     end
    225     else
    226        updatedList.Assign(pList);
    227     // call returns boolean, orders is billable=1 or nonbillable=0 or discontinued = 0
    228     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 do
    232      begin
    233         x:= piece(returnList.Strings[i],'^',1);
    234         if x = BILLABLE_ORDER  then   // change to test BA
    235         begin
    236            updatedBAOrderList.Add(BAOrderList[i]);
    237            Result := TRUE;
    238         end;
    239     end;
    240 end;
    241322// returns value used to bypass Billing Aware if needed.
    242323//  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 ;
     324procedure rpcSetBillingAwareSwitch(encProvider:int64; pPatientDFN: string);
     325begin
     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}
     340end;
     341
     342//  verify CIDC Master Switch and Provider is CIDC Enabled.
     343//  Patient insurance check is bypassed.  (hds7564)
     344function  IsCIDCProvider(encProvider:int64):boolean;
     345begin
     346    Result := False;
     347    if rpcGetBAMasterSwStatus then
     348       if (encProvider <> 0) and PersonHasKey(encProvider, 'PROVIDER') then
     349          Result := True;
     350end;
     351
    256352
    257353function rpcGetBAMasterSwStatus:boolean;
    258354begin
    259    Result := False;
    260355   Result :=  (sCallV('ORWDBA1 BASTATUS', [nil]) = '1');    //  Master switch is set "ON"
    261 
    262 
    263 end;
     356end;
     357
    264358
    265359procedure rpcSaveNurseConsultOrder(pOrderRec:TStringList);
    266360begin
    267     CallV('ORWDBA1 RCVORCI',[pOrderRec]);
    268 end;
     361    rpcSaveCIDCData(pOrderRec);
     362end;
     363
    269364
    270365procedure rpcSaveBillingDxEntered;  // if not mandatory and user enters dx.
     
    295390        baseDxRec := nil;
    296391        baseDxRec := TBADxRecord.Create;
    297        InitializeNewDxRec(baseDxRec);
    298 
    299   try
     392        InitializeNewDxRec(baseDxRec);
     393
     394       try
    300395       for i := 0 to BAOrderList.Count-1 do
    301396       begin
     
    305400          if baseDxRec.FBADxCode <> '' then
    306401          begin
    307                 NewBillingList.Add(currentOrderString +'^'+ baseDxRec.FBADxCode +'^'+ baseDxRec.FBASecDx1+
     402             NewBillingList.Add(currentOrderString +'^'+ baseDxRec.FBADxCode +'^'+ baseDxRec.FBASecDx1+
    308403                                '^'+ baseDxRec.FBASecDx2+'^'+ baseDxRec.FBASecDx3);
    309404          end;
    310405       end;
    311   except
    312      on EListError do
    313      begin
    314         {$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;
    316411     end;
    317412  end;
    318413
    319    if NewBillingList.Count > 0 then
    320       CallV('ORWDBA1 RCVORCI',[NewBillingList]); //1.3.10
    321 
     414   rpcSaveCIDCData(NewBillingList);
    322415   if Assigned(NewBillingList) then FreeAndNil(NewBillingList);
    323  //  if Assigned(UBAGlobals.BAConsultOrdersRequireDx) then UBAGlobals.BAConsultOrdersRequireDx.Clear;
    324 
    325416  end;
    326417end;
     
    335426
    336427procedure rpcGetProviderPatientDaysDx(ProviderIEN: string;PatientIEN: string);
    337 var i:integer;
    338     x: string;
     428var
    339429    tmplst: TStringList;
    340430begin
     
    351441function rpcGetTFHintData:TStringList;
    352442begin
    353   Result := nil;
    354443  tCallv(BATFHints,'ORWDBA3 HINTS', [nil]);
    355444  Result := BATFHints;
     
    366455    rList.Clear;
    367456    NonBillableOrderList.Clear;
    368     Result := NonBillableOrderList;
    369457    // call returns boolean, orders is billable=1 or nonbillable=0 or discontinued = 0
    370458    tCallV(rList,'ORWDBA1 ORPKGTYP',[pOrderList]);
     
    396484      end;
    397485      // 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]);
    399487
    400488     for i := 0 to rList.Count-1 do
     
    403491           OrderListSCEI.Add(OrderIDList.Strings[i]);
    404492   end;
     493end;
     494
     495procedure rpcSaveCIDCData(pCIDCList: TStringList);
     496var
     497 CIDCList :TStringList;
     498begin
     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);
     509end;
     510
     511function  rpcIsPatientInsured(pPatientDFN: string):boolean;
     512begin
     513   Result := (sCallV('ORWDBA7 ISWITCH',[pPatientDFN]) = '1');
     514     
    405515end;
    406516
     
    433543             if tempDxRec.FBADxCode = '' then
    434544                begin
    435                 Result := FALSE;
    436                 Break;
     545                   Result := FALSE;
     546                   Break;
    437547                end;
    438548          end;
     
    452562
    453563
    454 function BADxEntered:boolean;
    455 var
    456   i, orderStatus: integer;
    457   x: string;
    458   passList: TStringList;
    459   holdOrderList: TStringList;
    460   thisOrderID: string;
    461   thisRec: string;
    462 begin
    463    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 continue
    472    // if YES, check BADxList for orders with DX enteries.
    473    // if ok then create data string pass to M via RPC
    474 
    475    orderStatus := 0;
    476    Result := true;
    477 
    478   try
    479    for i := 0 to BAOrderList.Count-1 do
    480    begin
    481          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=DISCONTINUE
    486          if orderStatus = integer(BAOK2SIGN) then
    487          begin
    488             passList.Add(piece(x,';',1));
    489             holdOrderList.Add(x);//  place holder for orders that can be signed!
    490          end;
    491    end;
    492   except
    493      on EListError do
    494         begin
    495         {$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 processing
    501    holdOrderList.Clear; // CQ5025
    502      //call with passList determine if LRMP
    503 
    504    if rpcOrderRequiresDx(passList) then
    505       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 entry
    510       rpcSaveBillingDxEntered;        // save billing data for orders that may have dx enteries
    511       Exit;                        //to do.  clean this up... when time permitts
    512       end
    513    else
    514       begin
    515       if OrdersHaveDx(UBAGlobals.BAOrderList) then
    516          rpcSaveBillingData(UBAGlobals.BAOrderList)
    517       else
    518          begin
    519             Result := FALSE;
    520             Exit;
    521          end;
    522      end;
    523 end;
    524564
    525565
     
    557597    thisRec.FBASC                := Piece(ProblemRec,U,5);
    558598    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
    562608  with thisRec do
    563609  begin
     
    571617           TFResults := ( FBADxCode + U  + FBADxText );
    572618  end;
    573      
     619
    574620    Dest := TFResults;
    575621end;
     
    657703var strDxCode,strDxName:string;
    658704begin
    659     Result := '';
    660     strDxCode := Piece(FactorsIN,U,2);
    661     strDxName := Piece(FactorsIN,'(',1);
    662     Result := (strDxName + U + strDxCode);
     705   Result := '';
     706   strDxCode := Piece(FactorsIN,U,2);
     707   strDxName := Piece(FactorsIN,'(',1);
     708   Result := (strDxName + U + strDxCode);
    663709end;
    664710
     
    684730
    685731    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 var
    692   i: integer;
    693   currOrderID: string;
    694   matchOrderID : string;
    695 
    696 begin
    697   Result := TRUE;    //  = Billable
    698   currOrderID := PrepOrderID(pOrderID);
    699   if Piece(pOrderID,';',2) = DISCONTINUED_ORDER THEN
    700   begin
    701      Result := FALSE;
    702      Exit;
    703   end;
    704   try
    705      for i := 0 to UBAGlobals.NonBillableOrderList.Count -1 do
    706      begin
    707         matchOrderID := PrepOrderID( (Piece(UBAGlobals.NonBillableOrderList.Strings[i],U,1)) );
    708         if currOrderID = matchOrderID  then
    709            Result := FALSE  //= Non Billable
    710      end;
    711   except
    712      on EListError do
    713         begin
    714         {$ifdef debug}ShowMessage('EListError in UBACore.IsOrderBillable()');{$endif}
    715         raise;
    716         end;
    717   end;
    718732end;
    719733
     
    748762     // this change may have an impact on response time??????
    749763     // change from save orders with dx to save all. 06/24/04
    750   // /  if not  clear treatment factors for order is non cidc
     764     // /  if not  clear treatment factors for order is non cidc
    751765   uBAGlobals.UnsignedOrders.Add(pOrderRec);
    752766
     
    764778   if Assigned(rList) then rList.Clear;
    765779   if Assigned(newList) then newList.Clear;
    766    
    767      for i := 0 to pOrderIDList.Count-1 do
    768      begin
    769         newList.Add(Piece(pOrderIDList.Strings[i],';',1));
    770         x := newlist.strings[i];
    771      end;
     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;
    772786   if newList.Count > 0 then
    773787      tCallV(rList,'ORWDBA4 GETTFCI',[newList]);
     
    781795   thisList: TStringList;
    782796   rList: TStringList;
    783    i:integer;
    784    x: string;
    785797begin
    786798
     
    789801  if Assigned(rList) then rList.Clear;
    790802  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
    794804end;
    795805
     
    980990function  IsAllOrdersNA(pOrderList:TStringList):boolean;
    981991var
    982   i,j:integer;
     992  i:integer;
    983993  rList: TStringList;
    984994begin
     
    986996  if Assigned(rList) then rList.Clear;
    987997  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 
    1004999  // call returns boolean, orders is billable=1 or nonbillable=0 or discontinued = 0
    10051000  tCallV(rList,'ORWDBA1 ORPKGTYP',[pOrderList]);
     
    10971092               if pos( '(', thisString) > 0 then
    10981093                  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);
    11011096                  end
    11021097               else
    11031098                   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);
    11061101                   end
    11071102               end
     
    11111106                  if pos( '(', thisString) > 0 then
    11121107                     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);
    11151110                     end
    11161111                  else
    11171112                     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);
    11201115                     end
    11211116                  end
     
    11251120                     if pos( '(', thisString) > 0 then
    11261121                        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);
    11291124                        end
    11301125                     else
    11311126                        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);
    11341129                        end;
    11351130                     end;
     
    12061201                dxRec := BuildConsultDxRec(ConsultOrderRec);
    12071202                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);
    12091206                orderList.Clear;
    1210                 if strLen(PChar(dxRec)) > 0 then
    1211                    orderList.Add(RecOut.FExistingRecordID +TfFlags + '^'+ BuildConsultDxRec(ConsultOrderRec) )
    1212                 else
     1207              //  if strLen(PChar(dxRec)) > 0 then
     1208              //     orderList.Add(RecOut.FExistingRecordID +TfFlags + '^'+ BuildConsultDxRec(ConsultOrderRec) )
     1209              //  else
    12131210                   orderList.Add(RecOut.FExistingRecordID +TfFlags);
    1214                 rpcSaveBillingData(OrderList);  //  save unsigned info to be displayed when re
     1211                SaveBillingData(OrderList);  //  save unsigned info to be displayed when re
    12151212             end;
    12161213          end;
     
    12411238
    12421239begin
    1243    strFlagsAsIs  := pFlagsAsIs; // flags from pims
    1244    strTFactors   :=  pPLFactors;  // value selected from problem list
    1245    strFlagsOut   := '';   // flags updated with selected values from problem list
    1246    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 := '';
    12481245
    12491246    UBAGlobals.SC  := Copy(x,1,1);
     
    12791276          UBAGlobals.MST := 'C';
    12801277
     1278    if UBAGlobals.HNC <> 'N' then
     1279       if StrPos(PChar(strTFactors),PChar(HEAD_NECK_CANCER)) <> nil then
     1280          UBAGlobals.HNC := 'C';
     1281
    12811282    if UBAGlobals.CV <>'N' then
    12821283       if StrPos(PChar(strTFactors),PChar(COMBAT_VETERAN)) <> nil then
     
    12891290end;
    12901291
    1291 procedure GetBAStatus(pProvider:int64; pLocation:integer);
     1292procedure GetBAStatus(pProvider:int64; pPatientDFN: string);
    12921293begin
    12931294  // sets global switch, based in value returned from server.
    12941295  // True ->  Billing Aware Switch ON. else OFF
    12951296
    1296   UBACore.rpcSetBillingAwareSwitch(pProvider,pLocation);
     1297  UBACore.rpcSetBillingAwareSwitch(pProvider,pPatientDFN);
    12971298
    12981299  if Assigned(UBAGlobals.BAPCEDiagList) then UBAGlobals.BAPCEDiagList.Clear;
     
    13741375   Result := (strSC + strAO + strIR + strEC + strMST + strHNC + strCV);
    13751376end;
     1377
     1378
    13761379// Delete dc'd orders from BACopiedOrderList to keep things in sync.
    13771380procedure DeleteDCOrdersFromCopiedList(pOrderID:string);
     
    13961399procedure UpdateBAConsultOrderList(pDcOrders: TStringList);
    13971400var
    1398  AnOrder,x: string;
     1401 x: string;
    13991402 var i,j: integer;
    14001403 holdList : TStringList;
     
    14251428end;
    14261429
    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
     1431function  VerifyOrderIdExists(pOrderList: TStringList): TStringList;
     1432var
     1433  goodList: TStringList;
     1434  tOrderID: integer;
     1435 i: integer;
     1436begin
     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;
     1450end;
     1451
     1452// parse string return Treatment Factors when text inlcudes multiple "(())"
     1453//HDS8409
     1454function  ProcessProblemTFactors(pText:String):String;
     1455var AText1,x: string;
     1456    i,j: integer;
     1457begin
     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;
     1475end;
    14451476
    14461477end.
  • cprs/branches/foia-cprs/CPRS-Chart/BA/UBAGlobals.pas

    r459 r460  
    316316   sourceOrderID: TStringList;
    317317   targetOrderIDLst: TStringList;
    318    i:integer;
    319    tempOrderStr:string;
    320318begin
    321319     //Retrieve TF's/CI's from SOURCE Order
     
    371369   if UBAGlobals.tempDxNodeExists(thisOrderID) then
    372370     begin
    373      thisRec := TBADxRecord.Create;
    374371     if Assigned(tempDxList) then
    375372
     
    523520begin
    524521  Result := 0;
    525   thisRec := TBADxRecord.Create;
    526522
    527523   if Assigned(tempDxList) then
     
    580576  selectedOrders: smallint;
    581577begin
    582   Result := 0;
    583578  selectedOrders := 0;
    584579
     
    762757   if UBAGlobals.tempDxNodeExists(thisOrderID) then
    763758     begin
    764      thisRec := TBADxRecord.Create;
    765759
    766760     if Assigned(tempDxList) then
     
    878872  Result := false;
    879873
    880   thisRec := TBADxRecord.Create;
    881874     try
    882875        for i := 0 to tempDxList.Count - 1 do
     
    909902  i: integer;
    910903begin
    911   thisRec := TBADxRecord.Create;
    912904
    913905  try
     
    10131005// StringList used to store DX Codes selected from Encounter Form
    10141006var
    1015   BAVisitStr,BADxIEN: string;
    1016   BAFileCat    : char;
    1017   BAFileDateTimeStr: string;
     1007  BADxIEN: string;
    10181008  BAProviderStr, BAProviderName : string;
    1019   PList: TStringList;
    10201009  AList: TStringList;
    10211010begin
     
    11061095begin
    11071096  Result := false;
    1108   thisRec := TBADxRecord.Create;
    11091097  if Assigned(tempDxList) then
    11101098     try
  • cprs/branches/foia-cprs/CPRS-Chart/BA/fBALocalDiagnoses.dfm

    r459 r460  
    2121  PixelsPerInch = 96
    2222  TextHeight = 13
    23   object lblPatientName: TStaticText
    24     Left = 50
    25     Top = 3
    26     Width = 65
    27     Height = 17
    28     Caption = 'PatientName'
    29     TabOrder = 3
    30     TabStop = True
    31   end
    3223  object pnlTop: TPanel
    3324    Left = 0
    3425    Top = 0
    3526    Width = 612
    36     Height = 112
     27    Height = 96
    3728    Align = alTop
    3829    Caption = 'pnlTop'
     
    4031    DesignSize = (
    4132      612
    42       112)
     33      96)
    4334    object lbOrders: TListBox
    44       Left = 8
    45       Top = 24
     35      Left = 7
     36      Top = 25
    4637      Width = 599
    4738      Height = 69
     
    4940      IntegralHeight = True
    5041      ItemHeight = 13
    51       TabOrder = 1
     42      TabOrder = 2
    5243      OnMouseMove = lbOrdersMouseMove
    5344    end
    5445    object ORStaticText1: TORStaticText
    55       Left = 8
     46      Left = 216
    5647      Top = 8
    5748      Width = 169
     
    5950      AutoSize = False
    6051      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
    6169      TabOrder = 0
    6270      TabStop = True
    63       OnEnter = ORStaticText1Enter
    64       OnExit = ORStaticText1Exit
    6571    end
    6672  end
    6773  object pnlMain: TPanel
    6874    Left = 0
    69     Top = 112
     75    Top = 96
    7076    Width = 612
    71     Height = 243
     77    Height = 259
    7278    Align = alClient
    7379    TabOrder = 1
  • cprs/branches/foia-cprs/CPRS-Chart/BA/fBALocalDiagnoses.pas

    r459 r460  
    1818     end;
    1919  TfrmBALocalDiagnoses = class(TfrmAutoSz)
    20     lblPatientName: TStaticText;
    2120    pnlTop: TPanel;
    2221    lbOrders: TListBox;
     
    3837    ORStaticText3: TORStaticText;
    3938    ORStaticText4: TORStaticText;
     39    lblPatientName: TStaticText;
    4040    procedure buOKClick(Sender: TObject);
    4141    procedure buCancelClick(Sender: TObject);
     
    798798procedure TfrmBALocalDiagnoses.AddToProblemList;
    799799var
    800    i,j: integer;
    801    tempCode, passCode,x: string;
     800   i: integer;
     801   tempCode, passCode: string;
    802802   NewList: TStringList;
    803803   PatientInfo:string;
  • cprs/branches/foia-cprs/CPRS-Chart/BA/fBAOptionsDiagnoses.dfm

    r459 r460  
    3030      TabOrder = 0
    3131      object Splitter1: TSplitter
    32         Left = 468
     32        Left = 458
    3333        Top = 26
    3434        Width = -3
     
    3737      end
    3838      object Splitter2: TSplitter
    39         Left = 193
     39        Left = 169
    4040        Top = 26
    4141        Width = 7
     
    4444      end
    4545      object Splitter3: TSplitter
    46         Left = 467
     46        Left = 457
    4747        Top = 26
    4848        Width = 1
     
    5050        Cursor = crHSplit
    5151      end
    52       object Splitter4: TSplitter
    53         Left = 385
    54         Top = 26
    55         Width = 2
    56         Height = 463
    57         Cursor = crHSplit
    58       end
    5952      object Splitter5: TSplitter
    60         Left = 465
     53        Left = 455
    6154        Top = 26
    6255        Width = 2
     
    112105        Left = 1
    113106        Top = 26
    114         Width = 192
     107        Width = 168
    115108        Height = 463
    116109        Align = alLeft
     
    126119          Left = 0
    127120          Top = 17
    128           Width = 192
     121          Width = 161
    129122          Height = 446
    130           Align = alClient
    131123          Font.Charset = DEFAULT_CHARSET
    132124          Font.Color = clWindowText
     
    148140          Left = 0
    149141          Top = 0
    150           Width = 192
     142          Width = 168
    151143          Height = 17
    152144          DragReorder = False
     
    161153      end
    162154      object Panel4: TPanel
    163         Left = 200
    164         Top = 26
    165         Width = 185
     155        Left = 176
     156        Top = 26
     157        Width = 201
    166158        Height = 463
    167159        Align = alLeft
     
    177169          Left = 0
    178170          Top = 17
    179           Width = 185
     171          Width = 201
    180172          Height = 446
    181           Align = alLeft
    182           Anchors = [akTop, akRight, akBottom]
     173          Align = alClient
    183174          ItemHeight = 13
    184175          MultiSelect = True
    185176          ParentShowHint = False
    186177          ShowHint = True
     178          Sorted = True
    187179          TabOrder = 0
    188180          OnClick = lbDiagnosisChange
     
    196188          Left = 0
    197189          Top = 0
    198           Width = 185
     190          Width = 201
    199191          Height = 17
    200192          DragReorder = False
     
    209201      end
    210202      object Panel5: TPanel
    211         Left = 465
    212         Top = 26
    213         Width = 247
     203        Left = 455
     204        Top = 26
     205        Width = 257
    214206        Height = 463
    215207        Align = alClient
     
    220212          Left = 0
    221213          Top = 17
    222           Width = 247
     214          Width = 257
    223215          Height = 446
    224216          Align = alClient
     
    229221          ParentShowHint = False
    230222          ShowHint = True
     223          Sorted = True
    231224          TabOrder = 0
    232225          OnClick = lbPersonalDxClick
     
    238231          Left = 0
    239232          Top = 0
    240           Width = 247
     233          Width = 257
    241234          Height = 17
    242235          DragReorder = False
     
    277270      end
    278271      object Panel7: TPanel
    279         Left = 387
     272        Left = 377
    280273        Top = 26
    281274        Width = 78
  • cprs/branches/foia-cprs/CPRS-Chart/BA/fBAOptionsDiagnoses.pas

    r459 r460  
    2929    btnAdd: TBitBtn;
    3030    btnDelete: TBitBtn;
    31     Splitter4: TSplitter;
    3231    Splitter5: TSplitter;
    3332    Button1: TButton;
     
    6564    procedure ListDiagnosesCodes(Section: String);
    6665    procedure InactiveICDNotification;
     66    procedure SyncDxDeleteList;
     67    procedure SyncDxNewList;
    6768 
    6869  public
     
    123124    LoadEncounterDx;
    124125    ListDiagnosesSections(lbSections.Items);
    125     lbPersonalDx.Items := rpcGetPersonalDxList(User.DUZ);
     126  //  lbPersonalDx.Items := rpcGetPersonalDxList(User.DUZ);
     127    LoadPersonalDxList;
    126128    btnOK.Enabled := False;
    127129    hdrCntlDx.Sections[0].Width := lbPersonalDX.Width;
    128130    hdrCntlDxSections.Sections[0].Width := lbSections.Width;
    129131    hdrCntlDxAdd.Sections[0].Width := lbDiagnosis.Width;
    130     lbPersonalDx.Sorted := false;
    131     lbPersonalDx.Sorted := True;
     132  //  lbPersonalDx.Sorted := false;
     133 //  lbPersonalDx.Sorted := True;
    132134    lbPersonalDX.Repaint;
    133135end;
     
    374376procedure TfrmBAOptionsDiagnoses.btnDeleteClick(Sender: TObject);
    375377var
    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;
     379begin
     380  inherited;
     381  SyncDxDeleteList;
     382  SyncDxNewList;
    390383 // delete selected dx from listbox.
    391384 with lbPersonalDX do
     
    599592end;
    600593
     594procedure TfrmBAOptionsDiagnoses.SyncDxDeleteList;
     595var
     596 i: integer;
     597 delDxCode: string;
     598begin
     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;
     608end;
     609
     610procedure TfrmBAOptionsDiagnoses.SyncDxNewList;
     611var
     612i,j :integer;
     613begin
     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;
     629end;
     630
     631
    601632initialization
    602633  uAddToPDL := 0;
  • cprs/branches/foia-cprs/CPRS-Chart/CPRSChart.cfg

    r459 r460  
    2525-$YD
    2626-$Z1
     27-GD
    2728-cg
    2829-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
     
    3233-$M32768,1048576
    3334-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  
    3232UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
    3333[Linker]
    34 MapFile=0
     34MapFile=3
    3535OutputObjs=0
    3636ConsoleApp=1
     
    4242ExeDescription=
    4343[Directories]
    44 OutputDir=..\CPRS-Chart
    45 UnitOutputDir=..\CPRS-Chart\DCU
    46 PackageDLLOutputDir=..\Packages
    47 PackageDCPOutputDir=..\Packages
    48 SearchPath=$(DELPHI)\Lib\Debug;..\CPRS-Lib
     44OutputDir=C:\Vista\cprs\OR_3_215V26\CPRS-Chart
     45UnitOutputDir=C:\Vista\cprs\OR_3_215V26\CPRS-Chart\DCU
     46PackageDLLOutputDir=C:\Vista\cprs\OR_3_215V26\Packages
     47PackageDCPOutputDir=C:\Vista\cprs\OR_3_215V26\Packages
     48SearchPath=$(DELPHI)\Lib\Debug;C:\Vista\cprs\OR_3_215V26\CPRS-Lib
    4949Packages=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
    5050Conditionals=
     
    6666MajorVer=1
    6767MinorVer=0
    68 Release=25
    69 Build=42
     68Release=26
     69Build=68
    7070Debug=0
    7171PreRelease=0
     
    7777[Version Info Keys]
    7878CompanyName=Department of Veterans Affairs
    79 FileDescription=5/31/2005
    80 FileVersion=1.0.25.42
    81 InternalName=1.0.25.42 server required
     79FileDescription=6/5/2006
     80FileVersion=1.0.26.68
     81InternalName=1.0.26.68 server required
    8282LegalCopyright=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.
    8383LegalTrademarks=
    84 OriginalFilename=Patch 195
     84OriginalFilename=Patch 215
    8585ProductName=Computerized Patient Record System
    8686ProductVersion=1.0.0.0
    87 Comments=Version 1.0.25.42
     87Comments=Version 1.0.26.68
    8888[HistoryLists\hlUnitAliases]
    8989Count=1
    9090Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
    9191[HistoryLists\hlSearchPath]
    92 Count=2
    93 Item0=$(DELPHI)\Lib\Debug;..\CPRS-Lib
    94 Item1=..\CPRS-Lib
     92Count=1
     93Item0=$(DELPHI)\Lib\Debug;C:\Vista\cprs\OR_3_215V26\CPRS-Lib
    9594[HistoryLists\hlUnitOutputDirectory]
    9695Count=1
    97 Item0=..\CPRS-Chart\DCU
     96Item0=C:\Vista\cprs\OR_3_215V26\CPRS-Chart\DCU
    9897[HistoryLists\hlOutputDirectorry]
    9998Count=1
    100 Item0=..\CPRS-Chart
     99Item0=C:\Vista\cprs\OR_3_215V26\CPRS-Chart
    101100[HistoryLists\hlBPLOutput]
    102101Count=1
    103 Item0=..\Packages
     102Item0=C:\Vista\cprs\OR_3_215V26\Packages
    104103[HistoryLists\hlDCPOutput]
    105104Count=1
    106 Item0=..\Packages
     105Item0=C:\Vista\cprs\OR_3_215V26\Packages
  • cprs/branches/foia-cprs/CPRS-Chart/CPRSChart.dpr

    r459 r460  
    22
    33uses
     4  SQASrvr,
     5  ShareMem,
    46  Forms,
    57  ORSystem,
     
    169171  uOrders in 'Orders\uOrders.pas',
    170172  fOCSession in 'Orders\fOCSession.pas' {frmOCSession},
    171   fODAllgy in 'Orders\fODAllgy.pas',
    172173  fODAuto in 'Orders\fODAuto.pas',
    173174  fODBase in 'Orders\fODBase.pas' {frmODBase},
     
    288289  UBACore in 'BA\UBACore.pas',
    289290  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';
    291303
    292304{$R *.TLB}
     
    310322    Application.CreateForm(TdmodShared, dmodShared);
    311323  Application.CreateForm(TfrmFrame, frmFrame);
     324  Application.CreateForm(TfrmSearchStop, frmSearchStop);
    312325  frmSplash.Free;                               // close & free splash screen
    313326    Application.Run;
  • cprs/branches/foia-cprs/CPRS-Chart/CPRSChart.drc

    r459 r460  
    99*/
    1010
    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
    365475#define SysConst_SInvalidInteger 65520
    366476#define SysConst_SInvalidFloat 65521
    367 #define SysConst_SInvalidTime 65522
    368 #define SysConst_SInvalidDateTime 65523
    369 #define SysConst_STimeEncodeError 65524
    370 #define SysConst_SDateEncodeError 65525
    371 #define SysConst_SOutOfMemory 65526
    372 #define SysConst_SInOutError 65527
    373 #define SysConst_SFileNotFound 65528
    374 #define SysConst_SInvalidFilename 65529
    375 #define SysConst_STooManyOpenFiles 65530
    376 #define SysConst_SAccessDenied 65531
    377 #define SysConst_SEndOfFile 65532
    378 #define SysConst_SDiskFull 65533
    379 #define SysConst_SInvalidInput 65534
    380 #define SysConst_SDivByZero 65535
     477#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
    381491STRINGTABLE
    382492BEGIN
    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"
    392498        VDBConsts_SFirstRecord, "First record"
    393499        VDBConsts_SPriorRecord, "Prior record"
     
    399505        VDBConsts_SPostEdit,    "Post edit"
    400506        VDBConsts_SCancelEdit,  "Cancel edit"
     507        VDBConsts_SRefreshRecord,       "Refresh data"
     508        VDBConsts_SRemoteLogin, "Remote Login"
     509        TeeConst_TeeMsg_FunctionAdd,    "Add"
     510        TeeConst_TeeMsg_FunctionSubtract,       "Subtract"
    401511        TeeConst_TeeMsg_FunctionMultiply,       "Multiply"
    402512        TeeConst_TeeMsg_FunctionDivide, "Divide"
     
    413523        TeeConst_TeeMsg_ValuesBar,      "Bar"
    414524        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"
    417547        TeeConst_TeeMsg_GalleryPie,     "Pie"
    418548        TeeConst_TeeMsg_GalleryFastLine,        "Fast Line"
     
    425555        TeeConst_TeeMsg_PieSample6,     "Keyboards"
    426556        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"
    433563        TeeConst_TeeMsg_AxisLogBase,    "Axis Logarithmic Base should be >= 2"
    434564        TeeConst_TeeMsg_MaxPointsPerPage,       "MaxPointsPerPage must be >= 0"
     
    441571        TeeConst_TeeMsg_DefValueFormat, "#,##0.###"
    442572        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"
    452582        TeeConst_TeeMsg_LegendTopPos,   "Top Legend Position must be between 0 and 100 %"
    453583        TeeConst_TeeMsg_LegendFirstValue,       "First Legend Value must be > 0"
     
    457587        TeeConst_TeeMsg_FillSample,     "FillSampleValues NumValues must be > 0"
    458588        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"
    465688        ComStrs_sDateTimeMin,   "Date is less than minimum of %s"
    466689        ComStrs_sFailSetCalDateTime,    "Failed to set calendar date or time"
     
    476699        ComConst_SNoMethod,     "Method '%s' not supported by automation object"
    477700        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 not installed"
    480         ComConst_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"
    481704        ComStrs_sTabFailDelete, "Failed to delete tab at index %d"
    482705        ComStrs_sTabFailRetrieve,       "Failed to retrieve tab at index %d"
     
    492715        ComStrs_sRichEditSaveFail,      "Failed to Save Stream"
    493716        ComStrs_sUDAssociated,  "%s is already associated with %s"
    494         ComStrs_sPageIndexError,        "%d is an invalid PageIndex value.  PageIndex must be between 0 and %d"
    495         ComStrs_sInvalidComCtl32,       "This control requires version 4.70 or greater of COMCTL32.DLL"
    496         ComStrs_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"
    497720        Consts_SNoDefaultPrinter,       "There is no default printer currently selected"
    498721        Consts_SDuplicateMenus, "Menu '%s' is already being used by another form"
     
    508731        HelpIntfs_hNoTableOfContents,   "Unable to find a Table of Contents"
    509732        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         ComStrs_sTabFailClear,  "Failed to clear tab control"
     733        Consts_SmkcPgDn,        "PgDn"
     734        Consts_SmkcEnd, "End"
     735        Consts_SmkcHome,        "Home"
    513736        Consts_SmkcLeft,        "Left"
    514737        Consts_SmkcUp,  "Up"
     
    524747        Consts_SInvalidClipFmt, "Invalid clipboard format"
    525748        Consts_SIconToClipboard,        "Clipboard does not support Icons"
    526         Consts_SCannotOpenClipboard,    "Cannot open clipboard"
    527         Consts_SInvalidMemoSize,        "Text exceeds memo capacity"
    528         Consts_SInvalidPrinterOp,       "Operation not supported on selected printer"
     749        Consts_SMsgDlgNo,       "&No"
     750        Consts_SMsgDlgOK,       "OK"
     751        Consts_SMsgDlgCancel,   "Cancel"
    529752        Consts_SMsgDlgHelp,     "&Help"
    530753        Consts_SMsgDlgAbort,    "&Abort"
     
    540763        Consts_SmkcSpace,       "Space"
    541764        Consts_SmkcPgUp,        "PgUp"
    542         Consts_SmkcPgDn,        "PgDn"
    543         Consts_SmkcEnd, "End"
    544         Consts_SmkcHome,        "Home"
     765        Consts_SIgnoreButton,   "&Ignore"
     766        Consts_SRetryButton,    "&Retry"
     767        Consts_SAbortButton,    "Abort"
    545768        Consts_SAllButton,      "&All"
    546769        Consts_SCannotDragForm, "Cannot drag a form"
     
    556779        Consts_SMsgDlgConfirm,  "Confirm"
    557780        Consts_SMsgDlgYes,      "&Yes"
    558         Consts_SMsgDlgNo,       "&No"
    559         Consts_SMsgDlgOK,       "OK"
    560         Consts_SMsgDlgCancel,   "Cancel"
     781        Consts_SMenuReinserted, "Menu inserted twice"
     782        Consts_SMenuNotFound,   "Sub-menu is not in menu"
     783        Consts_SNoTimers,       "Not enough timers available"
    561784        Consts_SNotPrinting,    "Printer is not currently printing"
    562785        Consts_SPrinting,       "Printing in progress"
     
    572795        Consts_SHelpButton,     "&Help"
    573796        Consts_SCloseButton,    "&Close"
    574         Consts_SIgnoreButton,   "&Ignore"
    575         Consts_SRetryButton,    "&Retry"
    576         Consts_SAbortButton,    "Abort"
     797        Consts_SInvalidImageList,       "Invalid ImageList"
     798        Consts_SReplaceImage,   "Unable to Replace Image"
     799        Consts_SImageIndexError,        "Invalid ImageList Index"
    577800        Consts_SImageReadFail,  "Failed to read ImageList data from stream"
    578801        Consts_SImageWriteFail, "Failed to write ImageList data to stream"
     
    588811        Consts_SPropertyOutOfRange,     "%s property out of range"
    589812        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"
    593816        RTLConsts_SThreadCreateError,   "Thread creation error: %s"
    594817        RTLConsts_SThreadError, "Thread Error: %s (%d)"
     
    604827        Consts_SNoCanvasHandle, "Canvas does not allow drawing"
    605828        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"
    609832        RTLConsts_SListCapacityError,   "List capacity out of bounds (%d)"
    610833        RTLConsts_SListCountError,      "List count out of bounds (%d)"
     
    620843        RTLConsts_SSortedListError,     "Operation not allowed on sorted list"
    621844        RTLConsts_STooManyDeleted,      "Too many rows or columns deleted"
    622         RTLConsts_SUnknownGroup,        "%s not in a class registration group"
    623         RTLConsts_SUnknownProperty,     "Property %s does not exist"
    624         RTLConsts_SWriteError,  "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"
    625848        RTLConsts_SDuplicateString,     "String list does not allow duplicates"
    626849        RTLConsts_SFCreateError,        "Cannot create file %s"
     
    636859        RTLConsts_SInvalidPropertyPath, "Invalid property path"
    637860        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"
    641864        SysConst_SLongDayNameSun,       "Sunday"
    642865        SysConst_SLongDayNameMon,       "Monday"
     
    652875        RTLConsts_SCheckSynchronizeError,       "CheckSynchronize called from thread $%x, which is NOT the main thread"
    653876        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"
    657880        SysConst_SLongMonthNameApr,     "April"
    658881        SysConst_SLongMonthNameMay,     "May"
     
    668891        SysConst_SShortDayNameTue,      "Tue"
    669892        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"
    673895        SysConst_SUnkOSError,   "A call to an OS function failed"
     896        SysConst_SNL,   "Application is not licensed to use this feature"
    674897        SysConst_SShortMonthNameJan,    "Jan"
    675898        SysConst_SShortMonthNameFeb,    "Feb"
     
    684907        SysConst_SShortMonthNameNov,    "Nov"
    685908        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"
    689911        SysConst_SInvalidVarNullOp,     "Invalid NULL variant operation"
    690912        SysConst_SVarTypeCouldNotConvert,       "Could not convert variant of type (%s) into type (%s)"
     
    701923        SysConst_SAssertError,  "%s (%s, line %d)"
    702924        SysConst_SAbstractError,        "Abstract Error"
    703         SysConst_SModuleAccessViolation,        "Access violation at address %p in module '%s'. %s of address %p"
    704         SysConst_SOSError,      "System Error.  Code: %d.\r\n%s"
     925        SysConst_SExceptTitle,  "Application Error"
     926        SysConst_SInvalidFormat,        "Format '%s' invalid or incompatible with argument"
    705927        SysConst_SArgumentMissing,      "No argument for format '%s'"
    706928        SysConst_SDispatchError,        "Variant method calls not supported"
     
    717939        SysConst_SVarTypeOutOfRange,    "Custom variant type (%.4x) is out of range"
    718940        SysConst_SVarTypeAlreadyUsed,   "Custom variant type (%.4x) already used by %s"
    719         SysConst_SVarTypeNotUsable,     "Custom variant type (%.4x) is not usable"
    720         SysConst_SVarTypeTooManyCustom, "Too many custom variant types have been registered"
     941        SysConst_SInvalidInput, "Invalid numeric input"
     942        SysConst_SDivByZero,    "Division by zero"
    721943        SysConst_SRangeError,   "Range check error"
    722944        SysConst_SIntOverflow,  "Integer overflow"
     
    733955        SysConst_SOperationAborted,     "Operation aborted"
    734956        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"
    737957        SysConst_SInvalidInteger,       "'%s' is not a valid integer value"
    738958        SysConst_SInvalidFloat, "'%s' is not a valid floating point value"
     959        SysConst_SInvalidDate,  "'%s' is not a valid date"
    739960        SysConst_SInvalidTime,  "'%s' is not a valid time"
    740961        SysConst_SInvalidDateTime,      "'%s' is not a valid date and time"
     962        SysConst_SInvalidTimeStamp,     "'%d.%d' is not a valid timestamp"
    741963        SysConst_STimeEncodeError,      "Invalid argument to time encode"
    742964        SysConst_SDateEncodeError,      "Invalid argument to date encode"
     
    749971        SysConst_SEndOfFile,    "Read beyond end of file"
    750972        SysConst_SDiskFull,     "Disk full"
    751         SysConst_SInvalidInput, "Invalid numeric input"
    752         SysConst_SDivByZero,    "Division by zero"
    753973END
    754974
  • cprs/branches/foia-cprs/CPRS-Chart/Consults/fConsultAct.dfm

    r459 r460  
    107107        TabOrder = 3
    108108        OnNeedData = NewPersonNeedData
     109        CharsNeedMatch = 1
    109110      end
    110111      object cboUrgency: TORComboBox
     
    129130        SynonymChars = '<>'
    130131        TabOrder = 2
     132        CharsNeedMatch = 1
    131133      end
    132134      object treService: TORTreeView
     
    167169        OnKeyPause = cboServiceSelect
    168170        OnMouseClick = cboServiceSelect
     171        CharsNeedMatch = 1
    169172      end
    170173    end
     
    352355          TabStop = True
    353356          OnNeedData = NewPersonNeedData
     357          CharsNeedMatch = 1
    354358        end
    355359      end
  • cprs/branches/foia-cprs/CPRS-Chart/Consults/fConsultAct.pas

    r459 r460  
    465465    FUrgency       := cboUrgency.ItemIEN ;
    466466    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);
    468468    LimitEditWidth(memComments, 74);
    469469    FComments := memComments.Lines ;
  • cprs/branches/foia-cprs/CPRS-Chart/Consults/fConsults.dfm

    r459 r460  
    11inherited frmConsults: TfrmConsults
    2   Left = 327
    3   Top = 169
    4   Width = 660
     2  Left = 247
     3  Top = 174
     4  Width = 723
    55  Height = 467
    66  HelpContext = 6000
     
    1515  inherited shpPageBottom: TShape
    1616    Top = 416
    17     Width = 652
     17    Width = 715
    1818  end
    1919  inherited sptHorz: TSplitter
     
    2525  inherited pnlRight: TPanel [2]
    2626    Left = 85
    27     Width = 567
     27    Width = 630
    2828    Height = 416
    2929    OnResize = pnlRightResize
     
    3131      Left = 0
    3232      Top = 350
    33       Width = 567
     33      Width = 630
    3434      Height = 4
    3535      Cursor = crVSplit
     
    3939      Left = 0
    4040      Top = 0
    41       Width = 567
     41      Width = 630
    4242      Height = 350
    4343      Align = alClient
     
    4848        Left = 0
    4949        Top = 0
    50         Width = 567
     50        Width = 630
    5151        Height = 19
    5252        Align = alTop
     
    6868        Left = 0
    6969        Top = 19
    70         Width = 567
     70        Width = 630
    7171        Height = 331
    7272        Align = alClient
     
    9797      Left = 0
    9898      Top = 354
    99       Width = 567
     99      Width = 630
    100100      Height = 62
    101101      Align = alBottom
     
    107107      Left = 0
    108108      Top = 0
    109       Width = 567
     109      Width = 630
    110110      Height = 350
    111111      Align = alClient
     
    117117        Left = 0
    118118        Top = 67
    119         Width = 567
     119        Width = 630
    120120        Height = 283
    121121        Align = alClient
     
    137137        Left = 0
    138138        Top = 0
    139         Width = 567
     139        Width = 630
    140140        Height = 67
    141141        Align = alTop
     
    144144        OnResize = pnlFieldsResize
    145145        DesignSize = (
    146           567
     146          630
    147147          67)
    148148        object bvlNewTitle: TBevel
     
    166166        end
    167167        object lblAuthor: TStaticText
    168           Left = 339
     168          Left = 402
    169169          Top = 6
    170170          Width = 152
     
    189189        end
    190190        object lblCosigner: TStaticText
    191           Left = 244
     191          Left = 307
    192192          Top = 21
    193193          Width = 243
     
    232232        end
    233233        object cmdChange: TButton
    234           Left = 493
     234          Left = 556
    235235          Top = 6
    236236          Width = 58
     
    245245          Left = 48
    246246          Top = 40
    247           Width = 503
     247          Width = 566
    248248          Height = 21
    249249          Hint = 'Subject is limited to a maximum of 80 characters.'
     
    435435        Height = 142
    436436        Align = alClient
    437         Color = clWhite
    438437        HideSelection = False
    439438        Indent = 15
     
    675674        end
    676675      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
    677726      object Z3: TMenuItem
    678727        Caption = '-'
  • cprs/branches/foia-cprs/CPRS-Chart/Consults/fConsults.pas

    r459 r460  
    162162    popNoteMemoInsTemplate: TMenuItem;
    163163    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;
    164174    procedure mnuChartTabClick(Sender: TObject);
    165175    procedure lstConsultsClick(Sender: TObject);
     
    267277    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
    268278      Y: Integer);
     279    procedure ViewInfo(Sender: TObject);
     280    procedure mnuViewInformationClick(Sender: TObject);
    269281  private
    270282    FEditingIndex: Integer;      // TIU index of document being currently edited
     
    296308    procedure frmDrawerPnlEncounterButtonExit(Sender: TObject);
    297309    procedure frmDrawerEdtSearchExit(Sender: TObject);
    298     procedure DoAutoSave;
     310    procedure DoAutoSave(Suppress: integer = 1);
    299311    function GetTitleText(AnIndex: Integer): string;
    300312    //function MakeTitleText(IsAddendum: Boolean = False): string;
     
    870882            lstNotesClick(Self);  // will make pnlWrite visible
    871883            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;
    877885          end
    878886        else  //  CreatedNote.ErrorText <> ''
     
    947955    else HaveRequired := True;
    948956  // 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);
    950959  if HaveRequired then
    951960  begin
     
    15291538      CompleteConsult(IS_ID_CHILD, 0, UseClinProcTitles);
    15301539    end
    1531   else if NoteIEN = -1 then Exit;
     1540  else if NoteIEN = -1 then Exit
    15321541end;
    15331542
     
    20032012procedure TfrmConsults.SaveSignItem(const ItemID, ESCode: string);
    20042013{ saves and optionally signs a progress note or addendum }
     2014const
     2015  SIG_COSIGN = 'COSIGNATURE';
     2016  SIG_SIGN   = 'SIGNATURE';
    20052017var
    20062018  AnIndex, IEN, i: Integer;
    20072019  Saved, ContinueSign: Boolean;  {*RAB* 8/26/99}
    2008   SignSts: TActionRec;
     2020  ActionSts, SignSts: TActionRec;
    20092021  APCEObject: TPCEData;
    20102022  OK: boolean;
     
    20122024  tmpNode: TORTreeNode;
    20132025  ErrMsg: string;
     2026  ActionType, SignTitle: string;
    20142027begin
    20152028  AnIndex := -1;
     
    20392052  if Length(ESCode) > 0 then
    20402053  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
    20522070      begin
    20532071       InfoBox(ErrMsg, TC_CLIN_PROC, MB_OK);
     
    20632081       then ContinueSign := False
    20642082    else ContinueSign := True;
    2065 
    20662083    if ContinueSign then
    20672084    begin
     
    27532770begin
    27542771  inherited;
    2755   DoAutoSave;
     2772  DoAutoSave(0);
    27562773  timAutoSave.Enabled := False;
    27572774  try
    27582775    SpellCheckForControl(memResults);
    27592776  finally
     2777    FChanged := True;
     2778    DoAutoSave(0);
    27602779    timAutoSave.Enabled := True;
    27612780  end;
     
    27652784begin
    27662785  inherited;
    2767   DoAutoSave;
     2786  DoAutoSave(0);
    27682787  timAutoSave.Enabled := False;
    27692788  try
    27702789    GrammarCheckForControl(memResults);
    27712790  finally
     2791    FChanged := True;
     2792    DoAutoSave(0);
    27722793    timAutoSave.Enabled := True;
    27732794  end;
     
    29853006  SigAction: integer;
    29863007  SavedDocID, SavedCsltID: string;
     3008  ARefDate: TFMDateTime;
    29873009begin
    29883010  inherited;
     
    30173039    end;
    30183040
    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;
    30223048  with SignerList do
    30233049    begin
     
    35563582    begin
    35573583      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;
    35593585    end;
    35603586  end;
     
    35723598          ErrMsg := TX_NO_AUTHOR;
    35733599        end;
    3574       if AskCosignerForTitle(Title, Author) and (Cosigner = 0) then
     3600      if AskCosignerForTitle(Title, Author, DateTime) and (Cosigner = 0) then
    35753601        begin
    35763602          Result := True;
     
    36653691end;
    36663692
    3667 procedure TfrmConsults.DoAutoSave;
     3693procedure TfrmConsults.DoAutoSave(Suppress: integer = 1);
    36683694var
    36693695  ErrMsg: string;
     
    36723698  begin
    36733699    StatusText('Autosaving note...');
    3674     //PutTextOnly(ErrMsg, memNewNote.Lines, lstNotes.GetIEN(EditingIndex));
     3700    //PutTextOnly(ErrMsg, memResults.Lines, lstNotes.GetIEN(EditingIndex));
    36753701    timAutoSave.Enabled := False;
    36763702    try
    3677       SetText(ErrMsg, memResults.Lines, lstNotes.GetIEN(EditingIndex),1);
     3703      SetText(ErrMsg, memResults.Lines, lstNotes.GetIEN(EditingIndex), Suppress);
    36783704    finally
    36793705      timAutoSave.Enabled := True;
     
    46824708        (Screen.ActiveControl = txtSubject) or
    46834709        (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
    46864717    else
    46874718    if (Screen.ActiveControl = tvConsults) then
     
    47294760  {Below is a fix for ClearQuest Defect HDS0000948, Kind of Kloogy I looked
    47304761  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;
    47324764  {This TStaticText I am looking for doesn't have a Name! So
    47334765   I have to loop through the panel's controls and disable the TStaticText.}
     
    47684800end;
    47694801
     4802procedure TfrmConsults.ViewInfo(Sender: TObject);
     4803begin
     4804  inherited;
     4805  frmFrame.ViewInfo(Sender);
     4806end;
     4807
     4808procedure TfrmConsults.mnuViewInformationClick(Sender: TObject);
     4809begin
     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;
     4820end;
     4821
    47704822initialization
    47714823  uPCEEdit := TPCEData.Create;
  • cprs/branches/foia-cprs/CPRS-Chart/Consults/fEditConsult.dfm

    r459 r460  
    11object frmEditCslt: TfrmEditCslt
    22  Tag = 110
    3   Left = 119
    4   Top = 94
     3  Left = 409
     4  Top = 225
    55  Width = 569
    66  Height = 367
     
    174174    SynonymChars = '<>'
    175175    TabOrder = 0
     176    CharsNeedMatch = 1
    176177  end
    177178  object cboUrgency: TORComboBox
     
    197198    TabOrder = 1
    198199    OnChange = ControlChange
     200    CharsNeedMatch = 1
    199201  end
    200202  object radInpatient: TRadioButton
     
    239241    TabOrder = 7
    240242    OnChange = ControlChange
     243    CharsNeedMatch = 1
    241244  end
    242245  object txtProvDiag: TCaptionEdit
     
    246249    Height = 21
    247250    Anchors = [akLeft, akTop, akRight]
     251    MaxLength = 180
    248252    ParentShowHint = False
    249253    PopupMenu = mnuPopProvDx
     
    277281    OnChange = ControlChange
    278282    OnNeedData = txtAttnNeedData
     283    CharsNeedMatch = 1
    279284  end
    280285  object cboCategory: TORComboBox
     
    298303    TabOrder = 14
    299304    Visible = False
     305    CharsNeedMatch = 1
    300306  end
    301307  object cmdAccept: TButton
  • cprs/branches/foia-cprs/CPRS-Chart/Consults/fEditProc.dfm

    r459 r460  
    1818  Position = poScreenCenter
    1919  DesignSize = (
    20     545
    21     289)
     20    561
     21    308)
    2222  PixelsPerInch = 96
    2323  TextHeight = 13
     
    166166    TabOrder = 2
    167167    OnChange = ControlChange
     168    CharsNeedMatch = 1
    168169  end
    169170  object radInpatient: TRadioButton
     
    208209    TabOrder = 6
    209210    OnChange = ControlChange
     211    CharsNeedMatch = 1
    210212  end
    211213  object txtProvDiag: TCaptionEdit
     
    215217    Height = 21
    216218    Anchors = [akLeft, akTop, akRight]
     219    MaxLength = 180
    217220    ParentShowHint = False
    218221    PopupMenu = mnuPopProvDx
     
    246249    OnChange = ControlChange
    247250    OnNeedData = txtAttnNeedData
     251    CharsNeedMatch = 1
    248252  end
    249253  object cboProc: TORComboBox
     
    277281    OnChange = cboProcSelect
    278282    OnNeedData = cboProcNeedData
     283    CharsNeedMatch = 1
    279284  end
    280285  object cboCategory: TORComboBox
     
    299304    Visible = False
    300305    OnChange = ControlChange
     306    CharsNeedMatch = 1
    301307  end
    302308  object cboService: TORComboBox
     
    329335    TabOrder = 1
    330336    OnChange = ControlChange
     337    CharsNeedMatch = 1
    331338  end
    332339  object memComment: TRichEdit
  • cprs/branches/foia-cprs/CPRS-Chart/Consults/fODConsult.dfm

    r459 r460  
    11inherited frmODCslt: TfrmODCslt
    22  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
    129  Caption = 'Order a Consult'
     10  Constraints.MinHeight = 376
     11  Constraints.MinWidth = 606
    1312  Font.Charset = ANSI_CHARSET
    1413  PixelsPerInch = 96
     
    2322  object pnlReason: TPanel [1]
    2423    Left = 3
    25     Top = 117
    26     Width = 516
    27     Height = 132
    28     Anchors = [akLeft, akTop, akRight, akBottom]
     24    Top = 154
     25    Width = 585
     26    Height = 135
     27    Anchors = [akLeft, akTop, akRight]
    2928    BevelOuter = bvNone
    3029    TabOrder = 11
     
    3231      Left = 0
    3332      Top = 0
    34       Width = 516
     33      Width = 585
    3534      Height = 13
    3635      Align = alTop
     
    4039      Left = 0
    4140      Top = 13
    42       Width = 516
    43       Height = 119
     41      Width = 585
     42      Height = 122
    4443      Align = alClient
    4544      Font.Charset = ANSI_CHARSET
     
    4847      Font.Name = 'Courier New'
    4948      Font.Style = []
     49      Constraints.MinHeight = 40
    5050      ParentFont = False
    5151      PopupMenu = popReason
     
    6161  end
    6262  object lblUrgency: TStaticText [2]
    63     Left = 239
     63    Left = 309
    6464    Top = 2
    6565    Width = 44
     
    7070  end
    7171  object lblPlace: TStaticText [3]
    72     Left = 384
     72    Left = 454
    7373    Top = 43
    7474    Width = 104
     
    7979  end
    8080  object lblAttn: TStaticText [4]
    81     Left = 384
     81    Left = 454
    8282    Top = 2
    8383    Width = 46
     
    8888  end
    8989  object lblProvDiag: TStaticText [5]
    90     Left = 239
     90    Left = 309
    9191    Top = 81
    9292    Width = 104
     
    9898  inherited memOrder: TCaptionMemo
    9999    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
    104103    Lines.Strings = (
    105104      'The order text...'
     
    110109  end
    111110  inherited cmdAccept: TButton
    112     Left = 357
    113     Top = 265
    114     Anchors = [akRight, akBottom]
     111    Left = 427
     112    Top = 315
    115113    TabOrder = 12
    116114  end
    117115  inherited cmdQuit: TButton
    118     Left = 453
    119     Top = 265
     116    Left = 531
     117    Top = 315
    120118    Width = 61
    121     Anchors = [akRight, akBottom]
    122119    TabOrder = 13
    123120  end
    124121  inherited pnlMessage: TPanel
    125     Left = 61
    126     Top = 245
    127     Width = 277
     122    Left = 13
     123    Top = 295
     124    Width = 377
    128125    Anchors = [akLeft, akRight, akBottom]
    129126    TabOrder = 14
    130127    inherited memMessage: TRichEdit
    131       Width = 227
     128      Width = 292
    132129    end
    133130  end
     
    135132    Left = 0
    136133    Top = 16
    137     Width = 204
    138     Height = 73
     134    Width = 274
     135    Height = 113
    139136    Anchors = [akLeft, akTop, akRight]
    140137    Style = orcsSimple
     
    156153    OnChange = ControlChange
    157154    OnClick = cboServiceSelect
     155    OnExit = cboServiceExit
    158156    OnKeyDown = cboServiceKeyDown
    159157    OnKeyUp = cboServiceKeyUp
     
    161159  end
    162160  object cboUrgency: TORComboBox
    163     Left = 239
     161    Left = 309
    164162    Top = 16
    165163    Width = 133
     
    187185  end
    188186  object cboPlace: TORComboBox
    189     Left = 384
     187    Left = 454
    190188    Top = 56
    191189    Width = 136
     
    212210  end
    213211  object txtProvDiag: TCaptionEdit
    214     Left = 239
     212    Left = 309
    215213    Top = 94
    216214    Width = 231
    217215    Height = 21
    218216    Anchors = [akTop, akRight]
     217    MaxLength = 180
    219218    ParentShowHint = False
    220219    PopupMenu = mnuPopProvDx
     
    225224  end
    226225  object txtAttn: TORComboBox
    227     Left = 384
     226    Left = 454
    228227    Top = 16
    229228    Width = 136
     
    252251  object treService: TORTreeView
    253252    Left = 0
    254     Top = 37
    255     Width = 228
    256     Height = 201
     253    Top = 38
     254    Width = 298
     255    Height = 220
    257256    Anchors = [akLeft, akTop, akRight, akBottom]
    258257    Font.Charset = DEFAULT_CHARSET
     
    299298  end
    300299  object pnlServiceTreeButton: TKeyClickPanel
    301     Left = 204
     300    Left = 274
    302301    Top = 14
    303     Width = 25
    304     Height = 24
     302    Width = 26
     303    Height = 26
    305304    Hint = 'View services/specialties hierarchically'
    306305    Anchors = [akTop, akRight]
    307306    BevelOuter = bvNone
     307    BevelWidth = 2
    308308    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
    309315    TabOrder = 2
    310316    TabStop = True
     
    313319    OnExit = pnlServiceTreeButtonExit
    314320    object btnServiceTree: TSpeedButton
    315       Left = 1
    316       Top = 1
    317       Width = 23
     321      Left = 2
     322      Top = 2
     323      Width = 22
    318324      Height = 22
    319325      Glyph.Data = {
     
    360366        FFFFFFFFFFFFFFFFFFFF00FB00FF0404040404FFFFFFFFFFFFFF070007FFFFFF
    361367        FFFFFFFFFFFFFFFFFFFF}
     368      Margin = 0
    362369      OnClick = btnServiceTreeClick
    363370    end
    364371  end
    365372  object cmdLexSearch: TButton
    366     Left = 473
    367     Top = 96
     373    Left = 543
     374    Top = 94
    368375    Width = 49
    369     Height = 17
     376    Height = 21
    370377    Anchors = [akTop, akRight]
    371378    Caption = 'Lexicon'
     
    374381  end
    375382  object gbInptOpt: TGroupBox
    376     Left = 239
     383    Left = 309
    377384    Top = 35
    378385    Width = 140
     
    401408  end
    402409  object btnDiagnosis: TButton
    403     Left = 473
     410    Left = 543
    404411    Top = 95
    405     Width = 52
     412    Width = 49
    406413    Height = 20
    407414    Anchors = [akTop, akRight]
     
    421428    OnPopup = popReasonPopup
    422429    Left = 411
    423     Top = 169
     430    Top = 188
    424431    object popReasonCut: TMenuItem
    425432      Caption = 'Cu&t'
  • cprs/branches/foia-cprs/CPRS-Chart/Consults/fODConsult.pas

    r459 r460  
    8585    procedure btnDiagnosisClick(Sender: TObject);
    8686    procedure cmdQuitClick(Sender: TObject);
     87    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    8788
    8889  private
     
    9798    procedure SetupReasonForRequest(OrderAction: integer);
    9899    procedure GetProvDxandValidateCode(AResponses: TResponses);
    99     function  ShowPrerequisites: boolean;
     100    function ShowPrerequisites: boolean;
    100101    procedure DoSetFontSize(FontSize: integer);
    101102    procedure SetUpQuickOrderDX;
     
    106107    procedure Validate(var AnErrMsg: string); override;
    107108    function DefaultReasonForRequest(Service: string; Resolve: Boolean): TStrings;
     109   
    108110  public
    109111    procedure SetupDialog(OrderAction: Integer; const ID: string); override;
     
    123125uses
    124126    rODBase, rConsults, uCore, uConsults, rCore, fConsults, fPCELex, rPCE, fPreReq,
    125     ORClasses, clipbrd, uTemplates;
     127    ORClasses, clipbrd, uTemplates, fFrame, uODBase;
    126128
    127129var
     
    131133  BADxUpdated: boolean;
    132134  quickCode: string;
    133  
     135
    134136
    135137
     
    153155procedure TfrmODCslt.FormCreate(Sender: TObject);
    154156begin
     157  frmFrame.pnlVisit.Enabled := false;
    155158  AutoSizeDisabled := True;
    156159  inherited;
     
    223226  cboService.Enabled := True;
    224227  cboService.Font.Color := clWindowText;
     228  cboService.Height := 25 + (7 * cboService.ItemHeight);
    225229  btnServiceTree.Enabled := True;
     230  pnlServiceTreeButton.Enabled := True;
    226231  ActiveControl := cboService;
    227232  SetProvDiagPromptingMode;
     
    271276      cboService.Font.Color := clGrayText;
    272277      btnServiceTree.Enabled := False;
     278      pnlServiceTreeButton.Enabled := False;
    273279      if (OrderAction in [ORDER_COPY, ORDER_QUICK]) and (not ShowPrerequisites) then
    274280        begin
     
    286292    begin
    287293      if QuickList.Count > 0 then BuildQuickTree(QuickList, '0', nil) ;
    288       //SvcList.Assign(LoadServiceList(CN_SVC_LIST_ORD))   ;
    289294      SvcList.Assign(LoadServiceListWithSynonyms(CN_SVC_LIST_ORD));           {RV}
    290295      AList.Assign(SvcList);
     
    512517        cboService.Font.Color := clGrayText;
    513518        btnServiceTree.Enabled := False;
     519        pnlServiceTreeButton.Enabled := False;
    514520        Changing := False;
    515521      end;
     
    645651 begin
    646652 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;
    651655
    652656 if  BILLING_AWARE and CIDCOkToSave  then
     
    657661       begin
    658662          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 .
    660663          uBAGlobals.BAConsultDxList.Clear;
    661664       end;
     
    743746          Font.Color := clGrayText;
    744747          btnServiceTree.Enabled := False;
     748          pnlServiceTreeButton.Enabled := False;
    745749          Changing := False;
    746750          with Responses do if QuickOrder > 0 then
     
    945949  with ProvDx do if (Reqd = '') or (PromptMode = '') then Exit;
    946950  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
    948955  else
    949956    lblProvDiag.Caption := TX_PROVDX_OPT;
     
    10661073                  Result := False;
    10671074                  AbortOrder := True;
    1068                   //cmdQuitClick(Self);
    1069                 end
     1075               end
    10701076              else Result := True;
    10711077            end;
     
    10761082end;
    10771083
    1078 ////////// NOTE THIS FUNCTION IS NO LONGER ASSIGNED TO OnExit EVENT
    1079 ///////// Calling this with enter making a selection had serious errors
    1080 ///////// No ill effect can be seen for not calling it.
    10811084procedure TfrmODCslt.cboServiceExit(Sender: TObject);
    10821085begin
     
    10861089  if cboService.ItemID = FLastServiceID then Exit;
    10871090  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;
    10891094  PostMessage(Handle, WM_NEXTDLGCTL, 0, 0);
    10901095end;
     
    11411146  TmpSL: TStringList;
    11421147  DocInfo: string;
    1143 
    1144 begin
     1148  x: string;
     1149  HasObjects: boolean;
     1150begin
     1151  Resolve := FALSE ;  // override value passed in - resolve on client - PSI-05-093
    11451152  DocInfo := '';
    11461153  TmpSL := TStringList.Create;
     
    11481155    Result := GetDefaultReasonForRequest(Service + CSLT_PTR, Resolve);
    11491156    TmpSL.Assign(Result);
     1157    x := TmpSL.Text;
     1158    ExpandOrderObjects(x, HasObjects);
     1159    TmpSL.Text := x;
     1160    Responses.OrderContainsObjects := HasObjects;
    11501161    ExecuteTemplateOrBoilerPlate(TmpSL, cboService.ItemIEN , ltConsult, nil, 'Reason for Request: ' + cboService.DisplayText[cboService.ItemIndex], DocInfo);
     1162    if TmpSL.Text <> x then Responses.OrderContainsObjects := False;
    11511163    Result.Assign(TmpSL);
    11521164  finally
     
    12841296  //Except when Enter or Space is pressed. VK_LBUTTON activates OnClick in TORComboBoxes
    12851297  FcboServiceKeyDownStopClick := false;
    1286   if (Key <> VK_RETURN) and (Key <> VK_SPACE) and (Key <> VK_LBUTTON) then
     1298  if (Key <> VK_RETURN) {and (Key <> VK_SPACE)} and (Key <> VK_LBUTTON) then  //comment on this line is fix for CQ6789
    12871299    FcboServiceKeyDownStopClick := True
    12881300  else
     
    13331345     end;
    13341346  end;
     1347
    13351348  ProvDx.CodeInactive := False;
    13361349end;
     
    13871400end;
    13881401
     1402procedure TfrmODCslt.FormClose(Sender: TObject; var Action: TCloseAction);
     1403begin
     1404  inherited;
     1405  frmFrame.pnlVisit.Enabled := true;
     1406end;
     1407
    13891408end.
    13901409
  • cprs/branches/foia-cprs/CPRS-Chart/Consults/fODProc.dfm

    r459 r460  
    11inherited frmODProc: TfrmODProc
    22  Tag = 112
    3   Left = 262
    4   Top = 191
    5   Width = 531
    6   Height = 322
     3  Left = 208
     4  Top = 188
     5  Width = 543
     6  Height = 393
    77  HorzScrollBar.Range = 523
    8   HorzScrollBar.Visible = True
    98  VertScrollBar.Range = 295
    10   VertScrollBar.Visible = True
    11   AutoScroll = False
    129  Caption = 'Order a Procedure'
     10  Constraints.MinHeight = 393
     11  Constraints.MinWidth = 543
    1312  PixelsPerInch = 96
    1413  TextHeight = 13
     
    3130    WordWrap = False
    3231  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
    3541    Top = 4
    3642    Width = 44
     
    4046    TabOrder = 15
    4147  end
    42   object lblPlace: TStaticText [3]
    43     Left = 384
     48  object lblPlace: TStaticText [4]
     49    Left = 396
    4450    Top = 43
    4551    Width = 104
     
    4955    TabOrder = 16
    5056  end
    51   object lblAttn: TStaticText [4]
    52     Left = 384
     57  object lblAttn: TStaticText [5]
     58    Left = 396
    5359    Top = 4
    5460    Width = 46
     
    5864    TabOrder = 17
    5965  end
    60   object lblProvDiag: TStaticText [5]
    61     Left = 237
     66  object lblProvDiag: TStaticText [6]
     67    Left = 249
    6268    Top = 81
    6369    Width = 104
     
    6773    TabOrder = 18
    6874  end
    69   object pnlReason: TPanel [6]
     75  object pnlReason: TPanel [7]
    7076    Left = 0
    71     Top = 99
    72     Width = 521
    73     Height = 154
     77    Top = 120
     78    Width = 528
     79    Height = 192
    7480    Anchors = [akLeft, akTop, akRight, akBottom]
    7581    BevelOuter = bvNone
    7682    TabOrder = 9
    77     DesignSize = (
    78       521
    79       154)
    80     object lblReason: TLabel
    81       Left = 4
    82       Top = 9
    83       Width = 95
    84       Height = 13
    85       Caption = 'Reason for Request'
    86     end
    8783    object memReason: TCaptionRichEdit
    8884      Left = 0
    89       Top = 24
    90       Width = 521
    91       Height = 130
    92       Anchors = [akLeft, akTop, akRight, akBottom]
     85      Top = 0
     86      Width = 528
     87      Height = 192
     88      Align = alClient
    9389      Font.Charset = DEFAULT_CHARSET
    9490      Font.Color = clWindowText
     
    9692      Font.Name = 'Courier New'
    9793      Font.Style = []
     94      Constraints.MinHeight = 40
    9895      ParentFont = False
    9996      PopupMenu = popReason
     
    110107  end
    111108  inherited memOrder: TCaptionMemo
    112     Left = 4
    113     Top = 258
    114     Width = 361
    115     Height = 36
    116     Anchors = [akLeft, akRight, akBottom]
     109    Left = 0
     110    Top = 321
     111    Width = 380
     112    Height = 41
     113    Anchors = [akLeft, akRight]
    117114    Lines.Strings = (
    118115      'The order text...'
     
    123120    TabOrder = 1
    124121  end
    125   object cboUrgency: TORComboBox [8]
    126     Left = 237
     122  object cboUrgency: TORComboBox [9]
     123    Left = 249
    127124    Top = 17
    128125    Width = 133
     
    148145    CharsNeedMatch = 1
    149146  end
    150   object cboPlace: TORComboBox [9]
    151     Left = 384
     147  object cboPlace: TORComboBox [10]
     148    Left = 396
    152149    Top = 56
    153150    Width = 133
     
    173170    CharsNeedMatch = 1
    174171  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
    177335    Top = 93
    178336    Width = 234
    179337    Height = 21
    180338    Anchors = [akTop, akRight]
     339    MaxLength = 180
    181340    ParentShowHint = False
    182341    PopupMenu = mnuPopProvDx
     
    185344    OnChange = txtProvDiagChange
    186345    Caption = 'Provisional Diagnosis'
    187   end
    188   object txtAttn: TORComboBox [11]
    189     Left = 384
    190     Top = 17
    191     Width = 133
    192     Height = 21
    193     Anchors = [akTop, akRight]
    194     Style = orcsDropDown
    195     AutoSelect = True
    196     Caption = 'Attention'
    197     Color = clWindow
    198     DropDownCount = 8
    199     ItemHeight = 13
    200     ItemTipColor = clWindow
    201     ItemTipEnable = True
    202     ListItemsOnly = True
    203     LongList = True
    204     LookupPiece = 2
    205     MaxLength = 0
    206     Pieces = '2,3'
    207     Sorted = False
    208     SynonymChars = '<>'
    209     TabOrder = 3
    210     OnChange = ControlChange
    211     OnNeedData = txtAttnNeedData
    212     CharsNeedMatch = 1
    213   end
    214   object cboProc: TORComboBox [12]
    215     Left = 4
    216     Top = 17
    217     Width = 215
    218     Height = 21
    219     Anchors = [akLeft, akTop, akRight]
    220     Style = orcsDropDown
    221     AutoSelect = True
    222     Caption = 'Procedure'
    223     Color = clWindow
    224     DropDownCount = 8
    225     ItemHeight = 13
    226     ItemTipColor = clWindow
    227     ItemTipEnable = True
    228     ListItemsOnly = True
    229     LongList = True
    230     LookupPiece = 0
    231     MaxLength = 0
    232     Pieces = '2'
    233     Sorted = False
    234     SynonymChars = '<>'
    235     TabOrder = 0
    236     OnChange = cboProcSelect
    237     OnNeedData = cboProcNeedData
    238     CharsNeedMatch = 1
    239   end
    240   object cboCategory: TORComboBox [13]
    241     Left = 516
    242     Top = 10
    243     Width = 3
    244     Height = 21
    245     Style = orcsDropDown
    246     AutoSelect = True
    247     Color = clWindow
    248     DropDownCount = 8
    249     ItemHeight = 13
    250     ItemTipColor = clWindow
    251     ItemTipEnable = True
    252     ListItemsOnly = False
    253     LongList = False
    254     LookupPiece = 0
    255     MaxLength = 0
    256     Sorted = False
    257     SynonymChars = '<>'
    258     TabOrder = 13
    259     Visible = False
    260     OnChange = ControlChange
    261     CharsNeedMatch = 1
    262   end
    263   object cboService: TORComboBox [14]
    264     Left = 4
    265     Top = 58
    266     Width = 215
    267     Height = 21
    268     Anchors = [akLeft, akTop, akRight]
    269     Style = orcsDropDown
    270     AutoSelect = True
    271     Caption = 'Service to perform this procedure'
    272     Color = clWindow
    273     DropDownCount = 8
    274     Enabled = False
    275     ItemHeight = 13
    276     ItemTipColor = clWindow
    277     ItemTipEnable = True
    278     ListItemsOnly = False
    279     LongList = False
    280     LookupPiece = 0
    281     MaxLength = 0
    282     Pieces = '2'
    283     Sorted = False
    284     SynonymChars = '<>'
    285     TabOrder = 4
    286     OnChange = cboServiceChange
    287     CharsNeedMatch = 1
    288   end
    289   inherited cmdAccept: TButton
    290     Left = 369
    291     Top = 268
    292     Anchors = [akRight, akBottom]
    293     TabOrder = 10
    294   end
    295   inherited cmdQuit: TButton
    296     Left = 457
    297     Top = 268
    298     Width = 64
    299     Anchors = [akRight, akBottom]
    300     TabOrder = 11
    301   end
    302   inherited pnlMessage: TPanel
    303     Left = 50
    304     Top = 249
    305     Width = 304
    306     Anchors = [akLeft, akRight, akBottom]
    307     TabOrder = 12
    308     inherited memMessage: TRichEdit
    309       Width = 254
    310     end
    311   end
    312   object cmdLexSearch: TButton
    313     Left = 474
    314     Top = 93
    315     Width = 49
    316     Height = 21
    317     Anchors = [akTop, akRight]
    318     Caption = 'Lexicon'
    319     TabOrder = 8
    320     OnClick = cmdLexSearchClick
    321   end
    322   object gbInptOpt: TGroupBox
    323     Left = 237
    324     Top = 36
    325     Width = 140
    326     Height = 45
    327     Anchors = [akTop, akRight]
    328     Caption = 'Patient will be seen as an:'
    329     TabOrder = 5
    330     DesignSize = (
    331       140
    332       45)
    333     object radInpatient: TRadioButton
    334       Left = 3
    335       Top = 20
    336       Width = 61
    337       Height = 17
    338       Anchors = [akTop, akRight]
    339       Caption = '&Inpatient'
    340       TabOrder = 0
    341       OnClick = radInpatientClick
    342     end
    343     object radOutpatient: TRadioButton
    344       Left = 67
    345       Top = 20
    346       Width = 71
    347       Height = 17
    348       Anchors = [akTop, akRight]
    349       Caption = '&Outpatient'
    350       TabOrder = 1
    351       OnClick = radOutpatientClick
    352     end
    353346  end
    354347  object mnuPopProvDx: TPopupMenu
  • cprs/branches/foia-cprs/CPRS-Chart/Consults/fODProc.pas

    r459 r460  
    1212    cboUrgency: TORComboBox;
    1313    cboPlace: TORComboBox;
    14     txtProvDiag: TCaptionEdit;
    1514    txtAttn: TORComboBox;
    1615    lblProc: TLabel;
     
    3433    pnlReason: TPanel;
    3534    memReason: TCaptionRichEdit;
    36     lblReason: TLabel;
    3735    gbInptOpt: TGroupBox;
    3836    radInpatient: TRadioButton;
    3937    radOutpatient: TRadioButton;
     38    txtProvDiag: TCaptionEdit;
     39    lblReason: TLabel;
    4040    procedure FormCreate(Sender: TObject);
    4141    procedure txtAttnNeedData(Sender: TObject; const StartFrom: String;
     
    6363      Shift: TShiftState);
    6464    procedure memReasonKeyPress(Sender: TObject; var Key: Char);
     65    procedure FormResize(Sender: TObject);
     66    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    6567  private
    6668    FLastProcID: string;
     
    8890uses
    8991    rODBase, rConsults, uCore, uConsults, rCore, fConsults, fPCELex, rPCE, ORClasses,
    90     clipbrd, fPreReq, uTemplates, uAccessibleRichEdit;
     92    clipbrd, fPreReq, uTemplates, uAccessibleRichEdit, fFrame, uODBase;
    9193
    9294var
     
    109111procedure TfrmODProc.FormCreate(Sender: TObject);
    110112begin
     113  frmFrame.pnlVisit.Enabled := false;
    111114  AutoSizeDisabled := True;
    112115  inherited;
     
    709712  TmpSL: TStringList;
    710713  DocInfo: string;
    711 begin
     714  x: string;
     715  HasObjects: boolean;
     716begin
     717  Resolve := FALSE ;  // override value passed in - resolve on client - PSI-05-093
    712718  DocInfo := '';
    713719  TmpSL := TStringList.Create;
     
    715721    Result := GetDefaultReasonForRequest(Piece(cboProc.Items[cboProc.ItemIndex], U, 4), Resolve);
    716722    TmpSL.Assign(Result);
     723    x := TmpSL.Text;
     724    ExpandOrderObjects(x, HasObjects);
     725    TmpSL.Text := x;
     726    Responses.OrderContainsObjects := HasObjects;
    717727    ExecuteTemplateOrBoilerPlate(TmpSL, StrToIntDef(piece(piece(cboProc.Items[cboProc.ItemIndex],U,4),';',1),0),
    718728                   ltProcedure, nil, 'Reason for Request: ' + cboProc.DisplayText[cboProc.ItemIndex], DocInfo);
     729    if TmpSL.Text <> x then Responses.OrderContainsObjects := False;
    719730    Result.Assign(TmpSL);
    720731  finally
     
    805816end;
    806817
     818procedure TfrmODProc.FormResize(Sender: TObject);
     819begin
     820  inherited;
     821  memOrder.Top := PnlReason.Top + PnlReason.Height + 5;
     822
     823end;
     824
     825procedure TfrmODProc.FormClose(Sender: TObject; var Action: TCloseAction);
     826begin
     827  inherited;
     828  frmFrame.pnlVisit.Enabled := true;
     829end;
     830
    807831end.
    808832
  • cprs/branches/foia-cprs/CPRS-Chart/Consults/fPreReq.dfm

    r459 r460  
    1212  Font.Name = 'MS Sans Serif'
    1313  Font.Style = []
    14   FormStyle = fsStayOnTop
    1514  OldCreateOrder = True
    1615  Position = poScreenCenter
  • cprs/branches/foia-cprs/CPRS-Chart/Consults/rConsults.pas

    r459 r460  
    44
    55uses SysUtils, Classes, ORNet, ORFn, rCore, uCore, TRPCB, dialogs, uConsults, rTIU, uTIU;
     6
     7type
     8
     9  TUnresolvedConsults = record
     10    UnresolvedConsultsExist: boolean;
     11    ShowNagScreen: boolean;
     12  end;
    613
    714{Consult Titles }
     
    3239function GetFormattedSF513(AConsult: Integer; ChartCopy: string): TStrings;
    3340function UnresolvedConsultsExist: boolean;
     41procedure GetUnresolvedConsultsInfo;
    3442
    3543{list box fillers}
     
    97105  uClinProcClass: integer;
    98106  uClinProcTitles: TClinProcTitles;
     107  uUnresolvedConsults: TUnresolvedConsults;
    99108
    100109implementation
     
    602611end;
    603612
     613procedure GetUnresolvedConsultsInfo;
     614var
     615  x: string;
     616begin
     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;
     623end;
     624
    604625function ConsultMessage(AnIEN: Integer): string;
    605626begin
  • cprs/branches/foia-cprs/CPRS-Chart/Encounter/fDiagnoses.dfm

    r459 r460  
    11inherited frmDiagnoses: TfrmDiagnoses
    2   Left = 306
    3   Top = 183
     2  Left = 304
     3  Top = 169
    44  Caption = 'Encounter Diagnoses'
    55  PixelsPerInch = 96
     
    7676      inherited lbSection: TORListBox
    7777        Tag = 20
    78         Style = lbOwnerDrawFixed
    7978        TabOrder = 0
    80         OnDrawItem = lbSectionDrawItem
    8179      end
    8280      inherited btnOther: TButton
  • cprs/branches/foia-cprs/CPRS-Chart/Encounter/fDiagnoses.pas

    r459 r460  
    218218var
    219219  i: integer;
    220   dxString: string;
    221220  dxCode, dxName: string;
    222221  ADiagnosis: TPCEItem;
    223222begin
    224223   inherited;
    225   ADiagnosis := TPCEItem.Create;
    226224  UBAGlobals.BAPCEDiagList.Clear;
    227225  with lbGrid do for i := 0 to Items.Count - 1 do
  • cprs/branches/foia-cprs/CPRS-Chart/Encounter/fEncVitals.dfm

    r459 r460  
    11inherited frmEncVitals: TfrmEncVitals
    2   Left = 400
    3   Top = 227
     2  Left = 353
     3  Top = 210
    44  Caption = 'Vitals'
    55  KeyPreview = True
     
    88  OnKeyDown = FormKeyDown
    99  OnResize = FormResize
    10   OnShow = FormShow
    1110  PixelsPerInch = 96
    1211  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
    1339  inherited btnOK: TBitBtn
    1440    Left = 444
    1541    Top = 377
    16     TabOrder = 1
     42    TabOrder = 3
    1743  end
    1844  inherited btnCancel: TBitBtn
    1945    Left = 524
    2046    Top = 377
    21     TabOrder = 2
     47    TabOrder = 4
    2248  end
    2349  object pnlmain: TPanel
     
    2753    Height = 217
    2854    TabOrder = 0
     55    Visible = False
    2956    object lblVitPointer: TOROffsetLabel
    3057      Left = 506
     
    383410      ListItemsOnly = True
    384411      LongList = False
     412      LookupPiece = 0
    385413      MaxLength = 0
    386414      Pieces = '1,2'
     
    390418      TabStop = True
    391419      OnEnter = SetVitPointer
     420      CharsNeedMatch = 1
    392421    end
    393422    object txtMeasPulse: TCaptionEdit
     
    414443    end
    415444  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
    416454end
  • cprs/branches/foia-cprs/CPRS-Chart/Encounter/fEncVitals.pas

    r459 r460  
    66  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    77  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 ===================================================}
     12type
     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 ===================================================}
    924
    1025type
     
    4762    txtMeasPulse: TCaptionEdit;
    4863    txtMeasHt: TCaptionEdit;
     64    pnlBottom: TPanel;
     65    btnEnterVitals: TButton;
     66    lvVitals: TCaptionListView;
    4967    procedure SetVitPointer(Sender: TObject);
    5068    procedure txtMeasBPExit(Sender: TObject);
     
    7189    procedure FormKeyDown(Sender: TObject; var Key: Word;
    7290      Shift: TShiftState);
     91    procedure btnEnterVitalsClick(Sender: TObject); //vitals lite
    7392  private
    7493    FDataLoaded: boolean;
     
    82101    procedure ChangeFocus(Control: TWinControl);
    83102    procedure ClearData;
     103    procedure LoadVitalView(VitalsList : TStringList); //Vitals Lite
     104    procedure LoadVitalsList;
    84105  public
    85106    function OK2SaveVitals: boolean;
     
    97118
    98119uses UCore, rCore, rPCE, fPCELex, fPCEOther, fVitals,fVisit, fFrame, fEncnt,
    99   uVitals, fEncounterFrame;
     120     fEncounterFrame, uInit
     121  //   , fGMV_InputTemp // Vitals Lite 2004-05-21
     122     ;
    100123
    101124const
     
    373396end;
    374397
     398
    375399procedure TfrmEncVitals.FormCreate(Sender: TObject);
    376 
    377 begin
     400begin
     401
    378402  inherited;
    379403  FTabName := CT_VitNm;
     
    389413
    390414begin
    391   inherited;
    392415  //uVisitType.Free;
    393416  uVitalOld.Free;
    394417  uVitalNew.free;
     418
     419{== Vitals Lite 2004-05-21 ===================================================}
     420  FreeLibrary(VitalsDLLHandle);
     421{== Vitals Lite 2004-05-21 ===================================================}
     422  inherited;
    395423end;
    396424
     
    412440
    413441procedure TfrmEncVitals.FormShow(Sender: TObject);
    414 begin
    415   inherited;
     442var
     443  GMV_LibName: String;
     444begin
     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
    416456//  frmEncVitals.caption := 'Vital entry for - '+ patient.name; {RAB 6/15/98}
    417457  FormActivate(Sender);
     
    540580end;
    541581
     582//Begin Vitals Lite
     583procedure TfrmEncVitals.LoadVitalView(VitalsList: TStringList);
     584var
     585  i : integer;
     586  curCol : TListColumn;
     587  curItem : TListItem;
     588  HeadingList,tmpList : TStringList;
     589begin
     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;
     613end;
     614
     615procedure TfrmEncVitals.btnEnterVitalsClick(Sender: TObject);
     616var
     617  VLPtVitals : TGMV_VitalsEnterDLG;
     618  GMV_FName : String;
     619begin
     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;
     641end;
     642
     643procedure TfrmEncVitals.LoadVitalsList;
     644var
     645  VitalsList : TStringList;
     646  VLPtVitals : TGMV_LatestVitalsList;
     647  GMV_FName : String;
     648begin
     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)
     663end;
     664//End Vitals Lite
     665
    542666end.
  • cprs/branches/foia-cprs/CPRS-Chart/Encounter/fEncounterFrame.dfm

    r459 r460  
    11object frmEncounterFrame: TfrmEncounterFrame
    2   Left = 366
    3   Top = 181
    4   Width = 612
     2  Left = 290
     3  Top = 108
     4  Width = 640
    55  Height = 451
    66  Caption = 'Encounter Frame'
     
    1616  Position = poScreenCenter
    1717  OnCanResize = FormCanResize
     18  OnClose = FormClose
    1819  OnCloseQuery = FormCloseQuery
    1920  OnCreate = FormCreate
     
    2627    Left = 0
    2728    Top = 0
    28     Width = 604
     29    Width = 632
    2930    Height = 2
    3031    Align = alTop
     
    3233  object StatusBar1: TStatusBar
    3334    Left = 0
    34     Top = 424
    35     Width = 604
     35    Top = 417
     36    Width = 632
    3637    Height = 0
    3738    Panels = <>
     
    4142    Left = 0
    4243    Top = 24
    43     Width = 604
    44     Height = 400
     44    Width = 632
     45    Height = 393
    4546    Align = alClient
    4647    BevelOuter = bvNone
     
    5253    ParentFont = False
    5354    TabOrder = 1
    54     TabStop = True
    5555  end
    5656  object TabControl: TTabControl
    5757    Left = 0
    5858    Top = 2
    59     Width = 604
     59    Width = 632
    6060    Height = 22
    6161    Align = alTop
  • cprs/branches/foia-cprs/CPRS-Chart/Encounter/fEncounterFrame.pas

    r459 r460  
    7575    procedure FormKeyDown(Sender: TObject; var Key: Word;
    7676      Shift: TShiftState);
     77    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    7778    procedure FormCanResize(Sender: TObject; var NewWidth,
    7879      NewHeight: Integer; var Resize: Boolean);
     
    123124  uCore,
    124125  fGAF, uConst,
    125   rCore, fPCEProvider;
     126  rCore, fPCEProvider, rMisc;
    126127
    127128{$R *.DFM}
     
    397398    frmEncounterFrame.CreateChildForms(frmEncounterFrame, PCEData.Location);
    398399    ResizeAnchoredFormToFont(frmEncounterFrame);
     400    SetFormPosition(frmEncounterFrame);
    399401
    400402    with frmEncounterFrame do
     
    714716    if FormListContains(CT_ImmNm) then
    715717      SetImmunizations(frmImmunizations.lbGrid.Items);
    716     if FormListContains(CT_ImmNm) then
     718    if FormListContains(CT_SkinNm) then
    717719      SetSkinTests(frmSkinTests.lbGrid.Items);
    718720    if FormListContains(CT_PedNm) then
    719721      SetPatientEds(frmPatientEd.lbGrid.Items);
    720     if FormListContains(CT_ImmNm) then
     722    if FormListContains(CT_HlthNm) then
    721723      SetHealthFactors(frmHealthFactors.lbGrid.Items);
    722     if FormListContains(CT_ImmNm) then
     724    if FormListContains(CT_XamNm) then
    723725      SetExams(frmExams.lbGrid.Items);
    724726  end;
     
    817819end;
    818820
    819 procedure TfrmEncounterFrame.FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean);
     821procedure TfrmEncounterFrame.FormClose(Sender: TObject;
     822  var Action: TCloseAction);
     823begin
     824  SaveUserBounds(Self);
     825end;
     826
     827procedure TfrmEncounterFrame.FormCanResize(Sender: TObject; var NewWidth,
     828  NewHeight: Integer; var Resize: Boolean);
    820829begin
    821830  //CQ4740
  • cprs/branches/foia-cprs/CPRS-Chart/Encounter/fHealthFactor.dfm

    r459 r460  
    11inherited frmHealthFactors: TfrmHealthFactors
    2   Left = 434
    3   Top = 354
     2  Left = 374
     3  Top = 205
    44  Caption = 'Health Factor page'
    55  PixelsPerInch = 96
     
    4646  end
    4747  inherited edtComment: TCaptionEdit
     48    MaxLength = 245
    4849    TabOrder = 3
    4950  end
     
    9091    ListItemsOnly = False
    9192    LongList = False
     93    LookupPiece = 0
    9294    MaxLength = 0
    9395    Pieces = '2'
     
    9698    TabOrder = 4
    9799    OnChange = cboHealthLevelChange
     100    CharsNeedMatch = 1
    98101  end
    99102end
  • cprs/branches/foia-cprs/CPRS-Chart/Encounter/fPCELex.dfm

    r459 r460  
    11inherited frmPCELex: TfrmPCELex
    2   Left = 386
    3   Top = 204
     2  Left = 639
     3  Top = 480
    44  BorderIcons = []
    55  BorderStyle = bsDialog
  • cprs/branches/foia-cprs/CPRS-Chart/Encounter/fPCEProvider.dfm

    r459 r460  
    7171    OnChange = cboPrimaryChange
    7272    OnNeedData = cboPrimaryNeedData
     73    CharsNeedMatch = 1
    7374  end
    7475  object btnYes: TButton
  • cprs/branches/foia-cprs/CPRS-Chart/Encounter/rPCE.pas

    r459 r460  
    150150function IsUserAProvider(AUser: Int64; ADate: TFMDateTime): boolean;
    151151function IsCancelOrNoShow(ANote: integer): boolean;
     152function IsNonCountClinic(ALocation: integer): boolean;
    152153
    153154// HNC Flag
     
    173174  uVTypeForLoc:   TStringList;
    174175  uProblems:      TStringList;
    175  
    176176  uModifiers:     TORStringList = nil;
    177177  uGAFOK:         boolean;
     
    14381438end;
    14391439
     1440function IsNonCountClinic(ALocation: integer): boolean;
     1441begin
     1442  Result := (sCallV('ORWPCE1 NONCOUNT', [ALocation]) = '1');
     1443end;
     1444
    14401445function DefaultProvider(ALocation: integer; AUser: Int64; ADate: TFMDateTime;
    14411446                                             ANoteIEN: integer): string;
  • cprs/branches/foia-cprs/CPRS-Chart/Encounter/uPCE.pas

    r459 r460  
    13751375  Result := inherited DelimitedStr;
    13761376  if Provider > 0 then tmpProv := IntToStr(Provider) else tmpProv := '';
    1377   //Result := 'CPT' + Result + U + IntToStr(Quantity) + U + IntToStr(Provider) +
    13781377  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, '');
    13811380end;
    13821381
     
    15541553    BOOLCHAR[AddProb] + U + U + U;
    15551554  if(SaveComment) then Result := Result + IntToStr(UNxtCommSeqNum);
     1555  if Length(Result) > 250 then SetPiece(Result, U, 4, '');
    15561556end;
    15571557
     
    29882988begin
    29892989  if not CanEditPCE(Self) then
     2990  begin
     2991    Result := TRUE;
     2992    exit;
     2993  end;
     2994  if IsNonCountClinic(FEncLocation) then
    29902995  begin
    29912996    Result := TRUE;
  • cprs/branches/foia-cprs/CPRS-Chart/Options/fOptions.dfm

    r459 r460  
    11object frmOptions: TfrmOptions
    2   Left = 307
    3   Top = 170
     2  Left = 315
     3  Top = 110
     4  Width = 435
     5  Height = 397
    46  HelpContext = 9999
     7  VertScrollBar.Range = 360
    58  BorderIcons = [biSystemMenu, biHelp]
    69  BorderStyle = bsDialog
    710  Caption = 'Options'
    8   ClientHeight = 363
    9   ClientWidth = 427
    1011  Color = clBtnFace
    1112  ParentFont = True
     
    1920  object pnlBottom: TPanel
    2021    Left = 0
    21     Top = 333
     22    Top = 340
    2223    Width = 427
    2324    Height = 30
     
    6667    Top = 0
    6768    Width = 427
    68     Height = 333
     69    Height = 340
    6970    Align = alClient
    7071    BevelOuter = bvNone
     
    7677      Top = 5
    7778      Width = 417
    78       Height = 323
     79      Height = 330
    7980      HelpContext = 9999
    8081      ActivePage = tsListsTeams
     
    8788        DesignSize = (
    8889          409
    89           295)
     90          302)
    9091        object bvlCoverDays: TBevel
    9192          Left = 125
     
    923924        DesignSize = (
    924925          409
    925           295)
     926          302)
    926927        object bvlNotesNotes: TBevel
    927928          Left = 88
     
    977978            00000000000000000000000000000000000000000000000000000000}
    978979        end
    979         object Image1: TImage
     980        object imgNotes: TImage
    980981          Left = 16
    981982          Top = 163
     
    11111112        Caption = 'Reports'
    11121113        ImageIndex = 5
    1113         object Bevel1: TBevel
     1114        object bvlReports: TBevel
    11141115          Left = 80
    1115           Top = 24
     1116          Top = 16
    11161117          Width = 321
    11171118          Height = 2
    11181119        end
    1119         object Image2: TImage
    1120           Left = 16
    1121           Top = 48
     1120        object imgReports: TImage
     1121          Left = 20
     1122          Top = 31
    11221123          Width = 41
    11231124          Height = 41
     
    11501151            FFFFFFFF}
    11511152        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
    11531166          Left = 16
    1154           Top = 176
     1167          Top = 123
    11551168          Width = 41
    11561169          Height = 41
     
    11921205            00010000000000000200000083000000C7000000FF810000FFC30000}
    11931206        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
    12011287          Left = 128
    1202           Top = 48
     1288          Top = 27
    12031289          Width = 273
    12041290          Height = 41
     
    12131299          TabOrder = 4
    12141300        end
    1215         object Label4: TMemo
     1301        object memReport1: TMemo
    12161302          Left = 128
    1217           Top = 184
     1303          Top = 121
    12181304          Width = 273
    12191305          Height = 49
     
    12281314          TabOrder = 5
    12291315        end
    1230         object Label1: TStaticText
     1316        object lblReports: TStaticText
    12311317          Left = 13
    1232           Top = 16
     1318          Top = 9
    12331319          Width = 55
    12341320          Height = 17
     
    12361322          TabOrder = 2
    12371323        end
    1238         object Label2: TStaticText
    1239           Left = 13
    1240           Top = 152
     1324        object lblReport1: TStaticText
     1325          Left = 9
     1326          Top = 101
    12411327          Width = 89
    12421328          Height = 17
     
    12441330          TabOrder = 3
    12451331        end
    1246         object Button1: TButton
     1332        object btnReports: TButton
    12471333          Left = 200
    1248           Top = 104
     1334          Top = 76
    12491335          Width = 193
    12501336          Height = 22
    12511337          Caption = 'Set All Reports...'
    12521338          TabOrder = 0
    1253           OnClick = Button1Click
    1254         end
    1255         object Button2: TButton
     1339          OnClick = btnReportsClick
     1340        end
     1341        object btnReport1: TButton
    12561342          Left = 200
    1257           Top = 240
     1343          Top = 167
    12581344          Width = 193
    12591345          Height = 22
    12601346          Caption = 'Set Individual Report...'
    12611347          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
    12631534        end
    12641535      end
  • cprs/branches/foia-cprs/CPRS-Chart/Options/fOptions.pas

    r459 r460  
    7272    btnNotesTitles: TButton;
    7373    imgNotesNotes: TImage;
    74     Image1: TImage;
     74    imgNotes: TImage;
    7575    imgTeams: TImage;
    7676    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;
    8786    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;
    88104    procedure FormCreate(Sender: TObject);
    89105    procedure FormDestroy(Sender: TObject);
     
    108124    procedure btnNotesNotesClick(Sender: TObject);
    109125    procedure btnNotesTitlesClick(Sender: TObject);
    110     procedure Button1Click(Sender: TObject);
    111     procedure Button2Click(Sender: TObject);
     126    procedure btnReportsClick(Sender: TObject);
     127    procedure btnReport1Click(Sender: TObject);
    112128    procedure lvwNotificationsEnter(Sender: TObject);
    113129    procedure lvwNotificationsMouseDown(Sender: TObject;
    114130      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    115131    procedure btnDiagnosesClick(Sender: TObject);
     132    procedure btnGraphSettingsClick(Sender: TObject);
     133    procedure btnGraphViewsClick(Sender: TObject);
     134    procedure rdoRDVClick(Sender: TObject);
    116135  private
    117136    { Private declarations }
     
    145164uses fOptionsDays, fOptionsReminders, fOptionsSurrogate,
    146165     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;
    148169     //fTestDialog;
    149170
     
    195216             tsListsTeams.TabVisible := true;
    196217             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 ' +
    198219                               '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 ' +
    200221                               '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...';
    203224             if User.IsReportsOnly then // For "Reports Only" users.
    204225               begin
     
    217238             if (not User.ToolsRptEdit) then // For users with Reports settings edit parameter not set.
    218239               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 ' +
    220241                                   '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 ' +
    222243                                   '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...';
    225246               end;
    226247           end;
     
    249270  FdirtyOtherStuff := false;
    250271  CheckApply;
    251   if not BILLING_AWARE then   btnDiagnoses.Enabled := False;
    252   if (Encounter.Provider = 0) and not PersonHasKey(Encounter.Provider, 'PROVIDER') then
     272
     273  if (Encounter.Provider = 0) and not IsCIDCProvider(User.DUZ) then
    253274      btnDiagnoses.Enabled := False;
     275  if UseVistaWeb then rdoRDV.ItemIndex := 1;
    254276
    255277end;
     
    641663end;
    642664
    643 procedure TfrmOptions.Button1Click(Sender: TObject);
     665procedure TfrmOptions.btnReportsClick(Sender: TObject);
    644666var
    645667  topsize, leftsize, value: integer;
     
    650672end;
    651673
    652 procedure TfrmOptions.Button2Click(Sender: TObject);
     674procedure TfrmOptions.btnReport1Click(Sender: TObject);
    653675var
    654676  topsize, leftsize, value: integer;
     
    678700  topsize, leftsize, value: integer;
    679701begin
    680   if BILLING_AWARE then  {BAV25 Code}
     702  if IsCIDCProvider(User.DUZ) then    //(hds7564)
    681703  begin
    682704     value := 0;
     
    686708end;
    687709
     710procedure TfrmOptions.btnGraphSettingsClick(Sender: TObject);
     711// display GraphSettings
     712var
     713  actiontype: boolean;
     714  topsize, leftsize: integer;
     715begin
     716  actiontype := false;
     717  Offset(topsize, -60, leftsize, -60);
     718  DialogOptionsGraphSettings(topsize, leftsize, Font.Size, actiontype);
     719end;
     720
     721procedure TfrmOptions.btnGraphViewsClick(Sender: TObject);
     722// display Graph Views
     723var
     724  actiontype: boolean;
     725  topsize, leftsize: integer;
     726begin
     727  actiontype := false;
     728  Offset(topsize, -60, leftsize, -60);
     729  DialogOptionsGraphProfiles(topsize, leftsize, Font.Size, actiontype);
     730end;
     731
     732procedure TfrmOptions.rdoRDVClick(Sender: TObject);
     733var
     734  iIndex: integer;
     735begin
     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
     779end;
     780
    688781end.
    689782
  • cprs/branches/foia-cprs/CPRS-Chart/Options/fOptionsOther.dfm

    r459 r460  
    196196  end
    197197  object txtTodayMinus: TStaticText
    198     Left = 32
     198    Left = 38
    199199    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'
    203204    Color = clBtnFace
    204205    ParentColor = False
     
    219220  end
    220221  object txtDaysMinus: TStaticText
    221     Left = 176
     222    Left = 178
    222223    Top = 322
    223     Width = 36
    224     Height = 17
    225     Caption = ' DAYS'
     224    Width = 26
     225    Height = 17
     226    Caption = 'days'
    226227    Color = clBtnFace
    227228    ParentColor = False
     
    244245  end
    245246  object txtDaysPlus: TStaticText
    246     Left = 178
     247    Left = 180
    247248    Top = 374
    248     Width = 36
    249     Height = 17
    250     Caption = ' DAYS'
     249    Width = 26
     250    Height = 17
     251    Caption = 'days'
    251252    Color = clBtnFace
    252253    ParentColor = False
     
    282283  end
    283284  object txtTodayPlus: TStaticText
    284     Left = 42
     285    Left = 46
    285286    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'
    289291    Color = clBtnFace
    290292    ParentColor = False
  • cprs/branches/foia-cprs/CPRS-Chart/Options/fOptionsOther.pas

    r459 r460  
    5252    FstopDt: TFMDateTime;
    5353    FEncStartDays, FEncStopDays, FEncDefStartDays, FEncDefStopDays: integer;
    54     FDefaultEvent: string;
     54    //FDefaultEvent: string;
    5555  public
    5656    { Public declarations }
  • cprs/branches/foia-cprs/CPRS-Chart/Options/fOptionsReportsCustom.dfm

    r459 r460  
    11object frmOptionsReportsCustom: TfrmOptionsReportsCustom
    2   Left = 468
    3   Top = 4
     2  Left = 414
     3  Top = 329
    44  BorderIcons = [biSystemMenu, biHelp]
    55  BorderStyle = bsDialog
  • cprs/branches/foia-cprs/CPRS-Chart/Options/fOptionsReportsCustom.pas

    r459 r460  
    205205      odbStop.Visible := False;
    206206      edtMax.Visible := False;
     207      ShowEditor(grdReport.Col, grdReport.Row, #0);
    207208    end;
    208209  if Key in [#32..#127] then ShowEditor(grdReport.Col, grdReport.Row, Key);
    209   signal := 0;
     210 signal := 0;
    210211end;
    211212
     
    291292        begin
    292293          Val(newValue, I, code);
     294          if I = 0 then begin end; //added to keep compiler from generating a hint
    293295          if code <> 0 then
    294296             begin
  • cprs/branches/foia-cprs/CPRS-Chart/Options/fOptionsReportsDefault.dfm

    r459 r460  
    11object frmOptionsReportsDefault: TfrmOptionsReportsDefault
    2   Left = 604
    3   Top = 172
     2  Left = 773
     3  Top = 334
    44  BorderIcons = [biSystemMenu, biHelp]
    55  BorderStyle = bsDialog
  • cprs/branches/foia-cprs/CPRS-Chart/Options/fOptionsReportsDefault.pas

    r459 r460  
    200200    begin
    201201      Val(newValue, I, code);
     202      if I = 0 then begin end; //added to keep compiler from generating a hint
    202203      if code <> 0 then
    203204        begin
  • cprs/branches/foia-cprs/CPRS-Chart/Options/fOptionsTeams.dfm

    r459 r460  
    208208    OnClick = cboSubscribeClick
    209209    OnKeyDown = cboSubscribeKeyDown
     210    OnMouseClick = cboSubscribeMouseClick
     211    CharsNeedMatch = 1
    210212  end
    211213  object mnuPopPatient: TPopupMenu
  • cprs/branches/foia-cprs/CPRS-Chart/Options/fOptionsTeams.pas

    r459 r460  
    3737    procedure cboSubscribeKeyDown(Sender: TObject; var Key: Word;
    3838      Shift: TShiftState);
     39    procedure cboSubscribeMouseClick(Sender: TObject);
    3940  private
    4041    FKeyBoarding: boolean;
     
    224225procedure TfrmOptionsTeams.cboSubscribeClick(Sender: TObject);
    225226begin
     227  FKeyBoarding := False
     228end;
     229
     230procedure TfrmOptionsTeams.btnRemoveClick(Sender: TObject);
     231begin
     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;
     242end;
     243
     244procedure TfrmOptionsTeams.mnuPatientIDClick(Sender: TObject);
     245begin
     246  DisplayPtInfo(lstPatients.ItemID);
     247end;
     248
     249procedure TfrmOptionsTeams.lstPatientsMouseDown(Sender: TObject;
     250  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
     251begin
     252  mnuPopPatient.AutoPopup := (lstPatients.Items.Count > 0)
     253                              and (lstPatients.ItemIndex > -1)
     254                              and (Button = mbRight);
     255end;
     256
     257procedure TfrmOptionsTeams.cboSubscribeKeyDown(Sender: TObject;
     258  var Key: Word; Shift: TShiftState);
     259begin
     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;
     269end;
     270
     271procedure TfrmOptionsTeams.cboSubscribeMouseClick(Sender: TObject);
     272begin
    226273  if FKeyBoarding then
    227274    FKeyBoarding := False
     
    229276  begin
    230277    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 '
    232281      + Piece(Items[ItemIndex], '^', 2) + '?',
    233282      'Confirmation', MB_YESNO or MB_ICONQUESTION) = IDYES then
     
    249298end;
    250299
    251 procedure TfrmOptionsTeams.btnRemoveClick(Sender: TObject);
    252 begin
    253   with lstTeams do
    254     if InfoBox('Do you want to remove yourself from '
    255       + Piece(Items[ItemIndex], '^', 2) + '?',
    256       'Confirmation', MB_YESNO or MB_ICONQUESTION) = IDYES then
    257   begin
    258     rpcRemoveList(ItemIEN);
    259     Items.Delete(ItemIndex);
    260     lstTeamsClick(self);
    261     FillATeams;
    262   end;
    263 end;
    264 
    265 procedure TfrmOptionsTeams.mnuPatientIDClick(Sender: TObject);
    266 begin
    267   DisplayPtInfo(lstPatients.ItemID);
    268 end;
    269 
    270 procedure TfrmOptionsTeams.lstPatientsMouseDown(Sender: TObject;
    271   Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    272 begin
    273   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 begin
    281   case Key of VK_RETURN:
    282     if (lstTeams.ItemIndex > 0) then
    283       cboSubscribeClick(self); // Provide onclick behavior.
    284   else
    285     FKeyBoarding := True; // Suppress onclick behavior.
    286   end;
    287 end;
    288 
    289300end.
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOCAccept.dfm

    r459 r460  
    1111  TextHeight = 13
    1212  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
    1718    ReadOnly = True
    1819    ScrollBars = ssVertical
    19     TabOrder = 2
     20    TabOrder = 0
    2021    WantReturns = False
    2122  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
    4030    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
    4151  end
    4252end
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOCAccept.pas

    r459 r460  
    55uses
    66  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    7   fAutoSz, StdCtrls, ComCtrls, ORFn;
     7  fAutoSz, StdCtrls, ComCtrls, ORFn, ExtCtrls;
    88
    99type
    1010  TfrmOCAccept = class(TfrmAutoSz)
    1111    memChecks: TRichEdit;
     12    pnlBottom: TPanel;
    1213    cmdAccept: TButton;
    1314    cmdCancel: TButton;
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOCSession.dfm

    r459 r460  
    11inherited frmOCSession: TfrmOCSession
    2   Left = 220
    3   Top = 392
     2  Left = 365
     3  Top = 221
    44  Width = 504
    55  Height = 298
     
    77  Caption = 'Order Checks'
    88  Position = poScreenCenter
     9  ShowHint = True
     10  OnClose = FormClose
     11  OnShow = FormShow
    912  PixelsPerInch = 96
    1013  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
    2321    ItemHeight = 13
    2422    MultiSelect = True
    25     Style = lbOwnerDrawVariable
    26     TabOrder = 0
     23    ParentShowHint = False
     24    ShowHint = True
     25    TabOrder = 1
    2726    OnDrawItem = lstChecksDrawItem
    2827    OnMeasureItem = lstChecksMeasureItem
     28    HintOnItem = True
    2929  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
    5680  end
    5781end
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOCSession.pas

    r459 r460  
    55uses
    66  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    7   fAutoSz, StdCtrls, ORFn, uConst, ORCtrls;
     7  fAutoSz, StdCtrls, ORFn, uConst, ORCtrls, ExtCtrls;
    88
    99type
    1010  TfrmOCSession = class(TfrmAutoSz)
    11     lstChecks: TListBox;
     11    lstChecks: TCaptionListBox;
     12    pnlBottom: TPanel;
     13    lblJustify: TLabel;
    1214    txtJustify: TCaptionEdit;
    13     lblJustify: TLabel;
    1415    cmdCancelOrder: TButton;
    1516    cmdContinue: TButton;
     
    2021    procedure lstChecksDrawItem(Control: TWinControl; Index: Integer;
    2122      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);
    2228  private
    2329    FCritical: Boolean;
     
    3642{$R *.DFM}
    3743
    38 uses rOrders, uCore;
     44uses rOrders, uCore, rMisc;
    3945
    4046type
     
    4955var
    5056  uCheckedOrders: TList;
     57  FOldHintHidePause: integer;
    5158
    5259constructor TOCRec.Create(const AnID: string);
     
    5461  OrderID := AnID;
    5562  Checks := TStringList.Create;
     63  FOldHintHidePause := Application.HintHidePause;
    5664end;
    5765
    5866destructor TOCRec.Destroy;
    5967begin
     68  Application.HintHidePause := FOldHintHidePause;
    6069  Checks.Free;
    6170  inherited Destroy;
     
    141150        frmOCSession.SetReqJustify;
    142151        MessageBeep(MB_ICONASTERISK);
     152        if frmOCSession.Visible then frmOCSession.SetFocus;
    143153        frmOCSession.ShowModal;
    144154      finally
     
    166176  lblJustify.Visible := FCritical;
    167177  txtJustify.Visible := FCritical;
    168 end;
    169 
    170 procedure TfrmOCSession.lstChecksMeasureItem(Control: TWinControl; Index: Integer;
    171   var Height: Integer);
     178
     179end;
     180
     181procedure TfrmOCSession.lstChecksMeasureItem(Control: TWinControl; Index: Integer; var Height: Integer);
    172182var
    173183  i, AHt, TotalHt: Integer;
     
    177187begin
    178188  inherited;
     189
    179190  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;
    198208  Height := TotalHt + 2; // add 2 for focus rectangle
    199 end;
    200 
    201 procedure TfrmOCSession.lstChecksDrawItem(Control: TWinControl; Index: Integer; Rect: TRect;
    202   State: TOwnerDrawState);
     209  if Height > 255 then Height := 255; //CQ7178
     210end;
     211
     212procedure TfrmOCSession.lstChecksDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
    203213var
    204214  i, AHt: Integer;
     
    208218begin
    209219  inherited;
     220
    210221  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
    226230          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
    238247end;
    239248
     
    268277  if FCritical and ((Length(txtJustify.Text) < 2) or not ContainsVisibleChar(txtJustify.Text)) then
    269278  begin
    270     InfoBox('A justification for overriding critical order checks is required.',
     279     InfoBox('A justification for overriding critical order checks is required.',
    271280            'Justification Required', MB_OK);
    272281    Exit;
     
    278287end;
    279288
     289procedure TfrmOCSession.FormClose(Sender: TObject;
     290  var Action: TCloseAction);
     291begin
     292  inherited;
     293  SaveUserBounds(Self); //Save Position & Size of Form
     294end;
     295
     296procedure TfrmOCSession.FormShow(Sender: TObject);
     297begin
     298  inherited;
     299  SetFormPosition(Self); //Get Saved Position & Size of Form
     300end;
     301
     302
     303procedure TfrmOCSession.FormResize(Sender: TObject);
     304begin
     305  //TfrmAutoSz has defect must call inherited Resize for the resize to function.
     306  inherited;
     307end;
     308
     309procedure TfrmOCSession.txtJustifyKeyDown(Sender: TObject; var Key: Word;
     310  Shift: TShiftState);
     311begin
     312  inherited;
     313  //GE CQ9540  activate Return key, behave as "Continue" buttom clicked.
     314  if Key = VK_RETURN then cmdContinueClick(self);
     315end;
     316
    280317end.
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODAllgy.dfm

    r459 r460  
    184184    TabOrder = 3
    185185    OnChange = ControlChange
     186    CharsNeedMatch = 1
    186187  end
    187188  object grpObsHist: TRadioGroup
     
    260261    OnChange = ControlChange
    261262    OnNeedData = cboOriginatorNeedData
     263    CharsNeedMatch = 1
    262264  end
    263265  object cboSymptoms: TORComboBox
     
    285287    OnMouseClick = cboSymptomsMouseClick
    286288    OnNeedData = cboSymptomsNeedData
     289    CharsNeedMatch = 1
    287290  end
    288291  object btnCurrent: TButton
     
    328331    TabOrder = 11
    329332    OnChange = ControlChange
     333    CharsNeedMatch = 1
    330334  end
    331335  object btnRemove: TButton
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODAllgy.pas

    r459 r460  
    496496
    497497procedure TfrmODAllergy.cboSymptomsMouseClick(Sender: TObject);
     498var
     499  x: string;
    498500begin
    499501  inherited;
     
    501503  Changing := True;
    502504  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);
    503510  with lstSelectedSymptoms do
    504511    begin
    505       Items.Add(cboSymptoms.Items[cboSymptoms.ItemIndex]);
     512      Items.Add(x);
    506513      SelectByID(cboSymptoms.ItemID);
    507514    end;
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODAuto.pas

    r459 r460  
    2424
    2525uses rODBase, rOrders, fTemplateDialog, uTemplateFields, rTemplates, uConst, uTemplates,
    26      rConsults;
     26     rConsults, uCore, uODBase;
    2727
    2828procedure TfrmODAuto.InitDialog;
     
    3838  LType: TTemplateLinkType;
    3939  IEN: integer;
     40  HasObjects: boolean;
    4041
    4142begin
     
    4445  LType := DisplayGroupToLinkType(Responses.DisplayGroup);
    4546  tmp := Responses.EValueFor('COMMENT', 1);
     47  ExpandOrderObjects(tmp, HasObjects);
     48  Responses.OrderContainsObjects := Responses.OrderContainsObjects or HasObjects;
    4649  if (LType <> ltNone) or HasTemplateField(tmp) then
    4750  begin
     
    5659    else
    5760      CheckBoilerplate4Fields(tmp, cptn);
    58      
     61
    5962    if tmp <> '' then
    6063      Responses.Update('COMMENT', 1, TX_WPTYPE, tmp)
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODBase.dfm

    r459 r460  
    44  Width = 528
    55  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
    612  BorderIcons = [biSystemMenu]
    713  Caption = ''
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODBase.pas

    r459 r460  
    6262    FLogTime:   TFMDateTime;
    6363    FViewName: string;
     64    FCancel: boolean;
     65    FOrderContainsObjects: boolean;
    6466    function FindResponseByIEN(APromptIEN, AnInstance: Integer): TResponse;
    6567    function GetOrderText: string;
     
    8385    function GetIENForPrompt(const APromptID: string): Integer;
    8486    function FindResponseByName(const APromptID: string; AnInstance: Integer): TResponse;
     87    function PromptExists(const APromptID: string):boolean;
    8588    function InstanceCount(const APromptID: string): Integer;
    8689    function IValueFor(const APromptID: string; AnInstance: Integer): string;
     
    9699      const AnIValue, AnEValue: string);
    97100    property Dialog: string            read FDialog         write SetDialog;
    98     property DisplayGroup: Integer     read FDisplayGroup;
     101    property DisplayGroup: Integer     read FDisplayGroup   write FDisplayGroup;
    99102    property CopyOrder:    string      read FCopyOrder      write SetCopyOrder;
    100103    property EditOrder:    string      read FEditOrder;  //  write SetEditOrder;
     
    110113    property VarTrailing:  string      read FVarTrailing    write FVarTrailing;
    111114    property TheList:      TList       read FResponseList   write FResponseList;
     115    property Cancel:       boolean     read FCancel         write FCancel;
     116    property OrderContainsObjects: boolean read FOrderContainsObjects write FOrderContainsObjects;
    112117  end;
    113118
     
    241246uses fOCAccept, uODBase, rCore, rMisc, fODMessage,
    242247  fTemplateDialog, uEventHooks, uTemplates, rConsults,fOrders,uOrders,
    243   fFrame, uTemplateFields;
     248  fFrame, uTemplateFields, fClinicWardMeds;
    244249
    245250const
     
    583588procedure TResponses.SetCopyOrder(const AnID: string);
    584589{ sets responses to the values for an order that is created by copying }
     590var
     591  HasObjects: boolean;
    585592begin
    586593  if AnID = '' then
     
    590597  end;
    591598  Clear;
    592   LoadResponses(FResponseList, AnID);                      // Example AnID=C123456;1-3604
     599  LoadResponses(FResponseList, AnID, HasObjects);                      // Example AnID=C123456;1-3604
    593600  FCopyOrder := Copy(Piece(AnID, '-', 1), 2, Length(AnID));
     601  FOrderContainsObjects := HasObjects;
    594602end;
    595603
    596604procedure TResponses.SetEditOrder(const AnID: string);
    597605{ sets responses to the values for an order that is about to be edited }
     606var
     607  HasObjects: boolean;
    598608begin
    599609  Clear;
    600   LoadResponses(FResponseList, AnID);                      // Example AnID=X123456;1
     610  LoadResponses(FResponseList, AnID, HasObjects);                      // Example AnID=X123456;1
    601611  FEditOrder := Copy(Piece(AnID, '-', 1), 2, Length(AnID));
     612  FOrderContainsObjects := HasObjects;
    602613end;
    603614
    604615procedure TResponses.SetQuickOrder(AnIEN: Integer);
    605616{ sets responses to a quick order value - this is used by the QuickOrder property}
     617var
     618  HasObjects: boolean;
    606619begin
    607620  Clear;
    608   LoadResponses(FResponseList, IntToStr(AnIEN));           // Example AnIEN=134
     621  LoadResponses(FResponseList, IntToStr(AnIEN), HasObjects);           // Example AnIEN=134
    609622  FQuickOrder := AnIEN;
     623  FOrderContainsObjects := HasObjects;
    610624end;
    611625
    612626procedure TResponses.SetQuickOrderByID(const AnID: string);
    613627{ sets responses to a quick order value }
     628var
     629  HasObjects: boolean;
    614630begin
    615631  Clear;
    616   LoadResponses(FResponseList, AnID);                      // Example AnID=134-3645
     632  LoadResponses(FResponseList, AnID, HasObjects);                      // Example AnID=134-3645
    617633  FQuickOrder := StrToIntDef(Piece(AnID, '-', 1), 0);      // 2nd '-' piece is $H seconds
     634  FOrderContainsObjects := HasObjects;
    618635end;
    619636
     
    671688      break;
    672689    end;
     690end;
     691
     692function TResponses.PromptExists(const APromptID: string): boolean;
     693var
     694  i: Integer;
     695begin
     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;
    673699end;
    674700
     
    958984  APtEvtPtr: string;
    959985begin
     986  //IMOLoc := 0;
    960987  NewPtEvtPtr := 0;
    961988  QOUDGroup := False;
     
    9841011    if IsIMODialog then
    9851012      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;
    9861038    IsEventDefaultOR := EventDefaultOD;
    9871039    if IsUDGroup or QOUDGroup then
     
    10031055      APtEvtPtr   := IntToStr(EventExist(Patient.DFN, FEventIFN));
    10041056      PTEventPtr  := APtEvtPtr;
     1057      //PutNewOrder(AnOrder, ConstructOrder, OrderSource, IMOLoc);
    10051058      PutNewOrder(AnOrder, ConstructOrder, OrderSource);
    10061059      if not SaveAsCurrent then
     
    10121065    else
    10131066    begin
     1067      //PutNewOrder(AnOrder, ConstructOrder, OrderSource, IMOLoc);
    10141068      PutNewOrder(AnOrder, ConstructOrder, OrderSource);
    10151069      if not SaveAsCurrent then
     
    10641118  AResponse: TResponse;
    10651119  IEN: integer;
     1120  HasObjects: boolean;
    10661121
    10671122  procedure AssignBPText(List: TStrings; const Value: string);
     
    10801135      else         IEN := 0;
    10811136    end;
     1137    ExpandOrderObjects(tmp, HasObjects);
     1138    FOrderContainsObjects := FOrderContainsObjects or HasObjects;
    10821139    if IEN <> 0 then
    10831140      begin
     
    10911148    else
    10921149      CheckBoilerplate4Fields(tmp, cptn);
    1093 
    10941150    List.Text := tmp;
    10951151  end;
     
    13261382  if (Encounter.Provider = 0) or (PersonHasKey(Encounter.Provider, 'PROVIDER') = False)
    13271383    then AnErrMsg := TX_NO_PROVIDER;
     1384  if IsPFSSActive and Responses.PromptExists('VISITSTR') then
     1385    Responses.Update('VISITSTR', 1, Encounter.VisitStr, Encounter.VisitStr);
    13281386end;
    13291387
     
    14321490  if not AcceptOrderChecks then
    14331491  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;
    14341499    Result := False;
    14351500    Exit;
     
    14971562  CIDCOkToSave := False;
    14981563  alreadyClosed := False;
     1564  self.Responses.Cancel := False;
    14991565  if frmOrders <> nil then
    15001566  begin
     
    15891655begin
    15901656  inherited;
     1657  //self.Responses.Cancel := False;
    15911658  if User.NoOrdering then Exit;
    15921659  if FAbortOrder then exit;
     
    17261793end;
    17271794
     1795
    17281796end.
    17291797
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODDiet.dfm

    r459 r460  
    11inherited frmODDiet: TfrmODDiet
    2   Left = 404
    3   Top = 199
     2  Left = 541
     3  Top = 398
     4  Width = 532
     5  Height = 291
    46  Caption = 'Diet Order'
    57  OnKeyDown = FormKeyDown
     
    911    Left = 0
    1012    Top = 0
    11     Width = 520
    12     Height = 186
     13    Width = 524
     14    Height = 194
    1315    ActivePage = pgeOutPt
    1416    Align = alTop
     
    8688        OnMouseClick = cboDietAvailMouseClick
    8789        OnNeedData = cboDietAvailNeedData
     90        CharsNeedMatch = 1
    8891      end
    8992      object lstDietSelect: TORListBox
     
    165168        TabOrder = 6
    166169        OnChange = DietChange
     170        CharsNeedMatch = 1
    167171      end
    168172      object chkCancelTubefeeding: TCheckBox
     
    195199      end
    196200      object lblOPDietAvail: TLabel
    197         Left = 127
    198         Top = 0
     201        Left = 0
     202        Top = 1
    199203        Width = 70
    200204        Height = 13
     
    203207      object lblOPComment: TLabel
    204208        Left = 4
    205         Top = 117
     209        Top = 128
    206210        Width = 92
    207211        Height = 13
     
    216220      end
    217221      object lblOPSelect: TLabel
    218         Left = 127
    219         Top = 38
     222        Left = 0
     223        Top = 39
    220224        Width = 64
    221225        Height = 13
     
    223227      end
    224228      object grpOPMeal: TKeyClickRadioGroup
    225         Left = 5
    226         Top = 5
     229        Left = 168
     230        Top = 11
    227231        Width = 110
    228232        Height = 107
     
    234238          'Evening'
    235239          '<none selected>')
    236         TabOrder = 0
     240        TabOrder = 3
    237241        TabStop = True
    238242        OnClick = grpOPMealClick
     
    242246        Top = 5
    243247        Width = 93
    244         Height = 149
     248        Height = 155
    245249        Caption = 'Days of Week'
    246250        TabOrder = 8
     
    334338      end
    335339      object cboOPDietAvail: TORComboBox
    336         Left = 127
    337         Top = 15
     340        Left = 0
     341        Top = 16
    338342        Width = 157
    339343        Height = 21
     
    341345        AutoSelect = True
    342346        Caption = 'Available Diet Components'
    343         Color = clWindow
    344         DropDownCount = 8
    345         ItemHeight = 13
    346         ItemTipColor = clWindow
    347         ItemTipEnable = True
    348         ListItemsOnly = True
    349         LongList = True
    350         LookupPiece = 0
    351         MaxLength = 0
    352         Pieces = '2'
    353         Sorted = False
    354         SynonymChars = '<>'
    355         TabOrder = 1
    356         OnExit = cboDietAvailExit
    357         OnMouseClick = cboOPDietAvailMouseClick
    358         OnNeedData = cboOPDietAvailNeedData
    359       end
    360       object txtOPDietComment: TCaptionEdit
    361         Left = 4
    362         Top = 131
    363         Width = 404
    364         Height = 21
    365         MaxLength = 80
    366         TabOrder = 11
    367         OnChange = OPChange
    368         Caption = 'Special Instructions'
    369       end
    370       object cboOPDelivery: TORComboBox
    371         Left = 292
    372         Top = 86
    373         Width = 120
    374         Height = 21
    375         Style = orcsDropDown
    376         AutoSelect = True
    377         Caption = 'Delivery'
    378347        Color = clWindow
    379348        DropDownCount = 8
     
    388357        Sorted = False
    389358        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
    391372        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
    392398      end
    393399      object lstOPDietSelect: TORListBox
    394         Left = 127
    395         Top = 52
     400        Left = 0
     401        Top = 53
    396402        Width = 156
    397403        Height = 56
     
    399405        ParentShowHint = False
    400406        ShowHint = True
    401         TabOrder = 2
     407        TabOrder = 1
    402408        Caption = 'Selected Diet Components'
    403409        ItemTipColor = clWindow
    404410        LongList = False
    405411        Pieces = '2'
     412        OnChange = OPChange
    406413      end
    407414      object cmdOPRemove: TButton
    408         Left = 212
    409         Top = 109
     415        Left = 85
     416        Top = 110
    410417        Width = 72
    411418        Height = 17
    412419        Caption = 'Remove'
    413         TabOrder = 3
     420        TabOrder = 2
    414421        OnClick = cmdOPRemoveClick
    415422      end
     
    421428        Caption = 'Cancel Tubefeeding'
    422429        State = cbGrayed
    423         TabOrder = 10
     430        TabOrder = 7
    424431        Visible = False
    425         OnClick = DietChange
     432        OnClick = OPChange
    426433      end
    427434    end
     
    469476        Height = 13
    470477        Caption = 'Amount'
     478      end
     479      object lblOPTFStart: TLabel
     480        Left = 341
     481        Top = 90
     482        Width = 51
     483        Height = 13
     484        Caption = 'Start Date:'
    471485      end
    472486      object cboProduct: TORComboBox
     
    493507        OnExit = cboProductExit
    494508        OnMouseClick = cboProductMouseClick
     509        CharsNeedMatch = 1
    495510      end
    496511      object txtTFComment: TCaptionEdit
    497         Left = 4
     512        Left = 6
    498513        Top = 133
    499514        Width = 504
    500515        Height = 21
    501516        MaxLength = 240
    502         TabOrder = 6
     517        TabOrder = 8
    503518        OnChange = TFChange
    504519        Caption = 'Special Instructions'
     
    542557      object txtQuantity: TCaptionEdit
    543558        Tag = -1
    544         Left = 340
    545         Top = 108
     559        Left = 151
     560        Top = 124
    546561        Width = 93
    547562        Height = 19
    548563        Hint =
    549           'Enter quantity as 2000 K, 100 CC/HOUR, 8 OZ/TID, etc; total quan' +
    550           'tity may not exceed 5000cc.'
     564          'Enter quantity as 2000 K, 100 ML/HOUR, 8 OZ/TID, etc; total quan' +
     565          'tity may not exceed 5000ml.'
    551566        Ctl3D = False
    552567        ParentCtl3D = False
     
    563578      object cboStrength: TCaptionComboBox
    564579        Tag = -1
    565         Left = 444
    566         Top = 108
     580        Left = 252
     581        Top = 124
    567582        Width = 53
    568583        Height = 21
     
    583598          'FULL')
    584599        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
    585638      end
    586639    end
     
    705758        Width = 120
    706759        Height = 21
    707         TabOrder = 3
     760        TabOrder = 4
    708761        OnChange = calELStopChange
    709762        DateOnly = True
     
    717770        Height = 152
    718771        Caption = 'Days of Week'
    719         TabOrder = 4
     772        TabOrder = 5
    720773        object chkMonday: TCheckBox
    721774          Left = 8
     
    788841        Height = 17
    789842        Caption = 'Bagged Meal'
    790         TabOrder = 5
     843        TabOrder = 6
    791844        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
    792870      end
    793871    end
     
    861939        Caption = 'Enter Additional Diet Order'
    862940      end
     941      object lblOPAOStart: TLabel
     942        Left = 6
     943        Top = 72
     944        Width = 51
     945        Height = 13
     946        Caption = 'Start Date:'
     947      end
    863948      object txtAOComment: TCaptionEdit
    864949        Left = 4
     
    867952        Height = 21
    868953        MaxLength = 80
    869         TabOrder = 0
     954        TabOrder = 1
    870955        OnChange = AOChange
    871956        Caption = 'Enter Additional Diet Order'
    872957      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
    873996    end
    874997  end
     998  inherited memOrder: TCaptionMemo
     999    Top = 208
     1000  end
    8751001  inherited cmdAccept: TButton
     1002    Left = 445
     1003    Top = 208
    8761004    TabOrder = 2
    8771005  end
    8781006  inherited cmdQuit: TButton
     1007    Left = 445
     1008    Top = 235
    8791009    TabOrder = 3
    8801010  end
    8811011  inherited pnlMessage: TPanel
    882     Top = 172
     1012    Top = 197
    8831013    Height = 57
    8841014    TabOrder = 1
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODDiet.pas

    r459 r460  
    9696    cmdOPRemove: TButton;
    9797    chkOPCancelTubefeeding: TCheckBox;
     98    calOPTFStart: TORDateBox;
     99    lblOPTFStart: TLabel;
     100    lblOPAOStart: TLabel;
     101    calOPAOStart: TORDateBox;
     102    cboOPAORecurringMeals: TORComboBox;
     103    cboOPTFRecurringMeals: TORComboBox;
     104    cboOPELRecurringMeals: TORComboBox;
    98105    procedure nbkDietChanging(Sender: TObject;
    99106      var AllowChange: Boolean);
     
    137144    procedure FormKeyDown(Sender: TObject; var Key: Word;
    138145      Shift: TShiftState);
    139    //  Outpatient meal additions
    140     procedure cboOPDietAvailNeedData(Sender: TObject;
    141       const StartFrom: String; Direction, InsertAt: Integer);
    142146    procedure cboOPDietAvailMouseClick(Sender: TObject);
    143147    procedure cboOPDietAvailExit(Sender: TObject);
     
    149153    procedure grpOPMealClick(Sender: TObject);
    150154    procedure cmdOPRemoveClick(Sender: TObject);
     155    procedure cboOPDietAvailKeyDown(Sender: TObject; var Key: Word;
     156      Shift: TShiftState);
    151157  private
    152158    FNextCol: Integer;
     
    177183    function TFStrengthCode(const x: string): Integer;
    178184   //  Outpatient meal additions
     185    function  FMDOW(AnFMDate: TFMDateTime): integer;
     186    function  FMDays(AStart, AEnd: TFMDateTime): string;
    179187    function  GetOPDaysOfWeek: string;
    180     procedure SetEnableOPDOW(AllowUse: Boolean);
     188    procedure SetEnableOPDOW(AllowUse: Boolean; OneTimeDay: integer; DaysToCheck: string = '');
    181189    procedure ResetControlsOP;
    182190    procedure SetValuesFromResponsesOP;
     
    184192    procedure OPDietCheckForNPO;
    185193    procedure OPDietCheckForTF;
     194    function PatientHasRecurringMeals(var MealList: TStringList; MealType: string = ''): boolean;
    186195  protected
    187196    procedure InitDialog; override;
     
    195204  uDialogName: string;
    196205  uFHAUTH: boolean;
     206  uRecurringMealList: TStringList;
    197207
    198208implementation
     
    200210{$R *.DFM}
    201211
    202 uses uCore, rODBase, rODDiet, rCore, rOrders, fODDietLT, uAccessibleStringGrid;
     212uses uCore, rODBase, rODDiet, rCore, rOrders, fODDietLT, uAccessibleStringGrid, DateUtils;
    203213
    204214const
     
    209219  TX_DIET_PRC = 'This diet conflicts with ';
    210220  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.';
    213222  TC_INPT_ONLY = 'Ordering Restriction';
    214223  TX_CANCEL_TF = 'Cancel the current tubefeeding order?' + CRLF + CRLF;
     
    221230  TX_TFQTY  = 'A quantity must be entered for ';
    222231  TX_TFAMT  = 'The quantity is invalid for ';
    223   TX_TF5000 = 'The total quantity ordered may not exceed 5000cc.';
     232  TX_TF5000 = 'The total quantity ordered may not exceed 5000ml.';
    224233  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 +
    226235              '  Frequency may be DAY, HOUR, QD, QH, BID, TID, QID, Q2H, Q3H, Q4H, or Q6H.' + CRLF +
    227236              '  May also input 100CC/HR X 16 for 16 hours.  Valid quantity for powder form' + CRLF +
     
    242251  TX_AONONE      = 'Text for additional order has not been entered.';
    243252  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.';
    244255  TC_ACCEPT      = 'Unsaved Order';
    245256  TX_EL_SAVE_ERR    = 'An error occurred while saving this late tray order.';
     
    274285                    'coordinator enters times for E/L trays for this location.';
    275286  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');
    276300
    277301type
     
    290314begin
    291315  inherited;
     316  AbortOrder := False;
     317  uRecurringMealList := TStringList.Create;
    292318  if OrderForInpatient then
    293319    begin
     
    302328  else                                         // this block will go away after FH patch installed everywhere
    303329    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;
    306332      Exit;
    307333    end;
     
    313339  if StrToIntDef(ALocation, 0) < 1 then
    314340    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;
    325345    end
    326346  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;
    334367    end;
    335368  TAccessibleStringGrid.WrapControl(grdSelected);
     
    340373  TAccessibleStringGrid.UnwrapControl(grdSelected);
    341374  TFClearGrid;
     375  uRecurringMealList.Free;
    342376  inherited;
    343377end;
     
    350384    ColWidths[1] := Canvas.TextWidth('XFULLX') + GetSystemMetrics(SM_CXVSCROLL);
    351385    ColWidths[2] := Canvas.TextWidth('100 GRAMS/HOUR X 24');
    352     ColWidths[3] := Canvas.TextWidth('55000cc');
     386    ColWidths[3] := Canvas.TextWidth('55000ml');
    353387    ColWidths[0] := ClientWidth - ColWidths[1] - ColWidths[2] - ColWidths[3] - 3;
    354388    lblTFStrength.Left := Left + ColWidths[0] + 3;
     
    368402procedure TfrmODDiet.SetupDialog(OrderAction: Integer; const ID: string);
    369403begin
     404  if AbortOrder then exit;
    370405  inherited;
    371406  uDialogName := ExternalName(DialogIEN, 101.41);
     
    396431       end;
    397432  'T': begin
     433         if (not OrderForInpatient) and (not PatientHasRecurringMeals(uRecurringMealList)) then
     434         begin
     435           Close;
     436           Exit;
     437         end;
    398438         nbkDiet.ActivePage := pgeTubefeeding;
    399439         nbkDietChange(Self);
     
    401441       end;
    402442  'E': begin
     443         if (not OrderForInpatient) and (not PatientHasRecurringMeals(uRecurringMealList)) then
     444         begin
     445           Close;
     446           Exit;
     447         end;
    403448         nbkDiet.ActivePage := pgeEarlyLate;
    404449         nbkDietChange(Self);
     
    411456       end;
    412457  'A': begin
     458         if (not OrderForInpatient) and (not PatientHasRecurringMeals(uRecurringMealList)) then
     459         begin
     460           Close;
     461           Exit;
     462         end;
    413463         nbkDiet.ActivePage := pgeAdditional;
    414464         nbkDietChange(Self);
     
    442492        nbkDietChange(Self);
    443493        if OrderAction <> ORDER_NEW then SetValuesFromResponsesDO;
     494        ActiveControl := cboOPDietAvail;
    444495      end;
    445496  end;
     
    517568    end;
    518569    if Sum > 5000 then SetError(TX_TF5000);
     570    if not OrderForInpatient then
     571      if not calOPTFStart.IsValid      then SetError(TX_BAD_START);
    519572  end;
    520573  if nbkDiet.ActivePage = pgeEarlyLate then
    521574  begin
    522575    if grpMeal.ItemIndex = 3                                   then SetError(TX_ELMEAL);
    523     if GetMealTime = ''                                        then SetError(TX_ELTIME);
    524576    if not calELStart.IsValid                                  then SetError(TX_ELNOSTART);
    525     if not calELStop.IsValid                                   then SetError(TX_ELNOSTOP);
    526577    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);
    529578    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;
    531587    if grpDOW.Enabled and (GetDaysOfWeek = '')                 then SetError(TX_ELDOW);
    532588    if MealTimePassed                                          then SetError(TX_ELPAST);
     
    539595  begin
    540596    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;
    543600  if nbkDiet.ActivePage = pgeOutPt then
    544601  begin
     
    580637  FTabChanging := True;
    581638  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
    591665    end;
    592666  FTabChanging := False;
     
    594668
    595669procedure TfrmODDiet.nbkDietChange(Sender: TObject);
     670var
     671  x, CxMsg: string ;
     672  i: integer;
     673  AStringList: TStringList;
     674const
     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;
    596680begin
    597681  inherited;
    598682  // 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;
    599688  StatusText('Loading Dialog Definition');
    600689  if Sender <> Self then Responses.Clear;
     
    603692  begin
    604693    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);
    606726    Responses.Dialog := 'FHW1';                            // Diet Order
    607727    DisplayGroup := DisplayGroupForDialog('FHW1');
     
    615735  if nbkDiet.ActivePage = pgeTubefeeding then
    616736  begin
    617 { TODO -oRich V. -cOutpatient Meals : Prompt for which recurring meal(s) to apply this order against }
    618737    if not OrderForInpatient then
    619738    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;
    625752    AllowQuickOrder := True;
    626753    if Length(uDietParams.CurTF) > 0
     
    644771  if nbkDiet.ActivePage = pgeEarlyLate then
    645772  begin
    646 { TODO -oRich V. -cOutpatient Meals : Prompt for which recurring meal to apply this order against }
    647773    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
    654785    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;
    661801    AllowQuickOrder := False;
    662802    OrderMessage('');
     
    678818  if nbkDiet.ActivePage = pgeAdditional then
    679819  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;
    688835    AllowQuickOrder := False;
    689836    OrderMessage('');
     
    694841  if nbkDiet.ActivePage = pgeOutPt then
    695842  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';
    697850    Responses.Dialog := uDialogName;
    698851    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
    713853      begin
    714854       AllowQuickOrder := False;
    715855       ResetControlsOP;
    716        cboOPDietAvail.InitLongList('');
     856       cboOPDietAvail.Items.AddStrings(SubsetOfOPDiets);
    717857       { TODO -oRich V. -cOutpatient Meals : Need to DC Tubefeeding order for OP meals? }
    718858       chkOPCancelTubefeeding.State := cbGrayed;
     
    723863       pgeAdditional.TabVisible := False;
    724864       pgeEarlyLate.TabVisible := False;
    725        cboOPDietAvail.SelectByIEN(uDietParams.RegIEN);
     865       cboOPDietAvail.SelectByIEN(uDietParams.OPDefaultDiet);
    726866       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;
    727884      end;
    728885  end;
     
    802959          InfoBox(Piece(ADiet,'^',2), TC_DIET_ERR, MB_OK);
    803960          cboDietAvail.ItemIndex := -1;
     961          Changing := False;
    804962          Exit;
    805963        end;
     
    9351093  TFClearGrid;
    9361094  chkCancelTrays.Checked := False;
     1095  calOPTFStart.Text := '';
    9371096  txtTFComment.Text := '';
    9381097end;
     
    9731132    AResponse := FindResponseByName('CANCEL', 1);
    9741133    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;
    9751139    SetControl(txtTFComment, 'COMMENT',  1);
    9761140  end;
     
    11141278    begin
    11151279      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';
    11171281    end
    11181282    else grdSelected.Cells[3, ARow] := '';
     
    12681432    then Responses.Update('CANCEL', 1, '1', 'Yes')
    12691433    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;
    12701439  memOrder.Text := Responses.OrderText;
    12711440end;
     
    13231492      if radLT3.Caption = AResponse.IValue then radLT3.Checked := True;
    13241493    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;
    13271501    calELStopChange(Self);
    13281502    AResponse := FindResponseByName('SCHEDULE', 1);
     
    14031577    lblNoTimes.Visible := not HasTimes;
    14041578  end;
    1405 
    1406 begin
    1407   inherited;
     1579var
     1580  AMeal: string;
     1581begin
     1582  inherited;
     1583  Changing := True;
    14081584  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);
    14141621end;
    14151622
     
    14451652begin
    14461653  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)
    14481656    then SetEnableDOW(False)
    14491657    else SetEnableDOW(True);
     
    14781686      then Responses.Update('ORDERABLE', 1, uDietParams.EarlyIEN, 'EARLY TRAY')
    14791687      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;
    14801693  end;
    14811694  with calELStart   do if Length(Text) > 0 then Responses.Update('START',     1, Text,   Text);
     
    15251738begin
    15261739  txtAOComment.Text := '';
     1740  calOPAOStart.Text := '';
    15271741end;
    15281742
     
    15321746  ResetControlsAO;
    15331747  Responses.SetControl(txtAOComment, 'COMMENT', 1);
     1748  //Responses.SetControl(calOPAOStart, 'DATETIME', 1);
     1749  Responses.SetControl(cboOPAORecurringMeals, 'DATETIME', 1);
    15341750  Changing := False;
    15351751  AOChange(Self);
     
    15421758  with txtAOComment do if Text <> ''
    15431759    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;
    15441765  memOrder.Text := Responses.OrderText;
    15451766end;
    15461767
     1768
    15471769{ Outpatient Meals Order tab ----------------------------------------------------------------- }
    1548 
    1549 procedure TfrmODDiet.cboOPDietAvailNeedData(Sender: TObject; const StartFrom: string;
    1550   Direction, InsertAt: Integer);
    1551 begin
    1552   inherited;
    1553   cboOPDietAvail.ForDataUse(SubsetOfOPDiets(StartFrom, Direction));
    1554 end;
    15551770
    15561771procedure TfrmODDiet.cboOPDietAvailMouseClick(Sender: TObject);
     
    15661781begin
    15671782  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  ;
    15681789  if CharAt(cboOPDietAvail.ItemID, 1) = 'Q' then              // setup quick order
    15691790  begin
     
    15921813    OPChange(Sender);
    15931814  end; {if cboOPDietAvail}
     1815  OPChange(Sender);
    15941816  cboOPDietAvail.ItemIndex := -1;
    1595   OPChange(Sender);
    15961817end;
    15971818
     
    16431864procedure TfrmODDiet.SetValuesFromResponsesOP;
    16441865var
    1645   //AnInstance: Integer;
    16461866  AResponse: TResponse;
    16471867  ADiet: string;
     
    16511871  with Responses do
    16521872  begin
    1653 (*    AnInstance := NextInstance('ORDERABLE', 0);
    1654     while AnInstance > 0 do
    1655     begin
    1656       AResponse := FindResponseByName('ORDERABLE', AnInstance);
    1657       if AResponse <> nil then
    1658       begin
    1659         ADiet := DietAttributes(StrToIntDef(AResponse.IValue,0));
    1660         if Piece(ADiet,'^',1)='0' then
    1661         begin
    1662           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 
    16711873    AResponse := FindResponseByName('ORDERABLE', 1);
    16721874    if AResponse <> nil then
     
    16771879        InfoBox(Piece(ADiet,'^',2), TC_OP_DIET_ERR, MB_OK);
    16781880        cboOPDietAvail.ItemIndex := -1;
     1881        Changing := False;
    16791882        Exit;
    16801883      end;
     
    17211924begin
    17221925  inherited;
     1926  if Changing then exit;
    17231927  if FChangeStop then
    17241928    calOPStop.Text := calOPStart.Text
     
    17271931end;
    17281932
     1933function TfrmODDiet.FMDOW(AnFMDate: TFMDateTime): integer;
     1934var
     1935  WinDate: TDateTime;
     1936  x: integer;
     1937begin
     1938  WinDate := FMDateTimeToDateTime(AnFMDate);
     1939  x := DayOfTheWeek(WinDate);
     1940  Result := x;
     1941end;
     1942
     1943function TfrmODDiet.FMDays(AStart, AEnd: TFMDateTime): string;
     1944var
     1945  AWinStart, AWinEnd: TDateTime;
     1946  i: double;
     1947  Days: string;
     1948begin
     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;
     1957end;
     1958
    17291959procedure 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);
     1960var
     1961  Days: string;
     1962begin
     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;
    17351976end;
    17361977
    17371978procedure 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);
     1979var
     1980  Days: string;
     1981begin
     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;
    17431996  OPChange(Sender);
    17441997end;
     
    17522005  if Changing then Exit;
    17532006  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 diets
     2007  // Per NFS, only one selection allowed from any of 10-15 available OP diets
    17552008  with lstOPDietSelect do if Items.Count > 0 then
    17562009    Responses.Update('ORDERABLE', 1, Piece(Items[0], U, 1), Piece(Items[0], U, 2));
     
    17652018    begin
    17662019      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);
    17682022    end;
    17692023  with txtOPDietComment do {if Length(Text) > 0 then} Responses.Update('COMMENT',   1, Text,   Text);
     
    17842038end;
    17852039
    1786 procedure TfrmODDiet.SetEnableOPDOW(AllowUse: Boolean);
    1787 begin
     2040procedure TfrmODDiet.SetEnableOPDOW(AllowUse: Boolean; OneTimeDay: integer; DaysToCheck: string = '');
     2041var
     2042  i: integer;
     2043begin
     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;
    17882053  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);
    17962061end;
    17972062
     
    18962161    // check if late tray should be ordered
    18972162    AResponse := Responses.FindResponseByName('ORDERABLE', 1);
    1898     if (AResponse <> nil) and (Copy(AResponse.EValue, 1, 3) <> 'NPO') then
     2163    if (Self.EvtID = 0) and (AResponse <> nil) and (Copy(AResponse.EValue, 1, 3) <> 'NPO') then
    18992164    begin
    19002165      AResponse := Responses.FindResponseByName('START', 1);
     
    19152180    // check if late tray should be ordered
    19162181    AResponse := Responses.FindResponseByName('ORDERABLE', 1);
    1917     if (AResponse <> nil) and (Copy(AResponse.EValue, 1, 3) <> 'NPO') then
     2182    if (Self.EvtID = 0) and (AResponse <> nil) and (Copy(AResponse.EValue, 1, 3) <> 'NPO') then
    19182183    begin
    19192184      AResponse := Responses.FindResponseByName('START', 1);
     
    19302195    if NewOrder.ID <> '' then
    19312196    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;
    19352207      Changes.Add(CH_ORD, NewOrder.ID, NewOrder.Text, '', CanSign);
    19362208      SendMessage(Application.MainForm.Handle, UM_NEWORDER, ORDER_NEW, Integer(NewOrder))
     
    19552227end;
    19562228
     2229procedure TfrmODDiet.cboOPDietAvailKeyDown(Sender: TObject; var Key: Word;
     2230  Shift: TShiftState);
     2231begin
     2232  inherited;
     2233  if Key = VK_RETURN then cboOPDietAvailMouseClick(Self);
     2234end;
     2235
     2236function TfrmODDiet.PatientHasRecurringMeals(var MealList: TStringList; MealType: string = ''): boolean;
     2237const
     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 ' ;
     2242begin
     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;
     2252end;
     2253
    19572254end.
    19582255
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODDietLT.pas

    r459 r460  
    7575  begin
    7676    TimePart := Frac(x);
    77     if TimePart > 0.12 then
     77    if TimePart > 0.1159 then
    7878    begin
    79       x := x - 0.12;
     79      if TimePart > 0.1259 then x := x - 0.12;
    8080      Suffix := 'P'
    8181    end
     
    127127       (TimePart < (StrToIntDef(Piece(DietParams.Alarms, U, 6), 0) / 10000)) then Meal := 'E';
    128128    if Meal = #0 then Exit;
    129     // get the available late times for this meal
    130     case Meal of
    131     '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;
    137129  end
    138130  else  // for outpatients
    139131  begin
     132(*  From Rich Knoepfle, NFS developer
     133If 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).
     134If it's before the LATE BREAKFAST ALARM BEGIN than I accept the order.
     135If it's between the LATE BREAKFAST ALARM BEGIN and ALARM END then I ask if they want to order a Late breakfast tray.
     136*)
    140137    Meal := AMeal;
    141138    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;
    145145    end;
    146146    if Meal = #0 then exit;
    147147  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
    148158  // setup form to get the selected late tray
    149159  frmODDietLT := TfrmODDietLT.Create(Application);
     
    153163    begin
    154164      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;
    166172      chkBagged.Visible := DietParams.Bagged;
    167173      with lblMealCutOff do case Meal of
     
    174180      if YesPressed then
    175181      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;
    184185        LateTrayFields.LateMeal := Meal;
    185186        LateTrayFields.IsBagged := chkBagged.Checked;
    186       end; {if YesPressed}
     187      end;
    187188    end; {with frmODDietLT}
    188189  finally
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODGen.pas

    r459 r460  
    339339    Editor.SetBounds(FEditorLeft, FEditorTop, NUM_CHAR * FCharWd, HT_FRAME * FCharHt);
    340340    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
    341342    TORDateBox(Editor).Text := DialogItem.EDefault;
    342343    TORDateBox(Editor).Hint := DialogItem.HelpText;
     
    490491        end;
    491492        with TORComboBox(Editor) do
     493        begin
    492494          Items.AddStrings(TStrings(TopTSList));
     495          LongList := false;
     496        end;
    493497      end else
    494498        TORComboBox(Editor).OnNeedData := LookupNeedData;
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODLab.dfm

    r459 r460  
    374374    OnExit = cboAvailTestExit
    375375    OnNeedData = cboAvailTestNeedData
     376    CharsNeedMatch = 1
    376377  end
    377378  object cboFrequency: TORComboBox
     
    397398    TabOrder = 16
    398399    OnChange = cboFrequencyChange
     400    CharsNeedMatch = 1
    399401  end
    400402  object cboCollSamp: TORComboBox
     
    423425    OnKeyPause = cboCollSampKeyPause
    424426    OnMouseClick = cboCollSampMouseClick
     427    CharsNeedMatch = 1
    425428  end
    426429  object cboSpecimen: TORComboBox
     
    451454    OnKeyPause = cboSpecimenKeyPause
    452455    OnMouseClick = cboSpecimenMouseClick
     456    CharsNeedMatch = 1
    453457  end
    454458  object cboUrgency: TORComboBox
     
    474478    TabOrder = 3
    475479    OnChange = cboUrgencyChange
     480    CharsNeedMatch = 1
    476481  end
    477482  object txtAddlComment: TCaptionEdit
     
    533538    OnChange = cboCollTimeChange
    534539    OnExit = cboCollTimeExit
     540    CharsNeedMatch = 1
    535541  end
    536542  object cboCollType: TORComboBox
     
    556562    TabOrder = 11
    557563    OnChange = cboCollTypeChange
     564    CharsNeedMatch = 1
    558565  end
    559566  object dlgLabCollTime: TORDateTimeDlg
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODLab.pas

    r459 r460  
    181181
    182182uses rODBase, rODLab, uCore, rCore, fODLabOthCollSamp, fODLabOthSpec, fODLabImmedColl, fLabCollTimes,
    183  rOrders, uODBase, fRptBox;
     183 rOrders, uODBase, fRptBox, fFrame;
    184184
    185185
     
    208208  AList: TStringList;
    209209begin
     210  frmFrame.pnlVisit.Enabled := false;
    210211  AutoSizeDisabled := True;
    211212  inherited;
     
    417418      TestID := StrToInt(LabTestIEN);
    418419      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);
    420421      TestReqComment := ExtractDefault(LoadData, 'ReqCom');
    421422      if Length(ExtractDefault(LoadData, 'Unique CollSamp')) > 0 then UniqueCollSamp := True;
     
    826827
    827828procedure TfrmODLab.ControlChange(Sender: TObject);
     829var
     830  AResponse: TResponse;
     831  AVisitStr: string;
    828832begin
    829833  inherited;
    830834  if Changing or (ALabTest = nil) then Exit;
     835  AResponse := Responses.FindResponseByName('VISITSTR', 1);
     836  if AResponse <> nil then
     837    AVisitStr := AResponse.EValue;
    831838  Responses.Clear;
    832839  with ALabTest do
     
    877884  with txtDays do if Enabled then Responses.Update('DAYS', 1, Text, Text);
    878885  { worry about stop date later }
     886  if AVisitStr <> '' then Responses.Update('VISITSTR', 1, AVisitStr, AVisitStr);
    879887  memOrder.Text := Responses.OrderText;
    880888end;
     
    15271535  inherited;
    15281536  if FCmtTypes <> nil then FCmtTypes.Free;
     1537  frmFrame.pnlVisit.Enabled := true;
    15291538end;
    15301539
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODMedFA.dfm

    r459 r460  
    55  Height = 205
    66  Caption = 'Formulary Alternatives'
     7  FormStyle = fsStayOnTop
    78  OnCreate = FormCreate
    89  PixelsPerInch = 96
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODMedIV.dfm

    r459 r460  
    11inherited frmODMedIV: TfrmODMedIV
    2   Left = 321
    3   Top = 199
     2  Left = 587
     3  Top = 331
    44  Width = 610
    55  Height = 341
    6   Caption = 'IV Fluid Order'
     6  Caption = 'Infusion Order'
    77  OnKeyDown = FormKeyDown
    88  PixelsPerInch = 96
     
    1111    Left = 6
    1212    Top = 196
    13     Width = 63
    14     Height = 13
    15     Caption = 'Infusion Rate'
     13    Width = 96
     14    Height = 13
     15    Caption = 'Infusion Rate (ml/hr)'
    1616  end
    1717  object lblPriority: TLabel [1]
     
    3030  end
    3131  object lblAmount: TLabel [3]
    32     Left = 333
     32    Left = 328
    3333    Top = 6
    34     Width = 74
    35     Height = 13
    36     Caption = 'Volume/Strenth'
     34    Width = 80
     35    Height = 13
     36    Caption = 'Volume/Strength'
    3737    WordWrap = True
    3838  end
     
    5151    Caption = 'Duration or Total Volume'
    5252  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]
    10854    Left = 6
    10955    Top = 210
     
    11157    Height = 21
    11258    AutoSelect = False
    113     TabOrder = 6
     59    TabOrder = 5
    11460    OnChange = ControlChange
     61    OnExit = txtRateExit
    11562    Caption = 'Infusion Rate'
    11663  end
    117   object cboPriority: TORComboBox [11]
     64  object cboPriority: TORComboBox [7]
    11865    Left = 134
    11966    Top = 210
     
    13582    Sorted = False
    13683    SynonymChars = '<>'
    137     TabOrder = 7
     84    TabOrder = 6
    13885    OnChange = ControlChange
    13986    CharsNeedMatch = 1
    14087  end
    141   object grdSelected: TCaptionStringGrid [12]
     88  object grdSelected: TCaptionStringGrid [8]
    14289    Left = 214
    14390    Top = 20
     
    15299    Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goDrawFocusSelected]
    153100    ScrollBars = ssVertical
    154     TabOrder = 3
     101    TabOrder = 2
    155102    OnDrawCell = grdSelectedDrawCell
    156103    OnKeyPress = grdSelectedKeyPress
     
    158105    Caption = 'Selected Solution and Additives'
    159106  end
    160   object cmdRemove: TButton [13]
     107  object cmdRemove: TButton [9]
    161108    Left = 443
    162109    Top = 99
     
    164111    Height = 18
    165112    Caption = 'Remove'
    166     TabOrder = 4
     113    TabOrder = 3
    167114    OnClick = cmdRemoveClick
    168115  end
    169   object memComments: TCaptionMemo [14]
     116  object memComments: TCaptionMemo [10]
    170117    Left = 214
    171118    Top = 120
     
    175122      'memComments')
    176123    ScrollBars = ssVertical
    177     TabOrder = 5
     124    TabOrder = 4
    178125    OnChange = ControlChange
    179126    Caption = 'Comments'
    180127  end
    181   object txtSelected: TCaptionEdit [15]
     128  object txtSelected: TCaptionEdit [11]
    182129    Tag = -1
    183130    Left = 416
     
    187134    Ctl3D = False
    188135    ParentCtl3D = False
    189     TabOrder = 1
     136    TabOrder = 0
    190137    Text = 'meq.'
    191138    Visible = False
     
    194141    Caption = 'Volume'
    195142  end
    196   object cboSelected: TCaptionComboBox [16]
     143  object cboSelected: TCaptionComboBox [12]
    197144    Tag = -1
    198145    Left = 460
     
    204151    ItemHeight = 13
    205152    ParentCtl3D = False
    206     TabOrder = 2
     153    TabOrder = 1
    207154    Visible = False
    208155    OnChange = cboSelectedChange
     
    210157    Caption = 'Volume/Strength'
    211158  end
     159  inherited memOrder: TCaptionMemo
     160    Top = 255
     161    Width = 475
     162    TabOrder = 10
     163  end
    212164  inherited cmdAccept: TButton
    213165    Left = 495
    214166    Top = 255
    215     TabOrder = 9
     167    TabOrder = 8
    216168  end
    217169  inherited cmdQuit: TButton
    218170    Left = 495
    219171    Top = 282
    220     TabOrder = 10
     172    TabOrder = 9
    221173  end
    222174  inherited pnlMessage: TPanel
    223175    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
    252177  end
    253178  object pnlXDuration: TPanel
     
    257182    Height = 21
    258183    BevelOuter = bvNone
    259     TabOrder = 8
     184    TabOrder = 7
    260185    OnEnter = pnlXDurationEnter
    261186    DesignSize = (
    262187      121
    263188      21)
    264     object btnXDuration: TSpeedButton
     189    object btnXDuration: TBitBtn
    265190      Left = 69
    266191      Top = 1
     
    269194      Anchors = [akLeft, akTop, akRight, akBottom]
    270195      Caption = 'days'
     196      TabOrder = 1
     197      OnClick = btnXDurationClick
    271198      Glyph.Data = {
    272199        AE000000424DAE0000000000000076000000280000000E000000070000000100
     
    279206      NumGlyphs = 2
    280207      Spacing = 0
    281       Transparent = False
    282       OnClick = btnXDurationClick
    283208    end
    284209    object txtXDuration: TCaptionEdit
     
    293218    end
    294219  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
    295299  object popDuration: TPopupMenu
    296300    AutoHotkeys = maManual
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODMedIV.pas

    r459 r460  
    99type
    1010  TfrmODMedIV = class(TfrmODBase)
    11     tabFluid: TTabControl;
    12     cboSolution: TORComboBox;
    1311    lblInfusionRate: TLabel;
    1412    txtRate: TCaptionEdit;
    15     lblPriority: TLabel;
    16     cboPriority: TORComboBox;
    1713    lblComponent: TLabel;
    1814    lblAmount: TLabel;
     
    2117    lblComments: TLabel;
    2218    memComments: TCaptionMemo;
    23     cboAdditive: TORComboBox;
    2419    txtSelected: TCaptionEdit;
    2520    cboSelected: TCaptionComboBox;
    26     Label1: TStaticText;
    2721    popDuration: TPopupMenu;
    2822    popML: TMenuItem;
     
    3327    txtXDuration: TCaptionEdit;
    3428    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;
    3636    procedure FormCreate(Sender: TObject);
    3737    procedure tabFluidChange(Sender: TObject);
     
    6464    procedure pnlXDurationEnter(Sender: TObject);
    6565    procedure txtXDurationExit(Sender: TObject);
     66    procedure txtRateExit(Sender: TObject);
    6667  private
    6768    FInpatient: Boolean;
     
    8485{$R *.DFM}
    8586
    86 uses ORFn, uConst, rODMeds, rODBase, uAccessibleStringGrid;
     87uses ORFn, uConst, rODMeds, rODBase, uAccessibleStringGrid, fFrame;
    8788
    8889const
     
    129130  Restriction: string;
    130131begin
     132  frmFrame.pnlVisit.Enabled := false;
    131133  inherited;
    132134  AllowQuickOrder := True;
     
    155157  with grdSelected do for i := 0 to RowCount - 1 do TIVComponent(Objects[0, i]).Free;
    156158  inherited;
     159  frmFrame.pnlVisit.Enabled := True;
    157160end;
    158161
     
    454457    end;
    455458  end;
     459  Application.ProcessMessages;         //CQ: 10157
    456460  ClickOnGridCell;
    457   if cboAdditive.Visible then
    458     ActiveControl := cboAdditive;
    459461  ControlChange(Sender);
    460462end;
     
    522524    Col := 1;
    523525  end;
     526  Application.ProcessMessages;         //CQ: 10157
    524527  ClickOnGridCell;
    525528  ControlChange(Sender);
     
    550553      Show;
    551554      SetFocus;
     555      if AControl is TComboBox then                    //CQ: 10157
     556        TComboBox(AControl).DroppedDown := True;
    552557    end;
    553558  end;
     
    855860procedure TfrmODMedIV.txtXDurationExit(Sender: TObject);
    856861var
     862  Len: Integer;
    857863  Code: double;
     864  Digits, Warning: string;
    858865begin
    859866  inherited;
    860867  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;
    861885  if (Pos('.', txtXDuration.Text)>0) and
    862886     ((btnXduration.Caption = 'days') or (btnXduration.Caption = 'hours')) then
     
    897921end;
    898922
     923procedure TfrmODMedIV.txtRateExit(Sender: TObject);
     924var
     925ErrorText, LDec,RDec: string;
     926i: Integer;
     927Result: boolean;
     928begin
     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;
     952end;
     953
    899954end.
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODMedNVA.dfm

    r459 r460  
    11inherited frmODMedNVA: TfrmODMedNVA
    2   Left = 168
    3   Top = 36
     2  Left = 100
     3  Top = 167
    44  Width = 632
    55  Height = 536
     
    5757      Height = 133
    5858      Align = alTop
     59      BevelInner = bvLowered
     60      BevelOuter = bvSpace
    5961      Columns = <
    6062        item
     
    6365      ColumnClick = False
    6466      HideSelection = False
     67      HotTrack = True
    6568      OwnerData = True
    6669      ParentShowHint = False
     
    7174      ViewStyle = vsReport
    7275      OnChange = lstChange
     76      OnClick = ListViewClick
    7377      OnData = lstQuickData
     78      OnEditing = ListViewEditing
     79      OnEnter = ListViewEnter
     80      OnResize = ListViewResize
    7481      Caption = 'Quick Orders'
    7582    end
     
    215222        OnExit = cboDosageExit
    216223        CharsNeedMatch = 1
    217         UniqueAutoComplete = True
    218224      end
    219225      object cboRoute: TORComboBox
     
    245251        OnExit = cboRouteExit
    246252        CharsNeedMatch = 1
    247         UniqueAutoComplete = True
    248253      end
    249254      object cboSchedule: TORComboBox
     
    273278        OnExit = cboScheduleExit
    274279        CharsNeedMatch = 1
    275         UniqueAutoComplete = True
    276280      end
    277281      object chkPRN: TCheckBox
     
    285289        ParentColor = False
    286290        TabOrder = 5
     291        OnClick = chkPRNClick
    287292      end
    288293    end
     
    308313      object Label1: TLabel
    309314        Left = 5
    310         Top = 50
     315        Top = 47
    311316        Width = 108
    312317        Height = 13
     
    319324        Height = 13
    320325        Caption = 'Start Date:'
     326      end
     327      object Image1: TImage
     328        Left = 25
     329        Top = 17
     330        Width = 31
     331        Height = 31
    321332      end
    322333      object memComment: TCaptionMemo
     
    354365      end
    355366      object lbStatements: TORListBox
    356         Left = 8
    357         Top = 62
     367        Left = 7
     368        Top = 59
    358369        Width = 603
    359         Height = 76
     370        Height = 81
    360371        Style = lbOwnerDrawFixed
    361372        Anchors = [akLeft, akTop, akRight]
     
    370381        OnClickCheck = lbStatementsClickCheck
    371382      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
    372397    end
    373398  end
    374399  object btnSelect: TButton
    375400    Left = 539
    376     Top = 461
     401    Top = 463
    377402    Width = 72
    378403    Height = 21
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODMedNVA.pas

    r459 r460  
    11unit fODMedNVA;
    22
    3 interface                         
     3interface
    44
    55uses
     
    4141    Label2: TLabel;
    4242    btnSelect: TButton;
     43    Image1: TImage;
     44    memDrugMsg: TMemo;
    4345    procedure FormCreate(Sender: TObject);
    4446    procedure btnSelectClick(Sender: TObject);
     
    6870    procedure cboScheduleClick(Sender: TObject);
    6971    procedure cboRouteExit(Sender: TObject);
    70 
     72    procedure DispOrderMessage(const AMessage: string);
    7173
    7274
     
    8991      Change: TItemChange);
    9092    procedure FormKeyPress(Sender: TObject; var Key: Char);
     93
    9194  private
    9295    {selection}
     
    121124    FPtInstruct: string;
    122125    FAltChecked: Boolean;
     126    FShrinkDrugMsg: boolean;
    123127    FQOQuantity: Double;
    124128    FQODosage: string;
     
    129133    FDisabledCancelButton: TButton;
    130134    FShrinked: boolean;
     135    FQOInitial: boolean;
    131136    FRemoveText : Boolean;
    132137    {selection}
     
    291296  TX_NO_FUTURE_DATES  = 'Dates in the future are not allowed.';
    292297  TX_BAD_DATE         = 'Dates must be in the format mm/dd/yy or mm/yy';
    293 
     298  TX_CAP_FUTURE       = 'Invalid date';
    294299
    295300{ procedures inherited from fODBase --------------------------------------------------------- }
     
    300305var
    301306  ListCount: Integer;
    302   Restriction, x : string;
    303 begin
     307  Restriction, x: string;
     308begin
     309  frmFrame.pnlVisit.Enabled := false;
    304310  AutoSizeDisabled := True;
    305311 // ActivateOrderDialog(Piece(DialogInfo, ';', 1), DelayEvent, Self, 0);
    306312  inherited;
     313  AllowQuickOrder := True;
     314
    307315  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
    317329
    318330  if DlgFormID = OD_MEDNONVA  then FNonVADlg := TRUE;
     
    363375  LoadOTCStatements(lbStatements.Items);
    364376  FRemoveText := True;
     377  FShrinkDrugMsg := False;
    365378end;
    366379
     
    376389 // TAccessibleStringGrid.UnwrapControl(grdDoses);
    377390  inherited;
     391  frmFrame.pnlVisit.Enabled := true;
    378392end;
    379393
     
    401415procedure TfrmODMedNVA.SetupDialog(OrderAction: Integer; const ID: string);
    402416var
     417  //AnInstr: string;
    403418  OrderID: string;
    404419begin
     
    429444    Changing := False;
    430445  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;}
    432460  ControlChange(Self);
    433461end;
     
    527555end;
    528556
    529 
    530557{ Navigate medication selection lists ------------------------------------------------------- }
    531558
     
    607634var
    608635  Offset: Integer;
     636  SelRect: TRect;
    609637begin
    610638  AListView.Selected.MakeVisible(FALSE);
     639  SelRect := AListView.Selected.DisplayRect(drBounds);   //  CQ: 6636
     640  FRowHeight := SelRect.Bottom - SelRect.Top;
    611641  Offset := AListView.Selected.Index - AListView.TopItem.Index;
    612642  Application.ProcessMessages;
     
    803833    Changing := True;
    804834    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
    806862    begin
    807863      MedIEN := Integer(lstAll.Selected.Data);
     
    831887      ShowMedFields;
    832888    end
    833     else                                                                 // no selection
     889    else                                           // no selection
    834890    begin
    835891      MessageBeep(0);
     
    842898  else ShowMedSelect;                             // show the selection fields
    843899  FNoZERO   := False;
    844 
    845900end;
    846901
     
    848903begin
    849904  cboDosage.Items.Clear;
     905  chkPRN.Checked := False;
     906  cboSchedule.ItemIndex := -1;
     907  cboSchedule.Text := '';  // leave items intact
     908  memComment.Lines.Clear;
    850909  cboDosage.Text := '';
    851910  cboRoute.Items.Clear;
     
    867926  QOPiUnChk := False;
    868927  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;
    888929  with CtrlInits do
    889930  begin
     
    950991 //   end;
    951992    pnlMessage.TabOrder := cboDosage.TabOrder + 1;
    952     OrderMessage(TextOf('Message'));
     993
     994 //   DispOrderMessage(TextOf('Message'));
    953995  end;
    954996end;
     
    9711013        with cboDosage do
    9721014          if ItemIndex > -1 then x := Text + TAB + Items[ItemIndex] else x := Text;
     1015
    9731016        SetControl(cboRoute,  'ROUTE', i);
    9741017        with cboRoute do
     
    10011044      else
    10021045        SetDosage(IValueFor('INSTR', 1));
    1003         SetControl(cboRoute,  'ROUTE',     1);
     1046        SetControl(cboDosage, 'DOSAGE', 1); // CQ: HDS00007776
    10041047        SetSchedule(IValueFor('SCHEDULE',  1));
    10051048      if (cboSchedule.Text = '') and FIsQuickOrder then
     
    11741217  NonPRNPart: string;
    11751218begin
     1219 
    11761220  cboSchedule.ItemIndex := -1;
    11771221  if Pos('PRN', x) > 0 then
     
    11791223    NonPRNPart := Trim(Copy(x, 1, Pos('PRN', x) - 1));
    11801224    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;
    11861239  end else
    11871240  begin
    11881241    chkPRN.Checked := False;
    11891242    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;
    11911256  end;
    11921257end;
     
    12461311var
    12471312  DispDrug: Integer;
    1248   x: string;
    1249 begin
    1250   inherited;
    1251   UpdateRelated(False);
     1313begin
     1314  inherited;
     1315UpdateRelated(False);
    12521316  DispDrug := StrToIntDef(ValueOf(FLD_DRUG_ID), 0);
    12531317  if cboDosage.Text = '' then    //cla 3/18/04
     
    12561320    cboDosage.ItemIndex := -1;
    12571321  end;
     1322  {  hds8084
    12581323  if DispDrug > 0 then
    12591324  begin
    12601325    if not FSuppressMsg then begin
    12611326      pnlMessage.TabOrder := cboDosage.TabOrder + 1;
    1262       OrderMessage(DispenseMessage(DispDrug));
     1327      DispOrderMessage(DispenseMessage(DispDrug));
    12631328    end;
    12641329    x := QuantityMessage(DispDrug);
    12651330  end
    12661331  else x := '';
     1332  }
    12671333  with cboDosage do
    12681334    if (ItemIndex > -1) and (Piece(Items[ItemIndex], U, 3) = 'NF')
     
    15891655                                then Responses.Update('ROUTE',    1, ValueOf(FLD_ROUTE_ID), x)
    15901656                                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
    15921658    end;
    15931659  end; {case TabDose.TabIndex}
     
    15981664  if Length(calStart.Text) > 0 then
    15991665     Responses.Update('START', 1, calStart.Text, 'Start Date: ' + calStart.Text);  //cla 7-17-03
    1600 
     1666     
    16011667  x := ValueOf(FLD_STATEMENTS);
    16021668  Responses.Update('STATEMENTS',1, TX_WPTYPE, x);
     
    16971763                     if ItemIndex > -1  then Result := Piece(Items[ItemIndex], U, 4);
    16981764    FLD_SCHEDULE  : begin
    1699                       Result := cboSchedule.Text;
     1765                      Result := UpperCase(cboSchedule.Text);
    17001766                      if chkPRN.Checked then Result := Result + ' PRN';
    17011767                      if UpperCase(Copy(Result, Length(Result) - 6, Length(Result))) = 'PRN PRN'
     
    17681834  if Length(CurSchedule)=0 then Exit;
    17691835  ASchedule := Trim(CurSchedule);
    1770   if (Pos('^',ASchedule)=0) then
     1836  {if (Pos('^',ASchedule)=0) then  //GE  CQ7506
    17711837  begin
    17721838    PrnPos := Pos('PRN',ASchedule);
    17731839    if (PrnPos > 1) and (CharAt(ASchedule,PrnPos-1) <> ';') then
    17741840      Delete(ASchedule, PrnPos, Length(ASchedule));
    1775   end
    1776   else if (Pos('^',ASchedule)>0) then
     1841  end  }
     1842  if (Pos('^',ASchedule)>0) then
    17771843  begin
    17781844    PrnPos := Pos('PRN',ASchedule);
     
    19291995    begin
    19301996      Val(TabletNum, ie, code);
     1997      if ie = 0 then begin end;
    19311998      if code <> 0 then
    19321999        Exit;
     
    19672034
    19682035procedure TfrmODMedNVA.chkPRNClick(Sender: TObject);
    1969 begin
    1970   inherited;
    1971   if chkPRN.Checked then lblAdminTime.Caption := ''
     2036var
     2037  tempSch: string;
     2038  PRNPos: integer;
     2039begin
     2040  inherited;
     2041  {if chkPRN.Checked then lblAdminTime.Caption := ''
    19722042  else
    19732043  begin
    19742044    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   
    19752064  end;
    19762065  ControlChange(Self);
     
    21942283end;
    21952284
     2285procedure TfrmODMedNVA.DispOrderMessage(const AMessage: string);
     2286begin
     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;
     2309end;
     2310
    21962311end.
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODMedOIFA.dfm

    r459 r460  
    1 inherited frmODMedOIFA: TfrmODMedOIFA
    2   Width = 316
     1object frmODMedOIFA: TfrmODMedOIFA
     2  Left = 0
     3  Top = 0
     4  Width = 313
    35  Height = 205
    46  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
    517  OnCreate = FormCreate
     18  OnShow = FormShow
    619  PixelsPerInch = 96
    720  TextHeight = 13
    821  object Label1: TLabel
    9     Left = 8
    10     Top = 8
    11     Width = 273
     22    Left = 0
     23    Top = 0
     24    Width = 305
    1225    Height = 13
     26    Align = alTop
    1327    Caption = 'The selected drug is not in the formulary.  Alternatives are:'
    1428  end
    1529  object Label2: TStaticText
    16     Left = 8
    17     Top = 127
    18     Width = 250
     30    Left = 0
     31    Top = 134
     32    Width = 305
    1933    Height = 17
     34    Align = alBottom
    2035    Caption = 'Do you wish to use the selected alternative instead?'
    21     TabOrder = 3
     36    TabOrder = 1
    2237  end
    2338  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
    2844    ItemHeight = 13
    2945    ParentShowHint = False
     
    3652    Pieces = '2'
    3753  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
    5883  end
    5984end
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODMedOIFA.pas

    r459 r460  
    55uses
    66  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    7   fAutoSz, StdCtrls, ORCtrls;
     7  StdCtrls, ORCtrls, ExtCtrls, fAutoSz;
    88
    99type
    10   TfrmODMedOIFA = class(TfrmAutoSz)
     10  TfrmODMedOIFA = class(TForm)
    1111    Label1: TLabel;
    1212    lstFormAlt: TORListBox;
    1313    Label2: TStaticText;
     14    btnPanel: TPanel;
    1415    cmdYes: TButton;
    1516    cmdNo: TButton;
     
    1819    procedure cmdNoClick(Sender: TObject);
    1920    procedure lstFormAltClick(Sender: TObject);
     21    procedure FormShow(Sender: TObject);
     22    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    2023  private
    2124    FSelected: string;
     
    3033{$R *.DFM}
    3134
    32 uses ORFn, rODMeds;
     35uses ORFn, rODMeds, rMisc;
    3336
    3437procedure CheckFormularyOI(var AnIEN: Integer; var AName: string; ForInpatient: Boolean);
     
    130133end;
    131134
     135procedure TfrmODMedOIFA.FormShow(Sender: TObject);
     136begin
     137  inherited;
     138  SetFormPosition(Self);
     139end;
     140
     141procedure TfrmODMedOIFA.FormClose(Sender: TObject;
     142  var Action: TCloseAction);
     143begin
     144  inherited;
     145  SaveUserBounds(Self); 
     146end;
     147
    132148end.
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODMeds.dfm

    r459 r460  
    11inherited frmODMeds: TfrmODMeds
    2   Left = 202
    3   Top = 61
     2  Left = 519
     3  Top = 204
    44  Width = 584
    5   Height = 494
     5  Height = 515
    66  HorzScrollBar.Range = 558
    7   HorzScrollBar.Visible = True
    87  VertScrollBar.Range = 399
    9   VertScrollBar.Visible = True
    10   AutoScroll = False
    118  Caption = 'Medication Order'
    129  Constraints.MinHeight = 325
     
    1512  DesignSize = (
    1613    576
    17     460)
     14    488)
    1815  PixelsPerInch = 96
    1916  TextHeight = 13
     
    2219    Top = 34
    2320    Width = 580
    24     Height = 392
     21    Height = 413
    2522    Anchors = [akLeft, akTop, akRight, akBottom]
    2623    BevelOuter = bvNone
     
    7168      Top = 137
    7269      Width = 580
    73       Height = 255
     70      Height = 276
    7471      Align = alClient
    7572      BevelInner = bvLowered
     
    10198  end
    10299  inherited memOrder: TCaptionMemo
    103     Top = 427
     100    Top = 448
    104101    Width = 502
    105102    Anchors = [akLeft, akRight, akBottom]
     
    122119  object btnSelect: TButton [3]
    123120    Left = 515
    124     Top = 427
     121    Top = 448
    125122    Width = 72
    126123    Height = 21
     
    134131  inherited cmdAccept: TButton
    135132    Left = 514
    136     Top = 427
     133    Top = 448
    137134    Anchors = [akRight, akBottom]
    138135    TabOrder = 6
     
    142139  inherited cmdQuit: TButton
    143140    Left = 514
    144     Top = 452
     141    Top = 473
    145142    Width = 51
    146143    Anchors = [akRight, akBottom]
     
    159156    Top = 34
    160157    Width = 580
    161     Height = 392
     158    Height = 413
    162159    Anchors = [akLeft, akTop, akRight, akBottom]
    163160    BevelOuter = bvNone
     
    170167      Top = 0
    171168      Width = 580
    172       Height = 173
     169      Height = 184
    173170      Align = alClient
    174171      Constraints.MinHeight = 80
     
    176173      DesignSize = (
    177174        580
    178         173)
     175        184)
    179176      object lblRoute: TLabel
    180177        Left = 280
     
    197194      end
    198195      object txtNSS: TLabel
    199         Left = 452
     196        Left = 442
    200197        Top = 22
    201         Width = 76
     198        Width = 71
    202199        Height = 13
    203200        Anchors = [akTop, akRight]
    204         Caption = '(Non-standard?)'
     201        Caption = '(Day-Of-Week)'
    205202        Font.Charset = DEFAULT_CHARSET
    206203        Font.Color = clBlue
     
    217214        Top = 36
    218215        Width = 580
    219         Height = 132
     216        Height = 143
    220217        Anchors = [akLeft, akTop, akRight, akBottom]
    221218        ColCount = 6
     
    280277        Top = 36
    281278        Width = 279
    282         Height = 132
     279        Height = 143
    283280        Anchors = [akLeft, akTop, akRight, akBottom]
    284281        Style = orcsSimple
     
    302299        OnClick = cboDosageClick
    303300        OnExit = cboDosageExit
     301        OnKeyUp = cboDosageKeyUp
    304302        CharsNeedMatch = 1
    305303        UniqueAutoComplete = True
     
    309307        Top = 36
    310308        Width = 113
    311         Height = 132
     309        Height = 143
    312310        Anchors = [akTop, akRight, akBottom]
    313311        Style = orcsSimple
     
    339337        Top = 36
    340338        Width = 178
    341         Height = 132
     339        Height = 143
    342340        Anchors = [akTop, akRight, akBottom]
    343341        Style = orcsSimple
     
    426424      OnExit = cboXDosageExit
    427425      OnKeyDown = memMessageKeyDown
     426      OnKeyUp = cboXDosageKeyUp
    428427      CharsNeedMatch = 1
    429428      UniqueAutoComplete = True
     
    546545        Width = 38
    547546        Height = 19
     547        Hint = 'A duration must be defined if using "Then" as a sequence.'
    548548        Caption = 'then'
    549549        Glyph.Data = {
     
    556556        Layout = blGlyphRight
    557557        NumGlyphs = 2
     558        ParentShowHint = False
     559        ShowHint = True
    558560        Spacing = 1
    559561        OnClick = btnXSequenceClick
     562      end
     563      object SpeedButton1: TSpeedButton
     564        Left = 16
     565        Top = 16
     566        Width = 23
     567        Height = 22
    560568      end
    561569    end
     
    598606        OnChange = cboXScheduleChange
    599607        OnClick = cboXScheduleClick
     608        OnEnter = cboXScheduleEnter
    600609        OnExit = cboXScheduleExit
    601610        OnKeyDown = memMessageKeyDown
     
    617626    object pnlBottom: TPanel
    618627      Left = 0
    619       Top = 173
     628      Top = 184
    620629      Width = 580
    621       Height = 219
     630      Height = 229
    622631      Align = alBottom
    623632      TabOrder = 6
    624633      DesignSize = (
    625634        580
    626         219)
     635        229)
    627636      object lblComment: TLabel
    628637        Left = 4
     
    666675      end
    667676      object Image1: TImage
    668         Left = 1
    669         Top = 183
     677        Left = 5
     678        Top = 177
    670679        Width = 31
    671680        Height = 31
     
    686695        Top = 2
    687696        Width = 513
    688         Height = 44
     697        Height = 43
    689698        Anchors = [akLeft, akTop, akRight]
    690699        ScrollBars = ssVertical
     
    707716        Width = 60
    708717        Height = 21
     718        AutoSize = False
    709719        TabOrder = 1
    710720        Text = '0'
    711721        OnChange = txtSupplyChange
     722        OnClick = txtSupplyClick
    712723        Caption = 'Days Supply'
    713724      end
     
    728739        Width = 60
    729740        Height = 21
     741        AutoSize = False
    730742        TabOrder = 3
    731743        Text = '0'
    732744        OnChange = txtQuantityChange
     745        OnClick = txtQuantityClick
    733746        Caption = 'Quantity'
    734747      end
     
    750763        Width = 30
    751764        Height = 21
     765        AutoSize = False
    752766        TabOrder = 5
    753767        Text = '0'
    754768        OnChange = ControlChange
     769        OnClick = txtRefillsClick
    755770        Caption = 'Refills'
    756771      end
     
    817832        ItemTipColor = clWindow
    818833        ItemTipEnable = True
    819         ListItemsOnly = False
     834        ListItemsOnly = True
    820835        LongList = False
    821836        LookupPiece = 0
     
    825840        SynonymChars = '<>'
    826841        TabOrder = 10
    827         Text = 'ROUTINE'
    828842        OnChange = ControlChange
    829843        CharsNeedMatch = 1
     
    842856      end
    843857      object lblAdminTime: TStaticText
    844         Left = 267
    845         Top = 104
     858        Left = 262
     859        Top = 120
    846860        Width = 4
    847861        Height = 4
    848862        TabOrder = 16
    849         Visible = False
    850863      end
    851864      object stcPI: TStaticText
     
    885898      object memDrugMsg: TMemo
    886899        Left = 37
    887         Top = 183
     900        Top = 176
    888901        Width = 533
    889         Height = 34
     902        Height = 51
    890903        Anchors = [akLeft, akRight, akBottom]
    891904        Color = clCream
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODMeds.pas

    r459 r460  
    8686    memDrugMsg: TMemo;
    8787    txtNSS: TLabel;
     88    SpeedButton1: TSpeedButton;
    8889    procedure FormCreate(Sender: TObject);
    8990    procedure btnSelectClick(Sender: TObject);
     
    186187    procedure cboScheduleExit(Sender: TObject);
    187188    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);
    188198    //procedure btnNSSClick(Sender: TObject);
    189199  private
     
    236246    FOrigiMsgDisp: boolean;
    237247    FNSSOther: boolean;
    238     FFromClick: boolean;
     248    {selection}
    239249    FShowPnlXScheduleOk : boolean;
    240250    FRemoveText : Boolean;
    241     {selection}
     251    FSmplPRNChkd: Boolean;
    242252    procedure ChangeDelayed;
    243253    function FindQuickOrder(const x: string): Integer;
     
    302312//    function ValidateRoute(RouteCombo: TORComboBox) : Boolean; Removed based on Site feeback. See CQ: 7518
    303313    function IsSupplyAndOutPatient : boolean;
     314    function GetSchedListIndex(SchedCombo: TORComboBox; pSchedule: String):integer;
    304315  protected
    305316    procedure InitDialog; override;
    306317    procedure Validate(var AnErrMsg: string); override;
    307318  public
     319    ARow1: integer;
    308320    procedure SetupDialog(OrderAction: Integer; const ID: string); override;
    309321    procedure CheckDecimal(var AStr: string);
     
    319331
    320332uses rCore, uCore, ORFn, rODMeds, rODBase, rOrders, fRptBox, fODMedOIFA,
    321   uAccessibleStringGrid, uOrders, fOtherSchedule, StrUtils;
     333  uAccessibleStringGrid, uOrders, fOtherSchedule, StrUtils, fFrame;
    322334
    323335const
     
    329341  COL_DURATION =  4;
    330342  COL_SEQUENCE =  5;
     343  COL_CHKXPRN  =  6;
    331344  VAL_DOSAGE   = 10;
    332345  VAL_ROUTE    = 20;
     
    334347  VAL_DURATION = 40;
    335348  VAL_SEQUENCE = 50;
     349  VAL_CHKXPRN  = 60;
    336350  TAB          = #9;
    337351  {field identifiers}
     
    387401  TC_NO_DEA     = 'DEA# Required';
    388402  TX_NO_MED     = 'Medication must be selected.';
     403  TX_NO_SEQ     = 'Missing one or more conjunction.';
    389404  TX_NO_DOSE    = 'Dosage must be entered.';
    390405  TX_DOSE_NUM   = 'Dosage may not be numeric only';
     
    422437  x: string;
    423438begin
     439  frmFrame.pnlVisit.Enabled := false;
    424440  AutoSizeDisabled := True;
    425441  inherited;
    426442  btnXDuration.Align := alClient;
    427443  AllowQuickOrder := True;
     444  FSmplPRNChkd := False; // GE CQ7585
    428445  CheckAuthForMeds(x);
    429446  if Length(x) > 0 then
     
    456473  {if not FInptDlg then } Responses.SetPromptFormat('INSTR', '@');
    457474  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); 
    459478  StatusText('');
    460479  if FInptDlg then SetControlsInpatient else SetControlsOutpatient;
     
    466485  begin
    467486    txtNss.Visible := True;
     487    //cboSchedule.ListItemsOnly := True;
     488    //cboXSchedule.ListItemsOnly := True;
    468489  end;
    469490  with grdDoses do
     
    537558  FAllDrugs.Free;
    538559  TAccessibleStringGrid.UnwrapControl(grdDoses);
     560  frmFrame.pnlVisit.Enabled := true;
    539561  inherited;
    540562end;
     
    558580  FQOInitial  := False;
    559581  FNSSOther   := False;
    560   FFromClick  := False;
    561582end;
    562583
    563584procedure TfrmODMeds.SetupDialog(OrderAction: Integer; const ID: string);
    564585var
    565   AnInstr, OrderID, nsSch: string;
     586  AnInstr, OrderID, nsSch, Text: string;
    566587  ix: integer;
    567588begin
     
    606627             begin
    607628                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;}
    608635             end;
    609636           end;
     
    611638       end;
    612639    end;  //nss
    613     UpdateRelated(FALSE);
     640    if ((OrderAction <> Order_COPY) and (OrderAction <> Order_EDIT)) or
     641    (XfInToOutNow = true) then UpdateRelated(FALSE); //AGP Change
    614642    Changing := False;
    615643  end;
     
    624652      then AnInstr := 'Copy: ' + AnInstr
    625653      else AnInstr := 'Change: ' + AnInstr;
    626     Caption := AnInstr;
     654    Text := AnsiReplaceText(AnInstr,CRLF,'');
     655    Caption := Text;
    627656    memComment.Clear;  // sometimes the sig is in the comment
    628657  end;
     
    654683    // and is not an outpaitent order, then display error text to require route
    655684    if (Length(x) = 0) and (Not IsSupplyAndOutPatient) then
     685    begin
     686      if cboRoute.Showing = true then cboRoute.SetFocus;  //CQ: 7467
    656687      SetError(TX_NO_ROUTE);
     688    end;
    657689    if (Length(x) > 0) and NeedLookup then
    658690    begin
    659691      LookupRoute(x, RouteID, RouteAbbr);
    660692      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
    662698        else Responses.Update('ROUTE', AnInstance, RouteID, RouteAbbr);
    663699    end;
     
    678714    else if (Length(tmpX) = 0) and FInptDlg and ScheduleRequired(txtMed.Tag, ARoute, ADrug)
    679715      then SetError(TX_NO_SCHED);
    680 
    681716    if Length(tmpX) > 0 then
    682717    begin
     
    706741    if (ValueOfResponse(FLD_DRUG_ID, i) = '') then
    707742    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;
    710754    end;
    711755    ValidateRoute(Responses.EValueFor('ROUTE', i), Responses.IValueFor('ROUTE', i) = '', i);
     
    713757    i := Responses.NextInstance('INSTR', i);
    714758  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;
    715771  if not FInptDlg then                            // outpatient stuff
    716772  begin
     
    9531009    UniqueText := False;
    9541010  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  }
    9551018  if UniqueText then
    9561019  begin
     
    11291192  QOQuantityStr := '';
    11301193  btnSelect.SetFocus;                             // let the exit events finish
     1194
    11311195  if pnlMeds.Visible then                         // display the medication fields
    11321196  begin
     
    12941358  lblQtyMsg.Caption := '';
    12951359  lblQuantity.Caption := 'Quantity';
     1360  FSmplPRNChkd := chkPRN.Checked;  //  GE  CQ7585
    12961361  chkPRN.Checked := False;
    12971362  FLastUnits    := '';
     
    13181383  QOPiUnChk := False;
    13191384  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;
    13391386  with CtrlInits do
    13401387  begin
     
    13811428      end;
    13821429      pnlTop.Height := pnlFields.Height - pnlBottom.Height;
    1383       chkDoseNow.Top := memComment.Top + memComment.Height + 4;
     1430      chkDoseNow.Top := memComment.Top + memComment.Height + 1;
    13841431      lblPriority.Top := memcomment.Top + memComment.Height + 1;
    13851432      cboPriority.Top := lblPriority.Top + lblPriority.Height;
    13861433      lblAdminTime.Left := chkDoseNow.Left;
    1387       lblAdminTime.Top := chkDoseNow.Top + chkDoseNow.Height + 1;
     1434      lblAdminTime.Top := chkDoseNow.Top + chkDoseNow.Height - 1;
    13881435    end else
    13891436    begin
     
    14561503        SetDosage(IValueFor('INSTR', i));
    14571504        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
    14591507        grdDoses.Cells[COL_DOSAGE, i] := x;
    14601508        SetControl(cboRoute,  'ROUTE', i);
     
    14741522          if ItemIndex > -1 then x := x + TAB + Items[ItemIndex];
    14751523        grdDoses.Cells[COL_SCHEDULE, i] := x;
     1524        if chkPRN.Checked = True then grdDoses.Cells[COL_CHKXPRN,i] := '1';
    14761525        grdDoses.Cells[COL_DURATION, i] := IValueFor('DAYS', i);
    14771526        if      IValueFor('CONJ', i) = 'A' then x := 'AND'
     
    15971646  txtMed.SetFocus;
    15981647  FDrugID := '';
    1599   ShowOrderMessage( False );
     1648  //ShowOrderMessage( False );
    16001649end;
    16011650
     
    16281677
    16291678procedure TfrmODMeds.ShowControlsSimple;
    1630 var
    1631   dosagetxt: string;
     1679//var
     1680  //dosagetxt: string;
    16321681begin
    16331682  //Commented out, no longer using CharsNeedMatch Property
     
    16611710procedure TfrmODMeds.ShowControlsComplex;
    16621711
    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;
    16731746begin
    16741747  tabDose.TabIndex := TI_COMPLEX;
    16751748  MoveCombo(cboDosage,   cboXDosage);
    16761749  MoveCombo(cboRoute,    cboXRoute);
    1677   MoveCombo(cboSchedule, cboXSchedule);
     1750  MoveCombo(cboSchedule, cboXSchedule, true);  //AGP Changes 26.12 PSI-04-063
    16781751  grdDoses.Visible := True;
    16791752  btnXInsert.Visible := True;
     
    16891762  ActiveControl := grdDoses;
    16901763  //Commented out, no longer using CharsNeedMatch Property
    1691  { NumCharsForMatch := 0;
     1764{ NumCharsForMatch := 0;
    16921765  for i := 0 to cboXDosage.Items.Count - 1 do         //find the shortest unit dose text on fifth piece
    16931766  begin
     
    17191792        Break;
    17201793      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 *)
    17231798    else ItemIndex := DoseIndex;
    17241799  end;
     
    17401815procedure TfrmODMeds.SetSchedule(const x: string);
    17411816var
    1742   NonPRNPart: string;
     1817NonPRNPart: string;
    17431818begin
    17441819  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
    17461823  begin
    17471824    NonPRNPart := Trim(Copy(x, 1, Pos('PRN', x) - 1));
     
    17621839      chkPRN.Checked := True;
    17631840  end else
    1764   begin
     1841  begin  *)
    17651842    chkPRN.Checked := False;
    17661843    cboSchedule.SelectByID(x);
     
    17731850      else
    17741851      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);
    17781866      end;
    1779     end;
    17801867  end;
    17811868end;
    17821869
    17831870{ Medication edit --------------------------------------------------------------------------- }
    1784 
    17851871procedure TfrmODMeds.tabDoseChange(Sender: TObject);
    17861872var
    1787   x: string;
    1788 
    1789 begin
    1790   inherited;
     1873  //text,x, tmpsch: string;
     1874  text, x: string;
     1875  reset: integer;
     1876begin
     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;
    17911895  case tabDose.TabIndex of
    17921896  TI_DOSE:    begin
     1897                cboXSchedule.Clear;                       // Added to Fix CQ: 9603
    17931898                // clean up responses?
    17941899                FSuppressMsg := FOrigiMsgDisp;
    17951900                ShowControlsSimple;
    1796                 ResetOnTabChange;
     1901                if reset = 0 then ResetOnTabChange;
     1902                txtNss.Left := lblSchedule.Left + lblSchedule.Width + 2;
    17971903                if (FInptDlg) then txtNss.Visible := True
    17981904                else txtNss.Visible := False;
     
    18051911  TI_COMPLEX: begin
    18061912                FSuppressMsg := FOrigiMsgDisp;
     1913                if reset = 1 then exit;
    18071914                ShowControlsComplex;
    18081915                ResetOnTabChange;
     1916                txtNss.Left := grdDoses.Left + grdDoses.ColWidths[0] + grdDoses.ColWidths[1] + grdDoses.ColWidths[2] + 3;
    18091917                txtNss.Visible := False;
    1810                 if txtNss.Visible then txtNss.Visible := False;           
    18111918                x := cboXDosage.Text + TAB;
    18121919                with cboXDosage   do if ItemIndex > -1 then x := x + Items[ItemIndex];
     
    18181925                with cboXSchedule do if ItemIndex > -1 then x := x + Items[ItemIndex];
    18191926                grdDoses.Cells[COL_SCHEDULE, 1] := x;
     1927                UpdateStartExpires(ValFor(VAL_SCHEDULE,1));
    18201928                ControlChange(Self);
    18211929             end; {TI_COMPLEX}
    18221930  end; {case}
    18231931end;
     1932
    18241933
    18251934procedure TfrmODMeds.lblGuidelineClick(Sender: TObject);
     
    19012010
    19022011procedure 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;
     2012begin
     2013  inherited;
    19102014  UpdateRelated;
    19112015end;
     
    19462050begin
    19472051  inherited;
    1948 //if cboRoute.Text = '' then
    1949 //  cboRoute.ItemIndex := -1;
    19502052  with cboRoute do
    19512053    if ItemIndex > -1 then
     
    19942096begin
    19952097  inherited;
    1996   if (FInptDlg) and (cboSchedule.Text = 'OTHER') then
     2098  if  (FInptDlg) and (cboSchedule.Text = 'OTHER') then
    19972099  begin
    19982100    othSch := CreateOtherScheduel;
     
    20042106    end;
    20052107  end;
    2006 //if cboSchedule.Text = '' then
    2007 //  cboSchedule.ItemIndex := -1;
    20082108//Remove Deletion of Text, since we are changing the validation to be on exit of the control.
    20092109{  if (Length(cboSchedule.Text)>0) and (cboSchedule.ItemIndex < 0) and FInptDlg then
     
    21162216      if Length(Route) = 0 then Route := ValueOf(FLD_ROUTE_NM);
    21172217      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;
    21192233      Result := FSIGVerb + ' ' + Dose + ' ' + Route + ' ' + Schedule;
    21202234    end;
     
    21402254        if Length(Route) = 0 then Route := ValueOf(FLD_ROUTE_NM, i);
    21412255        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;
    21432268        Duration := ValueOf(FLD_DURATION, i);
    21442269        if Length(Duration) > 0 then Duration := 'FOR ' + Duration;
     
    22412366begin
    22422367  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
    22442372  begin
    22452373    Result := '';
     
    24542582  TI_COMPLEX:
    24552583    begin
    2456       if txtNss.Visible then txtNss.Visible := False;
     2584      //if txtNss.Visible then txtNss.Visible := False;
    24572585      with grdDoses do for i := 1 to Pred(RowCount) do
    24582586      begin
     
    24912619                                   else Responses.Update('ROUTE',    i, '', x);
    24922620        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;
    24932628        x := ValueOf(FLD_DURATION, i);  Responses.Update('DAYS',     i, UpperCase(x), x);
    24942629        x := ValueOf(FLD_SEQUENCE, i);
     
    25082643  begin
    25092644    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);
    25112647  end else                                        // outpatient orders
    25122648  begin
     
    25482684    VAL_DURATION : Result := Piece(Cells[COL_DURATION, ARow], TAB, 1);
    25492685    VAL_SEQUENCE : Result := Piece(Cells[COL_SEQUENCE, ARow], TAB, 1);
     2686    VAL_CHKXPRN  : Result := Cells[COL_CHKXPRN, ARow];
    25502687    end;
    25512688end;
     
    27292866procedure TfrmODMeds.ShowEditor(ACol, ARow: Integer; AChar: Char);
    27302867var
    2731   x, NonPRNPart: string;
     2868  x,tmpText: string;
    27322869
    27332870  procedure PlaceControl(AControl: TWinControl);
     
    27592896begin
    27602897  inherited;
     2898  txtNSS.Visible := False;
    27612899  //Make space just select editor.  This blows up as soon as some joker makes a
    27622900  //dosage starting with a space.
     
    27842922                      //grdDoses.Cells[COL_SCHEDULE, ARow] := grdDoses.Cells[COL_SCHEDULE, Pred(ARow)];
    27852923                    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
    27872926                    begin
    27882927                      if StrToIntDef(Piece(grdDoses.Cells[COL_DURATION, Pred(ARow)], ' ', 1), 0) > 0
    27892928                        then grdDoses.Cells[COL_SEQUENCE, Pred(ARow)] := 'THEN'
    27902929                        else grdDoses.Cells[COL_SEQUENCE, Pred(ARow)] := 'AND';
    2791                     end;
     2930                    end;  *}
    27922931                  end;
    27932932                  // set appropriate value for cboDosage
     
    28062945  COL_SCHEDULE: begin
    28072946                  // set appropriate value for cboSchedule
     2947                  if FInptDlg then txtNSS.Visible := True;
    28082948                  x := Piece(grdDoses.Cells[COL_SCHEDULE, ARow], TAB, 1);
    28092949                  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;
    28112961                  if Length(x) > 0 then
    28122962                  begin
     
    28152965                  end
    28162966                  else cboXSchedule.ItemIndex := -1;
    2817                   if Pos('PRN', x) > 0 then
     2967                (*  if Pos('PRN', x) > 0 then
    28182968                  begin
    28192969                    NonPRNPart := Trim(Copy(x, 1, Pos('PRN', x) - 1));
     
    28252975                      if cboXSchedule.ItemIndex < 0 then cboXSchedule.Text := x;
    28262976                    end;
    2827                   end;
     2977                  end; *)
    28282978                  Changing := FALSE;
    28292979                  pnlXSequence.Tag := ARow;
     
    28442994                    btnXDuration.Caption := 'days';
    28452995                  end;
     2996                  tmpText := txtXDuration.Text;  //Fix for CQ: 8107 - Kloogy but works.
    28462997                  UpdateDurationControls(False);
    2847 
    28482998                  Changing := FALSE;
    28492999                  pnlXDuration.Tag := ARow;
    28503000                  PlaceControl(pnlXDuration);
    28513001                  txtXDuration.SetFocus;
     3002                  ARow1 := ARow;
     3003                  txtXDuration.Text := tmpText;  //Fix for CQ: 8107 - Kloogy but works.
    28523004                  if AChar <> #0 then PostMessage(Handle, UM_DELAYEVENT, Ord(AChar), COL_DURATION);
    28533005                end;
    28543006  COL_SEQUENCE: begin
    28553007                  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
    28573009                  btnXSequence.Caption := x;
    28583010                  pnlXSequence.Caption := btnXSequence.Caption;
    28593011                  pnlXSequence.Tag := ARow;
     3012                  ARow1 := ARow;
    28603013                  PlaceControl(pnlXSequence);
    2861                   btnXSequence.Width := pnlXSequence.Width;                 
     3014                  btnXSequence.Width := pnlXSequence.Width;
    28623015                end;
    28633016  end; {case ACol}
     
    29293082    then lblQtyMsg.Caption := TX_QTY_PRE + x + TX_QTY_POST
    29303083    else lblQtyMsg.Caption := '';
    2931 
    29323084end;
    29333085
     
    29853137    cboXRoute.ItemIndex := -1;
    29863138    Exit;
    2987   end;
     3139  end; 
    29883140  cboXRouteClick(Self);
    29893141  cboXRoute.Tag := -1;
     
    30133165procedure TfrmODMeds.cboXScheduleChange(Sender: TObject);
    30143166var
    3015   othSch, x, PRN: string;
     3167  othSch, x: string;
    30163168  idx : integer;
    30173169begin
     
    30313183      end;
    30323184    end;
    3033     if chkXPRN.Checked then PRN := ' PRN' else PRN := '';
     3185  (* if chkXPRN.Checked then PRN := ' PRN' else PRN := '';
    30343186    with cboXSchedule do if ItemIndex > -1
    30353187      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;
    30373192    grdDoses.Cells[COL_SCHEDULE, pnlXSchedule.Tag] := x;
     3193    self.cboSchedule.Text := x;
    30383194    UpdateRelated;
    30393195  end;
     
    30423198procedure TfrmODMeds.cboXScheduleClick(Sender: TObject);
    30433199var
    3044   x, PRN: string;
    3045 begin
    3046   inherited;
    3047   if chkXPRN.Checked then PRN := ' PRN' else PRN := '';
     3200  x: string;
     3201begin
     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;  *)
    30483207  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) then
     3208    then x := Text + TAB + Items[ItemIndex]
     3209    else x := Text;
     3210   (* if (Pos('PRN',X)>0) and (pnlXSchedule.Tag = 1) then
    30523211    if lblAdmintime.visible then
    3053       lblAdmintime.Caption := '';
     3212      lblAdmintime.Caption := ''; *)
    30543213  grdDoses.Cells[COL_SCHEDULE, pnlXSchedule.Tag] := x;
     3214  UpdateStartExpires(x);
    30553215  UpdateRelated;
    30563216end;
    30573217
    30583218procedure TfrmODMeds.chkXPRNClick(Sender: TObject);
    3059 begin
    3060   inherited;
     3219var
     3220check: string;
     3221begin
     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;
    30613226  if not Changing then cboXScheduleClick(Self);
    30623227end;
     
    30963261var
    30973262  I, Code: Integer;
     3263  OrgValue: string;
    30983264begin
    30993265  inherited;
     
    31033269    Val(txtXDuration.Text, I, Code);
    31043270    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;
    31093280      Exit;
    31103281      btnXDuration.Width := 8;
     
    31143285      PopDuration.Items.Tag := 0;
    31153286      btnXDuration.Caption := '';
    3116     end
     3287    end;
     3288   {AGP change 26.19 for PSI-05-018 cq #7322
    31173289    else if PopDuration.Items.Tag = 0 then
    31183290    begin
    31193291      PopDuration.Items.Tag := 3;  //Days selection
    31203292      btnXDuration.Caption := 'days';
    3121     end;
     3293    end; }
    31223294    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;
    31243318  ControlChange(Self);
    31253319  UpdateRelated;
     
    31513345begin
    31523346  inherited;
     3347  inherited;
    31533348  with TSpeedButton(Sender) do APoint := ClientToScreen(Point(0, Height));
    31543349  popXSequence.Popup(APoint.X, APoint.Y);
    31553350  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     }
    31563364end;
    31573365
     
    31623370  inherited;
    31633371  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;
    31643381  btnXSequence.Caption := x;
    31653382  pnlXSequence.Caption := btnXSequence.Caption;
     
    32793496    FLD_ROUTE_EX  : with cboRoute do
    32803497                     if ItemIndex > -1  then Result := Piece(Items[ItemIndex], U, 4);
    3281     FLD_SCHEDULE  : begin
     3498    FLD_SCHEDULE  : begin        //gary)
    32823499                      Result := UpperCase(Trim(cboSchedule.Text));
    32833500                      if chkPRN.Checked then Result := Result + ' PRN';
     
    32873504    FLD_SCHED_EX  : begin
    32883505                      with cboSchedule do
     3506                        begin
    32893507                        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;
    32903530                      if (Length(Result) > 0) and chkPRN.Checked then Result := Result + ' AS NEEDED';
    32913531                      if UpperCase(Copy(Result, Length(Result) - 18, Length(Result))) = 'AS NEEDED AS NEEDED'
    32923532                        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;
    32933540                    end;
    32943541    FLD_SCHED_TYP : with cboSchedule do
     
    33303577      FLD_ROUTE_AB  : Result := Piece(Piece(Cells[COL_ROUTE, ARow], TAB, 2), U, 3);
    33313578      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;
    33333586      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);
    33353588                        if Result = '' then //Added for CQ: 7639
    33363589                        begin
     
    33433596                           (Pos('PRN', Piece(Cells[COL_SCHEDULE, ARow], TAB, 1)) > 0)
    33443597                           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;
    33453618                      end;
    33463619      FLD_SCHED_TYP : Result := Piece(Piece(Cells[COL_SCHEDULE, ARow], TAB, 2), U, 3);
     
    35523825procedure TfrmODMeds.UpdateStartExpires(const CurSchedule: string);
    35533826var
    3554   ShowText, Duration, ASchedule: string;
     3827  CompSch, ShowText, Duration, ASchedule: string;
    35553828  AdminTime:    TFMDateTime;
    3556   Interval, PrnPos: Integer;
     3829  i, j, Interval, PrnPos: Integer;
    35573830begin
    35583831  if Length(CurSchedule)=0 then Exit;
    35593832  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
    35673834  begin
    35683835    PrnPos := Pos('PRN',ASchedule);
     
    35713838  end;
    35723839  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;
    35733866  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;
    35763886  if AdminTime > 0 then
    35773887  begin
     
    36303940  CurSupply, i, pNum, j: Integer;
    36313941  CurQuantity: double;
    3632   LackQtyInfo, SaveChanging: Boolean;
     3942  LackQtyInfo, SaveChanging, DispFirstDose: Boolean;
    36333943begin
    36343944  inherited;
     
    36373947  SaveChanging := Changing;
    36383948  Changing := TRUE;
     3949  DispFirstDose := FALSE;
    36393950  // don't allow Exit procedure so Changing gets reset appropriately
    36403951  CurUnits    := '';
     
    37004011      or ((Length(cboSchedule.Text)>0) and (cboSchedule.ItemIndex < 0)) then
    37014012    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
    37034019        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;
    37064025        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;
    37094031    end
    37104032    else
     
    37154037    if Responses.EventType in ['A','D','T','M','O'] then lblAdminTime.Visible := False;
    37164038  end;
    3717   if not FInptDlg then
     4039    if not FInptDlg then
    37184040  begin
    37194041    CurSchedule := CurScheduleOut;
    3720     if CurInstruct <> FLastInstruct
     4042    if (CurInstruct <> FLastInstruct) and (CurUnits <> U) //AGP Change 26.48 Do not update quantity and day supply if no matching dose on the server
    37214043      then UpdateDefaultSupply(CurUnits, CurSchedule, CurDuration, CurDispDrug, CurSupply, CurQuantity,
    37224044                               LackQtyInfo);
     
    37514073
    37524074procedure TfrmODMeds.cmdAcceptClick(Sender: TObject);
    3753 begin
    3754   if (cboSchedule.Text = 'OTHER') and (FInptDlg)then
     4075var
     4076i: integer;
     4077begin
     4078  if (FInptDlg) and (cboSchedule.Text = 'OTHER') then
    37554079  begin
    37564080    cboScheduleClick(Self);
    37574081    Exit;
    37584082  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;
    37594097  if FInptDlg and (not FOutptIV)
    37604098    then DisplayGroup := DisplayGroupByName('UD RX')
    37614099  else DisplayGroup := DisplayGroupByName('O RX');
     4100  //timCheckChangesTimer(Self);
    37624101  DropLastSequence;
    37634102  cmdAccept.SetFocus;
    37644103  inherited;
     4104  (*if self.Responses.Cancel = true then
     4105    begin
     4106      self.Destroy;
     4107      exit;
     4108    end; *)
    37654109end;
    37664110
     
    37914135    if length(theSch)>0 then
    37924136    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) then
     4137      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
    37944138      begin
    37954139        chkDoseNow.Checked := False;
     
    38084152  if (tabDose.TabIndex = TI_COMPLEX) and chkDoseNow.Checked  then
    38094153  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 +
    38114155                 'Please adjust the duration of the first row, if necessary.',
    3812                  'Give Additional Dose Now for Complex Order', MB_OKCANCEL or MB_ICONWARNING) = IDCANCEL) then
     4156                 'Give Additional Dose Now for Complex Order', MB_OKCANCEL or MB_ICONWARNING) = IDCANCEL) ) then
    38134157    begin
    38144158      chkDoseNow.Checked := False;
     
    39084252var
    39094253  tempSch: string;
    3910 begin
    3911   inherited;
    3912   if chkPRN.Checked then lblAdminTime.Caption := ''
     4254  PRNPos: integer;
     4255begin
     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
    39134265  else
    39144266  begin
     
    39184270      UpdateStartExpires(tempSch);
    39194271    end;
    3920     lblAdminTime.Caption := FAdminTimeLbl;
     4272    //lblAdminTime.Caption := FAdminTimeLbl;
    39214273    if txtQuantity.visible then
    39224274      cboScheduleClick(Self);
     
    40314383  end
    40324384  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!
    40364386end;
    40374387
     
    42844634  inherited;
    42854635  if MessageDlg('You can also select ' + '"' + 'Other' + '"' + ' from the schedule list'
    4286     + ' to create a day-of-week or admin-time only schedule.'
     4636    + ' to create a day-of-week schedule.'
    42874637    + #13#10 + 'Click OK to launch schedule builder',
    42884638    mtInformation, [mbOK, mbCancel],0) = mrOK then
     
    42924642      cboSchedule.SelectByID('OTHER');
    42934643      cboScheduleClick(Self);
     4644    end;
     4645    if  (tabDose.TabIndex = TI_COMPLEX) then
     4646    begin
     4647      cboXSchedule.SelectByID('OTHER');
     4648      CBOXScheduleChange(Self);
    42944649    end;
    42954650  end;
     
    43254680
    43264681procedure TfrmODMeds.ValidateInpatientSchedule(ScheduleCombo: TORComboBox);
    4327 begin
    4328   //CQ 7575  Schedule coming across lower-case, change all schedules to Upper-Case.
     4682var
     4683  tmpIndex : Integer;
     4684begin
     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.
    43294690  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;
    43314699  if (Length(ScheduleCombo.Text) > 0) and (ScheduleCombo.ItemIndex < 0) and FInptDlg then
    43324700  begin
    43334701    FShowPnlXScheduleOk := False; //Added for CQ: 7370
    43344702    Application.MessageBox('Please select a valid schedule from the list.'+#13+#13+
    4335                            'If you would like to create a non-standard schedule please'+
     4703                           'If you would like to create a Day-of-Week schedule please'+
    43364704                           ' select ''OTHER'' from the list.',
    43374705                           'Incorrect Schedule.');
     
    43444712
    43454713//Removed based on Site feeback. See CQ: 7518
    4346 {function TfrmODMeds.ValidateRoute(RouteCombo: TORComboBox) : Boolean;
    4347 begin
     4714(*function TfrmODMeds.ValidateRoute(RouteCombo: TORComboBox) : Boolean;
     4715begin
     4716{CQ: 7331 - Medications - Route - Can not enter any route not listed in Route field in window}
    43484717  Result := True;
    43494718  if (Length(RouteCombo.Text) > 0) and (RouteCombo.ItemIndex < 0) and (Not IsSupplyAndOutPatient) then
     
    43564725    Result := False;
    43574726  end;
    4358 end;}
     4727end;*)
    43594728
    43604729function TfrmODMeds.isUniqueQuickOrder(iText: string): Boolean;
     
    43734742function TfrmODMeds.IsSupplyAndOutPatient: boolean;
    43744743begin
     4744{CQ: 7331 - Medications - Route - Can not enter any route not listed in Route field in window}
    43754745  Result := False;
    43764746  if (MedIsSupply(txtMed.Tag)) and (not FInptDlg) then
     
    43784748end;
    43794749
     4750// CQ: 7397 - Inpatient med orders with PRN cancel due to invalid schedule.
     4751function TfrmODMeds.GetSchedListIndex(SchedCombo: TORComboBox; pSchedule: String):integer;
     4752var i: integer;
     4753begin
     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;
     4763end;
     4764
    43804765
    43814766procedure TfrmODMeds.cboXScheduleExit(Sender: TObject);
    43824767begin
    43834768  inherited;
     4769{CQ: 7344 - Inconsistency with Schedule box: Allows free-text entry for Complex orders,
     4770            doesn't for simple orders }
    43844771  ValidateInpatientSchedule(cboXSchedule);
    43854772end;
    43864773
     4774procedure TfrmODMeds.cboDosageKeyUp(Sender: TObject; var Key: Word;
     4775  Shift: TShiftState);
     4776begin
     4777  inherited;
     4778  //Fix for CQ: 7545
     4779  if cboDosage.ItemIndex > -1 then
     4780    cboDosageClick(Sender);
     4781end;
     4782
     4783procedure TfrmODMeds.cboXDosageKeyUp(Sender: TObject; var Key: Word;
     4784  Shift: TShiftState);
     4785begin
     4786  inherited;
     4787  //Fix for CQ: 7545
     4788  if cboXDosage.ItemIndex > -1 then
     4789    cboXDosageClick(Sender);
     4790end;
     4791
     4792procedure TfrmODMeds.txtSupplyClick(Sender: TObject);
     4793begin
     4794  inherited;
     4795  Self.txtSupply.SelectAll;
     4796end;
     4797
     4798procedure TfrmODMeds.txtQuantityClick(Sender: TObject);
     4799begin
     4800  inherited;
     4801   self.txtQuantity.SelectAll;
     4802end;
     4803
     4804procedure TfrmODMeds.txtRefillsClick(Sender: TObject);
     4805begin
     4806  inherited;
     4807  self.txtRefills.SelectAll;
     4808end;
     4809
     4810procedure TfrmODMeds.WMClose(var Msg: TWMClose);
     4811begin
     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
     4827end;
     4828
     4829procedure TfrmODMeds.cboXScheduleEnter(Sender: TObject);
     4830begin
     4831  inherited;
     4832  //agp Change CQ 10719
     4833   self.chkXPRN.OnClick(self.chkXPRN);
     4834end;
     4835
    43874836end.
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODRad.dfm

    r459 r460  
    88  Constraints.MinHeight = 344
    99  Constraints.MinWidth = 576
    10   OnPaint = FormPaint
    1110  PixelsPerInch = 96
    1211  TextHeight = 13
     
    8887      SynonymChars = '<>'
    8988      TabOrder = 0
    90       OnDropDownClose = cboImTypeChange
     89      OnChange = cboImTypeChange
     90      OnDropDownClose = cboImTypeDropDownClose
    9191      OnExit = cboImTypeExit
    9292      CharsNeedMatch = 1
     
    241241      TabOrder = 8
    242242      OnChange = calPreOpChange
     243      OnExit = calPreOpExit
    243244      DateOnly = False
    244245      RequireTime = False
     
    256257      TabOrder = 6
    257258      OnClick = ControlChange
     259      OnExit = chkIsolationExit
    258260    end
    259261    object calRequestDate: TORDateBox
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODRad.pas

    r459 r460  
    5656    procedure FormCreate(Sender: TObject);
    5757    procedure cboImTypeChange(Sender: TObject);
    58     procedure FormPaint(Sender: TObject);
    5958    procedure memReasonExit(Sender: TObject);
    6059    procedure FormResize(Sender: TObject);
     
    6564    procedure cboProcedureExit(Sender: TObject);
    6665    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);
    6770  private
    6871    FLastRadID: string;
     
    7174    FEvtDelayDiv: string;
    7275    FPredefineOrder: boolean;
     76    ImageTypeChanged : boolean;
     77    FFormFirstOpened: boolean;
     78    function NoPregnantSelection : Boolean;
     79    procedure ImageTypeChange;
     80    procedure FormFirstOpened(Sender: TObject);
    7381  protected
    7482    procedure InitDialog; override;
    7583    procedure Validate(var AnErrMsg: string); override;
    76     procedure SetDefaultPregant;   
     84    procedure SetDefaultPregant;
    7785  public
    7886    procedure SetupDialog(OrderAction: Integer; const ID: string); override;
     
    8391{$R *.DFM}
    8492
    85 uses rODBase, rODRad, rOrders, uCore, rCore, fODRadApproval, fODRadConShRes, fLkUpLocation;
     93uses rODBase, rODRad, rOrders, uCore, rCore, fODRadApproval, fODRadConShRes, fLkUpLocation, fFrame,
     94  uFormMonitor;
    8695
    8796const
     
    103112var
    104113  Radiologist, Contract, Research: string ;
    105   AName: string;
     114  AName, IsPregnant: string;
    106115  ALocation, AType: integer;
    107 
     116 
    108117{ TfrmODBase common methods }
    109118
     
    116125  if OrderAction in [ORDER_COPY, ORDER_EDIT, ORDER_QUICK] then with Responses do
    117126  begin
    118     if (OrderAction = ORDER_QUICK) or (OrderAction = ORDER_COPY) then
     127    if (OrderAction = ORDER_QUICK) or (OrderAction = ORDER_EDIT) or (OrderAction = ORDER_COPY) then
    119128      FPredefineOrder := True;
    120129    FEditCopy := True;
     
    125134        for i := 0 to Items.Count-1 do
    126135          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;
    127141     end;
    128142    if Self.EvtID>0 then
     
    171185          end;
    172186      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
    173203    Changing := False;
    174204    FEditCopy := False;
    175205    OrderMessage(ImagingMessage(cboProcedure.ItemIEN)) ;
    176206    ControlChange(Self);
     207    FPredefineOrder := False;
    177208  end;
    178209end;
     
    184215begin
    185216  if not FEditCopy then inherited;
     217
    186218  FPreOpDate := '';
    187219  FLastRadID := '';
     
    203235      cboProcedure.Items.Add(FRadCommonCombo.Items[i]);
    204236    if FRadCommonCombo.Items.Count>0 then cboProcedure.InsertSeparator;
     237
    205238    calRequestDate.Text := 'TODAY';
    206239    SetControl(cboAvailMod, 'Modifiers');
     
    286319  with cboCategory do if Length(ItemID)  > 0 then Responses.Update('CLASS',     1, ItemID, Text);
    287320  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')
    289322                 else if not Enabled         then Responses.Update('PREGNANT',  1, ''    , '');
    290323  with radPregnantNo do if Checked           then Responses.Update('PREGNANT',  1, 'N'   , 'No');
     
    387420  with calRequestDate do
    388421    if FMDateTime = 0 then SetError(TX_NO_DATE);
     422
    389423end;
    390424
    391425procedure TfrmODRad.cboProcedureNeedData(Sender: TObject;
    392426  const StartFrom: string; Direction, InsertAt: Integer);
     427
    393428begin
    394429  inherited ;
    395430  cboProcedure.ForDataUse(SubSetOfRadProcs(DisplayGroup, StartFrom, Direction));
    396 end;
     431 end;
    397432
    398433procedure TfrmODRad.cboAvailModMouseClick(Sender: TObject);
     
    402437  Found: boolean;
    403438begin
     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;
    404441  Found := False;
    405442  with cboAvailMod do x := Items[ItemIndex];
     
    445482   begin
    446483    if ItemID <> FLastRadID then
    447     begin
    448       FLastRadID := ItemID;
    449       if FPredefineOrder then
    450         FPredefineOrder := False;
    451     end else Exit;
     484     begin
     485       FLastRadID := ItemID;
     486       if FPredefineOrder then
     487         FPredefineOrder := False;
     488     end else Exit;
    452489    Changing := True;
    453490    if Sender <> Self then
     
    539576procedure TfrmODRad.FormCreate(Sender: TObject);
    540577begin
     578  FFormFirstOpened := TRUE;
     579  ImageTypeChanged := false;
     580  frmFrame.pnlVisit.Enabled := false;
    541581  AutoSizeDisabled := True;
    542582  inherited;
     
    567607    radPregnantUnknown.Enabled := False;
    568608  end else SetDefaultPregant;
     609  FormMonitorBringToFrontEvent(Self, FormFirstOpened);
    569610end;
    570611
     
    575616begin
    576617  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;
    593619end;
    594620
     
    679705end;
    680706
     707
    681708procedure TfrmODRad.cboImTypeExit(Sender: TObject);
    682709begin
    683710  inherited;
    684   if FPredefineOrder then Exit
    685   else cboImTypeChange(Self);
     711  ImageTypeChange;
     712end;
     713
     714procedure TfrmODRad.FormClose(Sender: TObject; var Action: TCloseAction);
     715begin
     716  inherited;
     717  frmFrame.pnlVisit.Enabled := true;
     718  FormMonitorBringToFrontEvent(Self, nil);
     719end;
     720
     721procedure TfrmODRad.chkIsolationExit(Sender: TObject);
     722begin
     723  inherited;
     724  //Fix for CQ: 10025
     725  if TabIsPressed() then
     726    if NoPregnantSelection() then
     727      if radPregnant.CanFocus then
     728        radPregnant.SetFocus();
     729end;
     730
     731procedure TfrmODRad.calPreOpExit(Sender: TObject);
     732begin
     733  inherited;
     734  //Fix for CQ: 10025
     735  if ShiftTabIsPressed() then
     736    if NoPregnantSelection() then
     737      if radPregnant.CanFocus then
     738        radPregnant.SetFocus();
     739end;
     740
     741function TfrmODRad.NoPregnantSelection : Boolean;
     742begin
     743  result := not ((radPregnant.Checked) or (radPregnantNo.Checked) or (radPregnantUnknown.Checked));
     744end;
     745
     746procedure TfrmODRad.cboImTypeDropDownClose(Sender: TObject);
     747begin
     748  inherited;
     749  ImageTypeChange;
     750end;
     751
     752procedure TfrmODRad.ImageTypeChange;
     753begin
     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;
     764end;
     765
     766procedure TfrmODRad.FormFirstOpened(Sender: TObject);
     767begin
     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;
    686777end;
    687778
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODVitals.dfm

    r459 r460  
    11inherited frmODVitals: TfrmODVitals
    2   Left = 273
    3   Top = 211
     2  Left = 721
     3  Top = 363
    44  Caption = 'Vital Measurement Order'
    55  PixelsPerInch = 96
     
    6464    ListItemsOnly = False
    6565    LongList = False
     66    LookupPiece = 0
    6667    MaxLength = 0
    6768    Pieces = '2'
     
    7071    TabOrder = 4
    7172    OnChange = ControlChange
     73    CharsNeedMatch = 1
    7274  end
    7375  object cboSchedule: TORComboBox
     
    8688    ListItemsOnly = False
    8789    LongList = False
     90    LookupPiece = 0
    8891    MaxLength = 0
    8992    Pieces = '2'
     
    9295    TabOrder = 5
    9396    OnChange = ControlChange
     97    CharsNeedMatch = 1
    9498  end
    9599  object calStart: TORDateBox
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODVitals.pas

    r459 r460  
    3838    procedure FormCreate(Sender: TObject);
    3939    procedure ControlChange(Sender: TObject);
     40    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    4041  private
    4142    { Private declarations }
     
    5455{$R *.DFM}
    5556
    56 uses uConst, ORFn, rODBase;
     57uses uConst, ORFn, rODBase, fFrame;
    5758
    5859const
     
    6465procedure TfrmODVitals.FormCreate(Sender: TObject);
    6566begin
     67  frmFrame.pnlVisit.Enabled := false;
    6668  inherited;
    6769  FillerID := 'OR';                     // does 'on Display' order check **KCM**
     
    138140end;
    139141
     142procedure TfrmODVitals.FormClose(Sender: TObject;
     143  var Action: TCloseAction);
     144begin
     145  inherited;
     146  frmFrame.pnlVisit.Enabled := true;
     147end;
     148
    140149end.
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOMSet.pas

    r459 r460  
    2626    procedure FormCreate(Sender: TObject);
    2727  private
     28    DoingNextItem : Boolean;
     29    CloseRequested : Boolean;
    2830    FDelayEvent: TOrderDelayEvent;
    2931    FClosing: Boolean;
     
    105107var
    106108  SetItem: TSetItem;
     109  theOwner: TComponent;
    107110
    108111  procedure SkipToNext;
     
    113116
    114117begin
     118  DoingNextItem := true;
    115119  //frmFrame.UpdatePtInfoOnRefresh;
    116120  if FClosing then Exit;
     
    158162                    SkipToNext;
    159163                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;
    165172              end;
    166173    else      begin
     
    170177    end; {case}
    171178  end; {with lstSet}
     179  DoingNextItem := false;
    172180end;
    173181
     
    178186  if Message.WParam = lstSet.ItemIndex then
    179187    if lstSet.ItemIndex < lstSet.Items.Count - 1 then DoNextItem else Close;
     188  if CloseRequested then
     189    Close;
    180190end;
    181191
     
    197207    begin
    198208      SendMessage(TWinControl(SetItem.OwnedBy).Handle, UM_DESTROY, SetItem.RefNum, 0);
    199       Exit;
     209      //Exit;
    200210    end;
    201211  end;
     
    219229  FClosebyDeaCheck := False;
    220230  NoFresh := True;
     231  CloseRequested := false;
     232  DoingNextItem := false;
    221233end;
    222234
     
    264276procedure TfrmOMSet.cmdInteruptClick(Sender: TObject);
    265277begin
    266   Close;
     278  if DoingNextItem then
     279    CloseRequested := true              //Fix for CQ: 8297
     280  else
     281    Close;
    267282end;
    268283
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOMVerify.pas

    r459 r460  
    3030{$R *.DFM}
    3131
    32 uses ORFn, uConst, fFrame, rMisc;
     32uses ORFn, uConst, fFrame, rMisc, uODBase;
    3333
    3434procedure ShowVerifyText(var QuickLevel: Integer; var VerifyText: string; InptDispGrp: boolean);
     
    3737  tempStrs,prompts: TStringList;
    3838  flag: boolean;
     39  HasObjects: boolean;
    3940
    4041  function CutoffOutptPrompts(const promptIDs: TStringList; var promptList: TStringList): boolean;
     
    8384      SetBounds(frmFrame.Left, frmFrame.Top + frmFrame.Height - Height, Width, Height);
    8485      SetFormPosition(frmOMVerify);
     86      ExpandOrderObjects(VerifyText, HasObjects);
    8587      memText.Lines.SetText(PChar(VerifyText));
    8688      ShowModal;
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrderFlag.dfm

    r459 r460  
    8787    OnExit = cboOnExit
    8888    OnNeedData = cboAlertRecipientNeedData
     89    CharsNeedMatch = 1
    8990  end
    9091end
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrderFlag.pas

    r459 r460  
    5757  finally
    5858    frmFlagOrder.Release;
     59    AlertRecip := 0;
    5960  end;
    6061end;
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrderSaveQuick.pas

    r459 r460  
    104104  DGroupName, QuickName, CRC: string;
    105105  NewIEN, AnIndex, i: Integer;
     106  IsClinicOrder: boolean;
    106107begin
    107108  Result := False;
    108109  CRC := ResponseSet.OrderCRC;
     110  IsClinicOrder := False;
    109111  if CRC = EMPTY_CRC then
    110112  begin
     
    117119    with frmSaveQuickOrder do
    118120    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;
    119126      if ResponseSet.DisplayGroup = ClinDisp then
    120127        DGroupName := NameOfDGroup(InptDisp)
     
    156163          SaveQuickListForOD(lstQuickList.Items, ResponseSet.DisplayGroup);
    157164      end; {if OKPressed}
     165      if IsClinicOrder = True then ResponseSet.DisplayGroup := ClinDisp;
    158166    end; {with frmSaveQuickOrder}
    159167  finally
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrders.dfm

    r459 r460  
    11inherited frmOrders: TfrmOrders
    2   Left = 142
    3   Top = 63
    4   Width = 698
     2  Left = 451
     3  Top = 250
     4  Width = 774
    55  Height = 579
    66  HelpContext = 4000
     
    1414  inherited shpPageBottom: TShape
    1515    Top = 528
    16     Width = 690
     16    Width = 766
    1717  end
    1818  inherited sptHorz: TSplitter
    1919    Left = 117
    2020    Height = 528
     21    OnMoved = sptHorzMoved
    2122  end
    2223  inherited pnlLeft: TPanel
     
    102103  inherited pnlRight: TPanel
    103104    Left = 121
    104     Width = 569
     105    Width = 645
    105106    Height = 528
    106107    ParentColor = True
     
    111112      Left = 0
    112113      Top = 0
    113       Width = 569
     114      Width = 645
    114115      Height = 19
    115116      Align = alTop
     
    144145      Left = 0
    145146      Top = 19
    146       Width = 569
     147      Width = 645
    147148      Height = 17
    148149      DragReorder = False
     
    179180          ImageIndex = -1
    180181          MinWidth = 16
    181           Text = 'Nrs'
     182          Text = 'Nurse'
    182183          Width = 40
    183184        end
     
    185186          ImageIndex = -1
    186187          MinWidth = 16
    187           Text = 'Clk'
     188          Text = 'Clerk'
    188189          Width = 35
    189190        end
     
    197198          ImageIndex = -1
    198199          MinWidth = 16
    199           Text = 'Sts'
     200          Text = 'Status'
    200201          Width = 50
    201202        end
     
    206207          Width = 40
    207208        end>
     209      OnSectionClick = hdrOrdersSectionClick
    208210      OnSectionResize = hdrOrdersSectionResize
    209211      OnMouseDown = hdrOrdersMouseDown
     
    213215      Left = 0
    214216      Top = 36
    215       Width = 569
     217      Width = 645
    216218      Height = 492
    217219      Style = lbOwnerDrawVariable
     
    301303        end
    302304      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
    303355      object Z1: TMenuItem
    304356        Caption = '-'
     
    522574      OnClick = mnuActSignClick
    523575    end
     576    object mnuOptimizeFields: TMenuItem
     577      Caption = 'Adjust Column Size'
     578      Visible = False
     579      OnClick = mnuOptimizeFieldsClick
     580    end
    524581  end
    525582end
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrders.pas

    r459 r460  
    8989    sptVert: TSplitter;
    9090    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;
    91102    procedure mnuChartTabClick(Sender: TObject);
    92103    procedure FormCreate(Sender: TObject);
     
    146157    procedure hdrOrdersMouseDown(Sender: TObject; Button: TMouseButton;
    147158      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);
    148165  private
    149166    { Private declarations }
     
    188205    procedure UseDefaultSort;
    189206    procedure SynchListToOrders;
     207//    procedure ActivateDeactiveRenew;
    190208    procedure ValidateSelected(const AnAction, WarningMsg, WarningTitle: string);
    191209    procedure ViewAlertedOrders(OrderIEN: string; Status: integer; DispGrp: string;
     
    196214    function MeasureColumnHeight(AnOrder: TOrder; Index: Integer; Column: integer):integer;
    197215    function GetPlainText(AnOrder: TOrder; index: integer):string;
     216    function PatientStatusChanged: boolean;   
    198217    procedure UMEventOccur(var Message: TMessage); message UM_EVENTOCCUR;
     218    function CheckOrderStatus: boolean;
    199219  public
    200220    procedure setSectionWidths; //CQ6170
     
    229249    property EvtColWidth: integer       read FEvtColWidth        write FEvtColWidth;
    230250    property DontCheck: boolean         read FDontCheck          write FDontCheck;
    231     property ParentComplexOrderID: string       read FParentComplexOrderID        write FParentComplexOrderID; 
     251    property ParentComplexOrderID: string       read FParentComplexOrderID        write FParentComplexOrderID;
    232252  end;
    233253
     
    247267     fOMNavA, rCore, fOCSession, fOrdersPrint, fOrdersTS, fEffectDate, fODActive, fODChild,
    248268     fOrdersCopy, fOMVerify, fODAuto, rODBase, uODBase, rMeds,fODValidateAction, fMeds, uInit, fBALocalDiagnoses,
    249   fODConsult;
     269     fODConsult, fClinicWardMeds, fActivateDeactivate;
    250270
    251271{$R *.DFM}
     
    970990          if ((TOrder(Items.Objects[i]).DGroupName = 'Inpt. Meds') or
    971991              (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
    973994            begin
    974995              tmpList.Add('');
     
    9931014          ReportBox(tmpList, 'Order Details - ' + BigOrderID, True);
    9941015        end;
     1016      StatusText('');
     1017      if (frmFrame.TimedOut) or (frmFrame.CCOWDrivedChange) then Exit; //code added to correct access violation on timeout
    9951018      Selected[i] := False;
    996       StatusText('');
    997     end;
     1019      end;
    9981020  finally
    9991021    tmpList.Free;
     
    13241346      7: result := ChartRev;
    13251347      8: result := NameOfStatus(Status);
    1326       9:
    1327       begin
    1328         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;
    13311353    end;
    13321354  end;
     
    14351457  NextIndex: Integer;
    14361458begin
    1437 
     1459  if PatientStatusChanged then exit;
    14381460  if BILLING_AWARE then //CQ5114
    14391461     fODConsult.displayDXCode := ''; //CQ5114
     
    15341556  BadList  := TStringList.Create;
    15351557  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);
    15551595        Selected[i] := False;
    15561596        Continue;
    15571597      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
    15831645       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);
    15891650       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;
    16201656end;
    16211657
     
    16821718  SelectedList := TList.Create;
    16831719  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
    16851723    MakeSelectedList(SelectedList);                     // build list of orders that remain
    16861724    // updating the Changes object happens in ExecuteDCOrders, based on individual order
     
    17531791begin
    17541792  inherited;
    1755   if not EncounterPresentEDO then Exit; 
     1793  if not EncounterPresentEDO then Exit;
    17561794  if NoneSelected(TX_NOSEL) then Exit;
    17571795  if not AuthorizedUser then Exit;
     
    17641802  SelectedList := TList.Create;
    17651803  try
     1804    if CheckOrderStatus = True then Exit;
    17661805    ValidateSelected(OA_CHGEVT, TX_NO_CV, TC_NO_CV);   // validate Change Event action on each order
    17671806    MakeSelectedList(SelectedList);                     // build list of orders that remain
     
    17991838  SelectedList := TList.Create;
    18001839  try
     1840    if CheckOrderStatus = True then Exit;
    18011841    ValidateSelected(OA_HOLD, TX_NO_HOLD, TC_NO_HOLD);  // validate hold action on each order
    18021842    MakeSelectedList(SelectedList);                     // build list of orders that remain
     
    18241864  SelectedList := TList.Create;
    18251865  try
     1866    if CheckOrderStatus = True then Exit;
    18261867    ValidateSelected(OA_UNHOLD, TX_NO_UNHOLD, TC_NO_UNHOLD);  // validate release hold action
    18271868    MakeSelectedList(SelectedList);                           // build list of selected orders
     
    18501891  SelectedList := TList.Create;
    18511892  try
     1893    if CheckOrderStatus = True then Exit;
    18521894    ValidateSelected(OA_RENEW, TX_NO_RENEW, TC_NO_RENEW);  // validate renew action for each
    18531895    MakeSelectedList(SelectedList);                       // build list of orders that remain
     
    20262068  try
    20272069    if NoneSelected(TX_NOSEL) then Exit;
     2070    if CheckOrderStatus = True then Exit;
    20282071    ValidateSelected(OA_CHANGE, TX_NO_CHANGE, TC_NO_CHANGE);
    20292072    if (FCurrentView.EventDelay.PtEventIFN>0) and
     
    20672110    if NoneSelected(TX_NOSEL) then Exit;
    20682111    NewOrderCreated := False;
     2112    if CheckOrderStatus = True then Exit;
    20692113    ValidateSelected(OA_COPY, TX_NO_COPY, TC_NO_COPY);
    20702114    if (FCurrentView.EventDelay.PtEventIFN>0) and (PtEvtCompleted(FCurrentView.EventDelay.PtEventIFN, FCurrentView.EventDelay.EventName)) then
     
    22692313       UBACore.CompleteUnsignedBillingInfo(rpcGetUnsignedOrdersBillingData(OrderListSCEI) );
    22702314    end;
    2271    
     2315
    22722316   {billing Aware}
    22732317    ExecuteReleaseOrderChecks(SelectedList);            // call order checking
     
    22792323      if Active and (FollowUp = NF_ORDER_REQUIRES_ELEC_SIGNATURE) then
    22802324        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;
    22842331    if not uInit.TimedOut then
    22852332      begin
     
    23702417      NF_DNR_EXPIRING                  :
    23712418        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          :
    23732424        begin
    23742425          ViewAlertedOrders('', STS_EXPIRING, 'PHARMACY', False, True, 'Medications, Expiring');
     
    25092560    if (ALocation > 0) and (ALocation <> Encounter.Location) then
    25102561    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;
    25132566    end;
    25142567    if Encounter.Location = 0
     
    30453098  inherited SetFontSize( FontSize );
    30463099  RedrawOrderList;
     3100  mnuOptimizeFieldsClick(self);
     3101  lstSheets.Repaint;
     3102  lstWrite.Repaint;
     3103  btnDelayedOrder.Repaint;
    30473104end;
    30483105
     
    30503107begin
    30513108  inherited;
     3109  if PatientStatusChanged then exit;
    30523110  //frmFrame.UpdatePtInfoOnRefresh;
    30533111end;
     
    30563114begin
    30573115  inherited;
     3116  if PatientStatusChanged then exit;
    30583117  //frmFrame.UpdatePtInfoOnRefresh;
    30593118end;
     
    30623121begin
    30633122  inherited;
     3123  if PatientStatusChanged then exit;
    30643124  //frmFrame.UpdatePtInfoOnRefresh;
    30653125end;
     
    30683128begin
    30693129  inherited;
     3130  if PatientStatusChanged then exit; 
    30703131  //frmFrame.UpdatePtInfoOnRefresh;
    30713132end;
     
    31863247var
    31873248  i: integer;
    3188   totalSectionsWidth: integer;
     3249  totalSectionsWidth, originalwidth: integer;
    31893250begin
    31903251  inherited;
    31913252  //CQ6170
    31923253  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;
    32023266  //end CQ6170
    32033267end;
     
    32093273end;
    32103274
     3275function TfrmOrders.PatientStatusChanged: boolean;
     3276const
     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.';
     3284var
     3285  PtSelect: TPtSelect;
     3286  IsInpatientNow: boolean;
     3287  ptSts: string;
     3288begin
     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;
     3304end;
     3305
     3306function TfrmOrders.CheckOrderStatus: boolean;
     3307var
     3308i: integer;
     3309AnOrder: TOrder;
     3310begin
     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;
     3323end;
     3324
     3325(*procedure TfrmOrders.ActivateDeactiveRenew;
     3326var
     3327  i: Integer;
     3328  AnOrder: TOrder;
     3329  tmpArr: TStringList;
     3330begin
     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);
     3338end;  *)
     3339
     3340procedure TfrmOrders.ViewInfo(Sender: TObject);
     3341begin
     3342  inherited;
     3343  frmFrame.ViewInfo(Sender);
     3344end;
     3345
     3346procedure TfrmOrders.mnuViewInformationClick(Sender: TObject);
     3347begin
     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;
     3358end;
     3359
     3360procedure TfrmOrders.mnuOptimizeFieldsClick(Sender: TObject);
     3361var
     3362  totalSectionsWidth, unitvalue: integer;
     3363begin
     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;
     3381end;
     3382
     3383procedure TfrmOrders.hdrOrdersSectionClick(HeaderControl: THeaderControl;
     3384  Section: THeaderSection);
     3385begin
     3386  inherited;
     3387  //if Section = hdrOrders.Sections[1] then
     3388    mnuOptimizeFieldsClick(self);
     3389end;
     3390
     3391procedure TfrmOrders.sptHorzMoved(Sender: TObject);
     3392begin
     3393  inherited;
     3394  mnuOptimizeFieldsClick(self);
     3395end;
     3396
    32113397end.
    32123398
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrdersDC.dfm

    r459 r460  
    6565      ParentShowHint = False
    6666      ShowHint = True
     67      Sorted = True
    6768      TabOrder = 0
    6869      Caption = 'Reason for Discontinue (select one)'
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrdersDC.pas

    r459 r460  
    3636{$R *.DFM}
    3737
    38 uses rOrders, uCore, uConst, fOrders, UBAGlobals;
    39 { TODO -oRich V. -cOutpatient Meals : Uncomment for processing of child orders treeview. }
    40 //, fOrderChildren;
     38uses rOrders, uCore, uConst, fOrders;
    4139
    4240function ExecuteDCOrders(SelectedList: TList; var DelEvt: boolean): Boolean;
     
    5250  OriginalID,APtEvtID,APtEvtName,AnEvtInfo,tmpPtEvt:  string;
    5351  PtEvtList: TStringList;
    54 { TODO -oRich V. -cOutpatient Meals : Uncomment for processing of child orders treeview. }
    55 (*  tmpList: TList;
    56   j: integer;
    57   AChildOrder: TOrder;*)
    5852begin
    5953  Result := False;
     
    6357  PtEvtList := TStringList.Create;
    6458  if SelectedList.Count = 0 then Exit;
    65 { TODO -oRich V. -cOutpatient Meals : Uncomment for processing of child orders treeview. }
    66 //  tmpList := TList.Create;
    6759  frmDCOrders := TfrmDCOrders.Create(Application);
    6860  try
     
    7264    begin
    7365      AnOrder    := TOrder(Items[i]);
    74 
    75       if BILLING_AWARE then  //CQ4589
    76         UBAGlobals.RemoveOrderFromDxList(AnOrder.ID);
    77 
    78 { TODO -oRich V. -cOutpatient Meals : Comment next 3 lines for processing of child orders treeview. }
    7966      frmDCOrders.lstOrders.Items.Add(AnOrder.Text);
    8067      if not ((AnOrder.Status = 11) and (AnOrder.Signature = 2)) then NeedReason := True;
    8168    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) = '+' then
    85       begin
    86         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 do
    89         begin
    90           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 else
    95       begin
    96         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 ****************
    10169    if NeedReason then
    10270    begin
     
    12694                       end;
    12795        DCT_DELETION:  begin
    128                          if BILLING_AWARE then
    129                             UBAGlobals.BADeltedOrders.Add(OriginalID);
    13096                         Changes.Remove(CH_ORD, OriginalID);
    13197                         if (AnOrder.ID = '0') or (AnOrder.ID = '')
     
    174140    else with SelectedList do for i := 0 to Count - 1 do UnlockOrder(TOrder(Items[i]).ID);
    175141  finally
    176 { TODO -oRich V. -cOutpatient Meals : Uncomment for processing of child orders treeview. }
    177     //tmpList.Free;
    178142    frmDCOrders.Release;
    179143  end;
     
    202166begin
    203167  inherited;
    204   if not (lstReason.ItemIEN > 0) then
     168  if (lstReason.Visible) and (not (lstReason.ItemIEN > 0)) then
    205169  begin
    206170    InfoBox(TX_REASON_REQ, TC_REASON_REQ, MB_OK);
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrdersOnChart.pas

    r459 r460  
    3333{$R *.DFM}
    3434
    35 uses rCore, rOrders, uConst, fOrdersPrint, uOrders;
     35uses rCore, rOrders, uConst, fOrdersPrint, uOrders, fFrame, UCore,
     36  fClinicWardMeds;
    3637
    3738const
     
    4344var
    4445  frmOnChartOrders: TfrmOnChartOrders;
    45   i: Integer;
     46  i, PrintLoc: Integer;
    4647  SignList: TStringList;
    4748  OrderText: string;
     
    6263begin
    6364  Result := False;
     65  PrintLoc := 0;
    6466  if SelectedList.Count = 0 then Exit;
    6567  frmOnChartOrders := TfrmOnChartOrders.Create(Application);
     
    7880        StatusText('Sending Orders to Service(s)...');
    7981        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
    8094        with SignList do if Count > 0 then for i := 0 to Count - 1 do
    8195          begin
     
    88102          end;
    89103        StatusText('');
    90         PrintOrdersOnSignRelease(SignList, NO_WRITTEN);
     104        PrintOrdersOnSignRelease(SignList, NO_WRITTEN, PrintLoc);
    91105//        SetupOrdersPrint(SignList, DeviceInfo, NO_WRITTEN, False, PrintIt);  //*KCM*
    92106//        if PrintIt then PrintOrdersOnReview(SignList, DeviceInfo);           //*KCM*
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrdersRelease.pas

    r459 r460  
    4141{$R *.DFM}
    4242
    43 uses Hash, rCore, rOrders, uConst, fSignItem, fOrdersPrint, uCore, uOrders, fRptBox;
     43uses Hash, rCore, rOrders, uConst, fSignItem, fOrdersPrint, uCore, uOrders, fRptBox,
     44  fFrame, fClinicWardMeds;
    4445
    4546const
     
    5556var
    5657  frmReleaseOrders: TfrmReleaseOrders;
    57   i: Integer;
     58  i, PrintLoc: Integer;
    5859  SignList: TStringList;
    5960  OrderText: string;
     
    8788begin
    8889  Result := False;
     90  PrintLoc := 0;
    8991  if SelectedList.Count = 0 then Exit;
    9092  frmReleaseOrders := TfrmReleaseOrders.Create(Application);
     
    109111        StatusText('Sending Orders to Service(s)...');
    110112        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
    111128        with SignList do if Count > 0 then for i := 0 to Count - 1 do
    112129        begin
     
    120137        end;
    121138        StatusText('');
    122         PrintOrdersOnSignRelease(SignList, frmReleaseOrders.FNature);
     139        PrintOrdersOnSignRelease(SignList, frmReleaseOrders.FNature, PrintLoc);
    123140//        SetupOrdersPrint(SignList, DeviceInfo, frmReleaseOrders.FNature, False, PrintIt); //*KCM*
    124141//        if PrintIt then PrintOrdersOnReview(SignList, DeviceInfo);                       //*KCM*
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrdersRenew.dfm

    r459 r460  
    11inherited 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
    68  Caption = 'Renew Orders'
     9  ClientHeight = 416
     10  ClientWidth = 592
    711  Position = poScreenCenter
     12  Scaled = False
    813  OnClose = FormClose
    914  OnCreate = FormCreate
     
    1116  PixelsPerInch = 96
    1217  TextHeight = 13
    13   object lstOrders: TListBox
    14     Left = 0
    15     Top = 17
    16     Width = 442
    17     Height = 185
    18     Style = lbOwnerDrawVariable
    19     Align = alClient
    20     Color = clCream
    21     ItemHeight = 13
    22     TabOrder = 0
    23     OnClick = lstOrdersClick
    24     OnDrawItem = lstOrdersDrawItem
    25     OnMeasureItem = lstOrdersMeasureItem
    26   end
    2718  object hdrOrders: THeaderControl
    2819    Left = 0
    2920    Top = 0
    30     Width = 442
     21    Width = 592
    3122    Height = 17
    3223    DragReorder = False
     24    Constraints.MinHeight = 17
    3325    Sections = <
    3426      item
     27        AutoSize = True
    3528        ImageIndex = -1
    3629        Text = 'Order to be Renewed'
    37         Width = 317
     30        Width = 296
    3831      end
    3932      item
     33        AutoSize = True
    4034        ImageIndex = -1
    4135        Text = 'Start/Stop Time'
    42         Width = 125
     36        Width = 296
    4337      end>
     38    OnSectionResize = hdrOrdersSectionResize
    4439  end
    45   object Panel1: TPanel
     40  object pnlBottom: TPanel
    4641    Left = 0
    47     Top = 202
    48     Width = 442
    49     Height = 41
     42    Top = 393
     43    Width = 592
     44    Height = 23
    5045    Align = alBottom
     46    Anchors = [akLeft, akTop, akRight, akBottom]
     47    AutoSize = True
    5148    TabOrder = 2
    5249    DesignSize = (
    53       442
    54       41)
     50      592
     51      23)
    5552    object cmdCancel: TButton
    56       Left = 362
    57       Top = 12
     53      Left = 512
     54      Top = 1
    5855      Width = 72
    5956      Height = 21
     
    6158      Cancel = True
    6259      Caption = 'Cancel'
     60      Constraints.MinHeight = 21
    6361      TabOrder = 0
    6462      OnClick = cmdCancelClick
    6563    end
    6664    object cmdOK: TButton
    67       Left = 274
    68       Top = 12
     65      Left = 424
     66      Top = 1
    6967      Width = 72
    7068      Height = 21
    7169      Anchors = [akTop, akRight]
    7270      Caption = 'OK'
     71      Constraints.MinHeight = 21
    7372      Default = True
    7473      TabOrder = 1
     
    7776    object cmdChange: TButton
    7877      Left = 8
    79       Top = 12
     78      Top = 1
    8079      Width = 145
    8180      Height = 21
    8281      Caption = 'Change...'
     82      Constraints.MinHeight = 21
    8383      Enabled = False
    8484      TabOrder = 2
     
    8686    end
    8787  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
    88115end
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrdersRenew.pas

    r459 r460  
    66  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    77  fAutoSz, StdCtrls, ORFn, ComCtrls, uConst, rODMeds, uOrders, fOCAccept,
    8   ExtCtrls, uODBase;
     8  ExtCtrls, uODBase, ORCtrls;
    99
    1010type
    1111  TfrmRenewOrders = class(TfrmAutoSz)
    12     lstOrders: TListBox;
    1312    hdrOrders: THeaderControl;
    14     Panel1: TPanel;
     13    pnlBottom: TPanel;
    1514    cmdCancel: TButton;
    1615    cmdOK: TButton;
    1716    cmdChange: TButton;
     17    lstOrders: TCaptionListBox;
    1818    procedure FormCreate(Sender: TObject);
    1919    procedure cmdOKClick(Sender: TObject);
     
    2727    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    2828    procedure FormShow(Sender: TObject);
     29    procedure hdrOrdersSectionResize(HeaderControl: THeaderControl;
     30      Section: THeaderSection);
    2931  private
    3032    OKPressed: Boolean;
     
    7880  IsInpt: boolean;
    7981  i,j: Integer;
    80   m: integer; //BAPHII 1.3.2
     82  //m: integer; //BAPHII 1.3.2
    8183  PkgInfo:string;
    8284  PlainText,RnErrMsg: string;
     
    251253         AnOrder.LinkObject := nil;
    252254       end;
    253 
    254255    frmRenewOrders.Release;
    255256  end;
    256 
    257 
    258 
    259257end;
    260258
     
    283281    DateHeight := MeasureColumnHeight(x, Index, DATE_COLUMN);
    284282    Height := HigherOf(TextHeight, DateHeight);
     283    if Height > 255 then Height := 255;  //This is maximum allowed by a windows listbox item.
    285284  end
    286285end;
     
    427426end;
    428427
     428procedure TfrmRenewOrders.hdrOrdersSectionResize(HeaderControl: THeaderControl; Section: THeaderSection);
     429begin
     430  inherited;
     431  lstOrders.Repaint; //CQ6367
     432end;
     433
     434
    429435end.
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrdersSign.dfm

    r459 r460  
    11object frmSignOrders: TfrmSignOrders
    2   Left = 379
    3   Top = 162
     2  Left = 400
     3  Top = 159
    44  Width = 585
    55  Height = 511
     
    4343  object Label2: TStaticText
    4444    Left = 8
    45     Top = 144
     45    Top = 147
    4646    Width = 171
    4747    Height = 17
    4848    Caption = 'The following orders will be signed -'
    49     TabOrder = 4
     49    TabOrder = 3
    5050    TabStop = True
    5151  end
     
    5858    Caption = 'OK'
    5959    Default = True
    60     TabOrder = 2
     60    TabOrder = 1
    6161    OnClick = cmdOKClick
    6262  end
     
    6969    Cancel = True
    7070    Caption = 'Cancel'
    71     TabOrder = 3
     71    TabOrder = 2
    7272    OnClick = cmdCancelClick
    7373  end
     
    192192    ShowHint = True
    193193    Style = lbOwnerDrawVariable
    194     TabOrder = 1
     194    TabOrder = 4
    195195    OnClick = clstOrdersClick
    196196    OnDrawItem = clstOrdersDrawItem
     
    243243    object Diagnosis1: TMenuItem
    244244      Caption = '&Diagnosis...'
    245       Enabled = False
    246245      ShortCut = 32836
    247246      OnClick = buOrdersDiagnosisClick
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrdersSign.pas

    r459 r460  
    114114uses
    115115  Hash, rCore, rOrders, uConst, fOrdersPrint, uCore, uOrders, uSignItems, fOrders,
    116   fPCELex, rPCE, fODConsult, fBALocalDiagnoses;
     116  fPCELex, rPCE, fODConsult, fBALocalDiagnoses, fClinicWardMeds, fFrame;
    117117
    118118const
     
    208208  cProvDUZ: Int64;
    209209  OrderText: string;
     210  PrintLoc: Integer;
    210211 // tempOrderID: string;
    211212
     
    251252  Result := False;
    252253  DigSigErr := True;
    253   DigStoreErr := False;
    254   Obj := Nil;
     254  PrintLoc := 0;
    255255  if SelectedList.Count = 0 then Exit;
    256256  if BILLING_AWARE then
     
    418418          if SignList.Count > 0 then
    419419          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
    420434            SigItems.SaveSettings; // Save CoPay FIRST!
    421435            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
    424440            begin
    425441              if Pos('E', Piece(SignList[i], U, 2)) > 0 then
     
    443459              if theSts = 10 then  SignList.Delete(cnt);  //signed delayed order should not be printed.
    444460          end;
    445           PrintOrdersOnSignRelease(SignList, NO_PROVIDER);
     461          PrintOrdersOnSignRelease(SignList, NO_PROVIDER, PrintLoc);
    446462        finally
    447463          SignList.Free;
     
    505521
    506522procedure TfrmSignOrders.cmdOKClick(Sender: TObject);
    507 {Begin BillingAware}
    508 var
    509    BABillingRecs: TStringList;
    510 {End BillingAware}
    511523const
    512524  TX_NO_CODE  = 'An electronic signature code must be entered to sign orders.';
     
    519531begin
    520532  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
    529534  if txtESCode.Visible and (Length(txtESCode.Text) = 0) then
    530535  begin
     
    545550  begin
    546551    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
    548554         begin                     // billing data will be saved. otherwise error message!
    549555            InfoBox(TX_NO_DX, 'Sign Orders', MB_OK);
     
    781787    begin
    782788       //Billing Awareness 'flyover' hint includes Dx code(s) when Dx code(s) have been assigned to an order
    783            thisRec := TBADxRecord.Create;
    784789           thisOrderID := TChangeItem(fOrdersSign.frmSignOrders.clstOrders.Items.Objects[Itm]).ID;
    785790
     
    909914{Begin BillingAware}
    910915
    911   numSelected := 0;
    912916  match := false;
    913917  allBlank := false;
     
    12641268  j: integer; //CQ5054
    12651269begin
    1266    //if BILLING_AWARE then
    1267     //begin
     1270
    12681271       if FOSTFHintWndActive then
    12691272       begin
     
    12901293           //end CQ5054
    12911294       end;
    1292 
    1293     //end  //if BILLING_AWARE
    12941295end;
    12951296
     
    13151316        end;
    13161317  end;
    1317 
    1318    x := 0;
    1319    y := 0;
    13201318
    13211319  try
     
    13981396begin
    13991397   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;
    14091404  except
    14101405     on E: Exception do
     
    15181513procedure TfrmSignOrders.FormatListForScreenReader;
    15191514var
    1520   ListStateOn : boolean;
     1515  ListStateOn : longbool;
     1516  Success: longbool;
    15211517begin
    15221518  //Determine if a screen reader is currently being used.
    1523   SystemParametersInfo(SPI_GETSCREENREADER, 0, @ListStateOn,0);
    1524   if ListStateOn then
    1525     SetItemTextToState
     1519  Success := SystemParametersInfo(SPI_GETSCREENREADER, 0, @ListStateOn,0);
     1520  if Success and ListStateOn then
     1521    SetItemTextToState;
    15261522end;
    15271523
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOtherSchedule.dfm

    r459 r460  
    11object frmOtherSchedule: TfrmOtherSchedule
    2   Left = 355
    3   Top = 154
     2  Left = 544
     3  Top = 262
    44  AutoScroll = False
    55  Caption = 'Order with schedule '#39'OTHER'#39
    66  ClientHeight = 362
    7   ClientWidth = 341
     7  ClientWidth = 369
    88  Color = clBtnFace
    99  Constraints.MinHeight = 70
     
    2323    Left = 0
    2424    Top = 82
    25     Width = 341
     25    Width = 369
    2626    Height = 8
    2727    Cursor = crVSplit
     
    3333    Left = 0
    3434    Top = 0
    35     Width = 341
     35    Width = 369
    3636    Height = 82
    3737    Align = alTop
     
    5050      Left = 52
    5151      Top = 4
    52       Width = 285
     52      Width = 313
    5353      Height = 74
    5454      Align = alClient
     
    6464    Left = 0
    6565    Top = 90
    66     Width = 341
     66    Width = 369
    6767    Height = 272
    6868    Align = alClient
     
    7272      Left = 1
    7373      Top = 1
    74       Width = 144
     74      Width = 176
    7575      Height = 202
    7676      Align = alLeft
     
    7979      object cbo7: TCheckBox
    8080        Tag = 1
    81         Left = 45
     81        Left = 86
    8282        Top = 21
    8383        Width = 60
     
    8989      object cbo1: TCheckBox
    9090        Tag = 2
    91         Left = 44
     91        Left = 85
    9292        Top = 48
    9393        Width = 60
     
    9999      object cbo2: TCheckBox
    100100        Tag = 3
    101         Left = 44
     101        Left = 85
    102102        Top = 75
    103103        Width = 60
     
    109109      object cbo3: TCheckBox
    110110        Tag = 4
    111         Left = 44
     111        Left = 85
    112112        Top = 102
    113113        Width = 60
     
    119119      object cbo4: TCheckBox
    120120        Tag = 5
    121         Left = 44
     121        Left = 85
    122122        Top = 129
    123123        Width = 60
     
    129129      object cbo5: TCheckBox
    130130        Tag = 6
    131         Left = 44
     131        Left = 85
    132132        Top = 156
    133133        Width = 60
     
    139139      object cbo6: TCheckBox
    140140        Tag = 7
    141         Left = 44
     141        Left = 85
    142142        Top = 183
    143143        Width = 60
     
    147147        OnClick = cbo6Click
    148148      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
    149158    end
    150159    object GroupBox2: TGroupBox
    151       Left = 152
     160      Left = 180
    152161      Top = 1
    153162      Width = 188
     
    214223      end
    215224      object btnRemove: TButton
    216         Left = 114
     225        Left = 118
    217226        Top = 94
    218227        Width = 60
    219228        Height = 19
     229        Hint = 'Remove the selected time from the Day-of-Week schedule.'
    220230        Caption = 'Remove'
     231        ParentShowHint = False
     232        ShowHint = True
    221233        TabOrder = 2
    222234        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
    223247      end
    224248    end
     
    226250      Left = 1
    227251      Top = 203
    228       Width = 339
     252      Width = 367
    229253      Height = 68
    230254      Align = alBottom
    231255      TabOrder = 2
    232256      DesignSize = (
    233         339
     257        367
    234258        68)
    235259      object Label1: TLabel
     
    241265      end
    242266      object btn0k1: TButton
    243         Left = 176
     267        Left = 204
    244268        Top = 43
    245269        Width = 75
     
    251275      end
    252276      object btnCancel: TButton
    253         Left = 257
     277        Left = 285
    254278        Top = 42
    255279        Width = 75
     
    264288        Left = 64
    265289        Top = 8
    266         Width = 268
     290        Width = 296
    267291        Height = 21
    268292        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
    269302        TabOrder = 0
    270303        OnChange = txtScheduleChange
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fOtherSchedule.pas

    r459 r460  
    3535    memMessage: TMemo;
    3636    Splitter1: TSplitter;
     37    btnAdd: TButton;
     38    Button1: TButton;
    3739    procedure FormCreate(Sender: TObject);
    3840    procedure btnCancelClick(Sender: TObject);
     
    5557    procedure lstMinuteKeyDown(Sender: TObject; var Key: Word;
    5658      Shift: TShiftState);
     59    procedure Button1Click(Sender: TObject);
    5760  private
    5861    FDaySchedule: array [1..7] of string;
     
    6669    procedure UpdateOnFreeTextInput;
    6770    function CheckDay(ADayStr: string): string;
     71   
    6872  public
    6973  end;
     
    8791   if frmOtherSchedule.ShowModal = mrOK then
    8892   begin
    89      ASchedule := frmOtherSchedule.FOtherSchedule;
     93     ASchedule := UpperCase(frmOtherSchedule.FOtherSchedule);
    9094     Result := True;
    9195   end;
     
    121125procedure TfrmOtherSchedule.btn0k1Click(Sender: TObject);
    122126begin
     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;
    123133  if not IsValidSchStr(FOtherSchedule) then
    124134  begin
     
    176186var
    177187  i : integer;
    178   TimePart, DayPart: string;
     188  TimePart, DayPart,APRN,ASearchTxt: string;
    179189begin
    180190  TimePart := '';
    181191  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
    182195  for i := 0 to FTimeSchedule.Count - 1 do
    183196  begin
     
    201214  end
    202215  else FOtherSchedule := TimePart;
     216  if Length(APRN) > 0 then FOtherSchedule := FOtherSchedule + APRN; //hds8326 retain PRN free text if data time entered
    203217  txtSchedule.Text := FOtherSchedule;
    204218end;
     
    368382  var
    369383    idx: integer;
     384    x: string;
    370385  begin
    371386    for idx := aDList.Count - 1 downto 0 do
    372387    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
    373393      if ((CheckDay(aDList[idx]) = 'SUN') or (CheckDay(aDList[idx]) = 'SU')) then
    374394        begin
     
    419439begin
    420440  inherited;
    421   i := 0;
    422441  dayStr  := '';
    423442  timeStr := '';
     
    437456  begin
    438457    Val(Piece(txtSchedule.Text,'-',1), i, Code);
     458    if i = 0 then begin end;  // just to make compiler not give hint
    439459    if Code <> 0 then dayStr := Trim(txtSchedule.Text)
    440460    else timeStr := Trim(txtSchedule.Text);
     
    463483begin
    464484  inherited;
    465   lstMinute.ItemIndex := -1;
     485  if lstMinute.ItemIndex = -1 then lstMinute.ItemIndex :=0;
    466486end;
    467487
     
    509529  FFromCheckBox := True;
    510530  if lstHour.ItemIndex < 0 then Exit;
    511   btnAddClick(Self);
     531  //btnAddClick(Self);
    512532  FFromCheckBox := False;
    513533end;
     
    521541    FFromCheckBox := True;
    522542    if lstHour.ItemIndex < 0 then Exit;
    523     btnAddClick(Self);
     543    //btnAddClick(Self);
    524544    FFromCheckBox := False;
    525545  end;
    526546end;
    527547
     548procedure TfrmOtherSchedule.Button1Click(Sender: TObject);
     549begin
     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;
     558end;
     559
    528560end.
    529561
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/rODAllergy.pas

    r459 r460  
    4949  end;
    5050
     51  TARTClinUser = record
     52    IsClinUser: boolean;
     53    ReasonFailed: string;
     54    AccessChecked: boolean;
     55  end;
     56
    5157function SearchForAllergies(StringToMatch: string): TStrings;
    5258function SubsetofSymptoms(const StartFrom: string; Direction: Integer): TStrings;
     
    6470function RequireOriginatorComments: boolean;
    6571function EnableErrorComments: boolean;
     72function IsARTClinicalUser(var AMessage: string): boolean;
    6673
    6774implementation
     
    7380  uARTPatchInstalled: TARTPatchInstalled;
    7481  uGMRASiteParams: TGMRASiteParams;
     82  uARTClinUser: TARTClinUser;
    7583
    7684function ODForAllergies: TStrings;
     
    326334end;
    327335
     336(*function IsARTClinicalUser(var AMessage: string): boolean;
     337const
     338  TX_NO_AUTH = 'You are not authorized to perform this action.' + CRLF +
     339               'Either the ORES or ORELSE key is required.';
     340begin
     341  Result := (User.UserClass > UC_CLERK);     // User has ORES or ORELSE key
     342  if not Result then AMessage := TX_NO_AUTH else AMessage := '';
     343end;*)
     344
     345function IsARTClinicalUser(var AMessage: string): boolean;
     346const
     347  TX_NO_AUTH = 'You are not authorized to perform this action.' + CRLF;
     348var
     349  x: string;
     350begin
     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;
     363end;
     364
    328365end.
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/rODBase.pas

    r459 r460  
    6868  end;
    6969
     70  TPFSSActive = record
     71    PFSSActive: boolean;
     72    PFSSChecked: boolean;
     73  end;
     74
    7075{ General Calls }
    7176function AskAnotherOrder(ADialog: Integer): Boolean;
     
    7580procedure LoadDialogDefinition(Dest: TList; const DialogName: string);
    7681procedure LoadOrderPrompting(Dest: TList; ADialog: Integer);
    77 procedure LoadResponses(Dest: TList; const OrderID: string);
     82//procedure LoadResponses(Dest: TList; const OrderID: string);
     83procedure LoadResponses(Dest: TList; const OrderID: string; var HasObjects: boolean);
    7884procedure PutNewOrder(var AnOrder: TOrder; ConstructOrder: TConstructOrder; OrderSource: string);
    7985//procedure PutNewOrderAuto(var AnOrder: TOrder; ADialog: Integer); // no longer used
     
    8894procedure SetDefaultCoPayToNewOrder(AnOrderID, CoPayInfo:string);
    8995procedure ValidateNumericStr(const x, Dom: string; var ErrMsg: string);
    90 
     96function IsPFSSActive: boolean;
    9197
    9298{ Quick Order Calls }
     
    126132implementation
    127133
    128 uses TRPCB,uOrders;
     134uses TRPCB, uOrders, uODBase;
    129135
    130136var
     
    133139  uLastQuantityMsg: string;
    134140  uMedRoutes: TStringList;
     141  uPFSSActive: TPFSSActive;
    135142
    136143{ Common Internal Calls }
     
    175182        begin
    176183          IVDurVal := Copy(IVDuration,1,length(IVDuration)-1);
    177           TResponse(ResponseList.Items[j]).IValue := 'for ' + IVDurVal + ' hours';
     184          TResponse(ResponseList.Items[j]).IValue := 'for ' + IVDurVal + 'hours';
    178185        end
    179186        else if (Pos('D',upperCase(IVDuration))>0) then
    180187        begin
    181188          IVDurVal := Copy(IVDuration,1,length(IVDuration)-1);
    182           TResponse(ResponseList.Items[j]).IValue := 'for ' + IVDurVal + ' days';
     189          TResponse(ResponseList.Items[j]).IValue := 'for ' + IVDurVal + 'days';
    183190        end
    184191        else if ((Pos('ML',upperCase(IVDuration))>0) or (Pos('CC',upperCase(IVDuration))>0)) then
    185192        begin
    186193          IVDurVal := Copy(IVDuration,1,length(IVDuration)-2);
    187           TResponse(ResponseList.Items[j]).IValue := 'with total volume ' + IVDurVal + ' ml';
     194          TResponse(ResponseList.Items[j]).IValue := 'with total volume ' + IVDurVal + 'ml';
    188195        end
    189196        else if (Pos('L',upperCase(IVDuration))>0) then
    190197        begin
    191198          IVDurVal := Copy(IVDuration,0,length(IVDuration)-1);
    192           TResponse(ResponseList.Items[j]).IValue := 'with total volume ' + IVDurVal + ' L';
     199          TResponse(ResponseList.Items[j]).IValue := 'with total volume ' + IVDurVal + 'L';
    193200        end;
    194201      end;
     
    371378end;
    372379
    373 procedure ExtractToResponses(Dest: TList);
     380procedure ExtractToResponses(Dest: TList; var HasObjects: boolean);
    374381{ load a list with TResponse records, assumes source strings are in RPCBrokerV.Results }
    375382var
    376383  i: Integer;
    377384  AResponse: TResponse;
     385  WPContainsObjects, TxContainsObjects: boolean;
     386  TempBroker: TStrings;
    378387begin
    379388  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
    383396    begin
    384397      AResponse := TResponse.Create;
    385398      with AResponse do
    386399      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);
    390403        Inc(i);
    391         while (i < Results.Count) and (CharAt(Results[i], 1) <> '~') do
     404        while (i < Count) and (CharAt(Strings[i], 1) <> '~') do
    392405        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' then
     406          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
    396409          begin
    397410            if Length(EValue) > 0 then EValue := EValue + CRLF;
    398             EValue := EValue + Copy(Results[i], 2, 255);
     411            EValue := EValue + Copy(Strings[i], 2, 255);
    399412            IValue := TX_WPTYPE;  // signals that this is a word processing field
    400413          end;
    401414          Inc(i);
    402415        end; {while i}
     416        if IValue <> TX_WPTYPE then ExpandOrderObjects(IValue, TxContainsObjects);
     417        ExpandOrderObjects(EValue, WPContainsObjects);
     418        HasObjects := HasObjects or WPContainsObjects or TxContainsObjects;
    403419        Dest.Add(AResponse);
    404420      end; {with AResponse}
    405421    end; {if CharAt}
    406422  end; {With RPCBrokerV}
    407 end;
    408 
    409 procedure LoadResponses(Dest: TList; const OrderID: string);
     423  finally
     424    TempBroker.Free;
     425  end;
     426end;
     427
     428procedure LoadResponses(Dest: TList; const OrderID: string; var HasObjects: boolean);
    410429begin
    411430  CallV('ORWDX LOADRSP', [OrderID]);
    412   ExtractToResponses(Dest);
     431  ExtractToResponses(Dest, HasObjects);
    413432end;
    414433
     
    427446    Param[1].Value := IntToStr(Encounter.Provider);
    428447    Param[2].PType := literal;
     448    (*if loc > 0 then Param[2].Value := IntToStr(Loc)
     449    else Param[2].Value := IntToStr(Encounter.Location);*)
    429450    Param[2].Value := IntToStr(Encounter.Location);
    430451    Param[3].PType := literal;
     
    659680end;
    660681
     682function IsPFSSActive: boolean;
     683begin
     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
     691end;
    661692
    662693{ Medication Calls }
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/rODDiet.pas

    r459 r460  
    3131    Alarms: string;
    3232    OPMaxDays: integer;
     33    OPDefaultDiet: integer;
    3334  end;
    3435
     
    3940procedure AppendTFProducts(Dest: TStrings);
    4041function SubSetOfDiets(const StartFrom: string; Direction: Integer): TStrings;
    41 function SubSetOfOPDiets(const StartFrom: string; Direction: Integer): TStrings;
     42function SubSetOfOPDiets: TStrings;
    4243procedure OrderLateTray(NewOrder: TOrder; Meal: Char; const MealTime: string; Bagged: Boolean);
    4344function IsolationID: string;
     
    4849function OutpatientPatchInstalled: boolean;
    4950function UserHasFHAUTHKey: boolean;
     51procedure GetCurrentRecurringOPMeals(Dest: TStrings; MealType: string = '');
     52function OutpatientLocationConfigured(ALocation: string): boolean;
    5053
    5154
     
    9699    else
    97100      OPMaxDays := 30;
     101    if Results.Count > 4 then
     102      OPDefaultDiet := StrToIntDef(Results[4], 0)
    98103  end;
    99104end;
     
    131136end;
    132137
    133 function SubSetOfOPDiets(const StartFrom: string; Direction: Integer): TStrings;
    134 begin
    135   CallV('ORWDFH OPDIETS', [StartFrom, Direction]);
     138function SubSetOfOPDiets: TStrings;
     139begin
     140  CallV('ORWDFH OPDIETS', [nil]);
    136141  Result := RPCBrokerV.Results;
    137142end;
     
    176181    if not PatchChecked then
    177182      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');
    181186        PatchChecked := True;
    182187      end;
     
    195200end;
    196201
     202procedure GetCurrentRecurringOPMeals(Dest: TStrings; MealType: string = '');
     203begin
     204  CallV('ORWDFH CURRENT MEALS', [Patient.DFN, MealType]);
     205  Dest.Assign(RPCBrokerV.Results);
     206  MixedCaseList(Dest);
     207end;
     208
     209function OutpatientLocationConfigured(ALocation: string): boolean;
     210begin
     211  Result := (sCallV('ORWDFH NFSLOC READY', [ALocation]) = '1');
     212end;
     213
    197214end.
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/rODLab.pas

    r459 r460  
    2222procedure GetLabTimesForDate(Dest: TStrings; LabDate: TFMDateTime; Location: integer);
    2323function  GetLastCollectionTime: string;
     24procedure GetPatientBBInfo(Dest: TStrings; PatientID: string; Loc: integer);
     25procedure GetPatientBloodResults(Dest: TStrings; PatientID: string; ATests: TStringList);
     26procedure GetPatientBloodResultsRaw(Dest: TStrings; PatientID: string; ATests: TStringList);
     27function  StatAllowed(PatientID: string): boolean;
     28procedure GetBloodComponents(Dest: TStrings);
    2429
    2530implementation
     
    2732uses  rODBase;
    2833(*    fODBase, rODBase, fODLab;*)
     34
     35procedure GetBloodComponents(Dest: TStrings);
     36begin
     37  tCallV(Dest, 'ORWDXVB COMPORD', []);
     38end;
     39
     40function  StatAllowed(PatientID: string): boolean;
     41begin
     42  Result := (StrToInt(sCallV('ORWDXVB STATALOW',[PatientID])) > 0);
     43end;
     44
     45procedure GetPatientBloodResultsRaw(Dest: TStrings; PatientID: string; ATests: TStringList);
     46begin
     47  tCallV(Dest, 'ORWDXVB RAW', [PatientID, ATests]);
     48end;
     49
     50procedure GetPatientBloodResults(Dest: TStrings; PatientID: string; ATests: TStringList);
     51begin
     52  tCallV(Dest, 'ORWDXVB RESULTS', [PatientID, ATests]);
     53end;
     54
     55procedure GetPatientBBInfo(Dest: TStrings; PatientID: string; Loc: integer);
     56begin
     57  tCallV(Dest, 'ORWDXVB GETALL', [PatientID, Loc]);
     58end;
    2959
    3060function ODForLab(Location, Division: integer): TStrings;
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/rOrders.pas

    r459 r460  
    3838    ParentID    : string;
    3939    LinkObject:   TObject;
     40    EnteredInError:     Integer; //AGP Changes 26.12 PSI-04-053
    4041    procedure Assign(Source: TOrder);
    4142    procedure Clear;
     
    604605    DGroupSeq  := SeqOfDGroup(DGroup);
    605606    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;
    606610    //if DGroupName = 'Non-VA Meds' then Text := 'Non-VA  ' + Text;
    607611  end;
     
    680684  with RPCBrokerV do for i := 1 to Results.Count - 1 do   // if orders found (skip 0 element)
    681685  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; 
    684688    AnOrder := TOrder.Create;
    685689    with AnOrder do
     
    11261130var
    11271131  DelayEvent, x, TheOrder: string;
    1128   Idx,PickupIdx, ForIMOResponses: integer;
     1132  Idx, tmpOrderGroup, PickupIdx, ForIMOResponses: integer;
    11291133  IfUDGrp: Boolean;
    11301134  IfUDGrpForQO: Boolean;
     1135  temp: string;
    11311136begin
    11321137  ForIMOResponses := 0;
     1138  tmpOrderGroup := 0;
     1139  temp := '';
    11331140  if ForIMO then ForIMOResponses := 1;
    11341141  PickupIdx := 0;
     
    11391146  begin
    11401147    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;
    11421150  end;
    11431151  if (not IfUDGrp) and (AnEvent.EventType in ['A','T']) then
    11441152    IfUDGrp := True;
    11451153  //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];
    11461156  with AnEvent do
    11471157  begin
     
    14511461
    14521462    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);
    14821489    CallBroker;
    14831490    SetOrderFromResults(AnOrder);
     
    15101517  CallV('ORWDXA DCREASON', [nil]);
    15111518  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);
    15131521end;
    15141522
     
    15281536  SetOrderFromResults(AnOrder);
    15291537  AnOrder.ParentID := AParentID;
    1530 
    15311538end;
    15321539
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/uODBase.pas

    r459 r460  
    2222procedure PopKeyVars(NumLevels: Integer = 1);
    2323procedure PushKeyVars(const NewVals: string);
     24procedure ExpandOrderObjects(var Txt: string; var ContainsObjects: boolean; msg: string = '');
    2425
    2526implementation
     27
     28uses
     29  dShared, Windows, rTemplates;
    2630
    2731var
     
    118122end;
    119123
     124procedure ExpandOrderObjects(var Txt: string; var ContainsObjects: boolean; msg: string = '');
     125var
     126  ObjList: TStringList;
     127  Err: TStringList;
     128  i, j, k, oLen: integer;
     129  obj, ObjTxt: string;
     130const
     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.' ;
     136begin
     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;
     190end;
     191
    120192initialization
    121193  uOrderEventType := #0;
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/uOrders.pas

    r459 r460  
    5858procedure QuickOrderListEdit;
    5959function RefNumFor(AnOwner: TComponent): Integer;
    60 procedure PrintOrdersOnSignRelease(OrderList: TStringList; Nature: Char);
     60procedure PrintOrdersOnSignRelease(OrderList: TStringList; Nature: Char; PrintLoc : Integer =0);
    6161procedure SetFontSize( FontSize: integer);
    6262procedure NextMove(var NMRec: TNextMoveRec; LastIndex: Integer; NewIndex: Integer);
     
    7474MedsDisp : Integer;
    7575ClinDisp : Integer; //IMO
     76NurDisp  : Integer;
    7677IVDisp   : Integer;
    7778CsltDisp : Integer;
    7879ProcDisp : Integer;
     80ImgDisp  : Integer;
    7981NonVADisp: Integer;
    8082MedsInDlgIen  : Integer;
     
    9496
    9597uses fODDiet, fODMisc, fODGen, fODMedIn, fODMedOut, fODText, fODConsult, fODProc, fODRad,
    96      fODLab, fODMeds, fODMedIV, fODVitals, fODAuto, fODAllgy, fOMNavA, rCore, uCore, fFrame,
     98     fODLab, fodBBank, fODMeds, fODMedIV, fODVitals, fODAuto, (*fODAllgy,*) fOMNavA, rCore, uCore, fFrame,
    9799     fEncnt, fEffectDate, fOMVerify, fOrderSaveQuick, fOMSet, rMisc, uODBase, rODMeds,
    98100     fLkUpLocation, fOrdersPrint, fOMAction, fARTAllgy, fOMHTML, fOrders, rODBase,
    99101     fODChild, fMeds, rMeds, rPCE, frptBox, fODMedNVA, fODChangeUnreleasedRenew, rODAllergy,
    100      UBAGlobals;
     102     UBAGlobals, fClinicWardMeds, uTemplateFields;
    101103
    102104var
     
    142144  TX_NO_QUICK   = 'This ordering dialog does not support quick orders.';
    143145  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.';
    144149  TX_NO_COPY    = CRLF + CRLF + '- cannot be copied.' + CRLF + CRLF + 'Reason: ';
    145150  TC_NO_COPY    = 'Unable to Copy Order';
     
    152157  STEP_FORWARD  = 1;
    153158  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.';
    155160  TX_IMO_WARNING1 = 'You are ';
    156   TX_IMO_WARNING2 = ' Clinic Medication orders. The New orders will be saved as Clinic Medication orders and will NOT 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';
    157162
    158163
     
    200205  OD_DIET:      DialogClass := TfrmODDiet;
    201206  OD_LAB:       DialogClass := TfrmODLab;
     207  OD_BB:        DialogClass := TfrmODBBank;
    202208  OD_CONSULT:   DialogClass := TfrmODCslt;
    203209  OD_PROCEDURE: DialogClass := TfrmODProc;
    204210  OD_TEXTONLY:  DialogClass := TfrmODText;
    205211  OD_VITALS:    DialogClass := TfrmODVitals;
    206   OD_ALLERGY:   DialogClass := TfrmODAllergy;
     212  //OD_ALLERGY:   DialogClass := TfrmODAllergy;
    207213  OD_AUTOACK:   DialogClass := TfrmODAuto;
    208214  else Exit;
     
    391397      else
    392398      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;
    396412        if Length(ResolvedDialog.ShowText)>0 then
    397413          ResolvedDialog.QuickLevel   := 2;
     
    452468  IVDisp   := DisplayGroupByName('IV RX');
    453469  ClinDisp := DisplayGroupByName('C RX');
     470  NurDisp  := DisplayGroupByName('NURS');
    454471  CsltDisp := DisplayGroupByName('CSLT');
    455472  ProcDisp := DisplayGroupByName('PROC');
     473  ImgDisp  := DisplayGroupByName('XRAY');
    456474  NonVADisp := DisplayGroupByName('NV RX');
    457475  MedsInDlgIen  := DlgIENForName('PSJ OR PAT OE');
     
    817835    ResolvedDialog.DisplayGroup := ClinDisp;
    818836  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
    819838   //jd imo change
    820839   if (ResolvedDialog.DisplayGroup = InptDisp) and (Patient.Inpatient) and (AnEvent.EventIFN < 1) then
     
    826845     end;
    827846   end;
    828    //jd imo change end
     847   //jd imo change end  *}
    829848   if (ResolvedDialog.DisplayGroup = InptDisp) or
    830849      (ResolvedDialog.DisplayGroup = OutptDisp) or
     
    865884    if NSSchedule then ResolvedDialog.QuickLevel := 0;
    866885  end;
     886  with ResolvedDialog do if (QuickLevel = QL_VERIFY) and (HasTemplateField(ShowText)) then QuickLevel := QL_DIALOG;
    867887  with ResolvedDialog do
    868888  begin
     
    10031023                       begin
    10041024                       ShowModal;
    1005                        //Application.ProcessMessages;
    10061025                       Result := uOrderDialog.AcceptOK;
    10071026                       uOrderDialog.Destroy;
     
    10101029                       begin
    10111030                       Show;
    1012                        //Application.ProcessMessages;
    10131031                       Result := True;
    10141032                       end;
     
    10501068  OrdList: TList;
    10511069  theOrder: TOrder;
    1052 begin
     1070 // i: integer;
     1071begin
     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;
    10531078  OrdList := TList.Create;
    10541079  theOrder := TOrder.Create;
     
    10571082  RetrieveOrderFields(OrdList, 0, 0);
    10581083  Result := TOrder(OrdList.Items[0]).Text;
     1084  if Assigned(OrdList) then OrdList.Free; //CQ:7554
    10591085end;
    10601086
     
    13491375        param2 := FieldsForEditRenewOrder.StopTime;
    13501376      end;
    1351        UBAGlobals.SourceOrderID := AList[i]; //hds6265 added
     1377      UBAGlobals.SourceOrderID := AList[i]; //hds6265 added
    13521378      ExecuteChangeRenewedOrder(AList[i], param1, param2, txtOrder);
    13531379      AnOrder := TOrder.Create;
     
    13931419var
    13941420  i: Integer;
    1395   xx,xy: string;
     1421  xx: string;
    13961422  IsIMOOD,ForIVAlso: boolean;
    13971423begin
     
    16021628      Exit;
    16031629    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;
    16041635    SaveAsQuickOrder(Responses);
    16051636  end;
     
    16391670
    16401671
    1641 procedure PrintOrdersOnSignRelease(OrderList: TStringList; Nature: Char);
     1672procedure PrintOrdersOnSignRelease(OrderList: TStringList; Nature: Char; PrintLoc : Integer =0);
    16421673const
    16431674  TX_NEW_LOC1   = 'The patient''s location has changed to ';
     
    16521683  PrintIt: Boolean;
    16531684begin
    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;
    16611696  if Encounter.Location = 0
    16621697    then Encounter.Location := CommonLocationForOrders(OrderList);
     
    17471782        if CharAt(AnID,1) = 'X' then actName := 'change';
    17481783        if CharAt(AnID,1) = 'C' then actName := 'copy';
    1749         x := 'You can not ' + actName + ' the clinical medication order.';
     1784        x := 'You cannot ' + actName + ' the clinical medication order.';
    17501785        x := RetrieveOrderText(Copy(AnID, 2, Length(AnID))) + #13#13#10 + x;
    17511786        UnlockOrder(Copy(AnID, 2, Length(AnID)));
     
    17741809      if (not AllowActionOnIMO(AnEventType)) then
    17751810      begin
    1776         x := 'You can not renew the the clinical medication order.';
     1811        x := 'You cannot renew the clinical medication order.';
    17771812        x := RetrieveOrderText(Piece(AnID,'^',2)) + #13#13#10 + x;
    17781813        UnlockOrder(Piece(AnID,'^',2));
     
    18091844  OriginalMedsInHeight    := 0;
    18101845  OriginalNonVAMedsHeight := 0;
     1846
    18111847end.
  • cprs/branches/foia-cprs/CPRS-Chart/Templates/fTemplateDialog.dfm

    r459 r460  
    2525    Top = 0
    2626    Width = 632
    27     Height = 383
     27    Height = 375
    2828    VertScrollBar.Tracking = True
    2929    Align = alClient
     
    3636    TabOrder = 0
    3737  end
    38   object pnlBottom: TPanel
     38  object pnlBottom: TScrollBox
    3939    Left = 0
    40     Top = 383
     40    Top = 375
    4141    Width = 632
    42     Height = 30
     42    Height = 38
    4343    Align = alBottom
    4444    TabOrder = 1
    45     DesignSize = (
    46       632
    47       30)
    4845    object lblFootnote: TStaticText
    4946      Left = 196
    50       Top = 9
     47      Top = 7
    5148      Width = 134
    5249      Height = 17
     
    5754    object btnCancel: TButton
    5855      Left = 551
    59       Top = 5
     56      Top = 3
    6057      Width = 75
    6158      Height = 21
    62       Anchors = [akTop, akRight]
    6359      Cancel = True
    6460      Caption = 'Cancel'
     
    6864    object btnOK: TButton
    6965      Left = 472
    70       Top = 5
     66      Top = 3
    7167      Width = 75
    7268      Height = 21
    73       Anchors = [akTop, akRight]
    7469      Caption = 'OK'
    7570      ModalResult = 1
     
    7974    object btnAll: TButton
    8075      Left = 6
    81       Top = 5
     76      Top = 3
    8277      Width = 75
    8378      Height = 21
     
    8883    object btnNone: TButton
    8984      Left = 86
    90       Top = 5
     85      Top = 3
    9186      Width = 75
    9287      Height = 21
     
    9792    object btnPreview: TButton
    9893      Left = 360
    99       Top = 5
     94      Top = 3
    10095      Width = 75
    10196      Height = 21
  • cprs/branches/foia-cprs/CPRS-Chart/Templates/fTemplateDialog.pas

    r459 r460  
    1010  TfrmTemplateDialog = class(TForm)
    1111    sbMain: TScrollBox;
    12     pnlBottom: TPanel;
     12    pnlBottom: TScrollBox;
    1313    btnCancel: TButton;
    1414    btnOK: TButton;
     
    4242    FCheck4Required: boolean;
    4343    FSilent: boolean;
     44    procedure SizeFormToCancelBtn();
    4445    procedure ChkAll(Chk: boolean);
    4546    procedure BuildCB(CBidx: integer; var Y: integer; FirstTime: boolean);
     
    7172implementation
    7273
    73 uses dShared, uConst, uTemplateFields, fRptBox, uInit;
     74uses dShared, uConst, uTemplateFields, fRptBox, uInit, rMisc;
    7475
    7576{$R *.DFM}
     
    391392procedure TfrmTemplateDialog.BuildCB(CBidx: integer; var Y: integer; FirstTime: boolean);
    392393var
    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;
    395396  pctrl, ctrl: TControl;
    396397  pnl: TPanel;
     
    637638  ResizeAnchoredFormToFont(Self);
    638639  FMaxPnlWidth := FontWidthPixel(sbMain.Font.Handle) * MAX_ENTRY_WIDTH; //AGP change Template Dialog to wrap at 80 instead of 74
     640  SetFormPosition(Self);
     641  SizeFormToCancelBtn();
    639642end;
    640643
     
    738741begin
    739742  Application.OnShowHint := FOldHintEvent;
     743  SaveUserBounds(Self);
     744end;
     745
     746procedure TfrmTemplateDialog.SizeFormToCancelBtn;
     747const
     748  RIGHT_MARGIN = 12;
     749var
     750  minWidth : integer;
     751begin
     752  minWidth := btnCancel.Left + btnCancel.Width + RIGHT_MARGIN;
     753  if minWidth > Self.Width then
     754    Self.Width := minWidth;
    740755end;
    741756
  • cprs/branches/foia-cprs/CPRS-Chart/Templates/uTemplateFields.pas

    r459 r460  
    918918      edt.Text := s;
    919919  end;
    920   edt.SelStart := edt.GetTextLen;
     920  edt.SelStart := edt.GetTextLen;   
    921921end;
    922922
  • cprs/branches/foia-cprs/CPRS-Chart/VERGENCECONTEXTORLib_TLB.pas

    r459 r460  
    1212// ************************************************************************ //
    1313
    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
    2130// Helpfile:
    2231// DepndLst:
     
    2534// Errors:
    2635//   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
    2741// ************************************************************************ //
    2842{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers.
    29 {$WARN SYMBOL_PLATFORM OFF}
    30 {$WRITEABLECONST ON}
    31 {$VARPROPSETTER ON}
    3243interface
    3344
    34 uses Windows, ActiveX, Classes, Graphics, OleCtrls, OleServer, StdVCL, Variants;
    35  
    36 
     45uses Windows, ActiveX, Classes, Graphics, OleServer, OleCtrls, StdVCL;
    3746
    3847// *********************************************************************//
     
    162171    procedure Suspend; safecall;
    163172    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;
    167176    procedure StartContextChange; safecall;
    168     function EndContextChange(commit: WordBool; const aContextItemCollection: IContextItemCollection): UserResponse; safecall;
     177    function  EndContextChange(commit: WordBool;
     178                               const aContextItemCollection: IContextItemCollection): UserResponse; safecall;
    169179    procedure SetSurveyResponse(const reason: WideString); safecall;
    170     function Get_NotificationFilter: WideString; safecall;
     180    function  Get_NotificationFilter: WideString; safecall;
    171181    procedure Set_NotificationFilter(const filter: WideString); safecall;
    172     function Get_Name: WideString; safecall;
     182    function  Get_Name: WideString; safecall;
    173183    property State: ContextorState read Get_State;
    174184    property CurrentContext: IContextItemCollection read Get_CurrentContext;
     
    189199    procedure Resume; dispid 3;
    190200    property State: ContextorState readonly dispid 4;
    191     function GetPrivilege(const subj: WideString): AccessPrivilege; dispid 5;
     201    function  GetPrivilege(const subj: WideString): AccessPrivilege; dispid 5;
    192202    property CurrentContext: IContextItemCollection readonly dispid 6;
    193203    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;
    195206    procedure SetSurveyResponse(const reason: WideString); dispid 9;
    196207    property NotificationFilter: WideString dispid 10;
     
    205216  IContextParticipant = interface(IDispatch)
    206217    ['{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;
    208219    procedure ContextChangesAccepted(contextCoupon: Integer); safecall;
    209220    procedure ContextChangesCanceled(contextCoupon: Integer); safecall;
     
    219230  IContextParticipantDisp = dispinterface
    220231    ['{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;
    222233    procedure ContextChangesAccepted(contextCoupon: Integer); dispid 1610743809;
    223234    procedure ContextChangesCanceled(contextCoupon: Integer); dispid 1610743810;
     
    233244  IContextItemCollection = interface(IDispatch)
    234245    ['{AC4C0271-615A-11D3-84B5-0000861FDD4F}']
    235     function Count: Integer; safecall;
     246    function  Count: Integer; safecall;
    236247    procedure Add(const aContextItem: IContextItem); safecall;
    237248    procedure Remove(const contextItemName: WideString); safecall;
    238249    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;
    242253    property _NewEnum: IUnknown read Get__NewEnum;
    243254  end;
     
    250261  IContextItemCollectionDisp = dispinterface
    251262    ['{AC4C0271-615A-11D3-84B5-0000861FDD4F}']
    252     function Count: Integer; dispid 1;
     263    function  Count: Integer; dispid 1;
    253264    procedure Add(const aContextItem: IContextItem); dispid 2;
    254265    procedure Remove(const contextItemName: WideString); dispid 3;
    255266    procedure RemoveAll; dispid 4;
    256     function Present(key: OleVariant): IContextItem; dispid 5;
     267    function  Present(key: OleVariant): IContextItem; dispid 5;
    257268    property _NewEnum: IUnknown readonly dispid -4;
    258     function Item(key: OleVariant): IContextItem; dispid 0;
     269    function  Item(key: OleVariant): IContextItem; dispid 0;
    259270  end;
    260271
     
    266277  IContextItem = interface(IDispatch)
    267278    ['{AC4C0273-615A-11D3-84B5-0000861FDD4F}']
    268     function Get_Subject: WideString; safecall;
     279    function  Get_Subject: WideString; safecall;
    269280    procedure Set_Subject(const pVal: WideString); safecall;
    270     function Get_Role: WideString; safecall;
     281    function  Get_Role: WideString; safecall;
    271282    procedure Set_Role(const pVal: WideString); safecall;
    272     function Get_Prefix: WideString; safecall;
     283    function  Get_Prefix: WideString; safecall;
    273284    procedure Set_Prefix(const pVal: WideString); safecall;
    274     function Get_Suffix: WideString; safecall;
     285    function  Get_Suffix: WideString; safecall;
    275286    procedure Set_Suffix(const pVal: WideString); safecall;
    276     function Get_Name: WideString; safecall;
     287    function  Get_Name: WideString; safecall;
    277288    procedure Set_Name(const pVal: WideString); safecall;
    278     function Get_Value: WideString; safecall;
     289    function  Get_Value: WideString; safecall;
    279290    procedure Set_Value(const pVal: WideString); safecall;
    280     function Clone: IContextItem; safecall;
     291    function  Clone: IContextItem; safecall;
    281292    property Subject: WideString read Get_Subject write Set_Subject;
    282293    property Role: WideString read Get_Role write Set_Role;
     
    300311    property Name: WideString dispid 5;
    301312    property Value: WideString dispid 6;
    302     function Clone: IContextItem; dispid 7;
     313    function  Clone: IContextItem; dispid 7;
    303314  end;
    304315
     
    311322    ['{CBC6D968-9F6D-416A-8AA7-99172E588DF0}']
    312323    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;
    316327    procedure CommitContextChange; safecall;
    317328    procedure CancelContextChange; safecall;
     
    326337    ['{CBC6D968-9F6D-416A-8AA7-99172E588DF0}']
    327338    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;
    331342    procedure CommitContextChange; dispid 3;
    332343    procedure CancelContextChange; dispid 4;
     
    386397  IResponseDialog = interface(IDispatch)
    387398    ['{9D33ECF1-8277-11D3-8525-0000861FDD4F}']
    388     function ProcessSurveyResults(responses: OleVariant; noContinue: WordBool): UserResponse; safecall;
     399    function  ProcessSurveyResults(responses: OleVariant; noContinue: WordBool): UserResponse; safecall;
    389400  end;
    390401
     
    396407  IResponseDialogDisp = dispinterface
    397408    ['{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;
    399410  end;
    400411
     
    430441    class function CreateRemote(const MachineName: string): IContextor;
    431442  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
    432532
    433533
     
    453553    procedure CreateControl;
    454554    procedure InitControlData; override;
    455     function Get_CurrentContext: IContextItemCollection;
     555    function  Get_CurrentContext: IContextItemCollection;
    456556  public
    457557    procedure Run(const applicationLabel: WideString; const passcode: WideString; survey: WordBool;
     
    459559    procedure Suspend;
    460560    procedure Resume;
    461     function GetPrivilege(const subj: WideString): AccessPrivilege;
     561    function  GetPrivilege(const subj: WideString): AccessPrivilege;
    462562    procedure StartContextChange;
    463     function EndContextChange(commit: WordBool; const aContextItemCollection: IContextItemCollection): UserResponse;
     563    function  EndContextChange(commit: WordBool;
     564                               const aContextItemCollection: IContextItemCollection): UserResponse;
    464565    procedure SetSurveyResponse(const reason: WideString);
    465566    property  ControlInterface: IContextor read GetControlInterface;
     
    487588  end;
    488589
     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
    489655// *********************************************************************//
    490656// The Class CoContextItem provides a Create and CreateRemote method to         
     
    499665  end;
    500666
     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
    501760// *********************************************************************//
    502761// The Class CoResponseDialog provides a Create and CreateRemote method to         
     
    511770  end;
    512771
     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
    513829// *********************************************************************//
    514830// The Class CoContextorParticipant provides a Create and CreateRemote method to         
     
    523839  end;
    524840
     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{
    525902procedure Register;
    526 
    527 resourcestring
    528   dtlServerPage = 'ActiveX';
    529 
     903}
    530904implementation
    531905
     
    541915  Result := CreateRemoteComObject(MachineName, CLASS_Contextor) as IContextor;
    542916end;
     917
     918procedure TContextor.InitServerData;
     919const
     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);
     926begin
     927  ServerData := @CServerData;
     928end;
     929
     930procedure TContextor.Connect;
     931var
     932  punk: IUnknown;
     933begin
     934  if FIntf = nil then
     935  begin
     936    punk := GetServer;
     937    ConnectEvents(punk);
     938    Fintf:= punk as IContextor;
     939  end;
     940end;
     941
     942procedure TContextor.ConnectTo(svrIntf: IContextor);
     943begin
     944  Disconnect;
     945  FIntf := svrIntf;
     946  ConnectEvents(FIntf);
     947end;
     948
     949procedure TContextor.DisConnect;
     950begin
     951  if Fintf <> nil then
     952  begin
     953    DisconnectEvents(FIntf);
     954    FIntf := nil;
     955  end;
     956end;
     957
     958function TContextor.GetDefaultInterface: IContextor;
     959begin
     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;
     964end;
     965
     966constructor TContextor.Create(AOwner: TComponent);
     967begin
     968  inherited Create(AOwner);
     969{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
     970  FProps := TContextorProperties.Create(Self);
     971{$ENDIF}
     972end;
     973
     974destructor TContextor.Destroy;
     975begin
     976{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
     977  FProps.Free;
     978{$ENDIF}
     979  inherited Destroy;
     980end;
     981
     982{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
     983function TContextor.GetServerProperties: TContextorProperties;
     984begin
     985  Result := FProps;
     986end;
     987{$ENDIF}
     988
     989procedure TContextor.InvokeEvent(DispID: TDispID; var Params: TVariantArray);
     990begin
     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}
     1000end;
     1001
     1002function  TContextor.Get_State: ContextorState;
     1003begin
     1004  Result := DefaultInterface.Get_State;
     1005end;
     1006
     1007function  TContextor.Get_CurrentContext: IContextItemCollection;
     1008begin
     1009  Result := DefaultInterface.Get_CurrentContext;
     1010end;
     1011
     1012function  TContextor.Get_NotificationFilter: WideString;
     1013begin
     1014  Result := DefaultInterface.Get_NotificationFilter;
     1015end;
     1016
     1017procedure TContextor.Set_NotificationFilter(const filter: WideString);
     1018begin
     1019  DefaultInterface.Set_NotificationFilter(filter);
     1020end;
     1021
     1022function  TContextor.Get_Name: WideString;
     1023begin
     1024  Result := DefaultInterface.Get_Name;
     1025end;
     1026
     1027procedure TContextor.Run(const applicationLabel: WideString; const passcode: WideString;
     1028                         survey: WordBool; const initialNotificationFilter: WideString);
     1029begin
     1030  DefaultInterface.Run(applicationLabel, passcode, survey, initialNotificationFilter);
     1031end;
     1032
     1033procedure TContextor.Suspend;
     1034begin
     1035  DefaultInterface.Suspend;
     1036end;
     1037
     1038procedure TContextor.Resume;
     1039begin
     1040  DefaultInterface.Resume;
     1041end;
     1042
     1043function  TContextor.GetPrivilege(const subj: WideString): AccessPrivilege;
     1044begin
     1045  Result := DefaultInterface.GetPrivilege(subj);
     1046end;
     1047
     1048procedure TContextor.StartContextChange;
     1049begin
     1050  DefaultInterface.StartContextChange;
     1051end;
     1052
     1053function  TContextor.EndContextChange(commit: WordBool;
     1054                                      const aContextItemCollection: IContextItemCollection): UserResponse;
     1055begin
     1056  Result := DefaultInterface.EndContextChange(commit, aContextItemCollection);
     1057end;
     1058
     1059procedure TContextor.SetSurveyResponse(const reason: WideString);
     1060begin
     1061  DefaultInterface.SetSurveyResponse(reason);
     1062end;
     1063
     1064{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
     1065constructor TContextorProperties.Create(AServer: TContextor);
     1066begin
     1067  inherited Create;
     1068  FServer := AServer;
     1069end;
     1070
     1071function TContextorProperties.GetDefaultInterface: IContextor;
     1072begin
     1073  Result := FServer.DefaultInterface;
     1074end;
     1075
     1076function  TContextorProperties.Get_State: ContextorState;
     1077begin
     1078  Result := DefaultInterface.Get_State;
     1079end;
     1080
     1081function  TContextorProperties.Get_CurrentContext: IContextItemCollection;
     1082begin
     1083  Result := DefaultInterface.Get_CurrentContext;
     1084end;
     1085
     1086function  TContextorProperties.Get_NotificationFilter: WideString;
     1087begin
     1088  Result := DefaultInterface.Get_NotificationFilter;
     1089end;
     1090
     1091procedure TContextorProperties.Set_NotificationFilter(const filter: WideString);
     1092begin
     1093  DefaultInterface.Set_NotificationFilter(filter);
     1094end;
     1095
     1096function  TContextorProperties.Get_Name: WideString;
     1097begin
     1098  Result := DefaultInterface.Get_Name;
     1099end;
     1100
     1101{$ENDIF}
    5431102
    5441103procedure TContextorControl.InitControlData;
     
    5761135end;
    5771136
    578 function TContextorControl.Get_CurrentContext: IContextItemCollection;
    579 begin
    580     Result := DefaultInterface.CurrentContext;
     1137function  TContextorControl.Get_CurrentContext: IContextItemCollection;
     1138begin
     1139  Result := DefaultInterface.Get_CurrentContext;
    5811140end;
    5821141
     
    5971156end;
    5981157
    599 function TContextorControl.GetPrivilege(const subj: WideString): AccessPrivilege;
     1158function  TContextorControl.GetPrivilege(const subj: WideString): AccessPrivilege;
    6001159begin
    6011160  Result := DefaultInterface.GetPrivilege(subj);
     
    6071166end;
    6081167
    609 function TContextorControl.EndContextChange(commit: WordBool;
    610                                             const aContextItemCollection: IContextItemCollection): UserResponse;
     1168function  TContextorControl.EndContextChange(commit: WordBool;
     1169                                             const aContextItemCollection: IContextItemCollection): UserResponse;
    6111170begin
    6121171  Result := DefaultInterface.EndContextChange(commit, aContextItemCollection);
     
    6281187end;
    6291188
     1189procedure TContextItemCollection.InitServerData;
     1190const
     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);
     1197begin
     1198  ServerData := @CServerData;
     1199end;
     1200
     1201procedure TContextItemCollection.Connect;
     1202var
     1203  punk: IUnknown;
     1204begin
     1205  if FIntf = nil then
     1206  begin
     1207    punk := GetServer;
     1208    Fintf:= punk as IContextItemCollection;
     1209  end;
     1210end;
     1211
     1212procedure TContextItemCollection.ConnectTo(svrIntf: IContextItemCollection);
     1213begin
     1214  Disconnect;
     1215  FIntf := svrIntf;
     1216end;
     1217
     1218procedure TContextItemCollection.DisConnect;
     1219begin
     1220  if Fintf <> nil then
     1221  begin
     1222    FIntf := nil;
     1223  end;
     1224end;
     1225
     1226function TContextItemCollection.GetDefaultInterface: IContextItemCollection;
     1227begin
     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;
     1232end;
     1233
     1234constructor TContextItemCollection.Create(AOwner: TComponent);
     1235begin
     1236  inherited Create(AOwner);
     1237{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
     1238  FProps := TContextItemCollectionProperties.Create(Self);
     1239{$ENDIF}
     1240end;
     1241
     1242destructor TContextItemCollection.Destroy;
     1243begin
     1244{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
     1245  FProps.Free;
     1246{$ENDIF}
     1247  inherited Destroy;
     1248end;
     1249
     1250{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
     1251function TContextItemCollection.GetServerProperties: TContextItemCollectionProperties;
     1252begin
     1253  Result := FProps;
     1254end;
     1255{$ENDIF}
     1256
     1257function  TContextItemCollection.Get__NewEnum: IUnknown;
     1258begin
     1259  Result := DefaultInterface.Get__NewEnum;
     1260end;
     1261
     1262function  TContextItemCollection.Count: Integer;
     1263begin
     1264  Result := DefaultInterface.Count;
     1265end;
     1266
     1267procedure TContextItemCollection.Add(const aContextItem: IContextItem);
     1268begin
     1269  DefaultInterface.Add(aContextItem);
     1270end;
     1271
     1272procedure TContextItemCollection.Remove(const contextItemName: WideString);
     1273begin
     1274  DefaultInterface.Remove(contextItemName);
     1275end;
     1276
     1277procedure TContextItemCollection.RemoveAll;
     1278begin
     1279  DefaultInterface.RemoveAll;
     1280end;
     1281
     1282function  TContextItemCollection.Present(key: OleVariant): IContextItem;
     1283begin
     1284  Result := DefaultInterface.Present(key);
     1285end;
     1286
     1287function  TContextItemCollection.Item(key: OleVariant): IContextItem;
     1288begin
     1289  Result := DefaultInterface.Item(key);
     1290end;
     1291
     1292{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
     1293constructor TContextItemCollectionProperties.Create(AServer: TContextItemCollection);
     1294begin
     1295  inherited Create;
     1296  FServer := AServer;
     1297end;
     1298
     1299function TContextItemCollectionProperties.GetDefaultInterface: IContextItemCollection;
     1300begin
     1301  Result := FServer.DefaultInterface;
     1302end;
     1303
     1304function  TContextItemCollectionProperties.Get__NewEnum: IUnknown;
     1305begin
     1306  Result := DefaultInterface.Get__NewEnum;
     1307end;
     1308
     1309{$ENDIF}
     1310
    6301311class function CoContextItem.Create: IContextItem;
    6311312begin
     
    6381319end;
    6391320
     1321procedure TContextItem.InitServerData;
     1322const
     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);
     1329begin
     1330  ServerData := @CServerData;
     1331end;
     1332
     1333procedure TContextItem.Connect;
     1334var
     1335  punk: IUnknown;
     1336begin
     1337  if FIntf = nil then
     1338  begin
     1339    punk := GetServer;
     1340    Fintf:= punk as IContextItem;
     1341  end;
     1342end;
     1343
     1344procedure TContextItem.ConnectTo(svrIntf: IContextItem);
     1345begin
     1346  Disconnect;
     1347  FIntf := svrIntf;
     1348end;
     1349
     1350procedure TContextItem.DisConnect;
     1351begin
     1352  if Fintf <> nil then
     1353  begin
     1354    FIntf := nil;
     1355  end;
     1356end;
     1357
     1358function TContextItem.GetDefaultInterface: IContextItem;
     1359begin
     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;
     1364end;
     1365
     1366constructor TContextItem.Create(AOwner: TComponent);
     1367begin
     1368  inherited Create(AOwner);
     1369{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
     1370  FProps := TContextItemProperties.Create(Self);
     1371{$ENDIF}
     1372end;
     1373
     1374destructor TContextItem.Destroy;
     1375begin
     1376{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
     1377  FProps.Free;
     1378{$ENDIF}
     1379  inherited Destroy;
     1380end;
     1381
     1382{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
     1383function TContextItem.GetServerProperties: TContextItemProperties;
     1384begin
     1385  Result := FProps;
     1386end;
     1387{$ENDIF}
     1388
     1389function  TContextItem.Get_Subject: WideString;
     1390begin
     1391  Result := DefaultInterface.Get_Subject;
     1392end;
     1393
     1394procedure TContextItem.Set_Subject(const pVal: WideString);
     1395begin
     1396  DefaultInterface.Set_Subject(pVal);
     1397end;
     1398
     1399function  TContextItem.Get_Role: WideString;
     1400begin
     1401  Result := DefaultInterface.Get_Role;
     1402end;
     1403
     1404procedure TContextItem.Set_Role(const pVal: WideString);
     1405begin
     1406  DefaultInterface.Set_Role(pVal);
     1407end;
     1408
     1409function  TContextItem.Get_Prefix: WideString;
     1410begin
     1411  Result := DefaultInterface.Get_Prefix;
     1412end;
     1413
     1414procedure TContextItem.Set_Prefix(const pVal: WideString);
     1415begin
     1416  DefaultInterface.Set_Prefix(pVal);
     1417end;
     1418
     1419function  TContextItem.Get_Suffix: WideString;
     1420begin
     1421  Result := DefaultInterface.Get_Suffix;
     1422end;
     1423
     1424procedure TContextItem.Set_Suffix(const pVal: WideString);
     1425begin
     1426  DefaultInterface.Set_Suffix(pVal);
     1427end;
     1428
     1429function  TContextItem.Get_Name: WideString;
     1430begin
     1431  Result := DefaultInterface.Get_Name;
     1432end;
     1433
     1434procedure TContextItem.Set_Name(const pVal: WideString);
     1435begin
     1436  DefaultInterface.Set_Name(pVal);
     1437end;
     1438
     1439function  TContextItem.Get_Value: WideString;
     1440begin
     1441  Result := DefaultInterface.Get_Value;
     1442end;
     1443
     1444procedure TContextItem.Set_Value(const pVal: WideString);
     1445begin
     1446  DefaultInterface.Set_Value(pVal);
     1447end;
     1448
     1449function  TContextItem.Clone: IContextItem;
     1450begin
     1451  Result := DefaultInterface.Clone;
     1452end;
     1453
     1454{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
     1455constructor TContextItemProperties.Create(AServer: TContextItem);
     1456begin
     1457  inherited Create;
     1458  FServer := AServer;
     1459end;
     1460
     1461function TContextItemProperties.GetDefaultInterface: IContextItem;
     1462begin
     1463  Result := FServer.DefaultInterface;
     1464end;
     1465
     1466function  TContextItemProperties.Get_Subject: WideString;
     1467begin
     1468  Result := DefaultInterface.Get_Subject;
     1469end;
     1470
     1471procedure TContextItemProperties.Set_Subject(const pVal: WideString);
     1472begin
     1473  DefaultInterface.Set_Subject(pVal);
     1474end;
     1475
     1476function  TContextItemProperties.Get_Role: WideString;
     1477begin
     1478  Result := DefaultInterface.Get_Role;
     1479end;
     1480
     1481procedure TContextItemProperties.Set_Role(const pVal: WideString);
     1482begin
     1483  DefaultInterface.Set_Role(pVal);
     1484end;
     1485
     1486function  TContextItemProperties.Get_Prefix: WideString;
     1487begin
     1488  Result := DefaultInterface.Get_Prefix;
     1489end;
     1490
     1491procedure TContextItemProperties.Set_Prefix(const pVal: WideString);
     1492begin
     1493  DefaultInterface.Set_Prefix(pVal);
     1494end;
     1495
     1496function  TContextItemProperties.Get_Suffix: WideString;
     1497begin
     1498  Result := DefaultInterface.Get_Suffix;
     1499end;
     1500
     1501procedure TContextItemProperties.Set_Suffix(const pVal: WideString);
     1502begin
     1503  DefaultInterface.Set_Suffix(pVal);
     1504end;
     1505
     1506function  TContextItemProperties.Get_Name: WideString;
     1507begin
     1508  Result := DefaultInterface.Get_Name;
     1509end;
     1510
     1511procedure TContextItemProperties.Set_Name(const pVal: WideString);
     1512begin
     1513  DefaultInterface.Set_Name(pVal);
     1514end;
     1515
     1516function  TContextItemProperties.Get_Value: WideString;
     1517begin
     1518  Result := DefaultInterface.Get_Value;
     1519end;
     1520
     1521procedure TContextItemProperties.Set_Value(const pVal: WideString);
     1522begin
     1523  DefaultInterface.Set_Value(pVal);
     1524end;
     1525
     1526{$ENDIF}
     1527
    6401528class function CoResponseDialog.Create: IResponseDialog;
    6411529begin
     
    6481536end;
    6491537
     1538procedure TResponseDialog.InitServerData;
     1539const
     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);
     1546begin
     1547  ServerData := @CServerData;
     1548end;
     1549
     1550procedure TResponseDialog.Connect;
     1551var
     1552  punk: IUnknown;
     1553begin
     1554  if FIntf = nil then
     1555  begin
     1556    punk := GetServer;
     1557    Fintf:= punk as IResponseDialog;
     1558  end;
     1559end;
     1560
     1561procedure TResponseDialog.ConnectTo(svrIntf: IResponseDialog);
     1562begin
     1563  Disconnect;
     1564  FIntf := svrIntf;
     1565end;
     1566
     1567procedure TResponseDialog.DisConnect;
     1568begin
     1569  if Fintf <> nil then
     1570  begin
     1571    FIntf := nil;
     1572  end;
     1573end;
     1574
     1575function TResponseDialog.GetDefaultInterface: IResponseDialog;
     1576begin
     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;
     1581end;
     1582
     1583constructor TResponseDialog.Create(AOwner: TComponent);
     1584begin
     1585  inherited Create(AOwner);
     1586{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
     1587  FProps := TResponseDialogProperties.Create(Self);
     1588{$ENDIF}
     1589end;
     1590
     1591destructor TResponseDialog.Destroy;
     1592begin
     1593{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
     1594  FProps.Free;
     1595{$ENDIF}
     1596  inherited Destroy;
     1597end;
     1598
     1599{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
     1600function TResponseDialog.GetServerProperties: TResponseDialogProperties;
     1601begin
     1602  Result := FProps;
     1603end;
     1604{$ENDIF}
     1605
     1606function  TResponseDialog.ProcessSurveyResults(responses: OleVariant; noContinue: WordBool): UserResponse;
     1607begin
     1608  Result := DefaultInterface.ProcessSurveyResults(responses, noContinue);
     1609end;
     1610
     1611{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
     1612constructor TResponseDialogProperties.Create(AServer: TResponseDialog);
     1613begin
     1614  inherited Create;
     1615  FServer := AServer;
     1616end;
     1617
     1618function TResponseDialogProperties.GetDefaultInterface: IResponseDialog;
     1619begin
     1620  Result := FServer.DefaultInterface;
     1621end;
     1622
     1623{$ENDIF}
     1624
    6501625class function CoContextorParticipant.Create: IContextParticipant;
    6511626begin
     
    6581633end;
    6591634
     1635procedure TContextorParticipant.InitServerData;
     1636const
     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);
     1643begin
     1644  ServerData := @CServerData;
     1645end;
     1646
     1647procedure TContextorParticipant.Connect;
     1648var
     1649  punk: IUnknown;
     1650begin
     1651  if FIntf = nil then
     1652  begin
     1653    punk := GetServer;
     1654    Fintf:= punk as IContextParticipant;
     1655  end;
     1656end;
     1657
     1658procedure TContextorParticipant.ConnectTo(svrIntf: IContextParticipant);
     1659begin
     1660  Disconnect;
     1661  FIntf := svrIntf;
     1662end;
     1663
     1664procedure TContextorParticipant.DisConnect;
     1665begin
     1666  if Fintf <> nil then
     1667  begin
     1668    FIntf := nil;
     1669  end;
     1670end;
     1671
     1672function TContextorParticipant.GetDefaultInterface: IContextParticipant;
     1673begin
     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;
     1678end;
     1679
     1680constructor TContextorParticipant.Create(AOwner: TComponent);
     1681begin
     1682  inherited Create(AOwner);
     1683{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
     1684  FProps := TContextorParticipantProperties.Create(Self);
     1685{$ENDIF}
     1686end;
     1687
     1688destructor TContextorParticipant.Destroy;
     1689begin
     1690{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
     1691  FProps.Free;
     1692{$ENDIF}
     1693  inherited Destroy;
     1694end;
     1695
     1696{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
     1697function TContextorParticipant.GetServerProperties: TContextorParticipantProperties;
     1698begin
     1699  Result := FProps;
     1700end;
     1701{$ENDIF}
     1702
     1703function  TContextorParticipant.ContextChangesPending(contextCoupon: Integer; var reason: WideString): WideString;
     1704begin
     1705  Result := DefaultInterface.ContextChangesPending(contextCoupon, reason);
     1706end;
     1707
     1708procedure TContextorParticipant.ContextChangesAccepted(contextCoupon: Integer);
     1709begin
     1710  DefaultInterface.ContextChangesAccepted(contextCoupon);
     1711end;
     1712
     1713procedure TContextorParticipant.ContextChangesCanceled(contextCoupon: Integer);
     1714begin
     1715  DefaultInterface.ContextChangesCanceled(contextCoupon);
     1716end;
     1717
     1718procedure TContextorParticipant.CommonContextTerminated;
     1719begin
     1720  DefaultInterface.CommonContextTerminated;
     1721end;
     1722
     1723procedure TContextorParticipant.Ping;
     1724begin
     1725  DefaultInterface.Ping;
     1726end;
     1727
     1728{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
     1729constructor TContextorParticipantProperties.Create(AServer: TContextorParticipant);
     1730begin
     1731  inherited Create;
     1732  FServer := AServer;
     1733end;
     1734
     1735function TContextorParticipantProperties.GetDefaultInterface: IContextParticipant;
     1736begin
     1737  Result := FServer.DefaultInterface;
     1738end;
     1739
     1740{$ENDIF}
     1741{
    6601742procedure Register;
    6611743begin
    662   RegisterComponents('ActiveX',[TContextorControl]);
    663 end;
    664 
     1744  RegisterComponents('Kernel',[TContextorControl]);
     1745  RegisterComponents('Kernel',[TContextor, TContextItemCollection, TContextItem, TResponseDialog,
     1746    TContextorParticipant]);
     1747end;
     1748}
    6651749end.
  • cprs/branches/foia-cprs/CPRS-Chart/Vitals/uVitals.pas

    r459 r460  
    55
    66uses
    7   SysUtils, Dialogs, Controls, Windows, Classes, ORClasses, ORCtrls, ORFn, Forms;
     7  SysUtils, Dialogs, Controls, Windows, Classes, ORClasses, ORCtrls, ORFn, Forms
     8  , TRPCB
     9  ;
    810
    911const
     
    3234procedure SetVitalsMetric(const Value: boolean);
    3335procedure SetVitCVPmmHg(const Value: boolean);
    34 function ValidVitalsDate(var ADate: TFMDateTime; SkipFirst: boolean = FALSE): boolean;
     36function ValidVitalsDate(var ADate: TFMDateTime; SkipFirst: boolean = FALSE; Show: boolean = true): boolean;
    3537function IsNumericWeight(const x: string): Boolean;
     38procedure CloseVitalsDLL;
    3639
    3740const
     
    7780  VitalLocationStr = 'VST^HL^';
    7881
     82  SHARE_DIR = '\VISTA\Common Files\';
     83  GMV_CONTEXT = 'OR CPRS GUI CHART';
     84  GMV_APP_SIGNATURE = 'CPRS';
     85  GMV_DEFAULT_TEMPLATE = '';
     86
    7987type
    8088  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
     127var
     128  VitalsDLLHandle : THandle;
     129  DLLForceClose : Boolean = False;
     130
    81131
    82132const
     
    128178uses
    129179  uCore, rCore, rVitals, Contnrs, mVitBase, mVitMetric, fVitalsDate;
    130 
     180 
    131181var
    132182  uVitalFrames: TComponentList = nil;
     183
     184procedure CloseVitalsDLL;
     185var
     186  VitalsExit : TGMV_VitalsExit;
     187begin
     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;
     195end;
    133196
    134197function VitalErrorText(VType: TVitalType): string;
     
    545608end;
    546609
    547 function ValidVitalsDate(var ADate: TFMDateTime; SkipFirst: boolean = FALSE): boolean;
     610
     611function ValidVitalsDate(var ADate: TFMDateTime; SkipFirst: boolean = FALSE; Show: boolean = true): boolean;   //AGP Change 26.1
    548612var
    549613  frmVitalsDate: TfrmVitalsDate;
     
    571635      try
    572636        frmVitalsDate.dteVitals.FMDateTime := ADate;
     637        frmVitalsDate.btnNow.Visible := Show; //AGP Change 26.1
    573638        if frmVitalsDate.ShowModal = mrOK then
    574639          ADate := frmVitalsDate.dteVitals.FMDateTime;
     
    581646  end;
    582647end;
     648
    583649function IsNumericWeight(const x: string): Boolean;
    584650var
  • cprs/branches/foia-cprs/CPRS-Chart/dShared.dfm

    r459 r460  
    1414    Bitmap = {
    1515      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
    5941170      2800000040000000900000000100010000000000800400000000000000000000
    5951171      000000000000000000000000FFFFFF0000000000000000000000000000000000
     
    6401216    Bitmap = {
    6411217      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
    8841700      2800000050000000300000000100010000000000400200000000000000000000
    8851701      000000000000000000000000FFFFFF0000000000000000000000000000000000
     
    9091725    Bitmap = {
    9101726      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
    12312367      0000000000000000000000000000000000000000000000000000000000000000
    12322368      000000000000000000000000000000000000424D3E000000000000003E000000
     
    12602396    Bitmap = {
    12612397      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
    14562784      2800000040000000300000000100010000000000800100000000000000000000
    14572785      000000000000000000000000FFFFFF0000000000000000000000000000000000
     
    14762804    Bitmap = {
    14772805      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
    19883828      0000000000000000000000000000000000000000000000000000000000000000
    19893829      0000000000000000000000000000000000000000000000000000000000000000
     
    20313871    Bitmap = {
    20323872      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
    22894385      0000000000000000000000000000000000000000000000000000000000000000
    22904386      000000000000000000000000000000000000424D3E000000000000003E000000
     
    23144410    Bitmap = {
    23154411      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
    25734925      000000000000000000000000000000000000424D3E000000000000003E000000
    25744926      2800000040000000400000000100010000000000000200000000000000000000
  • cprs/branches/foia-cprs/CPRS-Chart/dShared.pas

    r459 r460  
    524524  if(not assigned(FTIUObjects)) or (FRefreshObject = true)  then
    525525  begin
    526    FTIUObjects := TStringList.Create;
     526    if(not assigned(FTIUObjects)) then
     527      FTIUObjects := TStringList.Create;
    527528    FTIUObjects.Clear;
    528529    GetObjectList;
  • cprs/branches/foia-cprs/CPRS-Chart/fARTAllgy.dfm

    r459 r460  
    260260          Height = 17
    261261          Caption = 'Marked On Chart'
     262          Checked = True
     263          State = cbChecked
    262264          TabOrder = 18
    263265          Visible = False
     
    285287          ItemTipColor = clWindow
    286288          ItemTipEnable = True
    287           ListItemsOnly = False
     289          ListItemsOnly = True
    288290          LongList = True
    289291          LookupPiece = 0
     
    368370          TabOrder = 9
    369371          OnChange = ControlChange
     372          OnExit = ControlChange
    370373          CharsNeedMatch = 1
    371374        end
     
    534537          Left = 0
    535538          Top = 330
    536           Width = 83
     539          Width = 521
    537540          Height = 13
    538541          Align = alBottom
     
    567570          Font.Style = []
    568571          ParentFont = False
     572          ScrollBars = ssVertical
    569573          TabOrder = 1
    570574          OnExit = memCommentsExit
  • cprs/branches/foia-cprs/CPRS-Chart/fARTAllgy.pas

    r459 r460  
    6060    btnSevHelp: TORAlignButton;
    6161    procedure btnAgentClick(Sender: TObject);
    62     procedure FormCreate(Sender: TObject);
     62    procedure FormCreate(Sender: TObject); 
    6363    procedure cboOriginatorNeedData(Sender: TObject; const StartFrom: String;
    6464      Direction, InsertAt: Integer);
     
    160160                   'HISTORICAL: reported by the patient as occurring in the past;' + CRLF +
    161161                   'no longer requires intervention' ;
     162
    162163 NEW_ALLERGY = True;
    163164 ENTERED_IN_ERROR = True;
     
    190191  Result := False;
    191192  frmARTAllergy := TfrmARTAllergy.Create(Application);
     193  if frmARTAllergy.AbortAction then exit;
    192194  with frmARTAllergy do
    193195    try
     
    286288  ExtractItems(cboSymptoms.Items, Defaults, 'Top Ten');
    287289  cboSymptoms.InsertSeparator;
     290  cboSymptoms.InitLongList('');
    288291  cboOriginator.InitLongList(User.Name) ;
    289292  cboOriginator.SelectByIEN(User.DUZ);
     
    301304var
    302305  Allergy: string;
    303 begin
    304   inherited;
     306  //ErrMsg: string;
     307begin
     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;*)
    305317  Changing := True;
    306318  FOldHintPause := Application.HintHidePause;
     
    441453        begin
    442454          if (lstSelectedSymptoms.Items.Count = 0)   then SetError(TX_NO_SYMPTOMS);
    443           if (grpObsHist.Enabled) and RequireOriginatorComments and (memComments.Text = '')  then
     455          if (grpObsHist.Enabled) and RequireOriginatorComments and (not ContainsVisibleChar(memComments.Text))  then
    444456            SetError(TX_ORIG_CMTS_REQD);
    445457          if (grpObsHist.Enabled) and (calObservedDate.Text = '')  then
     
    627639              if tmpDate > 0 then ReactionDate := tmpDate;*)
    628640              with cboSeverity do
    629                 if ItemID <> '' then
    630                   Severity := ItemID;
     641                if (ItemID <> '') and (Text <> '') then
     642                  Severity := ItemID
     643                else
     644                  Severity := '';
    631645              with memComments do
    632646                if GetTextLen > 0 then
     
    886900
    887901procedure TfrmARTAllergy.cboSymptomsMouseClick(Sender: TObject);
     902const
     903  TC_SS_MAX = 'Too many signs/symptoms';
     904  TX_SS_MAX = 'A maximum of 38 signs/symptoms may be selected.';
    888905var
    889906  x: string;
    890907begin
    891908  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;
    894910  if (lstSelectedSymptoms.SelectByID(cboSymptoms.ItemID) > -1) or
    895911     (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;
    896918  if cboSymptoms.ItemIndex > -1 then
    897919    begin
     
    906928          SelectByID(cboSymptoms.ItemID);
    907929        end;
    908     end
    909   else
     930    end ;
     931(*  else                             Free-text entries no longer allowed.
    910932    with lstSelectedSymptoms do
    911933      begin
    912934        Items.Add('FT' + U + cboSymptoms.Text);
    913935        ItemIndex := Items.Count - 1;
    914       end;
     936      end;*)
    915937  Changing := False;
    916938  ControlChange(Self)
  • cprs/branches/foia-cprs/CPRS-Chart/fARTFreeTextMsg.dfm

    r459 r460  
    77  Constraints.MinHeight = 180
    88  Constraints.MinWidth = 394
    9   FormStyle = fsStayOnTop
    109  Position = poMainFormCenter
    1110  PixelsPerInch = 96
  • cprs/branches/foia-cprs/CPRS-Chart/fAddlSigners.dfm

    r459 r460  
    103103        OnMouseClick = cboSrcListMouseClick
    104104        OnNeedData = NewPersonNeedData
     105        CharsNeedMatch = 1
    105106      end
    106107      object DstList: TORListBox
     
    187188        OnExit = cboCosignerExit
    188189        OnNeedData = cboCosignerNeedData
     190        CharsNeedMatch = 1
    189191      end
    190192      object txtAuthor: TCaptionEdit
  • cprs/branches/foia-cprs/CPRS-Chart/fAddlSigners.pas

    r459 r460  
    4646    FChanged: Boolean;
    4747    FNoteIEN: integer;
     48    FRefDate: TFMDateTime;
    4849    FToday: string;
    4950    FTabID: integer;
     
    5859
    5960procedure SelectAdditionalSigners(FontSize, NoteIEN, SigAction: Integer; Exclusions: TStrings;
    60           var SignerList: TSignerList; TabID: integer) ;
     61          var SignerList: TSignerList; TabID: integer; ARefDate: TFMDateTime) ;
    6162
    6263const
     
    8384
    8485
    85 procedure SelectAdditionalSigners(FontSize, NoteIEN, SigAction: Integer; {Status: string;} Exclusions: TStrings;
    86           var SignerList: TSignerList; TabID: integer) ;
     86procedure SelectAdditionalSigners(FontSize, NoteIEN, SigAction: Integer; Exclusions: TStrings;
     87          var SignerList: TSignerList; TabID: integer; ARefDate: TFMDateTime) ;
    8788{ displays additional signer form for notes and returns a record of the selection }
    8889var
     
    9798      FSigAction := SigAction;
    9899      FNoteIEN := NoteIEN;
     100      FRefDate := ARefDate;
    99101      FExclusions.Assign(Exclusions);
    100102      FToday := FloatToStr(FMToday);
     
    209211          begin
    210212            j := FExclusions.IndexOf(Items[i]);
    211             FSigners.Add(Items[i]+'^REMOVE');
     213            FSigners.Add(ORFn.Pieces(Items[i], U, 1, 2) + '^REMOVE');
    212214            if j > -1 then FExclusions.Delete(j);
    213215            Items.Delete(i) ;
     
    227229    begin
    228230      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');
    230232    end;
    231233end;
     
    271273  case FTabID of
    272274    CT_NOTES, CT_CONSULTS:
    273       if (not CanCosign(TitleForNote(FNoteIEN), 0, cboCosigner.ItemIEN)) then
     275      if (not CanCosign(TitleForNote(FNoteIEN), 0, cboCosigner.ItemIEN, FRefDate)) then
    274276        begin
    275277          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  
    3232{$R *.dfm}
    3333
    34 uses rCover, fCover;
     34uses rCover, fCover, rODAllergy;
    3535
    3636const
     
    4747  BtnLeft:  array of integer;
    4848  j, k: integer;
     49  x: string;
    4950begin
    5051  Result := TfrmAllgyBox.Create(Application);
     
    6869        if AWidth > MaxWidth then MaxWidth := AWidth;
    6970      end;
    70       cmdPrint.Visible := AllowPrint;
    7171      MaxWidth := MaxWidth + GetSystemMetrics(SM_CXVSCROLL);
    7272      AHeight := (ReportText.Count * (lblFontTest.Height + 2)) + pnlbutton.Height;
     
    8787      Caption := ReportTitle;
    8888      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);
    8993    end;
    9094  except
  • cprs/branches/foia-cprs/CPRS-Chart/fAllgyFind.dfm

    r459 r460  
    44  BorderIcons = []
    55  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
    109  Position = poScreenCenter
    1110  OnCreate = FormCreate
     
    1312  TextHeight = 13
    1413  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
    1552    Left = 6
    16     Top = 9
    17     Width = 282
     53    Top = 73
     54    Width = 52
    1855    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:'
    3557  end
    3658  object txtSearch: TCaptionEdit
    37     Left = 5
    38     Top = 38
     59    Left = 4
     60    Top = 88
    3961    Width = 331
    4062    Height = 21
     
    4668  end
    4769  object cmdSearch: TButton
    48     Left = 363
    49     Top = 38
     70    Left = 362
     71    Top = 88
    5072    Width = 75
    5173    Height = 21
     
    5678  end
    5779  object cmdOK: TButton
    58     Left = 264
    59     Top = 365
     80    Left = 263
     81    Top = 422
    6082    Width = 75
    6183    Height = 22
     
    6587  end
    6688  object cmdCancel: TButton
    67     Left = 346
    68     Top = 365
     89    Left = 345
     90    Top = 422
    6991    Width = 75
    7092    Height = 22
     
    7698  object stsFound: TStatusBar
    7799    Left = 0
    78     Top = 391
    79     Width = 443
     100    Top = 453
     101    Width = 445
    80102    Height = 19
    81103    Panels = <>
     
    83105  end
    84106  object ckNoKnownAllergies: TCheckBox
    85     Left = 80
    86     Top = 368
     107    Left = 320
     108    Top = 118
    87109    Width = 119
    88110    Height = 17
     
    92114  end
    93115  object tvAgent: TORTreeView
    94     Left = 3
    95     Top = 81
     116    Left = 2
     117    Top = 138
    96118    Width = 437
    97119    Height = 270
     
    106128  end
    107129  object imTree: TImageList
    108     Left = 397
    109     Top = 93
     130    Left = 396
     131    Top = 150
    110132    Bitmap = {
    111133      494C010103000400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
  • cprs/branches/foia-cprs/CPRS-Chart/fAllgyFind.pas

    r459 r460  
    1919    tvAgent: TORTreeView;
    2020    imTree: TImageList;
    21     Label1: TLabel;
     21    lblDetail: TLabel;
     22    lblSearchCaption: TLabel;
    2223    procedure cmdSearchClick(Sender: TObject);
    2324    procedure cmdCancelClick(Sender: TObject);
     
    4950  ST_FOUND      = 'Select from the matching entries on the list, or search again.';
    5051  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 +
    5354                  'the list of available allergies?' + #13#10 + #13#10 +
    5455                  '"YES" will send a bulletin to request addition of your' + #13#10 +
     
    5859                  'check your spelling, try alternate spellings or a trade name,' + #13#10 +
    5960                  '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.';
    6282  TC_BULLETIN_ERROR = 'Unable to Send Bulletin';
    6383  TX_BULLETIN_ERROR = 'Free text entries are no longer allowed.' + #13#10 +
     
    186206  x: string;
    187207  tmpList: TStringList;
    188   OKtoContinue: boolean;
     208  OKtoContinue: boolean ;
    189209begin
    190210  inherited;
     
    206226    begin
    207227      FAllergy := '';
    208       case InfoBox(TX_FREE_TEXT, TC_FREE_TEXT, MB_YESNOCANCEL or MB_DEFBUTTON2 or MB_ICONQUESTION)of
     228      case InfoBox(TX_FREE_TEXT, TC_FREE_TEXT + UpperCase(txtSearch.Text), MB_YESNOCANCEL or MB_DEFBUTTON2 or MB_ICONQUESTION)of
    209229        ID_YES   :  // send bulletin and abort free-text entry
    210230                    begin
  • cprs/branches/foia-cprs/CPRS-Chart/fCover.dfm

    r459 r460  
    11inherited frmCover: TfrmCover
    2   Left = 334
    3   Top = 187
     2  Left = 256
     3  Top = 280
    44  HelpContext = 1000
    55  BorderIcons = []
  • cprs/branches/foia-cprs/CPRS-Chart/fCover.pas

    r459 r460  
    101101    procedure NotifyOrder(OrderAction: Integer; AnOrder: TOrder); override;       {REV}
    102102    procedure UpdateAllergiesList;
     103    procedure UpdateVAAButton;
    103104  end;
    104105
    105106var
    106107  frmCover: TfrmCover;
     108  VAAFlag: TStringList;
     109  MHVFlag: TStringList;
     110  VAA_DFN: string;
     111  PtIsVAA: boolean;
     112  PtIsMHV: boolean; 
    107113
    108114const
     
    114120{$R *.DFM}
    115121
    116 uses ORNet, ORFn, fRptBox, fVitals, fvit, fFrame, uCore, TRPCB, uConst,
    117   uReminders, rReminders, fARTAllgy, uOrPtf, fPatientFlagMulti, rODAllergy;
     122uses ORNet, ORFn, fRptBox, fVitals, fvit, fFrame, uCore, TRPCB, uConst, uInit,
     123  uReminders, rReminders, fARTAllgy, uOrPtf, fPatientFlagMulti, rODAllergy, rMisc;
    118124
    119125const
     
    436442             if ItemID <> '' then
    437443               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;
    451449               end;
    452450
     
    457455      //don't try to display a detail report
    458456    end;
    459     ItemIndex := -1;
     457    if uInit.TimedOut then                       // Fix for CQ: 8011
     458      Abort
     459    else
     460      ItemIndex := -1;
    460461  end;
    461462end;
     
    612613  begin
    613614    lb.Clear;
    614     i := -1;
    615     repeat
    616       i := ActiveReminders.IndexOfPiece('1',U,6,i);
    617       if(i >= 0) then
     615   //i := -1;
     616    //AGP Change 26.8 this changes allowed Reminders to display on the coversheet
     617    //even if they had an error on evaluation
     618    for i := 0 to ActiveReminders.Count-1 do
    618619      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;
    622638      end;
    623     until(i < 0);
     639      //AGP End Change for 26.8
    624640    if(RemindersEvaluatingInBackground) then
    625641      lb.Items.Insert(0,'0^Evaluating Reminders...')
     
    745761var
    746762  AListBox: TORListBox;
     763  x: string;
    747764begin
    748765  inherited;
    749766  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);
    752769  popNKA.Enabled := (AListBox.Items.Count = 1) and
    753770                    (Piece(AListBox.Items[0], U, 2) = NO_ASSESSMENT);
     771                    //and  IsARTClinicalUser(x);           v26.12
     772  popNewAllergy.Enabled := True;  //IsARTClinicalUser(x);  v26.12
    754773end;
    755774
     
    867886end;
    868887
     888procedure TfrmCover.UpdateVAAButton;
     889const
     890  MHVLabelOrigTop = 3;
     891  PtInsLabelOrigTop = 27;
     892//var
     893//  PtIsVAA: boolean;
     894//  PtIsMHV: boolean;
     895
     896begin
     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
     992end;
     993
     994initialization
     995
     996finalization
     997  if Assigned(fCover.VAAFlag) then fCover.VAAFlag.Free; //VAA
     998
    869999end.
    8701000
  • cprs/branches/foia-cprs/CPRS-Chart/fDCSumm.dfm

    r459 r460  
    11inherited frmDCSumm: TfrmDCSumm
    2   Left = 180
    3   Top = 193
     2  Left = 488
     3  Top = 83
    44  Width = 687
    55  Height = 409
     
    481481        end
    482482      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
    483533      object Z3: TMenuItem
    484534        Caption = '-'
  • cprs/branches/foia-cprs/CPRS-Chart/fDCSumm.pas

    r459 r460  
    134134    popSummMemoInsTemplate: TMenuItem;
    135135    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;
    136146    procedure mnuChartTabClick(Sender: TObject);
    137147    procedure lstSummsClick(Sender: TObject);
     
    211221    procedure tvSummsAddition(Sender: TObject; Node: TTreeNode);
    212222    procedure tvSummsDeletion(Sender: TObject; Node: TTreeNode);
     223    procedure ViewInfo(Sender: TObject);
     224    procedure mnuViewInformationClick(Sender: TObject);
    213225  private
    214226    FEditingIndex: Integer;                      // index of Summary being currently edited
     
    230242    procedure ClearEditControls;
    231243    function StartNewEdit(NewNoteType: integer): Boolean;
    232     procedure DoAutoSave;
     244    procedure DoAutoSave(Suppress: integer = 1);
    233245    function LacksRequiredForCreate: Boolean;
    234246    function GetTitleText(AnIndex: Integer): string;
     
    17261738procedure TfrmDCSumm.SaveSignItem(const ItemID, ESCode: string);
    17271739{ saves and optionally signs a Discharge Summary or addendum }
     1740const
     1741  SIG_COSIGN = 'COSIGNATURE';
     1742  SIG_SIGN   = 'SIGNATURE';
    17281743var
    17291744  AnIndex, IEN, i: Integer;
    17301745  Saved, ContinueSign: Boolean;   {*RAB* 8/26/99}
    1731   SignSts: TActionRec;
     1746  ActionSts, SignSts: TActionRec;
    17321747  APCEObject: TPCEData;
    17331748  OK: boolean;
    1734 
     1749  ActionType, SignTitle: string;
    17351750begin
    17361751  AnIndex := -1;
     
    17571772  if Length(ESCode) > 0 then
    17581773  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
    17601790      begin
    17611791        InfoBox(TX_EMPTY_SUMM1, TC_EMPTY_SUMM, MB_OK or MB_ICONERROR);
     
    19101940begin
    19111941  inherited;
    1912   DoAutoSave;
     1942  DoAutoSave(0);
    19131943  timAutoSave.Enabled := False;
    19141944  try
    19151945    SpellCheckForControl(memNewSumm);
    19161946  finally
     1947    FChanged := True;
     1948    DoAutoSave(0);
    19171949    timAutoSave.Enabled := True;
    19181950  end;
     
    19221954begin
    19231955  inherited;
    1924   DoAutoSave;
     1956  DoAutoSave(0);
    19251957  timAutoSave.Enabled := False;
    19261958  try
    19271959    GrammarCheckForControl(memNewSumm);
    19281960  finally
     1961    FChanged := True;
     1962    DoAutoSave(0);
    19291963    timAutoSave.Enabled := True;
    19301964  end;
     
    20132047  SigAction: integer;
    20142048  SavedDocID: string;
     2049  ARefDate: TFMDateTime;
    20152050begin
    20162051  inherited;
     
    20522087
    20532088  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);
    20552093  with SignerList do
    20562094    begin
     
    23082346var
    23092347  CurTitle: Integer;
     2348  ADateTime:  TFMDateTime;
    23102349begin
    23112350  Result := False;
     
    23212360    begin
    23222361      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;
    23242367    end;
    23252368  end;
     
    23572400end;
    23582401
    2359 procedure TfrmDCSumm.DoAutoSave;
     2402procedure TfrmDCSumm.DoAutoSave(Suppress: integer = 1);
    23602403var
    23612404  ErrMsg: string;
     
    23672410    timAutoSave.Enabled := False;
    23682411    try
    2369       SetText(ErrMsg, memNewSumm.Lines, lstSumms.GetIEN(EditingIndex),1);
     2412      SetText(ErrMsg, memNewSumm.Lines, lstSumms.GetIEN(EditingIndex), Suppress);
    23702413    finally
    23712414      timAutoSave.Enabled := True;
     
    32163259end;
    32173260
     3261procedure TfrmDCSumm.ViewInfo(Sender: TObject);
     3262begin
     3263  inherited;
     3264  frmFrame.ViewInfo(Sender);
     3265end;
     3266
     3267procedure TfrmDCSumm.mnuViewInformationClick(Sender: TObject);
     3268begin
     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;
     3279end;
     3280
    32183281initialization
    32193282  uPCEEdit := TPCEData.Create;
  • cprs/branches/foia-cprs/CPRS-Chart/fDCSummProps.dfm

    r459 r460  
    1515  OldCreateOrder = False
    1616  Position = poScreenCenter
     17  OnClose = FormClose
    1718  OnShow = FormShow
    1819  PixelsPerInch = 96
     
    9495      OnMouseClick = cboNewTitleMouseClick
    9596      OnNeedData = cboNewTitleNeedData
     97      CharsNeedMatch = 1
    9698    end
    9799    object calSumm: TORDateBox
     
    132134      OnMouseClick = cboAuthorMouseClick
    133135      OnNeedData = cboAuthorNeedData
     136      CharsNeedMatch = 1
    134137    end
    135138    object cboAttending: TORComboBox
     
    158161      OnExit = cboAttendingExit
    159162      OnNeedData = cboAttendingNeedData
     163      CharsNeedMatch = 1
    160164    end
    161165    object cmdOK: TButton
     
    229233      TabOrder = 0
    230234      OnNeedData = cboAuthorNeedData
     235      CharsNeedMatch = 1
    231236    end
    232237    object cboUrgency: TORComboBox
     
    251256      SynonymChars = '<>'
    252257      TabOrder = 1
     258      CharsNeedMatch = 1
    253259    end
    254260  end
  • cprs/branches/foia-cprs/CPRS-Chart/fDCSummProps.pas

    r459 r460  
    5454    procedure lstAdmissionsChange(Sender: TObject);
    5555    procedure cboNewTitleDblClick(Sender: TObject);
     56    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    5657  private
    5758    FCosignIEN: Int64;      // store cosigner that was passed in
     
    8788{$R *.DFM}
    8889
    89 uses ORFn, uCore, rCore, uPCE, rPCE;
     90uses ORFn, uCore, rCore, uPCE, rPCE, rMisc;
    9091{ Initial values in ASumm
    9192
     
    231232procedure TfrmDCSummProperties.FormShow(Sender: TObject);
    232233begin
     234  SetFormPosition(Self);
    233235  //if cboNewTitle.Text = '' then PostMessage(Handle, UM_DELAYEVENT, 0, 0);
    234236end;
     
    512514end;
    513515
     516procedure TfrmDCSummProperties.FormClose(Sender: TObject;
     517  var Action: TCloseAction);
     518begin
     519  SaveUserBounds(Self);
     520end;
     521
    514522end.
  • cprs/branches/foia-cprs/CPRS-Chart/fDeviceSelect.dfm

    r459 r460  
    11object frmDeviceSelect: TfrmDeviceSelect
    2   Left = 389
    3   Top = 375
    4   Width = 445
    5   Height = 276
     2  Left = 378
     3  Top = 340
     4  AutoScroll = False
    65  Caption = 'Orders Print Device Selection'
     6  ClientHeight = 235
     7  ClientWidth = 415
    78  Color = clBtnFace
    89  Font.Charset = DEFAULT_CHARSET
     
    1314  OldCreateOrder = True
    1415  Position = poScreenCenter
     16  OnClose = FormClose
     17  OnShow = FormShow
    1518  PixelsPerInch = 96
    1619  TextHeight = 13
     
    2225  end
    2326  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
    2832    Caption = 'Device'
    2933    TabOrder = 0
    30     object lblMargin: TLabel
    31       Left = 8
    32       Top = 166
    33       Width = 60
    34       Height = 13
    35       Caption = 'Right Margin'
    36     end
    37     object lblLength: TLabel
    38       Left = 120
    39       Top = 166
    40       Width = 61
    41       Height = 13
    42       Caption = 'Page Length'
    43     end
    44     object txtRightMargin: TMaskEdit
    45       Left = 72
    46       Top = 164
    47       Width = 34
    48       Height = 19
    49       AutoSize = False
    50       EditMask = '99999;0; '
    51       MaxLength = 5
    52       TabOrder = 1
    53     end
    54     object txtPageLength: TMaskEdit
    55       Left = 184
    56       Top = 164
    57       Width = 34
    58       Height = 19
    59       AutoSize = False
    60       EditMask = '99999;0; '
    61       MaxLength = 5
    62       TabOrder = 2
    63     end
    6434    object cboDevice: TORComboBox
    65       Left = 7
     35      Left = 2
    6636      Top = 15
    67       Width = 395
    68       Height = 140
     37      Width = 411
     38      Height = 145
    6939      Style = orcsSimple
     40      Align = alClient
    7041      AutoSelect = True
    7142      Caption = 'Device'
     
    7748      ListItemsOnly = False
    7849      LongList = True
     50      LookupPiece = 0
    7951      MaxLength = 0
    8052      ParentShowHint = False
     
    8860      OnNeedData = cboDeviceNeedData
    8961    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
    90105  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
    117113    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
    118142  end
    119143end
  • cprs/branches/foia-cprs/CPRS-Chart/fDeviceSelect.pas

    r459 r460  
    55uses
    66  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    7   StdCtrls, fAutoSz, ORCtrls, ORNet, Mask;
     7  StdCtrls, fAutoSz, ORCtrls, ORNet, Mask, ExtCtrls;
    88
    99type
    1010  TfrmDeviceSelect = class(TfrmAutoSz)
    1111    grpDevice: TGroupBox;
    12     lblMargin: TLabel;
    13     lblLength: TLabel;
    14     txtRightMargin: TMaskEdit;
    15     txtPageLength: TMaskEdit;
    1612    cboDevice: TORComboBox;
     13    pnlBottom: TPanel;
    1714    cmdOK: TButton;
    1815    cmdCancel: TButton;
    1916    chkDefault: TCheckBox;
     17    pnlGBBottom: TPanel;
     18    lblMargin: TLabel;
     19    txtRightMargin: TMaskEdit;
     20    lblLength: TLabel;
     21    txtPageLength: TMaskEdit;
    2022    procedure cboDeviceChange(Sender: TObject);
    2123    procedure cmdOKClick(Sender: TObject);
     
    2325    procedure cboDeviceNeedData(Sender: TObject; const StartFrom: String;
    2426      Direction, InsertAt: Integer);
     27    procedure FormShow(Sender: TObject);
     28    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    2529  private
    2630    FWinPrint: Boolean;
     
    3741{$R *.DFM}
    3842
    39 uses ORFn, rCore, uCore, rReports, Printers, fFrame;
     43uses ORFn, rCore, uCore, rReports, Printers, fFrame, rMisc;
    4044
    4145const
     
    143147end;
    144148
     149procedure TfrmDeviceSelect.FormShow(Sender: TObject);
     150begin
     151  SetFormPosition(Self);
     152  inherited;
     153end;
     154
     155procedure TfrmDeviceSelect.FormClose(Sender: TObject;
     156  var Action: TCloseAction);
     157begin
     158  inherited;
     159  SaveUserBounds(Self);
     160end;
     161
    145162end.
  • cprs/branches/foia-cprs/CPRS-Chart/fEncnt.dfm

    r459 r460  
    11object frmEncounter: TfrmEncounter
    2   Left = 302
    3   Top = 180
     2  Left = 481
     3  Top = 242
     4  Width = 470
     5  Height = 450
     6  Anchors = [akTop]
    47  BorderIcons = [biSystemMenu]
    5   BorderStyle = bsDialog
    68  Caption = 'Provider & Location for Current Activities'
    7   ClientHeight = 367
    8   ClientWidth = 384
    99  Color = clBtnFace
     10  Constraints.MinWidth = 470
    1011  Font.Charset = DEFAULT_CHARSET
    1112  Font.Color = clWindowText
     
    1516  OldCreateOrder = True
    1617  Position = poScreenCenter
     18  Scaled = False
    1719  OnClose = FormClose
    1820  OnCreate = FormCreate
    1921  OnDestroy = FormDestroy
     22  OnResize = FormResize
     23  OnShow = FormShow
    2024  DesignSize = (
    21     384
    22     367)
     25    462
     26    423)
    2327  PixelsPerInch = 96
    2428  TextHeight = 13
     
    3842    Tag = 9
    3943    Left = 6
    40     Top = 149
     44    Top = 140
    4145    Width = 93
    4246    Height = 13
    4347    Anchors = [akLeft, akBottom]
    4448    Caption = 'Encounter Location'
     49    Constraints.MinHeight = 12
    4550  end
    4651  object lblProvider: TLabel
     
    5156    Caption = 'Encounter Provider'
    5257  end
    53   object cmdOK: TButton
    54     Left = 306
     58  object cboPtProvider: TORComboBox
     59    Left = 6
    5560    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
    24662    Height = 117
     63    Anchors = [akLeft, akTop, akRight, akBottom]
    24764    Style = orcsSimple
    24865    AutoSelect = True
     
    26582    CharsNeedMatch = 1
    26683  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
    267316  object dlgDateRange: TORDateRangeDlg
    268317    DateOnly = True
  • cprs/branches/foia-cprs/CPRS-Chart/fEncnt.pas

    r459 r460  
    2323    lblLocation: TLabel;
    2424    txtLocation: TCaptionEdit;
     25    dlgDateRange: TORDateRangeDlg;
     26    cmdDateRange: TButton;
     27    lblInstruct: TLabel;
     28    Panel1: TPanel;
    2529    pgeVisit: TPageControl;
    2630    tabClinic: TTabSheet;
    27     lblClinic: TLabel;
    28     lblDateRange: TLabel;
    2931    lstClinic: TORListBox;
    3032    tabAdmit: TTabSheet;
    31     lblAdmit: TLabel;
    3233    lstAdmit: TORListBox;
    3334    tabNewVisit: TTabSheet;
     
    3738    ckbHistorical: TORCheckBox;
    3839    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;
    4245    procedure FormCreate(Sender: TObject);
    4346    procedure pgeVisitChange(Sender: TObject);
     
    5760    procedure lstAdmitChange(Sender: TObject);
    5861    procedure lstClinicChange(Sender: TObject);
     62    procedure FormResize(Sender: TObject);
     63    procedure FormShow(Sender: TObject);
    5964  private
    6065    CLINIC_TXT : String;
     
    241246  inherited;
    242247  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;
    247258  if pgeVisit.ActivePage = tabNewVisit then
    248259  begin
     
    255266          cboNewVisit.InitLongList(uTIULocationName);
    256267          cboNewVisit.SelectByIEN(uTIULocation);
     268          cboNewVisitChange(Self);
    257269        end
    258270        else
     
    264276        with calVisitDate do if FDateTime <> 0 then FMDateTime := FDateTime else Text := 'NOW';
    265277        FFromSelf := False;
     278        ActiveControl := cboNewVisit;
    266279      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;
    269292    end; {if cboNewVisit}
    270293  end; {if pgeVisit.ActivePage}
     
    473496end;
    474497
     498procedure TfrmEncounter.FormResize(Sender: TObject);
     499begin
     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
     518end;
     519
     520procedure TfrmEncounter.FormShow(Sender: TObject);
     521begin
     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
     538end;
     539
    475540end.
  • cprs/branches/foia-cprs/CPRS-Chart/fFrame.dfm

    r459 r460  
    11object frmFrame: TfrmFrame
    2   Left = 145
    3   Top = 191
     2  Left = 77
     3  Top = 123
    44  Width = 684
    5   Height = 487
    6   Caption = 'CPRS Frame'
     5  Height = 384
     6  Caption = 'p'
    77  Color = clBtnFace
    88  Font.Charset = DEFAULT_CHARSET
     
    3030    Top = 0
    3131    Width = 676
    32     Height = 441
     32    Height = 330
    3333    Align = alClient
    3434    Caption = 'No patient is currently selected'
     
    4646    Top = 0
    4747    Width = 676
    48     Height = 441
     48    Height = 330
    4949    Align = alClient
    5050    TabOrder = 0
     
    7575        Left = 0
    7676        Top = 1
    77         Width = 24
     77        Width = 39
    7878        Height = 39
    7979        Align = alLeft
     
    8181        ParentShowHint = False
    8282        ShowHint = True
    83         TabOrder = 7
     83        TabOrder = 8
    8484        object imgCCOW: TImage
    8585          Left = 2
    8686          Top = 2
    87           Width = 20
     87          Width = 35
    8888          Height = 35
    89           Align = alLeft
     89          Align = alClient
    9090          Center = True
    9191          Picture.Data = {
     
    120120      end
    121121      object pnlPatient: TKeyClickPanel
    122         Left = 24
     122        Left = 39
    123123        Top = 1
    124124        Width = 187
     
    202202      end
    203203      object pnlVisit: TKeyClickPanel
    204         Left = 211
     204        Left = 226
    205205        Top = 1
    206206        Width = 168
     
    263263      end
    264264      object pnlPrimaryCare: TKeyClickPanel
    265         Left = 379
     265        Left = 394
    266266        Top = 1
    267         Width = 104
     267        Width = 31
    268268        Height = 39
    269269        Hint = 'Primary Care Team / Primary Care Provider'
     
    323323      end
    324324      object pnlCIRN: TKeyClickPanel
    325         Left = 518
     325        Left = 520
    326326        Top = 1
    327327        Width = 49
     
    338338        ParentShowHint = False
    339339        ShowHint = True
    340         TabOrder = 4
     340        TabOrder = 5
    341341        OnClick = pnlCIRNClick
    342342        OnEnter = pnlPrimaryCareEnter
    343343        OnExit = pnlPrimaryCareExit
     344        OnMouseDown = pnlCIRNMouseDown
     345        OnMouseUp = pnlCIRNMouseUp
    344346        object lblCIRN: TLabel
    345           Left = 3
    346           Top = 4
    347           Width = 37
     347          Left = 2
     348          Top = 2
     349          Width = 45
    348350          Height = 13
     351          Align = alTop
     352          Alignment = taCenter
    349353          Caption = 'Remote'
    350354          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
    351361          OnClick = pnlCIRNClick
    352362        end
    353363        object lblCIRNData: TLabel
    354           Left = 11
    355           Top = 22
    356           Width = 23
     364          Left = 2
     365          Top = 15
     366          Width = 45
    357367          Height = 13
     368          Align = alTop
     369          Alignment = taCenter
    358370          Caption = 'Data'
    359371          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
    360378          OnClick = pnlCIRNClick
    361379        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
    362395      end
    363396      object pnlReminders: TKeyClickPanel
    364         Left = 567
     397        Left = 569
    365398        Top = 1
    366399        Width = 35
     
    377410        ParentShowHint = False
    378411        ShowHint = True
    379         TabOrder = 5
     412        TabOrder = 6
    380413        TabStop = True
    381414        OnClick = pnlRemindersClick
     
    405438      end
    406439      object pnlFlag: TKeyClickPanel
    407         Left = 483
     440        Left = 485
    408441        Top = 1
    409442        Width = 35
     
    415448        ParentShowHint = False
    416449        ShowHint = True
    417         TabOrder = 3
     450        TabOrder = 4
    418451        TabStop = True
    419452        OnClick = pnlFlagClick
     
    445478      end
    446479      object pnlPostings: TKeyClickPanel
    447         Left = 602
     480        Left = 604
    448481        Top = 1
    449         Width = 72
     482        Width = 70
    450483        Height = 39
    451484        Hint = 'Click to display patient postings.'
     
    460493        ParentShowHint = False
    461494        ShowHint = True
    462         TabOrder = 6
     495        TabOrder = 7
    463496        TabStop = True
    464497        OnClick = pnlPostingsClick
     
    468501        OnMouseUp = pnlPostingsMouseUp
    469502        object lblPtPostings: TStaticText
    470           Left = 6
     503          Left = 5
    471504          Top = 4
    472505          Width = 57
     
    509542        end
    510543      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
    511591    end
    512592    object stsArea: TStatusBar
    513593      Left = 1
    514       Top = 419
     594      Top = 308
    515595      Width = 674
    516596      Height = 21
     
    544624    object tabPage: TTabControl
    545625      Left = 1
    546       Top = 397
     626      Top = 286
    547627      Width = 674
    548628      Height = 22
     
    563643      Top = 42
    564644      Width = 674
    565       Height = 355
     645      Height = 244
    566646      Align = alClient
    567647      BevelOuter = bvNone
     
    607687  end
    608688  object mnuFrame: TMainMenu
    609     Left = 68
    610     Top = 120
     689    Left = 180
     690    Top = 128
    611691    object mnuFile: TMenuItem
    612692      Caption = '&File'
     
    715795            Tag = 8
    716796            Caption = '8 pt'
     797            RadioItem = True
    717798            OnClick = mnuFontSizeClick
    718799          end
     
    720801            Tag = 10
    721802            Caption = '10 pt'
     803            RadioItem = True
    722804            OnClick = mnuFontSizeClick
    723805          end
     
    725807            Tag = 12
    726808            Caption = '12 pt'
     809            RadioItem = True
    727810            OnClick = mnuFontSizeClick
    728811          end
     
    730813            Tag = 14
    731814            Caption = '14 pt'
     815            RadioItem = True
    732816            OnClick = mnuFontSizeClick
    733817          end
     
    735819            Tag = 18
    736820            Caption = '18 pt'
     821            RadioItem = True
    737822            OnClick = mnuFontSizeClick
    738823          end
     
    740825            Tag = 24
    741826            Caption = '24 pt'
     827            RadioItem = True
    742828            OnClick = mnuFontSizeClick
    743829          end
     
    811897        end
    812898      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
    825947      end
    826948    end
     
    832954        Caption = '-'
    833955      end
     956      object mnuToolsGraphing: TMenuItem
     957        Caption = '&Graphing...'
     958        ShortCut = 16455
     959        OnClick = mnuToolsGraphingClick
     960      end
    834961      object LabInfo1: TMenuItem
    835962        Caption = '&Lab Test Information...'
     
    837964      end
    838965      object mnuToolsOptions: TMenuItem
    839         Caption = 'Options...'
     966        Caption = '&Options...'
    840967        OnClick = mnuToolsOptionsClick
    841968      end
     
    8961023  object OROpenDlg: TOpenDialog
    8971024    Filter = 'Exe file (*.exe)|*.exe'
    898     Left = 460
    899     Top = 369
     1025    Left = 260
     1026    Top = 257
    9001027  end
    9011028  object popAlerts: TPopupMenu
    9021029    AutoPopup = False
    903     Left = 440
    904     Top = 416
     1030    Left = 320
     1031    Top = 200
    9051032    object mnuAlertContinue: TMenuItem
    9061033      Caption = 'Continue'
     
    9181045  object AppEvents: TApplicationEvents
    9191046    OnActivate = AppEventsActivate
    920     Left = 496
    921     Top = 368
     1047    OnShortCut = AppEventsShortCut
     1048    Left = 336
     1049    Top = 256
    9221050  end
    9231051end
  • cprs/branches/foia-cprs/CPRS-Chart/fFrame.pas

    r459 r460  
    55{$OPTIMIZATION OFF}                              // REMOVE AFTER UNIT IS DEBUGGED
    66{$WARN SYMBOL_PLATFORM OFF}
     7{$DEFINE CCOWBROKER}
    78
    89{.$define debug}
     
    120121    mnuAlertRenew: TMenuItem;
    121122    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;
    122135    procedure tabPageChange(Sender: TObject);
    123136    procedure FormCreate(Sender: TObject);
     
    142155    procedure mnuHelpBrokerClick(Sender: TObject);
    143156    procedure mnuFileEncounterClick(Sender: TObject);
    144     procedure mnuViewDemoClick(Sender: TObject);
    145157    procedure mnuViewPostingsClick(Sender: TObject);
    146158    procedure mnuHelpAboutClick(Sender: TObject);
     
    171183    function FormHelp(Command: Word; Data: Integer;
    172184      var CallHelp: Boolean): Boolean;
    173     procedure mnuViewRemindersClick(Sender: TObject);
    174185    procedure pnlRemindersMouseDown(Sender: TObject; Button: TMouseButton;
    175186      Shift: TShiftState; X, Y: Integer);
     
    219230    procedure AppEventsActivate(Sender: TObject);
    220231    procedure ScreenActiveFormChange(Sender: TObject);
     232    procedure AppEventsShortCut(var Msg: TWMKey; var Handled: Boolean);
    221233    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);
    222243  private
    223244    FJustEnteredApp : boolean;
     
    228249    FCCOWBusy: boolean;
    229250    FCCOWError: boolean;
     251    FNoPatientSelected: boolean;
    230252    FRefreshing: boolean;
    231253    FClosing: boolean;
     
    242264    FTabChanged: TNotifyEvent;
    243265    FOldActivate: TNotifyEvent;
     266    FOldActiveFormChange: TNotifyEvent;
    244267    FECSAuthUser: Boolean;
    245268    FFixedStatusWidth: integer;
     
    248271    FFlagList: TStringList;
    249272    FPrevPtID: string;
     273    FVitalsDLLActive: boolean;
     274    FGraphFloatActive: boolean;
     275    FGraphContext: string;
    250276    procedure RefreshFixedStatusWidth;
     277    procedure FocusApplicationTopForm;
    251278    procedure AppActivated(Sender: TObject);
    252279    procedure AppDeActivated(Sender: TObject);
     
    272299    procedure SetDebugMenu;
    273300    procedure SetupPatient(AFlaggedList : TStringList = nil);
    274     procedure SetUpCIRN;
     301    //procedure SetUpCIRN;
    275302    procedure RemindersChanged(Sender: TObject);
    276303    procedure ReportsOnlyDisplay;
     
    283310    procedure UpdateECSParameter(var CmdParameter: string);
    284311    function  ValidECSUser: boolean;
    285     function  AllowCCOWContextChange(NewDFN: string): boolean;
     312    procedure StartCCOWContextor;
     313    function  AllowCCOWContextChange(var CCOWResponse: UserResponse; NewDFN: string): boolean;
    286314    procedure UpdateCCOWContext;
    287315    procedure CheckHyperlinkResponse(aContextItemCollection: IDispatch; var HyperlinkReason: string);
    288316    procedure CheckForDifferentPatient(aContextItemCollection: IDispatch; var PtChanged: boolean);
     317{$IFDEF CCOWBROKER}
     318    procedure CheckForDifferentUser(aContextItemCollection: IDispatch; var UserChanged: boolean);
     319{$ENDIF}
    289320    procedure HideEverything;
    290321    procedure ShowEverything;
    291322    //function FindBestCCOWDFN(var APatientName: string): string;
    292     function  FindBestCCOWDFN: string;
     323    function FindBestCCOWDFN: string;
    293324    procedure HandleCCOWError(AMessage: string);
    294325  public
    295     EnduringPtSelSplitterPos: integer;
     326   EnduringPtSelSplitterPos: integer;
    296327    procedure SetBADxList;
    297328
     
    309340    property Closing:         Boolean read FClosing;
    310341    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;
    311347  end;
    312348
     
    331367uses
    332368  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,
    334370  fxLists, fxServer, ORSystem, fRptBox, fSplash, rODAllergy, uInit, fLabTests, fLabInfo,
    335371  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,
    337373  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
     380var                                 //  RV 05/11/04
     381  IsRunExecuted: Boolean = FALSE;           //  RV 05/11/04
     382  GraphFloat: TfrmGraphs;
    339383
    340384const
     
    410454procedure TfrmFrame.TimeOutAction;
    411455begin
    412   Close;
     456  if frmFrame.VitalsDLLActive then
     457    CloseVitalsDLL()
     458  else
     459    Close;
    413460end;
    414461
     
    460507  FContextChanging := True;
    461508  Result := True;
    462   if COMObjectActive or SpellCheckInProgress then
     509  if COMObjectActive or SpellCheckInProgress or VitalsDLLActive then
    463510    begin
    464511      Reason := 'COM_OBJECT_ACTIVE';
     
    531578  HasFlag := False;
    532579  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;
    533589end;
    534590
     
    564620  FJustEnteredApp := false;
    565621  SizeHolder := TSizeHolder.Create;
     622  FOldActiveFormChange := Screen.OnActiveFormChange;
    566623  Screen.OnActiveFormChange := ScreenActiveFormChange;
    567624  if not (ParamSearch('CCOW')='DISABLE') then
    568625    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;
    579627    except
     628      IsRunExecuted := False;
    580629      FCCOWInstalled := False;
    581630      pnlCCOW.Visible := False;
     
    585634  else
    586635    begin
     636      IsRunExecuted := False;
    587637      FCCOWInstalled := False;
    588638      pnlCCOW.Visible := False;
     
    603653  FCreateProgress := FCP_SERVER;
    604654
     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
    605668  if not ConnectToServer(TX_OPTION) then
    606669  begin
     670    if Assigned(RPCBrokerV) then
     671      InfoBox(RPCBrokerV.RPCBError, 'Error', MB_OK or MB_ICONERROR);
    607672    Close;
    608673    Exit;
     674  end;
     675
     676  if ctxContextor <> nil then
     677  begin
     678    if not (ParamSearch('CCOW') = 'PATIENTONLY') then
     679      ctxContextor.NotificationFilter := ctxContextor.NotificationFilter + ';User';
    609680  end;
    610681
     
    616687  FOldActivate := Application.OnActivate;
    617688  Application.OnActivate := AppActivated;
    618   Application.OnDeactivate := AppDeActivated;
    619 
     689  Application.OnDeActivate := AppDeActivated;
     690 
    620691  // create initial core objects
    621692  FCreateProgress := FCP_OBJECTS;
     
    695766  HasFlag  := False;
    696767  FlagList := TStringList.Create;
    697   FPrevPtID := '';
    698768  // set up structures specific to the user
    699769  Caption := TX_IN_USE + MixedCase(User.Name) + '  (' + RPCBrokerV.Server + ')';
     
    729799  FCreateProgress := FCP_FINISH;
    730800  pnlReminders.Visible := InteractiveRemindersActive;
     801  GraphFloatActive := false;
     802  GraphContext := '';
    731803  uRemoteType := '';
     804  FPrevPtID := '';
    732805  SetUserTools;
    733806  EnduringPtSelSplitterPos := 0;
     
    736809  InitialOrderVariables;
    737810  PostMessage(Handle, UM_INITIATE, 0, 0);    // select patient after main form is created
    738 
    739811//  mnuFileOpenClick(Self);
    740812//  if Patient.DFN = '' then  //*DFN*
     
    744816//  end;
    745817//  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);
     819end;
     820
     821procedure TfrmFrame.StartCCOWContextor;
     822begin
    753823  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;
    760836  except
    761837    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
    769844          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;
    780848          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;
    789866        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
     877end;
     878
     879procedure TfrmFrame.UMInitiate(var Message: TMessage);
     880begin
     881  NotifyOtherApps(NAE_OPEN, IntToStr(User.DUZ));
    793882  LoadUserPreferences;
    794   GetBAStatus(User.DUZ,Encounter.Location);
     883  GetBAStatus(User.DUZ,Patient.DFN);
    795884  mnuFileOpenClick(Self);
    796885  Enabled := True;
     
    803892begin
    804893  Application.OnActivate := FOldActivate;
     894  Screen.OnActiveFormChange := FOldActiveFormChange;
    805895  FNextButtonBitmap.Free;
    806896  uTabList.Free;
     
    814904  User.Free;
    815905  SizeHolder.Free;
     906  ctxContextor.Free;
    816907end;
    817908
     
    833924
    834925procedure TfrmFrame.SetUserTools;
    835 const
    836   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';
    839926var
    840927  ToolItems: TToolItemList;
     
    885972    UserTool.Hint := Action;
    886973    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);
    894975  end;
    895976end;
     
    9651046begin
    9661047  FClosing := TRUE;
     1048  SetFormMonitoring(false);
    9671049  if FCreateProgress < FCP_FINISH then FTerminate := True;
    9681050
     
    9701052  if FCreateProgress = FCP_FINISH then NotifyOtherApps(NAE_CLOSE, '');
    9711053  TerminateOtherAppNotification;
     1054
     1055  if GraphFloat <> nil then
     1056  begin
     1057    if frmFrame.GraphFloatActive then
     1058      GraphFloat.Close;
     1059    GraphFloat.Release;
     1060  end;
    9721061
    9731062  // unhook the timeout hooks
     
    9761065  if FCreateProgress = FCP_FINISH then Changes.Clear;
    9771066  // clear server side flag global tmp
    978   ClearFlag;
     1067  if FCreateProgress = FCP_FINISH then ClearFlag;
    9791068  // save user preferences
    9801069  if FCreateProgress = FCP_FINISH then SaveUserPreferences;
     
    10051094  //Application.ProcessMessages;  // so everything finishes closing
    10061095  // if < FCP_FINISH we came here from inside FormCreate, so need to call terminate
     1096  //if GraphFloat <> nil then GraphFloat.Release;
    10071097  if FCreateProgress < FCP_FINISH then Application.Terminate;
    10081098end;
     
    12341324      NotifyOtherApps(NAE_NEWPT, SSN + U + FloatToStr(DOB) + U + Name);
    12351325    SelectMsg := '';
    1236     if (not FRefreshing) then
    1237     begin
    1238       if not Assigned(AFlaggedList) then ShowFlags
    1239       else if (AFlaggedList.IndexOf(Patient.DFN) < 0) then ShowFlags;
    1240     end;
    12411326    if MeansTestRequired(Patient.DFN, AMsg) then SelectMsg := AMsg;
    12421327    if HasLegacyData(Patient.DFN, AMsg)     then SelectMsg := SelectMsg + CRLF + AMsg;
     1328
    12431329    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;
    12601342    end;
    1261 
     1343    FPrevPtID := patient.DFN;
     1344    frmCover.UpdateVAAButton; //VAA CQ7525  (moved here in v26.30 (RV))
    12621345    ProcessPatientChangeEventHook;
    12631346    if Length(SelectMsg) > 0 then ShowPatientSelectMessages(SelectMsg);
     
    12701353  NextIndex: Integer;
    12711354  Reason: string;
     1355  CCOWResponse: UserResponse;
    12721356begin
    12731357  SaveDFN := Patient.DFN;
     
    12931377         HasActiveFlg(FlagList, HasFlag, NewDFN);
    12941378        end;
    1295         if (FCCOWInstalled and (ctxContextor.State = csSuspended)) or (AllowCCOWContextChange(Patient.DFN)) then
     1379        if (FCCOWInstalled and (ctxContextor.State = csSuspended)) or (AllowCCOWContextChange(CCOWResponse, Patient.DFN)) then
    12961380          begin
    12971381            if Patient.Inpatient then
     
    13331417    mnuFileNotifRemove.Enabled := Notifications.Followup in [NF_FLAGGED_ORDERS,
    13341418                                                             NF_ORDER_REQUIRES_ELEC_SIGNATURE,
    1335                                                              NF_MEDICATIONS_EXPIRING,
     1419                                                             NF_MEDICATIONS_EXPIRING_INPT,
     1420                                                             NF_MEDICATIONS_EXPIRING_OUTPT,
    13361421                                                             NF_UNVERIFIED_MEDICATION_ORDER,
    13371422                                                             NF_UNVERIFIED_ORDER,
     
    13611446        NextIndex := PageIDToTab(CT_REPORTS);
    13621447    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);
    13641450    NF_UNVERIFIED_MEDICATION_ORDER   : NextIndex := PageIDToTab(CT_ORDERS);
    13651451    NF_NEW_ORDER                     : NextIndex := PageIDToTab(CT_ORDERS);
     
    14311517  SaveDFN, Reason: string;
    14321518  //NextTab: Integer;     // moved up for visibility - v23.4  rV
    1433   ok, OldRemindersStarted: boolean;
     1519  ok, OldRemindersStarted, PtSelCancelled: boolean;
    14341520  //i: smallint;
    1435 begin
     1521  CCOWResponse: UserResponse;
     1522begin
     1523  PtSelCancelled := FALSE;
    14361524  DetermineNextTab;
    14371525(*  if (FRefreshing or User.UseLastTab) and (not FFirstLoad) then
     
    14711559  end;
    14721560
    1473   SaveDFN := Patient.DFN;
     1561  if FNoPatientSelected then
     1562    SaveDFN := ''
     1563  else
     1564    SaveDFN := Patient.DFN;
     1565   
    14741566  OldRemindersStarted := RemindersStarted;
    14751567  RemindersStarted := FALSE;
     
    15021594          end;
    15031595        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;
    15051598        ShowEverything;
    15061599        DisplayEncounterText;
     
    15361629      begin
    15371630        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;
    15391633        ShowEverything;
    1540         DisplayEncounterText;       
     1634        DisplayEncounterText;
    15411635        FPrevInPatient := Patient.Inpatient;
    15421636        ok := TRUE;
     
    15471641      if FCCOWInstalled and (ctxContextor.State = csParticipating) and (not FRefreshing) then
    15481642        begin
    1549           if (AllowCCOWContextChange(Patient.DFN)) then
     1643          if (AllowCCOWContextChange(CCOWResponse, Patient.DFN)) then
    15501644            begin
    15511645              SetupPatient;
     
    15551649          else
    15561650            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;
    15611662            end;
    15621663        end
     
    15761677  if  BILLING_AWARE then frmFrame.SetBADxList; //end IsBillingAware
    15771678 {End BillingAware}
    1578 
     1679 //frmCover.UpdateVAAButton; //VAA CQ7525   CQ#7933 - moved to SetupPatient, before event hook execution (RV)
    15791680end;
    15801681
     
    16691770{ View Menu Events ------------------------------------------------------------------------- }
    16701771
    1671 procedure TfrmFrame.mnuViewDemoClick(Sender: TObject);
    1672 { displays patient inquiry report (which optionally allows new patient to be selected) }
    1673 var
    1674   SelectNew: Boolean;
    1675 begin
    1676   StatusText(TX_PTINQ);
    1677   PatientInquiry(SelectNew);
    1678   if Assigned(FLastPage) then
    1679     FLastPage.FocusFirstControl;
    1680   StatusText('');
    1681   if SelectNew then mnuFileOpenClick(mnuViewDemo);
    1682 end;
    1683 
    16841772procedure TfrmFrame.mnuViewPostingsClick(Sender: TObject);
    1685 { displays the window that shows crisis notes, warnings, allergies, & advance directives }
    1686 begin
    1687   ShowCWAD;
     1773begin
    16881774end;
    16891775
     
    19332019{ emulate a button press in the patient identification panel }
    19342020begin
     2021  if pnlPatient.BevelOuter = bvLowered then exit;
    19352022  pnlPatient.BevelOuter := bvLowered;
    19362023  with lblPtName do SetBounds(Left+2, Top+2, Width, Height);
     
    19432030{ emulate the button raising in the patient identification panel & call Patient Inquiry }
    19442031begin
     2032  if pnlPatient.BevelOuter = bvRaised then exit;
    19452033  pnlPatient.BevelOuter := bvRaised;
    19462034  with lblPtName do SetBounds(Left-2, Top-2, Width, Height);
     
    20342122  SetUserBounds2(RemDlgSplitters, RemDlgSpltr1, RemDlgSpltr2, Dummy ,Dummy);
    20352123  SetUserBounds2(DrawerSplitters,s1, s2, s3, Dummy);
     2124  if Assigned(frmSurgery) then frmSurgery.Drawers.LastOpenSize := Dummy; //CQ7315
    20362125  frmNotes.Drawers.LastOpenSize := s1;
    20372126  frmConsults.Drawers.LastOpenSize := s2;
     
    20452134     frmMeds.pnlBottom.Height := panelBottom;
    20462135     frmMeds.pnlMedIn.Height := panelMedIn;
     2136     //Meds Tab Non-VA meds columns
     2137     SetUserColumns(TControl(hdrMedsNonVA)); //CQ7314
    20472138     end;
    20482139
    2049   frmCover.DisableAlign;
     2140     frmCover.DisableAlign;
    20502141  try
    20512142    SetUserBounds2(CoverSplitters1, s1, s2, s3, s4);
     
    20762167var
    20772168  SizeList: TStringList;
     2169  SurgTempHt: integer;
    20782170begin
    20792171  SaveUserFontSize(MainFontSize);
     
    20982190      Add(StrUserBounds2(RemDlgName, RemDlgLeft, RemDlgTop, RemDlgWidth, RemDlgHeight));
    20992191      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;
    21002195      Add(StrUserBounds2(DrawerSplitters, frmNotes.Drawers.LastOpenSize,
    21012196                                             frmConsults.Drawers.LastOpenSize,
    2102                                              frmDCSumm.Drawers.LastOpenSize,0));
     2197                                             frmDCSumm.Drawers.LastOpenSize,
     2198                                             SurgTempHt)); // last parameter = CQ7315
     2199
    21032200      Add(StrUserBounds2(CoverSplitters1,
    21042201        frmCover.pnl_1.Width,
     
    21142211      //Meds Tab Splitters
    21152212      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
    21162219
    21172220      if EnduringPtSelSplitterPos <> 0 then
     
    21852288      with lstCIRNLocations do Font.Size := NewFontSize;
    21862289      with tabPage       do Font.Size := NewFontSize;
     2290      with laMHV         do Font.Size := NewFontSize; //VAA
     2291      with laVAA2        do Font.Size := NewFontSize; //VAA
    21872292
    21882293      tabPage.Height := MainFontHeight + TAB_VOFFSET;   // resize tab selector
     
    21922297      stsArea.Panels[0].Width := ResizeWidth( OldFont, Font, stsArea.Panels[0].Width);
    21932298      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
    21942312      RefreshFixedStatusWidth;
    21952313      FormResize( self );
     
    22062324    lblPtCWAD.Font.Color := clWindowText;
    22072325    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;
    22082335  end;
    22092336
     
    22232350  if Assigned(frmRemDlg) then frmRemDlg.SetFontSize;
    22242351  if Assigned(frmReminderTree) then frmReminderTree.SetFontSize(NewFontSize);
     2352  if GraphFloat <> nil then ResizeAnchoredFormToFont(GraphFloat);
    22252353end;
    22262354
     
    22312359  VISIT_WIDTH   = 36;
    22322360  POSTING_WIDTH = 11.5;
    2233   FLAG_WIDTH    =5;
     2361  FLAG_WIDTH    = 5;
    22342362  CIRN_WIDTH    = 7;
     2363  MHV_WIDTH     = 6;
    22352364  LINES_HIGH    = 2;
    22362365  M_HORIZ       = 4;
     
    22392368  M_WVERT       = 6;
    22402369  TINY_MARGIN   = 2;
    2241 var
    2242   WidthNeeded: integer;
     2370//var
     2371  //WidthNeeded: integer;
    22432372begin
    22442373  pnlToolbar.Height  := (LINES_HIGH * lblPtName.Height) + M_HORIZ + M_MIDDLE + M_HORIZ;
     
    22572386  pnlFlag.Width      := Round(FLAG_WIDTH * MainFontWidth);
    22582387  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;
    22602390  with lblPtPostings do
    22612391    SetBounds(M_WVERT, M_HORIZ, pnlPostings.Width-M_WVERT-M_WVERT, lblPtName.Height);
     
    22742404  end;
    22752405  //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 then
     2406  {if pnlPrimaryCare.Width < HigherOf( lblPtCare.Left + lblPtCare.Width, lblPtAttending.Left + lblPtAttending.Width) + TINY_MARGIN then
    22772407  begin
    22782408    WidthNeeded := HigherOf( lblPtCare.Left + lblPtCare.Width, lblPtAttending.Left + lblPtAttending.Width) + TINY_MARGIN - pnlPrimaryCare.Width;
     
    22802410    Width := Width + WidthNeeded;
    22812411  end
    2282   else
     2412  else }   // commented out - BA
    22832413    HorzScrollBar.Range := 0;
    22842414end;
    22852415
    22862416{ Temporary Calls -------------------------------------------------------------------------- }
     2417
     2418procedure TfrmFrame.ToggleMenuItemChecked(Sender: TObject);
     2419begin
     2420  with (Sender as TMenuItem) do
     2421     begin
     2422     if not Checked then
     2423        Checked := true
     2424     else
     2425        Checked := false;
     2426     end;
     2427end;
    22872428
    22882429procedure TfrmFrame.mnuFontSizeClick(Sender: TObject);
     
    22902431  if (frmRemDlg <> nil) then
    22912432    ShowMessage('Please close the reminder dialog before changing font sizes.')
    2292   else if (dlgProbs <> nil) then
     2433  else
     2434     if (dlgProbs <> nil) then
    22932435    ShowMessage('Font size cannot be changed while adding or editing a problem.')
    22942436  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;
    22962445end;
    22972446
     
    24132562    inherited;
    24142563  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;
    24202582end;
    24212583
     
    24232585var
    24242586  ImgName: string;
    2425 
    24262587begin
    24272588  pnlReminders.tag := HAVE_REMINDERS;
     
    24972658  pnlReminders.BevelOuter := bvRaised;
    24982659  if(pnlReminders.tag = HAVE_REMINDERS) then
    2499     mnuViewRemindersClick(Self);
     2660    ViewInfo(mnuViewReminders);
    25002661end;
    25012662
     
    25052666var
    25062667  i: integer;
     2668  aAutoQuery: string;
    25072669  ASite: TRemoteSite;
    25082670begin
    25092671  with RemoteSites do
     2672  if UseVistaWeb then
    25102673    begin
    25112674      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;
    25122686      if RemoteDataExists and (RemoteSites.Count > 0) then
    25132687        begin
    25142688          lblCIRN.Enabled     := True;
    25152689          lblCIRNData.Enabled := True;
     2690          lblCIRNAvail.Enabled := True;
    25162691          pnlCIRN.TabStop     := True;
    25172692          if ColorToRGB(clWindowText) = ColorToRGB(clBlack) then
     
    25192694              lblCIRN.Font.Color  := clBlue;
    25202695              lblCIRNData.Font.Color  := clBlue;
     2696              lblCIRNAvail.Font.Color := clBlue;
    25212697              lstCIRNLocations.Font.Color  := clBlue;
     2698              lblCIRN.Caption := 'Remote';
     2699              lblCIRNData.Caption := 'Data*';
     2700              lblCIRNAvail.Caption := 'Available';
     2701              pnlCIRN.Caption := 'Remote Data Available';
    25222702            end
    25232703          else
     
    25252705              lblCIRN.Font.Color  := clWindowText;
    25262706              lblCIRNData.Font.Color  := clWindowText;
     2707              lblCIRNAvail.Font.Color := clWindowText;
    25272708              lstCIRNLocations.Font.Color  := clWindowText;
    25282709            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;
    25292760          pnlCIRN.Hint := 'Click to display other facilities having data for this patient.';
     2761          lstCIRNLocations.Items.Add('-1' + U + 'Use VistaWeb from now on');
    25302762          if RemoteSites.Count > 0 then
    25312763            lstCIRNLocations.Items.Add('0' + U + 'All Available Sites');
     
    25412773          lblCIRN.Font.Color  := clWindowText;
    25422774          lblCIRNData.Font.Color  := clWindowText;
     2775          lblCIRNAvail.Font.Color := clWindowText;
    25432776          lblCIRN.Enabled     := False;
    25442777          lblCIRNData.Enabled := False;
     2778          lblCIRNAvail.Enabled := False;
    25452779          pnlCIRN.TabStop     := False;
    25462780          pnlCIRN.Hint := NoDataReason;
    25472781        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;
     2790end;
     2791
     2792procedure TfrmFrame.pnlCIRNClick(Sender: TObject);
     2793//var
     2794//  aAddress: string;
     2795begin
     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;
    25482809    end;
    2549 end;
    2550 
    2551 procedure TfrmFrame.pnlCIRNClick(Sender: TObject);
    2552 begin
    25532810  if not RemoteSites.RemoteDataExists then Exit;
    25542811  if (not lstCIRNLocations.Visible) then
     
    25662823      lstCIRNLocations.SendToBack;
    25672824      pnlCIRN.Hint := 'Click to display other facilities having data for this patient.';
    2568     end
     2825    end }
     2826  ViewInfo(mnuViewRemoteData);
    25692827end;
    25702828
     
    25812839  AccessStatus: integer;
    25822840begin
    2583   iAll := 0;
     2841  iAll := 1;
    25842842  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;
    25852901  if not CheckHL7TCPLink then
    25862902    begin
    25872903      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;
    25892905      Exit;
    25902906    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;
    25952910  with frmReports do
    25962911    if piece(uRemoteType,'^',2) = 'V' then
     
    26122927        with RemoteSites.SiteList do
    26132928        for j := 0 to Count - 1 do
    2614           if lstCIRNLocations.Checked[j+1] = true then
     2929          if lstCIRNLocations.Checked[j+2] = true then
    26152930            begin
    2616               lstCIRNLocations.Checked[j+1] := false;
     2931              lstCIRNLocations.Checked[j+2] := false;
    26172932              TRemoteSite(RemoteSites.SiteList[j]).Selected := false;
    26182933              TRemoteSite(RemoteSites.SiteList[j]).ReportClear;
     
    26302945              Screen.Cursor := crDefault;
    26312946              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);
    26342949              case AccessStatus of
    26352950              DGSR_FAIL: begin
    26362951                           if piece(aMsg,':',1) = 'RPC name not found at site' then //Allow for backward compatibility
    26372952                             begin
    2638                                lstCIRNLocations.Checked[j+1] := true;
     2953                               lstCIRNLocations.Checked[j+2] := true;
    26392954                               TRemoteSite(RemoteSites.SiteList[j]).ReportClear;
    26402955                               TRemoteSite(RemoteSites.SiteList[j]).LabClear;
     
    26442959                             begin
    26452960                               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;
    26482963                               TRemoteSite(Items[j]).Selected := false;
    26492964                               Continue;
     
    26512966                         end;
    26522967              DGSR_NONE: begin
    2653                            lstCIRNLocations.Checked[j+1] := true;
     2968                           lstCIRNLocations.Checked[j+2] := true;
    26542969                           TRemoteSite(RemoteSites.SiteList[j]).ReportClear;
    26552970                           TRemoteSite(RemoteSites.SiteList[j]).LabClear;
     
    26582973              DGSR_SHOW: begin
    26592974                           InfoBox(AMsg, TC_DGSR_SHOW, MB_OK);
    2660                            lstCIRNLocations.Checked[j+1] := true;
     2975                           lstCIRNLocations.Checked[j+2] := true;
    26612976                           TRemoteSite(RemoteSites.SiteList[j]).ReportClear;
    26622977                           TRemoteSite(RemoteSites.SiteList[j]).LabClear;
     
    26662981                           MB_DEFBUTTON2) = IDYES then
    26672982                           begin
    2668                              lstCIRNLocations.Checked[j+1] := true;
     2983                             lstCIRNLocations.Checked[j+2] := true;
    26692984                             TRemoteSite(RemoteSites.SiteList[j]).ReportClear;
    26702985                             TRemoteSite(RemoteSites.SiteList[j]).LabClear;
     
    26732988                           else
    26742989                             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;
    26772992                               TRemoteSite(Items[j]).Selected := false;
    26782993                               Continue;
     
    26802995              else       begin
    26812996                           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;
    26842999                           TRemoteSite(Items[j]).Selected := false;
    26853000                           Continue;
     
    26903005  else
    26913006    begin
    2692       if iIndex > -1 then
     3007      if iIndex > 0 then
    26933008        begin
    26943009          iCur := iIndex - iAll;
     
    27793094            TRemoteSite(Items[j]));
    27803095        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);
    27833100  StatusText('');
    27843101end;
     
    28173134procedure TfrmFrame.lstCIRNLocationsChange(Sender: TObject);
    28183135begin
    2819   if lstCIRNLocations.ItemIndex > -1 then
     3136  if lstCIRNLocations.ItemIndex > 0 then
    28203137    if (lstCIRNLocations.Selected[lstCIRNLocations.ItemIndex] = true) and (uUpdateStat = false) then
    2821       if not (piece(lstCIRNLocations.Items[0],'^',1) = '0') then
     3138      if not (piece(lstCIRNLocations.Items[1],'^',1) = '0') then
    28223139        lstCIRNLocations.OnClick(nil);
    28233140end;
     
    28523169  if not Notifications.Active then Exit;
    28533170  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';
    28553173    NF_ORDER_REQUIRES_ELEC_SIGNATURE: AlertType := 'Unsigned Orders';
    28563174    NF_FLAGGED_ORDERS               : AlertType := 'Flagged Orders (for clarification)';
     
    29353253     FOSTFhintWindow.ReleaseHandle;
    29363254     FOSTFHintWndActive := False ;
    2937 
     3255  end;
     3256  if FHintWinActive then   // graphing - hints on values
     3257  begin
     3258    FHintWin.ReleaseHandle;
     3259    FHintWinActive := false;
    29383260  end;
    29393261end;
     
    30803402  Patient.Clear;
    30813403  Patient.DFN := tmpDFN;
     3404  uCore.TempEncounterLoc := 0;  //hds7591  Clinic/Ward movement.
     3405  uCore.TempEncounterLocName := ''; //hds7591  Clinic/Ward movement.
    30823406
    30833407  if (FPrevInPatient and Patient.Inpatient) then                //transfering inside hospital
     
    30923416  begin
    30933417    Encounter.Inpatient := True;
     3418    uCore.TempEncounterLoc := Encounter.Location;  //hds7591  Clinic/Ward movement.
     3419    uCore.TempEncounterLocName := Encounter.LocationName; //hds7591  Clinic/Ward movement.
    30943420    Encounter.Location := Patient.Location;
    30953421    Encounter.DateTime := Patient.AdmitTime;
     
    31013427end;
    31023428
    3103 procedure TfrmFrame.FormKeyDown(Sender: TObject; var Key: Word;
    3104   Shift: TShiftState);
     3429procedure TfrmFrame.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    31053430var
    31063431  NewTabIndex: integer;
     
    31083433  //CQ2844: Toggle Remote Data button using Alt+R
    31093434   case Key of
    3110      82,114:  begin
    3111               if (ssAlt in Shift) then
     3435     82,114:  if (ssAlt in Shift) then
    31123436                 frmFrame.pnlCIRNClick(Sender);
    3113               end;
    31143437     end;
    31153438
     
    31733496procedure TfrmFrame.pnlPatientClick(Sender: TObject);
    31743497begin
    3175   mnuViewDemoClick(Self);
     3498  ViewInfo(mnuViewDemo);
    31763499end;
    31773500
    31783501procedure TfrmFrame.pnlVisitClick(Sender: TObject);
    31793502begin
    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);
    31823506end;
    31833507
    31843508procedure TfrmFrame.pnlPrimaryCareClick(Sender: TObject);
    31853509begin
    3186   ReportBox(DetailPrimaryCare(Patient.DFN), 'Primary Care', True);
     3510  //ReportBox(DetailPrimaryCare(Patient.DFN), 'Primary Care', True);
     3511  ViewInfo(mnuViewPrimaryCare);
    31873512end;
    31883513
     
    31903515begin
    31913516  if(pnlReminders.tag = HAVE_REMINDERS) then
    3192     mnuViewRemindersClick(Self);
     3517      ViewInfo(mnuViewReminders);
     3518
    31933519end;
    31943520
    31953521procedure TfrmFrame.pnlPostingsClick(Sender: TObject);
    31963522begin
    3197   mnuViewPostingsClick(Self);
     3523  ViewInfo(mnuViewPostings);
    31983524end;
    31993525
     
    32163542end;
    32173543
    3218 function TfrmFrame.AllowCCOWContextChange(NewDFN: string): boolean;
     3544function TfrmFrame.AllowCCOWContextChange(var CCOWResponse: UserResponse; NewDFN: string): boolean;
    32193545var
    32203546  PtData : IContextItemCollection;
     
    32483574          IsProdAcct := User.IsProductionAccount;
    32493575
     3576          {$IFDEF CCOWBROKER}
     3577          //IsProdAcct := RPCBrokerV.Login.IsProduction;  //not yet
     3578          {$ENDIF}
     3579
    32503580          PtDataItem2 := CoContextItem.Create();
    32513581          PtDataItem2.Set_Name('Patient.co.PatientName');                // Patient.Name
     
    32933623      end;
    32943624
     3625    CCOWResponse := response;
    32953626    if (response = UrCommit) then
    32963627    begin
     
    33553686  Reason, HyperLinkReason: string;
    33563687  PtChanged: boolean;
     3688{$IFDEF CCOWBROKER}
     3689  UserChanged: boolean;
     3690{$ENDIF}
    33573691begin
    33583692  // If the app would lose data, or have other problems changing context at
     
    33703704  try
    33713705    CheckForDifferentPatient(aContextItemCollection, PtChanged);
     3706{$IFDEF CCOWBROKER}
     3707    CheckForDifferentUser(aContextItemCollection, UserChanged);
     3708{$ENDIF}
    33723709  except
    33733710    on E: Exception do HandleCCOWError(E.Message);
     
    33793716  end;
    33803717
     3718{$IFDEF CCOWBROKER}
     3719  if PtChanged or UserChanged then
     3720{$ELSE}
    33813721  if PtChanged then
     3722{$ENDIF}
    33823723    begin
    33833724      FCCOWContextChanging := True;
     
    34043745  FCCOWError := False;
    34053746  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);
    34073759  except
    34083760    on E: Exception do HandleCCOWError(E.Message);
     
    34573809  end;
    34583810  IsProdAcct := User.IsProductionAccount;
     3811  {$IFDEF CCOWBROKER}
     3812  //IsProdAcct := RPCBrokerV.Login.IsProduction;  //not yet
     3813  {$ENDIF}
    34593814  // Get an item collection of the current context
    34603815  FCCOWError := False;
     
    34953850  //PtDFN := FindBestCCOWDFN(PtName);
    34963851  PtDFN := FindBestCCOWDFN;
    3497   if PtDFN <> '' then
     3852  if StrToInt64Def(PtDFN, 0) > 0 then
    34983853    begin
    34993854      // Select new patient based on context value
     
    35173872      end;
    35183873      if User.IsProvider then Encounter.Provider := User.DUZ;
    3519       SetupPatient;
     3874      if not FFirstLoad then SetupPatient;
     3875      frmCover.UpdateVAAButton; //VAA
    35203876      DetermineNextTab;
    35213877      tabPage.TabIndex := PageIDToTab(NextTab);
     
    35713927
    35723928procedure TfrmFrame.mnuFileResumeContextSetClick(Sender: TObject);
    3573 begin
     3929var
     3930  CCOWResponse: UserResponse;
     3931  Reason: string;
     3932begin
     3933  Reason := '';
     3934  if not AllowContextChangeAll(Reason) then exit;
    35743935  FCCOWIconName := 'BMP_CCOW_CHANGING';
    35753936  pnlCCOW.Hint := TX_CCOW_CHANGING;
     
    35823943  end;
    35833944  if FCCOWError then exit;
    3584   if (AllowCCOWContextChange(Patient.DFN)) then
     3945  if (AllowCCOWContextChange(CCOWResponse, Patient.DFN)) then
    35853946    begin
    35863947      mnuFileResumeContext.Enabled := False;
     
    35983959      pnlCCOW.Hint := TX_CCOW_BROKEN;
    35993960      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;
    36003966   end;
    36013967  SetupPatient;
     
    36073973var
    36083974  data : IContextItemCollection;
    3609   anItem : IContextItem;
     3975  anItem: IContextItem;
    36103976  PtDFN, PtName: string;
    36113977begin
     
    36233989  PtChanged := not ((PtDFN = Patient.DFN) and (PtName = Piece(Patient.Name, ',', 1) + U + Piece(Patient.Name, ',', 2) + '^^^^'));
    36243990end;
     3991
     3992{$IFDEF CCOWBROKER}
     3993procedure TfrmFrame.CheckForDifferentUser(aContextItemCollection: IDispatch; var UserChanged: boolean);
     3994var
     3995  data : IContextItemCollection;
     3996begin
     3997  if uCore.User = nil then
     3998  begin
     3999    UserChanged := False;
     4000    Exit;
     4001  end;
     4002  data := IContextItemCollection(aContextItemCollection) ;
     4003  UserChanged := RPCBrokerV.IsUserContextPending(data);
     4004end;
     4005{$ENDIF}
    36254006
    36264007procedure TfrmFrame.CheckHyperlinkResponse(aContextItemCollection: IDispatch; var HyperlinkReason: string);
     
    36514032procedure TfrmFrame.HideEverything;
    36524033begin
     4034  FNoPatientSelected := TRUE;
    36534035  pnlNoPatientSelected.Visible := True;
    36544036  pnlNoPatientSelected.BringToFront;
     
    36714053procedure TfrmFrame.ShowEverything;
    36724054begin
     4055  FNoPatientSelected := FALSE;
    36734056  pnlNoPatientSelected.Visible := False;
    36744057  pnlNoPatientSelected.SendToBack;
     
    37114094procedure TfrmFrame.pnlFlagClick(Sender: TObject);
    37124095begin
    3713   ShowFlags;
     4096  //ShowFlags;
     4097  ViewInfo(mnuViewFlags);
    37144098end;
    37154099
     
    38124196
    38134197procedure TfrmFrame.ScreenActiveFormChange(Sender: TObject);
     4198begin
     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;
     4205end;
     4206
     4207procedure TfrmFrame.FocusApplicationTopForm;
    38144208var
    38154209  I : integer;
    38164210begin
    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;
     4217end;
     4218
     4219procedure TfrmFrame.AppEventsShortCut(var Msg: TWMKey;
     4220  var Handled: Boolean);
     4221begin
     4222  if ((Boolean(Hi(GetKeyState(VK_MENU{ALT})))) and (Msg.CharCode = VK_F1)) then
     4223  begin
     4224    FocusApplicationTopForm;
     4225    Handled := True;
     4226  end;
     4227end;
     4228
     4229procedure TfrmFrame.mnuToolsGraphingClick(Sender: TObject);
     4230begin
     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;
    38254258    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;
     4289end;
     4290
     4291procedure TfrmFrame.pnlCIRNMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
     4292begin
     4293  pnlCIRN.BevelOuter := bvLowered;
     4294end;
     4295
     4296procedure TfrmFrame.pnlCIRNMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
     4297begin
     4298  pnlCIRN.BevelOuter := bvRaised;
     4299end;
     4300
     4301procedure TfrmFrame.laMHVClick(Sender: TObject);
     4302begin
     4303  //if laMHV.Caption = 'MHV' then
     4304  //  ShellExecute(Handle, 'open', PChar('http://www.myhealth.va.gov/'), '', '', SW_NORMAL);
     4305  ViewInfo(mnuViewMyHealtheVet);
     4306end;
     4307
     4308procedure TfrmFrame.laVAA2Click(Sender: TObject);
     4309{var
     4310  InsuranceSubscriberName: string;
     4311  ReportString: TStringList; //CQ7782 }
     4312begin
     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);
     4324end;
     4325
     4326procedure TfrmFrame.ViewInfo(Sender: TObject);
     4327var
     4328  SelectNew: Boolean;
     4329  InsuranceSubscriberName: string;
     4330  ReportString: TStringList;
     4331  aAddress: string;
     4332begin
     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;
     4404end;
     4405
     4406procedure TfrmFrame.mnuViewInformationClick(Sender: TObject);
     4407begin
     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;
     4417end;
    38304418
    38314419initialization
     
    38334421finalization
    38344422
     4423
    38354424end.
    38364425
     4426
  • cprs/branches/foia-cprs/CPRS-Chart/fLabCollTimes.dfm

    r459 r460  
    8484    CalColors.MonthBackColor = clWindow
    8585    CalColors.TrailingTextColor = clGrayText
    86     Date = 36507.5573663426
     86    Date = 36507.6194967361
    8787    ShowTodayCircle = False
    8888    TabOrder = 4
  • cprs/branches/foia-cprs/CPRS-Chart/fLabTests.dfm

    r459 r460  
    1313  OldCreateOrder = True
    1414  Position = poScreenCenter
     15  OnClose = FormClose
    1516  OnCreate = FormCreate
     17  OnShow = FormShow
    1618  PixelsPerInch = 96
    1719  TextHeight = 13
     
    8688      ListItemsOnly = False
    8789      LongList = True
     90      LookupPiece = 0
    8891      MaxLength = 0
    8992      ParentShowHint = False
     
    98101      OnExit = cboTestsExit
    99102      OnNeedData = cboTestsNeedData
     103      CharsNeedMatch = 1
    100104    end
    101105    object cmdRemove: TButton
  • cprs/branches/foia-cprs/CPRS-Chart/fLabTests.pas

    r459 r460  
    3030    procedure cboTestsExit(Sender: TObject);
    3131    procedure cmdAddClick(Sender: TObject);
     32    procedure FormShow(Sender: TObject);
     33    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    3234  private
    3335    { Private declarations }
     
    4042implementation
    4143
    42 uses fLabs, ORFn, rLabs;
     44uses fLabs, ORFn, rLabs, rMisc;
    4345
    4446{$R *.DFM}
     
    156158end;
    157159
     160procedure TfrmLabTests.FormShow(Sender: TObject);
     161begin
     162  SetFormPosition(Self);
     163end;
     164
     165procedure TfrmLabTests.FormClose(Sender: TObject;
     166  var Action: TCloseAction);
     167begin
     168  SaveUserBounds(Self);
     169end;
     170
    158171end.
  • cprs/branches/foia-cprs/CPRS-Chart/fLabs.dfm

    r459 r460  
    11inherited frmLabs: TfrmLabs
    2   Left = 193
    3   Top = 141
     2  Left = 628
     3  Top = 237
    44  Height = 387
    55  HelpContext = 8000
     
    1010  TextHeight = 13
    1111  inherited shpPageBottom: TShape
    12     Top = 354
     12    Top = 355
    1313  end
    1414  inherited sptHorz: TSplitter
    15     Height = 354
     15    Height = 355
    1616  end
    1717  inherited pnlLeft: TPanel
    18     Height = 354
     18    Height = 355
    1919    object lblReports: TOROffsetLabel
    2020      Left = 0
     
    3131    object lblDates: TOROffsetLabel
    3232      Left = 0
    33       Top = 231
     33      Top = 232
    3434      Width = 97
    3535      Height = 15
     
    4343    object lblHeaders: TOROffsetLabel
    4444      Left = 0
    45       Top = 131
     45      Top = 132
    4646      Width = 97
    4747      Height = 15
     
    5757      Top = 19
    5858      Width = 97
    59       Height = 112
     59      Height = 113
    6060      Align = alClient
    6161      ItemHeight = 13
     
    7171    object lstHeaders: TORListBox
    7272      Left = 0
    73       Top = 146
     73      Top = 147
    7474      Width = 97
    7575      Height = 52
     
    8888    object lstDates: TORListBox
    8989      Left = 0
    90       Top = 246
     90      Top = 247
    9191      Width = 97
    9292      Height = 108
     
    115115    object pnlOtherTests: TORAutoPanel
    116116      Left = 0
    117       Top = 198
     117      Top = 199
    118118      Width = 97
    119119      Height = 33
     
    139139  end
    140140  inherited pnlRight: TPanel
    141     Height = 354
     141    Height = 355
    142142    OnResize = pnlRightResize
    143143    object lblHeading: TOROffsetLabel
     
    448448    object pnlFooter: TORAutoPanel
    449449      Left = 0
    450       Top = 334
     450      Top = 335
    451451      Width = 539
    452452      Height = 20
     
    536536      TabOrder = 3
    537537      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
    538564      object chtChart: TChart
    539565        Left = 97
     
    616642        end
    617643      end
    618       object lstTestGraph: TORListBox
    619         Left = 0
    620         Top = 0
    621         Width = 97
    622         Height = 85
    623         Align = alLeft
    624         ItemHeight = 13
    625         ParentShowHint = False
    626         ShowHint = True
    627         TabOrder = 0
    628         OnClick = lstTestGraphClick
    629         Caption = 'Tests Graphed'
    630         ItemTipColor = clWindow
    631         LongList = False
    632         Pieces = '2'
    633       end
    634644    end
    635645    object memLab: TRichEdit
     
    637647      Top = 321
    638648      Width = 539
    639       Height = 13
     649      Height = 14
    640650      Align = alClient
    641651      Color = clCream
     
    683693      HotTrack = True
    684694      Style = tsButtons
     695      TabHeight = 16
    685696      TabOrder = 1
    686697      Visible = False
     
    691702      Top = 321
    692703      Width = 539
    693       Height = 13
     704      Height = 14
    694705      TabStop = False
    695706      Align = alClient
     
    697708      OnDocumentComplete = WebBrowser1DocumentComplete
    698709      ControlData = {
    699         4C000000B5370000580100000000000000000000000000000000000000000000
     710        4C000000B5370000720100000000000000000000000000000000000000000000
    700711        000000004C000000000000000000000001000000E0D057007335CF11AE690800
    701712        2B2E126208000000000000004C0000000114020000000000C000000000000046
  • cprs/branches/foia-cprs/CPRS-Chart/fLabs.pas

    r459 r460  
    77  fHSplit, StdCtrls, ExtCtrls, ORCtrls, ComCtrls, Grids, Buttons, fLabTest,
    88  fLabTests, fLabTestGroups, ORFn, TeeProcs, TeEngine, Chart, Series, Menus,
    9   uConst, ORDtTmRng, OleCtrls, SHDocVw, Variants;
     9  uConst, ORDtTmRng, OleCtrls, SHDocVw, Variants, StrUtils;
    1010
    1111type
     
    8383    TabControl1: TTabControl;
    8484    WebBrowser1: TWebBrowser;
     85    lblGraph: TLabel;
    8586    procedure FormCreate(Sender: TObject);
    8687    procedure DisplayHeading;
     
    133134    procedure Memo1KeyUp(Sender: TObject; var Key: Word;
    134135      Shift: TShiftState);
     136    procedure UpdateRemoteStatus(aSiteID, aStatus: string);
    135137  private
    136138    { Private declarations }
     
    159161    function FMToDateTime(FMDateTime: string): TDateTime;
    160162    procedure RequestPrint; override;
     163    procedure ExtlstReportsClick(Sender: TObject; Ext: boolean);
    161164
    162165end;
     
    169172  uLabLocalReportData: TStringList;  //Storage for Local report data
    170173  uLabRemoteReportData: TStringList; //Storage for Remote lab query
     174  uUpdateStat: boolean;             //flag turned on when remote status is being updated
    171175
    172176implementation
    173177
    174178uses uCore, rLabs, rCore, rCover, rOrders, fLabPrint, fFrame, fRptBox, Printers,
    175      clipbrd, rReports, activex, mshtml, uAccessibleStringGrid;
     179     clipbrd, rReports, rGraphs, activex, mshtml, uAccessibleStringGrid;
    176180
    177181const
     
    189193var
    190194  uFrozen: Boolean;
     195  uGraphingActivated: Boolean;
    191196  uRemoteCount: Integer;
    192197  uHTMLDoc: string;
     
    240245
    241246procedure TfrmLabs.FormCreate(Sender: TObject);
     247var
     248  aList: TStrings;
    242249begin
    243250  inherited;
     
    246253  memLab.Color := ReadOnlyColor;
    247254  uFrozen := False;
     255  aList := TStringList.Create;
     256  FastAssign(rpcGetGraphSettings, aList);
     257  uGraphingActivated := aList.Count > 0;
     258  aList.Free;
    248259  uRemoteCount := 0;
    249260  tmpGrid := TStringList.Create;
     
    258269  SerTest.GetHorizAxis.Increment := DateTimeStep[dtOneMinute];
    259270  TAccessibleStringGrid.WrapControl(grdLab);
     271end;
     272
     273procedure TfrmLabs.UpdateRemoteStatus(aSiteID, aStatus: string);
     274var
     275  j: integer;
     276  s: string;
     277  c: boolean;
     278begin
     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;
    260292end;
    261293
     
    296328  TabControl1.Tabs.Clear;
    297329  TabControl1.Visible := false;
     330  tmpGrid.Clear;
    298331  with grdLab do
    299332  begin
     
    374407
    375408procedure TfrmLabs.lstReportsClick(Sender: TObject);
     409begin
     410  ExtlstReportsClick(Sender, false);
     411end;
     412
     413procedure TfrmLabs.ExtlstReportsClick(Sender: TObject; Ext: boolean);
    376414var
    377415  i,iCat: integer;
     
    436474         lblSpecimen.Caption := '';
    437475       end;
    438        SelectTests(Font.Size);
     476       if not Ext then SelectTests(Font.Size);
    439477       if lstTests.Items.Count > 0 then
    440478       begin
     
    445483         RedrawActivate(memLab.Handle);
    446484         lstDatesClick(self);
    447          cmdOtherTests.SetFocus;
     485         if not Ext then cmdOtherTests.SetFocus;
    448486         cmdOtherTests.Default := true;
    449487       end
    450        else uPrevReportIndex := lstReports.ItemIndex;
     488       else lstReports.ItemIndex := uPrevReportIndex;
    451489     end;
    452490  5: begin               // Worksheet
     
    456494         lblSpecimen.Caption := '';
    457495       end;
    458        SelectTestGroups(Font.Size);
     496       if not Ext then SelectTestGroups(Font.Size);
    459497       if lstTests.Items.Count > 0 then
    460498       begin
     
    472510         //chkZoomClick(self);
    473511         lstDatesClick(self);
    474          cmdOtherTests.SetFocus;
     512         if not Ext then cmdOtherTests.SetFocus;
    475513         cmdOtherTests.Default := true;
    476514       end
    477        else uPrevReportIndex := lstReports.ItemIndex;
     515       else lstReports.ItemIndex := uPrevReportIndex;
    478516     end;
    479517  6: begin               // Graph
    480        if uPrevReportIndex <> lstReports.ItemIndex then
     518        // do if graphing is activiated
     519       if uGraphingActivated then
    481520       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
    487535       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
    497553           begin
    498554             WebBrowser1.Visible := true;
     
    502558             memLab.Visible := false;
    503559           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
    504580         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
    527585    begin
    528586      //added to deal with other reports from file 101.24
     
    734792     end;
    735793  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
    764820           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;
    770839         end;
    771        finally
    772          tmpList.Free;
    773840       end;
    774841     end;
     
    12851352  if valuecount = 0 then
    12861353  begin
     1354    lblGraph.Left := chtChart.Left + ((chtChart.Width - lblGraph.Width) div 2);
     1355    lblGraph.Top := 2;
     1356    lblGraph.Visible := true;
    12871357    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.> '
    12891359    else
    12901360      pnlChart.Caption := '<No results can be graphed for ' + Piece(test, '^', 2) + ' in this date range.>';
    12911361    chtChart.Visible := false;
    1292   end;
     1362  end
     1363  else
     1364    lblGraph.Visible := false;
    12931365  if not chkZoom.Checked then
    12941366  begin
     
    13501422       memLab.Align := alBottom;
    13511423       grdLab.Align := alClient;
     1424       if tmpGrid.Count > 0 then HGrid(tmpGrid);
    13521425       if (grdLab.VisibleRowCount + 1) < grdLab.RowCount then
    13531426         grdLab.ColWidths[4] := grdLab.ColWidths[4] - 18;
     
    13871460     end;
    13881461  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;
    13961472     end;
    13971473  7: begin               // Anatomic Path
     
    19852061                    Timer1.Enabled := False;
    19862062                    TRemoteSite(Items[i]).LabQueryStatus := '-1^Timed out';
     2063                    UpdateRemoteStatus(TRemoteSite(Items[i]).SiteID, 'Timed out');
    19872064                    StatusText('');
    19882065                    TabControl1.OnChange(nil);
     
    20342111        begin
    20352112          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;
    20362120          TRemoteSite(Items[i]).CurrentLabQuery := 'Lab' + Patient.DFN + ';' + Patient.ICN +
    20372121            '^' + IntToStr(AItem) + '^' + IntToStr(AReportID) + '^^' + ARpc + '^' + AHSType +
     
    20552139                TRemoteSite(Items[i]).LabRemoteHandle := '';
    20562140                TRemoteSite(Items[i]).LabQueryStatus := '1^Done';
     2141                UpdateRemoteStatus(TRemoteSite(Items[i]).SiteID, 'Done');
    20572142                TabControl1.OnChange(nil);
    20582143              end
     
    20842169              end;
    20852170              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
    20872175              else
    20882176                begin
    20892177                  TRemoteSite(Items[i]).LabRemoteHandle := Dest[0];
    20902178                  TRemoteSite(Items[i]).LabQueryStatus := '0^initialization...';
     2179                  UpdateRemoteStatus(TRemoteSite(Items[i]).SiteID, 'Initialization');
    20912180                  Timer1.Enabled := True;
    20922181                  StatusText('Retrieving reports from '
  • cprs/branches/foia-cprs/CPRS-Chart/fMHTest.dfm

    r459 r460  
    1212  Font.Name = 'MS Sans Serif'
    1313  Font.Style = []
    14   FormStyle = fsStayOnTop
    1514  KeyPreview = True
    1615  OldCreateOrder = False
  • cprs/branches/foia-cprs/CPRS-Chart/fMHTest.pas

    r459 r460  
    3838    procedure GotoQ(x: integer);
    3939  public
     40  MHTestComp: string;
     41  MHA3: boolean;
    4042  end;
    4143
     
    134136      end;
    135137    end;
     138      if frmMHTest.MHTestComp = '' then frmMHTest.MHTestComp := '0';
     139      Result := Result + U + frmMHTest.MHTestComp;
     140      if Result = U then Result := '';
    136141  finally
    137142    frmMHTest.Free;
     
    246251  try
    247252    TstData.Assign(LoadMentalHealthTest(TestName));
     253    if TstData.Strings[0] = '1' then MHA3 := True
     254    else MHA3 := False;
    248255    Screen.Cursor := crHourGlass;
    249256    try
    250257      TstData.Add('99999;X;0');
    251       idx := 0;
     258      idx := 1;
    252259      FMaxLines := 0;
    253260      FInfoText := '';
     
    302309          if(Spec = 'I') then
    303310          begin
    304             AddTxt2Str(FInfoText);
     311           if MHA3 = True then AddTxt2Str(QObj.FText)
     312           else
     313           AddTxt2Str(FInfoText);;
    305314          end
    306315          else
     
    392401    FBuildingControls := TRUE;
    393402    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
    395408      begin
    396409        FInfoLabel := TMemo.Create(Self);
     
    405418      end;
    406419      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;
    409422      BoundsRect.Top := Y;
    410423      BoundsRect.Right := BoundsRect.Left + Wide;
     
    416429      for i := 0 to FObjs.Count-1 do
    417430        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;
    418437    finally
    419438      FBuildingControls := FALSE;
     
    780799var
    781800  i, XCnt, First: integer;
    782   msg: string;
     801  msg, ans, TestStatus: string;
    783802
    784803begin
    785804  msg := '';
     805  ans := '';
    786806  XCnt := 0;
    787807  First := -1;
     808  TestStatus := '2';
     809  MHTestComp := '2';
    788810  for i := 0 to FObjs.Count-1 do
    789811  begin
     812    ans := ans + TMHQuestion(Fobjs[i]).FAnswer;
    790813    if(TMHQuestion(FObjs[i]).FAnswer = Skipped) then
    791814    begin
     
    797820    end;
    798821  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;
    799844  if(XCnt = 0) then
    800845    ModalResult := mrOK
  • cprs/branches/foia-cprs/CPRS-Chart/fMeds.dfm

    r459 r460  
    11inherited frmMeds: TfrmMeds
    2   Left = 255
    3   Top = 53
    4   Width = 734
    5   Height = 681
     2  Left = 93
     3  Top = 250
     4  Width = 709
     5  Height = 686
    66  HelpContext = 3000
     7  VertScrollBar.Visible = False
    78  Caption = 'Medications Page'
    89  HelpFile = 'qnoback'
    910  Menu = mnuMeds
     11  Visible = True
    1012  OnDestroy = FormDestroy
     13  OnMouseUp = FormMouseUp
    1114  OnResize = FormResize
    1215  OnShow = FormShow
     
    2124  object splitTop: TSplitter
    2225    Left = 0
    23     Top = 213
    24     Width = 726
     26    Top = 421
     27    Width = 701
    2528    Height = 4
    2629    Cursor = crVSplit
     
    3639  object pnlBottom: TORAutoPanel
    3740    Left = 0
    38     Top = 217
    39     Width = 726
    40     Height = 418
     41    Top = 425
     42    Width = 701
     43    Height = 207
    4144    Align = alBottom
    42     Caption = 'pnlBottom'
    4345    Constraints.MinHeight = 40
    4446    Ctl3D = False
     
    4749    object splitBottom: TSplitter
    4850      Left = 1
    49       Top = 204
    50       Width = 724
     51      Top = 102
     52      Width = 699
    5153      Height = 4
    5254      Cursor = crVSplit
     
    5658      Constraints.MaxHeight = 4
    5759      Constraints.MinHeight = 4
    58       MinSize = 60
     60      MinSize = 100
    5961      ParentColor = False
    6062      OnMoved = splitBottomMoved
     
    6264    object pnlMedIn: TPanel
    6365      Left = 1
    64       Top = 208
    65       Width = 724
    66       Height = 209
     66      Top = 106
     67      Width = 699
     68      Height = 100
    6769      Align = alBottom
    68       Caption = 'pnlMedIn'
    69       Constraints.MinHeight = 40
     70      Constraints.MinHeight = 100
    7071      TabOrder = 0
    7172      object lstMedsIn: TCaptionListBox
     
    7374        Left = 1
    7475        Top = 17
    75         Width = 722
    76         Height = 191
     76        Width = 697
     77        Height = 82
    7778        Style = lbOwnerDrawVariable
    7879        Align = alClient
    7980        Color = clCream
     81        Constraints.MinHeight = 65
    8082        Ctl3D = False
    8183        ItemHeight = 13
     
    9496        Left = 1
    9597        Top = 1
    96         Width = 722
     98        Width = 697
    9799        Height = 16
    98100        BiDiMode = bdLeftToRight
    99101        DragReorder = False
    100         Constraints.MaxHeight = 16
    101102        Constraints.MinHeight = 16
    102103        Sections = <
     
    111112            MinWidth = 20
    112113            Text = 'Inpatient Medications'
    113             Width = 440
     114            Width = 100
    114115          end
    115116          item
     
    127128          item
    128129            ImageIndex = -1
     130            MinWidth = 16
    129131            Text = 'Location'
    130             Width = 60
     132            Width = 20
    131133          end>
     134        OnSectionClick = hdrMedsInSectionClick
    132135        OnSectionResize = hdrMedsInSectionResize
    133136        ParentBiDiMode = False
     137        OnMouseDown = hdrMedsInMouseDown
     138        OnMouseUp = hdrMedsInMouseUp
    134139        OnResize = hdrMedsInResize
    135140      end
     
    138143      Left = 1
    139144      Top = 1
    140       Width = 724
    141       Height = 203
     145      Width = 699
     146      Height = 101
    142147      Align = alClient
    143148      Caption = 'pnlNonVA'
     
    148153        Left = 1
    149154        Top = 17
    150         Width = 722
    151         Height = 185
     155        Width = 697
     156        Height = 83
    152157        Style = lbOwnerDrawVariable
    153158        Align = alClient
     
    170175        Left = 1
    171176        Top = 1
    172         Width = 722
     177        Width = 697
    173178        Height = 16
    174179        BiDiMode = bdLeftToRight
    175180        DragReorder = False
    176         Constraints.MaxHeight = 16
    177181        Constraints.MinHeight = 16
    178182        Sections = <
     
    187191            MinWidth = 20
    188192            Text = 'Non-VA Medications'
    189             Width = 516
     193            Width = 100
    190194          end
    191195          item
     
    201205            Width = 62
    202206          end>
    203         OnSectionResize = hdrMedsInSectionResize
     207        OnSectionClick = hdrMedsNonVASectionClick
     208        OnSectionResize = hdrMedsNonVASectionResize
    204209        ParentBiDiMode = False
     210        OnMouseDown = hdrMedsNonVAMouseDown
     211        OnMouseUp = hdrMedsNonVAMouseUp
    205212        OnResize = hdrMedsNonVAResize
    206213      end
     
    210217    Left = 0
    211218    Top = 0
    212     Width = 726
    213     Height = 213
     219    Width = 701
     220    Height = 421
    214221    Align = alClient
    215     Caption = 'pnlTop'
    216222    Ctl3D = True
    217223    ParentCtl3D = False
     
    221227      Left = 1
    222228      Top = 17
    223       Width = 724
    224       Height = 195
     229      Width = 699
     230      Height = 403
    225231      Style = lbOwnerDrawVariable
    226232      Align = alClient
    227233      Color = clCream
     234      Constraints.MinHeight = 40
    228235      Ctl3D = False
    229236      ItemHeight = 13
     
    242249      Left = 1
    243250      Top = 1
    244       Width = 724
     251      Width = 699
    245252      Height = 16
     253      BiDiMode = bdLeftToRight
    246254      DragReorder = False
    247       Constraints.MaxHeight = 100
    248255      Constraints.MinHeight = 16
    249256      Sections = <
     
    258265          MinWidth = 20
    259266          Text = 'Outpatient Medications'
    260           Width = 400
     267          Width = 100
    261268        end
    262269        item
     
    284291          Width = 78
    285292        end>
     293      OnSectionClick = hdrMedsOutSectionClick
    286294      OnSectionResize = hdrMedsOutSectionResize
     295      ParentBiDiMode = False
     296      OnMouseDown = hdrMedsOutMouseDown
     297      OnMouseUp = hdrMedsOutMouseUp
    287298      OnResize = hdrMedsOutResize
    288299    end
     
    358369        end
    359370      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
    360421      object Z2: TMenuItem
    361422        Caption = '-'
     
    473534      OnClick = mnuActNewClick
    474535    end
     536    object mnuOptimizeFields: TMenuItem
     537      Caption = 'Adjust Field Size'
     538      Visible = False
     539      OnClick = mnuOptimizeFieldsClick
     540    end
    475541  end
    476542end
  • cprs/branches/foia-cprs/CPRS-Chart/fMeds.pas

    r459 r460  
    7272    lstMedsOut: TCaptionListBox;
    7373    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;
    7485    procedure mnuChartTabClick(Sender: TObject);
    7586    procedure FormCreate(Sender: TObject);
     
    96107    procedure mnuActRefillClick(Sender: TObject);
    97108    procedure mnuActClick(Sender: TObject);
    98     procedure pnlMedOut1Resize(Sender: TObject);
    99109    procedure mnuViewHistoryClick(Sender: TObject);
    100110    procedure popMedPopup(Sender: TObject);
     
    114124    procedure splitBottomMoved(Sender: TObject);
    115125    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);
    116148  private
    117149    FIterating: Boolean;
     
    138170    function GetMedList(Control: TWinControl): TList;
    139171    function GetPharmacyOrders(Control: TWinControl): TStringList;
     172    function PatientStatusChanged: boolean;
     173    procedure ClearChildODList;
    140174  public
    141     function PctOfTotalHeight(thisPanel: TPanel) : integer;
    142175    procedure RefreshMedLists;
    143176    procedure ClearPtData; override;
     
    148181    property ParentComplexOrderID: string read FParentComplexOrderID  write FParentComplexOrderID;
    149182    procedure InitfMedsSize;
    150   end;
     183    procedure SetSectionWidths(Sender: TObject);
     184    function GetTotalSectionsWidth(Sender: TObject) : integer;
     185    function CheckMedStatus(ActiveList: TListBox): boolean;
     186  end;
     187
     188type
     189  arOrigOutPtSecWidths = array[0..6] of integer; //CQ7586
     190  arOrigInPtSecWidths = array[0..4] of integer; //CQ7586
     191  arOrigNonVASecWidths = array[0..3] of integer; //CQ7586
    151192
    152193var
     
    154195//  LargePanelPortion: Integer;
    155196//  SmallPanelPortion: integer;
     197
     198  OrigOutPtSecWidths: arOrigOutPtSecWidths; //CQ7586
     199  OrigInPtSecWidths : arOrigInPtSecWidths; //CQ7586
     200  OrigNonVASecWidths: arOrigNonVASecWidths; //CQ7586
     201
    156202  MedOutSize:  double;
    157203  s: string;
     
    161207
    162208  totalHeight: integer;
    163   MedOutPctOfTotalHeight: integer;
    164   NonVAPctOfTotalHeight: integer;
    165   MedInpctOfTotalHeight : integer;
    166209
    167210  resizedTotalHeight: integer;
     
    171214
    172215  splitterTop: TSplitter;
    173   splitterBottom: TSplitter; 
     216  splitterBottom: TSplitter;
     217
     218  oldFont: integer; //CQ9182
     219
    174220
    175221implementation
    176222
    177 uses uCore, fFrame, fRptBox, uOrders, fODBase, fOrdersDC, fOrdersHold,
    178      fOrdersRenew, fOMNavA, fOrdersRefill, fMedCopy, fOrders, fODChild, rODBase;
     223uses uCore, rCore, fFrame, fRptBox, uOrders, fODBase, fOrdersDC, fOrdersHold,
     224     fOrdersRenew, fOMNavA, fOrdersRefill, fMedCopy, fOrders, fODChild, rODBase,
     225     StrUtils, fActivateDeactivate;
    179226
    180227{$R *.DFM}
    181228
    182229const
     230  SMALL_PANEL = 20;
     231  LARGE_PANEL = 60;
    183232  COL_MEDNAME = 1;
    184233  DG_OUT = 0;
     
    215264begin
    216265  inherited ClearPtData;
     266  ClearChildODList;
    217267  lstMedsIn.Clear;
    218268  lstMedsOut.Clear;
     
    225275  uPharmacyOrdersOut.Clear;
    226276  uMedListNonVA.Clear;
     277  totalHeight := 0;
    227278
    228279end;
     
    231282const
    232283 RATIO_SMALL = 0.13; //0.1866;
     284
     285
    233286begin
    234287  inherited DisplayPage;
     
    251304
    252305  if Patient.Inpatient then
    253      begin
     306  begin
    254307     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;
    259313     lstMedsOut.Parent := pnlMedIn;
    260314
    261      hdrMedsIn.Parent := pnlTop;
    262      hdrMedsIn.Align := alTop;
     315     hdrMedsIn.Parent  := pnlTop;
     316     hdrMedsIn.Align   := alTop;
    263317
    264318     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
    267327  else
    268328     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
    281346     end;
    282 
    283 
    284   RefreshMedLists;
     347   RefreshMedLists;
    285348
    286349end;
     
    332395  if AnOrder <> nil then
    333396  begin
     397    //AGP Change 26.24 CQ 7150 fixes the problem with non-va meds initially showing up in the inpatient section
    334398    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;
    336402  end;
    337403  case OrderAction of
     
    409475      end
    410476      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
    412479    end; {if AMedList}
    413480  ORDER_CPLXRN:
     
    450517begin
    451518  inherited SetFontSize(FontSize);
     519  mnuOptimizeFieldsClick(self);
    452520  if Patient.DFN <> '' then
    453521    RefreshMedLists;
     
    459527var
    460528 medsSplitFnd : boolean;
    461   panelBottom, panelMedIn : integer;
    462529  retList : TStringList;
    463530  i: integer;
     
    486553  ChildODList := TStringList.Create;
    487554
    488  
     555
     556
    489557  //DETECT 1st TIME USER.
    490558  //If first time user (medSplitFound=false), then manually set panel heights.
     
    501569        if strPos(PChar(x),PChar(MEDS_SPLIT_FORM)) <> nil then
    502570           begin
    503            medsSplitFnd := TRUE;
     571           medsSplitFnd := False;//TRUE;
    504572           Break;
    505573           end;
     
    510578          pnlBottom.Height := frmMeds.Height div 2;
    511579          pnlMedIn.Height := pnlBottom.Height div 2;
    512           panelBottom := pnlBottom.Height;
    513           panelMedIn  := pnlMedIn.Height;
    514580        end;
    515581     end;
    516582
    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
    519600end;
    520601
     
    522603begin
    523604  inherited;
     605  ClearChildODList;
    524606  ClearMedList(uMedListIn);
    525607  ClearMedList(uMedListOut);
     
    706788  result := '';
    707789  Detail := '';
     790  if AMed.Status = 'Suspended' then AMed.Status := 'Active/Susp'; //HDS00007547 PSI-03-033 Interim Solution.
    708791  case Column of
    709792    0: result := GetActionText(AMed);
    710793    1: result := GetInstructText(AMed, Detail);
    711794    2: result := FormatFMDateTime('mm/dd/yy', AMed.StopDate);
    712     3: result := AMed.Status;
     795    3: result :=  AMed.Status;
    713796    4:
    714797     begin
     
    748831    TAG_INPT:  result := hdrMedsIn;
    749832
    750     else       result := nil;
     833    else       
     834    result := nil;
    751835  end;
    752836end;
     
    758842    TAG_NONVA: result := uMedListNonVA;
    759843    TAG_INPT:  result := uMedListIn;
    760     else       result := nil;
     844    else
     845    result := nil;
    761846  end;
    762847end;
     
    768853    TAG_NONVA: result := uNonVAOrdersOut;
    769854    TAG_INPT:  result := uPharmacyOrdersIn;
    770   else       
     855  else
    771856     result := nil;
    772857  end;
     
    813898end;
    814899
    815 procedure TfrmMeds.lstMedsDrawItem(Control: TWinControl; Index: Integer; Rect: TRect;
    816   State: TOwnerDrawState);
     900procedure TfrmMeds.lstMedsDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
    817901var
    818902  ReturnHt: Integer;
     
    838922      begin
    839923        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
    841933          Canvas.Font.Color := clBlue;
    842934        if (Length(Piece(AnAction,'^',4)) > 0) then
     
    851943          ARect := ItemRect(Index);
    852944          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
    854950          ReturnHt  := DrawText(Canvas.Handle, PChar(x), Length(x), ARect, DT_LEFT or DT_NOPREFIX
    855951                        or DT_WORDBREAK);
     
    884980begin
    885981  inherited;
     982 
     983  if PatientStatusChanged then exit;
    886984  with lstMedsOut do for i := 0 to Items.Count -1 do
    887985    Selected[i] := false;
     
    895993begin
    896994  inherited;
     995 
     996  if PatientStatusChanged then exit;
    897997  with lstMedsIn do for i := 0 to Items.Count -1 do
    898998    Selected[i] := false;
     
    9011001end;
    9021002
    903 procedure TfrmMeds.hdrMedsOutSectionResize(HeaderControl: THeaderControl;
    904   Section: THeaderSection);
     1003procedure TfrmMeds.hdrMedsOutSectionResize(HeaderControl: THeaderControl; Section: THeaderSection);
    9051004begin
    9061005  inherited;
     
    9161015end;
    9171016
    918 procedure TfrmMeds.hdrMedsInSectionResize(HeaderControl: THeaderControl;
    919   Section: THeaderSection);
     1017procedure TfrmMeds.hdrMedsInSectionResize(HeaderControl: THeaderControl; Section: THeaderSection);
    9201018begin
    9211019  inherited;
     
    9261024    IntegralHeight := not IntegralHeight;  // listbox window to be recreated
    9271025  end;
     1026
    9281027  RedrawActivate(Self.Handle);
    9291028  lstMedsIn.Invalidate;
     
    9361035begin
    9371036  inherited;
    938   //frmFrame.UpdatePtInfoOnRefresh;
     1037  if PatientStatusChanged then exit;
    9391038  if lstMedsOut.SelCount > 0 then
    9401039  begin
     
    9721071    begin
    9731072      ValidateSelected(ActiveList, OA_DC, TX_NO_DC, TC_NO_DC);
     1073      //ActivateDeactiveRenew(ActiveList); AGP 26.53 TURN OFF UNTIL FINAL DECISION CAN BE MADE
    9741074      MakeSelectedList(ActiveList, SelectedList);
    9751075      if ExecuteDCOrders(SelectedList,DelEvt) then
     
    9991099  if ActiveList = nil then Exit;
    10001100  SelectedList := TList.Create;
     1101  if CheckMedStatus(ActiveList) = True then Exit;
    10011102  try
    10021103    FIterating := True;
     
    10341135  try
    10351136    FIterating := True;
     1137    if CheckMedStatus(ActiveList) = True then Exit;
    10361138    if AuthorizedUser and EncounterPresent and LockedForOrdering then
    10371139    begin
     
    10841186  ChangeIFNList := TStringList.Create;
    10851187  try
     1188    FIterating := true;
     1189    if CheckMedStatus(ActiveList) = True then Exit;
     1190    ValidateSelected(ActiveList, OA_CHANGE, TX_NO_CHANGE, TC_NO_CHANGE);
    10861191    MakeSelectedList(Activelist, SelectedList);
    10871192    with SelectedList do for i := 0 to Count - 1 do ChangeIFNList.Add(TOrder(Items[i]).ID);
     
    11361241  DoesDestEvtOccur := False;
    11371242  ActiveList := ListSelected(TX_NOSEL);
     1243  if CheckMedStatus(ActiveList) = True then Exit;
    11381244  if ActiveList = nil then Exit;
    11391245  NewOrderCreated := False;
     
    12961402  if ActiveList = nil then Exit;
    12971403  SelectedList := TList.Create;
     1404  if CheckMedStatus(ActiveList) = True then Exit;
    12981405  try
    12991406    FIterating := True;
     
    13441451       begin
    13451452         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);
    13471454       end;
    13481455    CurID := uPendingChanges.Values[Piece(Piece(SomePharmacyOrders[i], U, 2), ';', 1)];
     
    14121519        end;
    14131520      end;
    1414       idx := -1;
    14151521      idx := ChildODList.IndexOf(AnOrder.ID);
    14161522      if idx > - 1 then
     
    14261532
    14271533procedure 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;
     1534begin
    14481535  AListBox.Invalidate;
    14491536end;
    14501537
    1451 procedure TfrmMeds.pnlMedOut1Resize(Sender: TObject);
    1452 begin
    1453   inherited;
    1454   //if pnlMedOut.Height < 20 then pnlMedOut.Height := 20;
    1455 end;
    1456 
    1457 
    14581538procedure TfrmMeds.popMedPopup(Sender: TObject);
    14591539begin
    14601540  inherited;
    1461   //frmFrame.UpdatePtInfoOnRefresh;
     1541  if PatientStatusChanged then exit;
    14621542end;
    14631543
     
    14651545begin
    14661546  inherited;
    1467   //frmFrame.UpdatePtInfoOnRefresh;
     1547  if PatientStatusChanged then exit; 
    14681548end;
    14691549
     
    14731553begin
    14741554  inherited;
     1555  if PatientStatusChanged then exit; 
    14751556  with lstMedsIn do for i := 0 to Items.Count -1 do
    14761557     Selected[i] := false;
     
    14911572end;
    14921573
    1493 procedure TfrmMeds.hdrMedsNonVASectionResize(HeaderControl: THeaderControl;
    1494   Section: THeaderSection);
     1574procedure TfrmMeds.hdrMedsNonVASectionResize(HeaderControl: THeaderControl; Section: THeaderSection);
    14951575begin
    14961576  inherited;
     
    15061586end;
    15071587
    1508 function TfrmMeds.PctOfTotalHeight(thisPanel: TPanel) : integer;
    1509 var
    1510   pctOfTotal: real;
    1511 begin
    1512   pctOfTotal := ((thisPanel.Height / totalHeight) * 100);
    1513   Result := Round(pctOfTotal);
     1588function FontChanged : boolean;
     1589//CQ9182:  SEE ALSO procedure TfrmFrame.mnuFontSizeClick()
     1590begin
     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;
    15141599end;
    15151600
    15161601procedure TfrmMeds.FormResize(Sender: TObject);
     1602var
     1603 maxPanelHeight: integer;
     1604
    15171605begin
    15181606  inherited;
    15191607  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
    15201611     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;
    15251622end;
    15261623
     
    15371634  inherited;
    15381635  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);
    15421638     Invalidate;
    1543      end;
     1639  end;
    15441640end;
    15451641
     
    15481644  inherited;
    15491645  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);
    15531648     Invalidate;
    1554      end;
     1649  end;
    15551650end;
    15561651
     
    15591654  inherited;
    15601655  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);
    15641658     Invalidate;
    1565      end;
     1659  end;
    15661660end;
    15671661
     
    15811675begin
    15821676  inherited;
    1583   if splitBottom.Height > 5 then splitBottom.Height := 5;
     1677  splitBottom.Height := 5;
    15841678end;
    15851679
     
    15871681begin
    15881682  inherited;
    1589   if splitTop.Height > 5 then splitTop.Height := 5;
     1683  splitTop.Height := 5;
    15901684end;
    15911685
     
    16121706        x := retList.strings[i];
    16131707        if strPos(PChar(x),PChar(MEDS_SPLIT_FORM)) <> nil then
    1614            begin
     1708        begin
    16151709           medsSplitFnd := TRUE;
    16161710           Break;
     
    16311725end;
    16321726
     1727function TfrmMeds.PatientStatusChanged: boolean;
     1728const
     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
     1737var
     1738  PtSelect: TPtSelect;
     1739  IsInpatientNow: boolean;
     1740  ptSts: string;
     1741begin
     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;
     1754end;
     1755
     1756function TfrmMeds.GetTotalSectionsWidth(Sender: TObject) : integer;
     1757//CQ7586
     1758//Return stored values of column widths
     1759var
     1760  i: integer;
     1761begin
     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;
     1775end;
     1776
     1777procedure TfrmMeds.SetSectionWidths(Sender: TObject);
     1778//CQ7586
     1779//Copy values of column widths into array variables.
     1780var
     1781  i: integer;
     1782begin
     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;
     1794end;
     1795
     1796procedure TfrmMeds.hdrMedsOutMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
     1797begin
     1798  inherited;
     1799  Self.SetSectionWidths(Sender); //CQ7586
     1800end;
     1801
     1802procedure TfrmMeds.hdrMedsNonVAMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
     1803begin
     1804  inherited;
     1805  Self.SetSectionWidths(Sender); //CQ7586
     1806end;
     1807
     1808procedure TfrmMeds.hdrMedsInMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
     1809begin
     1810  inherited;
     1811  Self.SetSectionWidths(Sender); //CQ7586
     1812end;
     1813
     1814procedure TfrmMeds.hdrMedsOutMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
     1815//CQ7586
     1816var
     1817  i: integer;
     1818  totalSectionsWidth, originalwidth: integer;
     1819begin
     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
     1843end;
     1844
     1845procedure TfrmMeds.hdrMedsNonVAMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
     1846//CQ7586
     1847var
     1848  i: integer;
     1849  totalSectionsWidth, originalwidth: integer;
     1850begin
     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
     1874end;
     1875
     1876procedure TfrmMeds.hdrMedsInMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
     1877//CQ7586
     1878var
     1879  i: integer;
     1880  totalSectionsWidth, originalwidth: integer;
     1881begin
     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
     1905end;
     1906
     1907procedure TfrmMeds.ClearChildODList;
     1908var
     1909  i: integer;
     1910begin
     1911  for i := 0 to ChildODList.count-1 do
     1912    if(assigned(ChildODList.Objects[i])) then
     1913      ChildODList.Objects[i].Free;
     1914  ChildODList.Clear;
     1915end;
     1916
     1917function TfrmMeds.CheckMedStatus(ActiveList: TListBox): boolean;
     1918var
     1919i: integer;
     1920tmpList: TStringList;
     1921Str: string;
     1922AMed: TMedListRec;
     1923AMedList: TList;
     1924
     1925begin
     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;
     1946end;
     1947
     1948(*procedure TfrmMeds.ActivateDeactiveRenew(AListBox: TListBox);
     1949var
     1950  i: Integer;
     1951  CurID: string;
     1952  SomePharmacyOrders: TStringList;
     1953  tmpArr: TStringList;
     1954begin
     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);
     1965end; *)
     1966
     1967procedure TfrmMeds.ViewInfo(Sender: TObject);
     1968begin
     1969  inherited;
     1970  frmFrame.ViewInfo(Sender);
     1971end;
     1972
     1973procedure TfrmMeds.mnuViewInformationClick(Sender: TObject);
     1974begin
     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;
     1985end;
     1986
     1987procedure TfrmMeds.mnuOptimizeFieldsClick(Sender: TObject);
     1988var
     1989  totalSectionsWidth, unit1, unit2, unit8: integer;
     1990begin
     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;
     2028end;
     2029
     2030procedure TfrmMeds.hdrMedsOutSectionClick(HeaderControl: THeaderControl;
     2031  Section: THeaderSection);
     2032begin
     2033  inherited;
     2034  //if Section = hdrMedsOut.Sections[1] then
     2035    mnuOptimizeFieldsClick(self);
     2036end;
     2037
     2038procedure TfrmMeds.hdrMedsNonVASectionClick(HeaderControl: THeaderControl;
     2039  Section: THeaderSection);
     2040begin
     2041  inherited;
     2042  //if Section = hdrMedsNonVA.Sections[1] then
     2043    mnuOptimizeFieldsClick(self);
     2044end;
     2045
     2046procedure TfrmMeds.hdrMedsInSectionClick(HeaderControl: THeaderControl;
     2047  Section: THeaderSection);
     2048begin
     2049  inherited;
     2050  //if Section = hdrMedsIn.Sections[1] then
     2051    mnuOptimizeFieldsClick(self);
     2052end;
     2053
    16332054end.
    16342055
  • cprs/branches/foia-cprs/CPRS-Chart/fNoteProps.dfm

    r459 r460  
    11object frmNoteProperties: TfrmNoteProperties
    2   Left = 176
    3   Top = 204
     2  Left = 384
     3  Top = 56
    44  AutoScroll = False
    55  BorderIcons = []
    66  Caption = 'Progress Note Properties'
    7   ClientHeight = 371
     7  ClientHeight = 676
    88  ClientWidth = 543
    99  Color = clBtnFace
     
    1616  OldCreateOrder = False
    1717  Position = poScreenCenter
     18  OnDestroy = FormDestroy
    1819  OnResize = FormResize
    1920  OnShow = FormShow
     
    106107    OnMouseClick = cboNewTitleMouseClick
    107108    OnNeedData = cboNewTitleNeedData
     109    CharsNeedMatch = 1
    108110  end
    109111  object calNote: TORDateBox
     
    145147    OnMouseClick = cboAuthorMouseClick
    146148    OnNeedData = NewPersonNeedData
     149    CharsNeedMatch = 1
    147150  end
    148151  object cboCosigner: TORComboBox
     
    171174    OnExit = cboCosignerExit
    172175    OnNeedData = cboCosignerNeedData
     176    CharsNeedMatch = 1
    173177  end
    174178  object cmdOK: TButton
     
    179183    Caption = 'OK'
    180184    Default = True
    181     TabOrder = 8
     185    TabOrder = 9
    182186    OnClick = cmdOKClick
    183187  end
     
    189193    Cancel = True
    190194    Caption = 'Cancel'
    191     TabOrder = 9
     195    TabOrder = 10
    192196    OnClick = cmdCancelClick
    193197  end
     
    218222    SynonymChars = '<>'
    219223    TabOrder = 4
     224    CharsNeedMatch = 1
    220225  end
    221226  object calProcDateTime: TORDateBox
     
    233238    Tag = 2
    234239    Left = 0
    235     Top = 218
     240    Top = 217
    236241    Width = 543
    237242    Height = 153
     243    Align = alBottom
    238244    BevelOuter = bvNone
    239245    TabOrder = 6
     
    316322    Tag = 1
    317323    Left = 0
    318     Top = 218
     324    Top = 370
    319325    Width = 543
    320326    Height = 153
     327    Align = alBottom
    321328    BevelOuter = bvNone
    322329    TabOrder = 7
    323330    object lblConsult1: TLabel
    324331      Tag = 1
    325       Left = 26
     332      Left = 3
    326333      Top = 8
    327334      Width = 309
     
    339346    object lblConsult2: TLabel
    340347      Tag = 1
    341       Left = 26
     348      Left = 3
    342349      Top = 22
    343350      Width = 247
     
    408415      Pieces = '2,3,4,5,6'
    409416      TabPositions = '21,43,69,83'
     417      OnChange = lstRequestsChange
    410418    end
    411419    object btnShowList: TButton
    412       Left = 386
    413       Top = 12
     420      Left = 335
     421      Top = 13
    414422      Width = 100
    415423      Height = 21
     
    418426      OnClick = btnShowListClick
    419427    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
    420506  end
    421507end
  • cprs/branches/foia-cprs/CPRS-Chart/fNoteProps.pas

    r459 r460  
    1 unit fNoteProps;                           
     1unit fNoteProps;
    22
    33interface
     
    55uses
    66  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;
    89
    910type
     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
    1030  TfrmNoteProperties = class(TForm)
    1131    lblNewTitle: TLabel;
     
    4262    lblProcDateTime: TOROffsetLabel;
    4363    btnShowList: TButton;
     64    pnlPRF: TORAutoPanel;
     65    lblPRF: TLabel;
     66    Bevel1: TBevel;
     67    lvPRF: TCaptionListView;
     68    btnDetails: TButton;
    4469    procedure FormShow(Sender: TObject);
    4570    procedure cboNewTitleNeedData(Sender: TObject; const StartFrom: String;
     
    6388    procedure FormResize(Sender: TObject);
    6489    procedure calNoteEnter(Sender: TObject);
     90    procedure FormDestroy(Sender: TObject);
     91    procedure btnDetailsClick(Sender: TObject);
     92    procedure lstRequestsChange(Sender: TObject);
    6593  private
    6694    FCosignIEN: Int64;      // store cosigner that was passed in
     
    81109    FProcDateTime: TFMDateTime;
    82110    FCPStatusFlag: integer;
     111    FPRFActions : TPRFActions;
     112    FStarting: boolean;
    83113    procedure SetCosignerRequired(DoSetup: boolean);
    84114    procedure FormatRequestList;
    85115    procedure ShowRequestList(ShouldShow: Boolean);
    86116    procedure ShowSurgCaseList(ShouldShow: Boolean);
     117    procedure ShowPRFList(ShouldShow: Boolean);
    87118    procedure ShowClinProcFields(YesNo: boolean);
     119    procedure SetGenericFormSize;
    88120    procedure UMDelayEvent(var Message: TMessage); message UM_DELAYEVENT;
    89121  public
    90122    { Public declarations }
     123
    91124  end;
     125
    92126
    93127function ExecuteNoteProperties(var ANote: TEditNoteRec; CallingTab: integer; IDNoteTitlesOnly,
     
    101135 TC_INACTIVE_USER     = 'Inactive User Alert';
    102136
     137 PIXEL_SPACE = 6;
     138
    103139implementation
    104140
    105141{$R *.DFM}
    106142
    107 uses uCore, rCore, rConsults, uConsults, rSurgery, uAccessibleListBox;
     143uses uCore, rCore, rConsults, uConsults, rSurgery, uAccessibleListBox, fRptBox;
    108144
    109145{ Initial values in ANote
     
    133169  TX_REQ_REQUEST       = CRLF + 'This title requires the selection of an associated consult request.';
    134170  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.';
    135173  TX_NO_FUTURE         = CRLF + 'A reference date/time in the future is not allowed.';
    136174  TX_COS_SELF          = CRLF + 'You cannot make yourself a cosigner.';
     
    153191  ACTIVE_STATUS = 'ACTIVE,PENDING,SCHEDULED';
    154192
     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
    155203
    156204var
     
    176224      FIsClinProcNote := (AClassName = DCL_CLINPROC);
    177225      FCPStatusFlag := CPStatusFlag;
    178       uShowUnresolvedOnly := False;
     226      //uShowUnresolvedOnly := False;                      //v26.5 (RV)
     227      uShowUnresolvedOnly := True;                         //v26.5 (RV)
    179228      if ANote.DocType <> TYP_ADDENDUM then
    180229        begin
     
    210259           CT_NOTES:      begin
    211260                            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;
    215265                            cboNewTitle.InitLongList('');
    216266                            cboAuthor.InitLongList(ANote.AuthorName);
     
    235285        end;
    236286      ShowClinProcFields(FIsClinProcNote);
     287      FStarting := True;
    237288      if ANote.Title > 0 then cboNewTitle.SelectByIEN(ANote.Title);
    238289      if (ANote.Title > 0) and (cboNewTitle.ItemIndex < 0)
    239290        then cboNewTitle.SetExactByIEN(ANote.Title, ANote.TitleName);
     291      FStarting := False;
    240292      calNote.FMDateTime := ANote.DateTime;
    241293      // setup cosigner fields
     
    248300      SetCosignerRequired(True);
    249301      // setup package fields
     302      SetGenericFormSize;
    250303      case FCallingTab of
    251304        CT_CONSULTS:  begin
    252305                        ShowRequestList(False);
    253306                        ShowSurgCaseList(False);
     307                        ShowPRFList(False);
    254308                      end;
    255309        CT_SURGERY :  begin
    256310                        ShowRequestList(False);
    257311                        ShowSurgCaseList(False);
     312                        ShowPRFList(False);
    258313                      end;
    259314        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));
    275320                      end;
    276321      end;
     
    283328      end;
    284329      cboNewTitle.Caption := lblNewTitle.Caption;
     330      FStarting := True;
    285331      cboNewTitleExit(frmNoteProperties);        // force display of request/case list
     332      FStarting := False;
    286333      if uShowUnresolvedOnly then                // override previous display if SHOW ME clicked on entrance
    287334      begin
    288         cboNewTitle.ItemIndex := -1;
     335        //cboNewTitle.ItemIndex := -1;      CQ#7587, v26.25 - RV
    289336        uShowUnresolvedOnly := not uShowUnresolvedOnly;
    290337        FormatRequestList;
     
    351398                              PkgPtr := PKG_SURGERY;
    352399                              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);
    353405                            end;
    354406                        end;
     
    392444  begin
    393445    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);
    396448  end;
    397449  cboCosigner.Visible := lblCosigner.Visible;
     
    427479  SavedIEN: integer;
    428480begin
     481  ShouldShow := ShouldShow and (FCallingTab = CT_NOTES);
    429482  if FDocType = TYP_ADDENDUM then ShouldShow := False;
     483  pnlConsults.Visible := ShouldShow;
    430484  if ShouldShow then
    431485  begin
    432486    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;
    437488    lstRequests.Items.Clear;
    438489    if uConsultsList.Count = 0 then ListConsultRequests(uConsultsList);
     
    451502    lblConsult1.Visible := (cboNewTitle.ItemIndex > -1);
    452503    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
    459506end;
    460507
    461508procedure TfrmNoteProperties.ShowSurgCaseList(ShouldShow: Boolean);
    462509{ called initially & whenever title changes }
    463 var
    464   i: Integer;
    465 begin
     510begin
     511  pnlSurgery.Visible := ShouldShow;
    466512  if FDocType = TYP_ADDENDUM then ShouldShow := False;
    467513  if ShouldShow then
    468514  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;
    473516    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
    480518end;
    481519
     
    503541
    504542procedure TfrmNoteProperties.cboNewTitleMouseClick(Sender: TObject);
     543const
     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';
     551var
     552  WantsToCompleteConsult: boolean;
     553  ConsultTitle: boolean;
    505554begin
    506555  with cboNewTitle do
     
    515564      CT_CONSULTS:  ;  // no action
    516565      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;
    532583    end;
    533584  SetCosignerRequired(True);
     
    573624//var x: string;
    574625begin
    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;
    576633  FCosignIEN := cboCosigner.ItemIEN;
    577634  FCosignName := Piece(cboCosigner.Items[cboCosigner.ItemIndex], U, 2);
     
    602659                       ShowRequestList(False);
    603660                       ShowSurgCaseList(False);
     661                       ShowPRFList(False);
    604662                    end;
    605663  end;*)
    606664  SetCosignerRequired(False);
    607665  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
    616684    begin
    617685      if FIDNoteTitlesOnly then
     
    626694          else if ((pnlSurgery.Visible) and (lstSurgery.ItemIndex < 0)) then
    627695            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;
    628703        end;
    629704    end;
     
    635710       if (cboCosigner.ItemIEN = 0)     then ErrMsg := ErrMsg + TX_REQ_COSIGNER;
    636711      //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)
    638713        then ErrMsg := cboCosigner.Text + TX_COS_AUTH;
    639714        //code added 02/2003  check if User is Inactive   GRE
     
    719794    else
    720795      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)
    722799end;
    723800
     
    739816end;
    740817
     818procedure TfrmNoteProperties.ShowPRFList(ShouldShow: Boolean);
     819begin
     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
     837end;
     838
     839procedure TfrmNoteProperties.SetGenericFormSize;
     840begin
     841  ClientHeight := cboCosigner.Top + cboCosigner.Height + PIXEL_SPACE;
     842end;
     843
     844{ TPRFActions }
     845
     846constructor TPRFActions.Create;
     847begin
     848  inherited;
     849  FPRFActionList := TStringList.Create;
     850end;
     851
     852destructor TPRFActions.Destroy;
     853begin
     854  FPRFActionList.Free;
     855  inherited;
     856end;
     857
     858function TPRFActions.GetActionIEN(lstIndex: integer): String;
     859begin
     860  Result := Piece(FPRFActionList[lstIndex],U,ACTION_IEN);
     861end;
     862
     863function TPRFActions.GetPRF_IEN(lstIndex: integer): integer;
     864begin
     865  Result := StrToInt(Piece(FPRFActionList[lstIndex],U,PRF_IEN));
     866end;
     867
     868procedure TPRFActions.Load(TitleIEN : Int64; DFN : String);
     869begin
     870  CallV('TIU GET PRF ACTIONS', [TitleIEN,DFN]);
     871  FPRFActionList.Assign(RPCBrokerV.Results);
     872end;
     873
     874function TPRFActions.SelActionHasNote(lstIndex: integer): boolean;
     875begin
     876  Result := false;
     877  if Piece(FPRFActionList[lstIndex],U,NOTE_IEN) <> '' then
     878    Result := true;
     879end;
     880
     881procedure TPRFActions.ShowActionsOnList(DisplayList: TCaptionListView);
     882var
     883  i : integer;
     884  ListItem: TListItem;
     885begin
     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;
     900end;
     901
     902procedure TfrmNoteProperties.FormDestroy(Sender: TObject);
     903begin
     904  FPRFActions.Free;
     905end;
     906
     907procedure TfrmNoteProperties.btnDetailsClick(Sender: TObject);
     908var
     909  ConsultDetail: TStringList;
     910begin
     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;
     920end;
     921
     922procedure TfrmNoteProperties.lstRequestsChange(Sender: TObject);
     923begin
     924  btnDetails.Enabled := (lstRequests.ItemIEN > 0);
     925end;
     926
    741927end.
  • cprs/branches/foia-cprs/CPRS-Chart/fNotePrt.dfm

    r459 r460  
    11inherited frmNotePrint: TfrmNotePrint
    2   Left = 505
    3   Top = 209
     2  Left = 516
     3  Top = 189
    44  AutoScroll = False
    55  Caption = 'frmNotePrint'
  • cprs/branches/foia-cprs/CPRS-Chart/fNotePrt.pas

    r459 r460  
    202202  if Piece(cboDevice.ItemID, ';', 1) = 'WIN' then
    203203    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
    207210    end
    208211  else
  • cprs/branches/foia-cprs/CPRS-Chart/fNotes.dfm

    r459 r460  
    11inherited frmNotes: TfrmNotes
    2   Left = 375
    3   Top = 144
    4   Width = 614
     2  Left = 307
     3  Top = 177
     4  Width = 687
    55  Height = 409
    66  HelpContext = 5000
    77  Caption = 'Progress Notes Page'
    88  HelpFile = 'overvw'
     9  KeyPreview = True
    910  Menu = mnuNotes
    1011  OnDestroy = FormDestroy
    1112  OnHide = FormHide
     13  OnMouseMove = FormMouseMove
    1214  OnShow = FormShow
    1315  PixelsPerInch = 96
     
    1517  inherited shpPageBottom: TShape
    1618    Top = 358
    17     Width = 606
     19    Width = 679
    1820  end
    1921  inherited sptHorz: TSplitter
     
    5759      OnClick = cmdNewNoteClick
    5860      OnExit = cmdNewNoteExit
     61      OnMouseMove = FormMouseMove
    5962      Align = alBottom
    6063    end
     
    6972      OnClick = cmdPCEClick
    7073      OnExit = cmdPCEExit
     74      OnMouseMove = FormMouseMove
    7175      Align = alBottom
    7276    end
     
    128132        OnExit = tvNotesExit
    129133        OnExpanded = tvNotesExpanded
     134        OnMouseMove = FormMouseMove
    130135        OnStartDrag = tvNotesStartDrag
    131136        Caption = 'Last 100 Notes'
     
    137142  inherited pnlRight: TPanel
    138143    Left = 68
    139     Width = 538
     144    Width = 611
    140145    Height = 358
    141146    object sptVert: TSplitter
    142147      Left = 0
    143148      Top = 309
    144       Width = 538
     149      Width = 611
    145150      Height = 4
    146151      Cursor = crVSplit
     
    150155      Left = 0
    151156      Top = 313
    152       Width = 538
     157      Width = 611
    153158      Height = 45
    154159      Align = alBottom
     
    165170      Left = 0
    166171      Top = 0
    167       Width = 538
     172      Width = 611
    168173      Height = 309
    169174      Align = alClient
     
    175180        Left = 0
    176181        Top = 67
    177         Width = 538
     182        Width = 611
    178183        Height = 242
    179184        Align = alClient
     
    197202        Left = 0
    198203        Top = 0
    199         Width = 538
     204        Width = 611
    200205        Height = 67
    201206        Align = alTop
     
    204209        OnResize = pnlFieldsResize
    205210        DesignSize = (
    206           538
     211          611
    207212          67)
    208213        object bvlNewTitle: TBevel
     
    226231        end
    227232        object lblAuthor: TStaticText
    228           Left = 320
     233          Left = 393
    229234          Top = 6
    230235          Width = 152
     
    249254        end
    250255        object lblCosigner: TStaticText
    251           Left = 225
     256          Left = 298
    252257          Top = 21
    253258          Width = 243
     
    292297        end
    293298        object cmdChange: TButton
    294           Left = 474
     299          Left = 547
    295300          Top = 6
    296301          Width = 58
     
    305310          Left = 48
    306311          Top = 40
    307           Width = 484
     312          Width = 557
    308313          Height = 21
    309314          Hint = 'Subject is limited to a maximum of 80 characters.'
     
    321326      Left = 0
    322327      Top = 0
    323       Width = 538
     328      Width = 611
    324329      Height = 309
    325330      Align = alClient
    326331      BevelOuter = bvNone
    327332      TabOrder = 0
     333      OnExit = pnlReadExit
    328334      object lblTitle: TOROffsetLabel
    329335        Left = 0
    330336        Top = 0
    331         Width = 538
     337        Width = 611
    332338        Height = 19
    333339        Align = alTop
     
    341347        Left = 0
    342348        Top = 113
    343         Width = 538
     349        Width = 611
    344350        Height = 3
    345351        Cursor = crVSplit
     
    349355        Left = 0
    350356        Top = 116
    351         Width = 538
     357        Width = 611
    352358        Height = 193
    353359        Align = alClient
     
    371377        TabOrder = 1
    372378        WordWrap = False
    373         OnExit = memNoteExit
     379        OnMouseMove = FormMouseMove
    374380      end
    375381      object lvNotes: TCaptionListView
    376382        Left = 0
    377383        Top = 19
    378         Width = 538
     384        Width = 611
    379385        Height = 94
    380386        Align = alTop
     
    417423        OnColumnClick = lvNotesColumnClick
    418424        OnCompare = lvNotesCompare
    419         OnExit = lvNotesExit
     425        OnMouseMove = FormMouseMove
    420426        OnResize = lvNotesResize
    421427        OnSelectItem = lvNotesSelectItem
     
    493499        end
    494500      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
    495551      object Z3: TMenuItem
    496552        Caption = '-'
     
    524580        Tag = 6
    525581        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)'
    526587        OnClick = mnuViewClick
    527588      end
     
    806867      Tag = 6
    807868      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)'
    808874      OnClick = mnuViewClick
    809875    end
  • cprs/branches/foia-cprs/CPRS-Chart/fNotes.pas

    r459 r460  
    11unit fNotes;
    22{$O-}
    3 {
    4 NOTES:
    5     TAB ORDER:
    6       Becuase of the Dynamic ways of this form, the tab order must be
    7       coded into the onExit events of the controls. If a new control is
    8       added that needs access with tab & shift tab you must add the
    9       code. Right clicking on the form and selecting tab order will not
    10       be sufficient. See TfrmNotes.memPCEShowExit procedure for example.
    11 }
    123
    134interface
     
    167  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    178  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;
    1911
    2012type
     
    116108    N3: TMenuItem;
    117109    mnuEditDialgFields: TMenuItem;
     110    tvNotes: TORTreeView;
    118111    lvNotes: TCaptionListView;
    119112    sptList: TSplitter;
     
    143136    popNoteMemoInsTemplate: TMenuItem;
    144137    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;
    146150    procedure mnuChartTabClick(Sender: TObject);
    147151    procedure lstNotesClick(Sender: TObject);
     
    214218    procedure dlgReplaceTextFind(Sender: TObject);
    215219    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);
    218221    procedure sptHorzCanResize(Sender: TObject; var NewSize: Integer; var Accept: Boolean);
    219222    procedure popNoteMemoInsTemplateClick(Sender: TObject);
     
    222225    procedure tvNotesDeletion(Sender: TObject; Node: TTreeNode);
    223226    procedure tvNotesExit(Sender: TObject);
     227    procedure pnlReadExit(Sender: TObject);
    224228    procedure cmdNewNoteExit(Sender: TObject);
    225229    procedure FormHide(Sender: TObject);
    226230    procedure FormShow(Sender: TObject);
     231    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
     232      Y: Integer);
    227233    procedure memNewNoteKeyPress(Sender: TObject; var Key: Char);
    228234    procedure memNewNoteKeyUp(Sender: TObject; var Key: Word;
     
    231237    procedure cmdChangeExit(Sender: TObject);
    232238    procedure cmdPCEExit(Sender: TObject);
    233     procedure memNoteExit(Sender: TObject);
    234     procedure lvNotesExit(Sender: TObject);
     239    procedure ViewInfo(Sender: TObject);
     240    procedure mnuViewInformationClick(Sender: TObject);
    235241  private
    236242    FNavigatingTab : Boolean; //Currently Using tab to navigate
     
    255261    FOldDrawerPnlEncounterButtonExit: TNotifyEvent;
    256262    FOldDrawerEdtSearchExit: TNotifyEvent;
     263    FMousing: TDateTime;
    257264    FStarting: boolean;
    258265    procedure frmFramePnlPatientExit(Sender: TObject);
     
    261268    procedure frmDrawerEdtSearchExit(Sender: TObject);
    262269    procedure ClearEditControls;
    263     procedure DoAutoSave;
     270    procedure DoAutoSave(Suppress: integer = 1);
    264271    function GetTitleText(AnIndex: Integer): string;
    265272    procedure InsertAddendum;
     
    310317var
    311318  frmNotes: TfrmNotes;
     319  SearchTextStopFlag: Boolean;   // Text Search CQ: HDS00002856
    312320
    313321implementation
     
    389397                      ' but will remain indefinitely discoverable to HIMS.' +CRLF +CRLF;
    390398  TX_AUTH_SIGNED    = 'Author has not signed, are you SURE you want to sign.' +CRLF;
    391 
     399{
     400type
     401  //CQ8300
     402  ClipboardData = record
     403     Text: array[0..255] of char;
     404  end;
     405}
    392406var
    393407  uPCEShow, uPCEEdit:  TPCEData;
     
    399413  uChanging: Boolean;
    400414  uIDNotesActive: Boolean;
     415
    401416
    402417{ TPage common methods --------------------------------------------------------------------- }
     
    631646    {LastCosigner & LastCosignerName aren't cleared because they're used as default for next note.}
    632647    Lines        := nil;
     648    PRF_IEN := 0;
     649    ActionIEN := '';
    633650  end;
    634651  // clear the editing controls (also clear the new labels?)
    635652  txtSubject.Text := '';
    636   memNewNote.Clear;
     653  if memNewNote <> nil then memNewNote.Clear; //CQ7012 Added test for nil
    637654  timAutoSave.Enabled := False;
    638655  // clear the PCE object for editing
     
    754771    if IsConsultTitle(Title) and (PkgIEN = 0) then Result := True;
    755772    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;
    756774    if (DocType = TYP_ADDENDUM) then
    757775    begin
     
    760778    begin
    761779      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;
    763781    end;
    764782  end;
     
    897915  x, WhyNot, DocInfo: string;
    898916begin
     917  if frmFrame.Timedout then Exit;
     918
    899919  FNewIDChild := IsIDChild;
    900920  EnableAutosave := FALSE;
     
    932952    end;
    933953    // 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
    935956      then HaveRequired := ExecuteNoteProperties(FEditNote, CT_NOTES, IsIDChild, FNewIDChild, '', 0)
    936957      else HaveRequired := True;
     
    953974        //7348^Note Title^3000913^NERD, YOURA  (N0165)^1329;Rich Vertigan;VERTIGAN,RICH^8E REHAB MED^complete^Adm: 11/05/98;2981105.095547^        ;^^0^^^2
    954975        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;
    960985
    961986        lstNotes.Items.Insert(0, x);
     
    9951020        FChanged := False;
    9961021        cmdChangeClick(Self); // will set captions, sign state for Changes
    997         lstNotesClick(Self);  // will makepnlWrite visible
     1022        lstNotesClick(Self);  // will make pnlWrite visible
    9981023        if timAutoSave.Interval <> 0 then EnableAutosave := TRUE;
    9991024        if txtSubject.Visible then txtSubject.SetFocus else memNewNote.SetFocus;
     
    10651090    else HaveRequired := True;
    10661091  // 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);
    10681095  if HaveRequired then
    10691096  begin
     
    12851312  inherited;
    12861313  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;
    12891321end;
    12901322
     
    13951427    // no other note being edited, so just proceed as before.
    13961428    UpdateEncounterInfo;
    1397   cmdPCE.Enabled := TRUE;
     1429  if cmdPCE <> nil then
     1430    cmdPCE.Enabled := TRUE
    13981431end;
    13991432
     
    14661499  OKPressed, IsIDChild: Boolean;
    14671500  x: string;
     1501  DisAssoText : String;
    14681502begin
    14691503  inherited;
     
    14711505  LastTitle   := FEditNote.Title;
    14721506  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;
    14731517  if FEditNote.PkgPtr = PKG_CONSULTS then LastConsult := FEditNote.PkgIEN else LastConsult := 0;;
    14741518  if Sender <> Self then OKPressed := ExecuteNoteProperties(FEditNote, CT_NOTES, IsIDChild, FNewIDChild, '', 0)
     
    15001544  lstNotes.Items[EditingIndex] := x;
    15011545  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
    15031549  begin
    15041550    // try to lock the new consult, reset to previous if unable
     
    15141560    end;
    15151561  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
    15161568  if LastTitle <> FEditNote.Title then mnuActLoadBoilerClick(Self);
    15171569end;
     
    15321584end;
    15331585
    1534 procedure TfrmNotes.DoAutoSave;
     1586procedure TfrmNotes.DoAutoSave(Suppress: integer = 1);
    15351587var
    15361588  ErrMsg: string;
     
    15421594    timAutoSave.Enabled := False;
    15431595    try
    1544       SetText(ErrMsg, memNewNote.Lines, lstNotes.GetIEN(EditingIndex),1);
     1596      SetText(ErrMsg, memNewNote.Lines, lstNotes.GetIEN(EditingIndex), Suppress);
    15451597    finally
    15461598      timAutoSave.Enabled := True;
     
    15661618var
    15671619  AuthCtxt: TAuthorContext;
     1620  SearchCtxt: TSearchContext; // Text Search CQ: HDS00002856
    15681621  DateRange: TNoteDateRange;
    15691622  Saved: Boolean;
     
    16021655                   LoadNotes;
    16031656                 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 --------------------
    16041673  NC_UNCOSIGNED: begin
    16051674                   FillChar(FCurrentContext, SizeOf(FCurrentContext), 0);
     
    16671736  end; {case}
    16681737  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 --------------------
    16691746  lblNotes.hint := lblNotes.Caption;
    16701747  tvNotes.Caption := lblNotes.Caption;
     
    21282205procedure TfrmNotes.SaveSignItem(const ItemID, ESCode: string);
    21292206{ saves and optionally signs a progress note or addendum }
     2207const
     2208  SIG_COSIGN = 'COSIGNATURE';
     2209  SIG_SIGN   = 'SIGNATURE';
    21302210var
    21312211  AnIndex, IEN, i: Integer;
    21322212  Saved, ContinueSign: Boolean;  {*RAB* 8/26/99}
    2133   SignSts: TActionRec;
     2213  ActionSts, SignSts: TActionRec;
    21342214  APCEObject: TPCEData;
    21352215  OK: boolean;
    2136 
     2216  ActionType, SignTitle: string;
    21372217begin
    21382218  AnIndex := -1;
     
    21592239  if Length(ESCode) > 0 then
    21602240  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
    21622257      begin
    21632258        InfoBox(TX_EMPTY_NOTE1, TC_EMPTY_NOTE, MB_OK or MB_ICONERROR);
     
    22762371
    22772372procedure TfrmNotes.popNoteMemoFindClick(Sender: TObject);
     2373//var
     2374  //hData: THandle;  //CQ8300
     2375  //pData: ^ClipboardData; //CQ8300
    22782376begin
    22792377  inherited;
     
    22842382      FindText := '';
    22852383      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}
    22862394      Execute;
    22872395    end;
     
    23222430begin
    23232431  inherited;
    2324   DoAutoSave;
     2432  DoAutoSave(0);
    23252433  timAutoSave.Enabled := False;
    23262434  try
    23272435    SpellCheckForControl(memNewNote);
    23282436  finally
     2437    FChanged := True;
     2438    DoAutoSave(0);
    23292439    timAutoSave.Enabled := True;
    23302440  end;
     
    23342444begin
    23352445  inherited;
    2336   DoAutoSave;
     2446  DoAutoSave(0);
    23372447  timAutoSave.Enabled := False;
    23382448  try
    23392449    GrammarCheckForControl(memNewNote);
    23402450  finally
     2451    FChanged := True;
     2452    DoAutoSave(0);
    23412453    timAutoSave.Enabled := True;
    23422454  end;
     
    23992511  SigAction: integer;
    24002512  SavedDocID: string;
     2513  ARefDate: TFMDateTime;
    24012514begin
    24022515  inherited;
     
    24322545  if not LockConsultRequestAndNote(lstNotes.ItemIEN) then Exit;
    24332546  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);
    24352549  with SignerList do
    24362550    begin
     
    27132827//===================  Added for sort/search enhancements ======================
    27142828procedure TfrmNotes.LoadNotes;
     2829const
     2830  INVALID_ID = -1;
     2831  INFO_ID = 1;
    27152832var
    27162833  tmpList: TStringList;
    27172834  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
    27182839begin
    27192840  tmpList := TStringList.Create;
     
    27592880        ListNotesForTree(tmpList, StrToIntDef(Status, 0), FMBeginDate, FMEndDate, Author, MaxDocs, TreeAscending);
    27602881        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
    27612928        UpdateTreeView(FDocList, tvNotes);
    27622929      end;
     
    30963263var
    30973264  WhyNot: string;
     3265  //Saved: boolean;
    30983266begin
    30993267  if EditingIndex <> -1 then
     
    32133381procedure TfrmNotes.ShowPCEButtons(Editing: boolean);
    32143382begin
     3383  if frmFrame.Timedout then Exit;
     3384
    32153385  FEditingNotePCEObj := Editing;
    32163386  if Editing or AnytimeEncounters then
     
    34243594    SetPiece(x, U, 5, NewAuth + ';' + AuthNameCheck);
    34253595    lstNotes.Items[EditingIndex] := x;
    3426     if AskCosignerForTitle(Title, Author) then
     3596    if AskCosignerForTitle(Title, Author, DateTime) then
    34273597    begin
    34283598      InfoBox(UpperCase(AuthNameCheck) + TX_COSIGNER_REQD, TC_COSIGNER_REQD, MB_OK);
     
    34953665procedure TfrmNotes.tvNotesExit(Sender: TObject);
    34963666begin
    3497   if Boolean(Hi(GetKeyState(VK_TAB))) and (not Boolean(Hi(GetKeyState(VK_SHIFT))))then
     3667  if IncSecond(FMousing,1) < Now then
    34983668  begin
    34993669    if (Screen.ActiveControl = frmDrawers.pnlTemplatesButton) or
     
    35033673      FindNextControl( cmdPCE, True, True, False).SetFocus;
    35043674  end;
     3675  FMousing := 0;
     3676end;
     3677
     3678procedure TfrmNotes.pnlReadExit(Sender: TObject);
     3679begin
     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;
    35053693end;
    35063694
     
    35083696begin
    35093697  inherited;
    3510   if Boolean(Hi(GetKeyState(VK_TAB))) and
    3511      (not frmDrawers.pnlEncounterButton.CanFocus) and
    3512      (not Boolean(Hi(GetKeyState(VK_SHIFT)))) then
    3513     if (memPCEShow.CanFocus) then
    3514       memPCEShow.SetFocus
     3698  if IncSecond(FMousing,1) < Now then
     3699  begin
     3700    if (Screen.ActiveControl = lvNotes) or
     3701        (Screen.ActiveControl = memNote) then
     3702      frmFrame.pnlPatient.SetFocus
    35153703    else
    3516       frmFrame.pnlPatient.SetFocus;
     3704    if (Screen.ActiveControl = tvNotes) then
     3705      FindNextControl( frmFrame.pnlPatient, False, True, False).SetFocus;
     3706  end;
     3707  FMousing := 0;
    35173708end;
    35183709
     
    35203711begin
    35213712  FOldFramePnlPatientExit(Sender);
    3522   if Boolean(Hi(GetKeyState(VK_TAB))) then
     3713  if IncSecond(FMousing,1) < Now then
    35233714  begin
    35243715    if (Screen.ActiveControl = lvNotes) or
     
    35263717      FindNextControl( lvNotes, False, True, False).SetFocus;
    35273718  end;
     3719  FMousing := 0;
    35283720end;
    35293721
     
    35593751begin
    35603752  FOldDrawerPnlTemplatesButtonExit(Sender);
    3561   if Boolean(Hi(GetKeyState(VK_TAB))) and Boolean(Hi(GetKeyState(VK_SHIFT))) then
    3562     if memNewNote.CanFocus then
    3563       memNewNote.SetFocus
    3564     else if memNote.CanFocus then
    3565       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);
    35663758end;
    35673759
     
    35703762  FOldDrawerPnlEncounterButtonExit(Sender);
    35713763  cmdNewNoteExit(Sender);
     3764end;
     3765
     3766procedure TfrmNotes.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
     3767  Y: Integer);
     3768begin
     3769  inherited;
     3770  FMousing := Now;
    35723771end;
    35733772
     
    36063805  if Boolean(Hi(GetKeyState(VK_TAB))) then
    36073806    if Boolean(Hi(GetKeyState(VK_SHIFT))) then
    3608       if cmdPCE.CanFocus then
    3609         cmdPCE.SetFocus
    3610       else
    3611         cmdNewNote.SetFocus
     3807      cmdPCE.SetFocus
    36123808    else
    36133809      frmFrame.pnlPatient.SetFocus;
     
    36293825  if Boolean(Hi(GetKeyState(VK_TAB))) and
    36303826     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
     3829end;
     3830
     3831procedure TfrmNotes.ViewInfo(Sender: TObject);
     3832begin
     3833  inherited;
     3834  frmFrame.ViewInfo(Sender);
     3835end;
     3836
     3837procedure TfrmNotes.mnuViewInformationClick(Sender: TObject);
     3838begin
     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;
    36573849end;
    36583850
     
    36623854
    36633855finalization
    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
    36663858
    36673859end.
  • cprs/branches/foia-cprs/CPRS-Chart/fNotesBP.dfm

    r459 r460  
    1212  TextHeight = 13
    1313  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
    1819    AutoSize = False
    1920    Caption = 'The selected title has associated boilerplate text.'
    20     TabOrder = 3
     21    TabOrder = 1
    2122  end
    2223  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
    2729    Caption = ' Choose from: '
    2830    ItemIndex = 0
     
    3335    TabOrder = 0
    3436  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
    5143    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
    5363  end
    5464end
  • cprs/branches/foia-cprs/CPRS-Chart/fNotesBP.pas

    r459 r460  
    1111    Label1: TStaticText;
    1212    radOptions: TRadioGroup;
     13    btnPanel: TPanel;
    1314    cmdPreview: TButton;
    1415    cmdClose: TButton;
  • cprs/branches/foia-cprs/CPRS-Chart/fPage.pas

    r459 r460  
    4646implementation
    4747
    48 uses ORFn, fFrame;
     48uses ORFn, fFrame, uInit;
    4949
    5050{$R *.DFM}
     
    152152  NextControl: TWinControl;
    153153begin
    154   if Assigned(frmFrame) and frmFrame.Enabled and frmFrame.Visible then begin
     154  if Assigned(frmFrame) and frmFrame.Enabled and frmFrame.Visible and not uInit.Timedout then begin
    155155    NextControl := FindNextControl(nil, True, True, False);
    156156    if NextControl <> nil then
  • cprs/branches/foia-cprs/CPRS-Chart/fPatientFlagMulti.dfm

    r459 r460  
    11object frmFlags: TfrmFlags
    2   Left = 457
    3   Top = 74
     2  Left = 210
     3  Top = 169
    44  Width = 505
    5   Height = 398
     5  Height = 498
     6  VertScrollBar.Range = 116
     7  AutoScroll = False
    68  Caption = 'Patient Record Flags'
    79  Color = clBtnFace
     
    1517  OnClose = FormClose
    1618  OnCreate = FormCreate
     19  OnDestroy = FormDestroy
    1720  OnKeyDown = FormKeyDown
    1821  OnShow = FormShow
     
    2730    Align = alNone
    2831  end
    29   object Panel1: TPanel
     32  object Splitter2: TSplitter
    3033    Left = 0
    31     Top = 340
     34    Top = 308
    3235    Width = 497
    33     Height = 31
     36    Height = 4
     37    Cursor = crVSplit
    3438    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
    5040  end
    51   object Panel2: TPanel
     41  object pnlTop: TORAutoPanel
    5242    Left = 0
    5343    Top = 0
     
    5747    Constraints.MinHeight = 40
    5848    Constraints.MinWidth = 300
    59     TabOrder = 2
     49    TabOrder = 0
    6050    object lblFlags: TLabel
    6151      Left = 1
     
    7363      Height = 65
    7464      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
    8266      ParentShowHint = False
    8367      ShowHint = True
     
    9074    end
    9175  end
    92   object memFlags: TCaptionMemo
     76  object memFlags: TRichEdit
    9377    Left = 0
    9478    Top = 80
    9579    Width = 497
    96     Height = 260
     80    Height = 228
    9781    Align = alClient
    98     Font.Charset = DEFAULT_CHARSET
     82    Font.Charset = ANSI_CHARSET
    9983    Font.Color = clWindowText
    10084    Font.Height = -11
    10185    Font.Name = 'Courier New'
    10286    Font.Style = []
     87    HideScrollBars = False
    10388    Lines.Strings = (
    10489      '')
     
    10691    ReadOnly = True
    10792    ScrollBars = ssBoth
    108     TabOrder = 0
     93    TabOrder = 1
    10994    WantReturns = False
    11095    WordWrap = False
    11196  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
    112172end
  • cprs/branches/foia-cprs/CPRS-Chart/fPatientFlagMulti.pas

    r459 r460  
    88
    99type
    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)
    1125    Splitter1: TSplitter;
    12     Panel1: TPanel;
    13     btnClose: TButton;
    14     Panel2: TPanel;
     26    pnlTop: TORAutoPanel;
    1527    lblFlags: TLabel;
    1628    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;
    1836    procedure lstFlagsClick(Sender: TObject);
    19     procedure btnCloseClick(Sender: TObject);
    2037    procedure FormKeyDown(Sender: TObject; var Key: Word;
    2138      Shift: TShiftState);
     
    2340    procedure FormCreate(Sender: TObject);
    2441    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);
    2546  private
    2647    FFlagID: integer;
     48    FPRFNotes : TPRFNotes;
     49    FNoteTitle: String;
     50    procedure GetNotes();
    2751  public
    2852    { Public declarations }
    2953  end;
     54const
     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
    3065
    3166procedure ShowFlags(FlagId: integer = 0);
     
    3368implementation
    3469
    35 uses uCore,uOrPtf,ORFn;
     70uses uCore,uOrPtf,ORFn, ORNet, uConst, fRptBox, rCover;
    3671{$R *.dfm}
    3772
     
    4580    if HasFlag then
    4681    begin
    47       SetFormPosition(frmFlags);
     82      //SetFormPosition(frmFlags);
    4883      frmFlags.FFlagID := FlagId;
    4984      frmFlags.lstFlags.Items.Assign(FlagList);
    5085      frmFlags.memFlags.SelStart := 0;
    51       //ResizeFormToFont(TForm(frmFlags));
     86      ResizeFormToFont(TForm(frmFlags));
    5287      frmFlags.ShowModal;
    5388    end
     
    68103      memFlags.Lines.Assign(FlagArray);
    69104    memFlags.SelStart := 0;
    70   end;
    71 end;
    72 
    73 procedure TfrmFlags.btnCloseClick(Sender: TObject);
    74 begin
    75   Close;
     105    GetNotes;
     106  end;
    76107end;
    77108
     
    89120begin
    90121  inherited;
     122  SetFormPosition(Self);
    91123  idx := 0;
    92124  if FFlagID > 0 then idx := lstFlags.SelectByIEN(FFlagId);
     
    94126  lstFlagsClick(Self);
    95127  ActiveControl := memFlags;
     128  GetNotes;
    96129end;
    97130
     
    105138begin
    106139  inherited;
    107   //SaveUserBounds(Self);
    108 end;
    109 
    110 
     140  SaveUserBounds(Self);
     141end;
     142
     143procedure TfrmFlags.GetNotes;
     144var
     145  NoteTitleIEN, FlagID : Int64;
     146begin
     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;
     161end;
     162
     163{ TPRFNotes }
     164
     165constructor TPRFNotes.create;
     166begin
     167  inherited;
     168  FPRFNoteList := TStringList.create;
     169end;
     170
     171destructor TPRFNotes.Destroy;
     172begin
     173  FPRFNoteList.Free;
     174  inherited;
     175end;
     176
     177function TPRFNotes.getNoteIEN(index: integer): String;
     178begin
     179 Result := Piece(FPRFNoteList[index],U,NOTE_IEN_POS);
     180end;
     181
     182procedure TPRFNotes.Load(TitleIEN: Int64; DFN: String);
     183const
     184  REVERSE_CHRONO = 1;
     185begin
     186  CallV('TIU GET LINKED PRF NOTES', [DFN,TitleIEN,REVERSE_CHRONO]);
     187  FPRFNoteList.Assign(RPCBrokerV.Results);
     188end;
     189
     190procedure TPRFNotes.ShowActionsOnList(DisplayList: TCaptionListView);
     191var
     192  i : integer;
     193  ListItem: TListItem;
     194begin
     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;
     205end;
     206
     207procedure TfrmFlags.FormDestroy(Sender: TObject);
     208begin
     209  FPRFNotes.Free;
     210end;
     211
     212procedure TfrmFlags.lvPRFClick(Sender: TObject);
     213begin
     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;
     219end;
     220
     221procedure TfrmFlags.lvPRFKeyDown(Sender: TObject; var Key: Word;
     222  Shift: TShiftState);
     223begin
     224  if (Key = VK_SPACE) or (Key = VK_RETURN) then
     225    lvPRFClick(Sender);
     226end;
    111227
    112228end.
  • cprs/branches/foia-cprs/CPRS-Chart/fProbEdt.pas

    r459 r460  
    140140begin
    141141  Result := not fChanged;
    142 (*  if not fChanged then
    143     begin
    144       result := true;
    145       exit;
    146     end;
    147   if InfoBox('Discard changes?', 'Confirmation', MB_OKCANCEL or MB_ICONQUESTION) <> IDOK then
    148     result := false
    149   else
    150     result := true;*)
    151142end;
    152143
     
    160151  else
    161152    begin
    162     if (not FSilent) and
    163        (InfoBox('Discard changes?', 'Confirmation', MB_YESNO or MB_ICONQUESTION) <> IDYES) then
    164       begin
    165         FCanQuit := False;
    166         exit;
    167       end
    168     else
    169       begin
    170         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;
    174165    end;
    175166end;
     
    388379
    389380    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 ;
    390395   // ===================  changed code - REV 7/30/98  =========================
    391396   // PlUser.usVerifyTranscribed is a SITE requirement, not a user ability
  • cprs/branches/foia-cprs/CPRS-Chart/fProbs.dfm

    r459 r460  
    11inherited frmProblems: TfrmProblems
    2   Left = 206
    3   Top = 198
     2  Left = 627
     3  Top = 64
    44  Width = 639
    55  Height = 409
     
    2323    Width = 2
    2424    Height = 358
     25    OnMoved = sptHorzMoved
    2526  end
    2627  inherited pnlLeft: TPanel
     
    317318        item
    318319          ImageIndex = -1
     320          MinWidth = 20
    319321          Text = 'Description'
    320322          Width = 65
     
    322324        item
    323325          ImageIndex = -1
     326          MinWidth = 16
    324327          Text = 'Onset Date'
    325328          Width = 65
     
    327330        item
    328331          ImageIndex = -1
     332          MinWidth = 16
    329333          Text = 'Last Updated'
    330334          Width = 80
     
    385389          Width = 0
    386390        end>
     391      OnSectionClick = HeaderControlSectionClick
    387392      OnSectionResize = HeaderControlSectionResize
     393      OnMouseDown = HeaderControlMouseDown
     394      OnMouseUp = HeaderControlMouseUp
    388395    end
    389396  end
     
    443450      Caption = 'View Details'
    444451      OnClick = lstProbActsClick
     452    end
     453    object mnuOptimizeFields: TMenuItem
     454      Caption = 'Adjust Column Size'
     455      Visible = False
     456      OnClick = mnuOptimizeFieldsClick
    445457    end
    446458  end
     
    514526        end
    515527      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
    516578      object Z1: TMenuItem
    517579        Caption = '-'
  • cprs/branches/foia-cprs/CPRS-Chart/fProbs.pas

    r459 r460  
    7979    mnuChartSurgery: TMenuItem;
    8080    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;
    8192    procedure mnuChartTabClick(Sender: TObject);
    8293    procedure lstProbPickClick(Sender: TObject);
     
    110121    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
    111122      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);
    112135  private
    113136    FContextString: string;
     
    179202  GridColWidths: Array[0..15] of integer =(0, 5, -1, 9, 9, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0);
    180203
     204  type
     205  arOrigSecWidths = array[0..15] of integer;
     206
    181207var
    182208  frmProblems: TfrmProblems;
     
    185211  gFontWidth: Integer;
    186212  gFixedWidth: Integer;
     213  origWidths: arOrigSecWidths;
    187214
    188215implementation
     
    544571                  exit;
    545572                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 ;
    546578              cmt := NewComment ;
    547579              if (StrToInt(Piece(cmt, U, 1)) > 0) and (Piece(cmt, U, 3) <> '') then
     
    882914  HeaderControl.Sections[AdjustCol].AutoSize := True;
    883915  HeaderControl.Sections[AdjustCol].Width := HeaderControl.Width - cxUsed;
     916  //mnuOptimizeFieldsClick(self);       //******** test making compression, proportional, or no spacing on resize
    884917end;
    885918
     
    15861619  end ;
    15871620  lstProbActsClick(Self) ;
     1621  mnuOptimizeFieldsClick(self);
    15881622end;
    15891623
     
    17281762  if Assigned(dlgProbs) then
    17291763    dlgProbs.SetFontSize( MainFontSize);
     1764  mnuOptimizeFieldsClick(self);
    17301765end;
    17311766
     
    18101845  inherited;
    18111846  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; }
    18121854end;
    18131855
     
    19291971end;
    19301972
     1973procedure TfrmProblems.ViewInfo(Sender: TObject);
     1974begin
     1975  inherited;
     1976  frmFrame.ViewInfo(Sender);
     1977end;
     1978
     1979procedure TfrmProblems.mnuViewInformationClick(Sender: TObject);
     1980begin
     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;
     1991end;
     1992
     1993procedure TfrmProblems.mnuOptimizeFieldsClick(Sender: TObject);
     1994var
     1995  totalSectionsWidth, unitvalue: integer;
     1996begin
     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;
     2013end;
     2014
     2015procedure TfrmProblems.HeaderControlSectionClick(
     2016  HeaderControl: THeaderControl; Section: THeaderSection);
     2017begin
     2018  inherited;
     2019  //if Section = HeaderControl.Sections[1] then
     2020    mnuOptimizeFieldsClick(self);
     2021end;
     2022
     2023procedure TfrmProblems.HeaderControlMouseUp(Sender: TObject;
     2024  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
     2025var
     2026  i: integer;
     2027  totalSectionsWidth, originalwidth: integer;
     2028begin
     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;
     2043end;
     2044
     2045function TfrmProblems.getTotalSectionsWidth : integer;
     2046var
     2047  i: integer;
     2048begin
     2049  Result := 0;
     2050  for i := 0 to HeaderControl.Sections.Count - 1 do
     2051     Result := Result + HeaderControl.Sections[i].Width;
     2052end;
     2053
     2054procedure TfrmProblems.HeaderControlMouseDown(Sender: TObject;
     2055  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
     2056begin
     2057  inherited;
     2058  setSectionWidths;
     2059end;
     2060
     2061procedure TfrmProblems.setSectionWidths;
     2062var
     2063  i: integer;
     2064begin
     2065  for i := 0 to 15 do
     2066     origWidths[i] := HeaderControl.Sections[i].Width;
     2067end;
     2068
     2069procedure TfrmProblems.sptHorzMoved(Sender: TObject);
     2070begin
     2071  inherited;
     2072  mnuOptimizeFieldsClick(self);
     2073end;
     2074
    19312075end.
    19322076
  • cprs/branches/foia-cprs/CPRS-Chart/fPtSel.dfm

    r459 r460  
    11object frmPtSel: TfrmPtSel
    2   Left = 161
    3   Top = 100
    4   Width = 812
    5   Height = 612
     2  Left = 81
     3  Top = 89
     4  Width = 793
     5  Height = 589
    66  BorderIcons = []
    77  Caption = 'Patient Selection'
     
    2323    Left = 0
    2424    Top = 290
    25     Width = 804
     25    Width = 785
    2626    Height = 4
    2727    Cursor = crVSplit
     
    3131    Left = 0
    3232    Top = 294
    33     Width = 804
     33    Width = 785
    3434    Height = 17
    3535    Align = alTop
     
    6666    Left = 0
    6767    Top = 0
    68     Width = 804
     68    Width = 785
    6969    Height = 290
    7070    Align = alTop
     
    135135    end
    136136    object cmdSaveList: TButton
    137       Left = 462
    138       Top = 216
    139       Width = 149
     137      Left = 499
     138      Top = 217
     139      Width = 175
    140140      Height = 18
    141141      Caption = 'Save Patient List Settings'
     
    146146  object pnlNotifications: TORAutoPanel
    147147    Left = 0
    148     Top = 550
    149     Width = 804
     148    Top = 527
     149    Width = 785
    150150    Height = 35
    151151    Align = alBottom
     
    205205    Left = 0
    206206    Top = 311
    207     Width = 804
    208     Height = 239
     207    Width = 785
     208    Height = 216
    209209    Align = alClient
    210210    Columns = <
  • cprs/branches/foia-cprs/CPRS-Chart/fPtSel.pas

    r459 r460  
    33
    44{$OPTIMIZATION OFF}                              // REMOVE AFTER UNIT IS DEBUGGED
     5
     6{$define VAA}
    57
    68interface
     
    7779    FsortAscending: boolean;
    7880    FLastPt: string;
     81    FsortDirection: string;
     82    FUserCancelled: boolean;
    7983    procedure AdjustFormSize(ShowNotif: Boolean; FontSize: Integer);
    8084    procedure ClearIDInfo;
     
    8589    procedure RPLDisplay;
    8690    procedure AlertList;
     91    procedure ReformatAlertDateTime;
    8792  public
    8893    procedure Loaded; override;
    8994  end;
    9095
    91 procedure SelectPatient(ShowNotif: Boolean; FontSize: Integer);
     96procedure SelectPatient(ShowNotif: Boolean; FontSize: Integer; var UserCancelled: boolean);
    9297
    9398var
     
    114119  AliasString = ' -- ALIAS';
    115120
    116 procedure SelectPatient(ShowNotif: Boolean; FontSize: Integer);
     121procedure SelectPatient(ShowNotif: Boolean; FontSize: Integer; var UserCancelled: boolean);
    117122{ displays patient selection dialog (with optional notifications), updates Patient object }
    118123var
     
    137142        end;
    138143      Notifications.Clear;
     144      FsortCol := -1;
    139145      AlertList;
    140146      ClearIDInfo;
    141147      if (IsRPL = '1') then                          // Deal with restricted patient list users.
    142148        RPLDisplay;                                  // Removes unnecessary components from view.
     149      FUserCancelled := FALSE;
    143150      ShowModal;
     151      UserCancelled := FUserCancelled;
    144152    end;
    145153  finally
     
    539547  if User.IsProvider then Encounter.Provider := User.DUZ;
    540548
    541   GetBAStatus(Encounter.Provider,Encounter.Location);
     549  GetBAStatus(Encounter.Provider,Patient.DFN);
    542550  //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;
    545554  Close;
    546555end;
     
    549558begin
    550559  // Leave Patient object unchanged
     560  FUserCancelled := TRUE;
    551561  Close;
    552562end;
     
    633643        lstvAlerts.Clear;
    634644        AlertList;
     645        //display alerts sorted according to parameter settings:
     646        FsortCol := -1;     //CA - display alerts in correct sort
     647        FormShow(Sender);
    635648      end;
    636649    if Items.Count = 0 then ShowButts(False);
    637650    if SelCount <= 0 then ShowButts(False);
    638651  end;
    639   GetBAStatus(User.DUZ,Encounter.Location);
     652  GetBAStatus(User.DUZ,Patient.DFN);
    640653end;
    641654
     
    723736  lstvAlerts.Clear;
    724737  AlertList;
    725   FsortCol := 0;     //CA - display alerts in correct sort
     738  FsortCol := -1;     //CA - display alerts in correct sort
    726739  FormShow(Sender);  //CA - display alerts in correct sort
    727740  if lstvAlerts.Items.Count = 0 then ShowButts(False);
     
    805818function ConvertDate(var thisList: TStringList; listIndex: integer) : string;
    806819{
    807  CQ1075: Convert date portion from yyyy/mm/dd to mm/dd/yyyy
     820 Convert date portion from yyyy/mm/dd to mm/dd/yyyy
    808821}
    809822var
     
    887900     for I := 0 to List.Count - 1 do
    888901       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
    891903
    892904         if Piece(List[I], U, 1) <> 'Forwarded by: ' then
     
    929941
    930942  if ((FsortCol = Column.Index) and (not SortViaKeyboard)) then
    931         FsortAscending := not FsortAscending
     943     FsortAscending := not FsortAscending;
     944
     945  if FsortAscending then
     946     FsortDirection := 'F'
    932947  else
    933      if Column.Index = 4 then
    934         FsortAscending := false
    935      else
    936         FsortAscending := true;
     948     FsortDirection := 'R';
    937949
    938950  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;
    940956  SortViaKeyboard := false;
     957
    941958
    942959  //Set the Notifications sort method to last-used sort-type
    943960  //ie., user clicked on which column header last use of CPRS?
    944961  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);
    952969  end;
    953970end;
     
    10221039//    pnlPrf.Visible := True;
    10231040  end
    1024 //  else pnlPrf.Visible := False;
     1041  //else pnlPrf.Visible := False;
    10251042end;
    10261043
     
    10431060  if lstvAlerts.SelCount <= 0 then ShowButts(False)
    10441061  else ShowButts(True);
    1045   GetBAStatus(User.DUZ,Encounter.Location);
     1062  GetBAStatus(User.DUZ,Patient.DFN);
    10461063end;
    10471064
     
    11001117}
    11011118var
     1119  sortResult: string;
    11021120  sortMethod: string;
    11031121begin
    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;
    11051129
    11061130  case sortMethod[1] of
     
    11151139end;
    11161140
     1141//hds7397- ge 2/6/6 sort and display date/time column correctly - as requested
     1142procedure  TfrmPtSel.ReformatAlertDateTime;
     1143var
     1144  I,J: Integer;
     1145  inDateStr, holdDayTime,srtDate: String;
     1146begin
     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;
     1172end;
     1173
    11171174Initialization
    11181175  SortViaKeyboard := false;
  • cprs/branches/foia-cprs/CPRS-Chart/fPtSelMsg.dfm

    r459 r460  
    33  Top = 421
    44  Width = 375
    5   Height = 165
     5  Height = 174
    66  Caption = 'Patient Lookup Messages'
    77  Color = clBtnFace
     
    1919  DesignSize = (
    2020    367
    21     138)
     21    140)
    2222  PixelsPerInch = 96
    2323  TextHeight = 13
    2424  object cmdClose: TButton
    2525    Left = 158
    26     Top = 117
     26    Top = 114
    2727    Width = 60
    2828    Height = 21
     
    3838    Top = 0
    3939    Width = 367
    40     Height = 112
     40    Height = 107
    4141    Anchors = [akLeft, akTop, akRight, akBottom]
    4242    Color = clCream
  • cprs/branches/foia-cprs/CPRS-Chart/fPtSelOptns.dfm

    r459 r460  
    11object frmPtSelOptns: TfrmPtSelOptns
    2   Left = 457
    3   Top = 213
     2  Left = 1354
     3  Top = 190
    44  BorderStyle = bsNone
    55  Caption = 'frmPtSelOptns'
     
    145145      OnMouseClick = cboListMouseClick
    146146      OnNeedData = cboListNeedData
     147      CharsNeedMatch = 1
    147148    end
    148149    object cboDateRange: TORComboBox
     
    169170      OnExit = cboDateRangeExit
    170171      OnMouseClick = cboDateRangeMouseClick
     172      CharsNeedMatch = 1
    171173    end
    172174  end
  • cprs/branches/foia-cprs/CPRS-Chart/fPtSelOptns.pas

    r459 r460  
    218218end;
    219219
    220 procedure TfrmPtSelOptns.cboListNeedData(Sender: TObject;
    221   const StartFrom: String; Direction, InsertAt: Integer);
     220procedure 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
     223The problem is that in LOM1T, there are numerous entries in the HOSPITAL LOCATION file (44) that are lower-case,
     224resulting 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
     246ASCII sort mode puts those entries at the end of the "B" xref, but when retrieved by CPRS and upper-cased, it
     247messes up the logic of the combo box.  This problem has been around since there was a CPRS GUI, and the best
     248possible fix is to require those entries to either be in all uppercase or be removed.  If that's cleaned up,
     249the logic below will work correctly.
     250}
    222251begin
    223252  case frmPtSelOptns.SrcType of
  • cprs/branches/foia-cprs/CPRS-Chart/fReminderDialog.dfm

    r459 r460  
    11object frmRemDlg: TfrmRemDlg
    2   Left = 256
    3   Top = 161
     2  Left = 357
     3  Top = 260
    44  Width = 545
    55  Height = 407
     
    4141    Caption = 'Label1'
    4242  end
    43   object lblFootnotes: TStaticText
    44     Left = 0
    45     Top = 365
    46     Width = 537
    47     Height = 15
    48     Align = alBottom
    49     AutoSize = False
    50     Caption = ' * Indicates a Required Field'
    51     TabOrder = 3
    52   end
    5343  object sb1: TScrollBox
    5444    Left = 0
     
    6959    OnResize = sbResize
    7060  end
    71   object pnlBottom: TPanel
    72     Left = 0
    73     Top = 221
    74     Width = 537
    75     Height = 144
    76     Align = alBottom
    77     TabOrder = 2
    78     object splText: TSplitter
    79       Left = 1
    80       Top = 94
    81       Width = 535
    82       Height = 3
    83       Cursor = crVSplit
    84       Align = alBottom
    85     end
    86     object reData: TRichEdit
    87       Left = 1
    88       Top = 97
    89       Width = 535
    90       Height = 46
    91       Align = alBottom
    92       Color = clCream
    93       ReadOnly = True
    94       ScrollBars = ssVertical
    95       TabOrder = 2
    96       WantReturns = False
    97     end
    98     object reText: TRichEdit
    99       Left = 1
    100       Top = 25
    101       Width = 535
    102       Height = 69
    103       Align = alClient
    104       Color = clCream
    105       Font.Charset = ANSI_CHARSET
    106       Font.Color = clWindowText
    107       Font.Height = -11
    108       Font.Name = 'Courier New'
    109       Font.Style = []
    110       ParentFont = False
    111       ReadOnly = True
    112       ScrollBars = ssBoth
    113       TabOrder = 1
    114       WantReturns = False
    115       WordWrap = False
    116     end
    117     object pnlButtons: TORAutoPanel
    118       Left = 1
    119       Top = 1
    120       Width = 535
    121       Height = 24
    122       Align = alTop
    123       BevelOuter = bvNone
    124       ParentShowHint = False
    125       ShowHint = True
    126       TabOrder = 0
    127       object btnClear: TButton
    128         Left = 2
    129         Top = 2
    130         Width = 66
    131         Height = 21
    132         Hint = 'Clear Reminder Resolutions for this Reminder'
    133         Caption = 'Clear'
    134         TabOrder = 0
    135         OnClick = btnClearClick
    136       end
    137       object btnBack: TButton
    138         Left = 263
    139         Top = 2
    140         Width = 66
    141         Height = 21
    142         Hint = 'Go back to the Previous Reminder Dialog'
    143         Caption = '<  Back'
    144         TabOrder = 3
    145         OnClick = btnBackClick
    146       end
    147       object btnCancel: TButton
    148         Left = 467
    149         Top = 2
    150         Width = 66
    151         Height = 21
    152         Hint = 'Cancel All Reminder Dialog Processing'
    153         Cancel = True
    154         Caption = 'Cancel'
    155         TabOrder = 6
    156         OnClick = btnCancelClick
    157       end
    158       object btnNext: TButton
    159         Left = 331
    160         Top = 2
    161         Width = 66
    162         Height = 21
    163         Hint = 'Go on to the Next Reminder Dialog'
    164         Caption = 'Next  >'
    165         TabOrder = 4
    166         OnClick = btnNextClick
    167       end
    168       object btnFinish: TButton
    169         Left = 399
    170         Top = 2
    171         Width = 66
    172         Height = 21
    173         Hint = 'Finish Processing'
    174         Caption = 'Finish'
    175         TabOrder = 5
    176         OnClick = btnFinishClick
    177       end
    178       object btnClinMaint: TButton
    179         Left = 70
    180         Top = 2
    181         Width = 105
    182         Height = 21
    183         Hint = 'View the Clinical Maintenance Component'
    184         Caption = 'Clinical &Maint'
    185         TabOrder = 1
    186         OnClick = btnClinMaintClick
    187       end
    188       object btnVisit: TButton
    189         Left = 177
    190         Top = 2
    191         Width = 84
    192         Height = 21
    193         Caption = '&Visit Info'
    194         TabOrder = 2
    195         OnClick = btnVisitClick
    196       end
    197     end
    198   end
    19961  object sb2: TScrollBox
    20062    Left = 0
     
    21476    OnResize = sbResize
    21577  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
    216225end
  • cprs/branches/foia-cprs/CPRS-Chart/fReminderDialog.pas

    r459 r460  
    1111  TfrmRemDlg = class(TForm)
    1212    sb1: TScrollBox;
     13    sb2: TScrollBox;
     14    splTxtData: TSplitter;
     15    Label1: TLabel;
     16    pnlFrmBottom: TPanel;
    1317    pnlBottom: TPanel;
     18    splText: TSplitter;
    1419    reData: TRichEdit;
    1520    reText: TRichEdit;
     
    2025    btnNext: TButton;
    2126    btnFinish: TButton;
    22     sb2: TScrollBox;
    23     splTxtData: TSplitter;
    24     splText: TSplitter;
    2527    btnClinMaint: TButton;
     28    btnVisit: TButton;
    2629    lblFootnotes: TStaticText;
    27     btnVisit: TButton;
    28     Label1: TLabel;
    2930    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    3031    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
     
    368369  reData.Color := ReadOnlyColor;
    369370  reText.Color := ReadOnlyColor;
    370  (* FSCCond := EligbleConditions;
    371   FSCRelated  := SCC_NA;              AGP Change 25.2
     371  FSCCond := EligbleConditions;
     372 (* FSCRelated  := SCC_NA;
    372373  FAORelated  := SCC_NA;
    373   FIRRelated  := SCC_NA;
     374  FIRRelated  := SCC_NA;       AGP Change 25.2
    374375  FECRelated  := SCC_NA;
    375376  FMSTRelated := SCC_NA;
     
    377378  FCVRelated  := SCC_NA;
    378379  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); *)
    380381  NotifyWhenRemindersChange(RemindersChanged);
    381382  RemForm.Drawers.NotifyWhenRemTreeChanges(RemindersChanged);
     
    504505  begin
    505506    Box := GetBox(TRUE);
    506     if Box.ControlCount > 0 then ClearControls; //AGP Change 25.7 this change should
     507    if Box.ControlCount > 0 then ClearControls; //AGP Change 26.1 this change should
    507508                                                //resolve the problem with Duplicate CheckBoxes
    508509                                                //appearing on some reminder dialogs CQ #2843
     
    754755  msg, RemWipe: string;
    755756
    756 begin
    757  //AGP 25.11 Move RemWipe section to cancel button to
     757
     758begin
     759 //AGP 25.11 Added RemWipe section to cancel button to
    758760 //flag the patient specific dialog to be destroy if not in process.
    759761 RemWipe := '';
     
    761763    begin
    762764      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);
    764766    end
    765767  else
     
    769771    for i := 0 to RemindersInProcess.Count-1 do
    770772    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
    772775          begin
    773776             if RemWipe ='' then RemWipe := TReminder(RemindersInProcess.Objects[i]).IEN
     
    10401043              begin
    10411044                 Rem := FReminder;
    1042                  if Piece(Rem.DlgData,U,3)='1' then
     1045                 if Rem.RemWipe = 1 then
    10431046                     RemWipe := Piece(Rem.DlgData,U,1);
    10441047              end
     
    10461049              begin
    10471050                Rem := TReminder(RemindersInProcess.Objects[i]);
    1048                 if Piece(TReminder(RemindersInProcess.Objects[i]).RemData,U,11)='1' then
     1051                if TReminderDialog(TReminder(RemindersInProcess.Objects[i])).RemWipe = 1 then
    10491052                   begin
    10501053                     if RemWipe ='' then RemWipe := TReminder(RemindersInProcess.Objects[i]).IEN
     
    11581161        begin
    11591162          PCEObj := RemForm.PCEObj;
    1160       (* AGP Change 25.2 Remove this section base on the Clinical Workgroup decision
    1161          if FSCPrompt and (ndSC in PCEObj.NeededPCEData) then
     1163        (* AGP CHANGE 23.2 Remove this section base on the Clinical Workgroup decision
     1164          if FSCPrompt and (ndSC in PCEObj.NeededPCEData) then
    11621165            btnVisitClick(nil);
    11631166          PCEObj.SCRelated  := FSCRelated;
     
    11671170          PCEObj.MSTRelated := FMSTRelated;
    11681171          PCEObj.HNCRelated := FHNCRelated;
    1169           PCEObj.CVRelated  := FCVRelated;  *)
     1172          PCEObj.CVRelated  := FCVRelated; *)
    11701173          if not FProcessingTemplate then
    11711174          begin
     
    12831286                                    if(FVitalsDate = 0) then
    12841287                                    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
    12871290                                      if (not StoreVitals) then break;
    12881291                                    end;
     
    13501353                  VitalList.Insert(0, VitalDateStr     + FloatToStr(FVitalsDate));
    13511354                  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));;
    13531359                  Tmp := ValAndStoreVitals(VitalList);
    13541360                  if (Tmp <> 'True') then
     
    15871593begin
    15881594  if FVitalsDate = 0 then
    1589     VitalsDate := RemForm.PCEObj.VisitDateTime
     1595    VitalsDate := FMNow  //AGP Change 26.1
    15901596  else
    15911597    VitalsDate := FVitalsDate;
  • cprs/branches/foia-cprs/CPRS-Chart/fReminderTree.dfm

    r459 r460  
    2020  OnCreate = FormCreate
    2121  OnDestroy = FormDestroy
    22   OnKeyUp = FormKeyUp
    2322  PixelsPerInch = 96
    2423  TextHeight = 13
     
    172171        OnClick = mnuCoverSheetClick
    173172      end
     173      object mnuExit: TMenuItem
     174        Caption = 'E&xit Available Reminders'
     175        ShortCut = 27
     176        OnClick = mnuExitClick
     177      end
    174178    end
    175179  end
  • cprs/branches/foia-cprs/CPRS-Chart/fReminderTree.pas

    r459 r460  
    2323    memEvalCat: TMenuItem;
    2424    mnuCoverSheet: TMenuItem;
     25    mnuExit: TMenuItem;
    2526    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    2627    procedure FormCreate(Sender: TObject);
     
    4748    procedure memEvalCatClick(Sender: TObject);
    4849    procedure mnuCoverSheetClick(Sender: TObject);
    49     procedure FormKeyUp(Sender: TObject; var Key: Word;
    50       Shift: TShiftState);
    5150    procedure tvRemNodeCaptioning(Sender: TObject; var Caption: String);
    5251    procedure tvRemAddition(Sender: TObject; Node: TTreeNode);
    5352    procedure tvRemDeletion(Sender: TObject; Node: TTreeNode);
     53    procedure mnuExitClick(Sender: TObject);
    5454  private
    5555    FLinking: boolean;
     
    689689end;
    690690
    691 procedure TfrmReminderTree.FormKeyUp(Sender: TObject; var Key: Word;
    692   Shift: TShiftState);
    693 begin
    694   if Key = VK_ESCAPE then
    695   begin
    696     Key := 0;
    697     Close;
    698   end;
    699 end;
    700 
    701691procedure TfrmReminderTree.tvRemNodeCaptioning(Sender: TObject;
    702692  var Caption: String);
     
    724714end;
    725715
     716procedure TfrmReminderTree.mnuExitClick(Sender: TObject);
     717begin
     718  Close;
     719end;
     720
    726721end.
  • cprs/branches/foia-cprs/CPRS-Chart/fRenewOutMed.dfm

    r459 r460  
    11inherited 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'
    67  Position = poScreenCenter
    78  OnCreate = FormCreate
    89  PixelsPerInch = 96
    910  TextHeight = 13
    10   object lblRefills: TLabel
    11     Left = 8
    12     Top = 80
    13     Width = 28
    14     Height = 13
    15     Caption = 'Refills'
    16   end
    17   object lblComments: TLabel
    18     Left = 8
    19     Top = 123
    20     Width = 49
    21     Height = 13
    22     Caption = 'Comments'
    23     Enabled = False
    24     Visible = False
    25   end
    26   object lblPickup: TLabel
    27     Left = 74
    28     Top = 81
    29     Width = 38
    30     Height = 13
    31     Caption = 'Pick Up'
    32   end
    33   object cmdOK: TButton
    34     Left = 267
    35     Top = 201
    36     Width = 72
    37     Height = 21
    38     Caption = 'OK'
    39     Default = True
    40     TabOrder = 3
    41     OnClick = cmdOKClick
    42   end
    43   object cmdCancel: TButton
    44     Left = 347
    45     Top = 201
    46     Width = 72
    47     Height = 21
    48     Cancel = True
    49     Caption = 'Cancel'
    50     TabOrder = 4
    51     OnClick = cmdCancelClick
    52   end
    5311  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
    5817    Color = clBtnFace
    5918    ReadOnly = True
    60     TabOrder = 5
     19    ScrollBars = ssVertical
     20    TabOrder = 0
    6121    Caption = 'Order'
    6222  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
    6930    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
    7256  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
    101110  end
    102111end
  • cprs/branches/foia-cprs/CPRS-Chart/fRenewOutMed.pas

    r459 r460  
    55uses
    66  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;
    88
    99type
    10   TfrmRenewOutMed = class(TfrmAutoSz)
    11     lblRefills: TLabel;
    12     lblComments: TLabel;
     10  TfrmRenewOutMed = class(TForm)
     11    memOrder: TCaptionMemo;
     12    pnlButtons: TPanel;
    1313    cmdOK: TButton;
    1414    cmdCancel: TButton;
    15     memOrder: TCaptionMemo;
    16     memComments: TCaptionMemo;
     15    pnlMiddle: TPanel;
     16    cboPickup: TORComboBox;
     17    lblPickup: TLabel;
    1718    txtRefills: TCaptionEdit;
    18     lblPickup: TLabel;
    19     cboPickup: TORComboBox;
     19    lblRefills: TLabel;
    2020    procedure FormCreate(Sender: TObject);
    2121    procedure cmdOKClick(Sender: TObject);
     
    4545  try
    4646    ResizeFormToFont(TForm(frmRenewOutMed));
    47     frmRenewOutMed.memComments.SetTextBuf(PChar(Comments));
    4847    frmRenewOutMed.memOrder.SetTextBuf(PChar(AnOrder.Text));
    4948    frmRenewOutMed.txtRefills.Text := IntToStr(Refills);
     
    5453      Result := True;
    5554      Refills := StrToIntDef(frmRenewOutMed.txtRefills.Text, Refills);
    56       Comments := frmRenewOutMed.memComments.Text;
    5755      Pickup := frmRenewOutMed.cboPickup.ItemID;
    5856    end;
  • cprs/branches/foia-cprs/CPRS-Chart/fReports.dfm

    r459 r460  
    11inherited frmReports: TfrmReports
    2   Left = 215
    3   Top = 126
    4   Width = 786
    5   Height = 377
     2  Left = 456
     3  Top = 200
     4  Width = 725
     5  Height = 654
    66  HelpContext = 9000
    77  Caption = 'Reports Page'
     
    1212  TextHeight = 13
    1313  inherited shpPageBottom: TShape
    14     Top = 340
    15     Width = 778
     14    Top = 617
     15    Width = 717
    1616    Height = 10
    1717  end
    1818  inherited sptHorz: TSplitter
    1919    Left = 119
    20     Height = 340
     20    Height = 617
     21    OnMoved = sptHorzMoved
    2122  end
    2223  inherited pnlLeft: TPanel
    2324    Width = 119
    24     Height = 340
     25    Height = 617
    2526    object Splitter1: TSplitter
    2627      Left = 0
    27       Top = 91
     28      Top = 259
    2829      Width = 119
    29       Height = 10
     30      Height = 6
    3031      Cursor = crVSplit
    3132      Align = alBottom
     33      Color = clBtnFace
     34      ParentColor = False
    3235      OnCanResize = Splitter1CanResize
    3336    end
     
    3639      Top = 0
    3740      Width = 119
    38       Height = 91
     41      Height = 259
    3942      Align = alClient
    4043      BevelOuter = bvNone
     
    5760        Top = 19
    5861        Width = 119
    59         Height = 72
     62        Height = 240
    6063        Align = alClient
    6164        HideSelection = False
     
    7376    object pnlLeftBottom: TPanel
    7477      Left = 0
    75       Top = 201
     78      Top = 365
    7679      Width = 119
    77       Height = 139
     80      Height = 252
    7881      Align = alBottom
     82      Anchors = [akLeft, akTop, akRight, akBottom]
    7983      BevelOuter = bvNone
    8084      TabOrder = 1
     85      Visible = False
    8186      object lblQualifier: TOROffsetLabel
    8287        Left = 0
    8388        Top = 0
    8489        Width = 119
    85         Height = 20
     90        Height = 13
    8691        Align = alTop
    8792        HorzOffset = 3
     
    9297      object lblHeaders: TLabel
    9398        Left = 0
    94         Top = 20
     99        Top = 13
    95100        Width = 119
    96101        Height = 13
     
    102107      object lstHeaders: TORListBox
    103108        Left = 0
    104         Top = 33
    105         Width = 119
    106         Height = 106
     109        Top = 26
     110        Width = 119
     111        Height = 226
    107112        Align = alClient
    108113        ItemHeight = 13
     
    119124      object lstQualifier: TORListBox
    120125        Left = 0
    121         Top = 33
    122         Width = 119
    123         Height = 106
     126        Top = 26
     127        Width = 119
     128        Height = 226
    124129        Style = lbOwnerDrawFixed
    125130        Align = alClient
     
    135140        TabPositions = '10'
    136141      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
    137224    end
    138225    object pnlProcedures: TPanel
    139226      Left = 0
    140       Top = 101
     227      Top = 265
    141228      Width = 119
    142229      Height = 100
     
    144231      BevelOuter = bvNone
    145232      TabOrder = 2
     233      Visible = False
    146234      object lblProcedures: TOROffsetLabel
    147235        Left = 0
     
    151239        Align = alTop
    152240        Caption = 'Radiology Procedures'
     241        Color = clBtnFace
    153242        HorzOffset = 2
     243        ParentColor = False
    154244        Transparent = False
    155245        VertOffset = 2
     
    178268  inherited pnlRight: TPanel
    179269    Left = 123
    180     Width = 655
    181     Height = 340
     270    Width = 594
     271    Height = 617
    182272    object sptHorzRight: TSplitter
    183273      Left = 0
    184274      Top = 177
    185       Width = 655
     275      Width = 594
    186276      Height = 4
    187277      Cursor = crVSplit
     
    193283      Left = 0
    194284      Top = 0
    195       Width = 655
     285      Width = 594
    196286      Height = 57
    197287      Align = alTop
     
    201291        Left = 0
    202292        Top = 17
    203         Width = 655
     293        Width = 594
    204294        Height = 25
    205295        Align = alTop
     
    212302        Left = 0
    213303        Top = 0
    214         Width = 655
     304        Width = 594
    215305        Height = 17
    216306        Align = alTop
     
    222312      object TabControl1: TTabControl
    223313        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 = []
    228323        HotTrack = True
     324        ParentFont = False
     325        Style = tsButtons
     326        TabHeight = 16
    229327        TabOrder = 0
    230328        TabStop = False
     
    236334      Left = 0
    237335      Top = 181
    238       Width = 655
    239       Height = 159
     336      Width = 594
     337      Height = 436
    240338      Align = alClient
    241339      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
    242356      object Memo1: TMemo
    243357        Left = 1
    244358        Top = 1
    245         Width = 653
     359        Width = 592
    246360        Height = 30
    247361        TabStop = False
     
    259373        OnKeyUp = Memo1KeyUp
    260374      end
    261       object WebBrowser1: TWebBrowser
    262         Left = 1
    263         Top = 31
    264         Width = 653
    265         Height = 127
    266         TabStop = False
    267         Align = alClient
    268         TabOrder = 1
    269         OnDocumentComplete = WebBrowser1DocumentComplete
    270         ControlData = {
    271           4C0000007D430000200D00000000000000000000000000000000000000000000
    272           000000004C000000000000000000000001000000E0D057007335CF11AE690800
    273           2B2E126208000000000000004C0000000114020000000000C000000000000046
    274           8000000000000000000000000000000000000000000000000000000000000000
    275           00000000000000000100000000000000000000000000000000000000}
    276       end
    277375      object memText: TRichEdit
    278376        Left = 1
    279         Top = 31
    280         Width = 653
     377        Top = 308
     378        Width = 592
    281379        Height = 127
    282         Align = alClient
     380        Align = alBottom
    283381        Color = clCream
    284382        Font.Charset = ANSI_CHARSET
     
    293391        ScrollBars = ssBoth
    294392        TabOrder = 2
     393        Visible = False
    295394        WantReturns = False
    296395        WordWrap = False
     
    300399      Left = 0
    301400      Top = 57
    302       Width = 655
     401      Width = 594
    303402      Height = 120
    304403      Align = alTop
     
    308407        Left = 1
    309408        Top = 1
    310         Width = 653
     409        Width = 592
    311410        Height = 118
    312411        Hint = 'To sort, click on column headers|'
  • cprs/branches/foia-cprs/CPRS-Chart/fReports.pas

    r459 r460  
    66  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    77  fHSplit, StdCtrls, ExtCtrls, ORCtrls, ComCtrls, Menus, uConst, ORDtTmRng,
    8   OleCtrls, SHDocVw, Buttons, ClipBrd, rECS, Variants;
     8  OleCtrls, SHDocVw, Buttons, ClipBrd, rECS, Variants, StrUtils;
    99
    1010type
     
    4747    tvProcedures: TORTreeView;
    4848    lblProcTypeMsg: TOROffsetLabel;
     49    pnlViews: TORAutoPanel;
     50    chkDualViews: TCheckBox;
     51    btnChangeView: TORAlignButton;
     52    btnGraphSelections: TORAlignButton;
     53    lblDateRange: TLabel;
     54    lstDateRange: TORListBox;
     55    pnlTopViews: TPanel;
    4956    procedure lstQualifierClick(Sender: TObject);
    5057    procedure GotoTop1Click(Sender: TObject);
     
    5966    procedure TabControl1Change(Sender: TObject);
    6067    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);
    6269    procedure lstHeadersClick(Sender: TObject);
    6370    procedure Splitter1CanResize(Sender: TObject; var NewSize: Integer;
     
    99106      var AllowCollapse: Boolean);                                                     
    100107    procedure tvProceduresExpanding(Sender: TObject; Node: TTreeNode;                   
    101       var AllowExpansion: Boolean);                                                     
     108      var AllowExpansion: Boolean);
    102109    procedure tvProceduresClick(Sender: TObject);                                       
    103110    procedure tvProceduresChange(Sender: TObject; Node: TTreeNode);
    104111    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);
    106118
    107119  private
     
    109121    procedure ProcessNotifications;
    110122    procedure ShowTabControl;
    111     //procedure UpdateRemoteStatus(aSiteID, aStatus: string);
     123    procedure Graph(reportien: integer);
     124    procedure GraphPanel(active: boolean);
    112125
    113126  public
     
    145158  ulvSelectOn: boolean;             //flag turned on when multiple items in lvReports control have been selected
    146159  uListState: Integer;              //Checked state of list of Adhoc components Checked: Abbreviation, UnChecked: Name
    147   uNoRemote: boolean;
    148160  uECSReport: TECSReport;           //Event Capture Report, initiated in fFrame when Click Event Capture under Tools
    149161  UpdatingLvReports: Boolean;       //Currently updating lvReports
     
    155167
    156168uses ORFn, rCore, rReports, fFrame, uCore, uReports, fReportsPrint,
    157      fReportsAdhocComponent1, activex, mshtml, dShared;
     169     fReportsAdhocComponent1, activex, mshtml, dShared, fGraphs, rGraphs;  //*****
    158170
    159171const
     
    182194  uHTMLPatient: ANSIstring;
    183195  uRptID: String;
     196  uDirect: String;
    184197  uEmptyImageList: TImageList;
    185198  ColumnToSort: Integer;
    186199  ColumnSortForward: Boolean;
     200  GraphForm: TfrmGraphs;
     201  GraphFormActive: boolean;
    187202
    188203procedure TfrmReports.ClearPtData;
     
    200215  TabControl1.Visible := false;
    201216  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;
     229end;
     230
     231procedure TfrmReports.Graph(reportien: integer);
     232begin
     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;
     305end;
     306
     307procedure TfrmReports.GraphPanel(active: boolean);
     308var
     309  aQualifier, aStartTime, aStopTime: string;
     310begin
     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;
    202346end;
    203347
     
    249393        end;
    250394    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;
    251409  if uQualifierType = QT_DATERANGE then
    252410    begin      //      = 2
     
    272430  uUpdateStat := false;
    273431  ulvSelectOn := false;
    274   uNoRemote := false;
    275432  uListState := GetAdhocLookup();
    276433  memText.SelStart := 0;
     
    285442                  //the preferred method would be to use headers and footers
    286443                  //so this is just an interim solution.
    287   pnlLeftBottom.Visible := False;       
     444  if not GraphFormActive then
     445    pnlLeftBottom.Visible := False;
    288446  if InitPage then
    289447    begin
     
    325483                        begin
    326484                        lstQualifier.Clear;
    327                         tvProcedures.Items.Clear;             
     485                        tvProcedures.Items.Clear;
    328486                        lblProcTypeMsg.Visible := FALSE;     
    329487                        lvReports.SmallImages := uEmptyImageList;
     
    338496                        end;
    339497    CC_NOTIFICATION:  ProcessNotifications;
    340   end;
     498  end; 
    341499end;
    342500
     
    373531  uHTMLDoc := '';
    374532  WebBrowser1.Navigate('about:blank');
    375   tvProcedures.Items.Clear;             
     533  tvProcedures.Items.Clear;
    376534  lblProcTypeMsg.Visible := FALSE;     
    377535  lvReports.SmallImages := uEmptyImageList;
     
    406564        begin
    407565          if addgrandchild = true then
    408             currentNode := tvReports.Items.AddChildObject(grandParentNode,Piece(x,'^',3),MakeReportTreeObject(Pieces(x,'^',2,14)))
     566            currentNode := tvReports.Items.AddChildObject(grandParentNode,Piece(x,'^',3),MakeReportTreeObject(Pieces(x,'^',2,15)))
    409567          else
    410568            if addchild = true then
    411569              begin
    412                 currentNode := tvReports.Items.AddChildObject(parentNode,Piece(x,'^',3),MakeReportTreeObject(Pieces(x,'^',2,14)));
     570                currentNode := tvReports.Items.AddChildObject(parentNode,Piece(x,'^',3),MakeReportTreeObject(Pieces(x,'^',2,15)));
    413571                addgrandchild := true;
    414572                grandParentNode := currentNode;
     
    416574            else
    417575              begin
    418                 currentNode := tvReports.Items.AddObject(currentNode,Piece(x,'^',3),MakeReportTreeObject(Pieces(x,'^',2,14)));
     576                currentNode := tvReports.Items.AddObject(currentNode,Piece(x,'^',3),MakeReportTreeObject(Pieces(x,'^',2,15)));
    419577                parentNode := currentNode;
    420578                addchild := true;
     
    425583          begin
    426584            currentNode := tvReports.Items.AddObject(currentNode,Piece(x,'^',2),MakeReportTreeObject(x));
    427             //addchild := true;
    428585            parentNode := currentNode;
    429586          end
     
    460617  aTmpAray: TStringList;
    461618  aColCtr, aCurCol, aCurRow, aColID: integer;
    462   x,c,aSite: string;
     619  x,y,z,c,aSite: string;
    463620  ListItem: TListItem;
    464621begin
     
    466623  aErr := 0;
    467624  ListItem := nil;
    468   //RowObjects.Clear;
    469625  case uQualifierType of
    470626    QT_HSCOMPONENT:
     
    536692                                if piece(uColumns.Strings[aCurCol],'^',4) = '1' then
    537693                                  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;
    539709                              end;
    540710                            RowObjects.Add(aSite, IntToStr(aCurRow) + ':' + IntToStr(aCurCol), uColumns.Strings[aCurCol], aTmpAray);
     
    548718                      if aColID = aCurCol then
    549719                        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;
    551737                          continue;
    552738                        end;
     
    572758                    aCurCol := aColID;
    573759                    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);
    575768                    if aColCtr > 0 then
    576769                      while aColCtr < aCurCol do
     
    632825var
    633826  MoreID: String;  //Restores MaxOcc value
    634   aRemote: string;
     827  aRemote, aHDR: string;
    635828  i: integer;
    636829begin
     
    643836  MoreID := ';' + Piece(uQualifier,';',3);
    644837  aRemote :=  piece(uRemoteType,'^',1);
     838  aHDR := piece(uRemoteType,'^',7);
    645839  SetPiece(uRemoteType,'^',5,lstQualifier.ItemID);
    646840  uHSComponents.Clear;
    647841  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;
    653844  uHTMLDoc := '';
    654845  if uReportType = 'H' then
     
    675866   TRemoteSite(RemoteSites.SiteList.Items[i]).ReportClear;
    676867  uRemoteCount := 0;
    677   DisplayHeading(lstQualifier.ItemID + MoreID);
     868  if aHDR = '1' then
     869    DisplayHeading(lstQualifier.ItemID)
     870  else
     871    DisplayHeading(lstQualifier.ItemID + MoreID);
    678872  if lstQualifier.ItemID = 'ds' then
    679873    begin
     
    728922  StatusText('Retrieving ' + lblTitle.Caption + '...');
    729923  Screen.Cursor := crHourGlass;
    730   memText.Lines.Clear;
    731924  uReportInstruction := #13#10 + 'Retrieving data...';
    732925  memText.Lines.Add(uReportInstruction);
     
    738931  case uQualifierType of
    739932      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
    742941            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);
    747944              LoadListView(uLocalReportData);
    748945            end
    749946          else
    750947            begin
    751               if aRemote = '1' then
     948              if ((aRemote = '1') or (aRemote = '2')) then
    752949                ShowTabControl;
    753950              pnlRightMiddle.Visible := false;
     
    764961                end;
    765962            end;
    766           if (aRemote = '1') and (uNoRemote = false) then
    767             GoRemote(uRemoteReportData, uRptID, lstQualifier.ItemID + MoreID, uReportRPC, uHState);
    768963        end;
    769964      QT_HSWPCOMPONENT:
    770965        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;
    771975          if (length(piece(uHState,';',2)) > 0) then
    772976            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);
    777979              LoadListView(uLocalReportData);
    778980            end
    779981          else
    780982            begin
    781               if aRemote = '1' then
     983              if ((aRemote = '1') or (aRemote = '2')) then
    782984                ShowTabControl;
    783985              pnlRightMiddle.Visible := false;
    784               LoadReportText(uLocalReportData, uRptID, lstQualifier.ItemID + MoreID, uReportRPC, uHState);
    785               if uLocalReportData.Count < 1 then
     986              if not (aRemote = '2') then
    786987                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;
    797997            end;
    798998        end
     
    8001000        begin
    8011001          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
    8041004          begin
    8051005            if Pos('OR_ECS1',uRptID)>0 then
     
    9511151  RowObjects := TRowObject.Create;
    9521152  uRemoteCount := 0;
     1153  GraphFormActive := false;
    9531154end;
    9541155
     
    9691170            break;
    9701171          end;
    971       //if not Found then i := -1;
    9721172    end;
    9731173
     
    9751175
    9761176  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:
    9781178      begin
    9791179        tvReports.Selected := tvReports.Items[i];
     
    10951295  i,j,fail: integer;
    10961296  r0,aSite: String;
    1097 
     1297  aHDR, aID, aRet: String;
    10981298begin
    10991299  inherited;
     
    11111311            if piece(r0,'^',1) = '1' then
    11121312              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]);
    11131320                RemoteReports.Add(TRemoteSite(Items[i]).CurrentReportQuery,
    11141321                  TRemoteSite(Items[i]).RemoteHandle);
    1115                 GetRemoteData(TRemoteSite(Items[i]).Data,
    1116                   TRemoteSite(Items[i]).RemoteHandle,Items[i]);
    11171322                TRemoteSite(Items[i]).RemoteHandle := '';
    11181323                TabControl1.OnChange(nil);
    1119                 if (length(piece(uHState,';',2)) > 0) then //and (chkText.Checked = false) then
     1324                if (length(piece(uHState,';',2)) > 0) then
    11201325                  begin
    11211326                    uRemoteReportData.Clear;
    11221327                    QuickCopy(TRemoteSite(Items[i]).Data,uRemoteReportData);
    11231328                    fail := 0;
    1124                     //LoadListView(uRemoteReportData);
    11251329                    if uRemoteReportData.Count > 0 then
    11261330                      begin
     
    11431347              begin
    11441348                uRemoteCount := uRemoteCount + 1;
    1145                 if uRemoteCount > (90 * Count) then
     1349                if uRemoteCount > 90 then
    11461350                  begin
    11471351                    TRemoteSite(Items[i]).RemoteHandle := '';
     
    12791483end;
    12801484
    1281 procedure TfrmReports.GoRemote(Dest: TStringList; AItem: string; AQualifier, ARpc: string; AHSTag: string);
     1485procedure TfrmReports.GoRemote(Dest: TStringList; AItem: string; AQualifier, ARpc: string; AHSTag: string; AHDR: string);
    12821486var
    12831487  i, j: integer;
    12841488  LocalHandle, Query, Report: string;
    12851489  HSType, DaysBack, ExamID, MaxOcc: string;
    1286   Alpha, Omega: double;
     1490  Alpha, Omega, Trans: double;
    12871491begin
    12881492  HSType := '';
     
    12911495  Alpha := 0;
    12921496  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;
    12931522  if CharAt(AQualifier, 1) = 'T' then
    12941523    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');
    12951527      Alpha := StrToFMDateTime(Piece(AQualifier,';',1));
    12961528      Omega := StrToFMDateTime(Piece(AQualifier,';',2));
     1529      if Alpha > Omega then
     1530        begin
     1531          Trans := Omega;
     1532          Omega := Alpha;
     1533          Alpha := Trans;
     1534        end;
    12971535      MaxOcc := Piece(AQualifier,';',3);
    12981536      SetPiece(AHSTag,';',4,MaxOcc);
    12991537    end;
    1300   if CharAt(AQualifier, 1) = 'd' then DaysBack := Copy(AQualifier, 2, Length(AQualifier));
    13011538  if CharAt(AQualifier, 1) = 'h' then HSType   := Copy(AQualifier, 2, Length(AQualifier));
    13021539  if CharAt(AQualifier, 1) = 'i' then ExamID   := Copy(AQualifier, 2, Length(AQualifier));
    13031540  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;
    13041547    if TRemoteSite(Items[i]).Selected then
    13051548      begin
    13061549        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;
    13071564        TRemoteSite(Items[i]).CurrentReportQuery := 'Report' + Patient.DFN + ';'
    13081565          + 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;
    13111568        LocalHandle := '';
    13121569        Query := TRemoteSite(Items[i]).CurrentReportQuery;
     
    13331590        else
    13341591          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
    13371593              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('');
    13401614              end
    13411615            else
    13421616              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;
    13491631              end;
    13501632          end;
    13511633      end;
     1634    end;
    13521635end;
    13531636
     
    13771660  uEmptyImageList.Free;
    13781661  uECSReport.Free;
     1662  if GraphForm <> nil then GraphForm.Release;
    13791663end;
    13801664
     
    14711755  aHeading, aReportType, aRPC, aQualifier, aStartTime, aStopTime, aMax, aRptCode, aRemote, aCategory, aSortOrder, aDaysBack, x: string;
    14721756  aIFN: integer;
    1473   aID, aHSTag, aRadParam, aColChange: string;
     1757  aID, aHSTag, aRadParam, aColChange, aDirect, aHDR, aQualifierID: string;
    14741758  CurrentParentNode, CurrentNode: TTreeNode;
    14751759begin
     
    14881772  aCategory   :=  PReportTreeObject(tvReports.Selected.Data)^.Category;
    14891773  aSortOrder  :=  PReportTreeObject(tvReports.Selected.Data)^.SortOrder;
    1490   aDaysBack  :=  PReportTreeObject(tvReports.Selected.Data)^.MaxDaysBack;
     1774  aDaysBack   :=  PReportTreeObject(tvReports.Selected.Data)^.MaxDaysBack;
    14911775  aIFN        :=  StrToIntDef(PReportTreeObject(tvReports.Selected.Data)^.IFN,0);
     1776  aDirect     :=  PReportTreeObject(tvReports.Selected.Data)^.Direct;
     1777  aHDR        :=  PReportTreeObject(tvReports.Selected.Data)^.HDR;
    14921778  aStartTime  :=  Piece(aQualifier,';',1);
    14931779  aStopTime   :=  Piece(aQualifier,';',2);
    14941780  aMax        :=  Piece(aQualifier,';',3);
    14951781  aRptCode    :=  Piece(aQualifier,';',4);
     1782  aQualifierID:= '';
    14961783  if length(uColChange) > 0 then
    14971784    begin
     
    15141801  uReportRPC := aRPC;
    15151802  uRptID := aID;
     1803  uDirect := aDirect;
    15161804  uReportType := aReportType;
    15171805  uQualifier := aQualifier;
    15181806  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
    15251809  RedrawSuspend(tvReports.Handle);
    15261810  RedrawSuspend(memText.Handle);
     
    15301814  TabControl1.TabStop := false;
    15311815  sptHorzRight.Visible := false;
    1532   pnlRightTop.Height := lblTitle.Height;
    1533   lblProcTypeMsg.Visible := FALSE;         
     1816  lblProcTypeMsg.Visible := FALSE;
    15341817  pnlRightMiddle.Visible := false;
    1535   pnlProcedures.Visible := FALSE;         
    1536   if aRemote = '1' then
     1818  pnlProcedures.Visible := FALSE;
     1819  if (aRemote = '1') or (aRemote = '2') then
    15371820    if not(uReportType = 'V') then
    15381821      if TabControl1.Tabs.Count > 1 then
     
    15431826        end;
    15441827  StatusText('');
    1545   //**
    15461828  uHTMLDoc := '';
    15471829  WebBrowser1.Navigate('about:blank');
    1548   //**
    15491830  memText.Lines.Clear;
    15501831  memText.Parent := pnlRightBottom;
     
    15581839  lvReports.Columns.Clear;
    15591840  uHSComponents.Clear;
     1841  DisplayHeading('');
    15601842  if uReportType = 'H' then
    15611843    begin
    15621844      pnlRightMiddle.Visible := false;
    1563       //lvReports.Visible := false;
    15641845      pnlRightBottom.Visible := true;
    15651846      WebBrowser1.Visible := true;
     
    15771858            RedrawSuspend(lvReports.Handle);
    15781859            Items.BeginUpdate;
    1579             //Align := alTop;
    15801860            ViewStyle := vsReport;
    15811861            ColumnHeaders(uColumns, IntToStr(aIFN));
     
    15981878                  else
    15991879                    uNewColumn.Width := ColumnHeaderWidth;  //ColumnTextWidth for width of text
    1600                 if (i = 0) and ((aRemote <> '1') or (TabControl1.Tabs.Count < 2)) then
     1880                if (i = 0) and (((aRemote <> '2') and (aRemote <> '1')) or ((TabControl1.Tabs.Count < 2) and (not (aHDR = '1')))) then
    16011881                  uNewColumn.Width := 0;
    16021882              end;
     
    16411921    end;
    16421922  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
    16431932  if aReportType = 'M' then
    16441933    begin
     
    16521941        QT_OTHER:
    16531942          begin      //      = 0
     1943            memText.Lines.Clear;
    16541944            If copy(aRptCode,1,2) = 'h0' then  //HS Adhoc
    16551945              begin
     
    16661956                    TRemoteSite(RemoteSites.SiteList[j]).LabClear;
    16671957                  end;
    1668                 memText.Clear;
    16691958                uHTMLDoc := '';
    16701959                if WebBrowser1.Visible = true then WebBrowser1.Navigate('about:blank');
     
    16921981                splitter1.Visible := false;
    16931982                StatusText('Retrieving ' + tvReports.Selected.Text + '...');
    1694                 GoRemote(uRemoteReportData, aID, aRptCode, aRPC, uHState);
     1983                GoRemote(uRemoteReportData, aID, aRptCode, aRPC, uHState, aHDR);
    16951984                uReportInstruction := #13#10 + 'Retrieving data...';
    16961985                TabControl1.OnChange(nil);
     
    17142003                begin
    17152004                  lstQualifier.ItemIndex := lstQualifier.Items.Add(aStartTime + ';' + aStopTime + '^' + aStartTime + ' to ' + aStopTime);
    1716                   uNoRemote := true;
     2005                  lvReports.SmallImages := uEmptyImageList;
     2006                  lvReports.Items.Clear;
    17172007                  lstQualifierClick(self);
    1718                   uNoRemote := false;
    17192008                end
    17202009              else
     
    17382027                ViewStyle := vsReport;
    17392028                SmallImages := dmodShared.imgImages;
    1740                 CurrentParentNode := nil;       
    1741                 CurrentNode := nil;             
     2029                CurrentParentNode := nil;
     2030                CurrentNode := nil;
    17422031                for i := 0 to uLocalReportData.Count - 1 do
    17432032                  begin
     
    17542043                            ListItem.SubItemImages[1] := IMG_NO_IMAGES;
    17552044                      end;
    1756                     LoadProceduresTreeView(uLocalReportData[i], CurrentParentNode, CurrentNode);         
     2045                    LoadProceduresTreeView(uLocalReportData[i], CurrentParentNode, CurrentNode);
    17572046                    if CurrentNode <> nil then
    17582047                       PProcTreeObj(CurrentNode.Data)^.Associate := lvReports.Items.IndexOf(ListItem);
    17592048                  end;
    1760                 if tvProcedures.Items.Count > 0 then                           
     2049                if tvProcedures.Items.Count > 0 then
    17612050                   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;
    17642053                pnlLeftBottom.Visible := FALSE;
    17652054                pnlProcedures.Visible := TRUE;
     
    18242113            StatusText('Retrieving ' + tvReports.Selected.Text + '...');
    18252114            uReportInstruction := #13#10 + 'Retrieving data...';
     2115            lvReports.SmallImages := uEmptyImageList;
     2116            lvReports.Items.Clear;
     2117            RowObjects.Clear;
     2118            memText.Lines.Clear;
    18262119            if (length(piece(aHSTag,';',2)) > 0) then
    18272120              begin
    18282121                if aCategory <> '0' then
    18292122                  begin
    1830 
    18312123                    ListReportDateRanges(lstQualifier.Items);
    1832                     if lstQualifier.ItemID = '' then
     2124                    aQualifierID := lstQualifier.ItemID;
     2125                    if aQualifierID = '' then
    18332126                      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);
    18362131                        lstQualifierClick(self);
    1837                         uNoRemote := false;
    18382132                      end
    18392133                    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;
    18422141                    lblQualifier.Caption := 'Date Range';
    18432142                    pnlLeftBottom.Visible := true;
     
    18462145                else
    18472146                  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;
    18532153                  end;
    18542154              end
    18552155            else
    18562156              begin
    1857                 if aRemote = '1' then
     2157                if (aRemote = '1') or (aRemote = '2') then
    18582158                  if TabControl1.Tabs.Count > 1 then
    18592159                    ShowTabControl;
    18602160                sptHorzRight.Visible := false;
    18612161                pnlRightMiddle.Visible := false;
     2162                GoRemote(uRemoteReportData, aID, aQualifier, aRPC, uHState, aHDR);
    18622163                LoadReportText(uLocalReportData, aID, aQualifier, aRPC, uHState);
    18632164                if uLocalReportData.Count < 1 then
     
    18712172                if aCategory <> '0' then
    18722173                  begin
    1873 
    18742174                    ListReportDateRanges(lstQualifier.Items);
    18752175                    if lstQualifier.ItemID = '' then
    18762176                      begin
    18772177                        lstQualifier.ItemIndex := lstQualifier.Items.Add(aStartTime + ';' + aStopTime + '^' + aStartTime + ' to ' + aStopTime);
    1878                         uNoRemote := true;
    18792178                        lstQualifierClick(self);
    1880                         uNoRemote := false;
    18812179                      end
    18822180                    else
     
    18892187                else
    18902188                  begin
    1891                     memText.Lines.Clear;
    1892                     //memText.Lines.Assign(uLocalReportData);
    18932189                    if uLocalReportData.Count < 1 then
    18942190                      begin
     
    19042200              end;
    19052201            StatusText('');
    1906             GoRemote(uRemoteReportData, aID, aQualifier, aRPC, uHState);
    19072202          end;
    19082203        QT_HSWPCOMPONENT:
     
    19142209            uReportInstruction := #13#10 + 'Retrieving data...';
    19152210            TabControl1.OnChange(nil);
     2211            RowObjects.Clear;
     2212            memText.Lines.Clear;
     2213            lvReports.SmallImages := uEmptyImageList;
     2214            lvReports.Items.Clear;
    19162215            if (length(piece(aHSTag,';',2)) > 0) then
    19172216              begin
    19182217                if aCategory <> '0' then
    19192218                  begin
    1920 
    19212219                    ListReportDateRanges(lstQualifier.Items);
    1922                     if lstQualifier.ItemID = '' then
     2220                    aQualifierID := lstQualifier.ItemID;
     2221                    if aQualifierID = '' then
    19232222                      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);
    19262227                        lstQualifierClick(self);
    1927                         uNoRemote := false;
    19282228                      end
    19292229                    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;
    19322237                    lblQualifier.Caption := 'Date Range';
    19332238                    pnlLeftBottom.Visible := true;
     
    19362241                else
    19372242                  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;
    19432249                  end;
    19442250              end
    19452251            else
    19462252              begin
    1947                 if aRemote = '1' then
     2253                if (aRemote = '1') or (aRemote = '2') then
    19482254                  ShowTabControl;
    19492255                sptHorzRight.Visible := false;
    19502256                pnlRightMiddle.Visible := false;
     2257                GoRemote(uRemoteReportData, aID, aQualifier, aRPC, uHState, aHDR);
    19512258                LoadReportText(uLocalReportData, aID, aQualifier, aRPC, uHState);
    19522259                if uLocalReportData.Count < 1 then
     
    19652272                      begin
    19662273                        lstQualifier.ItemIndex := lstQualifier.Items.Add(aStartTime + ';' + aStopTime + '^' + aStartTime + ' to ' + aStopTime);
    1967                         uNoRemote := true;
    19682274                        lstQualifierClick(self);
    1969                         uNoRemote := false;
    19702275                      end
    19712276                    else
     
    19782283                else
    19792284                  begin
    1980                     memText.Lines.Clear;
    1981                     //memText.Lines.Assign(uLocalReportData);
    1982                     RowObjects.Clear;
    19832285                    LoadListView(uLocalReportData);
    19842286                  end;
    19852287              end;
    19862288            StatusText('');
    1987             GoRemote(uRemoteReportData, aID, aQualifier, aRPC, uHState);
    19882289          end;
    19892290        QT_PROCEDURES:
     
    20562357            splitter1.Visible := false;
    20572358            StatusText('Retrieving ' + tvReports.Selected.Text + '...');
    2058             GoRemote(uRemoteReportData, aID, aRptCode, aRPC, uHState);
     2359            GoRemote(uRemoteReportData, aID, aRptCode, aRPC, uHState, aHDR);
    20592360            uReportInstruction := #13#10 + 'Retrieving data...';
    20602361            TabControl1.OnChange(nil);
     
    20742375      end;
    20752376    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
    20812383  SendMessage(tvReports.Handle, WM_HSCROLL, SB_THUMBTRACK, 0);
    20822384  RedrawActivate(tvReports.Handle);
     
    20862388      WebBrowser1.BringToFront;
    20872389    end
    2088   else
     2390  else if not GraphFormActive then
    20892391    begin
    20902392      memText.Visible := true;
     
    20922394      memText.BringToFront;
    20932395      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;
    20942407    end;
    20952408  Screen.Cursor := crDefault;
     
    27123025end;
    27133026
     3027procedure TfrmReports.chkDualViewsClick(Sender: TObject);
     3028begin
     3029  inherited;
     3030  if (GraphForm <> nil) and GraphFormActive then
     3031    GraphForm.chkDualViews.Checked := chkDualViews.Checked;
     3032end;
     3033
     3034procedure TfrmReports.btnChangeViewClick(Sender: TObject);
     3035begin
     3036  inherited;
     3037  if (GraphForm <> nil) and GraphFormActive then
     3038  begin
     3039    GraphForm.btnChangeSettingsClick(GraphForm);
     3040    chkDualViews.Checked := GraphForm.chkDualViews.Checked;
     3041  end;
     3042end;
     3043
     3044procedure TfrmReports.btnGraphSelectionsClick(Sender: TObject);
     3045begin
     3046  inherited;
     3047  if (GraphForm <> nil) and GraphFormActive then
     3048  begin
     3049    GraphForm.btnGraphSelectionsClick(GraphForm);
     3050    chkDualViews.Checked := GraphForm.chkDualViews.Checked;
     3051  end;
     3052end;
     3053
     3054procedure TfrmReports.lstDateRangeClick(Sender: TObject);
     3055begin
     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;
     3065end;
     3066
     3067procedure TfrmReports.sptHorzMoved(Sender: TObject);
     3068begin
     3069  inherited;
     3070  pnlTopViews.Height := 80;
     3071end;
     3072
    27143073end.
  • cprs/branches/foia-cprs/CPRS-Chart/fReportsAdhocSubItem1.dfm

    r459 r460  
    3939      Height = 24
    4040      BevelOuter = bvNone
    41       Caption = 'Display selected file entry earlier'
    4241      TabOrder = 4
    4342      TabStop = True
     
    7473      Height = 24
    7574      BevelOuter = bvNone
    76       Caption = 'Display selected file entry earlier'
    7775      TabOrder = 5
    7876      TabStop = True
     
    119117      ListItemsOnly = False
    120118      LongList = True
     119      LookupPiece = 0
    121120      MaxLength = 0
    122121      Pieces = '2'
     
    127126      OnKeyUp = ORComboBox2KeyUp
    128127      OnNeedData = ORComboBox2NeedData
     128      CharsNeedMatch = 1
    129129    end
    130130    object ORListBox1: TORListBox
  • cprs/branches/foia-cprs/CPRS-Chart/fReview.dfm

    r459 r460  
    11object frmReview: TfrmReview
    2   Left = 212
    3   Top = 139
     2  Left = 358
     3  Top = 136
    44  AutoScroll = False
    55  BorderIcons = [biMaximize]
    66  Caption = 'Review / Sign Changes'
    7   ClientHeight = 501
     7  ClientHeight = 497
    88  ClientWidth = 602
    99  Color = clBtnFace
     
    2626  DesignSize = (
    2727    602
    28     501)
     28    497)
    2929  PixelsPerInch = 96
    3030  TextHeight = 13
     
    3737    Visible = False
    3838  end
    39   object lblSig: TStaticText
    40     Left = 8
    41     Top = 136
    42     Width = 205
    43     Height = 17
    44     Caption = 'Signature will be Applied to Checked Items'
    45     TabOrder = 5
    46     TabStop = True
    47   end
    4839  object pnlSignature: TPanel
    4940    Left = 8
    50     Top = 427
     41    Top = 423
    5142    Width = 373
    5243    Height = 65
     
    7465  object pnlOrderAction: TPanel
    7566    Left = 8
    76     Top = 427
     67    Top = 423
    7768    Width = 373
    7869    Height = 65
     
    157148  object cmdOK: TButton
    158149    Left = 442
    159     Top = 475
     150    Top = 471
    160151    Width = 72
    161152    Height = 21
     
    168159  object cmdCancel: TButton
    169160    Left = 522
    170     Top = 475
     161    Top = 471
    171162    Width = 72
    172163    Height = 21
     
    181172    Top = 154
    182173    Width = 587
    183     Height = 268
     174    Height = 264
    184175    OnClickCheck = lstReviewClickCheck
    185176    Anchors = [akLeft, akTop, akRight, akBottom]
     
    204195    Height = 129
    205196    Align = alTop
     197    AutoScroll = False
     198    AutoSize = True
    206199    ParentShowHint = False
    207200    ShowHint = True
     
    209202    Visible = False
    210203    inherited pnlRight: TPanel
    211       Left = 353
     204      Left = 392
    212205      Height = 129
    213206      inherited lblCaption: TStaticText
     
    289282    end
    290283    inherited pnlSC: TPanel
    291       Width = 353
     284      Width = 392
    292285      Height = 129
    293286      inherited lblSCDisplay: TLabel
    294         Width = 353
     287        Width = 392
    295288      end
    296289      inherited memSCDisplay: TCaptionMemo
    297         Width = 353
     290        Width = 392
    298291        Height = 112
    299292      end
    300293    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
    301303  end
    302304  object gbxDxLookup: TGroupBox
     
    325327    object Copy1: TMenuItem
    326328      Caption = '&Copy'
    327       Enabled = False
    328329      ShortCut = 16451
    329330      OnClick = Copy1Click
     
    337338    object Diagnosis1: TMenuItem
    338339      Caption = '&Diagnosis...'
    339       Enabled = False
    340340      ShortCut = 32836
    341341      OnClick = buDiagnosisClick
  • cprs/branches/foia-cprs/CPRS-Chart/fReview.pas

    r459 r460  
    9797    procedure SetItemTextToState;
    9898    procedure FormatListForScreenReader;
     99
    99100  public
    100101    procedure SetCheckBoxStatus(thisOrderID: string);
     
    136137uses ORFn, rCore, fNotes, fConsults, fOrders, rOrders, Hash, fDCSumm, fOCSession, uOrders,
    137138     fSignItem, fOrdersPrint, fLkUpLocation, fFrame, uSignItems, fSurgery,
    138      fBALocalDiagnoses, UBAConst, UBAMessages, fOrdersSign;
     139     fBALocalDiagnoses, UBAConst, UBAMessages, fOrdersSign, fClinicWardMeds;
    139140
    140141const
     
    293294
    294295    end;
    295     // if Result then Changes.Clear;  possibly clear changes here ??
     296
    296297  finally
    297298   Changes.OnRemove := nil;     {**RV**}
     299   frmReview.Release;
    298300  end;
    299301end;
     
    340342  if  BILLING_AWARE then
    341343  begin
    342     UBAGlobals.ChangeItemOrderNum := Copy(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
    343345     // HDS00005025
    344346
     
    836838  TC_SAVERR  = 'Error Saving Order';
    837839var
    838   i, idx, AType, theSts: Integer;
     840  i, idx, AType, PrintLoc, theSts: Integer;
    839841  SigSts, RelSts, Nature: Char;
    840842  ESCode, AnID, AnErrMsg: string;
     
    842844  OrderList: TStringList;
    843845  SaveCoPay: boolean;
    844   DigSigErr, DigStoreErr: Boolean;
     846  DigSigErr, DigStoreErr, CryptoChecked: Boolean;
    845847  SigData, SigUser, SigDrugSch, SigDEA: string;
    846848  cSignature, cHashData, cCrlUrl, cErr: string;
     
    884886  ESCode := '';
    885887  SaveCoPay := FALSE;
     888  PrintLoc := 0;
    886889  if BILLING_AWARE then
    887890  begin
     
    908911    OrderList := TStringList.Create;
    909912    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;
    925914    try
    926915      Nature := NO_PROVIDER;
     
    993982              OrderList.Add(ChangeItem.ID + U + SS_ONCHART + U + RS_RELEASE + U + NO_WRITTEN);
    994983
    995 
    996984          end; {with lstReview}
    997985        end; {OR_NOKEY, OR_CLERK, OR_NURSE, OR_STUDENT}
     
    1011999                               SigSts := SS_ESIGNED;
    10121000                               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;
    10131017                               if (DigSigErr = false) and (OrderRequiresDigitalSignature(ChangeItem.ID))
    10141018                                 and (SigItems.OK2SaveSettings) then
     
    11221126             else
    11231127             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);
    11251132                Exit;
    11261133             end
     
    11371144            if (cmdOk.Caption = 'Sign') then
    11381145              begin
    1139                 if Not BADxEntered then
     1146                if Not UBACore.BADxEntered then
    11401147                begin
    1141                    SaveCoPay := FALSE;
    11421148                   InfoBox(TX_NO_DX, TC_NO_DX, MB_OK);
    11431149                   Exit;
     
    11561162        if OrderList.Count > 0 then
    11571163        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       
    11581179          if SaveCoPay then
    11591180            SigItems.SaveSettings; // Save CoPay FIRST
    11601181          SendOrders(OrderList, ESCode);   {*KCM*}
    1161         end;
     1182
    11621183        with OrderList do for i := 0 to Count - 1 do
    11631184        begin
     
    11831204            if theSts = 10 then  OrderList.Delete(idx);  //signed delayed order should not be printed.
    11841205          end;
    1185           PrintOrdersOnSignRelease(OrderList, Nature);
     1206          PrintOrdersOnSignRelease(OrderList, Nature, PrintLoc);
    11861207        end;
    11871208        StatusText('');
     
    13231344       if frmFrame.TimedOut then Exit;
    13241345        //Billing Awareness 'flyover' hint includes Dx code(s) when Dx code(s) have been assigned to an order
    1325           tempRec := TBADxRecord.Create;
    13261346
    13271347          if Assigned(frmReview) then
     
    14021422  UBAGlobals.PLFactorsIndexes.Clear;
    14031423
    1404   numSelected := 0;
    14051424  match := false;
    14061425  allBlank := false;
     
    15501569              thisOrderList.Add(thisChangeItem.ID);
    15511570              // Returns True if All selected orders are N/A, Order selected are NON CIDC or DC'd
    1552               if IsAllOrdersNA(thisOrderList) then
     1571              if uBACore.IsAllOrdersNA(thisOrderList) then
    15531572                 begin
    15541573                 Diagnosis1.Enabled := false;
     
    17121731        end;
    17131732   end;
    1714 
    1715   //CopyActive := true; //CQ6225
    1716   //Paste1.Enabled := true; //CQ6225 
    1717 
    17181733end;
    17191734
     
    17371752          if (frmReview.lstReview.Selected[i]) then
    17381753            begin
    1739             thisChangeItem := TChangeItem.Create;
    1740             thisChangeItem := nil;
    17411754            thisChangeItem := TChangeItem(lstReview.Items.Objects[i]);
    17421755
     
    17561769
    17571770                  //***************************************************************
    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
    17611773                    ShowMessage(BA_NA_PASTE_DISALLOWED);
    17621774                    fReview.targetOrderID := '';
     
    17681780                  with newRec do
    17691781                    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;
    17751787                    end;
    17761788
     
    17961808
    17971809  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
    18071811end;
    18081812
     
    18401844begin
    18411845  howMany := 0;
    1842   thisItem := TChangeItem.Create;
    1843  
     1846
    18441847  for i := 0 to lstReview.Items.Count-1 do
    18451848     begin
     
    19581961     FRVTFHintWindowActive := False;
    19591962  end;
    1960    x := 0;
    1961    y := 0;
    19621963
    19631964   FRVTFHintWindow := THintWindow.Create(frmReview); //(frmReview);
     
    20332034  Y: Integer);
    20342035begin
    2035   IF BILLING_AWARE then
     2036//  IF BILLING_AWARE then
    20362037    if FRVTFHintWindowActive then
    20372038    begin
     
    20432044procedure TfrmReview.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    20442045begin
    2045 if BILLING_AWARE then
    2046 begin
    20472046  if FRVTFHintWindowActive then
    20482047  begin
     
    20512050     Application.ProcessMessages;
    20522051  end;
    2053   end;
    20542052end;
    20552053
     
    20612059        begin
    20622060        //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;
    20702068        //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;
    20832081        end;
    20842082     end
     
    20882086        begin
    20892087        //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 captions
    2098         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;
    21102108        end;
    21112109     end;
    21122110end;
    21132111
    2114 // determines if BA switch is on, user is provider and has orelse key
    2115 // is true, BA data is not mandatory.
    21162112procedure TfrmReview.FormClose(Sender: TObject; var Action: TCloseAction);
    21172113begin
    2118  if BILLING_AWARE then
    2119  begin
     2114
    21202115    if FRVTFHintWindowActive then
    21212116    begin
     
    21252120      with fraCopay do
    21262121        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;
    21342129        end;
    2135     end;
    21362130 end;
    21372131
     
    21642158  i : integer;
    21652159begin
    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
    21702161  if fReview.frmReview.lstReview.Count < 1 then Exit;
    21712162  for i := 0 to fReview.frmReview.lstReview.Count-1 do
     
    21802171  if fReview.frmReview.lstReview.ItemIndex >= 0 then
    21812172    fReview.frmReview.lstReview.Selected[fReview.frmReview.lstReview.ItemIndex] := True;
    2182  //   end;
    21832173end;
    21842174
     
    21922182procedure TfrmReview.FormatListForScreenReader;
    21932183var
    2194   ListStateOn : boolean;
     2184  ListStateOn : longbool;
     2185  Success: longbool;
    21952186begin
    21962187  //Determine if a screen reader is currently being used.
    2197   SystemParametersInfo(SPI_GETSCREENREADER, 0, @ListStateOn,0);
    2198   if ListStateOn then
     2188  Success := SystemParametersInfo(SPI_GETSCREENREADER, 0, @ListStateOn,0);
     2189  if Success and ListStateOn then
    21992190    SetItemTextToState;
    22002191end;
  • cprs/branches/foia-cprs/CPRS-Chart/fRptBox.dfm

    r459 r460  
    11object frmReportBox: TfrmReportBox
    2   Left = 351
    3   Top = 217
    4   Width = 392
    5   Height = 357
     2  Left = 512
     3  Top = 214
    64  Anchors = []
     5  AutoScroll = False
    76  BorderIcons = [biSystemMenu]
    87  Caption = 'frmReportBox'
     8  ClientHeight = 321
     9  ClientWidth = 350
    910  Color = clBtnFace
    1011  Font.Charset = ANSI_CHARSET
     
    3536    Left = 0
    3637    Top = 0
    37     Width = 384
    38     Height = 309
     38    Width = 350
     39    Height = 300
    3940    Align = alClient
    40     Anchors = []
    4141    Color = clCream
    4242    Font.Charset = ANSI_CHARSET
     
    5656  object pnlButton: TPanel
    5757    Left = 0
    58     Top = 309
    59     Width = 384
     58    Top = 300
     59    Width = 350
    6060    Height = 21
    6161    Align = alBottom
     
    6565    TabOrder = 1
    6666    DesignSize = (
    67       384
     67      350
    6868      21)
    6969    object cmdPrint: TButton
    70       Left = 222
     70      Left = 191
    7171      Top = 0
    7272      Width = 75
     
    7878    end
    7979    object cmdClose: TButton
    80       Left = 302
     80      Left = 274
    8181      Top = 0
    8282      Width = 75
     
    9191  end
    9292  object dlgPrintReport: TPrintDialog
    93     Left = 142
    94     Top = 49
     93    Left = 318
     94    Top = 41
    9595  end
    9696end
  • cprs/branches/foia-cprs/CPRS-Chart/fRptBox.pas

    r459 r460  
    2929
    3030uses
    31   uCore, rCore, rReports, Printers;
     31  uCore, rCore, rReports, Printers, rMisc;
    3232
    3333{$R *.DFM}
     
    7979      BoundsRect := Rect;
    8080      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
    8189      SetLength(BtnLeft, k);
    8290      for j := 0 to k - 1 do
  • cprs/branches/foia-cprs/CPRS-Chart/fSurgery.dfm

    r459 r460  
    11inherited frmSurgery: TfrmSurgery
    2   Left = 244
    3   Top = 179
     2  Left = 521
     3  Top = 221
    44  Width = 720
    55  Height = 409
     
    423423        end
    424424      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
    425475      object Z3: TMenuItem
    426476        Caption = '-'
  • cprs/branches/foia-cprs/CPRS-Chart/fSurgery.pas

    r459 r460  
    131131    popNoteMemoInsTemplate: TMenuItem;
    132132    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;
    133143    procedure mnuChartTabClick(Sender: TObject);
    134144    procedure pnlRightResize(Sender: TObject);
     
    196206    procedure tvSurgeryAddition(Sender: TObject; Node: TTreeNode);
    197207    procedure tvSurgeryDeletion(Sender: TObject; Node: TTreeNode);
     208    procedure ViewInfo(Sender: TObject);
     209    procedure mnuViewInformationClick(Sender: TObject);
    198210  private
    199211    FEditingIndex: Integer;                      // index of note being currently edited
     
    212224    FDeleted: boolean;
    213225    procedure ClearEditControls;
    214     procedure DoAutoSave;
     226    procedure DoAutoSave(Suppress: integer = 1);
    215227    function GetTitleText(AnIndex: Integer): string;
    216228    procedure InsertAddendum;
     
    832844    begin
    833845      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;
    835847    end;
    836848  end;
     
    13711383end;
    13721384
    1373 procedure TfrmSurgery.DoAutoSave;
     1385procedure TfrmSurgery.DoAutoSave(Suppress: integer = 1);
    13741386var
    13751387  ErrMsg: string;
     
    13811393    timAutoSave.Enabled := False;
    13821394    try
    1383       SetText(ErrMsg, memNewNote.Lines, lstNotes.GetIEN(EditingIndex),1);
     1395      SetText(ErrMsg, memNewNote.Lines, lstNotes.GetIEN(EditingIndex), Suppress);
    13841396    finally
    13851397      timAutoSave.Enabled := True;
     
    17551767procedure TfrmSurgery.SaveSignItem(const ItemID, ESCode: string);
    17561768{ saves and optionally signs a progress note or addendum }
     1769const
     1770  SIG_COSIGN = 'COSIGNATURE';
     1771  SIG_SIGN   = 'SIGNATURE';
    17571772var
    17581773  AnIndex, IEN, i: Integer;
    17591774  Saved, ContinueSign: Boolean;  {*RAB* 8/26/99}
    1760   SignSts: TActionRec;
     1775  ActionSts, SignSts: TActionRec;
    17611776  APCEObject: TPCEData;
    17621777  OK: boolean;
    1763 
     1778  ActionType, SignTitle: string;
    17641779begin
    17651780  AnIndex := -1;
     
    17861801  if Length(ESCode) > 0 then
    17871802  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
    17891819      begin
    17901820        InfoBox(TX_EMPTY_NOTE1, TC_EMPTY_NOTE, MB_OK or MB_ICONERROR);
     
    19291959begin
    19301960  inherited;
    1931   DoAutoSave;
     1961  DoAutoSave(0);
    19321962  timAutoSave.Enabled := False;
    19331963  try
    19341964    SpellCheckForControl(memNewNote);
    19351965  finally
     1966    FChanged := True;
     1967    DoAutoSave(0);
    19361968    timAutoSave.Enabled := True;
    19371969  end;
     
    19411973begin
    19421974  inherited;
    1943   DoAutoSave;
     1975  DoAutoSave(0);
    19441976  timAutoSave.Enabled := False;
    19451977  try
    19461978    GrammarCheckForControl(memNewNote);
    19471979  finally
     1980    FChanged := True;
     1981    DoAutoSave(0);
    19481982    timAutoSave.Enabled := True;
    19491983  end;
     
    20192053  SigAction: integer;
    20202054  SavedDocID: string;
     2055  ARefDate: TFMDateTime;
    20212056begin
    20222057  inherited;
     
    20512086
    20522087  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);
    20542090  with SignerList do
    20552091    begin
     
    26442680end;
    26452681
     2682procedure TfrmSurgery.ViewInfo(Sender: TObject);
     2683begin
     2684  inherited;
     2685  frmFrame.ViewInfo(Sender);
     2686end;
     2687
     2688procedure TfrmSurgery.mnuViewInformationClick(Sender: TObject);
     2689begin
     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;
     2700end;
     2701
    26462702initialization
    26472703  uPCEEdit := TPCEData.Create;
  • cprs/branches/foia-cprs/CPRS-Chart/fVitals.pas

    r459 r460  
    3737  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    3838  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*}
    4043
    4144type
     
    114117  end;
    115118
     119
    116120var
    117121  frmVitals: TfrmVitals;
     
    120124
    121125procedure SelectVital(FontSize:integer; idx: integer);
    122 procedure SelectVitals(FontSize: Integer);
     126procedure SelectVitals(VitalType: String);
    123127function VitalsGrid(const patient: string; date1, date2: TFMDateTime; restrictdates: integer; tests: TStrings): TStrings;  //*DFN*
    124128function VitalsMemo(const patient: string; date1, date2: TFMDateTime; tests: TStrings): TStrings;  //*DFN*
     
    127131
    128132uses fCover, uCore, rCore, fVit, fFrame, fEncnt, fVisit, fRptBox, rReports,
    129   uAccessibleStringGrid;
     133  uAccessibleStringGrid, uInit;
    130134
    131135const
     
    157161end;
    158162
    159 
     163function getVitalsStartDate : String;
     164begin
     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));
     170end;
     171
     172procedure SelectVitals(VitalType: String);
     173var
     174  VLPtVitals : TGMV_VitalsViewForm;
     175  GMV_FName,
     176  GMV_LibName: String;
     177begin
     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
     209end;
     210
     211(*
    160212procedure SelectVitals(FontSize: Integer);
    161213var
     
    209261  end;
    210262end;
    211 
     263  *)
    212264procedure TfrmVitals.VGrid(griddata: TStrings);
    213265var
     
    249301function VitalsGrid(const patient: string; date1, date2: TFMDateTime; restrictdates: integer; tests: TStrings): TStrings;  //*DFN*
    250302begin
    251   CallV('ORQQVI1 GRID', [patient, date1, date2, restrictdates, tests]);
     303  CallV('GMV ORQQVI1 GRID', [patient, date1, date2, restrictdates, tests]);
    252304  Result := RPCBrokerV.Results;
    253305end;
     
    255307function VitalsMemo(const patient: string; date1, date2: TFMDateTime; tests: TStrings): TStrings;  //*DFN*
    256308begin
    257   CallV('ORQQVI1 DETAIL', [patient, date1, date2, 0, tests]);
     309  CallV('GMV ORQQVI1 DETAIL', [patient, date1, date2, 0, tests]);
    258310  Result := RPCBrokerV.Results;
    259311end;
  • cprs/branches/foia-cprs/CPRS-Chart/mCoPayDesc.dfm

    r459 r460  
    44  Width = 598
    55  Height = 132
     6  Anchors = [akLeft, akTop, akRight]
     7  AutoScroll = False
     8  AutoSize = True
    69  ParentShowHint = False
    710  ShowHint = True
    811  TabOrder = 0
    912  object pnlRight: TPanel
    10     Left = 349
     13    Left = 388
    1114    Top = 0
    12     Width = 249
     15    Width = 210
    1316    Height = 132
    1417    Align = alRight
     
    1821      Left = 0
    1922      Top = 0
    20       Width = 249
     23      Width = 210
    2124      Height = 3
    2225      Align = alTop
     
    2629      Left = 0
    2730      Top = 3
    28       Width = 249
     31      Width = 210
    2932      Height = 14
    3033      Align = alTop
    31       Alignment = taCenter
    3234      AutoSize = False
    3335      Caption = 'Outpatient Medications Related To:'
     
    3739      Left = 0
    3840      Top = 17
    39       Width = 249
     41      Width = 210
    4042      Height = 115
    4143      Align = alClient
     
    4648        Left = 2
    4749        Top = 2
    48         Width = 245
     50        Width = 206
    4951        Height = 3
    5052        Align = alTop
     
    5456        Left = 2
    5557        Top = 95
    56         Width = 245
     58        Width = 206
    5759        Height = 15
    5860        Align = alTop
     
    6163        TabOrder = 6
    6264        object lblHNC2: TORStaticText
    63           Left = 60
    64           Top = 0
    65           Width = 182
     65          Left = 50
     66          Top = 0
     67          Width = 150
    6668          Height = 15
    6769          AutoSize = False
     
    7577          Width = 50
    7678          Height = 15
     79          Alignment = taRightJustify
    7780          AutoSize = False
    7881          Caption = '  HNC -  '
     
    8487        Left = 2
    8588        Top = 80
    86         Width = 245
     89        Width = 206
    8790        Height = 15
    8891        Align = alTop
     
    9194        TabOrder = 5
    9295        object Label12: TORStaticText
    93           Left = 60
    94           Top = 0
    95           Width = 183
     96          Left = 50
     97          Top = 0
     98          Width = 150
    9699          Height = 15
    97100          AutoSize = False
     
    105108          Width = 50
    106109          Height = 15
    107           AutoSize = False
    108           Caption = '  MST -'
     110          Alignment = taRightJustify
     111          AutoSize = False
     112          Caption = '  MST -  '
    109113          TabOrder = 0
    110114          TabStop = True
     
    114118        Left = 2
    115119        Top = 65
    116         Width = 245
     120        Width = 206
    117121        Height = 15
    118122        Align = alTop
     
    121125        TabOrder = 4
    122126        object Label14: TORStaticText
    123           Left = 60
    124           Top = 0
    125           Width = 182
     127          Left = 50
     128          Top = 0
     129          Width = 150
    126130          Height = 15
    127131          AutoSize = False
     
    135139          Width = 50
    136140          Height = 15
     141          Alignment = taRightJustify
    137142          AutoSize = False
    138143          Caption = '    EC -  '
     
    144149        Left = 2
    145150        Top = 50
    146         Width = 245
     151        Width = 206
    147152        Height = 15
    148153        Align = alTop
     
    151156        TabOrder = 3
    152157        object Label16: TORStaticText
    153           Left = 60
    154           Top = 0
    155           Width = 182
     158          Left = 50
     159          Top = 0
     160          Width = 150
    156161          Height = 15
    157162          AutoSize = False
     
    165170          Width = 50
    166171          Height = 15
     172          Alignment = taRightJustify
    167173          AutoSize = False
    168174          Caption = '     IR -  '
     
    174180        Left = 2
    175181        Top = 35
    176         Width = 245
     182        Width = 206
    177183        Height = 15
    178184        Align = alTop
     
    181187        TabOrder = 2
    182188        object Label18: TORStaticText
    183           Left = 60
    184           Top = 0
    185           Width = 182
     189          Left = 50
     190          Top = 0
     191          Width = 150
    186192          Height = 15
    187193          AutoSize = False
     
    195201          Width = 50
    196202          Height = 15
     203          Alignment = taRightJustify
    197204          AutoSize = False
    198205          Caption = '    AO -  '
     
    204211        Left = 2
    205212        Top = 5
    206         Width = 245
     213        Width = 206
    207214        Height = 15
    208215        Align = alTop
     
    211218        TabOrder = 0
    212219        object Label24: TORStaticText
    213           Left = 60
    214           Top = 0
    215           Width = 182
     220          Left = 50
     221          Top = 0
     222          Width = 150
    216223          Height = 15
    217224          AutoSize = False
     
    225232          Width = 50
    226233          Height = 17
    227           AutoSize = False
    228           Caption = '    SC -'
     234          Alignment = taRightJustify
     235          AutoSize = False
     236          Caption = '    SC -  '
    229237          TabOrder = 0
    230238          TabStop = True
     
    234242        Left = 2
    235243        Top = 20
    236         Width = 245
     244        Width = 206
    237245        Height = 15
    238246        Align = alTop
     
    241249        TabOrder = 1
    242250        object StaticText4: TORStaticText
    243           Left = 60
    244           Top = 0
    245           Width = 182
     251          Left = 50
     252          Top = 0
     253          Width = 150
    246254          Height = 15
    247255          AutoSize = False
     
    255263          Width = 50
    256264          Height = 15
     265          Alignment = taRightJustify
    257266          AutoSize = False
    258267          Caption = '    CV -  '
     
    266275    Left = 0
    267276    Top = 0
    268     Width = 349
     277    Width = 388
    269278    Height = 132
    270279    Align = alClient
     
    274283      Left = 0
    275284      Top = 0
    276       Width = 349
     285      Width = 388
    277286      Height = 17
    278287      Align = alTop
     
    284293      Left = 0
    285294      Top = 17
    286       Width = 349
     295      Width = 388
    287296      Height = 115
    288297      Align = alClient
  • cprs/branches/foia-cprs/CPRS-Chart/rCore.pas

    r459 r460  
    9898{ General calls }
    9999
     100function GetProgramFilesPath: String;
    100101function ExternalName(IEN: Int64; FileNumber: Double): string;
    101102function PersonHasKey(APerson: Int64; const AKey: string): Boolean;
     
    133134procedure RenewAlert(XQAID: string);
    134135function GetSortMethod: string;
    135 procedure SetSortMethod(Sort: string);
     136procedure SetSortMethod(Sort: string; Direction: string);
    136137
    137138{ Patient List calls }
     
    198199function HasRemoteData(const DFN: string; var ALocations: TStringList): Boolean;
    199200function CheckHL7TCPLink: Boolean;
     201function UseVistaWeb: Boolean;
     202function GetVistaWebAddress(value: string): string;
     203procedure ChangeVistaWebParam(value: string);
    200204
    201205implementation
    202206
    203 uses Hash, uCore;
     207uses Hash, uCore, ShlObj, Windows;
    204208
    205209var
     
    303307
    304308{ General calls }
     309
     310function GetProgramFilesPath: String;
     311Const
     312  CSIDL_PROGRAM_FILES = $0026;
     313var
     314  Path: array[0..Max_Path] of Char;
     315begin
     316  Path := '';
     317  SHGetSpecialFolderPath(0,Path,CSIDL_PROGRAM_FILES,false);
     318  Result := Path;
     319end;
    305320
    306321function ExternalName(IEN: Int64; FileNumber: Double): string;
     
    507522end;
    508523
    509 procedure SetSortMethod(Sort: string);
     524procedure SetSortMethod(Sort: string; Direction: string);
    510525// Sets alert sort method for user
    511526begin
    512    CallV('ORWORB SETSORT', [Sort]);
     527   CallV('ORWORB SETSORT', [Sort, Direction]);
    513528end;
    514529
     
    612627  a pointer to RPCBrokerV.Results, so the data must be used BEFORE the next broker call!}
    613628begin
    614   CallV('ORWU NEWPERS', [StartFrom, Direction, '', '', True]);  //TRUE = return all active and inactive users
     629  CallV('ORWU NEWPERS', [StartFrom, Direction, '', '', '', True]);  //TRUE = return all active and inactive users
    615630  MixedCaseList(RPCBrokerV.Results);
    616631  Result := RPCBrokerV.Results;
     
    12441259 end;
    12451260
     1261function UseVistaWeb: Boolean;
     1262 begin;
     1263   CallV('ORWCIRN VISTAWEB',[nil]);
     1264   result := RPCBrokerV.Results[0] = '1';
     1265 end;
     1266
     1267function GetVistaWebAddress(value: string): string;
     1268begin
     1269  CallV('ORWCIRN WEBADDR', [value]);
     1270  result := RPCBrokerV.Results[0];
     1271end;
     1272
     1273procedure ChangeVistaWebParam(value: string);
     1274  begin
     1275    CallV('ORWCIRN WEBCH',[value]);
     1276  end;
     1277
    12461278function GetDefaultPrinter(DUZ: Int64; Location: integer): string;
    12471279begin
  • cprs/branches/foia-cprs/CPRS-Chart/rCover.pas

    r459 r460  
    156156        Src[i] := x;
    157157      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;
    158165    // clear non-active meds   (SHOULD THIS INCLUDE PENDING ORDERS?)
    159166    if MedStatusGroup(Piece(Src[i], U, 4)) = MED_NONACTIVE then MarkForDelete := True;
  • cprs/branches/foia-cprs/CPRS-Chart/rMeds.pas

    r459 r460  
    3535procedure Refill(AnOrderID, PickUpAt: string);
    3636function IsFirstDoseNowOrder(OrderID: string): boolean;
     37function GetMedStatus(MedID: TStringList): boolean;
    3738
    3839implementation
     
    9697    if NonVAMed then
    9798        Instruct := 'Non-VA  ' + Instruct;
    98     IVFluid   := Piece(x, U, 1) = 'IV';
     99    IVFluid   := Piece(x, U, 1) = '~IV';
    99100    SrvSeq    := 0;
    100101    LastFill  := MakeFMDateTime(Piece(x, U, 11));
     
    135136  AMed: TMedListRec;
    136137begin
     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;
    137141  ClinMeds := TList.Create;           //IMO new
    138142  tmpInPtMeds := TList.Create;        //IMO new
     
    176180  OutPtMeds.Sort(ByStatusThenStop);
    177181  NonVAMeds.Sort(ByStatusThenStop);
     182  if Assigned(ClinMeds) then FreeAndNil(ClinMeds);
     183  if Assigned(tmpInPtMeds) then FreeAndNil(tmpInPtMeds);
    178184end;
    179185
     
    201207end;
    202208
     209function GetMedStatus(MedID: TStringList): boolean;
     210begin
     211 Result := SCallV('ORWDX1 STCHANGE',[Patient.DFN, MedID])= '1';
     212end;
     213
    203214end.
  • cprs/branches/foia-cprs/CPRS-Chart/rMisc.pas

    r459 r460  
    3636function ServerHasPatch(const x: string): Boolean;
    3737function ServerVersion(const Option, VerClient: string): string;
     38function PackageVersion(const Namespace: string): string;
    3839
    3940procedure SaveUserBounds(AControl: TControl);
     
    111112  with RPCBrokerV do
    112113  begin
     114    ClearParameters := True;
    113115    RemoteProcedure := 'XWB GET VARIABLE VALUE';
    114116    Param[0].Value := x;
     
    127129begin
    128130  Result := sCallV('ORWU VERSRV', [Option, VerClient]);
     131end;
     132
     133function PackageVersion(const Namespace: string): string;
     134begin
     135  Result := sCallV('ORWU VERSION', [Namespace]);
    129136end;
    130137
  • cprs/branches/foia-cprs/CPRS-Chart/rReminders.pas

    r459 r460  
    4040function GetCategoryItems(CatIEN: integer): TStrings;
    4141function GetAllRemindersAndCategories: TStrings;
     42function VerifyMentalHealthTestComplete(TestName, Answers: string): String;
     43
    4244
    4345implementation
     
    140142
    141143function 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
     144begin
    149145     if RemIEN then
    150146        CallV('ORQQPXRM REMINDER DIALOG', [IEN, Patient.DFN])
     
    152148        CallV('PXRM REMINDER DIALOG (TIU)', [IEN, Patient.DFN]);
    153149     Result := RPCBrokerV.Results;
    154      end
    155   else
    156       begin
    157       if RemIEN then
    158         CallV('ORQQPXRM REMINDER DIALOG', [IEN])
    159      else
    160         CallV('PXRM REMINDER DIALOG (TIU)', [IEN]);
    161      Result := RPCBrokerV.Results;
    162   end;
    163150end;
    164151
     
    422409end;
    423410
     411function VerifyMentalHealthTestComplete(TestName, Answers: string): String;
     412
     413begin
     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;
     430end;
     431
    424432initialization
    425433
  • cprs/branches/foia-cprs/CPRS-Chart/rReports.pas

    r459 r460  
    2424procedure RemoteQuery(Dest: TStrings; AReportType: string; AHSType, ADaysback,
    2525            AExamID: string; Alpha, AOmega: Double; ASite, ARemoteRPC, AHSTag: String);
     26procedure DirectQuery(Dest: TStrings; AReportType: string; AHSType, ADaysback,
     27            AExamID: string; Alpha, AOmega: Double; ASite, ARemoteRPC, AHSTag: String);
    2628function ReportQualifierType(ReportType: Integer): Integer;
    2729function ImagingParams: String;
     30function AutoRDV: String;
     31function HDRActive: String;
    2832procedure PrintReportsToDevice(AReport: string; const Qualifier, Patient,
    2933     ADevice: string; var ErrMsg: string; aComponents: TStringlist;
     
    5256procedure SetAdhocLookup(aLookup: integer);
    5357procedure GetRemoteData(Dest: TStrings; aHandle: string; aItem: PChar);
     58procedure ModifyHDRData(Dest: string; aHandle: string; aID: string);
    5459procedure PrintVReports(Dest, ADevice, AHeader: string; AReport: TStringList);
    5560
     
    157162      LoadTree;
    158163    end;
    159   for i := 0 to uTree.Count - 1 do Dest.Add(Pieces(uTree[i], '^', 1, 14));
     164  for i := 0 to uTree.Count - 1 do Dest.Add(Pieces(uTree[i], '^', 1, 15));
    160165end;
    161166
     
    292297var
    293298  HSType, DaysBack, ExamID, MaxOcc, AReport, x: string;
    294   Alpha, Omega: double;
     299  Alpha, Omega, Trans: double;
    295300begin
    296301  HSType := '';
     
    303308      Alpha := StrToFMDateTime(Piece(Qualifier,';',1));
    304309      Omega := StrToFMDateTime(Piece(Qualifier,';',2));
     310      if Alpha > Omega then
     311        begin
     312          Trans := Omega;
     313          Omega := Alpha;
     314          Alpha := Trans;
     315        end;
    305316      MaxOcc := Piece(Qualifier,';',3);
    306317      SetPiece(AHSTag,';',4,MaxOcc);
     
    346357end;
    347358
     359procedure DirectQuery(Dest: TStrings; AReportType: string; AHSType, ADaysback,
     360            AExamID: string; Alpha, AOmega: Double; ASite, ARemoteRPC, AHSTag: String);
     361var
     362  AReport: string;
     363begin
     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);
     370end;
     371
    348372function ReportQualifierType(ReportType: Integer): Integer;
    349373var
     
    359383begin
    360384  Result := sCallV('ORWTPD GETIMG',[nil]);
     385end;
     386
     387function AutoRDV: String;
     388begin
     389  Result := sCallV('ORWCIRN AUTORDV', [nil]);
     390end;
     391
     392function HDRActive: String;
     393begin
     394  Result := sCallV('ORWCIRN HDRON', [nil]);
    361395end;
    362396
     
    740774end;
    741775
     776procedure ModifyHDRData(Dest: string; aHandle: string; aID: string);
     777begin
     778  CallV('ORWRP4 HDR MODIFY', [aHandle, aID]);
     779end;
     780
    742781procedure PrintBitmap(Canvas:  TCanvas; DestRect:  TRect;  Bitmap:  TBitmap);
    743782var
  • cprs/branches/foia-cprs/CPRS-Chart/rTIU.pas

    r459 r460  
    44
    55uses SysUtils, Classes, ORNet, ORFn, rCore, uCore, uConst, TRPCB, uTIU;
     6
     7type
     8  TPatchInstalled = record
     9    PatchInstalled: boolean;
     10    PatchChecked: boolean;
     11  end;
    612
    713{ Progress Note Titles }
     
    1016procedure ResetNoteTitles;
    1117function IsConsultTitle(TitleIEN: Integer): Boolean;
     18function IsPRFTitle(TitleIEN: Integer): Boolean;
    1219function IsClinProcTitle(TitleIEN: Integer): Boolean;
    1320procedure ListNoteTitlesShort(Dest: TStrings);
     
    2027function AskCosignerForNotes: Boolean;
    2128function AskCosignerForDocument(ADocument: Integer; AnAuthor: Int64): Boolean;
    22 function AskCosignerForTitle(ATitle: integer; AnAuthor: Int64): Boolean;
     29function AskCosignerForTitle(ATitle: integer; AnAuthor: Int64; ADate: TFMDateTime): Boolean;
    2330function AskSubjectForNotes: Boolean;
    24 function CanCosign(ATitle, ADocType: integer; AUser: Int64): Boolean;
     31function CanCosign(ATitle, ADocType: integer; AUser: Int64; ADate: TFMDateTime): Boolean;
    2532function CanChangeCosigner(IEN: integer): boolean;
    2633procedure DefaultCosigner(var IEN: Int64; var Name: string);
     
    93100function UserInactive(EIN: String): boolean;
    94101
     102//Miscellaneous
     103function TIUPatch175Installed: boolean;
     104
    95105const
    96106  CLS_PROGRESS_NOTES = 3;
    97107
    98108implementation
     109
     110uses rMisc;
    99111
    100112var
     
    103115  uNoteTitles: TNoteTitles;
    104116  uTIUPrefs: TTIUPrefs;
     117  uPatch175Installed: TPatchInstalled;
    105118
    106119
     
    153166  if TitleIEN <= 0 then Exit;
    154167  Result := sCallV('TIU IS THIS A CONSULT?', [TitleIEN]) = '1';
     168end;
     169
     170function IsPRFTitle(TitleIEN: Integer): Boolean;
     171begin
     172  Result := False;
     173  if TitleIEN <= 0 then Exit;
     174  Result := sCallV('TIU ISPRF', [TitleIEN]) = '1';
    155175end;
    156176
     
    238258end;
    239259
    240 function AskCosignerForTitle(ATitle: integer; AnAuthor: Int64): Boolean;
     260function AskCosignerForTitle(ATitle: integer; AnAuthor: Int64; ADate: TFMDateTime): Boolean;
    241261{ returns TRUE if a cosignature is required for a document title and author }
    242262begin
    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';
    244267end;
    245268
     
    258281end;
    259282
    260 function CanCosign(ATitle, ADocType: integer; AUser: Int64): Boolean;
     283function CanCosign(ATitle, ADocType: integer; AUser: Int64; ADate: TFMDateTime): Boolean;
    261284begin
    262285  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';
    264290end;
    265291
     
    10161042function IDNotesInstalled: boolean;
    10171043begin
    1018   Result := True;
     1044  Result := True;   // old patch check no longer called
    10191045end;
    10201046
     
    11231149end;
    11241150
     1151function TIUPatch175Installed: boolean;
     1152begin
     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;
     1160end;
     1161
    11251162function NoteHasText(NoteIEN: integer): boolean;
    11261163begin
    11271164  Result := (StrToIntDef(sCallV('ORWTIU CHKTXT', [NoteIEN]), 0) > 0);
    11281165end;
     1166
    11291167
    11301168initialization
  • cprs/branches/foia-cprs/CPRS-Chart/uConst.pas

    r459 r460  
    211211  NF_STAT_RESULTS                  = 44;
    212212  NF_DNR_EXPIRING                  = 45;
    213   NF_MEDICATIONS_EXPIRING          = 47;
     213  NF_MEDICATIONS_EXPIRING_INPT     = 47;
    214214  NF_UNVERIFIED_MEDICATION_ORDER   = 48;
    215215  NF_NEW_ORDER                     = 50;
     
    226226  NF_IMAGING_REQUEST_CHANGED       = 67;
    227227  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;
    228232  NF_DCSUMM_UNSIGNED_NOTE          = 901;
    229233  NF_CONSULT_UNSIGNED_NOTE         = 902;
     
    263267  NC_BY_DATE    = 5;                             // Note context - signed notes by date range
    264268  NC_CUSTOM     = 6;                             // Note Context - custom view
     269  //Text Search CQ: HDS00002856
     270  NC_SEARCHTEXT = 7;                             // Note Content - search for text
    265271
    266272  { Surgery View Contexts }
     
    343349  PKG_CONSULTS = 'GMR(123,';
    344350  PKG_SURGERY  = 'SRF(';
     351  PKG_PRF = 'PRF';
    345352
    346353  { New Person Filters }
  • cprs/branches/foia-cprs/CPRS-Chart/uCore.pas

    r459 r460  
    343343    RPCName  : String;         //Associated RPC
    344344    IFN      : String;         //IFN of report in file 101.24
     345    HDR      : String;         //HDR is source of data if = 1
    345346  end;
    346347
     
    355356  HasFlag: boolean;
    356357  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.
    357361
    358362procedure NotifyOtherApps(const AppEvent, AppData: string);
     
    501505  if(not uNotifyAppsActive) then exit;
    502506  if Application.MainForm = nil then Exit;
     507  if User = nil then exit;
    503508  if not User.FNotifyAppsWM then Exit;
    504509  // register the message with windows to get a unique message number (if not already registered)
     
    15101515  i: Integer;
    15111516begin
    1512   ChangeList := nil;
    15131517  ChangeList := FOrders;
    15141518  if ChangeList <> nil then with ChangeList do
  • cprs/branches/foia-cprs/CPRS-Chart/uDocTree.pas

    r459 r460  
    247247
    248248  procedure MakeBold(ANode: TORTreeNode);
     249  var
     250    LookingForAddenda: boolean;
    249251  begin
     252    LookingForAddenda := (Pos('ADDENDUM', UpperCase(CurrentContext.Keyword)) > 0);
    250253    with ANode do
    251254      begin
     
    253256        if Parent <> nil then
    254257          begin
    255             Parent.Expand(False);
     258            if (ImageIndex <> IMG_ADDENDUM) or ((ImageIndex = IMG_ADDENDUM) and LookingForAddenda) then
     259              Parent.Expand(False);
    256260            if Parent.Parent <> nil then
    257261              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);
    259264                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);
    261267              end;
    262268          end;
  • cprs/branches/foia-cprs/CPRS-Chart/uOrPtf.pas

    r459 r460  
    2222
    2323procedure HasActiveFlg(var FlagList: TStringList; var HasFlag: boolean; const PTDFN: string);
    24 function GetCatIFlag(var FlagArr: TStrings): integer;
     24function TriggerPRFPopUp(PTDFN: String): boolean;
    2525procedure GetActiveFlg(FlagInfo: TStrings; const PTDFN, FlagRecordID: string);
    2626procedure ClearFlag;
     
    4040end;
    4141
    42 function GetCatIFlag(var FlagArr: TStrings): integer;
     42function TriggerPRFPopUp(PTDFN: String): boolean;
    4343begin
    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';
    4946  RPCBrokerV.Results.Delete(0);
    50   FlagArr.Assign(RPCBrokerV.Results);
    5147end;
    5248
  • cprs/branches/foia-cprs/CPRS-Chart/uProbs.pas

    r459 r460  
    134134   fFieldList:TstringList; {list of fields by name and class (TKeyVal or TComment)}
    135135   fFilerObj:TstringList;
     136   fCmtIsXHTML: boolean;
     137   fCmtNoEditReason: string;
    136138   Procedure LoadField(Fldrec:TKeyVal;Id:String;name:string);
    137139   Procedure CreateFields;
     
    223225   property AltFilerObject:TstringList read GetAltFilerObject;
    224226   property PIFN:string read fPIFN write fPIFN;
     227   property CmtIsXHTML: boolean read fCmtIsXHTML;
     228   property CmtNoEditReason: string read fCmtNoEditReason;
    225229 end;
    226230
     
    580584var
    581585  i,j:integer;
    582   cv:string;
     586  cv, noedit:string;
    583587  co:TComment;
    584588  first:boolean;
     
    591595        begin
    592596          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
    594612          else
    595613            begin
  • cprs/branches/foia-cprs/CPRS-Chart/uReminders.pas

    r459 r460  
    2020    FNoResolve: boolean;
    2121    FWHReviewIEN: string;  // AGP CHANGE 23.13 Allow for multiple processing of WH Review of Result Reminders
     22    FRemWipe: integer;
    2223  protected
    2324    function GetIEN: string; virtual;
     
    4849    property DlgData: string read FDlgData; //AGP Change 24.8
    4950    property WHReviewIEN: string read FWHReviewIEN write FWHReviewIEN;  //AGP CHANGE 23.13
     51    property RemWipe: integer read FRemWipe write FRemWipe;
    5052  end;
    5153
     
    99101    FMSTPrompt: TRemPrompt;
    100102    FWHPrintDevice, FWHResultChk, FWHResultNot: String;
    101     //FRemWHNotPurpose: TStrings;
     103    FVitalDateTime: TFMDateTime;  //AGP Changes 26.1
    102104  protected
    103105    procedure Check4ChildrenSharedPrompts;
     
    156158    property WHResultChk: String read FWHResultChk write FWHResultChk;
    157159    property WHResultNot: String read FWHResultNot write FWHResultNot;
    158     //property RemWHNotPurpose: TStrings read FRemWHNotPurpose write FRemWHNotPurpose;
     160    property VitalDateTime: TFMDateTime read FVitalDateTime write FVitalDateTime;
    159161  end;
    160162
     
    170172    FPCERoot: TRemPCERoot;
    171173    FParent: TRemDlgElement;
    172     FRec3: string; 
     174    FRec3: string;
    173175    FActiveDates: TStringList; //Active dates for finding items. (rectype 3)
    174176//    FRoot: string;
     
    219221    FMonthReq: boolean;
    220222    FPrintNow: String;
     223    FMHTestComplete: integer;
    221224  protected
    222225    function RemDataActive(RData: TRemData; EncDt: TFMDateTime):Boolean;
     
    292295  NotPurposeValue: string;
    293296  WHRemPrint: string;
     297  InitialRemindersLoaded: boolean = FALSE;
    294298
    295299const
     
    298302  RemPriorityText: array[1..3] of string = ('High','','Low');
    299303  ClinMaintText = 'Clinical Maintenance';
    300   InitialRemindersLoaded: boolean = FALSE;
    301304
    302305  dtUnknown = TRemDataType(-1);
     
    432435
    433436uses 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;
    435438
    436439type
     
    896899        begin
    897900          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
    899903          begin
    900904            Result := TRUE;
     
    10861090    begin
    10871091      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
    10891094      else if(Tmp = '0') then iidx := 3
    10901095      else
     
    13341339         if(NewStatus = '1') then Msg := 'Due'
    13351340    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
    13361343    else                          Msg := 'Not Applicable';
    13371344    Msg := RName + ' is ' + Msg + '.';
     
    18291836      Data := RemCode + EvaluatedReminders[i];
    18301837      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
    18321840      else if(Tmp = '0') then Add2Tree(rfApplicable, ApplCatID)
    18331841      else                    Add2Tree(rfNotApplicable, NotApplCatID);
     
    23902398begin
    23912399  TempSL := GetDlgSL;
     2400  if Piece(TempSL[0],U,2)='1' then
     2401    begin
     2402      Self.RemWipe := 1;
     2403    end;
    23922404  idx := -1;
    23932405  repeat
     
    29192931
    29202932begin
    2921   Tmp := Piece(FRec1, U, 4);
    2922   if(Tmp = 'D') then Result := etDisplayOnly
    2923   else if(Tmp = 'T') then Result := etTaxonomy
    2924   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;
    29252937end;
    29262938
     
    30133025        dt := Code2DataType(piece(TempSL[idx], U, r3Type));
    30143026        if(dt <> dtUnknown) and ((dt <> dtOrder) or
    3015           (CharAt(piece(TempSL[idx], U, 11),1) in ['D', 'Q', 'M', 'O'])) and
     3027          (CharAt(piece(TempSL[idx], U, 11),1) in ['D', 'Q', 'M', 'O', 'A'])) and   //AGP change 26.10 for allergy orders
    30163028          ((dt <> dtMentalHealthTest) or MHTestsOK) then
    30173029        begin
     
    35423554          DoLbl := Prompt.Required;
    35433555          case pt of
    3544             ptComment, ptQuantity, ptSkinReading:
     3556            ptComment, ptQuantity:
    35453557              begin
    35463558                Ctrl.edt := TEdit.Create(AOwner);
     
    35783590            ptVisitLocation, ptLevelUnderstanding,
    35793591            ptSeries, ptReaction, ptExamResults,
    3580             ptLevelSeverity, ptSkinResults:
     3592            ptLevelSeverity, ptSkinResults, ptSkinReading:
    35813593              begin
    35823594                Ctrl.cbo := TORComboBox.Create(AOwner);
     
    35853597                Ctrl.cbo.Style := orcsDropDown;
    35863598                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;
    35893611                if pt = ptVisitLocation then
    35903612                begin
     
    41844206    end;
    41854207  end;
    4186 
     4208 
    41874209begin
    41884210  Result := nil;
     
    43984420end;
    43994421
    4400 { TODO -oLori -cNext : TRemDlgElement.AddText }
    44014422procedure TRemDlgElement.AddText(Lst: TStrings);
    44024423var
     
    46554676                (not Prompt.Forced) then
    46564677        begin
    4657           if (Pt = ptMHTest) and ((Prompt.FValue = '') or (pos('X',Prompt.FValue)>0)) then
     4678          if (Pt = ptMHTest) and (Prompt.FMHTestComplete = 2) then
    46584679            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;
    46654689            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;
    46664699          if (Pt = ptGAF) and ((Prompt.FValue = '0') or (Prompt.FValue = '')) then
    46674700            begin
     
    49524985          unt := Prompt.VitalUnitValue;
    49534986          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
    49554989          if(not Finishing) then
    49564990            txt := Char(ord('A')+ord(v)) + FormatVitalForNote(txt);  // Add vital sort char
     
    53095343      NeedRedraw := FALSE;
    53105344      case pt of
    5311         ptComment, ptQuantity, ptSkinReading:
     5345        ptComment, ptQuantity:
    53125346          TmpValue := (Sender as TEdit).Text;
    53135347
     
    54805514                       end;
    54815515        end;
    5482        
     5516
    54835517        ptExamResults, ptSkinResults, ptLevelSeverity,
    5484         ptSeries, ptReaction, ptLevelUnderstanding:
     5518        ptSeries, ptReaction, ptLevelUnderstanding, ptSkinReading: //(AGP Change 26.1)
    54855519          TmpValue := (Sender as TORComboBox).ItemID;
    54865520        else
     
    54925526                             idx := -1;
    54935527                             TmpValue := (Sender as TORComboBox).ItemID;
     5528                             if FParent.VitalDateTime = 0 then
     5529                                  FParent.VitalDateTime := FMNow;
    54945530                           end;
    54955531              else
     
    54975533            end;
    54985534            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;
    55005543          end
    55015544          else
     
    56345677                    Result := tmp;
    56355678
    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;
    56385686
    56395687      ptVisitDate:
     
    61516199        (FCurrentControl as TUpDown).Position := StrToIntDef(GetValue,1);
    61526200
    6153       ptSkinReading:
    6154         (FCurrentControl as TUpDown).Position := StrToIntDef(GetValue,0);
     6201     (* ptSkinReading:
     6202        (FCurrentControl as TUpDown).Position := StrToIntDef(GetValue,0); *)
    61556203
    61566204      ptVisitDate:
     
    61916239
    61926240      ptExamResults, ptSkinResults, ptLevelSeverity,
    6193       ptSeries, ptReaction, ptLevelUnderstanding:
     6241      ptSeries, ptReaction, ptLevelUnderstanding, ptSkinReading: //(AGP Change 26.1)
    61946242        (FCurrentControl as TORComboBox).SelectByID(GetValue);
    61956243
     
    64266474var
    64276475  TmpSL: TStringList;
    6428   i: integer;
     6476  i, TestComp: integer;
    64296477  Before, After: string;
    64306478
    64316479begin
     6480  TestComp := 0;
    64326481  if(MHTestAuthorized(FData.Narrative)) then
    64336482  begin
     
    64406489      Before := GetValue;
    64416490      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
    64436499      begin
    64446500        if(After = '') or (FParent.ResultDlgID = 0) then
    64456501          FMiscText := ''
    64466502        else
     6503        if TestComp > 0 then
    64476504        begin
    64486505          MentalHealthTestResults(FMiscText, FParent.ResultDlgID, FData.Narrative,
     
    64646521      end;
    64656522    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);
    64746533end;
    64756534
  • cprs/branches/foia-cprs/CPRS-Chart/uReports.pas

    r459 r460  
    6161    SortOrder  : String;         //#:# of columns to use in a multi-column sort
    6262    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
    6365end;
    6466
     
    136138      SortOrder       := Piece(x, U, 12);
    137139      MaxDaysBack     := Piece(x, U, 13);
     140      Direct          := Piece(x, U, 14);
     141      HDR             := Piece(x, U, 15);
    138142    end;
    139143  Result := AnObject;
  • cprs/branches/foia-cprs/CPRS-Chart/uSignItems.pas

    r459 r460  
    1 unit uSignItems;
     1      unit uSignItems;
    22
    33{.$define debug}
     
    1313                  siEnvironmentalContaminants, siMST, siHeadNeckCancer, siCombatVeteran);
    1414
    15   TSigItemTagInfo = record
     15  TSigItemTagInfo =  record
    1616    SigType: TSigItemType;
    1717    Index: integer;
     
    4242    function  FindCBValues(ATag: integer): TORCheckBox;
    4343    function  GetTempCkBxState(Index: integer; CBValue:TSigItemType): string;
     44   
    4445  protected
    4546    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
     
    6162    procedure CopyCB(FromIndex, ToIndex: integer); //BAPHII 1.3.1
    6263    procedure SetSigItems(Sender: TObject; sourceOrderID: string); //BAPHII 1.3.1
     64    //procedure SetSigItems(Sender: TObject; itemsList: TStringList; sourceOrderID: string); //BAPHII 1.3.1
    6365    function ItemToTag(Info: TSigItemTagInfo): integer; //CQ5074
    6466    function TagToItem(ATag: integer): TSigItemTagInfo; //CQ5074
     
    7072const
    7173
    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
    7476
    7577  TX_Order_Error = 'All Service Connection and/or Rated Disabilities questions must be answered, '+#13+
     
    128130  BaseFlags: string;
    129131  tempCkBx: TORCheckBox;
    130   thisOrderID: string; //BAPHII 1.3.2
     132  thisOrderID: string;
    131133  thisChangeItem: TChangeItem;
    132134
    133135
    134136function TSigItems.GetSigItems : TORStringList;
    135 {
    136  BAPHII 1.3.1
    137 }
    138137begin
    139138  Result := FItems;
     
    141140
    142141function TSigItems.FindCB(ATag: integer): TORCheckBox;
    143 {
    144  BAPHII 1.3.1
    145 }
    146142var
    147143  i: integer;
     
    161157
    162158procedure TSigItems.CopyCB(FromIndex, ToIndex: integer);
    163 {
    164  BAPHII 1.3.1
    165 }
    166159var
    167160  si: TSigItemType;
     
    232225var
    233226  idx: integer;
    234   i,j: integer;
    235227begin
    236228  if ItemType = CH_ORD then
    237229  begin
    238 
    239230    idx := FItems.IndexOfPiece(ID);
    240 
    241231    if idx < 0 then
    242232      idx := FItems.Add(ID);
    243 
    244       // when an order has not been sent to the server and is deleted
    245       // or discontinued the treatment factors remain from the original order,
    246       // this will clear the treatment factors, which will be set based on HIMS
    247       if BILLING_AWARE then
    248       begin
    249          if UBAGlobals.BADeltedOrders.Count > 0 then
    250          begin
    251             for i := 0 to FItems.Count-1 do
    252             begin
    253                for j := 0 to UBAGlobals.BADeltedOrders.Count-1 do
    254                begin
    255                   if (Piece(fItems.Strings[i],U,1) = UBAGlobals.BADeltedOrders.Strings[j] ) then
    256                   begin
    257                      fItems.Strings[i] := UBAGlobals.BADeltedOrders.Strings[j];
    258                      UBAGlobals.BADeltedOrders.Clear;
    259                   end;
    260                end;
    261             end;
    262          end;
    263      end;
    264233    FItems.SetStrPiece(idx, 2, IntToStr(Index));
    265234    FItems.SetStrPiece(idx,5,INIT_STR);    // hds4807 value was being reatained when same order selected in FReview.
     
    424393       if idx > 0 then
    425394          begin
    426           if  BILLING_AWARE then
    427               rpcGetSC4Orders
     395         if  BILLING_AWARE then
     396              rpcGetSC4Orders // get SC/EIC information for all CIDC TYPE orders
    428397          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
    432400               begin
    433401                  s := RPCBrokerV.Results[i];
     
    479447
    480448                     FItems.SetStrPiece(idx, 4, Flags);
    481                       // new code  gary  if deleted order and ba on then
     449                      // new code  if deleted order and ba on then
    482450                      // reset appropriate tf flags to "?".
    483451
     
    524492    for si := low(TSigItemType) to high(TSigItemType) do
    525493      StsUsed[si] := FALSE;
    526 
     494    //  loop thru orders selected to be signed fReview/fOrdersSign.
    527495    for i := 0 to FItems.Count-1 do
    528496       begin
     
    531499         if (piece(s,u,2) <> '-1') and (piece(s,u,3) = '1') then
    532500            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;
    534505
    535506            for si := low(TSigItemType) to high(TSigItemType) do
     
    646617                        begin
    647618                        Flags := piece(s,u,4);
    648 
     619                                                 //loop thru treatment factors
    649620                        for sx := low(TSigItemType) to high(TSigItemType) do
    650621                           begin
  • cprs/branches/foia-cprs/CPRS-Chart/uSpell.pas

    r459 r460  
    173173        MSWord.Application.Options.SaveInterval := 0;
    174174        MSWord.Application.Options.AutoFormatReplaceQuotes := False;
     175        MSWord.Application.Options.AutoFormatAsYouTypeReplaceQuotes := False;
    175176        MSWord.ResetIgnoreAll;
    176177
  • cprs/branches/foia-cprs/CPRS-Chart/uTIU.pas

    r459 r460  
    3232    ClinProcDateTime: TFMDateTime;
    3333    Lines: TStrings;
     34    PRF_IEN: integer;
     35    ActionIEN: string;
    3436  end;
    3537
     
    6365    KeyWord: string;
    6466    Filtered: Boolean;
     67    SearchString: String;  // Text Search CQ: HDS00002856
    6568  end ;
    6669
Note: See TracChangeset for help on using the changeset viewer.