ESR Integration (2018 ETL version)

Page Content


Background

ESR is a payroll and HR system used by Trusts throughout the NHS. 470 organisations in England and Wales are currently using the system. It is used to get junior doctors on payroll and manage training and development. The primary functions of the ESR Interface to TIS are;

  1. Reconcile the Inbound Positions from ESR against Posts in TIS to make sure that both systems match.
  2. Send Placements from TIS to ESR for future posts, this includes sending new starters who have never been placed before.
  3. Receive Trainee profile updates from ESR to TIS,
  4. Send Placements updates from TIS to ESR where changes occur after they've been sent to ESR.


ESR Interfaces

https://hee-tis.atlassian.net/wiki/download/attachments/597885038/ESR-NHS0098-The%20Streamlined%20ESR%20and%20Junior%20Doctors%20Interface%20-V1.10_%20Latest.doc?api=v2

There are basically 3 interfaces on ESR through which the above are received or sent:

  1. Deanery Update Interface/Deanery Reconciliation and Medical Trainee Outbound Interface
  2. Deanery Inbound Recruitment Interface
  3. Generic Inbound Notification Interface


ESR Inbound and Outbound flows (Agreed with Victoria Hartland on 09/01/18) 

Parts in Red are not in scope fro TIS MVP implementation.

Orange boxes are reports produced by the ETL.

Blue document boxes are the files input/output. 


Questions and Assumptions ( Discussed with Wendy Burney - ESR Contact from NE)

#Question/AssumptionCommentsOwner
1Can ESR accommodate multiple post holders i.e. more than one person associated with the same post?

Victoria confirmed that ESR is built to accommodate this scenario, as long as the post setup has been completed and a post is set to ‘shared’ or the field is left null. Victoria highlighted that the setting for single incumbents, (which would prevent the creation of multiple post holders in ESR) is rarely used.
Could you explain if this is normally current practice by Trusts?

WB:

Setting of 'shared' enabled on the Position created by the Lead Employer.

Per trust you can have multiple person in the same posts. The 'shared' setting is per Trust. Each Trust if using the same Deanery Post Number has to enable the setting for the Trust the position information record is being created against.

VPD - Some trusts set up multiple VPD's e.g. CCGS's they might want that held on separate VPD. Separate ESR accounts can be setup per Trust. E.g. 4 separate accounts to do different things by the same Trust.


2How are duplicate post numbers in multiple VPDs handled?

Victoria briefly explained that a single DPN could exist within two ESR VPDs at one time, but the DPNs should always have an ESR Position Number and Position ID on the outbound file, which would make each post record unique. This is particularly common where there is a lead and host employer situation.
Could you explain the current process in practice by trust?

WB:

Sometimes they are in Error.

Sometimes they have to be duplicate. Each one will get created with a unique Position Number on ESR regardless it is per Trust or across different Trusts.

Lead Employer Trust - Set up all posts on ESR when they receive notification from HENE.

Host Employer - Also setup their posts there as Hosts rather than leads.

When Hosts create their posts numbers, then the identification is whether it is a L/H posts.

Different ESR Position numbers on although DPN/NPN may be the same.

Does Intrepid knows the distinction between Lead and Hosts posts?

When posts created on Intrepid, this information would have been keyed in?

All posts created on ESR 72 hours at least

DPN already on Intrepid ahead of them being on ESR.


3My understanding is that 'Position Information Records' are created by Trusts directly on ESR by VPDs/Trusts?
Position Information Records consists of details such as:
- Position ID (ESR Unique ID) - System generated
- Assignment ID
- Change/Delete Indicator
- Position Number (Unique to ESR? and not the actual Post Number entered on Intrepid?)
- Position Title
- NPN/DRN (Host or Lead type)
- Deanery/LO
- ODS Code  - Is this used to identify unique NPN on Intrepid so that the correct trainees are matched to placements against the correct Trust?

WB:

Yes.

  • Position Number (Unique to ESR? - Yes,

Is this the actual Post Number entered on Intrepid? - No)

  • NPN/DRN - L/H entered to denote if Lead or host type post.
  • ODS Code - It is where the post belongs to for Workforce Statistics, Reporting purposes only.
  • Is this used to identify unique NPN on Intrepid so that the correct trainees are matched to placements against the correct Trust? - No

4

What do employers (Lead/Host) do with Oriel access?

WB:

Wendy took an action to find out how/what trusts do with Oriel Access? E.g. there are documents that can be accessed/downloaded how are these used.



5Do Admins update ESR and Intrepid person data? Where and how are changes made?

