15.1.24. tablet_qt/common/textconst.cpp

/*
    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/>.
*/

#include "textconst.h"
#include <QObject>

// ============================================================================
// Common text via tr()
// ============================================================================

QString TextConst::abnormal() { return tr("Abnormal"); }
QString TextConst::abort() { return tr("Abort"); }
QString TextConst::add() { return tr("Add"); }

QString TextConst::back() { return tr("Back"); }

QString TextConst::cancel() { return tr("Cancel"); }
QString TextConst::category() { return tr("Category"); }
QString TextConst::clinician() { return tr("Clinician/researcher"); }
QString TextConst::clinicianAndRespondentDetails() { return tr("Clinician/researcher’s and respondent’s details"); }
QString TextConst::clinicianComments() { return tr("Clinician/researcher’s comments"); }
QString TextConst::clinicianContactDetails() { return tr("Clinician/researcher’s contact details"); }
QString TextConst::clinicianDetails() { return tr("Clinician/researcher’s details"); }
QString TextConst::clinicianName() { return tr("Clinician/researcher’s name"); }
QString TextConst::clinicianPost() { return tr("Clinician/researcher’s post"); }
QString TextConst::clinicianProfessionalRegistration() { return tr("Clinician/researcher’s professional registration"); }
QString TextConst::clinicianService() { return tr("Clinician/researcher’s service"); }
QString TextConst::clinicianSpecialty() { return tr("Clinician/researcher’s specialty"); }
QString TextConst::cliniciansComments() { return tr("Clinician/researcher’s comments"); }
QString TextConst::comment() { return tr("Comment"); }
QString TextConst::comments() { return tr("Comments"); }
QString TextConst::copy() { return tr("Copy"); }
QString TextConst::correct() { return tr("Correct"); }

QString TextConst::dataCollectionOnlyAnnouncement()
{
    return tr(
       "Reproduction of this task/scale is not permitted. This is a data "
       "collection tool only; use it only in conjunction with a licensed copy "
       "of the original task.");
}
QString TextConst::DATA_COLLECTION_ONLY_SYMBOL("¶");
QString TextConst::dataCollectionOnlySubtitleSuffix()
{
    return tr("Data collection tool only.");
}
QString TextConst::DATA_COLLECTION_ONLY_UNLESS_UPGRADED_SYMBOL("¶+");
QString TextConst::dataCollectionOnlyUnlessUpgradedSubtitleSuffix()
{
    return tr("Data collection tool only unless host "
              "institution adds scale text.");
}
QString TextConst::defaultHintText() { return tr("type text here"); }
QString TextConst::DEFUNCT_SYMBOL("†");
QString TextConst::defunctSubtitleSuffix()
{
    return tr("Defunct.");
}
QString TextConst::delete_() { return tr("Delete"); }
QString TextConst::description() { return tr("Description"); }
QString TextConst::diagnosis() { return tr("Diagnosis"); }

QString TextConst::enterTheAnswers() { return tr("Enter the answers:"); }
QString TextConst::examinerComments() { return tr("Examiner’s comments"); }
QString TextConst::examinerCommentsPrompt()
{
    return tr("Optional — Examiner’s comments (e.g. "
              "difficulties the subject had with the task):");
}
QString TextConst::EXPERIMENTAL_SYMBOL("~");
QString TextConst::experimentalSubtitleSuffix()
{
    return tr("Experimental.");
}

QString TextConst::finished() { return tr("Finished"); }
QString TextConst::fullTask() { return tr("Full task without content restriction"); }

QString TextConst::globalScore() { return tr("Global score"); }

QString TextConst::HAS_CLINICIAN_SYMBOL("C");
QString TextConst::hasClinicianSubtitleSuffix() {
    return tr("Involves assessment by clinician/researcher.");
}
QString TextConst::HAS_RESPONDENT_SYMBOL("R");
QString TextConst::hasRespondentSubtitleSuffix() {
    return tr("Collects information from respondent other than the subject.");
}

QString TextConst::icd10() {
    return tr("World Health Organization International Classification of "
              "Diseases, 10th edition.");
}
QString TextConst::idNumberType() { return tr("ID number type"); }
QString TextConst::inAddition() { return tr("In addition"); }
QString TextConst::incorrect() { return tr("Incorrect"); }

QString TextConst::location() { return tr("Location"); }

QString TextConst::meetsCriteria() { return tr("Meets criteria"); }
QString TextConst::mild() { return tr("Mild"); }
QString TextConst::mildToModerate() { return tr("Mild to moderate"); }
QString TextConst::moderatelySevere() { return tr("Moderately severe"); }
QString TextConst::moderateToSevere() { return tr("Moderate to severe"); }
QString TextConst::moderate() { return tr("Moderate"); }
QString TextConst::moveDown() { return tr("Move down"); }
QString TextConst::moveUp() { return tr("Move up"); }

