File size: 3,132 Bytes
a725af0
 
 
 
a63231d
 
 
 
 
7b05d65
 
a725af0
a63231d
a725af0
 
a63231d
 
 
 
 
 
a725af0
 
 
a63231d
 
 
a725af0
 
 
 
a63231d
 
 
 
 
a725af0
 
 
a63231d
a725af0
 
a63231d
 
 
a725af0
 
 
a63231d
a725af0
 
 
 
 
a63231d
 
 
a725af0
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#### PROCESS FUNCTIONS 

def process_circumstance(data):
    fields_to_check = ["option_dropdown", "open_field", "extra"]
    reformatted ={}
    if ("circumstance_radio" in data.keys()) and ("circumstance" in data.keys()) and ("circumstance_type" in data.keys()) and (data["circumstance_radio"] == "Yes"):
        reformatted["circumstance_radio"] = data["circumstance_radio"]
        reformatted["circumstance"] = data["circumstance"]
        reformatted["circumstance_type"] = {}
        if "type" in data["circumstance_type"]: 
            reformatted["circumstance_type"]["type"] = data["circumstance_type"]["type"]
        for field in fields_to_check:
            if not data["circumstance_type"][field+"_label"] == "NA":
                val = data[f"circumstance_{field}"]
                key = data["circumstance_type"][field+"_label"]
                reformatted["circumstance_type"][key] = val
    else: 
        reformatted["circumstance_radio"] = None
        reformatted["circumstance"] = None
        reformatted["circumstance_type"] = {}
    return reformatted

def process_behaviors(data):
    behaviors =[]
    reformatted = {}
    if ("behaviors_radio" in data.keys()) and ("behaviors_type" in data.keys()) and (data["behaviors_radio"] == "Yes"):
        reformatted["behaviors_radio"] = data["behaviors_radio"]
        for type in data["behaviors_type"]: 
            new_behavior = {}
            new_behavior["type"] = type
            behaviors.append(new_behavior)
        reformatted["behaviors_type"] = behaviors
    else: 
        reformatted["behaviors_radio"] = None
        reformatted["behaviors_type"] = []
    return reformatted 

def process_physical(data):
    body_parts= ["beak", "body", "legs", "feathers/wings/tail", "head incl. eyes"]
    body_parts_search = ["beak", "body", "legs", "feathers", "head"]
    anomalies=[]
    reformatted = {}
    if ("physical_radio" in data.keys()) and (data["physical_radio"] == "Yes") and any("type_" in key for key in data.keys()) and any("anomaly_" in key for key in data.keys()):
        reformatted["physical_radio"] = data["physical_radio"]
        for b, body_part in enumerate(body_parts_search):
            anomaly = {}
            for key, val in data.items(): 
                if "type_"+ body_part in key:
                    anomaly["type"] = body_parts[b]
                elif "anomaly_"+ body_part in key:
                    anomaly["anomaly_type"] = val
            if anomaly: 
                anomalies.append(anomaly)
        reformatted["physical_anomalies_type"] = anomalies
    else: 
        reformatted["physical_radio"] = None
        reformatted["physical_anomalies_type"] = []
    return reformatted

def process_followup(data):
    followup_events = []
    for key, val in data.items(): 
        followup_event={}
        type = key.split("followup")[-1]
        option = type.split(" ")[-1]
        followup_event["type"] = type.strip()
        followup_event[option.strip()] = val 
        followup_events.append(followup_event)
    reformatted ={}
    reformatted["follow_up_events"] = followup_events
    return reformatted