...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Table of Contents |
---|
Purpose
This WS is designed for registration equipments equipment in divisions of legal entities.
Specification
Apiary TBD
...
Specification
Page Properties | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||
|
Logic
Only authenticated and authorized HR, ADMIN, OWNER employees can register equipments.
Equipments can be registered in MSP, OUTPATIENT, PRIMARY_CARE and EMERGENCY legal entities.
Equipment
...
has to be linked to division. One division
...
can have
...
many equipments
...
.
Legal entity can register equipments for its own divisions only.
Request structure
Example:
Expand | ||
---|---|---|
| ||
|
...
|
Authorize
Verify the validity of access token
Return 401 in case validation fails
Check user scopes in order to perform this action (scope = 'equipment:write')
Return 403 in case invalid scope(s)
Validate request
...
Headers
Наприклад:
Content-Type:application/json
Authorization:Bearer c2778f3064753ea70de870a53795f5c9
API-key:uXhEczJ56adsfh3Ri9SUkc4en
Request data validation
Validate legal entity
Check that legal entity is active (status = ACTIVE, SUSPENDED)
...
Extract client_id
...
from token (token.client_id == legal_entity_id)
Check legal entity status (status = ACTIVE, SUSPENDED)
In case of error - return 409 (Legal entity must be ACTIVE or SUSPENDED)
Validate request
Validate request using schema
Validate division
A division_id should be passed in request body:
Validate division_id in request body - division
...
exists and is_active = true
Return 422 in case validation fails
Check division_id belongs to the same legal_entity_id (from token) as the user
Return 422 with message "Division is not within current legal entity" in case validation fails.
Check division status =ACTIVE.
Return 422 with message "Division is not active" in case validation fails.
Validate type
...
Validate that an equipments type value exists in dictionary "EQUIPMENT_TYPE"
in case of error "Submitted code is not allowed for this field"
Validate external
...
A legal entity must have only one active equipment with an external_id. Another constraints?
...
identifier
Check an external_id field is not empty
Return 422 (required property external_id was not present) in case of error
Processing
Save object to DB
1. equipments table
Parameter | Source | Description |
---|---|---|
id | UUID | Autogenerated |
type | Request: type | Get from request body |
external_id | Request: external_id | Get from request body |
division_id | Request: division_id | Get from request body |
udi | Request: udi | Get from request body |
lot_number | Request: lot_number | Get from request body |
manufacturer | Request: manufacturer | Get from request body |
manufacture_date | Request: manufacture_date | Get from request body |
expiration_date | Request: expiration_date | Get from request body |
model_number | Request: model_number | Get from request body |
part_number | Request: part_number | Get from request body |
version | Request: version | Get from request body |
name | Request: name | Get from request body |
serial_number | Request: serial_number | Get from request body |
note | Request: note | Get from request body |
legal_entity_id | Token: |
client_id | Extract client from token |
status | Const: |
ACTIVE | By default ACTIVE for new records | |
is_active | Const: TRUE | Always TRUE for new records |
inserted_at | Timestamp: now() | Get current date-time |
inserted_by | Token: |
user_id | Extract user from token | |
updated_at | Timestamp: now() | Get current date-time |
updated_by | Token: |
user_id | Extract user from token |
2. equipment_status_hstr table
Parameter | Source | Description |
---|---|---|
id | UUID | Autogenerated |
equipment_id | UUID | Reference to equipments.id |
status | Const: |
ACTIVE | By default ACTIVE for new records |
inserted_by | Token: |
user_id | Extract user from token | |
inserted_at | Timestamp: now() | Get current date-time |
3. division_equipment table
...
...
Response structure
Example:
Expand | ||
---|---|---|
| ||
|
HTTP status codes
Page Properties | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||
|