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

Get Short Episodes by Diagnoses Groups

Purpose

This WS is designed to search Episodes of Care grouped by Groups of Diagnoses. If the user has approval on the Group of Diagnoses, he will receive a list of short Episodes of Care which contain diagnoses from this Group. To receive full Episode of Care data user must have the approval and use Get Episode by id endpoint.

Specification

Apiary

Authorization

  • Verify the validity of access token

    • Return (401, 'Invalid access token') in case of validation fails

  • Verify that token is not expired

    • in case of error - return (401, 'Invalid access token')

  • Check user scopes in order to perform this action (scope = 'episode:read')

    • Return (403, 'Your scope does not allow to access this resource. Missing allowances: episode:read') in case of invalid scope(s)

Search params

  • period_from. Filter Episodes of Care where period.start is greater than period_from.

  • period_to. Filter Episodes of Care where period.end is less than period_to.

  • diagnoses_group_id.

    • Get diagnoses_group (PRM.diagnoses_group_codes DB) by diagnoses_group_id.

    • For each diagnose in diagnoses_group (from previous step) get  code and system values. Save diagnose to diagnoses_codes list

    • Select Episodes of Care where diagnose (diagnoses_history.coding.code and diagnoses_history.coding.system) is in diagnoses_codes list.

  • managing_organization_id. Filter Episodes of Care where managing_organization.identifier.value is like managing_organization_id.

Service logic

Service returns list of short Episodes of Care, which contain diagnoses from Groups of Diagnoses user has approval on, filtered by submitted parameters:

  1. Select list of employees from PRM.employees related to the current user in the current legal_entity, using data from the token.

  2. Select all active approvals on diagnoses_groups from ME.approvals (Mongo DB), where these employees referenced as granted_to.

  3. For each diagnose in diagnoses_groups (PRM.diagnoses_group_codes DB) get  code and system values. Save diagnose to diagnoses_codes list.

  4. Get Episodes of Care by person_id from ME.episodes (Mongo DB) where:

    1. status is "active"

    2. Select Episodes of Care where diagnose (diagnoses_history.coding.code and diagnoses_history.coding.system) is in diagnoses_codes list

  5. Filter Episodes of Care by submitted search params (period_from, period_to, diagnoses_group_id, managing_organization_id).

  6. Order Episodes of Care by inserted_at and render a response according to specification:

    1. diagnoses block should contain diagnoses with codes from diagnoses_codes array only.

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