Table of Contents |
---|
Specification
Purpose
This WS is designed to search (get list) of Medication requests.
...
DOCTOR can see all Medication request for which he is the a doctor (employee_id)
DOCTOR can see all the Medication requests of the patients whom he has an active declaration with doctor (employee_id)
User of NHS_ADMIN can see all Medication request (without limitations)
Input parameters (filters)
legal_entity_id (optional)
employee_id (optional)
person_id (optional)
status (optional). By default status=ACTIVE.
request_number (optional)
created_from (optional)
created_to (optional)
medication_id (optional)
intent (optional)
care_plan_id (optional)
page (optional)
page_size (optional)
Logic WS
Verify the validity of access token
Return 401 in case validation fails
Check user scopes in order to perform this action (scope = 'medication_request:read')
Return 403 in case invalid scope(s)
Get `my_party_id` from `$.context.user_id`
Return 500 in case ("Not found party for this user!")
Get list of employees to `my_employees_list` for this `party_id` & `$.context.legal_entity_id`
Code Block SELECT E.id FROM parties P JOIN employees E ON P.id = E.party_id JOIN party_users PU ON parties.id = party_users.party_id WHERE PU.user_id=$.context.user_id AND E.legal_entity_id = $.context.legal_entity.id
Search Medication requests by filters with use `my_employees_list` :
Code Block SELECT * FROM medication_request MR LEFT JOIN declarations D ON MR.person_id = D.person_id AND D.status = ACTIVE WHERE (MR.employee_id IN [my_employees_list] OR D.employee_id IN [my_employees_list] ) AND (MR.status = $.status OR $.status IS NULL) AND (MR.person_id = $.person_id OR $.person_id IS NULL) AND (MR.medication_id = $.medication_id OR $.medication_id IS NULL) AND (MR.number = $.request_number OR $.request_number IS NULL) AND (MR.created_at >= $.created_from OR $.created_from IS NULL) AND (MR.created_at <= $.created_to OR $.created_to IS NULL)
Logic WS for `client_type` = NHS_ADMIN
Verify the validity of access token
Return 401 in case validation fails
Check user scopes in order to perform this action (scope = 'medication_request:read')
Return 403 in case invalid scope(s)
Search Medication requests by filters:
Code Block SELECT * FROM medication_request MR WHERE AND (MR.employee_id == $.employee_id OR $.employee_id IS NULL) AND (MR.status == $.status OR $.status IS NULL) AND (MR.person_id == $.person_id OR $.person_id IS NULL) AND (MR.medication_id = $.medication_id OR $.medication_id IS NULL) AND (MR.number = $.request_number OR $.request_number IS NULL) AND (MR.created_at >= $.created_from OR $.created_from IS NULL) AND (MR.created_at <= $.created_to OR $.created_to IS NULL) AND (MR.legal_entity_id == $.legal_entity_id OR $.legal_entity_id IS NULL)
Response (output)
If according to filters requests are not found, WS returns empty data array.
WS also returns pagination data - for technical info.
Response (output)
If according to filters requests are not found, WS returns empty data array.
WS also returns pagination data - for technical info.