Gwilym Williams - We make the changes in Intrepid but I'm not sure how ESR is updated based on those changes. I believe they only get the person data up until the start date of the placement in that Trust

WB NE:

Changes automatically accepted in Intrepid from ESR for personal details changes.

Placement changes should be done in intrepid then fed to ESR.

Personal details changes should be done on ESR then fed to intrepid.


6Is there a window during which the placements should be imported to Intrepid?

Tom de Salis (WM): 
We would not pull placement data from ESR, we would only send it the other way. SLA is to have the placements on Intrepid by 12 weeks before the start date, ESR's limit is 2 days prior to start date.


Dale Gilbert (NW):
In HENW we put the placements onto Intrepid and then run reports for our Lead Employer so they can then add them to ESR. We used to use the ESR / Intrepid interface for one of our Lead Employers ( and were planning on setting up the other ) but it was switched off due to a request from the Lead Employer.  The Trusts have minimal access to Intrepid here - mostly for Foundation.


Mairi Hills (HETV)
In HEETV, HEE admin inputs placements into Intrepid and the trusts do use the ESR/Intrepid Interface

WB NE:

Placements should be imported from Intrepid to ESR.

SLA is common for everyone. If the placement changes has not been made on Intrepid within the SLA, then it has to be done manually to ESR and Intrepid.

PH not brought across from the Interface because of the difference in type of contract. PH are 37.5 (Agenda for Change) Hours a week whist others are 40 Hours a week. PH trainees/rotations keyed in directly onto ESR and rotated on ESR and no interface.

Cannot currently have duplicate contract types on ESR. Cannot have 37.5 and 40 hours types contract.


7Are positions created on ESR based on extract from Intrepid placements, or something else? How does it differ from an Assignment?

WB:

Positions created on ESR - they get a report, Establishment form from Information team which is used as a basis to enter the Posts onto Intrepid then ESR.

Positions are actual Posts with DPN's

Assignments - A person assigned to the Post.


8Is a MSO (Medical Staffing Officer) a Lead/Host Trust user assigned with ESR access responsibility?

WB

MSO will always be assigned to each individual per VPD.

1 trusts can have multiple VPD's and therefore different MSO's for each VPD.




Questions and Assumptions ( Discussed with Victoria Hartland - NHS ESR Contact)

#Question/AssumtionCommentsOwner
1Does ESR accepts updates via the Notification Export Interface only for current and future placements? or Past placements as well?

Various scenarios as detailed by VH:

The Medical Rotation Notification produces a spreadsheet with details of the organisation’s training post, the current incumbent and the next person to occupy the post.

The Applicant Withdrawn notification should only be generated for an applicant already sent from TIS to ESR with a start date in the future.

The Replacement Applicant should only be generated in the same circumstances as the App Withdrawn notification.

The Change to Projected Start/End Date notification should only be generated for an applicant already sent to ESR with either their hire OR end date in the future.

Notification types:

‘1’ - “Medical Rotation Notification”
‘2’ - “Update to Medical Rotations – Applicant Withdrawn”
‘3’ – “Update to Medical Rotations – Replacement Application””
‘4’ – “Change to Project Hire/End Date”
‘5’ – “New Training Position Created within LETB System”

Mandatory/Conditionally Mandatory Fields Expected in the Notifications Export File:

  • Record Type
  • Notification VPD
  • Notification Title Code
  • Deanery Post Number (1,2,3,5)
  • ESR Position Title (1,2,3,4)
  • (Current) Trainee Last Name (1,4)
  • (Current) Trainee First Name (1,4)
  • (Next Appointment) Trainee Last Name (1)
  • (Next Appointment) Trainee First Name (1)
  • Withdrawn Trainee Last Name (2)
  • Withdrawn Trainee First Name (2)
  • Withdrawn Trainee GMC Number (2)
  • Replacement Trainee Last Name (3)

2Is it acceptable to receive the RTC confirmation file every everning when the TIS ETL runs?There is not an expectation of specific time to receive the RTC confirmation as on receipt of the RMT file.
3What does the Full RMR File contain? Current and Future placements only? Or past placements as well that has already been sent to ESR before?

A current picture, positions as at that date and people that are in their current positions as at that date - snapshot of.

No historical view sent.


4Is the functionality to resend Full File by specific Trust (currently on Intrepid) still relevant with there being a single database for all records? If not, does the decision to make full or partial imports reside with TIS, or another party?

It is a support mechanism rather than intended business as usual functionality added to Intrepid.

Not BAU.


 5

