From 3aef31190a0e7c7b1815cd28d0b5f26c4e2a8605 Mon Sep 17 00:00:00 2001 From: Sam Habiel Date: Wed, 17 Jun 2020 09:11:57 -0400 Subject: [PATCH] CPRS 31.121 (COVID-19 version) Update NOTE: COVID functionality disabled as the source code that was supplied was not complete. Instead, I compiled as much as is possible for me to move forward. Notable items: - Add enhanced broker logger in uGN_RPCLog & fGN_RPCLog to .dpr file. - A few lines in fFrame.pas are commented out because corresponding source code in uCore.pas isn't supplied. --- .../CPRS/CPRS-Chart/CPRSChart.dpr.in | 6 +- .../CPRS/CPRS-Chart/CPRSChart.dproj.in | 34 ++++-- .../CPRS/CPRS-Chart/fFrame.dfm | 40 +++++-- .../CPRS/CPRS-Chart/fFrame.pas | 112 ++++++++++++++++-- 4 files changed, 160 insertions(+), 32 deletions(-) diff --git a/Packages/Order Entry Results Reporting/CPRS/CPRS-Chart/CPRSChart.dpr.in b/Packages/Order Entry Results Reporting/CPRS/CPRS-Chart/CPRSChart.dpr.in index 206148361..a19a6bba2 100644 --- a/Packages/Order Entry Results Reporting/CPRS/CPRS-Chart/CPRSChart.dpr.in +++ b/Packages/Order Entry Results Reporting/CPRS/CPRS-Chart/CPRSChart.dpr.in @@ -336,8 +336,10 @@ uses mTreeGrid in '@SOURCE@\mTreeGrid.pas' {TreeGridFrame: TFrame}, mColumnTree in '@SOURCE@\mColumnTree.pas' {ColumnTreeFrame: TFrame}, mDrawers in '@SOURCE@\mDrawers.pas' {fraDrawers: TFrame}, - mRadioListView in '@SOURCE@\mRadioListView.pas' {RadioLVFrame: TFrame}; - + mRadioListView in '@SOURCE@\mRadioListView.pas' {RadioLVFrame: TFrame}, + uGN_RPCLog in '@SOURCE@\Tools\uGN_RPCLog.pas', + fGN_RPCLog in '@SOURCE@\Tools\fGN_RPCLog.pas'; + {$R *.TLB} diff --git a/Packages/Order Entry Results Reporting/CPRS/CPRS-Chart/CPRSChart.dproj.in b/Packages/Order Entry Results Reporting/CPRS/CPRS-Chart/CPRSChart.dproj.in index 91883b083..f226844e7 100644 --- a/Packages/Order Entry Results Reporting/CPRS/CPRS-Chart/CPRSChart.dproj.in +++ b/Packages/Order Entry Results Reporting/CPRS/CPRS-Chart/CPRSChart.dproj.in @@ -46,6 +46,7 @@ true + @SOURCE@/CPRSChart_Icon.ico @SOURCE@\..\CPRS-Lib;@SOURCE@\..\VA;@SOURCE@\..\..\..\RPC Broker\BDK\Source;@SOURCE@\..\VA\VA508Accessibility;@SOURCE@\..\PKI;$(DCC_UnitSearchPath);@SOURCE@\XE8\508\Source;@SOURCE@\XE8\Borland\Source;@SOURCE@\XE8\Broker\Source;@SOURCE@\XE8\CopyPaste\Source;@SOURCE@\XE8\ExceptionLogger\Source;@SOURCE@\XE8\FilemanComponents\Source;@SOURCE@\XE8\VA\Source; CPRSChart 3 @@ -54,22 +55,21 @@ true true 31 - 118 + 121 .\dcu $(BDS)\bin\default_app.manifest 00400000 Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;VCLTee;Vcl.Win;System.Win;$(DCC_Namespace) 1033 false - CompanyName=Department of Veterans Affairs;FileDescription=7/17/2019;FileVersion=1.0.31.118;InternalName=1.0.31.118 server required;LegalCopyright=Unauthorized access or misuse of this system and/or its data is a federal crime. Use of all data shall be in accordance with VA policy on security and privacy.;LegalTrademarks=;OriginalFilename=Patch 509;ProductName=Computerized Patient Record System;ProductVersion=1.0.31.118;Comments=Version 1.0.31.118;CFBundleName=;CFBundleDisplayName=;CFBundleIdentifier=;CFBundleVersion=;CFBundlePackageType=;CFBundleSignature=;CFBundleAllowMixedLocalizations=;CFBundleExecutable= + CompanyName=Department of Veterans Affairs;FileDescription=;FileVersion=1.0.31.121;InternalName=1.0.31.121 server required;LegalCopyright=Unauthorized access or misuse of this system and/or its data is a federal crime. Use of all data shall be in accordance with VA policy on security and privacy.;LegalTrademarks=;OriginalFilename=Patch 434;ProductName=Computerized Patient Record System;ProductVersion=1.0.31.121;Comments=Version 1.0.31.121;CFBundleName=;CFBundleDisplayName=;CFBundleIdentifier=;CFBundleVersion=;CFBundlePackageType=;CFBundleSignature=;CFBundleAllowMixedLocalizations=;CFBundleExecutable= false false false false - CompanyName=Department of Veterans Affairs;FileDescription=7/17/2019;FileVersion=1.0.31.118;InternalName=1.0.31.118 server required;LegalCopyright=Unauthorized access or misuse of this system and/or its data is a federal crime. Use of all data shall be in accordance with VA policy on security and privacy.;LegalTrademarks=;OriginalFilename=Patch 509;ProductName=Computerized Patient Record System;ProductVersion=1.0.31.118;Comments=Version 1.0.31.118A;CFBundleName=;CFBundleDisplayName=;CFBundleIdentifier=;CFBundleVersion=;CFBundlePackageType=;CFBundleSignature=;CFBundleAllowMixedLocalizations=;CFBundleExecutable= - @SOURCE@/CPRSChart_Icon.ico + CompanyName=Department of Veterans Affairs;FileDescription=;FileVersion=1.0.31.121;InternalName=1.0.31.121 server required;LegalCopyright=Unauthorized access or misuse of this system and/or its data is a federal crime. Use of all data shall be in accordance with VA policy on security and privacy.;LegalTrademarks=;OriginalFilename=Patch 485;ProductName=Computerized Patient Record System;ProductVersion=1.0.31.121;Comments=Version 1.0.31.121;CFBundleName=;CFBundleDisplayName=;CFBundleIdentifier=;CFBundleVersion=;CFBundlePackageType=;CFBundleSignature=;CFBundleAllowMixedLocalizations=;CFBundleExecutable= .\dcu 00400000 false @@ -90,7 +90,8 @@ RELEASE;$(DCC_Define) - CompanyName=Department of Veterans Affairs;FileDescription=7/17/2019;FileVersion=1.0.31.118;InternalName=1.0.31.118 server required;LegalCopyright=Unauthorized access or misuse of this system and/or its data is a federal crime. Use of all data shall be in accordance with VA policy on security and privacy.;LegalTrademarks=;OriginalFilename=Patch 509;ProductName=Computerized Patient Record System;ProductVersion=1.0.31.118;Comments=Version 1.0.31.118A;CFBundleName=;CFBundleDisplayName=;CFBundleIdentifier=;CFBundleVersion=;CFBundlePackageType=;CFBundleSignature=;CFBundleAllowMixedLocalizations=;CFBundleExecutable= + CompanyName=Department of Veterans Affairs;FileDescription=;FileVersion=1.0.31.121;InternalName=1.0.31.121 server required;LegalCopyright=Unauthorized access or misuse of this system and/or its data is a federal crime. Use of all data shall be in accordance with VA policy on security and privacy.;LegalTrademarks=;OriginalFilename=Patch 485;ProductName=Computerized Patient Record System;ProductVersion=1.0.31.121;Comments=Version 1.0.31.121;CFBundleName=;CFBundleDisplayName=;CFBundleIdentifier=;CFBundleVersion=;CFBundlePackageType=;CFBundleSignature=;CFBundleAllowMixedLocalizations=;CFBundleExecutable= + @SOURCE@/CPRSChart.ico false .\dcu 00400000 @@ -101,6 +102,8 @@ false + @SOURCE@/CPRSChart.ico + CompanyName=Department of Veterans Affairs;FileDescription=;FileVersion=1.0.31.121;InternalName=1.0.31.121 server required;LegalCopyright=Unauthorized access or misuse of this system and/or its data is a federal crime. Use of all data shall be in accordance with VA policy on security and privacy.;LegalTrademarks=;OriginalFilename=Patch 485;ProductName=Computerized Patient Record System;ProductVersion=1.0.31.121;Comments=Version 1.0.31.121;CFBundleName=;CFBundleDisplayName=;CFBundleIdentifier=;CFBundleVersion=;CFBundlePackageType=;CFBundleSignature=;CFBundleAllowMixedLocalizations=;CFBundleExecutable= true 3 false @@ -108,7 +111,7 @@ DEBUG;$(DCC_Define) - CompanyName=Department of Veterans Affairs;FileDescription=7/17/2019;FileVersion=1.0.31.118;InternalName=1.0.31.118 server required;LegalCopyright=Unauthorized access or misuse of this system and/or its data is a federal crime. Use of all data shall be in accordance with VA policy on security and privacy.;LegalTrademarks=;OriginalFilename=Patch 509;ProductName=Computerized Patient Record System;ProductVersion=1.0.31.118;Comments=Version 1.0.31.118A;CFBundleName=;CFBundleDisplayName=;CFBundleIdentifier=;CFBundleVersion=;CFBundlePackageType=;CFBundleSignature=;CFBundleAllowMixedLocalizations=;CFBundleExecutable= + CPRSChart_Icon.ico @@ -962,10 +965,7 @@ - - Microsoft Office 2000 Sample Automation Server Wrapper Components - Microsoft Office XP Sample Automation Server Wrapper Components - + True @@ -976,7 +976,13 @@ False - + + + .\ + true + + + CPRSChart.exe true @@ -988,6 +994,12 @@ true + + + CPRSChart.exe + true + + 1 diff --git a/Packages/Order Entry Results Reporting/CPRS/CPRS-Chart/fFrame.dfm b/Packages/Order Entry Results Reporting/CPRS/CPRS-Chart/fFrame.dfm index 91a3bbf2b..a05b206b8 100644 --- a/Packages/Order Entry Results Reporting/CPRS/CPRS-Chart/fFrame.dfm +++ b/Packages/Order Entry Results Reporting/CPRS/CPRS-Chart/fFrame.dfm @@ -8,14 +8,10 @@ inherited frmFrame: TfrmFrame Menu = mnuFrame OldCreateOrder = True Visible = True - OnActivate = FormActivate - OnClose = FormClose OnCloseQuery = FormCloseQuery - OnCreate = FormCreate - OnDestroy = FormDestroy OnResize = FormResize ExplicitWidth = 819 - ExplicitHeight = 731 + ExplicitHeight = 732 PixelsPerInch = 96 TextHeight = 13 object pnlNoPatientSelected: TPanel [0] @@ -43,7 +39,7 @@ inherited frmFrame: TfrmFrame TabOrder = 0 object bvlPageTop: TBevel Left = 1 - Top = 50 + Top = 91 Width = 801 Height = 2 Margins.Left = 4 @@ -51,7 +47,7 @@ inherited frmFrame: TfrmFrame Margins.Right = 4 Margins.Bottom = 4 Align = alTop - ExplicitWidth = 791 + ExplicitTop = 200 end object pnlToolbar: TPanel Left = 1 @@ -855,7 +851,7 @@ inherited frmFrame: TfrmFrame Font.Name = 'MS Sans Serif' Font.Style = [] ParentFont = False - TabOrder = 1 + TabOrder = 2 TabPosition = tpBottom OnChange = tabPageChange OnMouseDown = tabPageMouseDown @@ -863,9 +859,9 @@ inherited frmFrame: TfrmFrame end object pnlPage: TPanel Left = 1 - Top = 52 + Top = 93 Width = 801 - Height = 577 + Height = 536 Align = alClient BevelOuter = bvNone Font.Charset = DEFAULT_CHARSET @@ -874,7 +870,7 @@ inherited frmFrame: TfrmFrame Font.Name = 'MS Sans Serif' Font.Style = [] ParentFont = False - TabOrder = 2 + TabOrder = 3 object lstCIRNLocations: TORListBox Left = 522 Top = 0 @@ -910,6 +906,25 @@ inherited frmFrame: TfrmFrame CheckEntireLine = True end end + object pnlOtherInfo: TKeyClickPanel + Left = 1 + Top = 50 + Width = 801 + Height = 41 + Align = alTop + Color = clYellow + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentBackground = False + ParentFont = False + TabOrder = 1 + OnClick = pnlOtherInfoClick + OnMouseDown = pnlOtherInfoMouseDown + OnMouseUp = pnlOtherInfoMouseUp + end end inherited amgrMain: TVA508AccessibilityManager Left = 8 @@ -1019,6 +1034,9 @@ inherited frmFrame: TfrmFrame 'Status = stsDefault') ( 'Component = txtCmdFlags' + 'Status = stsDefault') + ( + 'Component = pnlOtherInfo' 'Status = stsDefault')) end object mnuFrame: TMainMenu diff --git a/Packages/Order Entry Results Reporting/CPRS/CPRS-Chart/fFrame.pas b/Packages/Order Entry Results Reporting/CPRS/CPRS-Chart/fFrame.pas index 3087895cc..a99456409 100644 --- a/Packages/Order Entry Results Reporting/CPRS/CPRS-Chart/fFrame.pas +++ b/Packages/Order Entry Results Reporting/CPRS/CPRS-Chart/fFrame.pas @@ -142,6 +142,7 @@ TfrmFrame = class(TfrmBase508Form) DigitalSigningSetup1: TMenuItem; mnuFocusChanges: TMenuItem; txtCmdFlags: TVA508StaticText; + pnlOtherInfo: TKeyClickPanel; procedure tabPageChange(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormResize(Sender: TObject); @@ -255,6 +256,11 @@ TfrmFrame = class(TfrmBase508Form) procedure DigitalSigningSetup1Click(Sender: TObject); procedure mnuFocusChangesClick(Sender: TObject); procedure AppEventsMessage(var Msg: tagMSG; var Handled: Boolean); + procedure pnlOtherInfoClick(Sender: TObject); + procedure pnlOtherInfoMouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + procedure pnlOtherInfoMouseUp(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); private FProccessingNextClick : boolean; FJustEnteredApp : boolean; @@ -293,6 +299,9 @@ TfrmFrame = class(TfrmBase508Form) FOrderPrintForm: boolean; FReviewclick: boolean; FCtrlTabUsed: boolean; + fotherPanelUseColor: boolean; + fotherPanelType: string; + fotherPanelShowReportBox: boolean; procedure RefreshFixedStatusWidth; procedure FocusApplicationTopForm; procedure AppActivated(Sender: TObject); @@ -319,6 +328,7 @@ TfrmFrame = class(TfrmBase508Form) procedure SetupPatient(AFlaggedList : TStringList = nil); procedure RemindersChanged(Sender: TObject); procedure ReportsOnlyDisplay; + procedure setOtherInfoPanel; procedure UMInitiate(var Message: TMessage); message UM_INITIATE; procedure UMNewOrder(var Message: TMessage); message UM_NEWORDER; procedure UMStatusText(var Message: TMessage); message UM_STATUSTEXT; @@ -396,7 +406,7 @@ implementation uses ORNet, rCore, fPtSelMsg, fPtSel, fCover, fProbs, fMeds, fOrders, rOrders, fNotes, fConsults, fDCSumm, - rMisc, Clipbrd, fLabs, fReports, rReports, fPtDemo, fEncnt, fPtCWAD, uCore, fAbout, fReview, {fxBroker,} + rMisc, Clipbrd, fLabs, fReports, rReports, fPtDemo, fEncnt, fPtCWAD, uCore, fAbout, fReview, fxBroker, fxLists, fxServer, ORSystem, fRptBox, fSplash, rODAllergy, uInit, fLabTests, fLabInfo, uGlobalVar, uReminders, fReminderTree, ORClasses, fDeviceSelect, fDrawers, fReminderDialog, ShellAPI, rVitals, fOptions, fGraphs, fGraphData, rTemplates, fSurgery, rSurgery, uEventHooks, uSignItems, @@ -406,8 +416,7 @@ implementation , CCOW_const {$ENDIF} , VA508AccessibilityRouter, fOtherSchedule, VAUtils, uVA508CPRSCompatibility, fIVRoutes, - fPrintLocation, fTemplateEditor, fTemplateDialog, fCombatVet, fFocusedControls, - uGN_RPCLog; + fPrintLocation, fTemplateEditor, fTemplateDialog, fCombatVet, fFocusedControls; var IsRunExecuted: Boolean = FALSE; @@ -713,7 +722,7 @@ procedure TfrmFrame.RefreshFixedStatusWidth; procedure TfrmFrame.FormCreate(Sender: TObject); { connect to server, create tab pages, select a patient, & initialize core objects } var - ClientVer, ServerVer, ServerReq, SAN: string; + ClientVer, ServerVer, ServerReq, SAN, otherPanelControls: string; begin FJustEnteredApp := false; SizeHolder := TSizeHolder.Create; @@ -854,6 +863,33 @@ procedure TfrmFrame.FormCreate(Sender: TObject); Close; Exit; end; + //otherPanelControls := otherInformationPanelControls; + otherPanelControls := '0'; + if Piece(otherPanelControls, U, 1) = '0' then + begin + pnlOtherInfo.Enabled := false; + pnlOtherInfo.Visible := false; + end + else + begin + fotherPanelUseColor := Piece(otherPanelControls, u, 2) = '1'; + if fotherPanelUseColor then + begin + self.pnlOtherInfo.ParentBackground := false; + self.pnlOtherInfo.ParentColor := false; + end + else + begin + pnlOtherInfo.Color := get508CompliantColor(clYellow); + self.pnlOtherInfo.ParentBackground := true; + self.pnlOtherInfo.ParentColor := true; + self.pnlOtherInfo.Color := clBtnFace; + self.pnlOtherInfo.Repaint; + end; + fotherPanelShowReportBox := Piece(otherPanelControls, u, 3) = '1'; + pnlOtherInfo.tabstop := screenReaderActive; + end; + // Global flags set by server IsLeJeuneActive := ServerHasPatch(CampLejeunePatch); SpansIntlDateLine := SiteSpansIntlDateLine; @@ -1231,6 +1267,24 @@ procedure TfrmFrame.SetDebugMenu; Z6.Visible := IsProgrammer; end; +procedure TfrmFrame.setOtherInfoPanel; +var +info: string; +begin + pnlOtherInfo.Caption := ''; + if patient.DFN = '' then exit; + //info := otherInformationPanel(Patient.DFN); + info := 'zzz^booo'; + pnlOtherInfo.Caption := Piece(info, u, 2); + fotherPanelType := Piece(info, u, 1); + if screenReaderActive then + begin + GetScreenReader.Speak(Piece(info, u, 2)); + + end; +// self.pnlOtherInfo.Refresh; +end; + { Updates posted to MainForm --------------------------------------------------------------- } procedure TfrmFrame.UMNewOrder(var Message: TMessage); @@ -1434,6 +1488,7 @@ procedure TfrmFrame.SetupPatient(AFlaggedList : TStringList); SetUpCIRN; DisplayEncounterText; SetShareNode(DFN, Handle); + setOtherInfoPanel; with Patient do NotifyOtherApps(NAE_NEWPT, SSN + U + FloatToStr(DOB) + U + Name); SelectMsg := ''; @@ -1696,6 +1751,8 @@ procedure TfrmFrame.mnuFileOpenClick(Sender: TObject); PtSelCancelled := FALSE; if not FRefreshing then mnuFile.Tag := 0 else mnuFile.Tag := 1; + pnlOtherInfo.Caption := ''; + pnlOtherInfo.Repaint; DetermineNextTab; //if Sender <> mnuFileNext then //CQ 16273 & 16419 - Missing Review/Sign Changes dialog when clicking 'Next' button. ThisSessionChanges := TChanges.Create; @@ -1766,6 +1823,7 @@ procedure TfrmFrame.mnuFileOpenClick(Sender: TObject); TChangeItem(ThisSessionChanges.PCE.Items[i]).DCOrder, TChangeItem(ThisSessionChanges.PCE.Items[i]).Delay); end; + setOtherInfoPanel; Exit; end; finally @@ -1908,7 +1966,10 @@ procedure TfrmFrame.mnuFileOpenClick(Sender: TObject); end; finally if (not FRefreshing) and (Patient.DFN = SaveDFN) then - RemindersStarted := OldRemindersStarted; + begin + RemindersStarted := OldRemindersStarted; + setOtherInfoPanel; + end; FFirstLoad := False; end; {Begin BillingAware} @@ -2630,7 +2691,7 @@ procedure TfrmFrame.ChangeFont(NewFontSize: Integer); end; end; //end VAA - + pnlOtherInfo.Font.Size := NewFontSize; RefreshFixedStatusWidth; FormResize( self ); finally @@ -3561,6 +3622,8 @@ procedure TfrmFrame.UpdatePtInfoOnRefresh; tmpDFN := Patient.DFN; Patient.Clear; Patient.DFN := tmpDFN; + pnlOtherInfo.Caption := ''; + pnlOtherInfo.Repaint; uCore.TempEncounterLoc := 0; //hds7591 Clinic/Ward movement. uCore.TempEncounterLocName := ''; //hds7591 Clinic/Ward movement. uCore.TempEncounterText := ''; @@ -3630,6 +3693,7 @@ procedure TfrmFrame.UpdatePtInfoOnRefresh; FPrevInPatient := True; end; DisplayEncounterText; + setOtherInfoPanel; end; procedure TfrmFrame.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); @@ -4226,7 +4290,7 @@ procedure TfrmFrame.CheckHyperlinkResponse(aContextItemCollection: IDispatch; va PtSubject: string; begin data := IContextItemCollection(aContextItemCollection) ; - anItem := data.Present('[hds_med_va.gov]request.id.name'); + anItem := data.Present('[hds_med_domain]request.id.name'); // Retrieve the ContextItem name and value as strings if anItem <> nil then begin @@ -4296,6 +4360,7 @@ procedure TfrmFrame.ShowEverything; mnuView.Enabled := True; mnuTools.Enabled := True; if FNextButtonActive then FNextButton.Visible := True; +// setOtherInfoPanel; end; @@ -4311,6 +4376,37 @@ procedure TfrmFrame.pnlFlagMouseUp(Sender: TObject; Button: TMouseButton; pnlFlag.BevelOuter := bvRaised; end; +procedure TfrmFrame.pnlOtherInfoClick(Sender: TObject); +var +details: TStrings; +begin + inherited; + if not fotherPanelShowReportBox then exit; + details := TStringList.Create; + try + //otherInformationPanelDetails(patient.DFN, fotherPanelType, details); + ReportBox(details, self.pnlOtherInfo.Caption, True); + finally + FreeAndNil(details); + end; +end; + +procedure TfrmFrame.pnlOtherInfoMouseDown(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); +begin + inherited; + if not fotherPanelShowReportBox then exit; + pnlOtherInfo.BevelOuter := bvLowered; +end; + +procedure TfrmFrame.pnlOtherInfoMouseUp(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); +begin + inherited; + if not fotherPanelShowReportBox then exit; + pnlOtherInfo.BevelOuter := bvRaised; +end; + procedure TfrmFrame.pnlFlagClick(Sender: TObject); begin ViewInfo(mnuViewFlags); @@ -4598,7 +4694,7 @@ procedure TfrmFrame.ViewInfo(Sender: TObject); end; 4:begin if laMHV.Caption = 'MHV' then - ShellExecute(laMHV.Handle, 'open', PChar('http://www.adomadomain.ext/'), '', '', SW_NORMAL); + ShellExecute(laMHV.Handle, 'open', PChar('http://www.myhealth.domain/'), '', '', SW_NORMAL); end; 5:begin if fCover.VAAFlag[0] <> '0' then //'0' means subscriber not found