Purpose
This WS allows to generate Printout form by $contract_id. Printout form is generated only for contract requests in status 'PENDING_NHS_SIGN'. Also, it is available for contract requests s in statuses 'NHS_SIGNED' and 'SIGNED' through Get Contract request details
Specification
Validation
Validate token
- Verify the validity of access token
- Return 401 in case validation fails
- token is not expired
- in case error return 401
Validate scopes
- Check user scopes in order to perform this action (scope = 'contract_request:read')
- Return 403 in case invalid scope(s) -"Your scope does not allow to access this resource. Missing allowances: contract_requests:read"
Validate employee
extract user_id from token
extract client_id from token
- Check if user is active
- in case error return 403 - "user is not active"
- Check nhs_legal_entity is active
- in case error return 403 - "Client is not active"
Validate context
extract client_id from token. LE employee can see only this legal entities contract requests. NHS employee can see any contract request.
- if TOKENS_TYPES_PERSONAL
- Check client_id = contract_request.contractor_legal_entity_id
- in case error return 403 "User is not allowed to perform this action"
- Check client_id = contract_request.contractor_legal_entity_id
Validate data
- Validate contract request id. Check contract_requests.id = $.id
- in case error return 404 ("Contract request with id=$id doesn't exist")
Generate Printout form
- Validate contract request status
- If contract_request in statuses 'PENDING_NHS_SIGN' - generate printout form.
- set nhs_signed_date=now()::date
- In case of error (status in 'NEW', 'IN_PROCESS', 'APPROVED', 'DECLINED', 'TERMINATED', 'NHS_SIGNED' ,'SIGNED') return 409 Error ('Incorrect status of contract_request to generate printout form')
- set nhs_signed_date=now()::date
- In case status was changed either to 'NHS_SIGNED' or 'SIGNED', printout form could be taken through Get Contract request details
- If contract_request in statuses 'PENDING_NHS_SIGN' - generate printout form.
- if contract_type=REIMBURSEMENT - Choose correct print out form, for different medical programs in contract request
medical program name | MAN template | MAN template for contract update | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
"Доступні ліки" | Dostupni_liky | Dostupni_liky appendix | |||||||||
"Інсуліни" | Insulin | Insulin appendix | |||||||||
"Нецукровий діабет" | Netsukrovyy_diabet | Netsukrovyy_diabet appendix |
Invoke MAN to render printout form.
Request mapping:
Parameter | Source |
---|---|
id | CONTRACT_REQUEST |
Curl example
curl --request POST \ --header 'Accept: text/html' \ --header 'Content-Type: application/json' \ {:host}/templates/{:contract_printout_id}/actions/render