Recent conversations here have rekindled my angst about the bad rap that VistA is getting. To that point, I asked Nancy to add a session, which I will lead, to discuss VistA’s legacy. But legacy is the wrong word. I want to talk about VistA’s future and brainstorm ideas that could turn into actionable strategies.
If you have ideas and opinions on the future of VistA, this is an opportunity to express them to a receptive audience and maybe take some action. Or just vent.
I’m planning a simple agenda:
Open to suggestions and any particular topics you’d like to cover.
--
--
http://groups.google.com/group/Hardhats
To unsubscribe, send email to Hardhats+u...@googlegroups.com
---
You received this message because you are subscribed to the Google Groups "Hardhats" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hardhats+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/hardhats/!%26!AAAAAAAAAAAuAAAAAAAAAFJzj2ba2QBPqPytJph1JfoBAMO2jhD3dRHOtM0AqgC7tuYAAAAAAA4AABAAAAAYZJJlURBpQYby8EYF91pmAQAAAAA%3D%40aol.com.


Last Completed: RPMS Backend Modernization plan created; ROADMAP consolidated Next Up: Validate against worldvista/rpms (test-middleware.ps1) Phase: Phase 4 — Module Feature Parity / Phase 5 — Evidence Pack Updated: 2026-02-04
Current Status SummaryCompleted:
Auth on all controllers, token expiry, logout
TLS support in BmxTcpClient (IRIS + stunnel for YottaDB)
Toast notifications (ToastContext, showErrorUnless401)
Code splitting (lazyNamed), TypeScript types (api/types.ts)
Boilerplate (dateUtils, rpms, LoadingCard, useAsyncLoad, useSaveWithToast)
FastReport (7 BH reports, 6 scheduling reports)
BH feature parity (Visits, Treatment Plans, Suicide Forms, Case Mgmt, Groups, Intake)
Scheduling data flow (parse BMX, CreateAppointment, Workload, Waiting list CRUD, Check-in/out/No-show)
Gap fixes: C3, H2, H5, M4, M6, H4, H6, M3, M5, M7, L3, L4
AMH Evidence Pack (docs/ui/AMH-.md, docs/mappings/AMH-.md)
RPMS Backend Modernization plan created and integrated
docker-compose.rpms.yml for RPMS + middleware stack
Up Next:
Validate against worldvista/rpms; run test-middleware.ps1
Run Evidence Pack for BSD, AG, or ABM (plan §1.2)
RPMS Backend Phase 1: Docker workflow, baseline regression
Deferred:
Redis (until scaling to multiple middleware instances)
FreeM/RSM (Phase 4 of RPMS Backend Modernization)
Phase
Status
Completion
Phase 1: Evidence & Methodology
Complete
100%
Phase 2: Client Quality (Toast, Types, Code Split)
Complete
100%
Phase 3: Middleware Hardening
Complete
95%
Phase 4: Module Feature Parity
In Progress
70%
Phase 5: Evidence Pack (Per-App)
In Progress
25% (AMH done)
Phase 6: RPMS Backend Modernization
Not Started
0%
Phase 7: Production Readiness
Pending
20%
Module
Package
Status
RPC Catalog
AMH
Behavioral Health
Implemented
AMHG RPCs in RPMS-Electron-Rebuild-Reference §10.3
AG
Patient Registration
Implemented
AGG RPCs in §9.3
BSD
Scheduling
Implemented
SD REM, BSD RPCs
ABM
Third-Party Billing
Implemented (partial)
ABMD RPCs in ABM-REFERENCE
Evidence Pack outputs:
AMH: ui/AMH-evidence-notes.md, mappings/AMH-*.md, ui/AMH-bprm-crosswalk.md
BSD, AG, ABM: Pending (run plan §1.2 Evidence Pack prompt)
Plan
Path
Purpose
Unified Plan
Evidence Pack, Code Drop prompts, architecture, conventions
Plan Review
Implementation state, prioritized recommendations
Gap Analysis
Middleware & Electron gaps (C1–C3, H1–H6, M1–M7, L1–L4)
ABM RPC
ABM billing alignment
UI Accessibility
ARIA, no-inline-styles
RPMS Backend
Mroutine/global modernization (GT.M/YottaDB/FreeM/RSM)
Reference
Architecture, RPC catalogs, middleware API designs
Doc
Path
Purpose
RPMS Database Layer
YottaDB/GT.M/IRIS, stack, Backend Modernization link
Dev Environment
Docker, worldvista/rpms, IRIS Rocky
BMX Integration
BMX/CIA, TLS, RPC
Validation Runbook
Smoke test, 401/400 troubleshooting
Reference Inventory
Module catalog, Evidence Pack/Code Drop paths
Middleware config: Host=localhost, Port=9101, AccessCode=ADAM.01, VerifyCode=USER.002
Copy this to the agent at the start of each session:
Read ROADMAP.md and plan.md in this project. Check the progress markers to see what's completed [x] vs pending [ ]. Tell me: 1. What was last completed 2. What's next 3. Ask if I want to continue When executing prompts: - Run each prompt fully - Test that it works - Update ROADMAP.md after each prompt: - Mark prompt complete: change [ ] to [x] - Update CURRENT STATUS section at top with: Last Completed, Next Up, Updated (today's date) - Continue to next prompt in the phase - Stop at phase boundaries and summarize ERROR HANDLING: - Simple errors (typo, missing import, syntax): fix and continue - STOP and notify me if: - Same error occurs 3+ times after fix attempts - Error requires architectural decision - Error affects multiple files unexpectedly - Tests fail with unclear cause - BMX/RPMS connection fails after retry - Build/compile completely fails - You're unsure of the right approach SERVICES RULES: - Before starting middleware/RPMS, check if already running (don't duplicate) - If port 5001 or 9101 is in use, ask before killing the process - Use docker-compose or worldvista/rpms for RPMS; don't create standalone containers without reason - Wait 5+ seconds between service restarts CRITICAL - SERVICES: - NEVER start middleware/frontend without asking first - ALWAYS check if ports 5001, 9100, 9101 are in use before starting - If RPMS is already running in Docker, USE IT — don't start local duplicates When stopping for error: 1. State: "STOPPING - Complex error encountered" 2. Explain what happened 3. Show the error 4. List 2-3 possible solutions 5. Ask which approach I prefer Do NOT: - Keep retrying the same fix - Make major changes without asking - Skip the prompt and move on - Guess at fixes for unfamiliar RPMS/BMX errorsEvidence Pack prompt (plan §1.2)
Code Drop prompt (plan §1.3)
Per-App workflow (plan §1.4)
Toast notifications (ToastContext, showErrorUnless401)
Code splitting (lazyNamed)
TypeScript types (api/types.ts)
Boilerplate (dateUtils, rpms, LoadingCard, useAsyncLoad, useSaveWithToast)
Auth on all controllers, token expiry, logout
TLS (BmxTcpClient)
Async/CancellationToken, report timeout
RPC probe health check, rate limit
Config validate-before-save
ProblemDetails, API versioning (/api/v1/)
AMH: Visits, Treatment Plans, Suicide Forms, Case Mgmt, Groups, Intake, Reports (FastReport)
BSD: Appointments parse, Create appt, Workload, Waiting list CRUD, Check-in/out/No-show, Reports
AG: Patient search, demographics (AGG RPCs)
ABM: Claims list/detail (ABMD RPCs); Bills, Cashiering stubbed
Verify CreateAppointment and Clinic Workload against site RPMS
AMH
BSD
AG
ABM
See plans/RPMS-Backend-Modernization-Plan.md.
Phase 1: Docker workflow, baseline regression
Phase 2: Vendor abstraction, $ZTRAP
Phase 3: GT.M/YottaDB optimization
Phase 4: FreeM/RSM (optional)
IRIS smoke test (if available)
Stunnel/TLS for production YottaDB
Redis (if scaling)
E2E tests
ToastContext, showErrorUnless401
Code splitting, lazyNamed
api/types.ts, typed client
dateUtils, rpms (pickField, pickString, isNewRecord)
LoadingCard, useAsyncLoad, useSaveWithToast
FastReport (7 BH reports, 6 scheduling reports)
BH: CaseManagement, SuicideForm, CommunityActivity, Group, Visit, TreatmentPlan, Intake
Scheduling: parse BMX, CreateAppointment, Workload, Waiting list add/remove, Check-in/out/No-show
Gap fixes: C3, H1–H6, M1–M7, L3, L4
RPMS Backend Modernization plan created and integrated
docker-compose.rpms.yml
Target: IHS RPMS on YottaDB/GT.M/IRIS; middleware on Windows Server or Linux; Electron desktop app.
Pre-Deployment Checklist:
worldvista/rpms + test-middleware.ps1 pass
Evidence Pack for BSD, AG, ABM (optional)
Stunnel config for production YottaDB (see BMX-INTEGRATION)
IRIS Rocky architecture (see IRIS-RPMS-ROCKY-ARCHITECTURE.md)
Content
Path
WorldVistA routines
reference/source/worldvista/Routines-WVEHR-3.0-Release-2.16-YottaDB-GTM/r/ (~29.6k .m)
RPMS packages
reference/source/Packages/
IHS GUI source
reference/source/IndianHealthService.*, bprm/
BMX
reference/bmx/bmx_0400src/
EngageHealth
../engage-health/renderer/, ../engage-health/middleware/
BMX shared session: Middleware uses single BMX service account; user login validates for UI only. Audit logging traces UserId/UserName on RPCs.
RPMS casing: Use pickField/pickString for varying column names (BMXIEN vs bmxIEN).
401: Do not show toast; ApiAuthHandler redirects to login.
BPRM vs BMX: BPRM (Moonwalk) uses BMW/IRIS SQL; EngageHealth uses BMX RPC. RPC names are site-specific.
The legacy secuity protocal is not what is relied on in production systems.
--
Nancy Anthracite
On Wednesday, February 4, 2026 3:42:15 PM EST Frank Drescher wrote:
> In my little interaction I had with this I thought the biggest obstacle to
> modernization is not VistA but that dreadful RPC broker and legacy security
> protocol with cipher text. I wonder if anybody has considered engineering
> an alternative.
>
> On Wed, Feb 4, 2026, 8:19 AM mikeginsburg via Hardhats <
> hard...@googlegroups.com> wrote:
>
> > Recent conversations here have rekindled my angst about the bad rap that
> > VistA is getting. To that point, I asked Nancy to add a session, which I
> > will lead, to discuss VistA’s legacy. But legacy is the wrong word. I want
> > to talk about VistA’s future and brainstorm ideas that could turn into
> > actionable strategies.
> >
> >
> >
> > If you have ideas and opinions on the future of VistA, this is an
> > opportunity to express them to a receptive audience and maybe take some
> > action. Or just vent.
> >
> >
> >
> > I’m planning a simple agenda:
> >
> > 1. Brainstorming – generate as many ideas as possible
> > 2. Clustering – look for common themes
> > 3. Ripening – figure out where we can go from here.
> >
> >
> >
> > Open to suggestions and any particular topics you’d like to cover.
> >
> > --
> > --
> > http://groups.google.com/group/Hardhats
> > To unsubscribe, send email to Hardhats+u...@googlegroups.com
> >
> > ---
> > You received this message because you are subscribed to the Google Groups
> > "Hardhats" group.
> > To unsubscribe from this group and stop receiving emails from it, send an
> > email to hardhats+u...@googlegroups.com.
> > To view this discussion visit
To view this discussion visit https://groups.google.com/d/msgid/hardhats/382622c3-456a-4e62-ada5-32642e904aa9n%40googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/hardhats/382622c3-456a-4e62-ada5-32642e904aa9n%40googlegroups.com.