22. Things to do

22.1. Client

22.1.1. Tasks

  • Cardinal_ExpDet* tasks: generate noise on the fly?

22.1.2. Client core

  • Windows build.
  • OS/X build.
  • iOS build.
  • Google Play Store general release.
  • Apple App Store.
  • Ability to search for tasks in the master task list.
  • Consider a “chain of tasks” concept again (see e.g. ResearchMenu.js; MenuTableRow.js; QuestionnaireHeader.js…)… or is that pointless relative to a “set of tasks” concept?
  • Whisker framework.
  • Desktop-style menu for desktop clients. (Faster to navigate around.)
  • Search for “// ***”
  • Think about a web-based client, e.g. via VNC.
  • Validator options, e.g. the server says “ID type 72 uses the ‘NHS number’ validator”, so checksums are checked.

22.2. Server

  • Superuser facility to list all users’ e-mail addresses or provide mailto: URL.
  • Search for all ‘***’ and fix.
  • Implement (from command line) “export to anonymisation staging database” = with patient info per table. (Extend cc_dump.)
  • Test the HL7 backend. Think re HL7 implementation carefully; see hl7_design.txt. Also: ensure we can efficiently distinguish between “previously sent” and “needs to be sent” in the context of re-sending stuff that changes in important ways (if we continue to allow this).
  • Ensure that the “system user” and “server device” are used everywhere they should be.
  • Finish manual.
  • Test SQL Server support. (Main work was the implementation of the ISO-8601 field, 2018-05-22; the rest should be automatic.) Document that the minimum SQL Server version is 2008 (below that, there’s no time zone conversion support).
  • (SERVER + CLIENT) Concept of “tasks that need doing” in the context of a research study.
    • define patients on server (per group)
      • share main patient/patient_idnum tables
      • use the “server device” to create them, and always in era “NOW”
    • ScheduledTask – “task needs doing”
      • patient (by ID number); group; task; due_from; due_by; cancelled?
      • Example: “PHQ9 due for Mr X on 1 July; must be completed by 1 Aug”
    • then for metacreation: “StudySchedule” or “TaskPanel”
      • … a list of tasks, each with: task; due_from_relative_to_start_date; due_by_relative_to_start_date
      • example: “In our study, we want a PHQ9 and GAD7 at the start, a PHQ9 at 3 months, and a PHQ9 and GAD7 at 6 months.”
    • PatientSchedule
      • instantiate a “StudySchedule”/“TaskPanel” with patient, group, start date
      • e.g. “Mr Jones starts today…. enrol!”
    • Tablets should fetch “what needs doing” for any patients defined on the
      tablet, and display them nicely.
    • Tasks must be complete to satisfy the requirement.
  • … Relating to that: consider, on the client, a “single-patient” mode (distinct from the current “researcher” mode), tied to a specific server. “This tablet client is attached to a specific patient and will operate in a patient-friendly, single-patient mode. Show me what needs completing.” The operating concept would be: if you would like someone geographically far away to be able to download CamCOPS and complete a set of tasks for you, how could you organize so that would be simplest for them? The minimum would that you’d create login details for them, and give them a URL, username, and password.

22.3. Documentation to-do list

Todo

Submit CamCOPS to Apple App Store.

(The original entry is located in /home/rudolf/Documents/code/camcops/documentation/source/client/client_installation.rst, line 74.)

Todo

Package CamCOPS client for easier Windows distribution.

(The original entry is located in /home/rudolf/Documents/code/camcops/documentation/source/client/client_installation.rst, line 79.)

Todo

Package CamCOPS client for easier Linux distribution.

(The original entry is located in /home/rudolf/Documents/code/camcops/documentation/source/client/client_installation.rst, line 84.)

Todo

Have the default ID number type configurable per group?

(The original entry is located in /home/rudolf/Documents/code/camcops/documentation/source/introduction/patient_identification.rst, line 88.)

Todo

This tour is a little outdated; apologies! The screenshots are of the older Javascript/Titanium application, not the newer C++/Qt application, and the server front end has also improved. We’ll update this when we can.

(The original entry is located in /home/rudolf/Documents/code/camcops/documentation/source/introduction/tour.rst, line 25.)

Todo

The HL7 implementation is currently disabled. This needs fixing.

(The original entry is located in /home/rudolf/Documents/code/camcops/documentation/source/server/server_front_end_admin.rst, line 199.)

Todo

upload to PyPI; write description of how to install via Pip

(The original entry is located in /home/rudolf/Documents/code/camcops/documentation/source/server/server_installation.rst, line 82.)

Todo

implement Windows service

(The original entry is located in /home/rudolf/Documents/code/camcops/documentation/source/server/server_installation.rst, line 84.)

Todo

fix get_cris_dd_rows

(The original entry is located in /home/rudolf/Documents/code/camcops/server/camcops_server/cc_modules/cc_task.py:docstring of camcops_server.cc_modules.cc_task.Task.get_cris_dd_rows, line 1.)

Todo

fix make_cris_tables

(The original entry is located in /home/rudolf/Documents/code/camcops/server/camcops_server/cc_modules/cc_task.py:docstring of camcops_server.cc_modules.cc_task.Task.make_cris_tables, line 1.)