...
...
...
...
Table of Contents | ||||
---|---|---|---|---|
|
Purpose
This WS is designed to change status of contract request to PENDING_NHS_SIGN by legal entity side. After the contract was approved by NHS side (status=APPROVED) MSP employee can change status of contract request and approve it from his side.
...
Specification
...
Page Properties |
---|
Specification
...
|
Logic
This WS is designed to approve contract request by MSP side after it was approved by NHS side. Contract request only in status APPROVED can be approved by MSP/PHARMACY and as a result status changes to 'PENDING_NHS_SIGN'. Only after that NHS employee can sign the contract request.
Input parameters
Input parameter | Values | Type | Description | Example |
---|---|---|---|---|
id | String |
Authorize
Request to process the request using a token in the headers
Headers
Наприклад:
Content-Type:application/json
Authorization:Bearer c2778f3064753ea70de870a53795f5c9
Request data validation
Validate token
Verify the validity of access token
Return 401 in case validation fails
Check if token is not expired
in case error return 401 - "Token is expired"
Validate user
extract user_id from token
...
Check if user is active
in case error return 403 - (user is not active)
check contractor_legal_entity is active
in case error return 403 - (Client is not active)
Validate $client_id=contractor_legal_entity_id.
in case of error return 403 - Client is not allowed to modify contract_request
Validate scopes
Check user scopes in order to perform this action (scope = 'contract_requests:approve')
Return 403 in case invalid scope(s) "Your scope does not allow to access this resource. Missing allowances: contract contract_requests:approve"
Validate data
Validate contract request id.
Check contract_requests.id = $.id
in case error return 404 ("Contract request with id=$id doesn't exist")
Validate contract_request.status=APPROVED
in case error return 409 - "Incorrect status of contract request to modify it"
...
Validate contractor_legal_entity_id
Legal_entities.id = $.contractor_legal_entity_id and Legal_entities.status='ACTIVE' and legal_entities.nhs_verified = true
in case error return 422 ("Legal entity in contract request should be active")
...
Validate contractor_owner_id
Employee is_active=true and status='APPROVED' and employees.legal_entity_id=contractor_legal_entity_id
in case error return 422,
...
$contractor_owner_id (Contractor owner must be active within current legal entity in contract request)
Validate contractor_divisions
Check divisions belongs to legal_entity and divisions.status='active'
in case of error return 422 error view $divisions ('Division must be active and within current legal_entity')
For capitation only: Validate contractor_employee_divisions
Employees from employee_divisions has employee_type='DOCTOR', status='APPROVED'
in case of error return 422 error view $employee ('Employee must be an active DOCTOR')
Check contractor_employee_divisions.division_id is present in contractor_divisions.id
in case of error return 422 error $divisions ('The division is not belong to contractor_divisions')
Validate start_date
start_date > now()
in case error return 422 $start_date ("Contract request start date should be in future")
For reimbursement only: Validate medical_program_id is ACTIVE
...
Processing
Save response data to DB
set status='PENDING_NHS_SIGN'
Mapping
field | value |
---|---|
updated_by | $.user_id |
updated_at | now() |
status | PENDING_NHS_SIGN |
Add to event manager
After status was changed (status = APPROVED, DECLINED, PENDING_NHS_SIGN, TERMINATED or SIGNED) - add new status to event_manager
field | value |
---|---|
|
|
| Contract_request |
| $.id |
| $.status |
| $.update_at |
| $. |
inserted_at | now() |
updated_at | now() |
Response structure
See on Apiary
Example:
Expand | ||
---|---|---|
| ||
|
Expand | ||
---|---|---|
| ||
|
HTTP status codes
HTTP status code | Message | What caused the error |
---|---|---|
200 |
|
|