Specification
Purpose
This WS allows to terminate contract either by NHS or Legal Entity Side (if scope was allowed).
Request
- status_reason
Authorize
- Verify the validity of access token
- in case of error return 401 ('Access denied')
- Check user scope contract:terminate in order to perform this action
- in case of error generate 401 response ('Invalid scopes')
Validate User
Extract legal_entity_id (client_id) from token.
- Check client_id=contractor_legal_entity_id or client_id=nhs_legal_entity_id
- in case of error return 403 "User is not allowed to perform this action"
- Check client_id=contractor_legal_entity_id or client_id=nhs_legal_entity_id
Validate contract request status
- Check contract_request.status='VERIFIED'
- in case error return 409 - "Incorrect status of contract_request to modify it"
Response
mapping
field | value |
---|---|
status | TERMINATED |
status_reason | $.status_reason |
updated_at | now() |
updated_by | $.user_id |
Auto termination
Fetch all contract with end_date<now(). Set status and status reason for such contract as below:
field | value |
---|---|
status | TERMINATED |
status_reason | $.auto_expired |
updated_at | now() |
updated_by | $.user_id |
Add status to event manager
After status was changed (status = TERMINATED) - add new status to event_manager
field | value |
---|---|
event_type | StatusChangeEvent |
entity_type | Contract |
entity_id | $.id |
properties.status. | $.status |
event_time | $.update_at |
changed_by | $.changed_by |
Deactivate Medical Program Provision
Deactivate all active medical program provision for defined contract number and current legal entity (according to link):
set is_active = false
set deactivate_reason = AUTO_CONTRACT_TERMINATION
set updated_at, updated by