tricc-oo 1.6.24__py3-none-any.whl → 1.6.26__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tricc_oo/models/tricc.py +3 -1
- tricc_oo/serializers/xls_form.py +2 -3
- tricc_oo/visitors/tricc.py +21 -41
- {tricc_oo-1.6.24.dist-info → tricc_oo-1.6.26.dist-info}/METADATA +1 -1
- {tricc_oo-1.6.24.dist-info → tricc_oo-1.6.26.dist-info}/RECORD +9 -9
- /tests/{data/test_cql.py → test_cql.py} +0 -0
- {tricc_oo-1.6.24.dist-info → tricc_oo-1.6.26.dist-info}/WHEEL +0 -0
- {tricc_oo-1.6.24.dist-info → tricc_oo-1.6.26.dist-info}/licenses/LICENSE +0 -0
- {tricc_oo-1.6.24.dist-info → tricc_oo-1.6.26.dist-info}/top_level.txt +0 -0
tricc_oo/models/tricc.py
CHANGED
|
@@ -99,6 +99,7 @@ class TriccNodeActivity(TriccNodeBaseModel):
|
|
|
99
99
|
# - case definition
|
|
100
100
|
calculates: List[TriccNodeCalculateBase] = []
|
|
101
101
|
applicability: Optional[Union[Expression, TriccOperation]] = None
|
|
102
|
+
is_sequence_defined: bool = False
|
|
102
103
|
|
|
103
104
|
# redefine
|
|
104
105
|
def make_instance(self, instance_nb=None, **kwargs):
|
|
@@ -294,7 +295,8 @@ class TriccNodeDisplayModel(TriccNodeBaseModel):
|
|
|
294
295
|
default: Optional[Union[Expression, TriccOperation, TriccReference, TriccStatic]] = None
|
|
295
296
|
trigger: Optional[Union[Expression, TriccOperation, TriccReference]] = None
|
|
296
297
|
priority: Union[float, int, None] = None
|
|
297
|
-
|
|
298
|
+
concept_type: str = None
|
|
299
|
+
datatype: str = None
|
|
298
300
|
# to use the enum value of the TriccNodeType
|
|
299
301
|
|
|
300
302
|
|
tricc_oo/serializers/xls_form.py
CHANGED
|
@@ -357,8 +357,7 @@ def generate_choice_filter(strategy, node):
|
|
|
357
357
|
choice_filter = TriccOperation(TriccOperator.OR, [basic])
|
|
358
358
|
for k, op in relevances.items():
|
|
359
359
|
choice_filter.append(
|
|
360
|
-
|
|
361
|
-
TriccOperator.AND,
|
|
360
|
+
and_join(
|
|
362
361
|
[
|
|
363
362
|
TriccOperation(
|
|
364
363
|
TriccOperator.EQUAL,
|
|
@@ -368,7 +367,7 @@ def generate_choice_filter(strategy, node):
|
|
|
368
367
|
],
|
|
369
368
|
),
|
|
370
369
|
op,
|
|
371
|
-
]
|
|
370
|
+
]
|
|
372
371
|
)
|
|
373
372
|
)
|
|
374
373
|
return strategy.get_tricc_operation_expression(choice_filter)
|
tricc_oo/visitors/tricc.py
CHANGED
|
@@ -176,7 +176,7 @@ def get_version_inheritance(node, all_prev_versions, processed_nodes):
|
|
|
176
176
|
expression = node.expression or node.expression_reference or getattr(node, "relevance", None)
|
|
177
177
|
# Merge with ALL previous versions, not just the last one
|
|
178
178
|
if all_prev_versions:
|
|
179
|
-
expression =
|
|
179
|
+
expression = merge_expressions(expression, *all_prev_versions)
|
|
180
180
|
if node.expression:
|
|
181
181
|
node.expression = expression
|
|
182
182
|
elif node.expression_reference:
|
|
@@ -216,39 +216,15 @@ def get_version_inheritance(node, all_prev_versions, processed_nodes):
|
|
|
216
216
|
node.expression = TriccOperation(TriccOperator.COALESCE, coalesce_operands)
|
|
217
217
|
|
|
218
218
|
|
|
219
|
-
def
|
|
219
|
+
def merge_expressions(expression, last_version, *argv):
|
|
220
220
|
datatype = expression.get_datatype()
|
|
221
221
|
if datatype == "boolean":
|
|
222
|
-
expression = or_join([TriccOperation(TriccOperator.ISTRUE, [last_version]), expression])
|
|
222
|
+
expression = or_join([TriccOperation(TriccOperator.ISTRUE, [last_version, *argv]), expression])
|
|
223
223
|
|
|
224
224
|
elif datatype == "number":
|
|
225
|
-
expression = TriccOperation(TriccOperator.PLUS, [last_version, expression])
|
|
225
|
+
expression = TriccOperation(TriccOperator.PLUS, [last_version, *argv, expression])
|
|
226
226
|
else:
|
|
227
|
-
expression = TriccOperation(TriccOperator.COALESCE, [last_version,
|
|
228
|
-
return expression
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
def merge_all_expressions(expression, all_versions):
|
|
232
|
-
"""
|
|
233
|
-
Merge an expression with ALL previous versions, not just the last one.
|
|
234
|
-
This ensures inheritance works even when intermediate versions weren't evaluated
|
|
235
|
-
due to activity relevance conditions.
|
|
236
|
-
"""
|
|
237
|
-
if not all_versions:
|
|
238
|
-
return expression
|
|
239
|
-
|
|
240
|
-
datatype = expression.get_datatype() if expression else "unknown"
|
|
241
|
-
|
|
242
|
-
if datatype == "boolean":
|
|
243
|
-
expression = or_join([expression, *all_versions])
|
|
244
|
-
|
|
245
|
-
else:
|
|
246
|
-
# COALESCE through all previous versions, then the current expression
|
|
247
|
-
coalesce_operands = list(all_versions)
|
|
248
|
-
if expression:
|
|
249
|
-
coalesce_operands.append(expression)
|
|
250
|
-
expression = TriccOperation(TriccOperator.COALESCE, coalesce_operands)
|
|
251
|
-
|
|
227
|
+
expression = TriccOperation(TriccOperator.COALESCE, [expression, last_version, *argv])
|
|
252
228
|
return expression
|
|
253
229
|
|
|
254
230
|
|
|
@@ -582,7 +558,7 @@ def generate_calculates(node, calculates, used_calculates, processed_nodes, proc
|
|
|
582
558
|
node.activity.calculates.append(calc_node)
|
|
583
559
|
last_version = set_last_version_false(calc_node, processed_nodes)
|
|
584
560
|
if last_version:
|
|
585
|
-
calc_node.expression =
|
|
561
|
+
calc_node.expression = merge_expressions(calc_node.expression, last_version)
|
|
586
562
|
processed_nodes.add(calc_node)
|
|
587
563
|
logger.debug(
|
|
588
564
|
"generate_save_calculate:{}:{} as {}".format(
|
|
@@ -615,7 +591,7 @@ def generate_calculates(node, calculates, used_calculates, processed_nodes, proc
|
|
|
615
591
|
node.activity.calculates.append(calc_node)
|
|
616
592
|
last_version = set_last_version_false(calc_node, processed_nodes)
|
|
617
593
|
if last_version:
|
|
618
|
-
calc_node.expression =
|
|
594
|
+
calc_node.expression = merge_expressions(calc_node.expression, last_version)
|
|
619
595
|
processed_nodes.add(calc_node)
|
|
620
596
|
list_calc.append(calc_node)
|
|
621
597
|
node.activity.nodes[calc_node.id] = calc_node
|
|
@@ -2265,8 +2241,7 @@ def get_prev_node_expression(node, processed_nodes, get_overall_exp=False, exclu
|
|
|
2265
2241
|
if act_expression_inputs:
|
|
2266
2242
|
act_sub = or_join(act_expression_inputs)
|
|
2267
2243
|
# if there is condition fallback on the calling activity condition
|
|
2268
|
-
|
|
2269
|
-
act_sub = get_node_expression(
|
|
2244
|
+
act_relevance = get_node_expression(
|
|
2270
2245
|
prev_node.activity,
|
|
2271
2246
|
processed_nodes=processed_nodes,
|
|
2272
2247
|
get_overall_exp=get_overall_exp,
|
|
@@ -2274,7 +2249,9 @@ def get_prev_node_expression(node, processed_nodes, get_overall_exp=False, exclu
|
|
|
2274
2249
|
negate=False,
|
|
2275
2250
|
process=process,
|
|
2276
2251
|
)
|
|
2277
|
-
|
|
2252
|
+
if act_sub == TriccStatic(True):
|
|
2253
|
+
act_sub = act_relevance
|
|
2254
|
+
elif act_relevance != TriccStatic(True) and none_sequence_defined_prev_node:
|
|
2278
2255
|
# For nodes with is_sequence_defined = False, AND the activity relevance with the prev expression
|
|
2279
2256
|
# activity_relevance = get_node_expression(
|
|
2280
2257
|
# prev_node.activity,
|
|
@@ -2284,7 +2261,13 @@ def get_prev_node_expression(node, processed_nodes, get_overall_exp=False, exclu
|
|
|
2284
2261
|
# negate=False,
|
|
2285
2262
|
# process=process,
|
|
2286
2263
|
# )
|
|
2287
|
-
act_sub = and_join([
|
|
2264
|
+
act_sub = and_join([
|
|
2265
|
+
TriccOperation(
|
|
2266
|
+
TriccOperator.ISTRUE,
|
|
2267
|
+
[prev_node.activity.root]
|
|
2268
|
+
),
|
|
2269
|
+
act_sub
|
|
2270
|
+
])
|
|
2288
2271
|
add_sub_expression(expression_inputs, act_sub)
|
|
2289
2272
|
# avoid void is there is not conditions to avoid looping too much itme
|
|
2290
2273
|
# expression_inputs = clean_or_list(
|
|
@@ -2661,13 +2644,10 @@ def get_selected_option_expression_multiple(option_node, negate):
|
|
|
2661
2644
|
selected = TriccOperation(TriccOperator.SELECTED, [option_node.select, TriccStatic(option_node)])
|
|
2662
2645
|
|
|
2663
2646
|
if negate:
|
|
2664
|
-
return
|
|
2665
|
-
operator=TriccOperator.AND,
|
|
2666
|
-
resource=[
|
|
2647
|
+
return and_join([
|
|
2667
2648
|
TriccOperation(operator=TriccOperator.NOT, resource=[selected]),
|
|
2668
2649
|
TriccOperation(operator=TriccOperator.ISNOTNULL, resource=[option_node.select]),
|
|
2669
|
-
]
|
|
2670
|
-
)
|
|
2650
|
+
])
|
|
2671
2651
|
|
|
2672
2652
|
else:
|
|
2673
2653
|
return selected
|
|
@@ -2778,7 +2758,7 @@ def generate_base(node, processed_nodes, **kwargs):
|
|
|
2778
2758
|
)
|
|
2779
2759
|
constraints_max = "The maximum value is {0}.".format(node.max)
|
|
2780
2760
|
if len(constraints) > 1:
|
|
2781
|
-
node.constraint =
|
|
2761
|
+
node.constraint = and_join(constraints)
|
|
2782
2762
|
node.constraint_message = (constraints_min + " " + constraints_max).strip()
|
|
2783
2763
|
elif len(constraints) == 1:
|
|
2784
2764
|
node.constraint = constraints[0]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
tests/build.py,sha256=Qbxvjkj_Wk2nQ-WjaMGiE1FIe3SRmJMRIgeoMoxqlfQ,6748
|
|
2
|
+
tests/test_cql.py,sha256=IRfjrmcxMn60XlAQLUur-7OUELs1NioqxRXWcOf8QcQ,5678
|
|
2
3
|
tests/to_ocl.py,sha256=4e-i65K3UM6wHgdVcrZcM9AyL1bahIsXJiZTXhhHgQk,2048
|
|
3
|
-
tests/data/test_cql.py,sha256=IRfjrmcxMn60XlAQLUur-7OUELs1NioqxRXWcOf8QcQ,5678
|
|
4
4
|
tricc_oo/__init__.py,sha256=oWCE1ubmC_6iqaWOMgTei4eXVQgV202Ia-tXS1NnW_4,139
|
|
5
5
|
tricc_oo/converters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
6
|
tricc_oo/converters/codesystem_to_ocl.py,sha256=V_oZNVUVaYHgzJtDiBMSrvIJnBWmDNFBDTTHEkOfpXk,6151
|
|
@@ -20,12 +20,12 @@ tricc_oo/models/calculate.py,sha256=uNP0IDUqPQcJq9Co05H8eX5wbR_DikSxuOHxfVE5Dxg,
|
|
|
20
20
|
tricc_oo/models/lang.py,sha256=ZMRwdoPWe01wEDhOM0uRk-6rt3BkoAAZM8mZ61--s3A,2265
|
|
21
21
|
tricc_oo/models/ocl.py,sha256=MybSeB6fgCOUVJ4aektff0vrrTZsyfwZ2Gt_pPBu_FY,8728
|
|
22
22
|
tricc_oo/models/ordered_set.py,sha256=BpXLW8plRAy4te25PIUPvVXPnLPcypvKg3iNPhtPulA,3833
|
|
23
|
-
tricc_oo/models/tricc.py,sha256=
|
|
23
|
+
tricc_oo/models/tricc.py,sha256=dUh0H9hyzwH4VDFDkKIsEjyV794FYTbpJp8F1JugiOU,17640
|
|
24
24
|
tricc_oo/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
25
|
tricc_oo/parsers/xml.py,sha256=uzkb1y18MHfqVFmZqVh0sKT4cx6u0-NcAT_lV_gHBt8,4208
|
|
26
26
|
tricc_oo/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
27
|
tricc_oo/serializers/planuml.py,sha256=t57587-6L3aDncpHh58lS77Zft8yxDE9DPtXx2BeUSU,132
|
|
28
|
-
tricc_oo/serializers/xls_form.py,sha256=
|
|
28
|
+
tricc_oo/serializers/xls_form.py,sha256=SZPvZK6y4l_2v3HuGWITHmKd5rTClhHWvbUU3RendFg,24249
|
|
29
29
|
tricc_oo/strategies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
30
|
tricc_oo/strategies/input/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
31
31
|
tricc_oo/strategies/input/base_input_strategy.py,sha256=BEODXS74na1QRRcJVQ4cxiD8F7uRqaLyhE3QzKpGVvk,3891
|
|
@@ -41,11 +41,11 @@ tricc_oo/strategies/output/xlsform_cdss.py,sha256=X00Lt5MzV8TX14dR4dFI1MqllI5S1e
|
|
|
41
41
|
tricc_oo/strategies/output/xlsform_cht.py,sha256=66sTRqVL9ZUL8NpX2f0xCRQ-siUKcKphosR9y7wsbuM,28326
|
|
42
42
|
tricc_oo/strategies/output/xlsform_cht_hf.py,sha256=xm6SKirV3nMZvM2w54_zJcXAeAgAkq-EEqGEjnOWv6c,988
|
|
43
43
|
tricc_oo/visitors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
44
|
-
tricc_oo/visitors/tricc.py,sha256=
|
|
44
|
+
tricc_oo/visitors/tricc.py,sha256=wVCEvvwQ8SQE43MkEqz3qOKkUn9wG6mueUkQn3Q45LM,113490
|
|
45
45
|
tricc_oo/visitors/utils.py,sha256=j83aAq5s5atXi3OC0jc_uJd54a8XrHHmizeeEbWZQJg,421
|
|
46
46
|
tricc_oo/visitors/xform_pd.py,sha256=ryAnI3V9x3eTmJ2LNsUZfvl0_yfCqo6oBgeSu-WPqaE,9613
|
|
47
|
-
tricc_oo-1.6.
|
|
48
|
-
tricc_oo-1.6.
|
|
49
|
-
tricc_oo-1.6.
|
|
50
|
-
tricc_oo-1.6.
|
|
51
|
-
tricc_oo-1.6.
|
|
47
|
+
tricc_oo-1.6.26.dist-info/licenses/LICENSE,sha256=Pz2eACSxkhsGfW9_iN60pgy-enjnbGTj8df8O3ebnQQ,16726
|
|
48
|
+
tricc_oo-1.6.26.dist-info/METADATA,sha256=n-4ymif12lOBLJX6sELWl498w2LfVJTI48_f11f-cak,8600
|
|
49
|
+
tricc_oo-1.6.26.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
50
|
+
tricc_oo-1.6.26.dist-info/top_level.txt,sha256=NvbfMNAiy9m4b1unBsqpeOQWh4IgA1Xa33BtKA4abxk,15
|
|
51
|
+
tricc_oo-1.6.26.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|