Table of Contents |
---|
Purpose
...
Table of Contents | ||||
---|---|---|---|---|
|
Purpose
This WS is designed to update contract by NHS by creating new contract request.
Specification
Page Properties | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||
|
Preconditions
API paragraph not found
Logic
...
Contract should be created on MSP/Pharmacy side
Logic
This WS is designed to update contract by NHS by creating new contract request. Contract request is created with contract number, and parent contract is added to request. NHS Admin can change only fields that are on nhs side.
Request has a similar structure as in Public. Create Contract Request
. For Create contract request by NHS, the contract_number
in the request is required, it is used to change the existing contract by the NHS.
Input parameters
Input parameter | Values | Type | Description | Example |
---|---|---|---|---|
contract_type | CAPITATION REIMBURSEMENT | String | Required |
|
id |
| String | Contract_request ID. Required | 09106b70-18b0-4726-b0ed-6bda1369fd52 |
Dictionaries
...
Request structure
Example:
...
Verify the validity of access token
in case of error return 401 ('Access denied')
Check user scope contract_request:create in order to perform this action
in case of error generate 401 response ('Invalid scopes')
Headers
Наприклад:
Content-Type:application/json
...
contract request number structure XXXX-1234-5678-C , where:
XXXX - series: numbers + only some letters (A, E, H, K, M, P, T, X)
1234-5678 - randomly generated numbers and letters A, E, H, K, M, P, T, X.
contract_number is in request
in case error return 409, "Contract number should be in payload"
check there is a contract with such contract_number
in case of error return 422 error ('Contract with such contract number does not exist')
contrat status = VARIFIED
in case of error return 409 error ('Can not update terminated contract')
Contract.is_suspended = false
in case error 409, "suspended contract should be updated by contractor_owner"
Check only next fields are different from contract
nhs_signer_id
nhs_signer_base
nhs_contract_price (for capitation contracts only)
nhs_payment_method
issue_city
Misc
assignee_id
in case error return 422, "Not allowed to change field $.field"
Validate end_date:
if $contract_number and $end_date is passed in request:
the year of $end_date must be greater or equal then the $start_date
in case of error return 422 ('The year of end_date should be one year greater or equal to start_date')
the $end_date should be less than $end_date from the previous contract equal or greater than today and less than or equal to three month from $end_date the previous contract
in case of error return 422 ('The end_date should may be equal or greater than of the previous contract today and less than or equal to three monthsmonth from end_date the previous contract')
if $contract_number w/o $end_date is passed in request:
$end_date is taken from the previous contract.
Processing
Search pending contract requests
...
status=APPROVED
parent_contract_id=contract_id
update fields from request, other fields should be taken from contract.
Mapping for request
contract request | old contract | edited fields by nhs | other | ||
---|---|---|---|---|---|
contractor_legal_entity_id | contractor_legal_entity_id | ||||
contractor_owner_id | contractor_owner_id | ||||
contractor_base | contractor_base | ||||
contractor_payment_details | contractor_payment_details | ||||
contractor_rmsp_amount | contractor_rmsp_amount | ||||
start_date | start_date | ||||
end_date | end_date | ||||
nhs_legal_entity_id | token.client_id | ||||
nhs_signer_id | nhs_signer_id | ||||
nhs_signer_base | nhs_signer_base | ||||
contractor_signed | false | ||||
issue_city | issue_city | ||||
status | APPROVED | ||||
status_reason | null | ||||
nhs_contract_price | nhs_contract_price | ||||
nhs_payment_method | nhs_payment_method | ||||
contract_number | contract_number | ||||
id_form | id_form | ||||
contractor_divisions |
| ||||
misc | misc | ||||
assignee_id | assignee_id | ||||
type | type | ||||
medical_program_id | medical_program_id |
Save signed contract request to media storage
Get url for contract request upload.
ParameterSourceaction 'GET' bucket 'CONTRACT_REQUEST' resource_id : CONTRACT_REQUEST_ID resource_name : CONTRACT_REQUEST_APPROVED timestamp :TIMESTAMP Upload signed contract request to media storage
Event
...
manager
After contract request was created by NHS as change to existed contract this change should be shown in event manager
field | value | example |
---|---|---|
event_type | ContractRequestCreateEvent | |
entity_type | {$.contract.type}ContractRequest | CapitationContractRequest/ReimbursementContractRequest |
entity_id | $.id | |
properties.contract.old_value | $.parent_id | |
event_time | $.update_at | |
changed_by | $.user_id | |
inserted_at | now() | |
updated_at | now() |
Dictionaries
CONTRACT_PAYMENT_METHOD
CONTRACT_TYPE
REIMBURSEMENT_CONTRACT_TYPE
ADDRESS_TYPE
COUNTRY
SETTLEMENT_TYPE
STREET_TYPE
PHONE_TYPE
SPECIALITY_TYPE
SPECIALITY_LEVEL
SPEC_QUALIFICATION_TYPE
Response structure
Example:
Expand | ||
---|---|---|
| ||
|
Expand | ||
---|---|---|
| ||
|
Post-processing processes
API paragraph not found
HTTP status codes
Page Properties | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||
|
...