This guide is for the installation of eHMP on a Unix-based OS. It has not yet been tested on Windows.
The next evolution of VistA requires a world-class, open, modular, and extensible user experience. eHMP is a new web-based clinical application that migrates the current functionality in VistA’s existing user interface, Computerized Patient Record System (CPRS).
eHMP leverages and integrates the enhanced graphical user interface, standards-based data, and core clinical applications deployed during the User Experience project, Joint Legacy Viewer (JLV), and Health Informatics Initiative (Hi2).
A key objective of the VistA Evolution Program is to enhance cross-Agency (DoD/VA) interoperability by providing all clinically relevant data at the point of care for Veterans. eHMP is targeted to be the replacement for the CPRS application. eHMP accomplishes this by integrating an enhanced graphical user interface, standards-based data, and integrating core clinical applications.
This project's source code came from OSEHRA
- GT.M support
- Removed terminology
- Minimized needed VM's to two
- Added Vagrant installer
Screenshots of eHMP-UI, as well as additional documents can be found in the docs
directory.
-
Install VISTA and KIDS Builds.
-
Directions are in:
docs/KIDS_builds.md
Follow those steps before moving on to the following steps -
In the Vista Vagrantfile comment out all the forwarded ports and create a private network by adding this line:
config.vm.network :private_network, ip: "192.168.33.10"
-
Reload Vagrant and ssh in:
vagrant reload vagrant ssh sudo su - osehra
-
Delete and replace XUSRB1.m to contain the correct cipher hash.
cd /home/osehra/r sudo rm -f XUSRB1.m wget https://github.com/OSEHRA/VistA-M/raw/d0c8aac7ba36da048f69a2db8e453e06577480d5/Packages/Kernel/Routines/XUSRB1.m
-
Configure the test doctor Robert Alexander to have access to eHMP on the OSEHRA VistA VM:
mumps -dir
S DUZ=1 D Q^DI
ENTER OR EDIT FILE ENTRIES
NEW PERSON
SECONDARY MENU OPTIONS
<PRESS ENTER>
<PRESS ENTER>
alex
hmp ui context
Yes
<PRESS ENTER>
<PRESS ENTER>
<PRESS ENTER>
<PRESS ENTER>
H
-
-
Install and Configure JDS on same VM as VISTA
-
Copy the JDS Instance script
JDS/createJDSinstance.sh
into the mounted vagrant folder of the VISTA VM.cd ~/Development cp eHMP/JDS/createJDSinstance.sh VistA/Scripts/Install
-
Clone JDS into the mounted vagrant folder for VISTA.
cd /VistA/Scripts/Install git clone https://github.com/KRMAssociatesInc/JDS-GTM.git
-
Vagrant ssh into the VISTA VM
cd Ubuntu vagrant ssh
-
cd /vagrant
-
Type:
dos2unix createJDSinstance.sh
-
Type:
sudo chmod +x createJDSinstance.sh
-
Run the createJDSinstance.sh script that is in the mounted Vagrant folder. You must supply an instance name. We named ours jds.
sudo ./createJDSinstance.sh -i jds
-
Type:
sudo dos2unix /home/jds/r/*.m
-
Type:
sudo chown jds:jds /home/jds/r/*.m
-
Type:
sudo chmod ugo-x /home/jds/r/*.m
-
Type:
sudo chmod g+w /home/jds/r/*.m
-
Run
sudo su - jds
-
Run
source etc/env
-
Run
mumps -dir
This will open a prompt -
Type
D FULLRSET^VPRJ
. JDS should now be (you may see errors appear in the terminal - these can be ignored since they are protected and only for CACHE) -
To verify JDS is running, run the following curl command. If JDS is okay, you should see this JSON response
{"status":"running"}
curl -X GET http://192.168.33.10:9080/ping
- Exit out of the VM, type
Exit
-
-
Configuring Vx-Sync & Running Operational Data Sync
-
Switch to the eHMP directory
cd ~/Development/eHMP
-
Install vagrant-berkshelf:
vagrant plugin install vagrant-berkshelf
-
Install vagrant-omnibus:
vagrant plugin install vagrant-omnibus
-
Install chef-dk: https://downloads.chef.io/chef-dk/
-
Start vagrant and ssh to the vm
vagrant up vagrant ssh
-
(Optional if local changes were done to Vagrantfile) Modify line 2 in
ehmp/product/production/vx-sync/worker-config.json
to reflect the ehmp VM's IP Lines 15-28 tell VxSync where VistA is and what credentials are needed. Lines 589-594 tell VxSync where JDS is. Ensure these lines all have the correct values. -
Run
cd /vagrant/ehmp/product/production/vx-sync
-
Run
sudo npm install --no-bin-link
-
Run
mkdir logs
-
Run
./scripts/startVxSync-parallel.sh
-
Run
ps aux |grep node |grep -v grep
to ensure VX-Sync processes are running - you should see beanstalk and more than a couple of subscriberHost and a couple of endpoints -
Run
node tools/rpc/rpc-unsubscribe-all.js --host 192.168.33.10 --port 9430
to make sure all subscriptions are reset -
Run a get request with curl or another rest client against VX-Sync. The IP should be the IP of the eHMP VM. You should get see a 201 response if it worked correctly.
curl -I http://192.168.33.12:8088/data/doLoad?sites=34C5
- To check if the operational data sync completed, check the Operational Data Sync status. If the Operational Data Sync completed successfully you should see a long JSON response with multiple
"syncCompleted": true
curl -X GET http://192.168.33.10:9080/statusod/34C5
- VxSync is now connected to JDS and VistA.
-
-
Configuring RDK
- On the eHMP Vm switch to RDK directory,
cd /vagrant/rdk/product/production/rdk
- Run
sudo npm install
- (Optional) Modify config/config.js (if you use something outside of the configuration specified in this document)
- (Optional) There are two VistA sites listed; remove the second one and modify the first to match the one you setup.
- The OSEHRA VistA division can be set to '6100'
- (Optional) Find the
hmpServer:
block and update it to point to the VistA instance. - (Optional) Find the
vxSyncServer:
block and update it to point to the VM VxSync is running on. - (Optional) Find the
generalPurposeJdsServer:
andjdsServer:
block to update to point to the Vista/JDS VM - After saving the config, to start RDK run
./run.sh --config config/config.js
- There will be a lot of output, the key is the health metrics. All of them should come as success except for MVI and Solr as they are not included.
- RDK runs in the foreground; therefore you will need an additional terminal window to continue after this.
- On the eHMP Vm switch to RDK directory,
-
Configuring ADK and UI
-
In a new console window navigate to ehmp and ssh into the VM
cd ~/Development/eHMP vagrant ssh
-
Go to ADK directory on the VM,
cd /vagrant/adk/product/production/
-
Modify ADK's app.json - The attribute resourceDirectoryPath should point to the ip address of RDK: 192.168.33.12:8888.
-
Run the following commands to install necessary packages:
sudo apt-get install ruby-full -y sudo add-apt-repository ppa:cwchien/gradle sudo apt-get update sudo apt-get install gradle-1.11 sudo apt-get install git -y sudo gem install compass sudo gem install breakpoint -v 2.5 sudo npm install -g bower sudo npm install -g bower-installer sudo npm install -g grunt sudo npm install -g grunt-cli sudo npm install grunt compass
-
Fix npm permissions:
sudo chown -R vagrant:vagrant /home/vagrant/.npm
-
Move up a directory:
cd /vagrant/adk/product/
-
Run
gradle clean test grunt_deploy
This will build adk to/vagrant/adk/product/production/build/adk.tgz
-
Change to ehmp-ui directory:
cd /vagrant/ehmp-ui/product/production
-
Modify eHMP-UI's app.json - The attribute resourceDirectoryPath should point to the ip address of RDK: 192.168.33.12:8888.
-
Move up a directory
cd /vagrant/ehmp-ui/product/
-
Run
gradle clean test zipEhmpuiApp
This will build adk to/vagrant/ehmp-ui/product/build/ehmp-ui-x.x.x.zip
-
Install NginX:
sudo apt-get install nginx -y
-
Type
cd /usr/share/nginx/www
-
Type
sudo rm *.html
-
Type
sudo tar xvzf /vagrant/adk/product/production/build/adk.tgz
-
Type
sudo mkdir app && cd app
-
Type
sudo unzip /vagrant/ehmp-ui/product/build/ehmp-ui-1.2.0.?.zip
-
Type
cd ..
-
Fix the permissions
sudo chown -R www-data:www-data .
-
Start nginx:
sudo service nginx start
-
If your webserver is running, as well as the rest of the infrastructure (RDK, VxSync, JDS, VistA), you may open EHMP in your browser and login.
-
The user login must have ehmp-ui context access in VistA. access: fakedoc1 verify: 1Doc!@#$
-
The following endpoints can be helpful in troubleshooting the connection of VxSync, JDS, and VistA.
-
Detailed stats of jobs in Beanstalk queue:
curl -X GET http://192.168.33.12:9999/beanstalk/stats-tube/
-
To view the Job's queue inside VistA to see if any are running or have run:
- In the Vista prompt type
s DUZ=1 D ^XUP
hmpmgr
mon
hmp
- Press enter to refresh.
- If either JDS or VistA are redeployed or cleared (by typing D FULLRSET^VPRJ in JDS) VistA remembers the subscriptions that were there previously, you will need to reset all subscriptions to sync operational data or patients. To reset all subscriptions on the eHMP VM type
cd /vagrant/ehmp/product/production/vx-sync
then runnode tools/rpc/rpc-unsubscribe-all --host 192.168.33.10 --port 9430
- In the Vista prompt type