//kt -- Modified with SourceScanner on 8/8/2007 unit fPCEEdit; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ORFn, uPCE, DKLang; type TfrmPCEEdit = class(TForm) btnNew: TButton; btnNote: TButton; lblNew: TMemo; lblNote: TMemo; btnCancel: TButton; Label1: TStaticText; DKLanguageController1: TDKLanguageController; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; function EditPCEData(NoteData: TPCEData): boolean; implementation uses uCore, rCore, fEncnt, fFrame, fEncounterFrame; {$R *.DFM} //const //TX_NEED_VISIT2 = 'A visit is required before entering encounter information.'; <-- original line. //kt 8/8/2007 //TX_NOPCE_TXT1 = 'the encounter date is in the future.'; <-- original line. //kt 8/8/2007 //TX_NOPCE_TXT2 = 'encounter entry has been disabled.'; <-- original line. //kt 8/8/2007 //TX_NOPCE_TXT = 'You can not edit encounter information because '; <-- original line. //kt 8/8/2007 //TX_NOPCE_HDR = 'Can not edit encounter'; <-- original line. //kt 8/8/2007 var TX_NEED_VISIT2 : string; //kt TX_NOPCE_TXT1 : string; //kt TX_NOPCE_TXT2 : string; //kt TX_NOPCE_TXT : string; //kt TX_NOPCE_HDR : string; //kt procedure SetupVars; //kt Added entire function to replace constant declarations 8/8/2007 begin TX_NEED_VISIT2 := DKLangConstW('fPCEEdit_A_visit_is_required_before_entering_encounter_informationx'); TX_NOPCE_TXT1 := DKLangConstW('fPCEEdit_the_encounter_date_is_in_the_futurex'); TX_NOPCE_TXT2 := DKLangConstW('fPCEEdit_encounter_entry_has_been_disabledx'); TX_NOPCE_TXT := DKLangConstW('fPCEEdit_You_can_not_edit_encounter_information_because'); TX_NOPCE_HDR := DKLangConstW('fPCEEdit_Can_not_edit_encounter'); end; var uPCETemp: TPCEData = nil; uPCETempOld: TPCEData = nil; uPatient: string = ''; function EditPCEData(NoteData: TPCEData): boolean; // Returns TRUE if NoteData is edited var frmPCEEdit: TfrmPCEEdit; BtnTxt, NewTxt, txt: string; Ans: integer; begin SetupVars; //kt added 8/8/2007 to replace constants with vars. Result := FALSE; if (Encounter.VisitCategory = 'H') then begin if Assigned(NoteData) then Ans := mrNo else begin // InfoBox('Can not edit admission encounter', 'Error', MB_OK or MB_ICONERROR); <-- original line. //kt 8/8/2007 InfoBox(DKLangConstW('fPCEEdit_Can_not_edit_admission_encounter'), DKLangConstW('fPCEEdit_Error'), MB_OK or MB_ICONERROR); //kt added 8/8/2007 Ans := mrCancel; end; end else if not Assigned(NoteData) then Ans := mrYes else if (NoteData.VisitString = Encounter.VisitStr) then Ans := mrNo else begin frmPCEEdit := TfrmPCEEdit.Create(Application); try if Encounter.NeedVisit then begin // NewTxt := 'Create New Encounter'; <-- original line. //kt 8/8/2007 NewTxt := DKLangConstW('fPCEEdit_Create_New_Encounter'); //kt added 8/8/2007 // BtnTxt := 'New Encounter'; <-- original line. //kt 8/8/2007 BtnTxt := DKLangConstW('fPCEEdit_New_Encounter'); //kt added 8/8/2007 end else begin // NewTxt := 'Edit Encounter for ' + Encounter.LocationName + ' on ' + <-- original line. //kt 8/8/2007 NewTxt := DKLangConstW('fPCEEdit_Edit_Encounter_for')+' ' + Encounter.LocationName + DKLangConstW('fPCEEdit_on') + //kt added 8/8/2007 FormatFMDateTime('mmm dd yyyy hh:nn', Encounter.DateTime); // BtnTxt := 'Edit Current Encounter'; <-- original line. //kt 8/8/2007 BtnTxt := DKLangConstW('fPCEEdit_Edit_Current_Encounter'); //kt added 8/8/2007 end; frmPCEEdit.lblNew.Text := NewTxt; frmPCEEdit.btnNew.Caption := BtnTxt; // frmPCEEdit.lblNote.Text := 'Edit Note Encounter for ' + ExternalName(NoteData.Location, 44) + ' on ' + <-- original line. //kt 8/8/2007 frmPCEEdit.lblNote.Text := DKLangConstW('fPCEEdit_Edit_Note_Encounter_for')+' ' + ExternalName(NoteData.Location, 44) + DKLangConstW('fPCEEdit_on') + //kt added 8/8/2007 FormatFMDateTime('mmm dd yyyy hh:nn', NoteData.VisitDateTime); ans := frmPCEEdit.ShowModal; finally frmPCEEdit.Free; end; end; if ans = mrYes then begin if Encounter.NeedVisit then begin UpdateVisit(8); frmFrame.DisplayEncounterText; end; if Encounter.NeedVisit then begin InfoBox(TX_NEED_VISIT2, TX_NO_VISIT, MB_OK or MB_ICONWARNING); Exit; end; if not assigned(uPCETemp) then uPCETemp := TPCEData.Create; uPCETemp.UseEncounter := True; if not CanEditPCE(uPCETemp) then begin if FutureEncounter(uPCETemp) then txt := TX_NOPCE_TXT1 else txt := TX_NOPCE_TXT2; InfoBox(TX_NOPCE_TXT + txt, TX_NOPCE_HDR, MB_OK or MB_ICONWARNING); Exit; end; uPCETemp.PCEForNote(USE_CURRENT_VISITSTR, uPCETempOld); UpdatePCE(uPCETemp); if not assigned(uPCETempOld) then uPCETempOld := TPCEData.Create; uPCETemp.CopyPCEData(uPCETempOld); end else if ans = mrNo then begin UpdatePCE(NoteData); Result := TRUE; end; end; procedure TfrmPCEEdit.FormCreate(Sender: TObject); begin if uPatient <> Patient.DFN then begin KillObj(@uPCETemp); KillObj(@uPCETempOld); end; uPatient := Patient.DFN; end; initialization finalization KillObj(@uPCETemp); KillObj(@uPCETempOld); uPatient := ''; end.