Carecoordination Module Configuration
Purpose
This document shows how to configure OpenEMR's CCDA module as found in OpenEMR 4.2 and later. Please look here for Use the Carecoordination module.
Introduction/ Caveats
The Carecoordination module was initially contributed to OpenEMR by Z&H Healthcare.
An OpenEMR Administrator's user account is required for these activities.
Procedure
Enable the CCDA service
Enable the CCDA service in OpenEMR:
Admin → Globals → Connectors → Enable C-CDA Service: Care Coordination Only | Portal Only | Both
This service should automatically start on demand when required by OpenEMR.
Install/ configure modules
1. In the main menu:
'Modules → Manage Modules'
2. Click the 'Unregistered' tab
3. Click the 'Registered' button on each of the modules that are a dependency of Carecoordination, one at a time.
Be sure to register 'Carecoordination' last.
- As they're registered they appear on the 'Registered' tab so you'll go back to the 'Unregistered' tab to register each one.
4. Open 'Registered' tab (below)
5. Click the blue 'Install' button of each module, one at a time from top to bottom, installing Carecoordination module last.
- Each button's blue 'Installed' caption will change to blue 'Enabled'
6. Click all modules' 'Enabled' buttons top to bottom
7. In the 'Carecoordination' item click on the gear-like config icon (far right circle below)
8. In the new panel click 'Access Control' tab (oval above left)
9. Click in checkboxes of 'Carecoordination' and 'Send to HIE', for the ACL roles that you wish to allow to use this module; here, Administrator and Clinicians (lower rectangle above)
10. In Left Nav menu: 'Modules → Manage Modules'
11. Under Registered tab, Carecoordination module click on the config gear icon (oval)
12. Click 'Settings' tab (top rectangle)
Author:
Primary Care Provider:
13. Enter your Mirth settings: (not necessary with Open EMR 6 and onwards)
(left oval)
MirthIP:
Client ID:
Username:
Password:
14. Click 'SAVE'
The CCDA module is now configured.
When you log out of OpenEMR and then back in, the Carecoordination menu item will appear in the Modules menu.
Install Node.js
We will install Node.js version 16.x from upstream as version 16 is the maximum version tested to work with OpenEMR. Node modules are run local to the service's directory, so all support dependecies are installed there. After installation, the Node.js CCDA service should start on demand.
Instructions for Debian 11, on a system that requires sudo
cd ~
Ensure a clean install and clean up:
sudo apt remove --purge nodejs npm
Get Node 16 from upstream:
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
Add Node PPA to apt sources so as to keep Node 16.x up-to-date. Create /etc/apt/sources.list.d/nodesource.list
and add the following:
deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_16.x bullseye main
deb-src [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_16.x bullseye main
Install nodejs:
sudo apt install -y nodejs
You may also need development tools to build native addons:
sudo apt install gcc g++ make
Install the CCDA service
Navigate to OpenEMR's ccdaservice
directory.
Initialize the project to create package.json, which will hold information about the app and which packages it depends on:
npm init
Select the default for all questions.
Install required dependencies [Editor's note: I do so without sudo (see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=960289), though OpenEMR's ccdaservice README.md recommends running it with sudo):
npm install --production
Apache Configuration
So as to get Zend to work and the Carecoordination menu option not to give a 404 error, use "AllowOverride FileInfo
" in the Apache config file.
NOTE: https://www.open-emr.org/wiki/index.php/Securing_OpenEMR#Apache says "Do not allow use of .htaccess files in Apache (ie. turn off the AllowOverride setting)."
Enable mod_rewrite:
sudo a2enmod rewrite
Restart Apache:
sudo systemctl restart apache2
Install PHP Modules
The following PHP modules are required:
- XML / SimpleXML / xmlreader / xmlwriter / XSL - php-xml - DOM, SimpleXML, WDDX, XML, and XSL module for PHP
- SOAP - php-soap
- Sockets - php-net-socket - Network Socket Interface
For example on Debian run:
sudo apt install php-xml php-soap php-net-socket
Updating
After updates of OpenEMR or of nodejs (?), ensure the latest libraries are installed.
Navigate to OpenEMR's ccdaservice directory.
Run the following:
npm install --production
Troubleshooting
Manually run the CCDA service (serveccda.js) to see if it runs OK from the command-line, or instead throws an error:
Navigate to OpenEMR's ccdaservice
directory.
Run the CCDA service:
node serveccda.js
If it's already running, then you'll have to kill the process, then start it as above. If it starts at the command-line, then try a CCDA export in OpenEMR while serveccda.js is running and look for messages displayed at the command-line.