| 1 | unit fReportsAdhocComponent1;
 | 
|---|
| 2 | 
 | 
|---|
| 3 | interface
 | 
|---|
| 4 | 
 | 
|---|
| 5 | uses
 | 
|---|
| 6 |   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 | 
|---|
| 7 |   ExtCtrls, StdCtrls, Grids, ORCtrls, ORfn, Buttons, fAutoSz;
 | 
|---|
| 8 | 
 | 
|---|
| 9 | type
 | 
|---|
| 10 |   TfrmReportsAdhocComponent1 = class(TfrmAutoSz)
 | 
|---|
| 11 |     ORComboBox1: TORComboBox;
 | 
|---|
| 12 |     Splitter1: TSplitter;
 | 
|---|
| 13 |     Panel2: TPanel;
 | 
|---|
| 14 |     Panel3: TPanel;
 | 
|---|
| 15 |     btnCancelMain: TButton;
 | 
|---|
| 16 |     btnOKMain: TButton;
 | 
|---|
| 17 |     Panel1: TPanel;
 | 
|---|
| 18 |     ORListBox2: TORListBox;
 | 
|---|
| 19 |     Panel6: TPanel;
 | 
|---|
| 20 |     btnRemoveComponent: TButton;
 | 
|---|
| 21 |     btnRemoveAllComponents: TButton;
 | 
|---|
| 22 |     Splitter4: TSplitter;
 | 
|---|
| 23 |     Panel7: TPanel;
 | 
|---|
| 24 |     lblHeaderName: TLabel;
 | 
|---|
| 25 |     edtHeaderName: TCaptionEdit;
 | 
|---|
| 26 |     lblOccuranceLimit: TLabel;
 | 
|---|
| 27 |     edtOccuranceLimit: TCaptionEdit;
 | 
|---|
| 28 |     lblTimeLimit: TLabel;
 | 
|---|
| 29 |     cboTimeLimit: TCaptionComboBox;
 | 
|---|
| 30 |     gpbDisplay: TGroupBox;
 | 
|---|
| 31 |     ckbHospitalLocation: TCheckBox;
 | 
|---|
| 32 |     ckbProviderNarrative: TCheckBox;
 | 
|---|
| 33 |     cboICD: TCaptionComboBox;
 | 
|---|
| 34 |     lblICD: TLabel;
 | 
|---|
| 35 |     btnAddComponent: TButton;
 | 
|---|
| 36 |     pnl5Button: TKeyClickPanel;
 | 
|---|
| 37 |     SpeedButton5: TSpeedButton;
 | 
|---|
| 38 |     pnl6Button: TKeyClickPanel;
 | 
|---|
| 39 |     SpeedButton6: TSpeedButton;
 | 
|---|
| 40 |     Timer1: TTimer;
 | 
|---|
| 41 |     ORListBox1: TORListBox;
 | 
|---|
| 42 |     lblItems: TLabel;
 | 
|---|
| 43 |     btnEditSubitems: TButton;
 | 
|---|
| 44 |     GroupBox1: TGroupBox;
 | 
|---|
| 45 |     rbtnHeader: TRadioButton;
 | 
|---|
| 46 |     rbtnAbbrev: TRadioButton;
 | 
|---|
| 47 |     rbtnName: TRadioButton;
 | 
|---|
| 48 |     procedure FormCreate(Sender: TObject);
 | 
|---|
| 49 |     procedure btnCancelMainClick(Sender: TObject);
 | 
|---|
| 50 |     procedure btnOKMainClick(Sender: TObject);
 | 
|---|
| 51 |     procedure FormClose(Sender: TObject; var Action: TCloseAction);
 | 
|---|
| 52 |     procedure HideEdits;
 | 
|---|
| 53 |     procedure ORListBox2Click(Sender: TObject);
 | 
|---|
| 54 |     procedure btnRemoveComponentClick(Sender: TObject);
 | 
|---|
| 55 |     procedure btnRemoveAllComponentsClick(Sender: TObject);
 | 
|---|
| 56 |     procedure Splitter4CanResize(Sender: TObject; var NewSize: Integer;
 | 
|---|
| 57 |       var Accept: Boolean);
 | 
|---|
| 58 |     procedure Splitter1CanResize(Sender: TObject; var NewSize: Integer;
 | 
|---|
| 59 |       var Accept: Boolean);
 | 
|---|
| 60 |     procedure btnAddComponentClick(Sender: TObject);
 | 
|---|
| 61 |     procedure SpeedButton5Click(Sender: TObject);
 | 
|---|
| 62 |     procedure SpeedButton6Click(Sender: TObject);
 | 
|---|
| 63 |     procedure ORListBox2DragOver(Sender, Source: TObject; X, Y: Integer;
 | 
|---|
| 64 |       State: TDragState; var Accept: Boolean);
 | 
|---|
| 65 |     procedure ORListBox2DragDrop(Sender, Source: TObject; X, Y: Integer);
 | 
|---|
| 66 |     procedure ORListBox2EndDrag(Sender, Target: TObject; X, Y: Integer);
 | 
|---|
| 67 |     procedure Timer1Timer(Sender: TObject);
 | 
|---|
| 68 |     procedure btnEditSubitemsClick(Sender: TObject);
 | 
|---|
| 69 |     procedure edtHeaderNameExit(Sender: TObject);
 | 
|---|
| 70 |     procedure edtOccuranceLimitExit(Sender: TObject);
 | 
|---|
| 71 |     procedure cboTimeLimitExit(Sender: TObject);
 | 
|---|
| 72 |     procedure ckbHospitalLocationExit(Sender: TObject);
 | 
|---|
| 73 |     procedure ckbProviderNarrativeExit(Sender: TObject);
 | 
|---|
| 74 |     procedure cboICDExit(Sender: TObject);
 | 
|---|
| 75 |     procedure LoadComponents(Dest: TStrings);
 | 
|---|
| 76 |     procedure FormShow(Sender: TObject);
 | 
|---|
| 77 |     procedure rbtnAbbrevClick(Sender: TObject);
 | 
|---|
| 78 |     procedure rbtnNameClick(Sender: TObject);
 | 
|---|
| 79 |     procedure rbtnHeaderClick(Sender: TObject);
 | 
|---|
| 80 |     procedure pnl5ButtonEnter(Sender: TObject);
 | 
|---|
| 81 |     procedure pnl5ButtonExit(Sender: TObject);
 | 
|---|
| 82 |     procedure ORComboBox1KeyDown(Sender: TObject; var Key: Word;
 | 
|---|
| 83 |       Shift: TShiftState);
 | 
|---|
| 84 |   private
 | 
|---|
| 85 |     { Private declarations }
 | 
|---|
| 86 |     GoingUp: Boolean;
 | 
|---|
| 87 |     OKPressed: Boolean;
 | 
|---|
| 88 |   public
 | 
|---|
| 89 |     { Public declarations }
 | 
|---|
| 90 |   end;
 | 
|---|
| 91 | 
 | 
|---|
| 92 | var
 | 
|---|
| 93 |   frmReportsAdhocComponent1: TfrmReportsAdhocComponent1;
 | 
