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

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 »

Overview

This web service is designed to create new episode of care for the patient.

Specification

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 

Validate scopes

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

    1. Return 403 in case invalid scope(s)

Validate legal entity

  • 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 in the episode does not correspond to user`s legal_entity"

Request validation

  1. ME.episode.status == "active"

    1. in case of error "Episode in status {episode_status} can not be updated"

  2. Validate care_manager

    1. $.care_manager.identifier.type.coding.[0].code = "employee"

      1. in case of error return 422 "Submitted code is not allowed for this field"

    2. $.care_manager.identifier.type.coding.[0].system = "eHealth/resources"

      1. in case of error return 422 "Submitted system is not allowed for this field"

    3. $.care_manager.identifier.value must meet the following requirements

      1. PRM.employee.type = "DOCTOR" or "SPECIALIST" OR "ASSISTANT"

        1. in case of error return 409 "Employee submitted as a care_manager is not a not a doctor in the list of allowed employee types"

      2. PRM.employee.status= "active"

        1. in case of error return 409 "Doctor Employee submitted as a care_manager is not active "

      3. PRM.employee.legal_entity = token.client_id=ME.episode.care_manager.identifier.value

        1. in case of error return 409 "User doesn`t have permitions to set the employee as a care_manager of the episode" 


Request processing

  1. Set patients.episodes.#{id}.care_manager.display_value= ((PRM.parties.first_name + PRM.parties.second_name  + PRM.parties.last_name) where PRM.parties.id == PRM.employees.party_id) where PRM.employees.id== $.care_manager.identifier.value

  2. Set episodes.managing_organization.display_value = PRM.legal_entities.public_name where ( PRM.legal_entities.id == $.managing_organization.identifier.value) 

  • No labels