ЕСОЗ - публічна документація
Deactivate innm dosage registry_UA
Ціль
Сервіс розроблено для завантаження деактивації innm_dosage та пов'язанного лікарського засобу та запису по program_medication. Процес використовує сервіс jabba. В ході виконання створюється job, на основі якої також створюються задачі. Кожна задача - це один запит на створення сутності з реєстру.
Специфікація
Авторизація
Перевірити валідність токену доступу
в разі помилки - повернути 401 (“Invalid access token”) в разі невалідних валідацій
Перевірити, що токен дійсний
в разі помилки - повернути 401 (“Invalid access token”)
Перевірити скоупи користувача (scope = 'medication_registry:write') на можливість виконання даної дії
в разі помилки - повернути 403 (“Your scope does not allow to access this resource. Missing allowances: medication_registry:write”)
Перевірити запит
Перевірити запит використовуючи схему
Повернути 422 з переліком помилок валідації в разі їх неуспішності.
Перевірити, що registerType = ‘DEACTIVATE_INNM_DOSAGE_REGISTRY'
Повернути 422 з переліком помилок валідації в разі їх неуспішності.
Перевірити, що reasonDescription заповнено
Повернути 422 з переліком помилок валідації в разі їх неуспішності.
Перевірити вхідний файл у відповідності до структури файлу
Повернути 422 з переліком помилок валідації в разі їх неуспішності.
Перевірити, що ідентифікатори з запиту існують та активні
Повернути 404 з переліком помилок валідації в разі їх неуспішності.
Приклад файлу:
Сервісна логіка
Перевірити вхідні дані у відповідності до схеми
Перевірити існуючі та деактивувати сутності innm_dosage з реєстру:
Отримати лікарські засоби (type = INNM_DOSAGE) по innm_dosage.id з файлу та визначити останні dispense_valid_to між IL.medication_request_requests.data (status = NEW) та OPS.medication_requests (status = ACTIVE):
В разі, якщо є будь-які medication_request_requests та medication_requests встановити для активних записів (is_active = true)
PRM.medications (type = INNM_DOSAGE)
is_active = false
end_date = current_date ()
updated_at = now()
updated_by = user_id, from token
PRM.medications (type = BRAND)
is_active = false
end_date = current_date ()
updated_at = now()
updated_by = user_id, from token
PRM.program_medications
medication_request_allowed = false
care_plan_activity_allowed = false
is_active = false
end_date = current_date ()
updated_at = now()
updated_by = user_id, from token
В разі, якщо є будь-які medication_request_requests та medication_requests встановити для активних записів (is_active = true):
PRM.medications (type = INNM_DOSAGE)
end_date = $.dispense_valid_to
updated_at = now()
updated_by = user_id, from token
PRM.medications (type = BRAND)
end_date = $.dispense_valid_to
updated_at = now()
updated_by = user_id, from token
PRM.program_medications
medication_request_allowed = false
care_plan_activity_allowed = false
end_date = $.dispense_valid_to
updated_at = now()
updated_by = user_id, from token
Повернути ідентифікатор job з результатом.
ЕСОЗ - публічна документація