|---|
| 94 |   uComponents: TStringList;    {This is what is built as SubItems are
 | 
|---|
| 95 |                                 selected.  It is identified by segment
 | 
|---|
| 96 |                                 and is ordered in the order that the items
 | 
|---|
| 97 |                                 have been selected or moved by the user.
 | 
|---|
| 98 |                                 Segment^file #^ifn of file^zero node of file}
 | 
|---|
| 99 |   uCurrentComponent: Integer;  //Pointer to current Component ID
 | 
|---|
| 100 |   HSCompCtr: integer;          //Component ID
 | 
|---|
| 101 |   uFile: String;               //Mumps file Number of Subitems
 | 
|---|
| 102 |   uLimit: Integer;             //HS Component Subitem Selection limit
 | 
|---|
| 103 |   uLimitCount: Integer;        //Count of current Subitem Selections
 | 
|---|
| 104 | 
 | 
|---|
| 105 |   function ExecuteAdhoc1: Boolean;
 | 
|---|
| 106 | 
 | 
|---|
| 107 | implementation
 | 
|---|
| 108 | 
 | 
|---|
| 109 | uses fReportsAdhocSubItem1, fReports, uCore, rReports;
 | 
|---|
| 110 | 
 | 
|---|
| 111 | {$R *.DFM}
 | 
|---|
| 112 | type
 | 
|---|
| 113 | PHSCompRec = ^THSCompRec;
 | 
|---|
| 114 | THSCompRec = object
 | 
|---|
| 115 |   ID: integer;
 | 
|---|
| 116 |   Segment: string;
 | 
|---|
| 117 |   Name: string;
 | 
|---|
| 118 |   OccuranceLimit: string;
 | 
|---|
| 119 |   TimeLimit: string;
 | 
|---|
| 120 |   Header: string;
 | 
|---|
| 121 |   HospitalLocation: string;
 | 
|---|
| 122 |   ICDText: string;
 | 
|---|
| 123 |   ProviderNarrative: string;
 | 
|---|
| 124 | 
 | 
|---|
| 125 | 
 | 
|---|
| 126 | end;
 | 
|---|
| 127 | 
 | 
|---|
| 128 | function ExecuteAdhoc1: Boolean;
 | 
|---|
| 129 | begin
 | 
|---|
| 130 |   Result := False;
 | 
|---|
| 131 |   frmReportsAdhocComponent1 := TfrmReportsAdhocComponent1.Create(Application);
 | 
|---|
| 132 |   try
 | 
|---|
| 133 |     ResizeFormToFont(TForm(frmReportsAdhocComponent1));
 | 
|---|
| 134 |     frmReportsAdhocComponent1.ShowModal;
 | 
|---|
| 135 |     if frmReportsAdhocComponent1.OKPressed then
 | 
|---|
| 136 |       Result := True;
 | 
|---|
| 137 |   finally
 | 
|---|
| 138 |     frmReportsAdhocComponent1.Release;
 | 
|---|
| 139 |   end;
 | 
|---|
| 140 | end;
 | 
|---|
| 141 | 
 | 
|---|
| 142 | procedure TfrmReportsAdhocComponent1.FormCreate(Sender: TObject);
 | 
|---|
| 143 | 
 | 
|---|
| 144 | begin
 | 
|---|
| 145 |   HideEdits;
 | 
|---|
| 146 |   HSCompCtr := 0;
 | 
|---|
| 147 |   uFile := '';
 | 
|---|
| 148 |   uLimit := 0;
 | 
|---|
| 149 |   uLimitCount := 1;
 | 
|---|
| 150 |   uComponents := TStringList.Create;
 | 
|---|
| 151 |   Splitter1.Left := ORComboBox1.Left + ORComboBox1.Width + 1;
 | 
|---|
| 152 |   Splitter1.Align := ORComboBox1.Align;
 | 
|---|
| 153 |   Panel6.Left := Splitter1.Left + Splitter1.Width;
 | 
|---|
| 154 |   Panel6.Align := Splitter1.Align;
 | 
|---|
| 155 |   ORListBox2.Left := Panel6.Left + Panel6.Width;
 | 
|---|
| 156 |   ORListBox2.Align := Panel6.Align;
 | 
|---|
| 157 |   Splitter4.Left := ORListBox2.Left + ORListBox2.Width + 1;
 | 
|---|
| 158 |   Splitter4.Align := ORListBox2.Align;
 | 
|---|
| 159 | end;
 | 
|---|
| 160 | 
 | 
|---|
| 161 | procedure TfrmReportsAdhocComponent1.FormShow(Sender: TObject);
 | 
|---|
| 162 | begin
 | 
|---|
| 163 |   inherited;
 | 
|---|
| 164 |   if uListState = 1 then rbtnAbbrev.Checked := true;
 | 
|---|
| 165 |   if uListState = 0 then rbtnName.Checked := true;
 | 
|---|
| 166 |   if uListState = 2 then rbtnHeader.Checked := true;
 | 
|---|
| 167 |   LoadComponents(ORComboBox1.Items);
 | 
|---|
| 168 | end;
 | 
|---|
| 169 | 
 | 
|---|
| 170 | procedure TfrmReportsAdhocComponent1.btnCancelMainClick(Sender: TObject);
 | 
|---|
| 171 | begin
 | 
|---|
| 172 |   Close;
 | 
|---|
| 173 | end;
 | 
|---|
| 174 | 
 | 
|---|
| 175 | procedure TfrmReportsAdhocComponent1.btnOKMainClick(Sender: TObject);
 | 
|---|
| 176 | var
 | 
|---|
| 177 |   i,j: integer;
 | 
|---|
| 178 | begin
 | 
|---|
| 179 |   OKPressed := True;
 | 
|---|
| 180 |   with ORListBox2 do
 | 
|---|
| 181 |     begin
 | 
|---|
| 182 |       if Items.Count > 0 then
 | 
|---|
| 183 |         begin
 | 
|---|
| 184 |           for i := 0 to Items.Count - 1 do
 | 
|---|
| 185 |            begin
 | 
|---|
| 186 |             uHSComponents.Add(PHSCompRec(Items.Objects[i])^.Segment + '^' +
 | 
|---|
| 187 |              PHSCompRec(Items.Objects[i])^.OccuranceLimit + '^' +
 | 
|---|
| 188 |              PHSCompRec(Items.Objects[i])^.TimeLimit + '^' +
 | 
|---|
| 189 |              PHSCompRec(Items.Objects[i])^.Header + '^' +
 | 
|---|
| 190 |              PHSCompRec(Items.Objects[i])^.HospitalLocation + '^' +
 | 
|---|
| 191 |              PHSCompRec(Items.Objects[i])^.ICDText + '^' +
 | 
|---|
| 192 |              PHSCompRec(Items.Objects[i])^.ProviderNarrative);
 | 
|---|
| 193 |             for j := 0 to uComponents.Count-1 do
 | 
|---|
| 194 |              if StrToInt(piece(uComponents[j],'^',1)) =
 | 
|---|
| 195 |               PHSCompRec(Items.Objects[i])^.ID then
 | 
|---|
| 196 |                uHSComponents.Add(PHSCompRec(Items.Objects[i])^.Segment + '^' +
 | 
|---|
| 197 |                PHSCompRec(Items.Objects[i])^.OccuranceLimit + '^' +
 | 
|---|
| 198 |                PHSCompRec(Items.Objects[i])^.TimeLimit + '^' +
 | 
|---|
| 199 |                PHSCompRec(Items.Objects[i])^.Header + '^' +
 | 
|---|
| 200 |                PHSCompRec(Items.Objects[i])^.HospitalLocation + '^' +
 | 
|---|
| 201 |                PHSCompRec(Items.Objects[i])^.ICDText + '^' +
 | 
|---|
| 202 |                PHSCompRec(Items.Objects[i])^.ProviderNarrative + '^' +
 | 
|---|
| 203 |                uComponents[j]);
 | 
|---|
| 204 |            end;
 | 
|---|
| 205 |         end;
 | 
|---|
| 206 |     end;
 | 
|---|
| 207 |   if uHSComponents.Count > 0 then
 | 
|---|
| 208 |     begin
 | 
|---|
| 209 |       HSReportText(uLocalReportData, uHSComponents);
 | 
|---|
| 210 |       Close;
 | 
|---|
| 211 |     end
 | 
|---|
| 212 |   else
 | 
|---|
| 213 |     Application.MessageBox(
 | 
|---|
| 214 |       'Sorry, no Components have been selected',
 | 
|---|
| 215 |       'Selection Error',MB_OK + MB_DEFBUTTON1);
 | 
|---|
| 216 | end;
 | 
|---|
| 217 | 
 | 
|---|
| 218 | procedure TfrmReportsAdhocComponent1.FormClose(Sender: TObject; var Action: TCloseAction);
 | 
|---|
| 219 | var
 | 
|---|
| 220 |   aParam: integer;
 | 
|---|
| 221 | begin
 | 
|---|
| 222 |   aParam := 1;
 | 
|---|
| 223 |   if rbtnName.Checked = true then
 | 
|---|
| 224 |     aParam := 0
 | 
|---|
| 225 |   else if rbtnAbbrev.Checked = true then
 | 
|---|
| 226 |     aParam := 1
 | 
|---|
| 227 |   else if rbtnHeader.Checked = true then
 | 
|---|
| 228 |     aParam := 2;
 | 
|---|
| 229 |   SetAdhocLookup(aParam);
 | 
|---|
| 230 |   uComponents.Free;
 | 
|---|
| 231 | end;
 | 
|---|
| 232 | 
 | 
|---|
| 233 | procedure TfrmReportsAdhocComponent1.HideEdits;
 | 
|---|
| 234 | begin
 | 
|---|
| 235 |   lblTimeLimit.Enabled := False;
 | 
|---|
| 236 |   lblOccuranceLimit.Enabled := False;
 | 
|---|
| 237 |   cboTimeLimit.Enabled := False;
 | 
|---|
| 238 |   edtOccuranceLimit.Enabled := False;
 | 
|---|
| 239 |   gpbDisplay.Enabled := False;
 | 
|---|
| 240 |   ckbHospitalLocation.Enabled := False;
 | 
|---|
| 241 |   ckbProviderNarrative.Enabled := False;
 | 
|---|
| 242 |   lblICD.Enabled := False;
 | 
|---|
| 243 |   cboICD.Enabled := False;
 | 
|---|
| 244 |   lblItems.Enabled := False;
 | 
|---|
| 245 |   ORListBox1.Enabled := False;
 | 
|---|
| 246 |   btnEditSubitems.Enabled := False;
 | 
|---|
| 247 |   cboTimeLimit.Text := '';
 | 
|---|
| 248 |   edtOccuranceLimit.Text := '';
 | 
|---|
| 249 |   ckbHospitalLocation.Checked := False;
 | 
|---|
| 250 |   ckbProviderNarrative.Checked := False;
 | 
|---|
| 251 |   cboICD.Text := '';
 | 
|---|
| 252 | end;
 | 
|---|
| 253 | 
 | 
|---|
| 254 | procedure TfrmReportsAdhocComponent1.ORListBox2Click(Sender: TObject);
 | 
|---|
| 255 | var
 | 
|---|
| 256 |   i: integer;
 | 
|---|
| 257 |   a: string;
 | 
|---|
| 258 |   uHSCompFiles: TStringList;
 | 
|---|
| 259 | begin
 | 
|---|
| 260 |   HideEdits;
 | 
|---|
| 261 |   with ORListBox2 do
 | 
|---|
| 262 |     a := PHSCompRec(Items.Objects[ItemIndex])^.Segment;
 | 
|---|
| 263 |   uHSCompFiles := TStringList.Create;
 | 
|---|
| 264 |   HSComponentFiles(uHSCompFiles,Piece(a,';',2));
 | 
|---|
| 265 |   If uHSCompFiles.Count > 0 then
 | 
|---|
| 266 |     begin
 | 
|---|
| 267 |       uFile := Piece(uHSCompFiles.Strings[0],'^',3);
 | 
|---|
| 268 |       If Length(uFile) > 0 then
 | 
|---|
| 269 |         begin
 | 
|---|
| 270 |           lblItems.Enabled := True;
 | 
|---|
| 271 |           ORListBox1.Enabled := True;
 | 
|---|
| 272 |           btnEditSubItems.Enabled := True;
 | 
|---|
| 273 |         end;
 | 
|---|
| 274 |     end;
 | 
|---|
| 275 |   uHSCompFiles.Free;
 | 
|---|
| 276 |   with ORListBox2 do
 | 
|---|
| 277 |     begin
 | 
|---|
| 278 |       if length(Piece(Items[ItemIndex],'^',5))>0 then
 | 
|---|
| 279 |         begin
 | 
|---|
| 280 |           edtHeaderName.Text := PHSCompRec(Items.Objects[ItemIndex])^.Header;
 | 
|---|
| 281 |           edtHeaderName.Enabled := True;
 | 
|---|
| 282 |           lblHeaderName.Enabled := True;
 | 
|---|
| 283 |         end;
 | 
|---|
| 284 |       if length(Piece(Items[ItemIndex],'^',3))>0 then
 | 
|---|
| 285 |         begin
 | 
|---|
| 286 |           edtOccuranceLimit.Text :=
 | 
|---|
| 287 |             PHSCompRec(Items.Objects[ItemIndex])^.OccuranceLimit;
 | 
|---|
| 288 |           edtOccuranceLimit.Enabled := True;
 | 
|---|
| 289 |           lblOccuranceLimit.Enabled := True;
 | 
|---|
| 290 |         end;
 | 
|---|
| 291 |       if length(Piece(Items[ItemIndex],'^',4))>0 then
 | 
|---|
| 292 |         begin
 | 
|---|
| 293 |           cboTimeLimit.Text :=
 | 
|---|
| 294 |             PHSCompRec(Items.Objects[ItemIndex])^.TimeLimit;
 | 
|---|
| 295 |           cboTimeLimit.Enabled := True;
 | 
|---|
| 296 |           lblTimeLimit.Enabled := True;
 | 
|---|
| 297 |         end;
 | 
|---|
| 298 |       if length(Piece(Items[ItemIndex],'^',6))>0 then
 | 
|---|
| 299 |         begin
 | 
|---|
| 300 |           gpbDisplay.Enabled := True;
 | 
|---|
| 301 |           ckbHospitalLocation.Enabled := True;
 | 
|---|
| 302 |           if PHSCompRec(Items.Objects[ItemIndex])^.HospitalLocation = 'Y'
 | 
|---|
| 303 |             then ckbHospitalLocation.Checked := True
 | 
|---|
| 304 |           else
 | 
|---|
| 305 |             ckbHospitalLocation.Checked := False;
 | 
|---|
| 306 |         end;
 | 
|---|
| 307 |       if length(Piece(Items[ItemIndex],'^',7))>0 then
 | 
|---|
| 308 |         begin
 | 
|---|
| 309 |           gpbDisplay.Enabled := True;
 | 
|---|
| 310 |           lblICD.Enabled := True;
 | 
|---|
| 311 |           cboICD.Enabled := True;
 | 
|---|
| 312 |           cboICD.Text := PHSCompRec(Items.Objects[ItemIndex])^.ICDText;
 | 
|---|
| 313 |         end;
 | 
|---|
| 314 |       if length(Piece(Items[ItemIndex],'^',8))>0 then
 | 
|---|
| 315 |         begin
 | 
|---|
| 316 |           gpbDisplay.Enabled := True;
 | 
|---|
| 317 |           ckbProviderNarrative.Enabled := True;
 | 
|---|
| 318 |           if PHSCompRec(Items.Objects[ItemIndex])^.ProviderNarrative = 'Y'
 | 
|---|
| 319 |             then ckbProviderNarrative.Checked := True
 | 
|---|
| 320 |           else
 | 
|---|
| 321 |             ckbProviderNarrative.Checked := False;
 | 
|---|
| 322 |         end;
 | 
|---|
| 323 |       uCurrentComponent := PHSCompRec(Items.Objects[ItemIndex])^.ID;
 | 
|---|
| 324 |     end;
 | 
|---|
| 325 |   ORListBox1.Clear;
 | 
|---|
| 326 |   for i := 0 to uComponents.Count-1 do
 | 
|---|
| 327 |     if piece(uComponents[i],'^',1) = IntToStr(uCurrentComponent) then
 | 
|---|
| 328 |       ORListBox1.Items.Add(Pieces(uComponents[i],'^',3,10));
 | 
|---|
| 329 |   if ORListBox1.Items.Count > 0  then
 | 
|---|
| 330 |     begin
 | 
|---|
| 331 |       lblItems.Enabled := True;
 | 
|---|
| 332 |       ORListBox1.Enabled := True;
 | 
|---|
| 333 |       btnEditSubItems.Enabled := True;
 | 
|---|
| 334 |     end;
 | 
|---|
| 335 | end;
 | 
|---|
| 336 | 
 | 
|---|
| 337 | procedure TfrmReportsAdhocComponent1.btnRemoveComponentClick(Sender: TObject);
 | 
|---|
| 338 | var
 | 
|---|
| 339 |   i: integer;
 | 
|---|
| 340 |   chk: integer;
 | 
|---|
| 341 | begin
 | 
|---|
| 342 |   HideEdits;
 | 
|---|
| 343 |   edtHeaderName.Text := '';
 | 
|---|
| 344 |   edtHeaderName.Enabled := False;
 | 
|---|
| 345 |   lblHeaderName.Enabled := False;
 | 
|---|
| 346 |   chk := 0;
 | 
|---|
| 347 |   ORListBox1.Clear;
 | 
|---|
| 348 |   If ORListBox2.Items.Count < 1 then
 | 
|---|
| 349 |     begin
 | 
|---|
| 350 |       InfoBox('There are no items to remove.', 'Information', MB_OK or MB_ICONINFORMATION);
 | 
|---|
| 351 |       Exit;
 | 
|---|
| 352 |     end
 | 
|---|
| 353 |   else
 | 
|---|
| 354 |     for i := 0 to ORListBox2.Items.Count - 1 do
 | 
|---|
| 355 |       if ORListBox2.Selected[i] then
 | 
|---|
| 356 |           chk := 1;
 | 
|---|
| 357 |     if chk = 0 then
 | 
|---|
| 358 |       begin
 | 
|---|
| 359 |         InfoBox('Please select the item you wish to remove', 'Information', MB_OK or MB_ICONINFORMATION);
 | 
|---|
| 360 |         Exit;
 | 
|---|
| 361 |       end;
 | 
|---|
| 362 |     With ORListBox2 do
 | 
|---|
| 363 |       begin
 | 
|---|
| 364 |         for i := uComponents.Count-1 downto 0 do
 | 
|---|
| 365 |           if piece(uComponents[i],'^',1) = IntToStr(uCurrentComponent) then
 | 
|---|
| 366 |             uComponents.Delete(i);
 | 
|---|
| 367 |         Items.Delete(ItemIndex);
 | 
|---|
| 368 |         if Items.Count < 1 then
 | 
|---|
| 369 |           begin
 | 
|---|
| 370 |             SpeedButton5.Enabled := false;
 | 
|---|
| 371 |             SpeedButton6.Enabled := false;
 | 
|---|
| 372 |           end;
 | 
|---|
| 373 |       end;
 | 
|---|
| 374 | end;
 | 
|---|
| 375 | 
 | 
|---|
| 376 | procedure TfrmReportsAdhocComponent1.btnRemoveAllComponentsClick(Sender: TObject);
 | 
|---|
| 377 | 
 | 
|---|
| 378 | var
 | 
|---|
| 379 |   i: integer;
 | 
|---|
| 380 | begin
 | 
|---|
| 381 |   HideEdits;
 | 
|---|
| 382 |   edtHeaderName.Text := '';
 | 
|---|
| 383 |   edtHeaderName.Enabled := False;
 | 
|---|
| 384 |   lblHeaderName.Enabled := False;
 | 
|---|
| 385 |   ORListBox1.Clear;
 | 
|---|
| 386 |   If ORListBox2.Items.Count < 1 then
 | 
|---|
| 387 |     begin
 | 
|---|
| 388 |       InfoBox('There are no items to remove.', 'Information', MB_OK or MB_ICONINFORMATION);
 | 
|---|
| 389 |       Exit;
 | 
|---|
| 390 |     end;
 | 
|---|
| 391 |   if InfoBox('This button will remove all selected components. OK?',
 | 
|---|
| 392 |     'Confirmation', MB_YESNO or MB_ICONQUESTION) = IDYES then
 | 
|---|
| 393 |     begin
 | 
|---|
| 394 |       With ORListBox2 do
 | 
|---|
| 395 |         begin
 | 
|---|
| 396 |           for i := uComponents.Count-1 downto 0 do
 | 
|---|
| 397 |             uComponents.Delete(i);
 | 
|---|
| 398 |           for i := Items.Count-1 downto 0 do
 | 
|---|
| 399 |             Items.Delete(i);
 | 
|---|
| 400 |         end;
 | 
|---|
| 401 |       SpeedButton5.Enabled := false;
 | 
|---|
| 402 |       SpeedButton6.Enabled := false;
 | 
|---|
| 403 |     end;
 | 
|---|
| 404 | end;
 | 
|---|
| 405 | 
 | 
|---|
| 406 | procedure TfrmReportsAdhocComponent1.Splitter4CanResize(Sender: TObject; var NewSize: Integer;
 | 
|---|
| 407 |   var Accept: Boolean);
 | 
|---|
| 408 | begin
 | 
|---|
| 409 |   if NewSize < 50 then
 | 
|---|
| 410 |     NewSize := 50;
 | 
|---|
| 411 | end;
 | 
|---|
| 412 | 
 | 
|---|
| 413 | procedure TfrmReportsAdhocComponent1.Splitter1CanResize(Sender: TObject; var NewSize: Integer;
 | 
|---|
| 414 |   var Accept: Boolean);
 | 
|---|
| 415 | begin
 | 
|---|
| 416 |   if NewSize < 50 then
 | 
|---|
| 417 |     NewSize := 50;
 | 
|---|
| 418 | end;
 | 
|---|
| 419 | 
 | 
|---|
| 420 | procedure TfrmReportsAdhocComponent1.btnAddComponentClick(Sender: TObject);
 | 
|---|
| 421 | var
 | 
|---|
| 422 |   HSCompPtr: PHSCompRec;
 | 
|---|
| 423 |   i: Integer;
 | 
|---|
| 424 |   uHSCompFiles: TStringList;
 | 
|---|
| 425 |   uCompSubs: TStringList;
 | 
|---|
| 426 | begin
 | 
|---|
| 427 |   If ORComboBox1.ItemIndex < 0 then
 | 
|---|
| 428 |     begin
 | 
|---|
| 429 |       InfoBox('Please select a component to Add.', 'Information', MB_OK or MB_ICONINFORMATION);
 | 
|---|
| 430 |       Exit;
 | 
|---|
| 431 |     end;
 | 
|---|
| 432 |   ORListBox1.Clear;
 | 
|---|
| 433 |   HideEdits;
 | 
|---|
| 434 |   New(HSCompPtr);
 | 
|---|
| 435 |   HSCompCtr := HSCompCtr + 1;
 | 
|---|
| 436 |   HSCompPtr^.ID := HSCompCtr;
 | 
|---|
| 437 |   uLimit := 0;
 | 
|---|
| 438 |   with ORComboBox1 do
 | 
|---|
| 439 |     begin
 | 
|---|
| 440 |       HSCompPtr^.Segment := Piece(Items[ItemIndex],'^',1);
 | 
|---|
| 441 |       HSCompPtr^.Name := Piece(Items[ItemIndex],'^',2);
 | 
|---|
| 442 |       HSCompPtr^.OccuranceLimit := Piece(Items[ItemIndex],'^',3);
 | 
|---|
| 443 |       HSCompPtr^.TimeLimit := UpperCase(Piece(Items[ItemIndex],'^',4));
 | 
|---|
| 444 |       HSCompPtr^.Header := Piece(Items[ItemIndex],'^',5);
 | 
|---|
| 445 |       HSCompPtr^.HospitalLocation := Piece(Items[ItemIndex],'^',6);
 | 
|---|
| 446 |       HSCompPtr^.ICDText := Piece(Items[ItemIndex],'^',7);
 | 
|---|
| 447 |       HSCompPtr^.ProviderNarrative := Piece(Items[ItemIndex],'^',8);
 | 
|---|
| 448 |       uCurrentComponent := HSCompCtr;
 | 
|---|
| 449 |     end;
 | 
|---|
| 450 |   with ORListBox2 do
 | 
|---|
| 451 |     begin
 | 
|---|
| 452 |       Items.AddObject(
 | 
|---|
| 453 |         ORComboBox1.Items[ORComboBox1.ItemIndex],TObject(HSCompPtr));
 | 
|---|
| 454 |       ItemIndex := Items.Count-1;
 | 
|---|
| 455 |       SpeedButton5.Enabled := true;
 | 
|---|
| 456 |       SpeedButton6.Enabled := true;
 | 
|---|
| 457 |     end;
 | 
|---|
| 458 |   uHSCompFiles := TStringList.Create;
 | 
|---|
| 459 |   uCompSubs := TStringList.Create;
 | 
|---|
| 460 |   HSComponentFiles(uHSCompFiles, Piece(HSCompPtr^.Segment,';',2));
 | 
|---|
| 461 |   If uHSCompFiles.Count > 0 then
 | 
|---|
| 462 |     begin
 | 
|---|
| 463 |       uFile := Piece(uHSCompFiles.Strings[0],'^',3);
 | 
|---|
| 464 |       If Length(Piece(uHSCompFiles.Strings[0],'^',4)) > 0 then
 | 
|---|
| 465 |         uLimit := StrToInt(Piece(uHSCompFiles.Strings[0],'^',4));
 | 
|---|
| 466 |       If Length(uFile) > 0 then
 | 
|---|
| 467 |         begin
 | 
|---|
| 468 |           lblItems.Enabled := True;
 | 
|---|
| 469 |           ORListBox1.Enabled := True;
 | 
|---|
| 470 |           btnEditSubItems.Enabled := True;
 | 
|---|
| 471 |           HSComponentSubs(uCompSubs, Piece(HSCompPtr^.Segment,';',1));
 | 
|---|
| 472 |           If uCompSubs.Count > 0 then
 | 
|---|
| 473 |             begin
 | 
|---|
| 474 |               ORListBox1.Clear;
 | 
|---|
| 475 |               ORListBox1.Items.Assign(uCompSubs);
 | 
|---|
| 476 |               for i := 0 to uCompSubs.Count-1 do
 | 
|---|
| 477 |                 uComponents.Add(IntToStr(uCurrentComponent) + '^' + uFile +
 | 
|---|
| 478 |                   '^' + uCompSubs[i]);
 | 
|---|
| 479 |             end
 | 
|---|
| 480 |           Else
 | 
|---|
| 481 |             If ExecuteForm2 = True then
 | 
|---|
| 482 |               begin
 | 
|---|
| 483 |                 ORListBox1.Clear;
 | 
|---|
| 484 |                 for i := 0 to uComponents.Count-1 do
 | 
|---|
| 485 |                   if piece(uComponents[i],'^',1) = IntToStr(uCurrentComponent) then
 | 
|---|
| 486 |                     ORListBox1.Items.Add(Pieces(uComponents[i],'^',3,10));
 | 
|---|
| 487 |                 if ORListBox1.Items.Count < 1 then
 | 
|---|
| 488 |                   begin
 | 
|---|
| 489 |                     InfoBox('No sub-items were selected', 'Information', MB_OK or MB_ICONINFORMATION);
 | 
|---|
| 490 |                   end;
 | 
|---|
| 491 |               end
 | 
|---|
| 492 |             else
 | 
|---|
| 493 |               begin
 | 
|---|
| 494 |                 InfoBox('No sub-items were selected', 'Information', MB_OK or MB_ICONINFORMATION);
 | 
|---|
| 495 |               end;
 | 
|---|
| 496 |         end;
 | 
|---|
| 497 |     end;
 | 
|---|
| 498 |   with ORComboBox1 do
 | 
|---|
| 499 |     begin
 | 
|---|
| 500 |       if length(Piece(Items[ItemIndex],'^',5))>0 then
 | 
|---|
| 501 |         begin
 | 
|---|
| 502 |           edtHeaderName.Text := Piece(Items[ItemIndex],'^',5);
 | 
|---|
| 503 |           edtHeaderName.Enabled := True;
 | 
|---|
| 504 |           lblHeaderName.Enabled := True;
 | 
|---|
| 505 |         end;
 | 
|---|
| 506 |       if length(Piece(Items[ItemIndex],'^',3))>0 then
 | 
|---|
| 507 |         begin
 | 
|---|
| 508 |           edtOccuranceLimit.Text := Piece(Items[ItemIndex],'^',3);
 | 
|---|
| 509 |           edtOccuranceLimit.Enabled := True;
 | 
|---|
| 510 |           lblOccuranceLimit.Enabled := True;
 | 
|---|
| 511 |         end;
 | 
|---|
| 512 |       if length(Piece(Items[ItemIndex],'^',4))>0 then
 | 
|---|
| 513 |         begin
 | 
|---|
| 514 |           cboTimeLimit.Text := Piece(Items[ItemIndex],'^',4);
 | 
|---|
| 515 |           cboTimeLimit.Enabled := True;
 | 
|---|
| 516 |           lblTimeLimit.Enabled := True;
 | 
|---|
| 517 |         end;
 | 
|---|
| 518 |       if length(Piece(Items[ItemIndex],'^',6))>0 then
 | 
|---|
| 519 |         begin
 | 
|---|
| 520 |           gpbDisplay.Enabled := True;
 | 
|---|
| 521 |           ckbHospitalLocation.Enabled := True;
 | 
|---|
| 522 |           if Piece(Items[ItemIndex],'^',6) = 'Y' then
 | 
|---|
| 523 |             ckbHospitalLocation.Checked := True;
 | 
|---|
| 524 |         end;
 | 
|---|
| 525 |       if length(Piece(Items[ItemIndex],'^',7))>0 then
 | 
|---|
| 526 |         begin
 | 
|---|
| 527 |           gpbDisplay.Enabled := True;
 | 
|---|
| 528 |           lblICD.Enabled := True;
 | 
|---|
| 529 |           cboICD.Enabled := True;
 | 
|---|
| 530 |           if Piece(Items[ItemIndex],'^',7) = 'L' then
 | 
|---|
| 531 |             cboICD.Text := 'Long text';
 | 
|---|
| 532 |           if Piece(Items[ItemIndex],'^',7) = 'S' then
 | 
|---|
| 533 |             cboICD.Text := 'Short text';
 | 
|---|
| 534 |           if Piece(Items[ItemIndex],'^',7) = 'C' then
 | 
|---|
| 535 |             cboICD.Text := 'Code only';
 | 
|---|
| 536 |           if Piece(Items[ItemIndex],'^',7) = 'T' then
 | 
|---|
| 537 |             cboICD.Text := 'Text only';
 | 
|---|
| 538 |           if Piece(Items[ItemIndex],'^',7) = 'N' then
 | 
|---|
| 539 |             cboICD.Text := 'None';
 | 
|---|
| 540 |         end;
 | 
|---|
| 541 |       if length(Piece(Items[ItemIndex],'^',8))>0 then
 | 
|---|
| 542 |         begin
 | 
|---|
| 543 |           gpbDisplay.Enabled := True;
 | 
|---|
| 544 |           ckbProviderNarrative.Enabled := True;
 | 
|---|
| 545 |           if Piece(Items[ItemIndex],'^',8) = 'Y' then
 | 
|---|
| 546 |             ckbProviderNarrative.Checked := True;
 | 
|---|
| 547 |         end;
 | 
|---|
| 548 |     end;
 | 
|---|
| 549 |   uHSCompFiles.Free;
 | 
|---|
| 550 |   uCompSubs.Free;
 | 
|---|
| 551 | end;
 | 
|---|
| 552 | 
 | 
|---|
| 553 | procedure TfrmReportsAdhocComponent1.SpeedButton5Click(Sender: TObject);
 | 
|---|
| 554 | var
 | 
|---|
| 555 |   i:integer;
 | 
|---|
| 556 | begin
 | 
|---|
| 557 |   if SpeedButton5.Enabled then
 | 
|---|
| 558 |     with ORListBox2 do
 | 
|---|
| 559 |       if ItemIndex > 0 then
 | 
|---|
| 560 |         begin
 | 
|---|
| 561 |           i := ItemIndex;
 | 
|---|
| 562 |           Items.Move(i, i-1);
 | 
|---|
| 563 |           ItemIndex := i-1;
 | 
|---|
| 564 |         end;
 | 
|---|
| 565 | end;
 | 
|---|
| 566 | 
 | 
|---|
| 567 | procedure TfrmReportsAdhocComponent1.SpeedButton6Click(Sender: TObject);
 | 
|---|
| 568 | var
 | 
|---|
| 569 |   i : Integer;
 | 
|---|
| 570 | begin
 | 
|---|
| 571 |   if SpeedButton6.Enabled then
 | 
|---|
| 572 |     with ORListbox2 do
 | 
|---|
| 573 |       if (ItemIndex < Items.Count-1) and
 | 
|---|
| 574 |          (ItemIndex <> -1) then
 | 
|---|
| 575 |         begin
 | 
|---|
| 576 |           i := ItemIndex;
 | 
|---|
| 577 |           Items.Move(i, i+1);
 | 
|---|
| 578 |           ItemIndex := i+1;
 | 
|---|
| 579 |         end;
 | 
|---|
| 580 | end;
 | 
|---|
| 581 | 
 | 
|---|
| 582 | procedure TfrmReportsAdhocComponent1.ORListBox2DragOver(Sender, Source: TObject; X, Y: Integer;
 | 
|---|
| 583 |   State: TDragState; var Accept: Boolean);
 | 
|---|
| 584 | begin
 | 
|---|
| 585 |   Accept := (Sender = Source) and
 | 
|---|
| 586 |     (TORListBox(Sender).ItemAtPos(Point(x,y), False) >= 0);
 | 
|---|
| 587 |   if Accept then
 | 
|---|
| 588 |     with Sender as TORListbox do
 | 
|---|
| 589 |       if Y > Height - ItemHeight then
 | 
|---|
| 590 |         begin
 | 
|---|
| 591 |           GoingUp := False;
 | 
|---|
| 592 |           Timer1.Enabled := True;
 | 
|---|
| 593 |         end
 | 
|---|
| 594 |       else if Y < ItemHeight then
 | 
|---|
| 595 |         begin
 | 
|---|
| 596 |           GoingUp := True;
 | 
|---|
| 597 |           Timer1.Enabled := True;
 | 
|---|
| 598 |         end
 | 
|---|
| 599 |       else Timer1.Enabled := False;
 | 
|---|
| 600 | end;
 | 
|---|
| 601 | 
 | 
|---|
| 602 | procedure TfrmReportsAdhocComponent1.ORListBox2DragDrop(Sender, Source: TObject; X,
 | 
|---|
| 603 |   Y: Integer);
 | 
|---|
| 604 | var
 | 
|---|
| 605 |   NuPos: Integer;
 | 
|---|
| 606 | begin
 | 
|---|
| 607 |   with Sender as TORListbox do
 | 
|---|
| 608 |     begin
 | 
|---|
| 609 |       NuPos := ItemAtPos(Point(X,Y),False);
 | 
|---|
| 610 |       If NuPos >= Items.Count then Dec(NuPos);
 | 
|---|
| 611 |       Items.Move(ItemIndex, NuPos);
 | 
|---|
| 612 |       ItemIndex := NuPos;
 | 
|---|
| 613 |     end;
 | 
|---|
| 614 | end;
 | 
|---|
| 615 | 
 | 
|---|
| 616 | procedure TfrmReportsAdhocComponent1.ORListBox2EndDrag(Sender, Target: TObject; X, Y: Integer);
 | 
|---|
| 617 | begin
 | 
|---|
| 618 |   if (Sender = ORListBox2) and (Target = ORComboBox1) then
 | 
|---|
| 619 |     btnRemoveComponentClick(nil);
 | 
|---|
| 620 |   Timer1.Enabled := False;
 | 
|---|
| 621 | end;
 | 
|---|
| 622 | 
 | 
|---|
| 623 | procedure TfrmReportsAdhocComponent1.Timer1Timer(Sender: TObject);
 | 
|---|
| 624 | begin
 | 
|---|
| 625 |   with ORListBox2 do
 | 
|---|
| 626 |     if GoingUp then
 | 
|---|
| 627 |       if TopIndex > 0 then TopIndex := TopIndex - 1
 | 
|---|
| 628 |       else Timer1.Enabled := False
 | 
|---|
| 629 |     else
 | 
|---|
| 630 |       if TopIndex < Items.Count - 1 then TopIndex := TopIndex + 1
 | 
|---|
| 631 |       else Timer1.Enabled := False;
 | 
|---|
| 632 | end;
 | 
|---|
| 633 | 
 | 
|---|
| 634 | procedure TfrmReportsAdhocComponent1.btnEditSubitemsClick(Sender: TObject);
 | 
|---|
| 635 | var
 | 
|---|
| 636 |   i: integer;
 | 
|---|
| 637 | begin
 | 
|---|
| 638 |   If ExecuteForm2 = True then
 | 
|---|
| 639 |       begin
 | 
|---|
| 640 |         lblItems.Enabled := False;
 | 
|---|
| 641 |         ORListBox1.Enabled := False;
 | 
|---|
| 642 |         ORListBox1.Clear;
 | 
|---|
| 643 |         for i := 0 to uComponents.Count-1 do
 | 
|---|
| 644 |           if piece(uComponents[i],'^',1) = IntToStr(uCurrentComponent) then
 | 
|---|
| 645 |             ORListBox1.Items.Add(Pieces(uComponents[i],'^',3,10));
 | 
|---|
| 646 |         if ORListBox1.Items.Count > 0 then
 | 
|---|
| 647 |           begin
 | 
|---|
| 648 |             lblItems.Enabled := True;
 | 
|---|
| 649 |             ORListBox1.Enabled := True;
 | 
|---|
| 650 |             btnEditSubItems.Enabled := True;
 | 
|---|
| 651 |           end;
 | 
|---|
| 652 |       end;
 | 
|---|
| 653 | end;
 | 
|---|
| 654 | 
 | 
|---|
| 655 | procedure TfrmReportsAdhocComponent1.edtHeaderNameExit(Sender: TObject);
 | 
|---|
| 656 | var
 | 
|---|
| 657 |   i: integer;
 | 
|---|
| 658 | begin
 | 
|---|
| 659 |   for i := 0 to ORListBox2.Items.Count - 1 do
 | 
|---|
| 660 |     if PHSCompRec(ORListBox2.Items.Objects[i])^.ID = uCurrentComponent then
 | 
|---|
| 661 |       PHSCompRec(ORListBox2.Items.Objects[i])^.Header :=
 | 
|---|
| 662 |         edtHeaderName.Text;
 | 
|---|
| 663 | end;
 | 
|---|
| 664 | 
 | 
|---|
| 665 | procedure TfrmReportsAdhocComponent1.edtOccuranceLimitExit(
 | 
|---|
| 666 |   Sender: TObject);
 | 
|---|
| 667 | var
 | 
|---|
| 668 |   i: integer;
 | 
|---|
| 669 | begin
 | 
|---|
| 670 |   for i := 0 to ORListBox2.Items.Count - 1 do
 | 
|---|
| 671 |     if PHSCompRec(ORListBox2.Items.Objects[i])^.ID = uCurrentComponent then
 | 
|---|
| 672 |       PHSCompRec(ORListBox2.Items.Objects[i])^.OccuranceLimit :=
 | 
|---|
| 673 |         edtOccuranceLimit.Text;
 | 
|---|
| 674 | end;
 | 
|---|
| 675 | 
 | 
|---|
| 676 | procedure TfrmReportsAdhocComponent1.cboTimeLimitExit(Sender: TObject);
 | 
|---|
| 677 | var
 | 
|---|
| 678 |   i: integer;
 | 
|---|
| 679 | begin
 | 
|---|
| 680 |   if cboTimeLimit.Text = 'No Limit' then
 | 
|---|
| 681 |     cboTimeLimit.Text := '99Y';
 | 
|---|
| 682 |   for i := 0 to ORListBox2.Items.Count - 1 do
 | 
|---|
| 683 |     if PHSCompRec(ORListBox2.Items.Objects[i])^.ID = uCurrentComponent then
 | 
|---|
| 684 |       PHSCompRec(ORListBox2.Items.Objects[i])^.TimeLimit :=
 | 
|---|
| 685 |         cboTimeLimit.Text;
 | 
|---|
| 686 | end;
 | 
|---|
| 687 | 
 | 
|---|
| 688 | procedure TfrmReportsAdhocComponent1.ckbHospitalLocationExit(
 | 
|---|
| 689 |   Sender: TObject);
 | 
|---|
| 690 | var
 | 
|---|
| 691 |   i: integer;
 | 
|---|
| 692 | begin
 | 
|---|
| 693 |   for i := 0 to ORListBox2.Items.Count - 1 do
 | 
|---|
| 694 |     if PHSCompRec(ORListBox2.Items.Objects[i])^.ID = uCurrentComponent then
 | 
|---|
| 695 |       if ckbHospitalLocation.Checked = True then
 | 
|---|
| 696 |         PHSCompRec(ORListBox2.Items.Objects[i])^.HospitalLocation := 'Y'
 | 
|---|
| 697 |       else
 | 
|---|
| 698 |         PHSCompRec(ORListBox2.Items.Objects[i])^.HospitalLocation := 'N';
 | 
|---|
| 699 | end;
 | 
|---|
| 700 | 
 | 
|---|
| 701 | procedure TfrmReportsAdhocComponent1.ckbProviderNarrativeExit(
 | 
|---|
| 702 |   Sender: TObject);
 | 
|---|
| 703 | var
 | 
|---|
| 704 |   i: integer;
 | 
|---|
| 705 | begin
 | 
|---|
| 706 |   for i := 0 to ORListBox2.Items.Count - 1 do
 | 
|---|
| 707 |     if PHSCompRec(ORListBox2.Items.Objects[i])^.ID = uCurrentComponent then
 | 
|---|
| 708 |       if ckbProviderNarrative.Checked = True then
 | 
|---|
| 709 |         PHSCompRec(ORListBox2.Items.Objects[i])^.ProviderNarrative := 'Y'
 | 
|---|
| 710 |       else
 | 
|---|
| 711 |         PHSCompRec(ORListBox2.Items.Objects[i])^.ProviderNarrative := 'N';
 | 
|---|
| 712 | end;
 | 
|---|
| 713 | 
 | 
|---|
| 714 | procedure TfrmReportsAdhocComponent1.cboICDExit(Sender: TObject);
 | 
|---|
| 715 | var
 | 
|---|
| 716 |   i: integer;
 | 
|---|
| 717 | begin
 | 
|---|
| 718 |   for i := 0 to ORListBox2.Items.Count - 1 do
 | 
|---|
| 719 |     if PHSCompRec(ORListBox2.Items.Objects[i])^.ID = uCurrentComponent then
 | 
|---|
| 720 |       PHSCompRec(ORListBox2.Items.Objects[i])^.ICDText := cboICD.Text;
 | 
|---|
| 721 | end;
 | 
|---|
| 722 | 
 | 
|---|
| 723 | procedure TfrmReportsAdhocComponent1.ORComboBox1KeyDown(Sender: TObject;
 | 
|---|
| 724 |   var Key: Word; Shift: TShiftState);
 | 
|---|
| 725 | begin
 | 
|---|
| 726 |   //This used to be a KeyUp.  I changed it because it can call up the component
 | 
|---|
| 727 |   //selection screen, which can be left with a return.  Leaving the component
 | 
|---|
| 728 |   //screen happens on key down, so this screen gets focused and receives the key
 | 
|---|
| 729 |   //up message, so it pops up tyhe component screen again.
 | 
|---|
| 730 |   If Key = 13 then
 | 
|---|
| 731 |     with ORComboBox1 do
 | 
|---|
| 732 |       if (Text <> '') and (Items.IndexOf (Text) >= 0) then
 | 
|---|
| 733 |         begin
 | 
|---|
| 734 |           ItemIndex := Items.IndexOf(Text);
 | 
|---|
| 735 |           btnAddComponentClick(nil);
 | 
|---|
| 736 |         end;
 | 
|---|
| 737 | end;
 | 
|---|
| 738 | 
 | 
|---|
| 739 | procedure TfrmReportsAdhocComponent1.LoadComponents(Dest: TStrings);
 | 
|---|
| 740 | var
 | 
|---|
| 741 |   sComponents: TStringList;
 | 
|---|
| 742 |   i: integer;
 | 
|---|
| 743 |   s: string;
 | 
|---|
| 744 | begin
 | 
|---|
| 745 |   sComponents := TStringList.Create;
 | 
|---|
| 746 |   if uListState = 0 then
 | 
|---|
| 747 |     begin
 | 
|---|
| 748 |       HSComponents(sComponents);
 | 
|---|
| 749 |       for i := 0 to sComponents.Count - 1 do
 | 
|---|
| 750 |         begin
 | 
|---|
| 751 |           s := sComponents.Strings[i];
 | 
|---|
| 752 |           s := MixedCase(piece(s,'[',1)) + '[' + piece(s,'[',2);
 | 
|---|
| 753 |           sComponents.Strings[i] := s;
 | 
|---|
| 754 |         end;
 | 
|---|
| 755 |     end
 | 
|---|
| 756 |   else  if uListState = 1 then
 | 
|---|
| 757 |     begin
 | 
|---|
| 758 |       HSABVComponents(sComponents);
 | 
|---|
| 759 |       for i := 0 to sComponents.Count - 1 do
 | 
|---|
| 760 |         begin
 | 
|---|
| 761 |           s := sComponents.Strings[i];
 | 
|---|
| 762 |           s := piece(s,'-',1) + '-' + MixedCase(piece(s,'-',2));
 | 
|---|
| 763 |           sComponents.Strings[i] := s;
 | 
|---|
| 764 |         end;
 | 
|---|
| 765 |     end
 | 
|---|
| 766 |   else  if uListState = 2 then
 | 
|---|
| 767 |     begin
 | 
|---|
| 768 |       HSDispComponents(sComponents);
 | 
|---|
| 769 |       for i := 0 to sComponents.Count - 1 do
 | 
|---|
| 770 |         begin
 | 
|---|
| 771 |           s := sComponents.Strings[i];
 | 
|---|
| 772 |           s := MixedCase(piece(s,'[',1)) + '[' + piece(s,'[',2);
 | 
|---|
| 773 |           sComponents.Strings[i] := s;
 | 
|---|
| 774 |         end;
 | 
|---|
| 775 |     end;
 | 
|---|
| 776 |   QuickCopy(sComponents,Dest);
 | 
|---|
| 777 |   sComponents.Free;
 | 
|---|
| 778 | end;
 | 
|---|
| 779 | 
 | 
|---|
| 780 | procedure TfrmReportsAdhocComponent1.rbtnAbbrevClick(Sender: TObject);
 | 
|---|
| 781 | begin
 | 
|---|
| 782 |   inherited;
 | 
|---|
| 783 |   uListState := 1;
 | 
|---|
| 784 |   ORComboBox1.Clear;
 | 
|---|
| 785 |   LoadComponents(ORComboBox1.Items);
 | 
|---|
| 786 |   ORComboBox1.SetFocus;
 | 
|---|
| 787 | end;
 | 
|---|
| 788 | 
 | 
|---|
| 789 | procedure TfrmReportsAdhocComponent1.rbtnNameClick(Sender: TObject);
 | 
|---|
| 790 | begin
 | 
|---|
| 791 |   inherited;
 | 
|---|
| 792 |   uListState := 0;
 | 
|---|
| 793 |   ORComboBox1.Clear;
 | 
|---|
| 794 |   LoadComponents(ORComboBox1.Items);
 | 
|---|
| 795 |   ORComboBox1.SetFocus;
 | 
|---|
| 796 | end;
 | 
|---|
| 797 | 
 | 
|---|
| 798 | procedure TfrmReportsAdhocComponent1.rbtnHeaderClick(Sender: TObject);
 | 
|---|
| 799 | begin
 | 
|---|
| 800 |   inherited;
 | 
|---|
| 801 |   uListState := 2;
 | 
|---|
| 802 |   ORComboBox1.Clear;
 | 
|---|
| 803 |   LoadComponents(ORComboBox1.Items);
 | 
|---|
| 804 |   ORComboBox1.SetFocus;
 | 
|---|
| 805 | end;
 | 
|---|
| 806 | 
 | 
|---|
| 807 | procedure TfrmReportsAdhocComponent1.pnl5ButtonEnter(Sender: TObject);
 | 
|---|
| 808 | begin
 | 
|---|
| 809 |   inherited;
 | 
|---|
| 810 |   (Sender as TPanel).BevelOuter := bvRaised;
 | 
|---|
| 811 | end;
 | 
|---|
| 812 | 
 | 
|---|
| 813 | procedure TfrmReportsAdhocComponent1.pnl5ButtonExit(Sender: TObject);
 | 
|---|
| 814 | begin
 | 
|---|
| 815 |   inherited;
 | 
|---|
| 816 |   (Sender as TPanel).BevelOuter := bvNone;
 | 
|---|
| 817 | end;
 | 
|---|
| 818 | 
 | 
|---|
| 819 | end.
 | 
|---|