Sessions Inquiry


Author
Message
dillonk
dillonk
Associate Member (215 reputation)Associate Member (215 reputation)Associate Member (215 reputation)Associate Member (215 reputation)Associate Member (215 reputation)Associate Member (215 reputation)Associate Member (215 reputation)Associate Member (215 reputation)Associate Member (215 reputation)
Group: Forum Members
Posts: 17, Visits: 68
To whom it may concern, 

I have a question regarding sessions. I understand that it enables tasks based on the session id. It was my understanding that Millisecond keeps track of session numbers, i.e. it will know that a participant is on a second session if they completed their first session. We created our experiment with a session set up for each study visit, but noticed that in piloting, it allowed one of our RAs to complete tasks even after her last (fourth) session. I'm wondering how we can make sure that the Millisecond tasks won't allow participants to complete millisecond tasks after they've completed their final session? Below is the experiment script for your reference; let me know if there is any other clarifying info I can provide. 

// session 1
<batch>
/ file = "cuedgonogo.iqx"
/ file = "emotiondotprobe.iqx"
/ sessions = (1 of 4)
</batch>

// session 2
<batch>
/ file = "cuedgonogo.iqx"
/ file = "emotiondotprobe.iqx"
/ sessions = (2 of 4)
</batch>

// session 3
<batch>
/ file = "cuedgonogo.iqx"
/ file = "emotiondotprobe.iqx"
/ sessions = (3 of 4)
</batch>

// session 4
<batch>
/ file = "cuedgonogo.iqx"
/ file = "emotiondotprobe.iqx"
/ sessions = (4 of 4)
</batch>
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
dillonk - 2/4/2021
To whom it may concern, 

I have a question regarding sessions. I understand that it enables tasks based on the session id. It was my understanding that Millisecond keeps track of session numbers, i.e. it will know that a participant is on a second session if they completed their first session. We created our experiment with a session set up for each study visit, but noticed that in piloting, it allowed one of our RAs to complete tasks even after her last (fourth) session. I'm wondering how we can make sure that the Millisecond tasks won't allow participants to complete millisecond tasks after they've completed their final session? Below is the experiment script for your reference; let me know if there is any other clarifying info I can provide. 

// session 1
<batch>
/ file = "cuedgonogo.iqx"
/ file = "emotiondotprobe.iqx"
/ sessions = (1 of 4)
</batch>

// session 2
<batch>
/ file = "cuedgonogo.iqx"
/ file = "emotiondotprobe.iqx"
/ sessions = (2 of 4)
</batch>

// session 3
<batch>
/ file = "cuedgonogo.iqx"
/ file = "emotiondotprobe.iqx"
/ sessions = (3 of 4)
</batch>

// session 4
<batch>
/ file = "cuedgonogo.iqx"
/ file = "emotiondotprobe.iqx"
/ sessions = (4 of 4)
</batch>

> We created our experiment with a session set up for each study visit, but noticed that in piloting, it allowed one of our RAs to complete tasks even after her last (fourth) session.

The session number the server keeps track of ticks up by one with every visit of the respective participant. Underlying the determination which session is administered is simple modulo arithmetic: session number modulo number of sessions. So:

1 modulo 4 = 1 -> Scripts for session #1
2 modulo 4 = 2 -> Scripts for session #2
3 modulo 4 = 3 -> Scripts for session #3
4 modulo 4 = 0 -> Scripts for session #4
5 modulo 4 = 1 -> Scripts for session #1
6 modulo 4 = 2 -> Scripts for session #2
and so forth.

This is the expected behavior and cannot currently be changed.

What you could do to absolutely prevent this would be to define a script.abort(true) condition in e.g. the go-nogo script that simply terminates the entire batch if a session number greater 4 is encountered. Eg.

<expt>
/ onexptbegin = [
    if (script.sessionid > 4) script.abort(true);
]
...
</expt>


dillonk
dillonk
Associate Member (215 reputation)Associate Member (215 reputation)Associate Member (215 reputation)Associate Member (215 reputation)Associate Member (215 reputation)Associate Member (215 reputation)Associate Member (215 reputation)Associate Member (215 reputation)Associate Member (215 reputation)
Group: Forum Members
Posts: 17, Visits: 68
Thank you!
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search