spiff-arena/tests/SpiffWorkflow/bpmn/data/NavLeapFrogLong.bpmn
Jon Herron 0892db6fa7 Squashed 'SpiffWorkflow/' content from commit 63db3e4
git-subtree-dir: SpiffWorkflow
git-subtree-split: 63db3e45947ec66b8d0efc2c74064004f8ff482c
2022-10-12 10:19:53 -04:00

1210 lines
57 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_06pyjz2" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.7.3">
<bpmn:process id="NavLeapFrog" isExecutable="true">
<bpmn:startEvent id="StartEvent_1">
<bpmn:outgoing>Flow_0kcrx5l</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:scriptTask id="ScriptTask_LoadPersonnel" name="Load IRB Personnel">
<bpmn:incoming>Flow_0kcrx5l</bpmn:incoming>
<bpmn:outgoing>Flow_1dcsioh</bpmn:outgoing>
<bpmn:script>current_user = ldap()
investigators = study_info('investigators')
# Primary Investigator
pi = investigators.get('PI', None)
is_cu_pi = False
if pi != None:
hasPI = True
study_data_set("PiUid",pi['uid'])
if pi.get('uid', None) != None:
pi_invalid_uid = False
if pi['uid'] == current_user['uid']:
is_cu_pi = True
else:
pi_invalid_uid = True
else:
hasPI = False
# Department Chair
dc = investigators.get('DEPT_CH', None)
if dc != None:
if dc.get('uid', None) != None:
dc_invalid_uid = False
else:
dc_invalid_uid = True
else:
dc_invalid_uid = False
# Primary Coordinators
pcs = {}
is_cu_pc = False
cnt_pcs_uid = 0
for k in investigators.keys():
if k in ['SC_I','SC_II','IRBC']:
investigator = investigators.get(k)
if investigator.get('uid', None) != None:
if investigator['uid'] != current_user['uid']:
pcs[k] = investigator
cnt_pcs_uid = cnt_pcs_uid + 1
else:
is_cu_pc = True
is_cu_pc_role = investigator['label']
else:
pcs[k] = investigator
cnt_pcs = len(pcs.keys())
if cnt_pcs != cnt_pcs_uid:
pcs_invalid_uid = True
else:
pcs_invalid_uid = False
if cnt_pcs &gt; 0:
del(k)
del(investigator)
# Additional Coordinators
acs = {}
is_cu_ac = False
cnt_acs_uid = 0
for k in investigators.keys():
if k == 'AS_C':
investigator = investigators.get(k)
if investigator.get('uid', None) != None:
if investigator['uid'] != current_user['uid']:
acs[k] = investigator
cnt_acs_uid = cnt_acs_uid + 1
else:
is_cu_ac = True
is_cu_ac_role = investigator['label']
else:
acs[k] = investigator
cnt_acs = len(acs.keys())
if cnt_pcs != cnt_pcs_uid:
acs_invalid_uid = True
else:
acs_invalid_uid = False
if cnt_acs &gt; 0:
del(k)
del(investigator)
# Sub-Investigatoers
subs = {}
is_cu_subs = False
cnt_subs_uid = 0
for k in investigators.keys():
if k[:2] == 'SI':
investigator = investigators.get(k)
if investigator.get('uid', None) != None:
if investigator['uid'] != current_user['uid']:
subs[k] = investigator
cnt_subs_uid = cnt_subs_uid + 1
else:
is_cu_subs = True
else:
subs[k] = investigator
cnt_subs = len(subs.keys())
if cnt_subs != cnt_subs_uid:
subs_invalid_uid = True
else:
subs_invalid_uid = False
if cnt_subs &gt; 0:
del(k)
del(investigator)
# Additional Personnel
aps = {}
is_cu_ap = False
cnt_aps_uid = 0
for k in investigators.keys():
if k in ['SCI','DC']:
investigator = investigators.get(k)
if investigator.get('uid', None) != None:
if investigator['uid'] != current_user['uid']:
aps[k] = investigator
cnt_aps_uid = cnt_aps_uid + 1
else:
is_cu_ap = True
is_cu_ap_role = investigator['label']
else:
aps[k] = investigator
cnt_aps = len(aps.keys())
if cnt_aps != cnt_aps_uid:
aps_invalid_uid = True
else:
aps_invalid_uid = False
if cnt_aps &gt; 0:
del(k)
del(investigator)
del(investigators)</bpmn:script>
</bpmn:scriptTask>
<bpmn:endEvent id="EndEvent_1qor16n" name="End">
<bpmn:documentation>temp</bpmn:documentation>
<bpmn:incoming>Flow_10zn0h1</bpmn:incoming>
<bpmn:incoming>Flow_0kp47dz</bpmn:incoming>
</bpmn:endEvent>
<bpmn:userTask id="Activity_EditPI" name="Update PI Info" camunda:formKey="PI_Info">
<bpmn:documentation>##### Please confirm Primary Investigator entered in Protocol Builder is correct and if so, provide additional information:
### **{{ pi.display_name }}**
***Email:*** {{ pi.email_address }}
**Primary Appointment**
***School:*** {{ pi.E0.schoolName }}
***Department:*** {{ pi.E0.deptName }}
{% if is_me_pi %}
Since you are the person entering this information, you already have access and will receive all emails.
{% endif %}</bpmn:documentation>
<bpmn:extensionElements>
<camunda:formData>
<camunda:formField id="pi.experience" label="Investigator&#39;s Experience" type="textarea">
<camunda:properties>
<camunda:property id="rows" value="5" />
</camunda:properties>
</camunda:formField>
<camunda:formField id="pi.access" label="Should the Principal Investigator have full editing access in the system?" type="boolean" defaultValue="True">
<camunda:properties>
<camunda:property id="hide_expression" value="is_cu_pi" />
</camunda:properties>
</camunda:formField>
<camunda:formField id="pi.emails" label="Should the Principal Investigator receive automated email notifications?" type="boolean" defaultValue="True">
<camunda:properties>
<camunda:property id="hide_expression" value="is_cu_pi" />
</camunda:properties>
</camunda:formField>
<camunda:formField id="PIsPrimaryDepartmentSameAsRO" label="Is the PI&#39;s Primary Department the same as the study&#39;s Responsible Organization?" type="enum" defaultValue="yes">
<camunda:properties>
<camunda:property id="enum_type" value="radio" />
</camunda:properties>
<camunda:value id="yes" name="Yes" />
<camunda:value id="diffDept" name="No, it is a different Department within the same School" />
<camunda:value id="diffSchool" name="No, it is a different School" />
</camunda:formField>
</camunda:formData>
<camunda:properties>
<camunda:property name="display_name" value="pi.label" />
</camunda:properties>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1kg5jot</bpmn:incoming>
<bpmn:outgoing>Flow_1mplloa</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_0kcrx5l" sourceRef="StartEvent_1" targetRef="ScriptTask_LoadPersonnel" />
<bpmn:sequenceFlow id="Flow_1dcsioh" sourceRef="ScriptTask_LoadPersonnel" targetRef="Gateway_CheckForPI" />
<bpmn:exclusiveGateway id="Gateway_CheckForPI" name="PI With Valid UID?" default="Flow_147b9li">
<bpmn:incoming>Flow_1dcsioh</bpmn:incoming>
<bpmn:outgoing>Flow_147b9li</bpmn:outgoing>
<bpmn:outgoing>Flow_00prawo</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="Flow_147b9li" name="Yes" sourceRef="Gateway_CheckForPI" targetRef="Gateway_CheckUIDs" />
<bpmn:sequenceFlow id="Flow_00prawo" name="No" sourceRef="Gateway_CheckForPI" targetRef="Activity_1qwzwyi">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">not(hasPI) or (hasPI and pi_invalid_uid)</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:manualTask id="Activity_1qwzwyi" name="Show No PI or Invalid UID">
<bpmn:documentation>No PI entered in PB</bpmn:documentation>
<bpmn:incoming>Flow_00prawo</bpmn:incoming>
<bpmn:outgoing>Flow_16qr5jf</bpmn:outgoing>
</bpmn:manualTask>
<bpmn:exclusiveGateway id="Gateway_0jykh6r" name="How many Primary Coordinators?" default="Flow_0xifvai">
<bpmn:incoming>Flow_0kpe12r</bpmn:incoming>
<bpmn:incoming>Flow_1ayisx2</bpmn:incoming>
<bpmn:outgoing>Flow_0xifvai</bpmn:outgoing>
<bpmn:outgoing>Flow_1oqem42</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="Flow_0xifvai" name="1 or more" sourceRef="Gateway_0jykh6r" targetRef="TaskPMI_UpdateCoordinatorInfo" />
<bpmn:sequenceFlow id="Flow_1n0k4pd" sourceRef="TaskPMI_UpdateCoordinatorInfo" targetRef="Gateway_0zrcknh" />
<bpmn:userTask id="TaskPMI_UpdateCoordinatorInfo" name="Update Primary Coordinator Info" camunda:formKey="SC_AccessEmails">
<bpmn:documentation>The following Primary Coordinators were entered in Protocol Builder:
{%+ for key, value in pcs.items() %}{{value.display_name}} ({{key}}){% if loop.index is lt cnt_pcs %}, {% endif %}{% endfor %}
To Save the current settings for all Primary Coordinators, select Save All.
Otherwise, edit each Coordinator as necessary and select the Save button for each.
### Please provide supplemental information for:
#### {{ pc.display_name }}
##### Title: {{ pc.title }}
##### Department: {{ pc.department }}
##### Affiliation: {{ pc.affiliation }}</bpmn:documentation>
<bpmn:extensionElements>
<camunda:formData>
<camunda:formField id="pc.access" label="Should this Coordinator have full editing access in the system?" type="boolean" defaultValue="true" />
<camunda:formField id="pc.emails" label="Should this Coordinator receive automated email notifications?" type="boolean" defaultValue="true" />
</camunda:formData>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0xifvai</bpmn:incoming>
<bpmn:outgoing>Flow_1n0k4pd</bpmn:outgoing>
<bpmn:multiInstanceLoopCharacteristics camunda:collection="pcs" camunda:elementVariable="pc" />
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_1oqem42" name="None" sourceRef="Gateway_0jykh6r" targetRef="Gateway_0zrcknh">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">cnt_pcs == 0</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:scriptTask id="ScriptTask_DeterminePI_E0_Department" name="Determine PI E0 Department">
<bpmn:incoming>Flow_0tfprc8</bpmn:incoming>
<bpmn:incoming>Flow_0tsdclr</bpmn:incoming>
<bpmn:outgoing>Flow_1grahhv</bpmn:outgoing>
<bpmn:script>LDAP_dept = pi.department
length_LDAP_dept = len(LDAP_dept)
pi.E0 = {}
if length_LDAP_dept &gt; 0:
E0_start = LDAP_dept.find("E0:") + 3
E0_slice = LDAP_dept[E0_start:length_LDAP_dept]
E0_first_hyphen = E0_slice.find("-")
E0_dept_start = E0_first_hyphen + 1
pi.E0.schoolAbbrv = E0_slice[0:E0_first_hyphen]
isSpace = " " in E0_slice
if isSpace:
E0_first_space = E0_slice.find(" ")
E0_spec_start = E0_first_space + 1
E0_spec_end = len(E0_slice)
pi.E0.deptAbbrv = E0_slice[E0_dept_start:E0_first_space]
pi.E0.specName = E0_slice[E0_spec_start:E0_spec_end]
else:
pi.E0.specName = ""
else:
pi.E0.schoolAbbrv = "Not in LDAP"
pi.E0.deptAbbrv = "Not in LDAP"
pi.E0.specName = "Not in LDAP"</bpmn:script>
</bpmn:scriptTask>
<bpmn:sequenceFlow id="Flow_1grahhv" sourceRef="ScriptTask_DeterminePI_E0_Department" targetRef="ScriptTask_Update_PIData" />
<bpmn:userTask id="UserTask_SelectChair" name="Select RO Education Department" camunda:formKey="RO_EducationDept">
<bpmn:documentation>The Study's Responsible Organization is needed in order to confirm the Department Chair. If it is the same as the Primary Investigator's Primary Department show below, we have all the information needed to determine the Department Chair.
**Primary Investigator's Primary Appointment**
***School:*** {{ pi.E0.schoolName }}
***Department:*** {{ pi.E0.deptName }}</bpmn:documentation>
<bpmn:extensionElements>
<camunda:formData>
<camunda:formField id="RO_StudyDeptEducation" label="PI&#39;s Study Responsible Organization Department" type="enum">
<camunda:properties>
<camunda:property id="spreadsheet.name" value="DepartmentList-Education.xlsx" />
<camunda:property id="spreadsheet.value.column" value="Value" />
<camunda:property id="spreadsheet.label.column" value="Label" />
<camunda:property id="description" value="Type key words to find Education Department" />
</camunda:properties>
</camunda:formField>
</camunda:formData>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0iuzu7j</bpmn:incoming>
<bpmn:outgoing>Flow_0whqr3p</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_1oo0ijr" sourceRef="BusinessRuleTask_Determine_RO_Chair" targetRef="ScriptTask_UpdateRO_Data" />
<bpmn:exclusiveGateway id="Gateway_PI_is_DeptChair" name="PI is Dept Chair?" default="Flow_0vi6thu">
<bpmn:incoming>Flow_070j5fg</bpmn:incoming>
<bpmn:outgoing>Flow_0vi6thu</bpmn:outgoing>
<bpmn:outgoing>Flow_00yhlrq</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="Flow_0vi6thu" name="No" sourceRef="Gateway_PI_is_DeptChair" targetRef="Activity_1sffono" />
<bpmn:sequenceFlow id="Flow_00yhlrq" name="Yes" sourceRef="Gateway_PI_is_DeptChair" targetRef="Activity_ShowPI_is_DeptChair">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">RO_Chair_CID == pi.uid</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:manualTask id="Activity_ShowPI_is_DeptChair" name="Show PI is Dept Chair">
<bpmn:documentation>The PI is also the RO Chair</bpmn:documentation>
<bpmn:incoming>Flow_00yhlrq</bpmn:incoming>
<bpmn:outgoing>Flow_0kpe12r</bpmn:outgoing>
</bpmn:manualTask>
<bpmn:sequenceFlow id="Flow_0kpe12r" sourceRef="Activity_ShowPI_is_DeptChair" targetRef="Gateway_0jykh6r" />
<bpmn:exclusiveGateway id="Gateway_1oxt6h1" name="How many Sub-Investigators?" default="Flow_05rqrlf">
<bpmn:incoming>Flow_12ss6u8</bpmn:incoming>
<bpmn:incoming>Flow_0dt3pjw</bpmn:incoming>
<bpmn:outgoing>Flow_05rqrlf</bpmn:outgoing>
<bpmn:outgoing>Flow_0jxzqw1</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="Flow_05rqrlf" name="1 or more" sourceRef="Gateway_1oxt6h1" targetRef="Activity_0yd4wuz" />
<bpmn:sequenceFlow id="Flow_0ofpgml" sourceRef="Activity_0yd4wuz" targetRef="Gateway_13k761k" />
<bpmn:sequenceFlow id="Flow_0jxzqw1" name="None" sourceRef="Gateway_1oxt6h1" targetRef="Gateway_13k761k">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">cnt_subs == 0</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:userTask id="Activity_0yd4wuz" name="Update Sub-Investigator Info" camunda:formKey="SI_AccessEmails">
<bpmn:documentation>The following Sub-Investigators were entered in Protocol Builder:
{%+ for key, value in subs.items() %}{{value.display_name}} ({{key}}){% if loop.index is lt cnt_subs %}, {% endif %}{% endfor %}
To Save the current settings for all Sub-Investigators, select Save All.
Otherwise, edit each Sub-Investigator as necessary and select the Save button for each.
### Please provide supplemental information for:
#### {{ sub.display_name }}
##### Title: {{ sub.title }}
##### Department: {{ sub.department }}
##### Affiliation: {{ sub.affiliation }}</bpmn:documentation>
<bpmn:extensionElements>
<camunda:formData>
<camunda:formField id="sub.access" label="Should this Sub-Investigator have full editing access in the system?" type="boolean" defaultValue="false" />
<camunda:formField id="sub.emails" label="Should this Sub-Investigator receive automated email notifications?" type="boolean" defaultValue="false" />
</camunda:formData>
</bpmn:extensionElements>
<bpmn:incoming>Flow_05rqrlf</bpmn:incoming>
<bpmn:outgoing>Flow_0ofpgml</bpmn:outgoing>
<bpmn:multiInstanceLoopCharacteristics camunda:collection="subs" camunda:elementVariable="sub" />
</bpmn:userTask>
<bpmn:endEvent id="Event_0npjf2p">
<bpmn:documentation>Please enter the Private Investigator in Protocol Builder.</bpmn:documentation>
<bpmn:incoming>Flow_16qr5jf</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_16qr5jf" sourceRef="Activity_1qwzwyi" targetRef="Event_0npjf2p" />
<bpmn:sequenceFlow id="Flow_1kg5jot" sourceRef="ScriptTask_Update_PIData" targetRef="Activity_EditPI" />
<bpmn:scriptTask id="ScriptTask_Update_PIData" name="Set PI Data">
<bpmn:incoming>Flow_1grahhv</bpmn:incoming>
<bpmn:outgoing>Flow_1kg5jot</bpmn:outgoing>
<bpmn:script>pi.E0.schoolName = PI_E0_schoolName
pi.E0.deptName = PI_E0_deptName
pi_experience_key = "pi_experience_" + pi.user_id
pi.experience = user_data_get(pi_experience_key,"")
ro = {}
ro['chair'] = {}</bpmn:script>
</bpmn:scriptTask>
<bpmn:sequenceFlow id="Flow_070j5fg" sourceRef="ScriptTask_UpdateRO_Data" targetRef="Gateway_PI_is_DeptChair" />
<bpmn:scriptTask id="ScriptTask_UpdateRO_Data" name="Update RO Data">
<bpmn:incoming>Flow_1oo0ijr</bpmn:incoming>
<bpmn:outgoing>Flow_070j5fg</bpmn:outgoing>
<bpmn:script>ro.chair = {}
ro.chair.uid = RO_Chair_CID
ro.chair.name_degree = RO_Chair_Name_Degree
ro.chair.title = RO_Chair_Title
ro.chair.sig_block = RO_Chair_Sig_Block</bpmn:script>
</bpmn:scriptTask>
<bpmn:exclusiveGateway id="Gateway_0zrcknh" name="How many Additional Coordinators?" default="Flow_1gtl2o3">
<bpmn:incoming>Flow_1n0k4pd</bpmn:incoming>
<bpmn:incoming>Flow_1oqem42</bpmn:incoming>
<bpmn:outgoing>Flow_1gtl2o3</bpmn:outgoing>
<bpmn:outgoing>Flow_0dt3pjw</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="Flow_1gtl2o3" name="1 or more" sourceRef="Gateway_0zrcknh" targetRef="Activity_1yjg742" />
<bpmn:sequenceFlow id="Flow_12ss6u8" sourceRef="Activity_1yjg742" targetRef="Gateway_1oxt6h1" />
<bpmn:userTask id="Activity_1yjg742" name="Update Additional Coordinator Info">
<bpmn:documentation>The following Additional Coordinators were entered in Protocol Builder:
{%+ for key, value in acs.items() %}{{value.display_name}} ({{key}}){% if loop.index is lt cnt_acs %}, {% endif %}{% endfor %}
To Save the current settings for all Additional Coordinators, select Save All.
Otherwise, edit each Coordinator as necessary and select the Save button for each.
### Please provide supplemental information for:
#### {{ acs.display_name }}
##### Title: {{ acs.title }}
##### Department: {{ acs.department }}
##### Affiliation: {{ acs.affiliation }}</bpmn:documentation>
<bpmn:incoming>Flow_1gtl2o3</bpmn:incoming>
<bpmn:outgoing>Flow_12ss6u8</bpmn:outgoing>
<bpmn:multiInstanceLoopCharacteristics camunda:collection="acs" camunda:elementVariable="ac" />
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_0dt3pjw" name="None" sourceRef="Gateway_0zrcknh" targetRef="Gateway_1oxt6h1">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">cnt_acs == 0</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:exclusiveGateway id="Gateway_10ngpfu" name="PI&#39;s Primary School / Department same as study&#39;s Responsible Organization?" default="Flow_0w4d2bz">
<bpmn:incoming>Flow_1va8c15</bpmn:incoming>
<bpmn:outgoing>Flow_1yd7kbi</bpmn:outgoing>
<bpmn:outgoing>Flow_0w4d2bz</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_141zszd" name="Same School?" default="Flow_13la8l3">
<bpmn:incoming>Flow_1yd7kbi</bpmn:incoming>
<bpmn:outgoing>Flow_13la8l3</bpmn:outgoing>
<bpmn:outgoing>Flow_0ycdxbl</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="Flow_1yd7kbi" name="No" sourceRef="Gateway_10ngpfu" targetRef="Gateway_141zszd">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">PIsPrimaryDepartmentSameAsRO.value != "yes"</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_13la8l3" name="Yes" sourceRef="Gateway_141zszd" targetRef="Gateway_1dfciuq" />
<bpmn:sequenceFlow id="Flow_0ycdxbl" name="No" sourceRef="Gateway_141zszd" targetRef="Activity_1h5mjwh">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">PIsPrimaryDepartmentSameAsRO.value == 'diffSchool'</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:scriptTask id="Activity_1h5mjwh" name="Build School List">
<bpmn:incoming>Flow_0ycdxbl</bpmn:incoming>
<bpmn:outgoing>Flow_1fj9iz0</bpmn:outgoing>
<bpmn:script>sch_enum = []
if pi.E0.schoolAbbrv != "MD":
sch_enum_md = [
{
"value": "MD",
"label": "Medicine"
},
]
else:
sch_enum_md = []
if pi.E0.schoolAbbrv != "AS":
sch_enum_as = [
{
"value": "AS",
"label": "Arts &amp; Science"
},
]
else:
sch_enum_as = []
if pi.E0.schoolAbbrv != "CU":
sch_enum_cu = [
{
"value": "CU",
"label": "Education"
},
]
else:
sch_enum_cu = []
if pi.E0.schoolAbbrv != "NR":
sch_enum_nr = [
{
"value": "NR",
"label": "Nursing"
},
]
else:
sch_enum_nr = []
sch_enum = sch_enum_md + sch_enum_as + sch_enum_cu + sch_enum_nr
del(sch_enum_md)
del(sch_enum_as)
del(sch_enum_cu)
del(sch_enum_nr)</bpmn:script>
</bpmn:scriptTask>
<bpmn:sequenceFlow id="Flow_1fj9iz0" sourceRef="Activity_1h5mjwh" targetRef="Activity_141w33n" />
<bpmn:userTask id="Activity_141w33n" name="Select RO School" camunda:formKey="RO_School">
<bpmn:extensionElements>
<camunda:formData>
<camunda:formField id="RO_StudySchool" label="Select the Responsible Organization&#39;s School" type="enum">
<camunda:properties>
<camunda:property id="data.name" value="sch_enum" />
<camunda:property id="data.value.column" value="value" />
<camunda:property id="data.label.column" value="label" />
</camunda:properties>
</camunda:formField>
</camunda:formData>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1fj9iz0</bpmn:incoming>
<bpmn:outgoing>Flow_1yz8k2a</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_1yz8k2a" sourceRef="Activity_141w33n" targetRef="Activity_1yen2d0" />
<bpmn:sequenceFlow id="Flow_0whqr3p" sourceRef="UserTask_SelectChair" targetRef="Gateway_1gzewp9" />
<bpmn:exclusiveGateway id="Gateway_1dfciuq" name="School Have Departments?" default="Flow_1azfvtx">
<bpmn:incoming>Flow_13la8l3</bpmn:incoming>
<bpmn:incoming>Flow_0mdjaid</bpmn:incoming>
<bpmn:outgoing>Flow_0fw4rck</bpmn:outgoing>
<bpmn:outgoing>Flow_1azfvtx</bpmn:outgoing>
<bpmn:outgoing>Flow_0giqf35</bpmn:outgoing>
<bpmn:outgoing>Flow_0iuzu7j</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="Flow_0fw4rck" name="No" sourceRef="Gateway_1dfciuq" targetRef="Gateway_0zd7syo">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">ro.schoolAbbrv not in ["MD", "AS", "CU"]</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:exclusiveGateway id="Gateway_1gzewp9">
<bpmn:incoming>Flow_0whqr3p</bpmn:incoming>
<bpmn:incoming>Flow_0zc01f9</bpmn:incoming>
<bpmn:incoming>Flow_1vyg8ir</bpmn:incoming>
<bpmn:outgoing>Flow_0m9peiz</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="Flow_0m9peiz" sourceRef="Gateway_1gzewp9" targetRef="BusinessRuleTask_Determine_RO" />
<bpmn:scriptTask id="BusinessRuleTask_Determine_RO" name="Reset RO Department">
<bpmn:incoming>Flow_0m9peiz</bpmn:incoming>
<bpmn:outgoing>Flow_1vv63qa</bpmn:outgoing>
<bpmn:script>if PIsPrimaryDepartmentSameAsRO.value == "diffSchool":
ro.schoolName = RO_StudySchool.label
ro.schoolAbbrv = RO_StudySchool.value
if PIsPrimaryDepartmentSameAsRO.value != "yes":
if ro.schoolAbbrv == "MD":
ro.deptName = RO_StudyDeptMedicine.label
ro.deptAbbrv = RO_StudyDeptMedicine.value
elif ro.schoolAbbrv == "AS":
ro.deptName = RO_StudyDeptArtsSciences.label
ro.deptAbbrv = RO_StudyDeptArtsSciences.value
elif ro.schoolAbbrv == "CU":
ro.deptName = RO_StudyDeptEducation.label
ro.deptAbbrv = RO_StudyDeptEducation.value
else:
ro.deptName = ""
ro.deptAbbrv = ""</bpmn:script>
</bpmn:scriptTask>
<bpmn:userTask id="Activity_11muu5l" name="Select RO Medicine Department" camunda:formKey="RO_MedicineDept">
<bpmn:documentation>The Study's Responsible Organization is needed in order to confirm the Department Chair. If it is the same as the Primary Investigator's Primary Department show below, we have all the information needed to determine the Department Chair.
**Primary Investigator's Primary Appointment**
***School:*** {{ pi.E0.schoolName }}
***Department:*** {{ pi.E0.deptName }}</bpmn:documentation>
<bpmn:extensionElements>
<camunda:formData>
<camunda:formField id="RO_StudyDeptMedicine" label="PI&#39;s Study Responsible Organization Department" type="enum">
<camunda:properties>
<camunda:property id="spreadsheet.name" value="DepartmentList-Medicine.xlsx" />
<camunda:property id="spreadsheet.value.column" value="Value" />
<camunda:property id="spreadsheet.label.column" value="Label" />
<camunda:property id="description" value="Type key words to find Medicine Department" />
</camunda:properties>
</camunda:formField>
</camunda:formData>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1azfvtx</bpmn:incoming>
<bpmn:outgoing>Flow_0zc01f9</bpmn:outgoing>
</bpmn:userTask>
<bpmn:scriptTask id="ScriptTask_SetRO_SchoolAndDept" name="Set RO School &#38; Department">
<bpmn:incoming>Flow_1e0yt3v</bpmn:incoming>
<bpmn:incoming>Flow_0shnt6k</bpmn:incoming>
<bpmn:outgoing>Flow_1va8c15</bpmn:outgoing>
<bpmn:script>ro = {}
ro['schoolName'] = PI_E0_schoolName
ro['schoolAbbrv'] = pi.E0.schoolAbbrv
ro['deptName'] = pi.E0.deptName
ro['deptAbbrv'] = pi.E0.deptAbbrv</bpmn:script>
</bpmn:scriptTask>
<bpmn:sequenceFlow id="Flow_1va8c15" sourceRef="ScriptTask_SetRO_SchoolAndDept" targetRef="Gateway_10ngpfu" />
<bpmn:sequenceFlow id="Flow_1mplloa" sourceRef="Activity_EditPI" targetRef="Gateway_0itulqf" />
<bpmn:sequenceFlow id="Flow_0w4d2bz" sourceRef="Gateway_10ngpfu" targetRef="BusinessRuleTask_Determine_RO_Chair" />
<bpmn:userTask id="Activity_1bvro77" name="Select RO A&#38;S Department" camunda:formKey="RO_AandS_Dept">
<bpmn:documentation>The Study's Responsible Organization is needed in order to confirm the Department Chair. If it is the same as the Primary Investigator's Primary Department show below, we have all the information needed to determine the Department Chair.
**Primary Investigator's Primary Appointment**
***School:*** {{ pi.E0.schoolName }}
***Department:*** {{ pi.E0.deptName }}</bpmn:documentation>
<bpmn:extensionElements>
<camunda:formData>
<camunda:formField id="RO_StudyDeptArtsSciences" label="PI&#39;s Study Responsible Organization Department" type="enum">
<camunda:properties>
<camunda:property id="spreadsheet.name" value="DepartmentList-ArtsSciences.xlsx" />
<camunda:property id="spreadsheet.value.column" value="Value" />
<camunda:property id="spreadsheet.label.column" value="Label" />
<camunda:property id="description" value="Type key words to find A&#38;S Department" />
</camunda:properties>
</camunda:formField>
</camunda:formData>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0giqf35</bpmn:incoming>
<bpmn:outgoing>Flow_1vyg8ir</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_1azfvtx" name="Medicine" sourceRef="Gateway_1dfciuq" targetRef="Activity_11muu5l" />
<bpmn:sequenceFlow id="Flow_1vv63qa" sourceRef="BusinessRuleTask_Determine_RO" targetRef="Gateway_0zd7syo" />
<bpmn:sequenceFlow id="Flow_0zc01f9" sourceRef="Activity_11muu5l" targetRef="Gateway_1gzewp9" />
<bpmn:sequenceFlow id="Flow_1vyg8ir" sourceRef="Activity_1bvro77" targetRef="Gateway_1gzewp9" />
<bpmn:scriptTask id="Activity_1yen2d0" name="Reset RO School ">
<bpmn:incoming>Flow_1yz8k2a</bpmn:incoming>
<bpmn:outgoing>Flow_0mdjaid</bpmn:outgoing>
<bpmn:script>ro.schoolName = RO_StudySchool.label
ro.schoolAbbrv = RO_StudySchool.value</bpmn:script>
</bpmn:scriptTask>
<bpmn:sequenceFlow id="Flow_0mdjaid" sourceRef="Activity_1yen2d0" targetRef="Gateway_1dfciuq" />
<bpmn:sequenceFlow id="Flow_0giqf35" name="A&#38;S" sourceRef="Gateway_1dfciuq" targetRef="Activity_1bvro77">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">ro.schoolAbbrv == "AS"</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_0iuzu7j" name="Education" sourceRef="Gateway_1dfciuq" targetRef="UserTask_SelectChair">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">ro.schoolAbbrv == "CU"</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:exclusiveGateway id="Gateway_0zd7syo">
<bpmn:incoming>Flow_1vv63qa</bpmn:incoming>
<bpmn:incoming>Flow_0fw4rck</bpmn:incoming>
<bpmn:outgoing>Flow_0vff9k5</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="Flow_0vff9k5" sourceRef="Gateway_0zd7syo" targetRef="BusinessRuleTask_Determine_RO_Chair" />
<bpmn:exclusiveGateway id="Gateway_13k761k" name="How many Additional Personnel? " default="Flow_0q56tn8">
<bpmn:incoming>Flow_0ofpgml</bpmn:incoming>
<bpmn:incoming>Flow_0jxzqw1</bpmn:incoming>
<bpmn:outgoing>Flow_0q56tn8</bpmn:outgoing>
<bpmn:outgoing>Flow_0kp47dz</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="Flow_0q56tn8" sourceRef="Gateway_13k761k" targetRef="Activity_1sra1vn" />
<bpmn:sequenceFlow id="Flow_10zn0h1" sourceRef="Activity_1sra1vn" targetRef="EndEvent_1qor16n" />
<bpmn:sequenceFlow id="Flow_0kp47dz" sourceRef="Gateway_13k761k" targetRef="EndEvent_1qor16n">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">cnt_aps == 0</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:userTask id="Activity_1sra1vn" name="Update Additional Personnel Info" camunda:formKey="AP_AccessEmails">
<bpmn:documentation>The following Additional Personnel were entered in Protocol Builder:
{%+ for key, value in aps.items() %}{{value.display_name}} ({{key}}){% if loop.index is lt cnt_aps %}, {% endif %}{% endfor %}
To Save the current settings for all Additional Personnel, select Save All.
Otherwise, edit each Additional Personnel as necessary and select the Save button for each.
### Please provide supplemental information for:
#### {{ ap.display_name }}
##### Title: {{ ap.title }}
##### Department: {{ ap.department }}
##### Affiliation: {{ ap.affiliation }}</bpmn:documentation>
<bpmn:extensionElements>
<camunda:formData>
<camunda:formField id="ap.access" label="Should this Additional Personnel have full editing access in the system?" type="boolean" />
<camunda:formField id="FormField_27dit3u" label="Should this Additional Personnel receive automated email notifications?" />
</camunda:formData>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0q56tn8</bpmn:incoming>
<bpmn:outgoing>Flow_10zn0h1</bpmn:outgoing>
<bpmn:multiInstanceLoopCharacteristics camunda:collection="aps" camunda:elementVariable="ap" />
</bpmn:userTask>
<bpmn:exclusiveGateway id="Gateway_CheckUIDs" name="Invalid UIDs?" default="Flow_0tfprc8">
<bpmn:incoming>Flow_147b9li</bpmn:incoming>
<bpmn:outgoing>Flow_0tfprc8</bpmn:outgoing>
<bpmn:outgoing>Flow_0nz62mu</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="Flow_0tfprc8" name="No" sourceRef="Gateway_CheckUIDs" targetRef="ScriptTask_DeterminePI_E0_Department" />
<bpmn:sequenceFlow id="Flow_0nz62mu" name="Yes" sourceRef="Gateway_CheckUIDs" targetRef="Activity_19z6vct">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">dc_invalid_uid or pcs_invalid_uid or acs_invalid_uid or subs_invalid_uid or aps_invalid_uid</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:userTask id="Activity_19z6vct" name="Show Invalid UIDs" camunda:formKey="ShowInvalidUIDs">
<bpmn:documentation>Select No if all displayed invalid Computing IDs do not need system access and/or receive emails. If they do, correct in Protocol Builder first and then select Yes.
{% if dc_invalid_uid %}
Department Chair
{{ dc.error }}
{% endif %}
{% if pcs_invalid_uid %}
Primary Coordinators
{% for k, pc in pcs.items() %}
{% if pc.get('uid', None) == None: %}
{{ pc.error }}
{% endif %}
{% endfor %}
{% endif %}
{% if acs_invalid_uid %}
Additional Coordinators
{% for k, ac in acs.items() %}
{% if ac.get('uid', None) == None: %}
{{ ac.error }}
{% endif %}
{% endfor %}
{% endif %}
{% if subs_invalid_uid %}
Sub-Investigators
{% for k, sub in subs.items() %}
{% if sub.get('uid', None) == None: %}
{{ sub.error }}
{% endif %}
{% endfor %}
{% endif %}
{% if aps_invalid_uid %}
Additional Personnnel
{% for k, ap in aps.items() %}
{% if ap.get('uid', None) == None: %}
{{ ap.error }}
{% endif %}
{% endfor %}
{% endif %}</bpmn:documentation>
<bpmn:extensionElements>
<camunda:formData>
<camunda:formField id="FixInvalidUIDs" label="Do you want to fix?" type="boolean">
<camunda:properties>
<camunda:property id="description" value="Select Yes if you have corrected in Protocol Builder, No if you would like to proceed without correcting." />
</camunda:properties>
</camunda:formField>
</camunda:formData>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0nz62mu</bpmn:incoming>
<bpmn:outgoing>Flow_16bkbuc</bpmn:outgoing>
</bpmn:userTask>
<bpmn:exclusiveGateway id="Gateway_FixInvalidUIDs" name="Fix Invalid UIDs?">
<bpmn:incoming>Flow_16bkbuc</bpmn:incoming>
<bpmn:outgoing>Flow_0tsdclr</bpmn:outgoing>
<bpmn:outgoing>Flow_1mtwuyq</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="Flow_16bkbuc" sourceRef="Activity_19z6vct" targetRef="Gateway_FixInvalidUIDs" />
<bpmn:sequenceFlow id="Flow_0tsdclr" name="No" sourceRef="Gateway_FixInvalidUIDs" targetRef="ScriptTask_DeterminePI_E0_Department">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">not(FixInvalidUIDs)</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:userTask id="Activity_1sffono" name="Update Chair Info" camunda:formKey="RO_Chair_Info">
<bpmn:documentation>***Name &amp; Degree:*** {{ RO_Chair_Name_Degree }}
***School:*** {{ RO_School }}
***Department:*** {{ RO_Department }}
***Title:*** {{ RO_Chair_Title }}
***Email:*** {{ RO_Chair_CID }}
{% if RO_Chair_CID != dc.uid %}
*Does not match the Department Chair specified in Protocol Builder, {{ dc.display_name }}*
{% endif %}</bpmn:documentation>
<bpmn:extensionElements>
<camunda:formData>
<camunda:formField id="RO_ChairAccess" label="Should the Department Chair have full editing access in the system?" type="boolean" defaultValue="false" />
<camunda:formField id="RO_ChairEmails" label="Should the Department Chair receive automated email notifications?" type="boolean" defaultValue="false" />
</camunda:formData>
<camunda:properties>
<camunda:property name="display_name" value="&#34;Responsible Organization&#39;s Chair Info&#34;" />
</camunda:properties>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0vi6thu</bpmn:incoming>
<bpmn:outgoing>Flow_1ayisx2</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_1ayisx2" sourceRef="Activity_1sffono" targetRef="Gateway_0jykh6r" />
<bpmn:scriptTask id="Activity_02ybaqh" name="Update PI Experience">
<bpmn:incoming>Flow_07ur9cc</bpmn:incoming>
<bpmn:outgoing>Flow_0shnt6k</bpmn:outgoing>
<bpmn:script>user_data_set(pi_experience_key, pi.experience)</bpmn:script>
</bpmn:scriptTask>
<bpmn:exclusiveGateway id="Gateway_0itulqf" default="Flow_1e0yt3v">
<bpmn:incoming>Flow_1mplloa</bpmn:incoming>
<bpmn:outgoing>Flow_07ur9cc</bpmn:outgoing>
<bpmn:outgoing>Flow_1e0yt3v</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="Flow_07ur9cc" sourceRef="Gateway_0itulqf" targetRef="Activity_02ybaqh">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">pi.experience != user_data_get(pi_experience_key,"")</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_1e0yt3v" sourceRef="Gateway_0itulqf" targetRef="ScriptTask_SetRO_SchoolAndDept" />
<bpmn:sequenceFlow id="Flow_0shnt6k" sourceRef="Activity_02ybaqh" targetRef="ScriptTask_SetRO_SchoolAndDept" />
<bpmn:userTask id="BusinessRuleTask_Determine_RO_Chair" name="Determine RO Chair">
<bpmn:incoming>Flow_0vff9k5</bpmn:incoming>
<bpmn:incoming>Flow_0w4d2bz</bpmn:incoming>
<bpmn:outgoing>Flow_1oo0ijr</bpmn:outgoing>
</bpmn:userTask>
<bpmn:endEvent id="Event_0zdz4ny">
<bpmn:incoming>Flow_1mtwuyq</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_1mtwuyq" sourceRef="Gateway_FixInvalidUIDs" targetRef="Event_0zdz4ny" />
</bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="NavLeapFrog">
<bpmndi:BPMNEdge id="Flow_0shnt6k_di" bpmnElement="Flow_0shnt6k">
<di:waypoint x="1840" y="550" />
<di:waypoint x="1950" y="550" />
<di:waypoint x="1950" y="330" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1e0yt3v_di" bpmnElement="Flow_1e0yt3v">
<di:waypoint x="1815" y="290" />
<di:waypoint x="1900" y="290" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_07ur9cc_di" bpmnElement="Flow_07ur9cc">
<di:waypoint x="1790" y="315" />
<di:waypoint x="1790" y="510" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1ayisx2_di" bpmnElement="Flow_1ayisx2">
<di:waypoint x="3030" y="290" />
<di:waypoint x="3095" y="290" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0tsdclr_di" bpmnElement="Flow_0tsdclr">
<di:waypoint x="715" y="540" />
<di:waypoint x="860" y="540" />
<di:waypoint x="860" y="330" />
<bpmndi:BPMNLabel>
<dc:Bounds x="781" y="522" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_16bkbuc_di" bpmnElement="Flow_16bkbuc">
<di:waypoint x="690" y="460" />
<di:waypoint x="690" y="515" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0nz62mu_di" bpmnElement="Flow_0nz62mu">
<di:waypoint x="690" y="315" />
<di:waypoint x="690" y="380" />
<bpmndi:BPMNLabel>
<dc:Bounds x="696" y="345" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0tfprc8_di" bpmnElement="Flow_0tfprc8">
<di:waypoint x="715" y="290" />
<di:waypoint x="810" y="290" />
<bpmndi:BPMNLabel>
<dc:Bounds x="756" y="272" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0kp47dz_di" bpmnElement="Flow_0kp47dz">
<di:waypoint x="4180" y="265" />
<di:waypoint x="4180" y="200" />
<di:waypoint x="4530" y="200" />
<di:waypoint x="4530" y="272" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_10zn0h1_di" bpmnElement="Flow_10zn0h1">
<di:waypoint x="4410" y="290" />
<di:waypoint x="4512" y="290" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0q56tn8_di" bpmnElement="Flow_0q56tn8">
<di:waypoint x="4205" y="290" />
<di:waypoint x="4310" y="290" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0vff9k5_di" bpmnElement="Flow_0vff9k5">
<di:waypoint x="2420" y="375" />
<di:waypoint x="2420" y="330" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0iuzu7j_di" bpmnElement="Flow_0iuzu7j">
<di:waypoint x="2395" y="830" />
<di:waypoint x="2280" y="830" />
<di:waypoint x="2280" y="760" />
<bpmndi:BPMNLabel>
<dc:Bounds x="2285" y="783" width="49" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0giqf35_di" bpmnElement="Flow_0giqf35">
<di:waypoint x="2445" y="830" />
<di:waypoint x="2560" y="830" />
<di:waypoint x="2560" y="760" />
<bpmndi:BPMNLabel>
<dc:Bounds x="2569" y="783" width="22" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0mdjaid_di" bpmnElement="Flow_0mdjaid">
<di:waypoint x="2420" y="900" />
<di:waypoint x="2420" y="855" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1vyg8ir_di" bpmnElement="Flow_1vyg8ir">
<di:waypoint x="2560" y="680" />
<di:waypoint x="2560" y="620" />
<di:waypoint x="2445" y="620" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0zc01f9_di" bpmnElement="Flow_0zc01f9">
<di:waypoint x="2420" y="680" />
<di:waypoint x="2420" y="645" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1vv63qa_di" bpmnElement="Flow_1vv63qa">
<di:waypoint x="2420" y="460" />
<di:waypoint x="2420" y="425" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1azfvtx_di" bpmnElement="Flow_1azfvtx">
<di:waypoint x="2420" y="805" />
<di:waypoint x="2420" y="760" />
<bpmndi:BPMNLabel>
<dc:Bounds x="2427" y="783" width="45" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0w4d2bz_di" bpmnElement="Flow_0w4d2bz">
<di:waypoint x="2155" y="290" />
<di:waypoint x="2370" y="290" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1mplloa_di" bpmnElement="Flow_1mplloa">
<di:waypoint x="1630" y="290" />
<di:waypoint x="1765" y="290" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1va8c15_di" bpmnElement="Flow_1va8c15">
<di:waypoint x="2000" y="290" />
<di:waypoint x="2105" y="290" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0m9peiz_di" bpmnElement="Flow_0m9peiz">
<di:waypoint x="2420" y="595" />
<di:waypoint x="2420" y="540" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0fw4rck_di" bpmnElement="Flow_0fw4rck">
<di:waypoint x="2445" y="830" />
<di:waypoint x="2650" y="830" />
<di:waypoint x="2650" y="400" />
<di:waypoint x="2445" y="400" />
<bpmndi:BPMNLabel>
<dc:Bounds x="2658" y="603" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0whqr3p_di" bpmnElement="Flow_0whqr3p">
<di:waypoint x="2280" y="680" />
<di:waypoint x="2280" y="620" />
<di:waypoint x="2395" y="620" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1yz8k2a_di" bpmnElement="Flow_1yz8k2a">
<di:waypoint x="2420" y="1050" />
<di:waypoint x="2420" y="980" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1fj9iz0_di" bpmnElement="Flow_1fj9iz0">
<di:waypoint x="2180" y="1090" />
<di:waypoint x="2370" y="1090" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0ycdxbl_di" bpmnElement="Flow_0ycdxbl">
<di:waypoint x="2130" y="855" />
<di:waypoint x="2130" y="1050" />
<bpmndi:BPMNLabel>
<dc:Bounds x="2102" y="933" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_13la8l3_di" bpmnElement="Flow_13la8l3">
<di:waypoint x="2155" y="830" />
<di:waypoint x="2395" y="830" />
<bpmndi:BPMNLabel>
<dc:Bounds x="2191" y="813" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1yd7kbi_di" bpmnElement="Flow_1yd7kbi">
<di:waypoint x="2130" y="315" />
<di:waypoint x="2130" y="805" />
<bpmndi:BPMNLabel>
<dc:Bounds x="2102" y="691" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0dt3pjw_di" bpmnElement="Flow_0dt3pjw">
<di:waypoint x="3480" y="265" />
<di:waypoint x="3480" y="180" />
<di:waypoint x="3860" y="180" />
<di:waypoint x="3860" y="265" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3657" y="162" width="27" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_12ss6u8_di" bpmnElement="Flow_12ss6u8">
<di:waypoint x="3720" y="290" />
<di:waypoint x="3835" y="290" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1gtl2o3_di" bpmnElement="Flow_1gtl2o3">
<di:waypoint x="3505" y="290" />
<di:waypoint x="3620" y="290" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3539" y="272" width="48" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_070j5fg_di" bpmnElement="Flow_070j5fg">
<di:waypoint x="2650" y="290" />
<di:waypoint x="2745" y="290" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1kg5jot_di" bpmnElement="Flow_1kg5jot">
<di:waypoint x="1400" y="290" />
<di:waypoint x="1530" y="290" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_16qr5jf_di" bpmnElement="Flow_16qr5jf">
<di:waypoint x="740" y="150" />
<di:waypoint x="822" y="150" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0jxzqw1_di" bpmnElement="Flow_0jxzqw1">
<di:waypoint x="3860" y="315" />
<di:waypoint x="3860" y="390" />
<di:waypoint x="4180" y="390" />
<di:waypoint x="4180" y="315" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4007" y="372" width="27" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0ofpgml_di" bpmnElement="Flow_0ofpgml">
<di:waypoint x="4090" y="290" />
<di:waypoint x="4155" y="290" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_05rqrlf_di" bpmnElement="Flow_05rqrlf">
<di:waypoint x="3885" y="290" />
<di:waypoint x="3990" y="290" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3914" y="272" width="48" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0kpe12r_di" bpmnElement="Flow_0kpe12r">
<di:waypoint x="2820" y="120" />
<di:waypoint x="3120" y="120" />
<di:waypoint x="3120" y="260" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_00yhlrq_di" bpmnElement="Flow_00yhlrq">
<di:waypoint x="2770" y="265" />
<di:waypoint x="2770" y="160" />
<bpmndi:BPMNLabel>
<dc:Bounds x="2781" y="178" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0vi6thu_di" bpmnElement="Flow_0vi6thu">
<di:waypoint x="2795" y="290" />
<di:waypoint x="2930" y="290" />
<bpmndi:BPMNLabel>
<dc:Bounds x="2840" y="272" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1oo0ijr_di" bpmnElement="Flow_1oo0ijr">
<di:waypoint x="2470" y="290" />
<di:waypoint x="2550" y="290" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1grahhv_di" bpmnElement="Flow_1grahhv">
<di:waypoint x="910" y="290" />
<di:waypoint x="1300" y="290" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1oqem42_di" bpmnElement="Flow_1oqem42">
<di:waypoint x="3120" y="315" />
<di:waypoint x="3120" y="400" />
<di:waypoint x="3480" y="400" />
<di:waypoint x="3480" y="315" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3296" y="383" width="27" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1n0k4pd_di" bpmnElement="Flow_1n0k4pd">
<di:waypoint x="3360" y="290" />
<di:waypoint x="3455" y="290" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0xifvai_di" bpmnElement="Flow_0xifvai">
<di:waypoint x="3145" y="290" />
<di:waypoint x="3260" y="290" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3173" y="273" width="48" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_00prawo_di" bpmnElement="Flow_00prawo">
<di:waypoint x="510" y="265" />
<di:waypoint x="510" y="150" />
<di:waypoint x="640" y="150" />
<bpmndi:BPMNLabel>
<dc:Bounds x="483" y="204" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_147b9li_di" bpmnElement="Flow_147b9li">
<di:waypoint x="535" y="290" />
<di:waypoint x="665" y="290" />
<bpmndi:BPMNLabel>
<dc:Bounds x="583" y="273" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1dcsioh_di" bpmnElement="Flow_1dcsioh">
<di:waypoint x="410" y="290" />
<di:waypoint x="485" y="290" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0kcrx5l_di" bpmnElement="Flow_0kcrx5l">
<di:waypoint x="188" y="290" />
<di:waypoint x="310" y="290" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1mtwuyq_di" bpmnElement="Flow_1mtwuyq">
<di:waypoint x="690" y="565" />
<di:waypoint x="690" y="612" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="152" y="272" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ScriptTask_0h49cmf_di" bpmnElement="ScriptTask_LoadPersonnel">
<dc:Bounds x="310" y="250" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="EndEvent_1qor16n_di" bpmnElement="EndEvent_1qor16n">
<dc:Bounds x="4512" y="272" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4520" y="318" width="20" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0d622qi_di" bpmnElement="Activity_EditPI">
<dc:Bounds x="1530" y="250" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0qzf1r3_di" bpmnElement="Gateway_CheckForPI" isMarkerVisible="true">
<dc:Bounds x="485" y="265" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="478" y="325" width="63" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0neg931_di" bpmnElement="Activity_1qwzwyi">
<dc:Bounds x="640" y="110" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0jykh6r_di" bpmnElement="Gateway_0jykh6r" isMarkerVisible="true">
<dc:Bounds x="3095" y="265" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3125" y="309" width="70" height="40" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1nz85vv_di" bpmnElement="TaskPMI_UpdateCoordinatorInfo">
<dc:Bounds x="3260" y="250" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1z05bvn_di" bpmnElement="ScriptTask_DeterminePI_E0_Department">
<dc:Bounds x="810" y="250" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="UserTask_1a7hck9_di" bpmnElement="UserTask_SelectChair">
<dc:Bounds x="2230" y="680" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1xio5hy_di" bpmnElement="Gateway_PI_is_DeptChair" isMarkerVisible="true">
<dc:Bounds x="2745" y="265" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="2728" y="322" width="84" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0i869dj_di" bpmnElement="Activity_ShowPI_is_DeptChair">
<dc:Bounds x="2720" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1oxt6h1_di" bpmnElement="Gateway_1oxt6h1" isMarkerVisible="true">
<dc:Bounds x="3835" y="265" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3880" y="315" width="79" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0oyqfs3_di" bpmnElement="Activity_0yd4wuz">
<dc:Bounds x="3990" y="250" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0npjf2p_di" bpmnElement="Event_0npjf2p">
<dc:Bounds x="822" y="132" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_02led02_di" bpmnElement="ScriptTask_Update_PIData">
<dc:Bounds x="1300" y="250" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1mt9o4o_di" bpmnElement="ScriptTask_UpdateRO_Data">
<dc:Bounds x="2550" y="250" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0zrcknh_di" bpmnElement="Gateway_0zrcknh" isMarkerVisible="true">
<dc:Bounds x="3455" y="265" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3495" y="309" width="70" height="40" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1gqvpu9_di" bpmnElement="Activity_1yjg742">
<dc:Bounds x="3620" y="250" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_10ngpfu_di" bpmnElement="Gateway_10ngpfu" isMarkerVisible="true">
<dc:Bounds x="2105" y="265" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="2086" y="170" width="88" height="80" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_141zszd_di" bpmnElement="Gateway_141zszd" isMarkerVisible="true">
<dc:Bounds x="2105" y="805" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="2024" y="823" width="72" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0vjz7wg_di" bpmnElement="Activity_1h5mjwh">
<dc:Bounds x="2080" y="1050" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0evmxd3_di" bpmnElement="Activity_141w33n">
<dc:Bounds x="2370" y="1050" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1dfciuq_di" bpmnElement="Gateway_1dfciuq" isMarkerVisible="true">
<dc:Bounds x="2395" y="805" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="2435" y="846" width="70" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1gzewp9_di" bpmnElement="Gateway_1gzewp9" isMarkerVisible="true">
<dc:Bounds x="2395" y="595" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0zjabzm_di" bpmnElement="BusinessRuleTask_Determine_RO">
<dc:Bounds x="2370" y="460" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_11muu5l_di" bpmnElement="Activity_11muu5l">
<dc:Bounds x="2370" y="680" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_18f2rpz_di" bpmnElement="ScriptTask_SetRO_SchoolAndDept">
<dc:Bounds x="1900" y="250" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1bvro77_di" bpmnElement="Activity_1bvro77">
<dc:Bounds x="2510" y="680" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1yen2d0_di" bpmnElement="Activity_1yen2d0">
<dc:Bounds x="2370" y="900" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0zd7syo_di" bpmnElement="Gateway_0zd7syo" isMarkerVisible="true">
<dc:Bounds x="2395" y="375" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_13k761k_di" bpmnElement="Gateway_13k761k" isMarkerVisible="true">
<dc:Bounds x="4155" y="265" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4202" y="309" width="56" height="40" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1m6r78y_di" bpmnElement="Activity_1sra1vn">
<dc:Bounds x="4310" y="250" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1gq2m4q_di" bpmnElement="Gateway_CheckUIDs" isMarkerVisible="true">
<dc:Bounds x="665" y="265" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="657" y="241" width="66" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1l5u9mj_di" bpmnElement="Activity_19z6vct">
<dc:Bounds x="640" y="380" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_01e55pl_di" bpmnElement="Gateway_FixInvalidUIDs" isMarkerVisible="true">
<dc:Bounds x="665" y="515" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="570" y="530" width="84" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1sffono_di" bpmnElement="Activity_1sffono">
<dc:Bounds x="2930" y="250" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0ou9hjq_di" bpmnElement="Activity_02ybaqh">
<dc:Bounds x="1740" y="510" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0itulqf_di" bpmnElement="Gateway_0itulqf" isMarkerVisible="true">
<dc:Bounds x="1765" y="265" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_05x86t9_di" bpmnElement="BusinessRuleTask_Determine_RO_Chair">
<dc:Bounds x="2370" y="250" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0zdz4ny_di" bpmnElement="Event_0zdz4ny">
<dc:Bounds x="672" y="612" width="36" height="36" />
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>