What is the difference between an RMT, RMF and RMR file?

What does each of them consist of? Positions for all LO's? or for per Trust?

RMR is sent from Intrepid/TIS per Trust to ESR.

RMT - Generic name by the process.

RMF - Run in full mode - it is the full file request Outbound file.

RMC - Run in change mode

VH: The RMF Outbound files are produced in old Deanery Regions, so you will get one per organisation:

  • WMD   West Midlands
  • NTH   Northern
  • KSS   South East Coast
  • SEV   Severn
  • PEN   South West
  • WES   Wessex
  • OXF   Oxford
  • EMD   East Midlands
  • NWN   North West
  • MER   Mersey
  • YHD   Yorkshire and the Humber
  • EOE   East of England
  • LDN   London

ESR Mandatory Fields in the Applicant Export File

#ESR FieldDescription
1Last_NameLegal Surname of the applicant, used to identify a person within ESR.
2First_NameLegal First name of the applicant, used to identify a person within ESR.
3DOBFormat YYYYMMDD, Date of Birth
4Address1First line of the applicant’s address. Mandatory if any address details provided.
5CountryNot supplied, therefore sending 'United Kingdom' as default value.

LOV's mapping (List of Values/Reference data)

This is a list of reference values sent from TIS to ESR in an APP file or received via updates from ESR in RMT files. Former user (Deleted) Please see below updated version of the mapping. Only the first 2 columns are in use by the one-way flow from TIS to ESR original interface implementation. A similar mapping is expected to be done for bi-directional flow. 

Version 0.8:

Version 0.9: 

Version 1.0 (DRAFT) -  TISNEW-3853 - Getting issue details... STATUS

 Tanzania and Thailand mapping corrected in third column (not in use by the one-flow interface but anticipated for the bi-directional). A similar mapping is expected to be done for bi-directional. 

Error Handling and Reports

TISDEV-4895 - Getting issue details... STATUS

TISDEV-4804 - Getting issue details... STATUS

On TIS, exceptions are expected to be handled for the following: (Orange boxes in the diageam above)

  1. Report - Errored Aplicants  - Applicants with Missing ESR Mandatory details (created on TIS every morning after receiving RMT file and when generating the APP file on TIS)
  2. Report - RMT exceptions - Unmatched Pending - i.e. ESR DPNs not matched to TIS NPNs (created on TIS every morning on receipt of the RMT files for each Deanery.) These statuses will remain at 'Unmatched_Pending' and would only be updated if TIS receives another RMT file and they match to an NPN on TIS. 
  3. Report  - Unmatched Delete - This is a report of Posts that are still CURRENT on TIS but marked as DELETED on ESR.
  4. Report - APC Warnings - ESR generated  Applicant Confirmation Files (APC) warnings, consists of for e.g. missing GMC end date or an invalid reference value received etc. (This can take up to 2 days to be received from ESR)
  5. Report - Notifications - TIS mailbox supplied to ESR, visible on #esr_emails slack channel. (Received from ESR every day, generally before midday)


For Reports 1-4:

Report 5:


Notification Types

Notifications are generally placements changes that TIS needs to communicate to ESR for applicants that have previously been exported to ESR in an Applicant (APP) File. Subsequent to applicants being exported, the expectation from ESR is to receive notifications. There are only 5 types of notifications that ESR can handle and interpret at the moment when received. TIS is tracking those placement changes on a daily basis and send those to ESR at the end of the day in a Notification File (DNC). 

These are the 5 Notification types sent in the Generic Source Notification File (not the Placement Source Notification File): 

  • ‘1’ - “Medical Rotation Notification”

This is sent in all placement changes identifying the Current and the Next Trainee for a given DPN where a change has occurred. It will normally be sent in combination of other changes as well. In the table that follows, the scenarios under which a Type 1 would be generated.

  • ‘2’ - “Update to Medical Rotations – Applicant Withdrawn”

This is sent in the notification file of a future trainee that has withdrawn and not someone who is already in post. This means where the Projected Start date on the placement is within 3 months  13 weeks in the future and greater than 2 days AND the DPN is one of the POS records we would have received in an earlier RMT file.

  • ‘3’ – “Update to Medical Rotations – Replacement Application”

This is not currently handled in the Intrepid-ESR interface and not implemented in TIS either. 

This is being handled differently in TIS following conversation with ESR. A replacement is a Notification type 1 sent following a Type 2, which will tell ESR what is the current and next trainee following the withdrawal. A replacement is simply creating another placement with a DPN/NPN that has no future incumbent following a withdrawal.

  • ‘4’ – “Change to Project Hire/End Date”

