Table of Contents | ||||
---|---|---|---|---|
|
Required parameters are marked with "*"
Якщо інформації по відповідному параметру немає, потрібно зазначити: “APIparagraph not found”.
Purpose*
This method adds activity to an existing patient's Care Plan.
...
Request to process the request using a token in the headers
Headers*
Наприклад:
Content-Type:application/json
Authorization:Bearer F3GF124Df565FDS234SDF34
api-key:aDGFDFGT46S5gFGD
...
Check that value is an array with references of condition, observation, diagnostic report or clinical impression types.
in case of error - return 422 ('value is not allowed in enum')
Check that each reference:
is valid ME
belongs to the patient ($.subject)
in case of error - return 422 ('<medical event type> with such ID is not found')
If $.detail.reason_reference=clinical_impression:
Check that clinical impression is valid based on clinical_impression.code.coding.code and CLINICAL_IMPRESSION_PATIENT_CATEGORIES_<CODE.CODING.CODE>_VALIDITY_PERIOD chart parameter: difference between now() and clinical_impression.inserted_at date must be less than a value in chart parameter (pointed in config for a corresponding care plan category) for clinical impression code
in case of error - return 422 ("Clinical impression with patient category exceeds validity period")
Check that clinical impression is based on active rule engine rule (exists record in rule_engine_rules collection with is_active=true, code.code=clinical_impression.code.coding.code, code.system=clinical_impression.code.coding.system)
if true - check that clinical impression still corresponds to configured rule
in case of error - return 422 (“Clinical impression with patient category does not correspond to rule engine rule“)
if false - skip rule validation
5. Goal
Validate value in the field $.detail.goal, if submitted
...
Validate value with schema of the Period type
in case of error - return 422 schema validation error
Check values within $.CarePlan.Period
in case period.end validation error - return 422 ('Period end time must be within care plan period range, after period start date')
in case period.start validation error - return 422 ('Period start time must be within care plan period range')
...
Check activity kind is medication_request
Return 422 ('Field is allowed for medication request activities only') in case kind is not medication_request
11. Medical program
Validate field exists for kind = medication_request
If $.detail.kind=medication_request, check that $.program is submitted
in case of error - return 422 ("Medical program must be submitted for kind = medication_request")
Validate value in the field $.program, if submitted
Сheck program exists and active
in case not found or is_active==false return 404 "Program not found"
Validate product is program participant:
If product is medication - validate that medication has brand that is an active member of the program (program_medications table)
in case not found or is_active==false return 422 "Medication is not included in the program"
If product is service - validate that service is an active member of the program
in case not found or is_active==false return 422 "Service is not included in the program"
if product is service_group - validate that service group is an active member of the program
in case not found or is_active==false return 422 "Service group is not included in the program"
Validate medical program settings (prm.medical_programs table):
if there is a parameter SPECIALITY_TYPES_ALLOWED:
Check author’s speciality is present in SPECIALITY_TYPES_ALLOWED
in case of error - return 422 “Author’s specialty doesn't allow to create activity with medical program from request”
if there is a parameter CONDITIONS_ICD10_AM_ALLOWED or/and CONDITIONS_ICPC2_ALLOWED:
Check related Care plan has condition codes in
addresses
field that correspond to codes pointed in CONDITIONS_ICD10_AM_ALLOWED or/and CONDITIONS_ICPC2_ALLOWED (depending on dictionary - eHealth/ICD10_AM/condition_codes or eHealth/ICPC2/condition_codes)in case of error - return 422 “Care plan diagnosis is not allowed for the medical program“
If there is a parameter PROVIDING_CONDITIONS_ALLOWED:
Check related Care plan has a value in
terms_of_service
field that is included in the list of PROVIDING_CONDITIONS_ALLOWED parameterin case of error - return 422 “Care plan’s terms of service are not allowed for the medical program“
if there is a parameter patient_categories_allowed:
check that patient_categories_allowed has codes in $.detail.reason_reference.[].clinical_impression.code.[].code that correspond to codes pointed in patient_categories_allowed
in case of error - return 422 "Clinical impression with patient category should be present in request for this medical program"
12. Do not perform flag
Validate value in the field $.do_not_perform
...