Status
Purpose
This WS is designed to return Program_medications detail.
APIary
Input parameters (filters)
- id
Logic WS
- Verify the validity of access token
- Check user scopes in order to perform this action (scope = 'program_medications:read')
Validate PK Medication
Purpose validation: Check on existing record for the participant (Medication within the Medical program)
Check exist participant "Program_medications" by $.id
- if invalid - return 404 error (message: "ID for Medication linked with the Medical program is not found!")
Validate status
Purpose validation: Participant (medication within the program) should be active (is_active == TRUE)
- Validate `is_active` == TRUE
- if invalid - return 409 eror (message: "Participant should be active!")
Logic WS
- Verify the validity of access token
- Check user scopes in order to perform this action (scope = 'program_medications:read')
Search Program_medications by filters in payload
SELECT
pr.id
,mp.name as
medical_program_name
,med.name as medication_name
,med.form
,med.manufacturer
,INNM.name as innm_name
,pr.reimbursement
,
pr.medication_id
,pr.medical_program_id
,pr.is_active
,
pr.medical_request_allowed,
INNM.id as innm_id
,innm.dosage as
innm_dosage
,innm.form as
innm_form
,
innm
.is_active_substance
,med.dosage as med_dosage
,med.is_active_substance
,sub.id as
substances_id
,sub_name as substances_name
FROM
program_medicationspr
INNER JOIN medical_programs mp
ON pr
.medical_program_id = mp.id
AND mp.is_active = TRUE
INNER JOIN medications med
ON pr.
medication_id =
MED.id
AND
MED.is_active =
TRUE
AND
MED
.type = 'MEDICATION'
AND
MED.ingredients.is_active_substance =
TRUE
INNER
JOIN
medications INNM
AND
INNM.is_active =
TRUE
AND
INNM
.type = 'INNM'
INNER
JOIN
substancessub
AND
sub.is_active =
TRUE
WHERE
pr.id
=$.
id
Prepare & return response data structure
- Fill response WS data structure
- Validate response using JSON schemas (!!! TBD)
- Return 422 with list of validation errors in case validation fails (422 EView)