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

Will be DEPRECATED_Get Medication requests List

Specification

Apiary

Purpose

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

According to requirements:

  • Employee can see all Medication request for where is the author (employee_id) 

  • Employee can see all the Medication requests of the patients whom he has an active declaration with doctor (employee_id)

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)

  • encounter_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)


    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.

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