Ignore:
Timestamp:
Jul 7, 2010, 4:51:54 PM (14 years ago)
Author:
Kevin Toppenberg
Message:

Upgrading to version 27

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cprs/trunk/CPRS-Chart/fReminderDialog.pas

    r456 r830  
    66  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    77  ExtCtrls, ORFn, StdCtrls, ComCtrls, Buttons, ORCtrls, uReminders, uConst,
    8   ORClasses, fRptBox, Menus, rPCE, uTemplates;
     8  ORClasses, fRptBox, Menus, rPCE, uTemplates,fBase508Form,
     9  VA508AccessibilityManager, fMHTest;
    910
    1011type
    11   TfrmRemDlg = class(TForm)
     12  TfrmRemDlg = class(TfrmBase508Form)
    1213    sb1: TScrollBox;
    1314    sb2: TScrollBox;
    1415    splTxtData: TSplitter;
    15     Label1: TLabel;
    1616    pnlFrmBottom: TPanel;
    1717    pnlBottom: TPanel;
     
    2727    btnClinMaint: TButton;
    2828    btnVisit: TButton;
    29     lblFootnotes: TStaticText;
     29    lblFootnotes: TLabel;
    3030    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    3131    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
     
    5454    FHNCRelated: integer;
    5555    FCVRelated: integer;
     56    FSHDRelated: integer;
    5657    FLastWidth: integer;
    5758    FUseBox2: boolean;
     
    116117uses fNotes, uPCE, uOrders, rOrders, uCore, rMisc, rReminders,
    117118  fReminderTree, uVitals, rVitals, RichEdit, fConsults, fTemplateDialog,
    118   uTemplateFields, fRemVisitInfo, rCore;
     119  uTemplateFields, fRemVisitInfo, rCore, uVA508CPRSCompatibility,
     120  VA508AccessibilityRouter, VAUtils;
    119121
    120122{$R *.DFM}
     
    164166    Result := frmRemDlg.FReminder;
    165167end;
     168
     169var
     170  uRemDlgStarting: boolean = False;
    166171
    167172procedure ViewRemDlgFromForm(OwningForm: TForm; RemNode: TORTreeNode; Template: TTemplate;
     
    172177
    173178begin
    174   Err := '';
    175   if assigned(frmRemDlg) then
    176   begin
    177     if IsTemplate then
    178       Err := 'Can not process template while another reminder dialog is being processed.'
    179     else
    180     if frmRemDlg.FProcessingTemplate then
    181       Err := 'Can not process reminder while a reminder dialog template is being processed.'
    182   end;
    183   Update := FALSE;
    184   if Err = '' then
    185   begin
    186     if(RemForm.Form <> OwningForm) then
    187     begin
    188       if(assigned(RemForm.Form)) then
    189         Err := 'Reminders currently begin processed on another tab.'
     179  if uRemDlgStarting then exit;  // CQ#16219 - double click started reminder creation twice
     180  uRemDlgStarting := True;
     181  try
     182    Err := '';
     183    if assigned(frmRemDlg) then
     184    begin
     185      if IsTemplate then
     186        Err := 'Can not process template while another reminder dialog is being processed.'
    190187      else
     188      if frmRemDlg.FProcessingTemplate then
     189        Err := 'Can not process reminder while a reminder dialog template is being processed.'
     190    end;
     191    Update := FALSE;
     192    if Err = '' then
     193    begin
     194      if(RemForm.Form <> OwningForm) then
    191195      begin
    192         if(OwningForm = frmNotes) then
    193           frmNotes.AssignRemForm
     196        if(assigned(RemForm.Form)) then
     197          Err := 'Reminders currently begin processed on another tab.'
    194198        else
    195         if(OwningForm = frmConsults) then
    196           frmConsults.AssignRemForm
    197         else
    198           Err := 'Can not process reminder dialogs on this tab.';
    199         Update := TRUE;
     199        begin
     200          if(OwningForm = frmNotes) then
     201            frmNotes.AssignRemForm
     202          else
     203          if(OwningForm = frmConsults) then
     204            frmConsults.AssignRemForm
     205          else
     206            Err := 'Can not process reminder dialogs on this tab.';
     207          Update := TRUE;
     208        end;
    200209      end;
    201210    end;
    202   end;
    203   if Err <> '' then
    204   begin
    205     InfoBox(Err, 'Reminders in Process', MB_OK or MB_ICONERROR);
    206     exit;
    207   end;
    208 
    209   if(InitDlg and (not assigned(frmRemDlg))) then
    210   begin
    211   //(AGP add) Check for a bad encounter date
    212     if RemForm.PCEObj.DateTime < 0 then
     211    if Err <> '' then
     212    begin
     213      InfoBox(Err, 'Reminders in Process', MB_OK or MB_ICONERROR);
     214      exit;
     215    end;
     216
     217    if(InitDlg and (not assigned(frmRemDlg))) then
     218    begin
     219    //(AGP add) Check for a bad encounter date
     220      if RemForm.PCEObj.DateTime < 0 then
     221        begin
     222          InfoBox('The parent note has an invalid encounter date. Please contact IRM support for assistance.','Warning',MB_OK);
     223          exit;
     224        end;
     225      frmRemDlg := TfrmRemDlg.Create(Application);
     226      frmRemDlg.SetFontSize;
     227      Update := TRUE;
     228    end;
     229    if(assigned(frmRemDlg)) then
     230    begin
     231      if Update then
    213232      begin
    214         InfoBox('The parent note has an invalid encounter date. Please contact IRM support for assistance.','Warning',MB_OK);
    215         exit;
     233        frmRemDlg.FSCRelated  := RemForm.PCEObj.SCRelated;
     234        frmRemDlg.FAORelated  := RemForm.PCEObj.AORelated;
     235        frmRemDlg.FIRRelated  := RemForm.PCEObj.IRRelated;
     236        frmRemDlg.FECRelated  := RemForm.PCEObj.ECRelated;
     237        frmRemDlg.FMSTRelated := RemForm.PCEObj.MSTRelated;
     238        frmRemDlg.FHNCRelated := RemForm.PCEObj.HNCRelated;
     239        frmRemDlg.FCVRelated  := RemForm.PCEObj.CVRelated;
     240        frmRemDlg.FSHDRelated := RemForm.PCEObj.SHADRelated;
    216241      end;
    217     frmRemDlg := TfrmRemDlg.Create(Application);
    218     frmRemDlg.SetFontSize;
    219     Update := TRUE;
    220   end;
    221   if(assigned(frmRemDlg)) then
    222   begin
    223     if Update then
    224     begin
    225       frmRemDlg.FSCRelated  := RemForm.PCEObj.SCRelated;
    226       frmRemDlg.FAORelated  := RemForm.PCEObj.AORelated;
    227       frmRemDlg.FIRRelated  := RemForm.PCEObj.IRRelated;
    228       frmRemDlg.FECRelated  := RemForm.PCEObj.ECRelated;
    229       frmRemDlg.FMSTRelated := RemForm.PCEObj.MSTRelated;
    230       frmRemDlg.FHNCRelated := RemForm.PCEObj.HNCRelated;
    231       frmRemDlg.FCVRelated  := RemForm.PCEObj.CVRelated;
    232     end;
    233     UpdateReminderFinish;
    234     if IsTemplate then
    235       frmRemDlg.ProcessTemplate(Template)
    236     else if assigned(RemNode) then
    237       frmRemDlg.ProcessReminder(RemNode.StringData, RemNode.TreeView.GetNodeID(RemNode, 1, IncludeParentID));
     242      UpdateReminderFinish;
     243      if IsTemplate then
     244        frmRemDlg.ProcessTemplate(Template)
     245      else if assigned(RemNode) then
     246        frmRemDlg.ProcessReminder(RemNode.StringData, RemNode.TreeView.GetNodeID(RemNode, 1, IncludeParentID));
     247    end;
     248  finally
     249    uRemDlgStarting := False;
    238250  end;
    239251end;
     
    242254var
    243255  own: TComponent;
    244  
     256
    245257begin
    246258  if assigned(RemNode) then
     
    367379procedure TfrmRemDlg.FormCreate(Sender: TObject);
    368380begin
    369   reData.Color := ReadOnlyColor;
    370   reText.Color := ReadOnlyColor;
     381 // reData.Color := ReadOnlyColor;
     382//  reText.Color := ReadOnlyColor;
    371383  FSCCond := EligbleConditions;
    372384 (* FSCRelated  := SCC_NA;
     
    548560
    549561    ClearControls;
     562
    550563    FReminder.OnNeedRedraw := ControlsChanged;
    551564    FReminder.OnTextChanged := UpdateText;
     
    566579  sb1.Visible := not FUseBox2;
    567580  FUseBox2 := not FUseBox2;
     581  ClearControls;
     582  if ScreenReaderSystemActive then
     583    amgrMain.RefreshComponents;
    568584  Application.ProcessMessages; // allows new ScrollBox to repaint
    569585end;
     
    651667    LastCat := BadType;
    652668    tmp := RemForm.PCEObj.StrVisitType(FSCRelated, FAORelated, FIRRelated,
    653                           FECRelated, FMSTRelated, FHNCRelated, FCVRelated);
     669                          FECRelated, FMSTRelated, FHNCRelated, FCVRelated,FSHDRelated);
    654670    if FProcessingTemplate then
    655671      i := GetReminderData(FReminder, TmpData)
     
    720736  if(assigned(FReminder)) then
    721737  begin
     738    try
     739    self.btnClear.Enabled := false;
    722740    i := RemindersInProcess.IndexOf(FReminder.IEN);
    723741    if(i >= 0) then
     
    730748      if(OK) then
    731749      begin
     750        FReminder.ClearMHTest(FReminder.IEN);
     751        if (FReminder.MHTestArray <> nil) and (FReminder.MHTestArray.Count = 0) then FReminder.MHTestArray.Free;
    732752        RemindersInProcess.Delete(i);
    733753        Tmp := (FReminder as TReminder).RemData; // clear should never be active if template
     
    737757      end;
    738758    end;
     759    finally
     760      self.btnClear.Enabled := true;
     761    end;
    739762  end;
    740763end;
     
    742765procedure TfrmRemDlg.btnCancelClick(Sender: TObject);
    743766begin
     767  try
     768    self.btnCancel.Enabled := false;
    744769  if(KillAll) then
    745770  begin
     
    747772    frmRemDlg.Release;
    748773    frmRemDlg := nil;
     774  end;
     775  finally
     776    self.btnCancel.Enabled := true;
    749777  end;
    750778end;
     
    754782  i, cnt: integer;
    755783  msg, RemWipe: string;
    756 
     784  ClearMH: boolean;
    757785
    758786begin
     
    760788 //flag the patient specific dialog to be destroy if not in process.
    761789 RemWipe := '';
     790 ClearMH := false;
    762791  if FProcessingTemplate or FSilent then
    763792    begin
     
    797826  end;
    798827  if(Result) then
     828    begin
     829      for i := 0 to RemindersInProcess.Count - 1 do
     830        begin
     831          if (TReminderDialog(TReminder(RemindersInProcess.Objects[i])).MHTestArray <> nil) and
     832             (TReminderDialog(TReminder(RemindersInProcess.Objects[i])).MHTestArray.Count > 0) then
     833             begin
     834               if ClearMH = false then
     835                 begin
     836                   RemoveMHTest('');
     837                   ClearMH := true;
     838                 end;
     839                TReminderDialog(TReminder(RemindersInProcess.Objects[i])).MHTestArray.Free;
     840             end;
     841        end;
     842      (* if (FReminder.MHTestArray <> nil) and (FReminder.MHTestArray.Count > 0) then
     843         begin
     844           RemoveMHTest('');
     845           FReminder.MHTestArray.Free;
     846         end; *)
    799847    ResetProcessing(RemWipe);
     848  end;
    800849end;
    801850
     
    9541003  WHType: TStrings;
    9551004  //Test: String;
    956   WHCnt,x: Integer;
     1005  MHLoc, WHCnt,x: Integer;
    9571006  WHArray: TStringlist;
    9581007  GecRemIen, GecRemStr, RemWipe: String;
     
    10291078  RemWipe := '';   //AGP CHANGE 24.8
    10301079  try
     1080    self.btnFinish.Enabled := false;
    10311081    OldRemCount := ProcessedReminders.Count;
    10321082    if not FProcessingTemplate then
     
    11451195                  Process := FALSE
    11461196                else
     1197                begin
    11471198                  RemForm.NewNoteRE.SelText := TmpText.Text;
     1199                  SpeakTextInserted;
     1200                end;
    11481201              end;
    11491202            end;
     
    13591412                  Tmp := ValAndStoreVitals(VitalList);
    13601413                  if (Tmp <> 'True') then
    1361                     showmessage(Tmp);
     1414                    ShowMsg(Tmp);
    13621415                end;
    13631416
     
    13841437                    if TestStaff <= 0 then
    13851438                      TestStaff := User.DUZ;
    1386                     if(Piece(MHList[i],U,3) = '1') then
     1439                   if (Piece(MHList[i],U,3) = '1') and (MHDLLFound = false) then
    13871440                    begin
    13881441                      GAFScore := StrToIntDef(Piece(MHList[i],U,6),0);
     
    13921445                    else
    13931446                    begin
     1447                      if Piece(MHLIst[i],U,6) = 'New MH dll' then
     1448                        begin
     1449                          //The dll take date and time the original code took only date.
     1450                          if Encounter.Location <> FReminder.PCEDataObj.Location then
     1451                            MHLoc := FReminder.PCEDataObj.Location
     1452                            else MHLoc := Encounter.Location;
     1453                          saveMHTest(Piece(MHList[i],U,2), FloattoStr(FReminder.PCEDataObj.VisitDateTime), InttoStr(MHLoc));
     1454                        end
     1455                      else
    13941456                      SaveMentalHealthTest(Piece(MHList[i],U,2), TestDate, TestStaff,
    13951457                                           Piece(MHList[i],U,6));
     
    14011463            finally
    14021464              MHList.Free;
     1465              if (FReminder.MHTestArray <> nil) and (FReminder.MHTestArray.Count > 0) then FReminder.MHTestArray.Free;
    14031466            end;
    14041467
     
    14581521                  begin
    14591522                    DoOrders := FALSE;
    1460                     ShowMessage('No Orders Placed.');
     1523                    ShowMsg('No Orders Placed.');
    14611524                  end;
    14621525                end;
     
    14961559    end;
    14971560  finally
     1561    self.btnFinish.Enabled := true;
    14981562    if(Kill) then
    14991563    begin
     
    16001664    frmRemVisitInfo.fraVisitRelated.InitAllow(FSCCond);
    16011665    frmRemVisitInfo.fraVisitRelated.InitRelated(FSCRelated, FAORelated,
    1602                 FIRRelated, FECRelated, FMSTRelated, FHNCRelated, FCVRelated);
     1666                FIRRelated, FECRelated, FMSTRelated, FHNCRelated, FCVRelated, FSHDRelated);
    16031667    frmRemVisitInfo.dteVitals.FMDateTime := VitalsDate;
    16041668    frmRemVisitInfo.ShowModal;
     
    16091673        FVitalsDate := VitalsDate;
    16101674      frmRemVisitInfo.fraVisitRelated.GetRelated(FSCRelated, FAORelated,
    1611                 FIRRelated, FECRelated, FMSTRelated, FHNCRelated, FCVRelated);
     1675                FIRRelated, FECRelated, FMSTRelated, FHNCRelated, FCVRelated, FSHDRelated);
    16121676      FSCPrompt := FALSE;
    16131677      UpdateText(nil);
Note: See TracChangeset for help on using the changeset viewer.