Module

fODAllgy

Path

C:\CPRS\CPRS30\Orders\fODAllgy.pas

Last Modified

7/15/2014 3:26:40 PM

Units Used in Interface

Name Comments
fODBase -
uConst -

Units Used in Implementation

Name Comments
fAllgyFind -
fPtCWAD -
rCore -
rCover -
rODAllergy -
rODBase -
uCore -

Classes

Name Comments
TfrmODAllergy -

Procedures

Name Owner Declaration Scope Comments
btnAgentClick TfrmODAllergy procedure btnAgentClick(Sender: TObject); Public/Published -
btnCurrentClick TfrmODAllergy procedure btnCurrentClick(Sender: TObject); Public/Published -
btnDateTimeClick TfrmODAllergy procedure btnDateTimeClick(Sender: TObject); Public/Published -
btnRemoveClick TfrmODAllergy procedure btnRemoveClick(Sender: TObject); Public/Published -
cboOriginatorNeedData TfrmODAllergy procedure cboOriginatorNeedData(Sender: TObject; const StartFrom: String; Direction, InsertAt: Integer); Public/Published -
cboSymptomsClick TfrmODAllergy procedure cboSymptomsClick(Sender: TObject); Public/Published -
cboSymptomsKeyDown TfrmODAllergy procedure cboSymptomsKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); Public/Published -
cboSymptomsMouseClick TfrmODAllergy procedure cboSymptomsMouseClick(Sender: TObject); Public/Published -
cboSymptomsNeedData TfrmODAllergy procedure cboSymptomsNeedData(Sender: TObject; const StartFrom: String; Direction, InsertAt: Integer); Public/Published -
ckNoKnownAllergiesClick TfrmODAllergy procedure ckNoKnownAllergiesClick(Sender: TObject); Public/Published -
cmdAcceptClick TfrmODAllergy procedure cmdAcceptClick(Sender: TObject); Public/Published -
ControlChange TfrmODAllergy procedure ControlChange(Sender: TObject); Public/Published -
DisableControls TfrmODAllergy procedure DisableControls; Public/Published -
EnableControls TfrmODAllergy procedure EnableControls; Public/Published -
FormCreate TfrmODAllergy procedure FormCreate(Sender: TObject); Public/Published -
FormDestroy TfrmODAllergy procedure FormDestroy(Sender: TObject); Public/Published -
grpObsHistClick TfrmODAllergy procedure grpObsHistClick(Sender: TObject); Public/Published -
InitDialog TfrmODAllergy procedure InitDialog; override; Protected -
lstAllergyClick TfrmODAllergy procedure lstAllergyClick(Sender: TObject); Public/Published -
lstAllergySelect TfrmODAllergy procedure lstAllergySelect(Sender: TObject); Public/Published -
memCommentsExit TfrmODAllergy procedure memCommentsExit(Sender: TObject); Public/Published -
memCommentsKeyUp TfrmODAllergy procedure memCommentsKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); Public/Published -
SetError - procedure SetError(const x: string); Local -
SetupDialog TfrmODAllergy procedure SetupDialog(OrderAction: Integer; const ID: string); override; Public -
Validate TfrmODAllergy procedure Validate(var AnErrMsg: string); override; Protected -

Global Variables

Name Type Declaration Comments
AllergyList TStringList AllergyList: TStringList; -
frmODAllergy TfrmODAllergy frmODAllergy: TfrmODAllergy; -

Constants

Name Declaration Scope Comments
TX_BAD_DATE 'Dates must be in the format m/d/y or m/y or y, or T-d.' Global -
TX_CAP_FUTURE 'Invalid date' Global -
TX_NO_ALLERGY 'An allergy must be specified.' Global -
TX_NO_FUTURE_DATES 'Dates in the future are not allowed.' Global -
TX_NO_OBSERVER 'An observer must be selected for this allergy and reaction .' Global -
TX_NO_REACTION 'A reaction type must be entered for this allergy.' Global -
TX_NO_SYMPTOMS 'Symptoms must be selected for this observed allergy and reaction.' Global -