QString TextConst::na() { return tr("N/A"); }
QString TextConst::none() { return tr("None"); }
QString TextConst::no() { return tr("No"); }
QString TextConst::noDetailSeeFacsimile() { return tr("No detail available; see the facsimile instead"); }
QString TextConst::noSummarySeeFacsimile() { return tr("No summary available; see the facsimile instead"); }
QString TextConst::normal() { return tr("Normal"); }
QString TextConst::notApplicable() { return tr("Not applicable"); }
QString TextConst::notRecalled() { return tr("Not recalled"); }
QString TextConst::notSpecified() { return tr("<not specified>"); }
QString TextConst::note() { return tr("Note"); }

QString TextConst::of() { return tr("of"); }
QString TextConst::off() { return tr("Off"); }
QString TextConst::ok() { return tr("OK"); }
QString TextConst::on() { return tr("On"); }

QString TextConst::page() { return tr("page"); }
QString TextConst::part() { return tr("Part"); }
QString TextConst::patient() { return tr("Patient"); }
QString TextConst::pleaseWait() { return tr("Please wait..."); }
QString TextConst::pressNextToContinue()
{
    return tr(
        "Press the NEXT button (the green right-facing arrow at the TOP RIGHT "
        "of the screen) to continue."
    );
}

QString TextConst::question() { return tr("Question"); }

QString TextConst::rating() { return tr("Rating"); }
QString TextConst::reallyAbort() { return tr("Really abort?"); }
QString TextConst::recalled() { return tr("Recalled"); }
QString TextConst::respondentDetails() { return tr("Respondent’s details"); }
QString TextConst::respondentNameSecondPerson() { return tr("Your name"); }
QString TextConst::respondentNameThirdPerson() { return tr("Respondent’s name"); }
QString TextConst::respondentRelationshipSecondPerson() { return tr("Your relationship to the patient"); }
QString TextConst::respondentRelationshipThirdPerson() { return tr("Respondent’s relationship to patient"); }

QString TextConst::saving() { return tr("Saving, please wait..."); }
QString TextConst::score() { return tr("Score"); }
QString TextConst::seeFacsimile() { return tr("See facsimile."); }
QString TextConst::seeFacsimileForMoreDetail() { return tr("See facsimile for more detail."); }
QString TextConst::service() { return tr("Service"); }
QString TextConst::severe() { return tr("Severe"); }
QString TextConst::sex() { return tr("Sex"); }
QString TextConst::startChainQuestion() { return tr("Start new task chain?"); }
QString TextConst::startChainTitle() { return tr("Start task chain"); }
QString TextConst::soundTestFor() { return tr("Sound test for"); }

QString TextConst::thankYou() { return tr("Thank you!"); }
QString TextConst::thankYouTouchToExit() { return tr("Thank you! Please touch here to exit."); }
QString TextConst::totalScore() { return tr("Total score"); }
QString TextConst::touchToStart() { return tr("When you’re ready, touch here to start."); }

QString TextConst::txtAnd() { return tr("and"); }
QString TextConst::txtTrue() { return tr("True"); }
QString TextConst::txtFalse() { return tr("False"); }

QString TextConst::unableToCreateMediaPlayer() { return tr("Unable to create media player!"); }
QString TextConst::unknown() { return tr("Unknown"); }

QString TextConst::verySevere() { return tr("Very severe"); }

QString TextConst::wrong() { return tr("Wrong"); }

QString TextConst::yes() { return tr("Yes"); }


// ============================================================================
// Terms and conditions
// ============================================================================

