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
,innm.form
,med.dosage
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'
WHERE
1=1AND (PR.medical_program_id =
$.
medical_program_id
OR
$.
medical_program_id
IS
NULL)
AND
(mp.
name
LIKE
`%$.medical_program_name
%`
OR
$.
name
IS
NULL
)
AND
(INNM.id = $.innm_id
OR
$.innm_id
IS
NULL
)
AND
(INNM.
name
LIKE
`%$.innm_name%`
OR
$.innm_name
IS
NULL)
AND
(PR.
medication_id
= $.idOR
$.id
IS
NULL
)
AND
(med.name
LIKE
`%$.
%`
OR
$.
medication_name
IS
NULL
)
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)