This page provides an overview of the PainChek/VCare Integration. It’s designed to provide PainChek clients and their IT teams with an understanding of how PainChek integrates with the VCare System.
The PainChek VCare Integration serves two main purposes:
-
It allows resident data that is created or updated in VCare, to be reflected in the PainChek system
-
It allows PainChek assessments that are created in the PainChek system to be reflected in VCare
The resident integration process will look for changes such as:
-
a new resident being created
-
an existing resident being updated (e.g. their profile image is updated)
-
the admission details or status of a resident being updated
At it’s simplest, the integration can be represented as:
In reality, the integration is more complex than that first diagram indicates. There is actually a separate integration module that is using the APIs (Application Programming Interfaces) that PainChek makes available.
The PainChek/VCare Integration Module is a component developed by VCare.
The PainChek API provides a secure means to integrate with third parties using industry-standard REST protocols. VCare cannot directly access the PainChek database - all access is via the PainChek API. PainChek has no access, direct or otherwise, to VCare system.
In order for the Integration Module to be able to access the VCare API, a PainChek integration user with appropriate rights needs to be configured in PainChek and the resulting credentials supplied to VCare or the Client to be configured in the PainChek/VCare component.
The PainChek/VCare Integration Module needs to be able to access the PainCheck API (typically at https://prod.ap.painchek.com) using secure (HTTPS) communication (i.e. TLS 1.2 or later protocols).
The PainChek API will allow requests from external systems, so whitelisting of the VCare servers is not needed.
The PainChek/VCare Integration Module initiates all communication (there is no outbound communication from PainChek).
The complete infrastructure typically looks like this:
Note that VCare is deployed as an on-prem solution.
The integration process uses a combination of triggers and polling to detect and synchronise changes to VCare patients or new PainChek assessments.
Resident changes are synchronised immediately, e.g. when:
-
a new resident being created
-
an existing resident updated (e.g. their profile image is updated)
-
the admission details or status of a resident is changed
In addition, there is a nightly synchronisation process that will identify any resident changes in the last two days and submit those to PainChek (this is so that if the realtime sync fails for any reason, the nightly sync will process the change to ensure PainChek remains synchronised to VCare).
Assessment changes are processed using a polling process runs regularly; typically this is every few minutes in production environments.
VCare is considered the source of truth for resident data, and that is the only system where resident data should be added or updated.
PainChek is the source of truth for the assessment data.