...
legal entity(client_id)
Check legal_entity.type in me_allowed_transactions_le_types config parameter and legal_entity.status = ACTIVE
in case of error return 409 "Action is not allowed for the legal entity"
service request
validate SR.program_processing_status in (new,In Queue,In Progress)
in case error return 409, “service request has wrong status“
validate SR.status = Active
in case error return 409, “service request has wrong status“
program
For each program validate it is an existing service program with type=service
in case not found or is_active==false write result in Data collection according to apiary
in case type!= service write result in Data collection according to apiary - "Invalid program type"
For each program validate that service(or service_group) is an active member of the program
Select is_active from PRM.program_services where service_id(or group_id) == $.signed_content.code.identifier.value and program_id=$.program.identifier.value
if not found or is_active==false write result in Data collection according to apiary - "Service is not included in the program"
For each program validate that doctor is allowed to create service request with the program for the current patient
according to ABAC rules
in case error return "User is not allowed to create service request with the program for the patient"
...