Currently
Background
There are currently multiple ways of making a field or record unavailable 'deleting' records within the TIS UI, the Admin UI some of which are hard deletes and some soft deletes. The uses have not been applied consistently across the front end/back end, however the general summary is as follows:
...
. The below table is an audit of all the types and delete available across TIS:
# | Type | As-Is - Functional description on TIS | Where used in TIS | Warning/error messages in TIS | Comments | To-Be |
---|
1 | Delete statusStatus) Image Added | Users can apply a status of "deleteDELETE" to a particular record, which would mean that the record would be deleted hidden from the front end - applied at both record and field levellevel
- this acts as a soft delete
- removed remove the field from record from the front end
- does not de-link where appliedremoves link ability for new scenariosremove the relationship where already in use, e.g. where a 'Curriculum' status is changed to 'DELETE', it'll remain available against Programmes where it's attached to retrospectively.
- removes the ability to use an DELETE status value when creating/editing a record. i.e. made unavailable in the Front End to be used against new records. e.g. you cannot attach a 'Curriculum' with a status of 'DELETE' when creating a new programme.
Example: People (Sensitive Data / Manage Record / Status) | - People
- Programmes
- Posts
- Curriculum
- Rotations
- Reference (All those maintained in TIS)
| No error message displayed | In intrepid, this flagged the applicable field or record applicable record for archiving in the back end but kept it in view on the UI.
Applicable to fields in ref table and records
Reversible | 2 | Inactive (status) | - Remove “DELETE” as a status that can be applied in the FE across all records
- Apply "DELETE" status in the BE only, in certain scenarios (see below)
- Ensure if there are records with a Status of DELETE in the BE, the various API calls/end points consider ignoring/including them in any search
- Display the records with DELETE status in the FE/BE audit logs
- Allow NDW reporting for records with "DELETE" status
|
2 | INACTIVE (Status) Image Added | Users can apply a status of "InactiveINACTIVE" to a particular record or reference data field, which would mean that the record or field is made temporarily unavailable - can be applied at both record and field level
- impact of applying this to a field being used in a current record, is
- filtering may need to be applied to view the record in a list page i.e. To show both current and inactive records
- drop downs for reference tables will not display anything that has been made with an inactive status
- records containing inactive data will not be flagged, but editing may present errors to the user
- assessment records may become legacy, and no editing will no longer be possiblepossible (AR 16/08: Don't understand what this means)
Example: People records (People / Sensitive Data / Manage Record / Status) | - People
- Programmes
- Posts
- Curriculum
- Rotations
- Reference
| No error message displayed | In Intrepid, this meant the applicable field/record would need to be activated (made current) before it could be used in a record
Applicable to fields in ref table and records
Reversible | - "INACTIVE" should be a Status that can be applied to to reference data and all records in column 4.
- By making a record "INACTIVE", it should remove the ability to create/edit a record using an INACTIVE value
- However existing links to an INACTIVE value should not stop a user from editing the record for other details. E.g. 'University of Newcastle' is INACTIVE in reference table, but in use against Person A qualifications, an admin should be able to change the 'Date attained'.
- On edit, system should flag where there are records using/linked to this data that have a status of “current”. E.g. When making a Post INACTIVE, system should flag if there are
- Display which records are linked or using the data, line by line TBC if this is possible and how (Matt Leech (Unlicensed) to review the best approach)
- It should be possible to change the status of the records from INACTIVE back to CURRENT.
|
3 | Trash can Image Added | Users can click on the trash can next to a field and permanently remove data from TIS - this functions as a hard delete
- removes existing linkages relationship with records and other fields. e.g. The Placement is removed which represents the relationship between a Person and a Post, but the actual Person and Post records remain intact.
- No audit trail is kept of for the deleted record/field
Example: Placement record (People / Placements / Placement list) | - People: Placement
- People: Programme Membership
| "Are you sure you want to delete?" displayed | N/A | 4 | MinusNo error message displayed | N/A | - The trashcan interaction should be applied to all Placement record types, i.e. CURRENT, PAST as well as FUTURE.
- This should act as a soft delete, and render the record/field as follows
- remove the record completely from view in the FE
- apply status “DELETE” in the BE for audit purposes
- Display the deletion in audit log against the relevant user/record - this should also allow user to undo deletion
- Do not allow deletion where linked child records / fields
- Send deleted fields to NDW in segregated area to support reporting
- Consideration of warning message
- Impact assess implications to ESR which currently relies on the trashcan interaction to create Notifications to be sent in the TIS-ESR interface.
Example applicable scenarios - accidental creation of a record
|
4 | Minus Image Added | Users can click on the minus sign next to a field and record and in some cases additionally click on 'Save/Update' button to permanently remove it from TIS, generally: - this functions as a hard delete
- removes existing linkages relationship with records and other fields. e.g. Programme membership which is a relationship between a Person and a Programme is removed, but the actual Programme and Person record are intact.
- No audit trail is kept of for the deleted record
/field
Example: Curricula (Programme / Curricula) | QualificationsPeople: Programme MembershipPosts: Other specialtiesPosts: Sub-specialtiesPosts: Other gradesPosts: Other sitesPosts: Programme namesProgramme: Curricula | No error message displayed | N/A |
5 | X button | Users can click on the X sign next to a field and permanently remove it from TIS - this functions as a hard delete
- removes existing linkages with records and other fields
Example: Roles field (People / Sensitive Data / Manage Records / Roles) | | No error message displayed | N/A |
6 | Dates from/to | Users can specify an end date, which would make the related record or fields Inactive after that date has elapsed - this functions as a hard delete
- removes existing linkages with records and other fields
Example: Post funding (Posts / Post record / Funding) | - People: Registration dates
- People: Inactive date
- People: Programme membership
| No error message displayed | Applied in addition to any status of current, inactive or delete - purely informational |
7 | Archive | Not currently implemented in TIS | N/A | N/A |
Data implications
To Be
In order to consolidate the way that the concept of deletion is used across TIS, the following rules should be applied:
Delete status
- remove “delete” as a status that can be applied in the FE across all fields and records
- apply delete status in the BE only, in certain scenarios (see below)
- display the fields with deleted status in the FE/BE audit logs
- Allow NDW reporting for records with "delete" status
Example applicable scenarios
N/A - see Trash Can
Inactive status
- this should be applied to the following to reference data records and all other functional record types
- It should remove the ability to link to new records, however existing linkages will remain unless edited
- On edit, system should flag where there are records using/linked to this data that have a status of “current”
- display which records are linked or using the data, line by line TBC if this is possible and how
Example applicable scenarios
- records and fields that need to be temporarily retired
- Reference data
Trash can (button)
- this interaction type should be applied to all record types
- this should act as a soft delete, and render the record/field as follows
- remove the record or field completely from view in the FE
- apply status “deleted” in the BE for audit purposes
- display the deletion in audit log against the relevant user/record - this should also allow user to undo deletion
- Do not allow deletion where linked child records / fields
- Send deleted fields to NDW in segregated area to support reporting
Example applicable scenarios
- accidental creation of a record
Minus
...
User clicks on Minus and confirm with on the prompt message with a Yes to hard delete. User has to click on Minus and Save button which result in the hard delete. - Placements:Other Specialties
User has to click on Minus and Update button to remove the relationship of the additional specialties. User has cannot remove the first Other specialty once added. - Placements: Clinical/Educational Supervisors
User cannot currently remove a clinical/educational supervisor using the minus button. User has to click on Minus and Save button to remove the relationship. User has to click on Minus and Save button to remove the relationship. User has to click on Minus and Save button to remove the relationship. User has to click on Minus and Save button to remove the relationship. User has to click on Minus and Save button to remove the relationship. User has to click on Minus and Save button to remove the relationship. User has to click on Minus and Save button to remove the relationship. | - People: Programme Membership
"Really delete programme?" displayed for:Image Added - No error message displayed for the rest.
| N/A | - Minus button should enable the removal of sub-sections to a record
|
...
- This should act as a soft delete
- remove the data from the FE
- apply status of
|
...
- To keep a record of the change in the back end
- To display the deletion in audit log against the relevant user/record - this should also allow user to undo deletion
|
...
- Do not allow deletion where there are linked records. System should flag when:
- a) removing a curriculum against a programme where there are child associations, e.g. curriculum attached to an assessment or a programme membership
- b) removing the curriculum from the programme membership, where there are assessments attached
- Alistair Pringle (Unlicensed)/ Joanne Watson (Unlicensed) - Any other scenarios else to consider here?
- Send deleted fields to NDW in segregated area to support
|
...
- reporting
- The use of Minus and Save/Update in some places to be reviewed for the best UX approach (Matt Leech (Unlicensed) see As-Is column)
Example applicable scenarios - accidental addition of a sub-section (e.g. placement or assessment to a Person) record
- accidental addition of a curriculum to a Programme
|
5 | |
...
button Image Added Image Added | Users can click on the X sign next to a field and permanently remove it from TIS and in some cases have to confirm the prompt message to complete the deletion. - this functions as a hard delete
- removes existing relationship with records. e.g. the role is removed from the Person record, but the actual Role is available to be used against new person records.
Example: Roles field (People / Sensitive Data / Manage Records / Roles) | - People: Roles
- Document: Tags
- Document
| Image Added - No error message displayed for Roles and Tags
| N/A | - This interaction allows the removal of "multi-add" fields against a record
|
...
- It should act as a soft delete
- remove the data from the UI
- apply status of Delete in BE
- AR 16/08: Joanne Watson (Unlicensed) Alistair Pringle (Unlicensed) - Don't think this is straight forward to make a soft delete as it would mean that we should maintain in TIS at field level all possible Roles, whereas currently Roles is just one field which holds comma separated values in the table. One to be discussed...
- keep a record of the change in the back end
- display the deletion in audit log against the relevant user/record - this should also allow user to undo deletion
- Send deleted fields to NDW in segregated area to support reporting
|
Example applicable scenarios
- removal of roles against a person record
- sites against a Post
Dates From/To
...
6 | Dates from/to | Users can specify an end date, which would make the related record or fields 'INACTIVE' after that date has elapsed - this functions as an automatic soft change of the Status
- status of the records automatically changed from CURRENT to INACTIVE and vice-versa
Example: Post funding (Posts / Post record / Funding)
| - People: Registration dates
- People: Inactive date (Has been hidden in the Front End)
- People: Programme membership
| No error message displayed | Applied in addition to any status of current, inactive or delete - purely informational | - This interaction should trigger automatic status change to "
|
...
...
- CURRENT" dependent on when the dates lie in relation to "today's date"
|
...
...
...
...
...
- 'Date To' exceeds today's date
- make record "CURRENT" where today's date reaches 'Date from'.
- keep the record in view within UI and searchable when relevant filter applied
- keep a record of the change in the back end (accessible via audit logs)
- Can be overridden manually by status change,
Example applicable |
...
scenarios: - Joanne Watson (Unlicensed)/ Alistair Pringle (Unlicensed) - AR 16/08: I can't think of any current scenario on TIS where this is currently available. It was previously here witihin People > Sensitive data > Inactive date , but the Inactive date is hidden from the FE currently.
- supervisor approvals (not on TIS, to consider when this is available)
- GMC/GDC/PH number validity
|
Archive REQUIRES FURTHER DISCUSSION WITH JW
...
7 | Archive | Not currently implemented in TIS |
| N/A | N/A | Requires further discussion with Joanne Watson (Unlicensed) / Ray / IG - This is required to enable permanent retirement of record types e.g. when a trainee record falls outside of the data retention period
- this should be an automated process that triggers the following
- change of status in BE that removes "Inactive" trainees after a defined duration has elapsed e.g. 7 years from their programme end date
- remove view of the record in the FE
- notify users in bulk of records that have been archived
- apply status "archive"
- all archived data should be retrievable via NDW
Applicable scenarios - where data needs to be retired relating to Trainee records (after 10 years have elapsed)
|
8 | Bulk Upload/Update | Users able to bulk change the statuses (People) or hard delete (Placements) of multiple records at once using the bulk import facility in TIS. - Functions as a soft change to the Status for People to either INACTIVE/DELETE/CURRENT
- Functions as a hard delete for placements, which is currently only available to data leads to use.
| | N/A | N/A | Joanne Watson (Unlicensed)/ Alistair Pringle (Unlicensed): - Is there a requirement to bulk add 'Inactive date' to People records, if we are going to make it visible in the FE?
- Should we remove the ability to change the People records to 'DELETE' via bulk but keep the ability to make them INACTIVE or CURRENT so that deletions can be undone in bulk?
- The current restricted bulk delete placement which is only available to data leads does hard delete, should we make this a soft delete to be consistent with #3 (trashcan To-Be)?
- Should we consider audit logs for bulk?
- keep a record of the change in the back end (accessible via audit logs)?
|
Questions and Assumptions
# | Question | Comments |
---|
1 | Other than reference date and records (forms), is there anywhere else, or data type, that it should be possible to apply inactive as a status? |
|
2 | Other than within record, are there other scenarios you might want to delete (trashcan) a data entity? for example, particular fields? |
|
3 | Deleting programme membership or curriculum membership current behaviour. Think these are hard deletes too, should they be? If so, do we currently audit the deletion of these? Requires technical design guidance as to what a consistent delete on TIS should be. |
|
4 | What are archiving rules regarding elapsed time and what can/cannot be stored? |
|
5 | What data will need to be accesible (GDPR) and for how long? |
|
6 | Are there any notifications we need to provide to users / trainees regarding the editing/deleting/archiving of their data? |
|
...