Table of Contents |
---|
Purpose
...
User can see all Medication Requests of which he is an author
User of MSP, PRIMARY_CARE, OUTPATIENT (DOCTOR, SPECIALIST, etc) can see all Medication requests from the user's legal entity
User of MSP, PRIMARY_CARE (DOCTOR, etc) can see all the Medication requests of the patients whom he has an active declaration with by yourself a doctor (employee_id)User of PHARMACY or NHS_ADMIN (PHARMACIST, etc) can see all Medication requests (without limitations)
User of MSP, PRIMARY_CARE, OUTPATIENT (DOCTOR, SPECIALIST, etc) can see all Medication requests based on the approval of the care plan that is contained in the Medication request
Specification
Page Properties | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Logic
Verify the validity of access token
Return 401 in case validation fails
Check user scopes in order to perform this action (scope = 'medication_request:details')
Return 403 in case invalid scope(s)
Get `client_type` from `mithril.clients`
...
Get `my_party_id` from `$.context.user_id`
Return 500 in case ("Not found party for this user!")
Get list from `prm.employees` for this `party_id` & `$.context.legal_entity_id`
Search Medication requests by filters:
Code Block SELECT * FROM medication_request MR INNER JOIN employees E ON E.party_id = my_party_id AND (E.id = $.employee_id OR $.employee_id IS NULL) AND (E.legal_entity_id == $.context.legal_entity_id OR $.context.legal_entity_id IS NULL) LEFT JOIN declarations D ON D.Employee_id = E.id AND E.status = ACTIVE AND D.status = ACTIVE AND MR.person_id = D.person_id WHERE (MR.id = $.id OR MR.request_number = $.id) AND MR.employee_id == E.id AND MR.is_active = TRUE
Logic WS for medication requests based on care plan
Get party_id from $.context.user_id
Get list from $.prm.employees for this party_id
Get care_plan_id from $.medication_requests.based_on_care_plan_id
Check $.approvals for user's employees (granted_to) on care_plan_id (granted_resources) and $.medication_requests.person_id (granted_by)
Search Medication requests by filters: based_on_care_plan_id, person_id.
Code Block SELECT * FROM medication_request MR WHERE (MR.id = $.id OR MR.request_number = $.id) AND MR.based_on_care_plan_id = $.id AND MR.person_id = $.id AND MR.is_active = TRUE
...
Authorization:Bearer c2778f3064753ea70de870a53795f5c9
Validate request
API paragraph not found
Request data validation
Search Medication Request
Search record by `$.id` in column `medication_request.id`
If not found - Search record by `$.id` in column `medication_request.request_number`
If not found - Return 404 in case "Not found record in DB with this ID!"
...
Validate FK
Read data from `ops_db.medication_requests` by `id`
Validate legal_entity_id - legal_entity_id exists
Return 422 in case validation fails (422 EView)
Validate employee_id - employee_id exists
Return 422 in case validation fails (422 EView)
Validate division_id - division_id exists
Return 422 in case validation fails (422 EView)
Validate medical_program_id - medical_program_id exists
Return 422 in case validation fails (422 EView)
Validate all medication_id - medication_id exists
Return 422 in case validation fails (422 EView)
Validate person_id - mpi_id exists
Return 422 in case validation fails (422 EView)
...