Purpose
The service is designed to upload a new medication registry. The process uses the Jabba service. Upon execution of the request, a job is created, on the basis of which tasks are created. Each task is one request to create an entity from the registry.
...
Page Properties | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Logic
Decode base64 file.
Validate input according to schema.
Validate existing and create new entities of medications registry:
Extract medications with
type = INNM_DOSAGE
,is_active = TRUE
,innm_dosage.name
,innm_dosage.form
andinnm_dosage.ingredients.dosage
,innm_dosage.ingredients.is_primary
):in case found extract connected medications with
type = BRAND
,is_active = TRUE
,brand.name
,brand.form
,brand.package_qty
,brand.package_min_qty
,brand.certificate
,brand.container
andbrand.ingredients.dosage
,brand.ingredients.is_primary
):in case found extract connected program medication by medication_id and
program_medications.medical_program_id
and insert program medication with brand according to Create medication registry | program_medications in case program medication not found.
in case innm_dosage not found insert it according to Create medication registry | medications (type = INNM_DOSAGE) and its ingredients Create medication registry | ingredients (for INNM_DOSAGE), Create medication registry | innms (skip innms creation in case it exist).
in case brand not found insert brand according to Create medication registry | medications (type = BRAND) and its ingredient Create medication registry | ingredients (for BRAND).
insert program medication with brand according to Create medication registry | program_medications.
in case brand and program medication found return 422 error with msg ('Such medication already exist').
Return job identifier with result.
innms
Attribute | Source and Logic | Type and Constraints | O/M |
---|---|---|---|
id | uuid_generate_v4(), auto | uuid | M |
sctid | innms.sctid (x), from request | varchar(255) | O |
name | innms.name (x), from request | varchar(255) | M |
name_original | innms.name_original (x), from request | varchar(255) | M |
is_active | true, auto | bool | M |
inserted_by | user_id, from token | uuid | M |
updated_by | user_id, from token | uuid | M |
inserted_at | now(), auto | timestamp | M |
updated_at | now(), auto | timestamp | M |
medications (type = INNM_DOSAGE)
Attribute | Source and Logic | Type and Constraints | O/M |
---|---|---|---|
id | uuid_generate_v4(), auto | uuid | M |
name | innm_dosage.name | varchar(255) | M |
type | auto (INNM_DOSAGE) | varchar(255) | M |
is_active | true, auto | bool | M |
form | innm_dosage.form | varchar(255) Dictionary MEDICATION_FORM | M |
inserted_by | user_id, from token | uuid | M |
updated_by | user_id, from token | uuid | M |
inserted_at | now(), auto | timestamp | M |
updated_at | now(), auto | timestamp | M |
daily_dosage | innm_dosage.daily_dosage | float | O |
max_daily_dosage | innm_dosage.max_daily_dosage | float | O |
mr_blank_type | innm_dosage.mr_blank_type | varchar(64) Dictionary MR_BLANK_TYPES | O |
dosage_form_is_dosed | innm_dosage.dosage_is_dosed | bool | O |
ingredients (for INNM_DOSAGE)
Attribute | Source and Logic | Type and Constraints | O/M | ||
---|---|---|---|---|---|
id | uuid_generate_v4(), auto | uuid | M | ||
dosage | numerator_value | innm_dosage_ingredients.dosage.numerator_value (x), from request | jsonb | float8 | M |
numerator_unit | innm_dosage_ingredients.dosage.numerator_unit (x), from request | varchar(255) Dictionary MEDICATION_UNIT | M | ||
denumerator_value | innm_dosage_ingredients.dosage.denumerator_value (x), from request | float8 | M | ||
denumerator_unit | innm_dosage_ingredients.dosage.denumerator_unit (x), from request | varchar(255) Dictionary MEDICATION_UNIT | M | ||
is_primary | innm_dosage_ingredients.is_primary (x), from request | bool At least one of the ingredients must be is_primary = true | M | ||
innm_child_id | uuid_generate_v4(), auto | uuid innm_id | O | ||
parent_id | uuid_generate_v4(), auto | uuid | M | ||
inserted_at | now(), auto | timestamp | M | ||
updated_at | now(), auto | timestamp | M |
medications (type = BRAND)
Attribute | Source and Logic | Type and Constraints | O/M | ||
---|---|---|---|---|---|
id | uuid_generate_v4(), auto | uuid | M | ||
name | brand.name | varchar(255) | M | ||
type | auto (BRAND) | varchar(255) | M | ||
manufacturer | name | brand.manufacturer.name | jsonb | varchar(255) | M |
country | brand.manufacturer.country | varchar(255) Dictionary COUNTRY | M | ||
code_atc | brand.code_atc | jsonb | varchar(255) | M | |
is_active | true, auto | bool | M | ||
form | brand.form | varchar(255) Dictionary MEDICATION_FORM | M | ||
container | numerator_value | brand.container.numerator_value | jsonb | float8 | M |
numerator_unit | brand.container.numerator_unit | varchar(255) Dictionary MEDICATION_UNIT | M | ||
denumerator_value | brand.container.denumerator_value | float8 | M | ||
denumerator_unit | brand.container.denumerator_unit | varchar(255) Dictionary MEDICATION_UNIT | M | ||
package_qty | brand.package_qty | float | O | ||
package_min_qty | brand.package_min_qty | float | O | ||
certificate | brand.certificate | varchar(255) | O | ||
certificate_expired_at | brand.certificate_expired_at | date | O | ||
inserted_by | user_id, from token | uuid | M | ||
updated_by | user_id, from token | uuid | M | ||
inserted_at | now(), auto | timestamp | M | ||
updated_at | now(), auto | timestamp | M | ||
form_pharm | brand.form_pharm | varchar(255) | O | ||
max_request_dosage | brand.max_request_dosage | int | O |
ingredients (for BRAND)
Attribute | Source and Logic | Type and Constraints | O/M | ||
---|---|---|---|---|---|
id | uuid_generate_v4(), auto | uuid | M | ||
is_primary | brand_ingredients.is_primary (x), from request | bool Only one ingredient should be is_primary = true | M | ||
dosage | numerator_value | brand_ingredients.dosage.numerator_value (x), from request | jsonb | float8 | M |
numerator_unit | brand_ingredients.dosage.numerator_unit (x), from request | varchar(255) Dictionary MEDICATION_UNIT | M | ||
denumerator_value | brand_ingredients.dosage.denumerator_value (x), from request | float8 | M | ||
denumerator_unit | brand_ingredients.dosage.denumerator_unit (x), from request | varchar(255) Dictionary MEDICATION_UNIT | M | ||
medication_child_id | uuid_generate_v4(), auto | uuid medication (type = INNM_DOSAGE) | O | ||
parent_id | uuid_generate_v4(), auto | uuid | M | ||
inserted_at | now(), auto | timestamp | M | ||
updated_at | now(), auto | timestamp | M |
program_medications
Attribute | Source and Logic | Type and Constraints | O/M | |
---|---|---|---|---|
id | uuid_generate_v4(), auto | uuid | M | |
reimbursement | type | program_medications.reimbursement.type | varchar(64) Dictionary REIMBURSEMENT_TYPE | M |
reimbursement_amount | program_medications.reimbursement.reimbursement_amount | float | M | |
percentage_discount | program_medications.reimbursement.percentage_discount | float | M | |
is_active | true, auto | bool | M | |
medication_request_allowed | true, auto | bool | M | |
care_plan_activity_allowed | true, auto | bool | M | |
inserted_by | user_id, from token | uuid | M | |
updated_by | user_id, from token | uuid | M | |
medication_id | medication_id (type = BRAND), auto | uuid | M | |
medical_program_id | program_medications.medical_program_id | uuid | M | |
inserted_at | now(), auto | timestamp | M | |
updated_at | now(), auto | timestamp | M | |
wholesale_price | program_medications.wholesale_price | float8 | O | |
consumer_price | program_medications.consumer_price | float8 | O | |
reimbursement_daily_dosage | program_medications.reimbursement_daily_dosage | float8 | O | |
estimated_payment_amount | program_medications.estimated_payment_amount | float8 | O | |
start_date | program_medications.start_date | date | O | |
end_date | program_medications.end_date | date | O | |
registry_number | program_medications.registry_number | varchar(255) | O | |
max_daily_dosage | program_medication.max_daily_dosage | float8 | O |
Example with values:
View file | ||
---|---|---|
|
...
|
Preconditions
API paragraph not found
Global and configurable parameters
No
Input parameters
API paragraph not found
Filters
API paragraph not found
Dictionaries
API paragraph not found
Request structure
Expand |
---|
mutation description - WIP |
...
File example:
View file | ||
---|---|---|
|
*Note. Fields innms.sctid
, innms.name
, innms.name_original
, innm_dosage_ingredients.is_primary
, innm_dosage_ingredients.dosage.numerator_value
, innm_dosage_ingredients.dosage.numerator_unit
, innm_dosage_ingredients.dosage.denumerator_value
, innm_dosage_ingredients.dosage.denumerator_unit
, brand.code_atc
can exist as an array. Values should be separated as | (respectively).
...