Table of Contents |
---|
...
Тільки автотифікований та авторизований користувач (DOCTOR або SPECIALIST) з відповідною спеціальністю, вказаної в config, має можливість створення Плану лікування.
План лікування може бути створений від юридичної особи MSP, PRIMARY_CARE або OUTPATIENT.
План лікування повинен бути підписаний за допомогою електронного ключа.
Плін лікування створюється в асинхронний спосіб, як і всі медичні події.
Активності до Плану лікування додаються за допомогою сервісу Create Care Plan activities. Але, План лікування може бути відокремлено створено без активностей.
...
Отримати patient_id з URL
Первірити статус пацієнта/неідентифікованої особи активний
в разі помилки - повернути код 409 ('Person is not active')
Перевірити, що verification_status персони не дорівнює NOT_VERIFIED.
в разі помилки повернути 409, "Patient is not verified"
Захешувати patient_id та зберегти в поле $.subject
...
Отримати user_id з токену. Первірити, що автор належить до користувачів, які є співробітниками.
в разі помилки - повернути код 422 ('User is not allowed to create care plan for the employee')
Первірити, що автор активний та погоджений та належить до юридичної особи (client_id from token).
в разі помилки - повернути код 403 ('Access denied')
Первірити тип співробітника:
якщо SPECIALIST:
Перевірити, що співробітник має хоча б одну роль, яка:
активна та має активний статус
відповідає сервісу healthcare зі значенням providing_conditions=$.terms_of_service
в разі помилки - повернути код 422 ('Employee does not have active role that correspond to the submitted terms of service')
Для DOCTOR, додаткові перевірки не потрібні
Перевірити спеціалізацію автора (speciality_officio == true) вказану в config для вказаної категорії плану лікування.
в разі помилки - повернути код 409 (“Invalid employee speciality”)
...
Первірити, що посилання валідне на ресурс взаємодії
Перевірити, що взаємодія активна (статус НЕ entered_in_error)
в разі помилки - повернути код 422 ('Encounter in "entered_in_error" status can not be referenced')
Первірити, що взаємодія пов'язана з пацієнтом ($.subject)
в разі помилки - повернути код 422 ('Encounter with such id is not found')
Первірити первинні діагнози у взаємодії:
Перевірити, що код стану є в переліку доступних кодів станів для категоріїї Плану лікування
diabetics
(значення чартів: в config)в разі помилки - повернути код 422 ('Primary diagnosis condition code and care plan category mismatch')
Первірити, що system/codes повністю відповідають значенню в полі Addresses
в разі помилки - повернути код 422 ('Primary diagnosis condition codes do not match with codes in addresses'), для випадку, коли код станів в addresses не таке як діагнозі взаємодії.
Перевірити, що епізод пов'язаний зі взаємодією:
існує
в разі помилки - повернути код 422 ('Encounter refers to episode that does not exist')
активний
в разі помилки - повернути код 422 ('Encounter refers to episode that is not active')
керуюча компанія відповідє юридичній особі автора (client_id)
в разі помилки - повернути код 422 ('Encounter is from another legal entity')
...
Сгенерувати номер заявки (див Human readable requisition number), який має посилання на id Плану лікування
Встановити атрибути $.requisition
...
Якщо пацієнт - не неідентифікована особа та його метод автентифікації визначений Determination of a default authentication method and return person's active auth_methods як OTP або third_person.OTP, відправити СМС до пацієнта з номером заявки.
...