Git Product home page Git Product logo

tabcat's Introduction

TabCAT

TabCAT (Tablet-based Cognitive Assessment Tool) is used by the UCSF Memory and Aging Center to help diagnose Alzheimer's and other forms of dementia with a series of cognitive tasks, administered on an iPad or other tablet.

TabCAT is pure HTML5, so it can, in theory, run in any modern browser, and writing new tasks requires only basic web programming skills. It uses CouchDB as both its web server and its backend to store transcripts of tasks, which can be retrieved in JSON format.

TabCAT is designed with HIPAA compliance in mind. By default, it does not store any PHI at all, though it can be configured to store limited dataset PHI (e.g. dates) or full PHI. Any PHI is clearly tagged as such so that it can be later stripped out if need be.

TabCAT can deal with a poor or nonexistent network connection by automatically shifting into offline mode; data for tasks will be stored in the browser's local storage until the network is available again.

Installation

Dependencies

On the server side, TabCAT requires CouchDB (installation instructions). We have been running on version 1.3.0, but anything later than 1.2.0 should work.

If you don't want to host a server, Iris Couch is a good, free option.

In order to build and install TabCAT, you will need:

Don't panic! Once you have node.js, installing kanso, coffeescript, and UglifyJS is just a matter of running:

sudo npm install -g kanso coffee-script uglify-js

If you are on a UNIX system, you probably have make (and curl) already.

On Mac OS X, make is available as part of XCode; once you have XCode installed, install Command Line Tools from the Components tab of the Downloads preferences panel.

On Windows, you'll probably want to install Cygwin.

Finally, if you want to get involved in developing TabCAT, we recommend installing coffeelint (sudo npm install -g coffeelint).

Setting up your server

We're working on automating this, but until then, you'll need to do this from Futon.

Open up Futon by browsing to /_utils on your server.

Click on the Configuration link on the left. Under the couch_httpd_auth section, set allow_persistent_cookies to true and timeout to 3600. Under the uuids section, set algorithm to random.

Create an admin user whose username is your email address (all lowercase). (Look for the link in the lower-right corner of Futon.)

Then, sign out, and sign up a user named tabcat (again, lower-right corner).

Then sign back in as your admin user and create a database named tabcat. Click on that database, go to "Security" (upper part of the screen) and under the Admins section set the Names of admins to ["tabcat"].

Do the same thing with a database named tabcat-data. Then, while you're still in the "Security" popup, add your email (in quotes) to the Names section of members: ["[email protected]"].

(If you're on Iris Couch, you're done; go on to the next section.)

It's probably a good idea to force users to access your server via SSL; see How to Enable SSL for further instructions.

Oh, and to allow access to your server from other hosts, you'll want to go to the httpd section of the "Configuration" page and set bind_address to 0.0.0.0. (You don't need to do this if you're just testing/developing.)

Adding additional users

New users will have to click the "Sign Up" link in Futon, using their (lowercase) email address as their username. Once they've signed up, enable their account by going to the tabcat-data database, clicking on Security, and adding their email to the Names section of members, just like you did with your own email: ["[email protected]", "[email protected]"].

Installing TabCAT

cd to the root of the source directory.

Set the environment variable TABCAT_HOST to your web server's URL, with the tabcat user's credentials. That will look something like this:

export TABCAT_HOST=http://tabcat:your-password@localhost:5984

Then run make.

Using TabCAT

To access TabCAT, browse to /tabcat/_design/console/login.html on your server.

If you're on a iPad, click "Add to Home Screen" under the bookmarks menu (upper left), hit the home button, and re-launch the browser from the shortcut you just created. This launches TabCAT in Standalone mode (no nav bar), which is what you want for running tasks.

Then log in with your email and password. It'll prompt you for a patient code; if you're just testing things out, we recommend you use the patient code 0.

If you're on Android, the best way to get the same kind of "standalone" behavior is to install Firefox for Android. Add TabCAT to your home screen by clicking on the nav bar, the History tab, holding down on the entry for TabCAT (which should be at the top), and then choosing Add to Home Screen. Then, from Firefox, install Full Screen mobile extension and enable it from the Menu button.

If you're on a Microsoft Surface, your best bet is to launch TabCAT from the desktop in Internet Explore, and then enable Full Screen mode (F11, I think?).

tabcat's People

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.