Connections - how is current status determined?
TEXT IN RED MAY BE OUT OF DATE OR INCORRECT
Recommended Reading:
Connections Logic - Discussions with Users
Connections Data Models
GMC’s API
The GMC provide the following methods pertaining to connections:
TryAddDoctor
TryRemoveDoctor
GetDoctorsForDB
There is no “get connection status” or “get connection history” type API, all information about connection status and connection history must be inferred.
The GetDoctorsForDB endpoint has the following description:
This method has been designed to be used to get a snapshot of the doctors (and their submission dates), which are connected to a designated body at a point in time. Depending upon the number of doctors connected to the requesting designated body, this web service may return a large number of records.
Therefore from the overnight sync job we only get a snapshot of current connections from GMC’s point of view. Any disconnections that may have occurred from outside of our system would have to be inferred by a negative (“if doctor not in this list”) - this is potentially partially implemented via the “hide all doctors” step of the overnight sync job - but this only sets a flag to hide/show in the recommendations list, it does not alter the connection status.
TIS Change Data Capture
The connections microservice also receives data from TIS via the CDC system based on application events.
The following logic is currently implemented (as of 23/08/2022):
If curriculum membership is null - disconnected
if programme membership is null (or pm dates are null) - disconnected
if programme start date is after today - disconnected
if programme end date is before today - disconnected
Otherwise - connected
Source (note that this logic is implemented in TCS, not connection service):
Note that the above is subjected to change, given recent user engagement:
Connections Logic - Discussions with Users
Slack: https://hee-nhs-tis.slack.com/
Jira issues: https://hee-tis.atlassian.net/issues/?filter=14213