|
11 | 11 | )
|
12 | 12 |
|
13 | 13 |
|
14 |
| -def collect_multiplexed_samples_prop(request, multiplexed_samples, property_name): |
| 14 | +def collect_multiplexed_samples_prop(request, multiplexed_samples, property_name, skip_calculated=True): |
15 | 15 | property_set = set()
|
16 | 16 | for sample in multiplexed_samples:
|
17 |
| - sample_props = request.embed(sample, '@@object?skip_calculated=true') |
| 17 | + # If to get a specific calculated property |
| 18 | + if skip_calculated is False: |
| 19 | + sample_props = request.embed(sample, f'@@object_with_select_calculated_properties?field={property_name}') |
| 20 | + # If to get non-calculated properties |
| 21 | + else: |
| 22 | + sample_props = request.embed(sample, '@@object?skip_calculated=true') |
18 | 23 | property_contents = sample_props.get(property_name, None)
|
19 | 24 | if property_contents:
|
20 | 25 | if type(property_contents) == list:
|
@@ -1059,5 +1064,9 @@ def institutional_certificates(self, request, multiplexed_samples):
|
1059 | 1064 | 'notSubmittable': True,
|
1060 | 1065 | }
|
1061 | 1066 | )
|
1062 |
| - def classifications(self): |
1063 |
| - return [self.item_type.replace('_', ' ')] |
| 1067 | + def classifications(self, request, multiplexed_samples): |
| 1068 | + # Get unique properties of individual samples' item types |
| 1069 | + sample_classfications = collect_multiplexed_samples_prop( |
| 1070 | + request, multiplexed_samples, 'classifications', skip_calculated=False) |
| 1071 | + self_classification = [self.item_type.replace('_', ' ')] |
| 1072 | + return sample_classfications + self_classification |
0 commit comments