Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Overview

...

Apiary

Validation

Validate token

  • Verify the validity of access token

    • Return 401 in case validation fails

  • Verify token is not expired

    • in case of error return 401 

  • Verify check value of ALLOW_OTHER_LE_EMPLOYEES_TO_MANAGE_EPISODE variable in charts configuration

    • if its value is equal to false, verify that user’s employees from care_manager belongs to one of the user_id from token

    .
      • in case of error - return 422 ('User is not allowed to perform this action')

    • otherwise, verify that user’s employees from care_manager belongs to the same Legal Entity as author of the episode

      • in case of error - return 422 ('User is not allowed to perfom this action')

Validate scopes

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

    1. Return 403 in case invalid scope(s)

...

  • Validate episode belongs to the legal entity where the current user works

    • ME.episode.managing_organization==token.client_id

      • in case of error return 422 "Managing_organization does not correspond to user`s legal_entity"

Validate request

  1. Validate episode is not already canceled

    1. ME.patients{patient_id}.episodes{episode_id}.status!="entered_in_error"

      1. in case of error "Episode in <status> can not be canceled"  

  2. Validate that "canceleation_reason" is a valid value from the corresponding dictionary 

    1. $.cancellation_reason.coding[*].system == "eHealth/cancellation_reasons"

  3. Validate that all encounters created on episode are already canceled

    1.   ME.patients{patient_id}.episodes{episode_id}.encounters{*}.status != `entered_in_error`

      1. in case of error - "Episode can not be canceled while it has not canceled encounters"

...