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

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

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 https://edenlab.atlassian.net/wiki/spaces/EH/pages/610041863 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_codes array from PRM.diagnoses_group_codes by diagnoses_group_id.

    • Select Episodes of Care where diagnoses_history.code is in diagnoses_codes array.

  • 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. Get diagnoses_codes array from diagnoses_groups (PRM.diagnoses_group_codes DB).

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

    1. status is "active"

    2. at least one code from diagnoses_history is in diagnoses_codes array and where diagnoses_history.status == "active".

  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.

  • No labels