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

Uploading from OR_30_258

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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.
Note: See TracChangeset for help on using the changeset viewer.