QString TextConst::clinicianTermsConditions() {
    return tr(
        "1. By using the Cambridge Cognitive and Psychiatric Assessment Kit "
        "application or web interface (“CamCOPS”), you are agreeing in full "
        "to these Terms and Conditions of Use. If you do not agree to these "
        "terms, do not use the software.\n\n"

        "2. Content that is original to CamCOPS is licensed as follows.\n\n"

        "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.\n\n"

        "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.\n\n"

        "You should have received a copy of the GNU General Public License "
        "along with CamCOPS. If not, see <http://www.gnu.org/licenses/>.\n\n"

        "3. Content created by others and distributed with CamCOPS may be in "
        "the public domain, or distributed under other licenses or "
        "permissions. THERE MAY BE CRITERIA THAT APPLY TO YOU THAT MEAN YOU "
        "ARE NOT PERMITTED TO USE SPECIFIC TASKS. IT IS YOUR RESPONSIBILITY "
        "TO CHECK THAT YOU ARE LEGALLY ENTITLED TO USE EACH TASK. You agree "
        "that the authors of CamCOPS are not responsible for any consequences "
        "that arise from your use of an unauthorized task.\n\n"

        "4. While efforts have been made to ensure that CamCOPS is reliable "
        "and accurate, you agree that the authors and distributors of CamCOPS "
        "are not responsible for errors, omissions, or defects in the "
        "content, nor liable for any direct, indirect, incidental, special "
        "and/or consequential damages, in whole or in part, resulting from "
        "your use or any user’s use of or reliance upon its content.\n\n"

        "5. Content contained in or accessed through CamCOPS should not be "
        "relied upon for medical purposes in any way. This software is not "
        "designed for use by the general public. If medical advice is "
        "required you should seek expert medical assistance. You agree that "
        "you will not rely on this software for any medical purpose.\n\n"

        "6. Regarding the European Union Council Directive 93/42/EEC of 14 "
        "June 1993 concerning medical devices (amended by further directives "
        "up to and including Directive 2007/47/EC of 5 September 2007) "
        "(“Medical Devices Directive”): CamCOPS is not intended for "
        "the diagnosis and/or monitoring of human disease. If it is used for "
        "such purposes, it must be used EXCLUSIVELY FOR CLINICAL "
        "INVESTIGATIONS in an appropriate setting by persons professionally "
        "qualified to do so. It has NOT undergone a conformity assessment "
        "under the Medical Devices Directive, and thus cannot be marketed or "
        "put into service as a medical device. You agree that you will not "
        "use it as a medical device.\n\n"

        "7. THIS SOFTWARE IS DESIGNED FOR USE BY QUALIFIED CLINICIANS ONLY. "
        "BY CONTINUING TO USE THIS SOFTWARE YOU ARE CONFIRMING THAT YOU ARE "
        "A QUALIFIED CLINICIAN, AND THAT YOU RETAIN RESPONSIBILITY FOR "
        "DIAGNOSIS AND MANAGEMENT.\n\n"

        "8. The CamCOPS server uses a single secure HTTP cookie for session "
        "authentication. The cookie is not used for any other purpose. "
        "It is deleted when you finish your session (it is a session cookie). "
        "By using a CamCOPS server, you agree to this use of cookies.\n\n"

        "These terms and conditions were last revised on 2020-10-12."
    );
    // This should match the DISCLAIMER_CONTENT string in the server_string()
    // function of camcops_server/cc_modules/cc_text.py.
    // If you change this text, change TERMS_CONDITIONS_UPDATE_DATE below.
}
QString TextConst::singleUserTermsConditions() {
    // We want this to be as simple as possible.
    // It's the clinicians'/researchers' job to worry about the context;
    // patients WILL NOT be able to use this software in single-user mode
    // unless they are registered with a CamCOPS server (whose operators are
    // responsible for its use). If the patient switches to "clinician mode",
    // they have to agree to the full terms/conditions as above.
    //
    // So, what do we worry about with patients in this "supervised" mode?
    // Primarily, that they see this app as a way of communicating with a
    // clinical or research team in a way that it isn't.

    return tr(
        "CamCOPS is a computer program to collect information for clinical "
        "(health care) and/or research purposes.\n\n"

        "Tasks may be scheduled for you by your clinical/research team, and "
        "will then appear in CamCOPS for you to complete.\n\n"

        "THIS IS NOT A SUBSTITUTE FOR DIRECT COMMUNICATION WITH YOUR "
        "CLINICAL/RESEARCH TEAM, OR EMERGENCY SERVICES. Information you "
        "provide via CamCOPS might not be seen promptly by a relevant person. "
        "If you have something urgent to tell your clinical/research team, "
        "get in touch with them directly without delay. If something is very "
        "urgent (for example, if you are very unwell or at risk), then "
        "contact the emergency services immediately.\n\n"

        "Thank you!"
    );
    // If you change this text, change TERMS_CONDITIONS_UPDATE_DATE below.
}
QDate TextConst::TERMS_CONDITIONS_UPDATE_DATE(2020, 10, 12);


// ============================================================================
// Test text
// ============================================================================

QString TextConst::LOREM_IPSUM_1(
    "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent "
    "sed cursus mauris. Ut vulputate felis quis dolor molestie convallis. "
    "Donec lectus diam, accumsan quis tortor at, congue laoreet augue. Ut "
    "mollis consectetur elit sit amet tincidunt. Vivamus facilisis, mi et "
    "eleifend ullamcorper, lorem metus faucibus ante, ut commodo urna "
    "neque bibendum magna. Lorem ipsum dolor sit amet, consectetur "
    "adipiscing elit. Praesent nec nisi ante. Sed vitae sem et eros "
    "elementum condimentum. Proin porttitor purus justo, sit amet "
    "vulputate velit imperdiet nec. Nam posuere ipsum id nunc accumsan "
    "tristique. Etiam pellentesque ornare tortor, a scelerisque dui "
    "accumsan ac. Ut tincidunt dolor ultrices, placerat urna nec, "
    "scelerisque mi."
);
QString TextConst::LOREM_IPSUM_2(
    "Nunc vitae neque eu odio feugiat consequat ac id neque. "
    "Suspendisse id libero massa."
);
QString TextConst::LOREM_IPSUM_3(
    "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent "
    "sed cursus mauris. Ut vulputate felis quis dolor molestie convallis. "
    "Donec lectus diam, accumsan quis tortor at, congue laoreet augue. Ut "
    "mollis consectetur elit sit amet tincidunt."
);


// ============================================================================
// Instance
// ============================================================================

const TextConst textconst;