...
Properties of a REST API method document
Document type | Метод REST API |
---|---|
Document title | [DRAFT] REST API Process Specimen [API-007-012-001-0497] |
Guideline ID | GUI-0011 |
Author | @ |
Document version | 1 |
Document status | DRAFT |
Date of creation | ХХ.ХХ.ХХХХ (дата фінальної версії документа – RC або PROD) |
Date of update | ХХ.ХХ.ХХХХ (дата зміни версії) |
Method API ID | API-007-012-001-0497 |
Microservices (namespace) | ME |
Component | Specimen |
Component ID | COM-007-012 |
Link на API-специфікацію | |
Resource | {{host}}/api/patients/{{patient_id}}/specimens/{{id}}/actions/process |
Scope | specimen:process |
Protocol type | REST |
Request type | PATCH |
Sync/Async | Async |
Public/Private | Public |
Purpose
This WS allows to set date and time when Specimen was received for processing by laboratory employee.
...
Only authenticated and authorized employee with appropriate scope can process a Specimen.
DS isn't used here.
The specimen is processed asynchronously
Logic
https://e-health-ua.atlassian.net/wiki/spaces/EH/pages/17629118915/RC.#%D0%9E%D0%B1%D0%BB%D1%96%D0%BA-%D0%B4%D0%B0%D1%82%D0%B8-%D1%82%D0%B0-%D1%87%D0%B0%D1%81%D1%83-%D0%BE%D1%82%D1%80%D0%B8%D0%BC%D0%B0%D0%BD%D0%BD%D1%8F-%D0%97%D1%80%D0%B0%D0%B7%D0%BA%D0%B0[DRAFT] BP-ESOZ-028-0005 [MIS] Облік дати та часу отримання Зразка
Configuration parameters
N/A
...
Input parameter | Mandatory | Type | Description | Example | |
---|---|---|---|---|---|
1 | patient_id | M | String | Unique patient identifier |
|
2 | id | M | String | Unique specimen identifier |
|
Request structure
See on API-specification
...
Extract client_id from token
Check legal entity status (status = ACTIVE)
In case of error - return 409 ('client“client_id refers to legal entity that is not active'active”)
Validate data consistency
...
Get Specimen by id
Check Specimen’s status is available
in case of error - return 409 ('Specimen “Specimen is not in available status'status”)
Validate request
Validate request by schema and return 422 error code with the list of validation errors in case of fails. User fills following fields in the request:
...
Check it hasn’t set yet (empty before the process invoked)
in case of error - return 422 ('Value “Value is already set and cannot be changed'changed”)
Check $.received_time is between current datetime and (collected_date_time OR collected_period.end)
in case of error - return 422 ('Should “Should be between collected datetime and current datetime'datetime”)
Processing
Create job and return it’s id.
Update specimen record with following:
received_time = $.received_time
updated_at = current datetime
updated_by = user_id from token
...
Response code | HTTP Status code | Message | Internal name | Description | |
---|---|---|---|---|---|
1 | Базові | ||||
2 | 401 | Invalid access token |
| Недійсний токен доступу | |
3 | 403 | Access denied. Party is not verified |
| У доступі відмовлено. Працівник не верифікований | |
4 | 403 | Access denied. Party is deceased |
| У доступі відмовлено. Працівник померлий | |
5 | 403 | Your scope does not allow to access this resource. Missing allowances: specimen:process |
| Відсутня можливість доступу до цього ресурсу через брак наявності скоупу: specimen:process | |
6 | 404 | not found |
| Не знайдено | |
7 | 409 | client_id refers to legal entity that is not active |
| client_id відноситься до юридичної особи, яка неактивна в системі | |
8 | 409 | Specimen is not in available status |
| Зразок не в статусі "доступний" | |
9 | 422 | Should be between collected datetime and current datetime |
| Має бути в проміжку між датою забору та поточною датою | |
10 | 422 | Value is already set and cannot be changed | Значення вже вказане і не може бути змінене |
Post-processing processes
...
Technical modules where the method is used
N/A