| [459] | 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.
 | 
|---|