Changeset 830 for cprs/trunk/CPRS-Chart/fReminderDialog.pas
- Timestamp:
- Jul 7, 2010, 4:51:54 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
cprs/trunk/CPRS-Chart/fReminderDialog.pas
r456 r830 6 6 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 7 7 ExtCtrls, ORFn, StdCtrls, ComCtrls, Buttons, ORCtrls, uReminders, uConst, 8 ORClasses, fRptBox, Menus, rPCE, uTemplates; 8 ORClasses, fRptBox, Menus, rPCE, uTemplates,fBase508Form, 9 VA508AccessibilityManager, fMHTest; 9 10 10 11 type 11 TfrmRemDlg = class(T Form)12 TfrmRemDlg = class(TfrmBase508Form) 12 13 sb1: TScrollBox; 13 14 sb2: TScrollBox; 14 15 splTxtData: TSplitter; 15 Label1: TLabel;16 16 pnlFrmBottom: TPanel; 17 17 pnlBottom: TPanel; … … 27 27 btnClinMaint: TButton; 28 28 btnVisit: TButton; 29 lblFootnotes: T StaticText;29 lblFootnotes: TLabel; 30 30 procedure FormClose(Sender: TObject; var Action: TCloseAction); 31 31 procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); … … 54 54 FHNCRelated: integer; 55 55 FCVRelated: integer; 56 FSHDRelated: integer; 56 57 FLastWidth: integer; 57 58 FUseBox2: boolean; … … 116 117 uses fNotes, uPCE, uOrders, rOrders, uCore, rMisc, rReminders, 117 118 fReminderTree, uVitals, rVitals, RichEdit, fConsults, fTemplateDialog, 118 uTemplateFields, fRemVisitInfo, rCore; 119 uTemplateFields, fRemVisitInfo, rCore, uVA508CPRSCompatibility, 120 VA508AccessibilityRouter, VAUtils; 119 121 120 122 {$R *.DFM} … … 164 166 Result := frmRemDlg.FReminder; 165 167 end; 168 169 var 170 uRemDlgStarting: boolean = False; 166 171 167 172 procedure ViewRemDlgFromForm(OwningForm: TForm; RemNode: TORTreeNode; Template: TTemplate; … … 172 177 173 178 begin 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.' 190 187 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 191 195 begin 192 if( OwningForm = frmNotes) then193 frmNotes.AssignRemForm196 if(assigned(RemForm.Form)) then 197 Err := 'Reminders currently begin processed on another tab.' 194 198 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; 200 209 end; 201 210 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 213 232 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; 216 241 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; 238 250 end; 239 251 end; … … 242 254 var 243 255 own: TComponent; 244 256 245 257 begin 246 258 if assigned(RemNode) then … … 367 379 procedure TfrmRemDlg.FormCreate(Sender: TObject); 368 380 begin 369 reData.Color := ReadOnlyColor;370 reText.Color := ReadOnlyColor;381 // reData.Color := ReadOnlyColor; 382 // reText.Color := ReadOnlyColor; 371 383 FSCCond := EligbleConditions; 372 384 (* FSCRelated := SCC_NA; … … 548 560 549 561 ClearControls; 562 550 563 FReminder.OnNeedRedraw := ControlsChanged; 551 564 FReminder.OnTextChanged := UpdateText; … … 566 579 sb1.Visible := not FUseBox2; 567 580 FUseBox2 := not FUseBox2; 581 ClearControls; 582 if ScreenReaderSystemActive then 583 amgrMain.RefreshComponents; 568 584 Application.ProcessMessages; // allows new ScrollBox to repaint 569 585 end; … … 651 667 LastCat := BadType; 652 668 tmp := RemForm.PCEObj.StrVisitType(FSCRelated, FAORelated, FIRRelated, 653 FECRelated, FMSTRelated, FHNCRelated, FCVRelated );669 FECRelated, FMSTRelated, FHNCRelated, FCVRelated,FSHDRelated); 654 670 if FProcessingTemplate then 655 671 i := GetReminderData(FReminder, TmpData) … … 720 736 if(assigned(FReminder)) then 721 737 begin 738 try 739 self.btnClear.Enabled := false; 722 740 i := RemindersInProcess.IndexOf(FReminder.IEN); 723 741 if(i >= 0) then … … 730 748 if(OK) then 731 749 begin 750 FReminder.ClearMHTest(FReminder.IEN); 751 if (FReminder.MHTestArray <> nil) and (FReminder.MHTestArray.Count = 0) then FReminder.MHTestArray.Free; 732 752 RemindersInProcess.Delete(i); 733 753 Tmp := (FReminder as TReminder).RemData; // clear should never be active if template … … 737 757 end; 738 758 end; 759 finally 760 self.btnClear.Enabled := true; 761 end; 739 762 end; 740 763 end; … … 742 765 procedure TfrmRemDlg.btnCancelClick(Sender: TObject); 743 766 begin 767 try 768 self.btnCancel.Enabled := false; 744 769 if(KillAll) then 745 770 begin … … 747 772 frmRemDlg.Release; 748 773 frmRemDlg := nil; 774 end; 775 finally 776 self.btnCancel.Enabled := true; 749 777 end; 750 778 end; … … 754 782 i, cnt: integer; 755 783 msg, RemWipe: string; 756 784 ClearMH: boolean; 757 785 758 786 begin … … 760 788 //flag the patient specific dialog to be destroy if not in process. 761 789 RemWipe := ''; 790 ClearMH := false; 762 791 if FProcessingTemplate or FSilent then 763 792 begin … … 797 826 end; 798 827 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; *) 799 847 ResetProcessing(RemWipe); 848 end; 800 849 end; 801 850 … … 954 1003 WHType: TStrings; 955 1004 //Test: String; 956 WHCnt,x: Integer;1005 MHLoc, WHCnt,x: Integer; 957 1006 WHArray: TStringlist; 958 1007 GecRemIen, GecRemStr, RemWipe: String; … … 1029 1078 RemWipe := ''; //AGP CHANGE 24.8 1030 1079 try 1080 self.btnFinish.Enabled := false; 1031 1081 OldRemCount := ProcessedReminders.Count; 1032 1082 if not FProcessingTemplate then … … 1145 1195 Process := FALSE 1146 1196 else 1197 begin 1147 1198 RemForm.NewNoteRE.SelText := TmpText.Text; 1199 SpeakTextInserted; 1200 end; 1148 1201 end; 1149 1202 end; … … 1359 1412 Tmp := ValAndStoreVitals(VitalList); 1360 1413 if (Tmp <> 'True') then 1361 showmessage(Tmp);1414 ShowMsg(Tmp); 1362 1415 end; 1363 1416 … … 1384 1437 if TestStaff <= 0 then 1385 1438 TestStaff := User.DUZ; 1386 if(Piece(MHList[i],U,3) = '1') then1439 if (Piece(MHList[i],U,3) = '1') and (MHDLLFound = false) then 1387 1440 begin 1388 1441 GAFScore := StrToIntDef(Piece(MHList[i],U,6),0); … … 1392 1445 else 1393 1446 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 1394 1456 SaveMentalHealthTest(Piece(MHList[i],U,2), TestDate, TestStaff, 1395 1457 Piece(MHList[i],U,6)); … … 1401 1463 finally 1402 1464 MHList.Free; 1465 if (FReminder.MHTestArray <> nil) and (FReminder.MHTestArray.Count > 0) then FReminder.MHTestArray.Free; 1403 1466 end; 1404 1467 … … 1458 1521 begin 1459 1522 DoOrders := FALSE; 1460 ShowM essage('No Orders Placed.');1523 ShowMsg('No Orders Placed.'); 1461 1524 end; 1462 1525 end; … … 1496 1559 end; 1497 1560 finally 1561 self.btnFinish.Enabled := true; 1498 1562 if(Kill) then 1499 1563 begin … … 1600 1664 frmRemVisitInfo.fraVisitRelated.InitAllow(FSCCond); 1601 1665 frmRemVisitInfo.fraVisitRelated.InitRelated(FSCRelated, FAORelated, 1602 FIRRelated, FECRelated, FMSTRelated, FHNCRelated, FCVRelated );1666 FIRRelated, FECRelated, FMSTRelated, FHNCRelated, FCVRelated, FSHDRelated); 1603 1667 frmRemVisitInfo.dteVitals.FMDateTime := VitalsDate; 1604 1668 frmRemVisitInfo.ShowModal; … … 1609 1673 FVitalsDate := VitalsDate; 1610 1674 frmRemVisitInfo.fraVisitRelated.GetRelated(FSCRelated, FAORelated, 1611 FIRRelated, FECRelated, FMSTRelated, FHNCRelated, FCVRelated );1675 FIRRelated, FECRelated, FMSTRelated, FHNCRelated, FCVRelated, FSHDRelated); 1612 1676 FSCPrompt := FALSE; 1613 1677 UpdateText(nil);
Note:
See TracChangeset
for help on using the changeset viewer.