This is sent in the notification file and applicable for: (a) A trainee already in work - include end date change only; Or (b) a trainee due to start work in the future – include both start and end date changes

  • ‘5’ – “New Training Position Created within LETB System”

This is sent in the notification file where new Training Position is created within TIS (this is where a post is created in the Deanery/HEE system but an employer LIVEon the interface has no corresponding position record on ESR). It is expected that from this Notification received, a VPD will create the corresponding Position on ESR following which an RMT file is expected to be sent to TIS in order to receive an APP file back.


How notifications (changes to placements for already exported applicants) are tracked in TIS? (Devs to validate and confirm implementation)

Notifications files (DNC/DNF) are generated daily to inform ESR of placement changes that have occured on TIS for applicants previously exported in APP files.

However, where there is a new application i.e. a new applicant or different application for an existing applicant (for a new post), then the Notification will supplement the Applicant file. However where there is a change to an existent application record e.g. change of start/end date, then that gets notified only via the notification and is not supplemented by a new record on the App file.

Notification Type sent to ESR Notification Scenarios/TriggersHow is it calculated?How identified on TIS? (Devs to validate and confirm implementation)
1Medical Rotation Notification - Next Trainee will become Current Trainee on a Post in 13 weeks 3 months’ time. (Earliest Eligible Date to send to ESR)Automatically by the notification-daily-load
  • Identify the changes automatically.
  • Find trainees where Placement dateFrom is 13 weeks 3 months in future. (new post holder - next trainee)
  • Find placement/trainee for the above post placement where Placement dateTo is 13 weeks 3 months. (current post holder - current trainee)

Current post holder above could be empty.

  • This is also accompanied with a record in the APP file. 
1Medical Rotation Notification - Two trainees swap postsAutomatically by the notification-daily-load
  • This is event driven and achieved by changing trainees’ placement details in TIS UI.
  • When an admin assigns a new placement to a trainee, the changes are tracked on TIS.
  • Here we are considering swapping as two independent placements changes taking place. Our understanding as confirmed with ESR is that TIS does not need to identify it as a swap but send them distinct changes taking place on each NPN.
2 notifications expected for a swap sending details of current and next trainees for each NPN.
1Medical Rotation Notification - Post becomes vacant for current or next rotationAutomatically by the notification-daily-load
  • Post becomes vacant for current or next rotation. i.e. no trainees are due to occupy the post in the current or next rotation.
  • Vacant Post: any post with placement ending 3 months in future from today minus 1 day without having any future (in the next 3 months) placement is vacant. 
  • Restriction on ‘3 months in future today minus 1 day’ is important to avoid sending repetitively the same post as vacant to ESR.
This is an automatic check and does not depend on any manual event on TIS UI.
1Full Notification of current and next trainees for each NPN per Local Office.Automatically by the tis-esr-etl-full-notification

The DNF (Full Notification) file provides a snapshot of current and next trainees with their placement details for all Posts/NPNs that exist on ESR and have previously been communicated to TIS. This full notification file is generated on a Local Office by Local Office basis where required.

2Update to Medical Rotations – Applicant WithdrawnUser actions tracked on TIS
  • Deleting a placement on TIS from the UI
Our understanding speaking with ESR, it is a manual process to terminate the trainee on a current post on ESR making them an ex-applicant.

3 (achieved by technically coupling a 2 followed by a 1)

Update to Medical Rotations – Replacement ApplicationUser actions tracked on TIS
  • This was not handled in the Intrepid-ESR interface.
  • This is being handled differently in TIS following conversation with ESR. A replacement is a combination of Notification type 1 sent following a Type 2. The Type 1 being the latter notification informs ESR what is the current and next trainee following the withdrawal.
  • On TIS, creating another placement with a DPN/NPN that has no future incumbent following a withdrawal is tracked as a replacement.
This is where a withdrawal of a future trainee has taken place and another trainee starting their placement on the post in  13 weeks 3 months’ time.
4Change to Project Hire/End DateUser actions tracked on TIS
  • When a placement is edited and project hire and/or end date are changed in TIS UI, this is tracked.
5New Training Position Created within TISUser actions tracked on TIS
  • This is sent in the notification file when new Posts are created within TIS.

Jira Tickets

key summary assignee reporter priority status
Loading...
Refresh


ESR Specification - Latest versions

RabbitMQ documents

Event Based Messaging with RabbitMQ

Configuring RabbitMQ Resources

Demo of some RabbitMQ features