diff --git a/src/schema/meta/associations.yaml b/src/schema/meta/associations.yaml index 06dc37faca..9382d43a78 100644 --- a/src/schema/meta/associations.yaml +++ b/src/schema/meta/associations.yaml @@ -21,6 +21,14 @@ events: extension: .tsv inherit: true +events_sidecar: + selectors: + - sidecar.PhysioType == "eyetrack" + target: + suffix: events + extension: .json + inherit: true + aslcontext: selectors: - suffix == 'asl' diff --git a/src/schema/rules/checks/events.yaml b/src/schema/rules/checks/events.yaml index 536423aec7..717fd6465c 100644 --- a/src/schema/rules/checks/events.yaml +++ b/src/schema/rules/checks/events.yaml @@ -43,3 +43,18 @@ SortedOnsets: checks: # n/a values will likely cause false alarms if encountered. Consider alternatives. - allequal(sorted(columns.onset, "numeric"), columns.onset) + +EyetrackRequirements: + issue: + code: EYETRACK_METADATA_MISSING + message: | + The existence of eyetracking data requires the precence of ScreenDistance, ScreenOrigin, ScreenResolution, + and ScreenSize in the corresponding events.json file. + level: Error + selectors: + - sidecar.PhysioType == "eyetrack" + checks: + - associations.events_sidecar.ScreenDistance != null + - associations.events_sidecar.ScreenOrigin != null + - associations.events_sidecar.ScreenResolution != null + - associations.events_sidecar.ScreenSize != null diff --git a/src/schema/rules/sidecars/events.yaml b/src/schema/rules/sidecars/events.yaml index 98a23083e8..8d36c31886 100644 --- a/src/schema/rules/sidecars/events.yaml +++ b/src/schema/rules/sidecars/events.yaml @@ -13,13 +13,9 @@ StimulusPresentation: StimulusPresentation: recommended VisionCorrection: optional -StimulusPresentation_for_eyetracking: +StimulusPresentationEyetrack: selectors: - suffix == "events" - associations.physio.sidecar.PhysioType == "eyetrack" fields: - StimulusPresentation.ScreenDistance: required - StimulusPresentation.ScreenOrigin: required - StimulusPresentation.ScreenRefreshRate: recommended - StimulusPresentation.ScreenResolution: required - StimulusPresentation.ScreenSize: required + StimulusPresentation__eyetrack__required: required