Skip to content

Commit 631ab88

Browse files
committed
Merge remote-tracking branch 'upstream/maint/1.10.0'
2 parents 7ba7e67 + e240d5f commit 631ab88

File tree

4 files changed

+22
-6
lines changed

4 files changed

+22
-6
lines changed

src/schema/meta/expression_tests.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,14 @@
7474
# General expressions
7575
- expression: 1 + 2
7676
result: 3
77+
- expression: 1 - 2
78+
result: -1
79+
- expression: 3 * 4
80+
result: 12
81+
- expression: 3 / 2
82+
result: 1.5
83+
- expression: 3 % 2
84+
result: 1
7785
- expression: '"cat" + "dog"'
7886
result: 'catdog'
7987
- expression: match('string', '.*')

src/schema/objects/metadata.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -609,7 +609,7 @@ DeidentificationMethodCodeSequence:
609609
type: array
610610
items:
611611
type: object
612-
recommended_fields:
612+
recommended:
613613
- CodeValue
614614
- CodeMeaning
615615
- CodingSchemeDesignator
@@ -1000,7 +1000,7 @@ EditPulse:
10001000
type: object
10011001
additionalProperties:
10021002
type: object
1003-
recommended_fields: [FrequencyOffset, PulseDuration]
1003+
recommended: [FrequencyOffset, PulseDuration]
10041004
properties:
10051005
FrequencyOffset:
10061006
anyOf:

src/schema/rules/checks/func.yaml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,17 @@ RepetitionTimeMismatch:
4141
- type(sidecar.RepetitionTime) != "null"
4242
- type(nifti_header) != "null"
4343
checks:
44-
# Implement millisecond rounding via AND
45-
- sidecar.RepetitionTime - nifti_header.pixdim[4] < 0.001
46-
- sidecar.RepetitionTime - nifti_header.pixdim[4] > -0.001
44+
# Use index(...) % 3 to treat unknown units like seconds
45+
- |
46+
nifti_header.pixdim[4]
47+
* 10 ** (-3 * (index(["sec", "msec", "usec", "unknown"], nifti_header.xyzt_units.t) % 3))
48+
- sidecar.RepetitionTime
49+
> -0.001
50+
- |
51+
nifti_header.pixdim[4]
52+
* 10 ** (-3 * (index(["sec", "msec", "usec", "unknown"], nifti_header.xyzt_units.t) % 3))
53+
- sidecar.RepetitionTime
54+
< 0.001
4755
4856
# 54
4957
BoldNot4d:

tools/schemacode/src/bidsschematools/expressions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def parse(expression_string: str) -> "ASTNode":
6262
notOp = Literal("!")
6363
compOp = one_of(("==", "!=", "<", "<=", ">", ">=", "in"))
6464
addOp = one_of(("+", "-"))
65-
mulOp = one_of(("*", "/"))
65+
mulOp = one_of(("*", "/", "%"))
6666
expOp = Literal("**")
6767

6868
lpar, rpar = Suppress("("), Suppress(")")

0 commit comments

Comments
 (0)