Status
- Specification SPECS
- Apiary SPECS
Purpose
This WS is designed to create new medication (post).
APIary
Input parameters
- name
- start_at
- route
- container_dosage info
- package_qty
- package_min_qty
- code_ATX
- manufacturer_name_country info
- certificate
- expired_certificate_date
- ingredients info
- innm_id
- dosage info
- is_active_substance
Authorize
- Verify the validity of access token
- Check user scope (scope = 'medication:write') in order to perform this action
- In case error - generate 401 response
Validate request (JSON schema)
Validate request using JSON schema (link !!! TBD)
Validate Innm
Purpose validation: Check on existing Innm in ingredients
Check exist Innm by $.ingredients[].innm_id.
if invalid - return 422 error (message: "Innm in ingredients is not found!")
Validate Dosage & Container dosage
Purpose validation: Denum unit from Dosage must be equal Denum unit from Container dosage. See examples: Medications model
Check exist any Denum unit from Dosage ($.ingredients[].dosage.denumerator_unit) with Denum unit Container dosage ($.container_dosage.denumerator_unit).
if invalid - return 422 error (message: "Denum unit from Dosage ingredients must be equal Denum unit from Container dosage medication!")
Validate multiplicity
Purpose validation: Package_qty for container_dosage must have multiplicity package_min_qty. Result (Mod or % operator) must = 0 .
- Vaildate multiplicity (Mod == 0) $.package_qty Mod $.package_min_qty == 0
- if result NOT 0 - return 409 eror (message: "Only a multiplicity package quantity for the minimum package quantity !")
Create new Medication
- Create new record in Medications
- Fill data
Destination | Source |
---|---|
id | |
name | $.name |
is_active | TRUE |
start_at | $.start_at |
route | $.route |
container_dosage | $.container_dosage |
package_qty | $.package_qty |
package_min_qty | $.package_min_qty |
code_ATX | $.code_ATX |
manufacturer_name_country | $.manufacturer_name_country |
certificate | $.certificate |
expired_certificate_date | $.expired_certificate_date |
inserted_at | :timestamp |
inserted_by | user_id |
updated_at | :timestamp |
updated_by | user_id |
- Save temp variable from medication.id
- Create new records in Ingredients (array)
Destination | Source |
---|---|
id | |
medication_id | medication.id |
innm_id | $.ingredients[].innm_id |
is_active_substance | $.ingredients[].is_active_substance |
dosage | $.ingredients[].dosage |
inserted_at | :timestamp |
inserted_by | user_id |
updated_at | :timestamp |
updated_by | user_id |
Return data structure
- Fill response data structure (Similar input parametrs)
- Additional
- id
- container_dosage.description
- ingredients.dosage.description
- ingredients.innm info