Continuity of Veteran Care

Allergies

Before running the following, follow the nodeVISTA Introduction on how to setup the nodeVISTA management client and CPRS.

A discussion on nodeVISTA emulation statistics can be found below in the Emulation Statistics section below.

Demo Procedures

The following shows creation, reading and removal of Patient Allergies using CPRS, VISTA’s client, running over a nodeVISTA manager. CPRS may think it’s running over a 20 year old RPC interface but it’s actually invoking RPCs through an RPC Emulator that runs over nodeVISTA. The nodeVISTA Manager shows not only what CPRS sends and receives but also the underlying MVDM activity.

Running the following demonstrates that re-housing the old RPC interface over a modern, CRUD-based object model provides a new level of auditing and access control for VISTA and lays bare the behavior of the system.

Create an Allergy

Unlike other domains such as Problems or Documents, Allergies don’t have their own tab in CPRS. You start Allergy creation with a right-click in the CPRS Chart’s Allergy widget …

Selecting Enter a new Allergy takes you to a search dialog where you pick the causative agent that the patient is allergic to. Here we search for and select Chocolate

And this takes us to the Allergy Entry dialog. Allergies come in two flavors - historical and observed. We choose Historical and fill in some details including the side effects and a comment …

Now switching over to the RPC Events Tab of the nodeVISTA Management Client, notice the ORWDAL32 SAVE ALLERGY entry …

Clicking on it will bring up details about this RPC. This was the call dispatched by CPRS to VISTA when you hit OK in the Allergy Entry dialog above. The red box highlights a transaction id assigned by MVDM and it groups all activity that arises from this one RPC call …

Now switch to the Management Client’s MVDM Events tab and hone in on the two create events that share the same transaction id …

Click on the entry for Allergy

The RPC Emulator implements the RPC call with an MVDM createAllergy operation. After creating and updating appropriate information in VISTA, the nodeVISTA manager will dispatch this create event. Unlike the cryptic RPC fields such as GMRAORIG, that event and the object that led to it have easy to understand properties such as enteredBy.

And the other event, the one for AllergyAssessment? That shows that one RPC call to create an Allergy actually leads to two objects in VISTA, one for the Allergy itself and another to record that a Patient has been assessed …

One RPC from CPRS is dispatched as it has been for twenty years but now MVDM renders every aspect of this activity transparent.

Reading is emulated and exposed too

Back in CPRS and the cover sheet, we can click on the new allergy record and see its details …

And now the Management Client shows that the query RPC, ORQQAL DETAIL used by this CPRS view is monitored by nodeVISTA …

as is the underlying MVDM DESCRIBE

The MVDM DESCRIBE has well-structured, machine processable JSON and notice how User (“who described”), Facility (“where described”) and the Patient (“for which Patient”) are clearly distinguished. This level of nuance allows MVDM to offer a whole new level of auditing and access control for VISTA.

Remove an Allergy and the Document it creates

CPRS let’s a provider remove an allergy by declaring that it was entered in error. To do this, we press Entered In Error in the Details window shown above. Up pops a dialog that let’s a provider make a comment …

which leads MVDM to remove the allergy …

and in CPRS Chart, the Patient once again has no allergies …

But something else happened - a document is created that describes the error. Go to the notes tab and you’ll see it …

and as expected, MVDM will note the creation with an event …

As the MDVM events show, the nodeVISTA manager implements the series of behaviors called for in CPRS - yes, an allergy is removed but also a specific type of document is created. In object terms, the Allergy object is removed and a Document object is created.

No Known Allergies is not the same as No Allergies

An empty allergy list is ambiguous - does it mean a patient has no allergies or simply that her allergies have not been recorded. In CPRS and in the MVDM Allergy Model, you can explicitly note that a Patient has no reaction. Again right-click in the CPRS Chart’s Allergy widget …

but this time, select No Known Allergies (NKA). When you do CPRS sends a ORWDAL32 SAVE ALLERGY RPC to VISTA …

and yes you’re right - that’s the same RPC shown above creating a specific allergy, only this time it carries different arguments. The RPC interface works in mysterious ways. But MVDM clears up any mystery - this time an AllergyAssessment is created and it notes that the patient has “No Known Allergies” …

Emulation Statistics

Upon successful completion of the Allergies demo trail, the nodeVISTA system will have processed close to 189 individual RPCs from CPRS, using a combination of RPC emulations and pass-through native RPC implementations.The table below contains a breakdown of nodeVISTA’s RPC emulation capabilities as a series of percentages against native and overall RPC processing as of v1.3 (8/2/2017):

All RPCs Unique RPCs
Total RPCs: 189

Total RPCs By Category
  Server: 1 (0.53%)
  Native: 56 (29.63%)
  Emulated: 132 (69.84%)

Total RPCs By Sub-Category
  UNKNOWN: 2
    Server: 1 (50.00%)
    Native: 1 (50.00%)

  AUTHENTICATION: 9
    Native: 8 (88.89%)
    Emulated: 1 (11.11%)

  NON CLINICAL: 108
    Emulated: 101 (93.52%)
    Native: 7 (6.48%)

  OUT OF SCOPE: 5
    Emulated: 5 (100.00%)

  CLINICAL: 65
    Native: 40 (61.54%)
    Emulated: 25 (38.46%)
Total Unique RPCs: 101

Total Unique RPCs By Category
  Server: 1 (0.99%)
  Native: 36 (35.64%)
  Emulated: 64 (63.37%)

Total Unique RPCs By Sub-Category
  UNKNOWN: 2
    Server: 1 (50.00%)
    Native: 1 (50.00%)

  AUTHENTICATION: 5
    Native: 4 (80.00%)
    Emulated: 1 (20.00%)

  NON CLINICAL: 50
    Emulated: 44 (88.00%)
    Native: 6 (12.00%)

  OUT OF SCOPE: 5
    Emulated: 5 (100.00%)

  CLINICAL: 39
    Native: 25 (64.10%)
    Emulated: 14 (35.90%)