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

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

« Previous Version 4 Next »

Overview

Procedure can be registered in eHealth as a part of encounter pckg or just by itself with reference on Service Request. This WS is designed to create a new procedure separately from encounter pckg. 

Procedure should be registered in the system after it was performed for a patient.

Requirements

  1. Реєстрація запису про проведену процедуру в ЦК

Specification

  1. Apiary

Validations

Authorization

  • Verify the validity of access token
    • Return (401, 'unauthorized') in case of validation fails
  • Verify that token is not expired
    • in case of error - return (401, 'unauthorized')
  • Check user scopes in order to perform this action (scope = 'procedure:write')
    1. Return (403, 'invalid scopes') in case of invalid scope(s)

Validate digital signature

Decode content that is encrypted in an electronic digital signature.
Use Digital signature WS. Method checks digital signature and returns result.
See service specification

1. Ensure that digital signature is valid

2. Validate that requester of service request is a current user

2.1. Get token metadata

  • Extract user_id, client_id, client_type

2.2. Determine the party_id associated with this user_id

SELECT pu.party_id
FROM party_users pu
WHERE pu.user_id = :user_id;

2.3. Determine employees related to this party_id in current MSP


SELECT e.id
FROM employees e
WHERE e.party_id = :party_id
AND e.legal_entity_id = :client_id;

2.4 Ensure that $.requester.identifier.value matches with user employees

3. Validate that DS belongs to the requester of encounter

3.1. Determine the party_id associated with requester ($.requester.identifier.value)

SELECT p.tax_id
FROM employees e, parties p
WHERE e.party_id = p.id
AND e.id = :requester;

Validate request using JSON Schema

Return 422 with the list of validation errors in case validation fails

Validate procedure

  1. Validate based_on
    1. Validate based_on as Reference(Referencevalidation)
    2. Validate that service_request is
      1. in status is active or in progress
        1. in case of error return 409 "Invalid service request status"
      2. used_by_legal_entity==token.client_id 
        1. in case of error return 409 "Service request is used by another legal_entity"
  2. Validate status 
    1. Procedure status must refer to a certain dictionary (values: entered_in_error, completed)
      1. in case error return 422, "Status not in the dictionary"
  3. Validate status_reason
    1. If status = 'entered_in_error' check if status reason is provided
      1. in case error return 422, "Status reason is mandatory for the status"
  4. Validate code
    1. Validate code as Reference(Referencevalidation)
    2. Validate service.is_active = true
      1. in case error return 409, "Service in not active"
  5. Validate performed_date_time
    1.  performed_date_time is real
      1. in case error return 422, "Performed_date_time in invalid"
    2. performed_date_time <= now
      1. in case error return 422 "Procedure cannot be registered in future"
  6. Validate 
  7. Validate
  8. Validate
  9. Validate
  10. Validate

Service logic

  1. Save signed content to media storage
  2. Save data to corresponding collection in DB
  3. Save link to the signed content in service request storage
  • No labels