Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Status

  • Specification 
    Status
    colourRed
    titlespecs
  • Apiary 
    Status
    colourRed
    titlespecs

...

This WS is designed to create new medication (post).

APIary 

create-medication

Input parameters 

  • name
  • start_at
  • route
  • container_dosage infotype
  • manufacturer (object)
  • code_atc
  • form
  • container info
  • package_qty
  • package_min_qtycode_ATX
  • manufacturer_name_country info
  • certificate
  • expired_certificate_dateat
  • ingredients info(array)
    • innm_id
    • dosage info
    • is_active_substance

Authorize

  1. Verify the validity of access token
  2. Check user scope (scope = 'medication:write') in order to perform this action
    1. In case error - generate 401 response

...

Validate request using JSON schema (link !!! TBD)

...

schemas:

Type (Dictionary: MEDICATION_TYPESchema link
INNMnew_medication_type_innm_schema.json
MEDICATIONnew_medication_type_medication_schema.json

Validate FK 

Purpose validation: Check on existing Substance/Innm in ingredients 

  1. For $.type = INNM - Check exist `Substance` by $.ingredients[].id.

    1. if invalid - return 422 error (message: "Substance in ingredients is not found!")

  2. For $.type = MEDICATION - Check exist Innm `Medications` by $.ingredients[].innm_id.

    1. if invalid - return 422 error (message: "Innm INNM in ingredients is not found!")

Validate Equal Dosage & Container

...

Purpose validation: Denum  For $.type = MEDICATION - Denumerator unit from Dosage must Ingredients.dosage  must be equal Denum Numerator unit from Container dosage. See examples: Medications model  

  1. Check exist any Denum unit from Dosage any  ($.ingredients[].dosage.denumerator_unit ) with Denum unit Container dosage ( != $.container_dosage.denumeratornumerator_unit).

    1. if invalid - return 422 error (message: "Denum Denumerator unit from Dosage ingredients must be equal Denum Numerator unit from Container dosage medication!")

Validate multiplicity

...

    1. if result NOT 0 - return 409 eror (message: "Only a multiplicity package quantity for the minimum package quantity !")

Create new Medication

  1. Create new record in Medications 
  2. 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_byuser_id
updated_at:timestamp
updated_byuser_id


  1. Save temp variable from medication.id
  2. 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_byuser_id
updated_at:timestamp
updated_byuser_id


Return data structure

  1. Fill response data structure (Similar input parametrs)
  2. Additional  
    • id
    • container_dosage.description
    • ingredients.dosage.description
    • ingredients.innm info