tricc-oo 1.6.23__py3-none-any.whl → 1.6.24__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/serializers/xls_form.py +3 -2
- tricc_oo/strategies/output/xls_form.py +11 -1
- tricc_oo/strategies/output/xlsform_cht.py +0 -7
- tricc_oo/visitors/tricc.py +10 -10
- {tricc_oo-1.6.23.dist-info → tricc_oo-1.6.24.dist-info}/METADATA +1 -1
- {tricc_oo-1.6.23.dist-info → tricc_oo-1.6.24.dist-info}/RECORD +10 -10
- /tests/{test_cql.py → data/test_cql.py} +0 -0
- {tricc_oo-1.6.23.dist-info → tricc_oo-1.6.24.dist-info}/WHEEL +0 -0
- {tricc_oo-1.6.23.dist-info → tricc_oo-1.6.24.dist-info}/licenses/LICENSE +0 -0
- {tricc_oo-1.6.23.dist-info → tricc_oo-1.6.24.dist-info}/top_level.txt +0 -0
tricc_oo/serializers/xls_form.py
CHANGED
|
@@ -43,6 +43,7 @@ TRICC_CALC_EXPRESSION = "${{{0}}}>0"
|
|
|
43
43
|
|
|
44
44
|
def get_export_group_name(in_node): return f"gcalc_{get_export_name(in_node)}"
|
|
45
45
|
|
|
46
|
+
def get_export_group_required(in_node): return in_node.relevance and in_node.relevance != TriccStatic(True)
|
|
46
47
|
|
|
47
48
|
def start_group(
|
|
48
49
|
strategy,
|
|
@@ -65,9 +66,9 @@ def start_group(
|
|
|
65
66
|
groups[name] = 0
|
|
66
67
|
relevance = relevance and cur_group.relevance is not None and cur_group.relevance != ""
|
|
67
68
|
past_instances = len(getattr(cur_group.base_instance, "instances", []))
|
|
68
|
-
group_calc_required =
|
|
69
|
+
group_calc_required = get_export_group_required(cur_group)
|
|
69
70
|
calc = None
|
|
70
|
-
if group_calc_required and
|
|
71
|
+
if group_calc_required and len(df_calculate[df_calculate["name"] == get_export_group_name(cur_group)]) == 0:
|
|
71
72
|
|
|
72
73
|
calc = TriccNodeCalculate(
|
|
73
74
|
id=generate_id(get_export_group_name(name)),
|
|
@@ -19,7 +19,7 @@ from tricc_oo.models.ordered_set import OrderedSet
|
|
|
19
19
|
from tricc_oo.models.calculate import (
|
|
20
20
|
TriccNodeEnd,
|
|
21
21
|
TriccNodeDisplayCalculateBase,
|
|
22
|
-
|
|
22
|
+
TriccNodeActivityStart,
|
|
23
23
|
)
|
|
24
24
|
from tricc_oo.models.tricc import (
|
|
25
25
|
TriccNodeCalculateBase,
|
|
@@ -28,6 +28,7 @@ from tricc_oo.models.tricc import (
|
|
|
28
28
|
TriccNodeSelect,
|
|
29
29
|
TriccNodeInputModel,
|
|
30
30
|
TriccNodeDisplayModel,
|
|
31
|
+
TriccNodeMainStart,
|
|
31
32
|
TRICC_FALSE_VALUE,
|
|
32
33
|
TRICC_TRUE_VALUE,
|
|
33
34
|
)
|
|
@@ -50,6 +51,8 @@ from tricc_oo.serializers.xls_form import (
|
|
|
50
51
|
SURVEY_MAP,
|
|
51
52
|
end_group,
|
|
52
53
|
generate_xls_form_export,
|
|
54
|
+
get_export_group_name,
|
|
55
|
+
get_export_group_required,
|
|
53
56
|
start_group,
|
|
54
57
|
)
|
|
55
58
|
from tricc_oo.strategies.output.base_output_strategy import BaseOutPutStrategy
|
|
@@ -745,6 +748,13 @@ class XLSFormStrategy(BaseOutPutStrategy):
|
|
|
745
748
|
elif isinstance(r, TriccNodeSelectOption):
|
|
746
749
|
logger.debug(f"select option {r.get_name()} from {r.select.get_name()} was used as a reference")
|
|
747
750
|
return get_export_name(r)
|
|
751
|
+
elif isinstance(r, TriccNodeActivityStart):
|
|
752
|
+
if get_export_group_required(r.activity):
|
|
753
|
+
return f"${{{get_export_group_name(r.activity)}}}"
|
|
754
|
+
else:
|
|
755
|
+
return f"({self.get_tricc_operation_expression(r.relevance)})"
|
|
756
|
+
elif isinstance(r, TriccNodeMainStart):
|
|
757
|
+
return "1"
|
|
748
758
|
elif issubclass(r.__class__, (TriccNodeInputModel, TriccNodeSelect)):
|
|
749
759
|
return f"coalesce(${{{get_export_name(r)}}},{coalesce_fallback})"
|
|
750
760
|
elif issubclass(r.__class__, TriccNodeBaseModel):
|
|
@@ -811,13 +811,6 @@ class XLSFormCHTStrategy(XLSFormCDSSStrategy):
|
|
|
811
811
|
logger.error(f"CHT XLSForm validation error for {os.path.basename(xls_file)}: {str(e)}")
|
|
812
812
|
all_valid = False
|
|
813
813
|
|
|
814
|
-
jar_in_zip = "site-packages/pyxform/validators/odk_validate/bin/ODK_Validate.jar"
|
|
815
|
-
zip_ref.extract(jar_in_zip, os.path.dirname(__file__))
|
|
816
|
-
|
|
817
|
-
# Move to final location
|
|
818
|
-
extracted_jar = os.path.join(os.path.dirname(__file__), jar_in_zip)
|
|
819
|
-
shutil.move(extracted_jar, jar_path)
|
|
820
|
-
|
|
821
814
|
logger.info(f"Extracted ODK Validate JAR to {jar_path}")
|
|
822
815
|
return jar_path
|
|
823
816
|
|
tricc_oo/visitors/tricc.py
CHANGED
|
@@ -240,7 +240,7 @@ def merge_all_expressions(expression, all_versions):
|
|
|
240
240
|
datatype = expression.get_datatype() if expression else "unknown"
|
|
241
241
|
|
|
242
242
|
if datatype == "boolean":
|
|
243
|
-
expression = or_join(all_versions)
|
|
243
|
+
expression = or_join([expression, *all_versions])
|
|
244
244
|
|
|
245
245
|
else:
|
|
246
246
|
# COALESCE through all previous versions, then the current expression
|
|
@@ -2276,15 +2276,15 @@ def get_prev_node_expression(node, processed_nodes, get_overall_exp=False, exclu
|
|
|
2276
2276
|
)
|
|
2277
2277
|
elif none_sequence_defined_prev_node:
|
|
2278
2278
|
# For nodes with is_sequence_defined = False, AND the activity relevance with the prev expression
|
|
2279
|
-
activity_relevance = get_node_expression(
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
)
|
|
2287
|
-
act_sub = and_join([
|
|
2279
|
+
# activity_relevance = get_node_expression(
|
|
2280
|
+
# prev_node.activity,
|
|
2281
|
+
# processed_nodes=processed_nodes,
|
|
2282
|
+
# get_overall_exp=get_overall_exp,
|
|
2283
|
+
# is_prev=True,
|
|
2284
|
+
# negate=False,
|
|
2285
|
+
# process=process,
|
|
2286
|
+
# )
|
|
2287
|
+
act_sub = and_join([ prev_node.activity.root, act_sub])
|
|
2288
2288
|
add_sub_expression(expression_inputs, act_sub)
|
|
2289
2289
|
# avoid void is there is not conditions to avoid looping too much itme
|
|
2290
2290
|
# expression_inputs = clean_or_list(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
tests/build.py,sha256=Qbxvjkj_Wk2nQ-WjaMGiE1FIe3SRmJMRIgeoMoxqlfQ,6748
|
|
2
|
-
tests/test_cql.py,sha256=IRfjrmcxMn60XlAQLUur-7OUELs1NioqxRXWcOf8QcQ,5678
|
|
3
2
|
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
|
|
@@ -25,7 +25,7 @@ tricc_oo/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
|
|
|
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=XtXr4nuRYm2JbZ4a0rPPMASMtAEroSjGgiSTkCXy8L4,24295
|
|
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
|
|
@@ -36,16 +36,16 @@ tricc_oo/strategies/output/fhir_form.py,sha256=hbL921pe1Doun4IQrJuZ_Sq2fCh98G3gr
|
|
|
36
36
|
tricc_oo/strategies/output/html_form.py,sha256=qSleEZOMV_-Z04y-i-ucyd5rgAYWAyjPwMrw0IHtCRM,8604
|
|
37
37
|
tricc_oo/strategies/output/openmrs_form.py,sha256=ne6TwAyhafR-WDs27QTKKFl85VD5sij_VEJtK6ZjOIE,28996
|
|
38
38
|
tricc_oo/strategies/output/spice.py,sha256=QMeoismVC3PdbvwTK0PtUjWX9jl9780fbQIXn76fMXw,10761
|
|
39
|
-
tricc_oo/strategies/output/xls_form.py,sha256=
|
|
39
|
+
tricc_oo/strategies/output/xls_form.py,sha256=yz1G7Mdf4ZpdXaKU6YV8rjNQ288pwUzTh13aI5Up6AI,33884
|
|
40
40
|
tricc_oo/strategies/output/xlsform_cdss.py,sha256=X00Lt5MzV8TX14dR4dFI1MqllI5S1e13bKbeysWM9uA,17435
|
|
41
|
-
tricc_oo/strategies/output/xlsform_cht.py,sha256=
|
|
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=2EoAGxrj4gD9wIQug_oFdy_EtdyLOI4h0CPeNOdw_Fk,114127
|
|
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.24.dist-info/licenses/LICENSE,sha256=Pz2eACSxkhsGfW9_iN60pgy-enjnbGTj8df8O3ebnQQ,16726
|
|
48
|
+
tricc_oo-1.6.24.dist-info/METADATA,sha256=GA-YMXjihmywE-E9LF-f-gLrx5wb_zRj6w9pGsuxUtw,8600
|
|
49
|
+
tricc_oo-1.6.24.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
50
|
+
tricc_oo-1.6.24.dist-info/top_level.txt,sha256=NvbfMNAiy9m4b1unBsqpeOQWh4IgA1Xa33BtKA4abxk,15
|
|
51
|
+
tricc_oo-1.6.24.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|