cr-connect-workflow/crc/scripts/check_study.py

32 lines
1.2 KiB
Python
Raw Normal View History

from SpiffWorkflow.exceptions import WorkflowTaskExecException
from crc.scripts.script import Script
from crc.api.common import ApiError
from crc.services.protocol_builder import ProtocolBuilderService
2021-07-02 19:51:24 +00:00
from crc.services.study_service import StudyService
2022-02-09 13:50:00 +00:00
from crc.services.workflow_spec_service import WorkflowSpecService
class CheckStudy(Script):
pb = ProtocolBuilderService()
def get_description(self):
2021-07-02 19:51:24 +00:00
return """Returns the Check Study data for a Study"""
def do_task_validate_only(self, task, study_id, workflow_id, *args, **kwargs):
2022-02-09 13:50:00 +00:00
spec_service = WorkflowSpecService()
categories = spec_service.get_categories()
study = StudyService.get_study(study_id, categories)
2021-07-02 19:51:24 +00:00
if study:
return {"DETAIL": "Passed validation.", "STATUS": "No Error"}
else:
raise WorkflowTaskExecException(task, 'Function check_study failed. There is no study for study_id {study_id}.')
def do_task(self, task, study_id, workflow_id, *args, **kwargs):
check_study = self.pb.check_study(study_id)
if check_study:
return check_study
else:
raise WorkflowTaskExecException(task, 'There was a problem checking information for this study.')