Module Source

1     unit fODAllgy;
2     {$O-}
3     interface
4     
5     uses
6       SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
7       Forms, Dialogs, StdCtrls, ORCtrls, ORfn, fODBase, ExtCtrls, ComCtrls, uConst,
8       Menus, ORDtTm, Buttons, VA508AccessibilityManager;
9     
10    type
11      TfrmODAllergy = class(TfrmODBase)
12        btnAgent: TSpeedButton;
13        cboReactionType: TORComboBox;
14        lblReactionType: TOROffsetLabel;
15        lblAgent: TOROffsetLabel;
16        lblSymptoms: TOROffsetLabel;
17        lblSelectedSymptoms: TOROffsetLabel;
18        grpObsHist: TRadioGroup;
19        memComments: TRichEdit;
20        lblComments: TOROffsetLabel;
21        lstSelectedSymptoms: TORListBox;
22        ckNoKnownAllergies: TCheckBox;
23        cboOriginator: TORComboBox;
24        lblOriginator: TOROffsetLabel;
25        Bevel1: TBevel;
26        lstAllergy: TORListBox;
27        cboSymptoms: TORComboBox;
28        dlgReactionDateTime: TORDateTimeDlg;
29        btnCurrent: TButton;
30        lblObservedDate: TOROffsetLabel;
31        calObservedDate: TORDateBox;
32        lblSeverity: TOROffsetLabel;
33        cboSeverity: TORComboBox;
34        btnRemove: TButton;
35        btnDateTime: TButton;
36        procedure btnAgentClick(Sender: TObject);
37        procedure FormCreate(Sender: TObject);
38        procedure cboOriginatorNeedData(Sender: TObject; const StartFrom: String;
39          Direction, InsertAt: Integer);
40        procedure cboSymptomsNeedData(Sender: TObject; const StartFrom: String;
41          Direction, InsertAt: Integer);
42        procedure lstAllergySelect(Sender: TObject);
43        procedure grpObsHistClick(Sender: TObject);
44        procedure ControlChange(Sender: TObject);
45        procedure memCommentsExit(Sender: TObject);
46        procedure cboSymptomsClick(Sender: TObject);
47        procedure FormDestroy(Sender: TObject);
48        procedure ckNoKnownAllergiesClick(Sender: TObject);
49        procedure EnableControls;
50        procedure DisableControls;
51        procedure cmdAcceptClick(Sender: TObject);
52        procedure btnCurrentClick(Sender: TObject);
53        procedure btnRemoveClick(Sender: TObject);
54        procedure lstAllergyClick(Sender: TObject);
55        procedure btnDateTimeClick(Sender: TObject);
56        procedure cboSymptomsKeyDown(Sender: TObject; var Key: Word;
57          Shift: TShiftState);
58        procedure cboSymptomsMouseClick(Sender: TObject);
59        procedure memCommentsKeyUp(Sender: TObject; var Key: Word;
60          Shift: TShiftState);
61      private
62        FLastAllergyID: string;
63        FNKAOrder: boolean;
64      protected
65        procedure InitDialog; override;
66        procedure Validate(var AnErrMsg: string); override;
67      public
68        procedure SetupDialog(OrderAction: Integer; const ID: string); override;
69      end;
70    
71    var
72      frmODAllergy: TfrmODAllergy;
73      AllergyList: TStringList;
74    
75    implementation
76    
77    {$R *.DFM}
78    
79    uses
80        rODBase, uCore, rCore, rCover, rODAllergy, fAllgyFind, fPtCWAD;
81    
82    const
83      TX_NO_ALLERGY       = 'An allergy must be specified.'    ;
84      TX_NO_REACTION      = 'A reaction type must be entered for this allergy.'  ;
85      TX_NO_SYMPTOMS      = 'Symptoms must be selected for this observed allergy and reaction.';
86      TX_NO_OBSERVER      = 'An observer must be selected for this allergy and reaction .';
87      TX_NO_FUTURE_DATES  = 'Dates in the future are not allowed.';
88      TX_BAD_DATE         = 'Dates must be in the format m/d/y or m/y or y, or T-d.';
89      TX_CAP_FUTURE       = 'Invalid date';
90    
91    procedure TfrmODAllergy.FormCreate(Sender: TObject);
92    begin
93      inherited;
94      AllergyList := TStringList.Create;
95      AllowQuickOrder := False;
96      FillerID := 'GMRD';                     // does 'on Display' order check **KCM**
97      StatusText('Loading Dialog Definition');
98      Responses.Dialog := 'GMRAOR ALLERGY ENTER/EDIT';   // loads formatting info
99      StatusText('Loading Default Values');
100     CtrlInits.LoadDefaults(ODForAllergies);  // returns TStrings with defaults
101     StatusText('Initializing Long List');
102     CtrlInits.SetControl(cboSymptoms, 'Top Ten');
103     cboSymptoms.InsertSeparator;
104     cboOriginator.InitLongList(User.Name) ;
105     cboOriginator.SelectByIEN(User.DUZ);
106     PreserveControl(cboSymptoms);
107     PreserveControl(cboOriginator);
108     InitDialog;
109     btnAgentClick(Self);
110   end;
111   
112   procedure TfrmODAllergy.InitDialog;
113   begin
114     inherited;
115     Changing := True;
116     with CtrlInits do
117       begin
118         SetControl(cboReactionType, 'Reactions');
119         SetControl(cboSeverity, 'Severity');
120       end;
121     lstAllergy.Items.Add('-1^Click button to search ---->');
122     grpObsHist.ItemIndex := 1;
123     calObservedDate.Text := ''; //FMDateTime := FMNow;
124     cboSeverity.ItemIndex := -1;
125     cboSymptoms.ItemIndex := -1;
126     memComments.Clear;
127     ListAllergies(AllergyList);
128     with AllergyList do
129       if Count > 0 then
130         begin
131           if Piece(Strings[0], U, 1) = '' then
132             ckNoKnownAllergies.Enabled := True
133           else
134             ckNoKnownAllergies.Enabled := False;
135         end
136       else
137         ckNoKnownAllergies.Enabled := True;
138     StatusText('');
139     memOrder.Clear ;
140     Changing := False;
141   end;
142   
143   procedure TfrmODAllergy.SetupDialog(OrderAction: Integer; const ID: string);
144   begin
145     inherited;
146     if OrderAction in [ORDER_COPY, ORDER_EDIT, ORDER_QUICK] then with Responses do
147     begin
148       SetControl(lstAllergy,          'ITEM',   1);
149       lstAllergySelect(Self);
150       Changing := True;
151       SetControl(cboReactionType,     'TYPE',     1);
152       SetControl(lstSelectedSymptoms, 'REACTION',     1);     // need dates concatenated  - see cboSymptomsClick
153       SetControl(grpObsHist,          'OBSERVED',     1);
154       SetControl(calObservedDate,     'START',     1);
155       SetControl(cboSeverity,         'SEVERITY',     1);
156       SetControl(memComments,         'COMMENT',   1);
157       SetControl(ckNoKnownAllergies,  'NKA',       1);
158       SetControl(cboOriginator,       'PROVIDER',  1);
159       Changing := False;
160       ControlChange(Self);
161     end;
162   end;
163   
164   procedure TfrmODAllergy.Validate(var AnErrMsg: string);
165   var
166     tmpDate: TFMDateTime;
167   const
168     TX_NO_LOCATION = 'A location must be identified.' + CRLF +
169                      '(Select File | Update Provider/Location)';
170     TX_NO_PROVIDER = 'A provider who is authorized to write orders must be indentified.' + CRLF +
171                      '(Select File | Update Provider/Location)';
172   
173     procedure SetError(const x: string);
174     begin
175       if Length(AnErrMsg) > 0 then AnErrMsg := AnErrMsg + CRLF;
176       AnErrMsg := AnErrMsg + x;
177     end;
178   
179   begin
180   //  inherited;    v14a -  do not reject past dates - historical would not be allowed
181     AnErrMsg := '';
182     if User.NoOrdering then AnErrMsg := 'Ordering has been disabled.  Press Quit.';
183     if not ckNoKnownAllergies.Checked then
184       begin
185         if lstAllergy.Items.Count = 0 then SetError(TX_NO_ALLERGY)
186         else if (Length(lstAllergy.DisplayText[0]) = 0) or
187            (Piece(lstAllergy.Items[0], U, 1) = '-1') then SetError(TX_NO_ALLERGY);
188         if (grpObsHist.ItemIndex = 0) and (lstSelectedSymptoms.Items.Count = 0)   then SetError(TX_NO_SYMPTOMS);
189         if cboReactionType.ItemID = '' then
190           SetError(TX_NO_REACTION)
191         else
192           Responses.Update('TYPE', 1, cboReactionType.ItemID, cboReactionType.Text);
193       end;
194     if cboOriginator.ItemIEN = 0             then SetError(TX_NO_OBSERVER);
195     if calObservedDate.Text <> '' then
196       begin
197         tmpDate := ValidDateTimeStr(calObservedDate.Text, 'TS');
198         if tmpDate > FMNow then  SetError(TX_NO_FUTURE_DATES);
199         if tmpDate < 0 then SetError(TX_BAD_DATE);
200       end;
201     if (Encounter.Location = 0) and not(Self.EvtID>0) then AnErrMsg := TX_NO_LOCATION;
202     if (Encounter.Provider = 0) or (PersonHasKey(Encounter.Provider, 'PROVIDER') = False)
203       then AnErrMsg := TX_NO_PROVIDER;
204   end;
205   
206   procedure TfrmODAllergy.cboOriginatorNeedData(Sender: TObject;
207     const StartFrom: string; Direction, InsertAt: Integer);
208   begin
209     inherited;
210     cboOriginator.ForDataUse(SubSetOfPersons(StartFrom, Direction));
211   end;
212   
213   procedure TfrmODAllergy.cboSymptomsNeedData(Sender: TObject;
214     const StartFrom: string; Direction, InsertAt: Integer);
215   begin
216     inherited;
217     cboSymptoms.ForDataUse(SubsetofSymptoms(StartFrom, Direction));
218   end;
219   
220   procedure TfrmODAllergy.grpObsHistClick(Sender: TObject);
221   begin
222     inherited;
223     Changing := True;
224     cboSeverity.ItemIndex := -1;
225     case grpObsHist.ItemIndex of
226       0:  begin
227             cboSeverity.Visible := True;
228             lblSeverity.Visible := True;
229           end;
230       1:  begin
231             cboSeverity.Visible := False;
232             lblSeverity.Visible := False;
233           end;
234     end;
235     Changing := False;
236     ControlChange(Self);
237   end;
238   
239   procedure TfrmODAllergy.ControlChange(Sender: TObject);
240   var
241     i: integer;
242     tmpDate: TFMDateTime;
243   begin
244     inherited;
245     if Changing then Exit;
246     Responses.Clear;
247     if ckNoKnownAllergies.Checked then
248       begin
249         Responses.Update('NKA',       1, 'NKA', 'No Known Allergies');
250         with cboOriginator       do if ItemIEN      > 0 then Responses.Update('PROVIDER',  1, ItemID, Text);
251       end
252     else
253       with lstAllergy          do
254         if (Items.Count > 0) then
255           if (Piece(Items[0], U, 1) <>  '-1') and (Length(DisplayText[0]) > 0) then
256             begin
257               Responses.Update('ITEM', 1, DisplayText[0], DisplayText[0]);
258               with cboReactionType     do if ItemID     <> '' then Responses.Update('TYPE', 1, ItemID, Text);
259               with lstSelectedSymptoms do for i := 0 to Items.Count - 1 do
260                 begin
261                   Responses.Update('REACTION', i+1, Piece(Items[i],U,1), Piece(Items[i],U,2));
262                   Responses.Update('REACTDT',  i+1, Piece(Items[i],U,3), Piece(Items[i],U,4));
263                 end;
264               with grpObsHist          do if ItemIndex   > -1 then
265                                           if ItemIndex = 0    then Responses.Update('OBSERVED',     1, 'o', 'Observed')
266                                           else                     Responses.Update('OBSERVED',     1, 'h', 'Historical');
267               with calObservedDate do
268                 begin
269                   tmpDate := ValidDateTimeStr(calObservedDate.Text, 'TS');
270                   if tmpDate   > 0 then Responses.Update('START',     1, FloatToStr(tmpDate), Text);
271                 end;
272               with cboSeverity         do if ItemID     <> '' then Responses.Update('SEVERITY',     1, ItemID, Text);
273               with cboOriginator       do if ItemIEN      > 0 then Responses.Update('PROVIDER',  1, ItemID, Text);
274               with memComments         do if GetTextLen   > 0 then Responses.Update('COMMENT',   1, TX_WPTYPE, Text);
275             end;
276     memOrder.Text := Responses.OrderText;
277   end;
278   
279   procedure TfrmODAllergy.lstAllergySelect(Sender: TObject);
280   begin
281     inherited;
282     with lstAllergy do
283       begin
284         if Items.Count = 0 then
285           Exit
286         else if Piece(Items[0], U, 1) = '-1' then
287           Exit;
288         if Piece(Items[0], U, 1) <> FLastAllergyID then FLastAllergyID := Piece(Items[0], U, 1) else Exit;
289         Changing := True;
290         if Sender <> Self then Responses.Clear;       // Sender=Self when called from SetupDialog
291         Changing := False;
292         if CharAt(Piece(Items[0], U, 1), 1) = 'Q' then
293           begin
294             Responses.QuickOrder := ExtractInteger(Piece(Items[0], U, 1));
295             Responses.SetControl(lstAllergy, 'ITEM', 1);
296             FLastAllergyID := Piece(Items[0], U, 1);
297           end;
298       end;
299     with Responses do if QuickOrder > 0 then
300       begin
301       SetControl(lstAllergy,          'ITEM',   1);
302       lstAllergySelect(Self);
303       Changing := True;
304       SetControl(cboReactionType,     'TYPE',     1);
305       SetControl(lstSelectedSymptoms, 'REACTION',     1);
306       SetControl(grpObsHist,          'OBSERVED',     1);
307       SetControl(calObservedDate,     'START',     1);
308       SetControl(cboSeverity,         'SEVERITY',     1);
309       SetControl(memComments,         'COMMENT',   1);
310       SetControl(ckNoKnownAllergies,  'NKA',       1);
311       SetControl(cboOriginator,       'PROVIDER',  1);
312       end;
313     ControlChange(Self) ;
314   end;
315   
316   procedure TfrmODAllergy.memCommentsExit(Sender: TObject);
317   var
318     AStringList: TStringList;
319   begin
320     inherited;
321     AStringList := TStringList.Create;
322     try
323       FastAssign(memComments.Lines, AStringList);
324       LimitStringLength(AStringList, 74);
325       QuickCopy(AstringList, memComments);
326       ControlChange(Self);
327     finally
328       AStringList.Free;
329     end;
330   end;
331   
332   procedure TfrmODAllergy.btnAgentClick(Sender: TObject);
333   var
334     Allergy: string;
335   begin
336     inherited;
337     AllergyLookup(Allergy, ckNoKnownAllergies.Enabled);
338     if Piece(Allergy, U, 1) = '-1' then
339       ckNoKnownAllergies.Checked := True
340     else
341       if Allergy <> '' then
342         begin
343           lstAllergy.Clear;
344           lstAllergy.Items.Add(Allergy);
345           cboReactionType.SelectByID(Piece(Allergy, U, 4));
346         end
347     else
348       Close;
349     ControlChange(lstAllergy);
350   end;
351   
352   procedure TfrmODAllergy.cboSymptomsClick(Sender: TObject);
353   begin
354     inherited;
355     if cboSymptoms.ItemIndex < 0 then exit;
356     Changing := True;
357     if lstSelectedSymptoms.SelectByID(cboSymptoms.ItemID) > -1 then exit;
358     with lstSelectedSymptoms do
359       begin
360         Items.Add(cboSymptoms.Items[cboSymptoms.ItemIndex]);
361         SelectByID(cboSymptoms.ItemID);
362       end;
363     Changing := False;
364     ControlChange(Self)
365   end;
366   
367   procedure TfrmODAllergy.FormDestroy(Sender: TObject);
368   begin
369     AllergyList.Free;
370     inherited;
371   end;
372   
373   procedure TfrmODAllergy.ckNoKnownAllergiesClick(Sender: TObject);
374   begin
375     inherited;
376     if ckNoKnownAllergies.Checked then
377       begin
378         DisableControls;
379         FNKAOrder := True;
380       end
381     else
382       begin
383         EnableControls;
384         FNKAOrder := False;
385       end;
386     ControlChange(Self);
387   end;
388   
389   procedure TfrmODAllergy.DisableControls;
390   begin
391      InitDialog;
392      btnAgent.Enabled            := False;
393      cboReactionType.Enabled     := False;
394      lblReactionType.Enabled     := False;
395      lblAgent.Enabled            := False;
396      lblSymptoms.Enabled         := False;
397      lblSelectedSymptoms.Enabled := False;
398      grpObsHist.Enabled          := False;
399      memComments.Enabled         := False;
400      lblComments.Enabled         := False;
401      lstSelectedSymptoms.Enabled := False;
402      lblObservedDate.Enabled     := False;
403      calObservedDate.Enabled     := False;
404      lblSeverity.Enabled         := False;
405      cboSeverity.Enabled         := False;
406      lstAllergy.Enabled          := False;
407      cboSymptoms.Enabled         := False;
408      btnDateTime.Enabled         := False;
409   end;
410   
411   procedure TfrmODAllergy.EnableControls;
412   begin
413      InitDialog;
414      btnAgent.Enabled            := True;
415      cboReactionType.Enabled     := True;
416      lblReactionType.Enabled     := True;
417      lblAgent.Enabled            := True;
418      lblSymptoms.Enabled         := True;
419      lblSelectedSymptoms.Enabled := True;
420      grpObsHist.Enabled          := True;
421      memComments.Enabled         := True;
422      lblComments.Enabled         := True;
423      lstSelectedSymptoms.Enabled := True;
424      lblObservedDate.Enabled     := True;
425      calObservedDate.Enabled     := True;
426      lblSeverity.Enabled         := True;
427      cboSeverity.Enabled         := True;
428      lstAllergy.Enabled          := True;
429      cboSymptoms.Enabled         := True;
430      btnDateTime.Enabled         := True;
431   end;
432   
433   procedure TfrmODAllergy.cmdAcceptClick(Sender: TObject);
434   begin
435     if not FNKAOrder then
436       inherited
437     else
438       if ValidSave then
439         begin
440           ckNoKnownAllergies.Checked := False;
441           memOrder.Clear;
442           Responses.Clear;    // to allow form to close without prompting to save order
443           Close;
444         end;
445   end;
446   
447   procedure TfrmODAllergy.btnCurrentClick(Sender: TObject);
448   begin
449     inherited;
450     ShowCWAD;
451   end;
452   
453   
454   procedure TfrmODAllergy.btnRemoveClick(Sender: TObject);
455   var
456     i: integer;
457   begin
458     inherited;
459     with lstSelectedSymptoms do
460       begin
461         if (Items.Count = 0) or (ItemIndex = -1) then exit;
462         i := ItemIndex;
463         Items.Delete(ItemIndex);
464         ItemIndex := i - 1;
465         if (Items.Count > 0) and (ItemIndex = -1) then ItemIndex := 0;
466       end;
467   end;
468   
469   procedure TfrmODAllergy.lstAllergyClick(Sender: TObject);
470   begin
471     inherited;
472     lstAllergy.ItemIndex := -1;
473   end;
474   
475   procedure TfrmODAllergy.btnDateTimeClick(Sender: TObject);
476   begin
477     inherited;
478     with lstSelectedSymptoms do
479       begin
480         if (Items.Count = 0) or (ItemIndex = -1) then exit;
481         dlgReactionDateTime.FMDateTime := FMNow;
482         if not dlgReactionDateTime.Execute then exit;
483         if dlgReactionDateTime.FMDateTime > FMNow then
484           InfoBox(TX_NO_FUTURE_DATES, TX_CAP_FUTURE, MB_OK)
485         else
486           Items[ItemIndex] := Items[ItemIndex] + U + FloatToStr(dlgReactionDateTime.FMDateTime) + U + FormatFMDateTime('mmm dd,yyyy@hh:nn', dlgReactionDateTime.FMDateTime);
487       end;
488   end;
489   
490   procedure TfrmODAllergy.cboSymptomsKeyDown(Sender: TObject; var Key: Word;
491     Shift: TShiftState);
492   begin
493     inherited;
494     if Key = VK_RETURN then cboSymptomsMouseClick(Self);
495   end;
496   
497   procedure TfrmODAllergy.cboSymptomsMouseClick(Sender: TObject);
498   var
499     x: string;
500   begin
501     inherited;
502     if cboSymptoms.ItemIndex < 0 then exit;
503     Changing := True;
504     if lstSelectedSymptoms.SelectByID(cboSymptoms.ItemID) > -1 then exit;
505     with cboSymptoms do
506       if Piece(Items[ItemIndex], U, 3) <> '' then
507         x := ItemID + U + Piece(Items[ItemIndex], U, 3)
508       else
509         x := ItemID + U + Piece(Items[ItemIndex], U, 2);
510     with lstSelectedSymptoms do
511       begin
512         Items.Add(x);
513         SelectByID(cboSymptoms.ItemID);
514       end;
515     Changing := False;
516     ControlChange(Self)
517   end;
518   
519   procedure TfrmODAllergy.memCommentsKeyUp(Sender: TObject; var Key: Word;
520     Shift: TShiftState);
521   begin
522     inherited;
523     if (Key = VK_TAB) then
524     begin
525       if ssShift in Shift then
526       begin
527         FindNextControl(Sender as TWinControl, False, True, False).SetFocus; //previous control
528         Key := 0;
529       end
530       else if ssCtrl	in Shift then
531       begin
532         FindNextControl(Sender as TWinControl, True, True, False).SetFocus; //next control
533         Key := 0;
534       end;
535     end;
536     if (key = VK_ESCAPE) then begin
537       FindNextControl(Sender as TWinControl, False, True, False).SetFocus; //previous control
538       key := 0;
539     end;
540   end;
541   
542   end.

Module Calls (2 levels)


fODAllgy
 ├fODBase
 │ ├fAutoSz
 │ ├uConst
 │ ├rOrders
 │ ├rODBase
 │ ├uCore
 │ ├UBAGlobals
 │ ├UBACore
 │ ├fOCAccept
 │ ├uODBase
 │ ├rCore
 │ ├rMisc
 │ ├fTemplateDialog
 │ ├uEventHooks
 │ ├uTemplates
 │ ├rConsults
 │ ├fOrders
 │ ├uOrders
 │ ├fFrame
 │ ├fODDietLT
 │ └rODDiet
 ├uConst
 ├uCore...
 ├rCore...
 ├rCover
 │ ├uConst
 │ ├fFrame...
 │ ├uCore...
 │ ├rMeds
 │ └uReminders
 ├rODAllergy
 │ ├rCore...
 │ ├uCore...
 │ └rMisc...
 ├fAllgyFind
 │ ├fAutoSz...
 │ ├rODAllergy...
 │ └fARTFreeTextMsg
 └fPtCWAD
   ├fAutoSz...
   ├rCover...
   ├fRptBox
   ├uCore...
   └uConst

Module Called-By (2 levels)

-