Introduction
Build out a high level description of each service to complement the Application Architecture diagram
GMC Sync
Summary
A springboot application which runs nightly to retrieve a basic Doctor dataset from the GMC to refresh the Revalidation service.
Where and When
The application has its own github repository: https://github.com/Health-Education-England/TIS-GMC-SYNC
The application is run from a Jenkins cron (00.05 UTC Mon-Fri) - here : https://build.tis.nhs.uk/jenkins/view/Prod/job/gmc-sync-prod/
What is does
- GMC Sync first truncates the Revalidation Elastic Search (ES) indexes (removing the visibility of all Revalidation data from the Revalidation UI)
- It then executes the following logic for each Designated Body in turn:
Designated Bodies
The GMC treats HEE as 13 discrete entities, in GMC terms known as Designated Bodies. Details: Designated Body and Revalidation Office (DB and RO) information
- Calls the GetDoctorsForDB method on the GMC API to retrieve basic Doctor records. (GMC Revalidation API is a SOAP API provided by the GMC.)
- The basic record includes GMC ID,
Firstname, Surname,various GMC specific dates and status (including Sanction - a flag to highlight a doctor's licence has a sanction against it.) (we ignore the GMC's Firstname and Surname in preference to the TIS one) - It uses the Revalidation service (Swagger definition of the Revalidation Service) to check whether the GMC ID exists in TIS which uses the Profile service to create a TISId in its Traineeprofile table if not.
(Sunil checking - we suspect it might go directly to the Profile service to get a current TISId or create one if the GMC ID isn't present in the Traineeprofile table) - It then writes the basic record for all doctors to the Revalidation ES index (directly or via the Revalidation service - think directly)
For pre-live environments TIS can't use live GMC data, so a GMC Sync is mocked with a Springboot application called GMC Connect, serving up SOAP responses for pre-live environments (https://github.com/Health-Education-England/TIS-GMC-CONNECT) Note: this is the same name as the GMC provided user interface, also called GMC Connect, which could cause confusion
Revalidation ETL
Summary
A springboot application which runs nightly to enrich the Revalidation ES indexes recreated by GMC Sync, with data from the TCS and Assessments services
Where and When
The application has its own github repository: https://github.com/Health-Education-England/TIS-INTREPID-REVAL-ETL
The application is run from a Jenkins cron (01.00 UTC 7 days a week) - here : https://build.tis.nhs.uk/jenkins/view/Prod/job/intrepid-reval-etl-all-prod/
What it does
Revalidation ETL works through each Trainee provided by the GMC through GMC Sync, by their GMC ID.
It uses the GMC ID stored in the Trainee ES index to identify the Person record (Person.Id) in TCS
It then retrieves the Person and Assessment data from the TCS and Assessment services and directly updates the appropriate Revalidation ES indexes
Note: Revalidation was developed before TCS and wasn't refactored as part of TCS, which is why it identifies Trainees by GMC ID and a Trainee.TISid in the Profile service but isn't more cleanly integrated into TCS.Person. This is a clear area to refactor as apart of a wider Revalidation service rework.
Revalidation (UI + Service)
Sumary
An Angular 1.x UI app and a springboot application presenting a RESTful API that provides the endpoints to support the Revalidation UI. Combined they enable HEE to review the data on Trainee Doctors due to be Revalidated, make recommendations regarding a Revalidation and submit these to the GMC.
Add Comment