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

Uploading from OR_30_258

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cprs/branches/foia-cprs/CPRS-Chart/Orders/fODRad.pas

    r459 r460  
    5656    procedure FormCreate(Sender: TObject);
    5757    procedure cboImTypeChange(Sender: TObject);
    58     procedure FormPaint(Sender: TObject);
    5958    procedure memReasonExit(Sender: TObject);
    6059    procedure FormResize(Sender: TObject);
     
    6564    procedure cboProcedureExit(Sender: TObject);
    6665    procedure cboImTypeExit(Sender: TObject);
     66    procedure FormClose(Sender: TObject; var Action: TCloseAction);
     67    procedure chkIsolationExit(Sender: TObject);
     68    procedure calPreOpExit(Sender: TObject);
     69    procedure cboImTypeDropDownClose(Sender: TObject);
    6770  private
    6871    FLastRadID: string;
     
    7174    FEvtDelayDiv: string;
    7275    FPredefineOrder: boolean;
     76    ImageTypeChanged : boolean;
     77    FFormFirstOpened: boolean;
     78    function NoPregnantSelection : Boolean;
     79    procedure ImageTypeChange;
     80    procedure FormFirstOpened(Sender: TObject);
    7381  protected
    7482    procedure InitDialog; override;
    7583    procedure Validate(var AnErrMsg: string); override;
    76     procedure SetDefaultPregant;   
     84    procedure SetDefaultPregant;
    7785  public
    7886    procedure SetupDialog(OrderAction: Integer; const ID: string); override;
     
    8391{$R *.DFM}
    8492
    85 uses rODBase, rODRad, rOrders, uCore, rCore, fODRadApproval, fODRadConShRes, fLkUpLocation;
     93uses rODBase, rODRad, rOrders, uCore, rCore, fODRadApproval, fODRadConShRes, fLkUpLocation, fFrame,
     94  uFormMonitor;
    8695
    8796const
     
    103112var
    104113  Radiologist, Contract, Research: string ;
    105   AName: string;
     114  AName, IsPregnant: string;
    106115  ALocation, AType: integer;
    107 
     116 
    108117{ TfrmODBase common methods }
    109118
     
    116125  if OrderAction in [ORDER_COPY, ORDER_EDIT, ORDER_QUICK] then with Responses do
    117126  begin
    118     if (OrderAction = ORDER_QUICK) or (OrderAction = ORDER_COPY) then
     127    if (OrderAction = ORDER_QUICK) or (OrderAction = ORDER_EDIT) or (OrderAction = ORDER_COPY) then
    119128      FPredefineOrder := True;
    120129    FEditCopy := True;
     
    125134        for i := 0 to Items.Count-1 do
    126135          if StrToIntDef(Piece(Items[i],U,4), 0) = DisplayGroup then ItemIndex := i;
     136        if OrderAction = ORDER_EDIT then
     137        begin
     138          Enabled := False;
     139          Color := clBtnFace;
     140        end;
    127141     end;
    128142    if Self.EvtID>0 then
     
    171185          end;
    172186      end;
     187    //hds00007460
     188    tmpResp := FindResponseByName('PREGNANT',1);
     189    if tmpResp <> nil then
     190       if Length(tmpResp.EValue)>0 then
     191       begin
     192          IsPregnant := tmpResp.EValue;
     193          if IsPregnant = 'YES' then
     194             radPregnant.Checked := True
     195          else
     196          if IsPregnant = 'NO' then
     197             radPregnantNo.Checked := True
     198          else
     199          if IsPregnant = 'UNKNOWN' then
     200             radPregnantUnknown.Checked := True;
     201       end;
     202    //hds00007460
    173203    Changing := False;
    174204    FEditCopy := False;
    175205    OrderMessage(ImagingMessage(cboProcedure.ItemIEN)) ;
    176206    ControlChange(Self);
     207    FPredefineOrder := False;
    177208  end;
    178209end;
     
    184215begin
    185216  if not FEditCopy then inherited;
     217
    186218  FPreOpDate := '';
    187219  FLastRadID := '';
     
    203235      cboProcedure.Items.Add(FRadCommonCombo.Items[i]);
    204236    if FRadCommonCombo.Items.Count>0 then cboProcedure.InsertSeparator;
     237
    205238    calRequestDate.Text := 'TODAY';
    206239    SetControl(cboAvailMod, 'Modifiers');
     
    286319  with cboCategory do if Length(ItemID)  > 0 then Responses.Update('CLASS',     1, ItemID, Text);
    287320  with cboSubmit do if Length(ItemID)    > 0 then Responses.Update('IMLOC',     1, ItemID, Text);
    288   with radPregnant do if Checked             then Responses.Update('PREGNANT',  1, 'Y'   , 'Yes')
     321  with radPregnant do if Checked                then Responses.Update('PREGNANT',  1, 'Y'   , 'Yes')
    289322                 else if not Enabled         then Responses.Update('PREGNANT',  1, ''    , '');
    290323  with radPregnantNo do if Checked           then Responses.Update('PREGNANT',  1, 'N'   , 'No');
     
    387420  with calRequestDate do
    388421    if FMDateTime = 0 then SetError(TX_NO_DATE);
     422
    389423end;
    390424
    391425procedure TfrmODRad.cboProcedureNeedData(Sender: TObject;
    392426  const StartFrom: string; Direction, InsertAt: Integer);
     427
    393428begin
    394429  inherited ;
    395430  cboProcedure.ForDataUse(SubSetOfRadProcs(DisplayGroup, StartFrom, Direction));
    396 end;
     431 end;
    397432
    398433procedure TfrmODRad.cboAvailModMouseClick(Sender: TObject);
     
    402437  Found: boolean;
    403438begin
     439  if (cboAvailMod.Items.Count < 1) or  //GE 04-30-05 prevent list index out of bounds when empty
     440     (cboAvailMod.ItemIndex < 0) then Exit;
    404441  Found := False;
    405442  with cboAvailMod do x := Items[ItemIndex];
     
    445482   begin
    446483    if ItemID <> FLastRadID then
    447     begin
    448       FLastRadID := ItemID;
    449       if FPredefineOrder then
    450         FPredefineOrder := False;
    451     end else Exit;
     484     begin
     485       FLastRadID := ItemID;
     486       if FPredefineOrder then
     487         FPredefineOrder := False;
     488     end else Exit;
    452489    Changing := True;
    453490    if Sender <> Self then
     
    539576procedure TfrmODRad.FormCreate(Sender: TObject);
    540577begin
     578  FFormFirstOpened := TRUE;
     579  ImageTypeChanged := false;
     580  frmFrame.pnlVisit.Enabled := false;
    541581  AutoSizeDisabled := True;
    542582  inherited;
     
    567607    radPregnantUnknown.Enabled := False;
    568608  end else SetDefaultPregant;
     609  FormMonitorBringToFrontEvent(Self, FormFirstOpened);
    569610end;
    570611
     
    575616begin
    576617  inherited;
    577   if FPredefineOrder then
    578     FPredefineOrder := False;
    579   if Changing or (cboImtype.ItemIndex = -1) then exit;
    580   with cboImType do DisplayGroup := StrToIntDef(Piece(Items[ItemIndex], U, 4), 0) ;
    581   if DisplayGroup = 0 then exit;
    582   CtrlInits.LoadDefaults(ODForRad(Patient.DFN, FEvtDelayDiv, DisplayGroup));   // ODForRad returns TStrings with defaults
    583   FPredefineOrder := False;
    584   InitDialog;
    585 end;
    586 
    587 procedure TfrmODRad.FormPaint(Sender: TObject);
    588 begin
    589   inherited;
    590   with cboImType do
    591     if not FEditCopy and (ItemIEN = 0) and (DroppedDown = False) and (Application.Active)
    592       then DroppedDown := True;
     618  ImageTypeChanged := true;
    593619end;
    594620
     
    679705end;
    680706
     707
    681708procedure TfrmODRad.cboImTypeExit(Sender: TObject);
    682709begin
    683710  inherited;
    684   if FPredefineOrder then Exit
    685   else cboImTypeChange(Self);
     711  ImageTypeChange;
     712end;
     713
     714procedure TfrmODRad.FormClose(Sender: TObject; var Action: TCloseAction);
     715begin
     716  inherited;
     717  frmFrame.pnlVisit.Enabled := true;
     718  FormMonitorBringToFrontEvent(Self, nil);
     719end;
     720
     721procedure TfrmODRad.chkIsolationExit(Sender: TObject);
     722begin
     723  inherited;
     724  //Fix for CQ: 10025
     725  if TabIsPressed() then
     726    if NoPregnantSelection() then
     727      if radPregnant.CanFocus then
     728        radPregnant.SetFocus();
     729end;
     730
     731procedure TfrmODRad.calPreOpExit(Sender: TObject);
     732begin
     733  inherited;
     734  //Fix for CQ: 10025
     735  if ShiftTabIsPressed() then
     736    if NoPregnantSelection() then
     737      if radPregnant.CanFocus then
     738        radPregnant.SetFocus();
     739end;
     740
     741function TfrmODRad.NoPregnantSelection : Boolean;
     742begin
     743  result := not ((radPregnant.Checked) or (radPregnantNo.Checked) or (radPregnantUnknown.Checked));
     744end;
     745
     746procedure TfrmODRad.cboImTypeDropDownClose(Sender: TObject);
     747begin
     748  inherited;
     749  ImageTypeChange;
     750end;
     751
     752procedure TfrmODRad.ImageTypeChange;
     753begin
     754  if not ImageTypeChanged then Exit;
     755  ImageTypeChanged := false;
     756  if FPredefineOrder then
     757    FPredefineOrder := False;
     758  if Changing or (cboImtype.ItemIndex = -1) then exit;
     759  with cboImType do DisplayGroup := StrToIntDef(Piece(Items[ItemIndex], U, 4), 0) ;
     760  if DisplayGroup = 0 then exit;
     761  CtrlInits.LoadDefaults(ODForRad(Patient.DFN, FEvtDelayDiv, DisplayGroup));   // ODForRad returns TStrings with defaults
     762  FPredefineOrder := False;
     763  InitDialog;
     764end;
     765
     766procedure TfrmODRad.FormFirstOpened(Sender: TObject);
     767begin
     768  if(FFormFirstOpened) then
     769  begin
     770    FFormFirstOpened := FALSE;
     771    with cboImType do
     772      if not FEditCopy and (ItemIEN = 0) and (DroppedDown = False) and (Application.Active) then
     773      begin
     774        cboImType.DroppedDown := TRUE;
     775      end;
     776  end;
    686777end;
    687778
Note: See TracChangeset for help on using the changeset viewer.