ЕСОЗ - публічна документація

(RC-1 MRIN) Get Medication requests List

Specification

Get Medication Requests list

Purpose

This WS is designed to search (get list) of Medication requests.

According to requirements:

  • 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

  1. Verify the validity of access token

    1. Return 401 in case validation fails

  2. Check user scopes in order to perform this action (scope = 'medication_request:read')

    1. Return 403 in case invalid scope(s)

  3. Get `my_party_id`  from `$.context.user_id`

    1. Return 500 in case ("Not found party for this user!")  

  4. Get list of employees to `my_employees_list` for this `party_id`  & `$.context.legal_entity_id`

    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



  5. Search Medication requests by filters with use `my_employees_list` : 

    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

  1. Verify the validity of access token

    1. Return 401 in case validation fails

    2. Check user scopes in order to perform this action (scope = 'medication_request:read')

      1. Return 403 in case invalid scope(s)

    3. Search Medication requests by filters: 

      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)

  1. If according to filters requests are not found, WS returns empty data array.

    1. WS also returns pagination data - for technical info.

Response (output)

  1. If according to filters requests are not found, WS returns empty data array.

    1. WS also returns pagination data - for technical info.

ЕСОЗ - публічна документація