Versions Compared

Key

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

Overview

This web service allows to create a new episode of care for a patient.

...

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)

...

  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 unique
    1. $.id is unique 
      1.  in case of error return 422 - "Episode with such id already exists"

  3. Validate that episode number is unique 
    1. $.number is unique 
      1. in case of error return 409 - "Episode with such number already exists. Episode number must be unique"
  4. Validate request according to JSON Schema LINK
    1. in case of error return 422
  5. Validate type = "Primary care"      - resolved by JSON schematype according to legal entity type
    1. Primary_Care - PHC
    2. OUTPATIENT - AMB, ACUTE, NONAC, SS
    3. EMERGENCY - EMER
  6. Validate status= "active" - resolved by JSON schema
  7. Validate managing_organization
    1. Only one item is allowed in coding array
      1. in case of error return 422 "Only one item is allowed in "coding" array " 
    2. $.managing_organization.identifier.type.coding.[0].code = "legal_entity"
      1. in case of error return 422 "Only legal_entity could be submitted as a managing_organization"
    3. $.managing_organization.identifier.value = token.client_id
      1. in case of error return 422 "Managing_organization does not correspond to user`s legal_entity"
    4. $.managing_organization.identifier.type.coding.[0].system = "eHealth/resources"
      1. in case of error return 422 "Submitted system is not allowed for this field"
  8. Validate period
    1. $.period.start <= current_date
      1. in case of error return 422 - "Start date of episode must be in past"
    2. $.period.end is absent
      1. in case of error return 422 - "End date of episode could not be submitted on creation"
  9. Validate care_manager
    1. $.care_manager.identifier.type.coding.[0].code = "employee"
      1. in case of error return 422 "Only employee could be submitted as a care_manager"
    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"
        1. in case of error return 409 "Employee submitted as a care_manager is not a doctor " 
      2. PRM.employee.status= "active"
        1. in case of error return 409 "Doctor submitted as a care_manager is not active "
      3. PRM.employee.legal_entity = token.client_id
        1. in case of error return 409 "User can create an episode only for the doctor that works for the same legal_entity"

...