Table of Contents | ||||
---|---|---|---|---|
|
...
Page Properties | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||
|
Preconditions
Contract should be created on MSP/Pharmacy 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 |
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 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 may be equal or greater than today and less than or equal to three month 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
...
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
...
Expand | ||
---|---|---|
| ||
|
Expand | ||
---|---|---|
| ||
|
...