15.2.411. camcops_server.tasks.kirby_mcq¶
camcops_server/tasks/kirby.py
Copyright (C) 2012, University of Cambridge, Department of Psychiatry. Created by Rudolf Cardinal (rnc1001@cam.ac.uk).
This file is part of CamCOPS.
CamCOPS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
CamCOPS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with CamCOPS. If not, see <https://www.gnu.org/licenses/>.
- class camcops_server.tasks.kirby_mcq.Kirby(**kwargs)[source]¶
Server implementation of the Kirby Monetary Choice Questionnaire task.
- __init__(**kwargs)¶
A simple constructor that allows initialization from kwargs.
Sets attributes on the constructed instance using the names and values in
kwargs
.Only keys that are present as attributes of the instance’s class are allowed. These could be, for example, any mapped columns or relationships.
- all_choice_results() List[camcops_server.tasks.kirby_mcq.KirbyRewardPair] [source]¶
Returns a list of
KirbyRewardPair
objects, one for each answered question.
- editing_time_s¶
How long has the user spent editing the task? (Calculated by the CamCOPS client.)
- firstexit_is_abort¶
Was the first exit from the task’s editor an “abort”?
- firstexit_is_finish¶
Was the first exit from the task’s editor a successful “finish”?
- get_summaries(req: camcops_server.cc_modules.cc_request.CamcopsRequest) List[camcops_server.cc_modules.cc_summaryelement.SummaryElement] [source]¶
Return a list of
SummaryElement
objects, for this database object (not any dependent classes/tables).Note that this is implemented on
GenericTabletRecordMixin
, notcamcops_server.cc_modules.cc_task.Task
, so that ancillary objects can also provide summaries.
- get_task_html(req: camcops_server.cc_modules.cc_request.CamcopsRequest) str [source]¶
HTML for the main task content.
Must be overridden by derived classes.
- id¶
- k_kirby(results: List[camcops_server.tasks.kirby_mcq.KirbyRewardPair]) Optional[float] [source]¶
Returns k for a subject as determined using Kirby’s (2000) method. See kirby_mcq.rst.
- static k_wileyto(results: List[camcops_server.tasks.kirby_mcq.KirbyRewardPair]) Optional[float] [source]¶
Returns k for a subject as determined using Wileyto et al.’s (2004) method. See kirby_mcq.rst.
- static longname(req: camcops_server.cc_modules.cc_request.CamcopsRequest) str [source]¶
Long name (in the relevant language).
- static n_choices_consistent(k: float, results: List[camcops_server.tasks.kirby_mcq.KirbyRewardPair]) int [source]¶
Returns the number of choices that are consistent with the given k value.
- patient¶
“the patient for this task”.
Note that this refers to the CURRENT version of the patient. If there is an editing chain, older patient versions are not retrieved.
Compare
camcops_server.cc_modules.cc_blob.blob_relationship()
, which uses the same strategy, as do several other similar functions.- Type
SQLAlchemy relationship
- patient_id¶
SQLAlchemy
Column
that is a foreign key to the patient table.
- special_notes¶
List-style SQLAlchemy relationship to any
SpecialNote
objects attached to this class. Skips hidden (quasi-deleted) notes.
- when_created¶
Column representing the task’s creation time.
- when_firstexit¶
Column representing when the user first exited the task’s editor (i.e. first “finish” or first “abort”).
- when_last_modified¶
- class camcops_server.tasks.kirby_mcq.KirbyRewardPair(sir: int, ldr: int, delay_days: int, chose_ldr: Optional[bool] = None, currency: str = '£', currency_symbol_first: bool = True)[source]¶
Represents a pair of rewards: a small immediate reward (SIR) and a large delayed reward (LDR).
- __init__(sir: int, ldr: int, delay_days: int, chose_ldr: Optional[bool] = None, currency: str = '£', currency_symbol_first: bool = True) None [source]¶
- Parameters
sir – amount of the small immediate reward (SIR)
ldr – amount of the large delayed reward (LDR)
delay_days – delay to the LDR, in days
chose_ldr – if result also represented, did the subject choose the LDR?
currency – currency symbol
currency_symbol_first – symbol before amount?
- answer(req: camcops_server.cc_modules.cc_request.CamcopsRequest) str [source]¶
Returns the subject’s answer, or “?”.
- choice_consistent(k: float) bool [source]¶
Was the choice consistent with the k value given?
If no choice has been recorded, returns false.
If the k value equals the implied indifference point exactly (meaning that the subject should not care), return true.
- k_indifference() float [source]¶
Returns the value of k, the discounting parameter (units: days ^ -1) if the subject is indifferent between the two choices.
For calculations see kirby_mcq.rst.
- ldr_string(req: camcops_server.cc_modules.cc_request.CamcopsRequest) str [source]¶
Returns a string representing the large delayed reward, e.g. “£50 in 200 days”.
- question(req: camcops_server.cc_modules.cc_request.CamcopsRequest) str [source]¶
The question posed for this reward pair.
- sir_string(req: camcops_server.cc_modules.cc_request.CamcopsRequest) str [source]¶
Returns a string representing the small immediate reward, e.g. “£10 today”.
- class camcops_server.tasks.kirby_mcq.KirbyTrial(**kwargs)[source]¶
- __init__(**kwargs)¶
A simple constructor that allows initialization from kwargs.
Sets attributes on the constructed instance using the names and values in
kwargs
.Only keys that are present as attributes of the instance’s class are allowed. These could be, for example, any mapped columns or relationships.
- id¶
- info() camcops_server.tasks.kirby_mcq.KirbyRewardPair [source]¶
Returns the trial information as a
KirbyRewardPair
.
- task_ancestor() Optional[camcops_server.tasks.kirby_mcq.Kirby] [source]¶
Returns the specific ancestor task of this object.
- when_last_modified¶