Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Summary:

Condensed logic for Connections

...

  • Programme Memberships (DBC) do not match - 3,4,5,6,7 (Condition: WHERE designatedBody != tcsDesignatedBody) (warning)
    OR

  • Programme Membership issue 11, 12, 13, 15 (Condition: WHERE connectionStatus == "NO") - included in above logic, but useful to distinguish, also WHERE multiple programme memberships
    OR

  • GMC Numbers do not match 8,9,10 (Condition: WHERE gmcReferenceNumber != tisGmcReferenceNumber (warning) , WHERE tisGmcReferenceNumber == null ← “tisGmcReferenceNumber” not currently an existing field!
    OR

  • Special Cases 1, 2, 16 WHERE placementType = F1, Where membershipType = MILLITARY, Where membershipType = INACTIVE ← we don’t currently get placement type through
    OR

  • Something went wrong with an attempt to connect/disconnect 14 (does this need to be shown in discrepancies or is this just an error box?) - WHERE exceptionReason != null?

...

17,18,19 are unclear or do not have any specific logic associated with them

(warning) - not currently possible to do this in an elasticsearch query on the version we’re on (needs “runtime fields”) - has to be calculated “ahead of time”

...

“Show Your Working”:

For Reference: Elasticsearch Fields

masterdoctorindex Fields

Source of Truth (which service has final say)

Required by Recommendations

Required by Connections

id

Elasticsearch (Auto Id)

tcsPersonId

TCS

gmcReferenceNumber

GMC

doctorFirstName

GMC

doctorLastName

GMC

submissionDate

GMC

ProgrammeName

TIS

membershipType

TIS

designatedBody

GMC

gmcStatus

GMC

tisStatus

REVAL

admin

REVAL

lastupdatedDate

REVAL

underNotice

GMC

tcsDesignatedBody

TIS

programmeOwner

TIS

curriculumEndDate

TIS

connectionStatus

*this should be renamed “tisConnectionStatus” and refers to TIS' “point of view” about the connection, and is set to “No” in the following circumstance:
Objects.isNull(curriculumMembership) ||
Objects.isNull(programmeMembership) || Objects.isNull(programmeMembership.getProgrammeStartDate()) || Objects.isNull(programmeMembership.getProgrammeEndDate()) || programmeMembership.getProgrammeStartDate().isAfter(currentDate) || programmeMembership.getProgrammeEndDate().isBefore(currentDate);

TIS

membershipStartDate

TIS

membershipEndDate

TIS

existsInGmc

GMC

exceptionReason*

*this field is currently in the code in connections but doesn’t exist in masterdoctorindex, appears to have been overlooked

TIS/REVAL

Scenario implementation table

...