Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview

This web service is designed to create an episode of care.

...

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:create')
    1. Return 403 in case invalid scope(s)

...

  1. Validate patient status
    1. Medical_data status for this patient must be in "active" status
      1. in case of error return 409 - "Patient is not active"
  2. Validate episode id is uniqie
    1. $.id is unique 
      1.  in case of error return 422 - "Episode with such id already exists"

        {:error, [{%{
                description: "pisode with such id already exists",
                params: [],
                rule: :invalid
              }, "$.id

        "

        }]}


  3. Validate request according to JSON Schema LINK
    1. in case of error return 422
  4. Validate type = "Primary care"      - resolved by JSON schema
  5. Validate status= "active" - resolved by JSON schema
  6. Validate managing_organization
    1. Only one item is allowed in coding array
      1. in case of error return 409 "Only one item is allowed in "coding" array " 
    2. $.managing_organization.identifier.type.coding.[0].code = "legal_entity"
      1. in case of error return 409 "Only legal_entity could be subitted as a managing_organozation"
    3. $.managing_organization.identifier.value = token.client_id
      1. in case of error return 409 "User can create an episode only for the legal entity for which he works"
    4. $.managing_organization.identifier.type.coding.[0].system = "eHealth/resources"
      1. in case of error return 409 "Only value "eHealth/resources" allowed as a system for managing_organization"
  7. Validate period
    1. $.period.start <= current_date
      1. in case of error return 409 - "Start date of episode must be in past"
    2. $.period.end is absent
      1. in case of error return 409 - "End date of episode could not be submitted on creation"
  8. Validate care_manager
    1. $.care_manager.identifier.type.coding.[0].code = "employee"
      1. in case of error return 409 "Only employee could be subitted as a care_manager"
    2. $.care_manager.identifier.type.coding.[0].system = "eHealth/resources"
      1. in case of error return 409 "Only value "eHealth/resources" allowed as a system for care_manager"
    3. $.care_manager.identifier.value must meet the following requirements: 
      1. id exsists in PRM.employee and is active DOCTOR and relates to the same legal entity
        1. PRM.employee.type = "DOCTOR"
        2. PRM.employee.status= "active"
        3. PRM.employee.legal_entity = token.client_id

Error example:

{:error, [{%{
        description: "Episode with such id already exists",
        params: [],
        rule: :invalid
      }, "$.id"}]}