Scat: a Simple caTissue application

Git: http://github.com/caruby/scat
Author: OHSU Knight Cancer Institute
Copyright: 2012
License: MIT License

Synopsis

Scat is a light-weight caRuby Tissue web application.

Features

  1. Create tissue specimens in caTissue.

  2. Create the specimen subject, registration and collection group as necessary.

  3. Auto-complete the diagnosis and tissue site.

  4. Authorize the user.

  5. One small edit page to rule them all.

  6. Dynamically responds to tablet and even smartphone devices.

  7. Simple edit form configuration.

  8. Leverage the caRuby declarative API.

Requirements

The current Scat release only runs on Linux.

Installation

Scat is installed on a caTissue server as a JRuby gem:

sudo jgem install caruby-scat

See the caRuby Tissue FAQ for configuring the caTissue API client.

The log file is /var/log/scat.log. Ensure that the /var/log directory is writable by the Linux user which starts Scat. The preferred Linux way to do this is to make /var/log owned and writable by the adm group and add the user to that group.

Usage

  1. Execute scat in a console to start Scat.

  2. Open a web browser on http:://server:4567/, where server is the name of your server.

  3. Scat starts on the specimen edit page (see the screen shot below). Hover over the edit form entry question mark to describe the field. Enter values for each field.

  4. Enter five or more letters in the Diagnosis or Tissue Site and wait briefly to bring up a list of matching caTissue values.

  5. Press the Submit button to create a new specimen.

The Diagnosis and Tissue Site term => controlled value matches are cached locally and persistently. Subsequent term auto-completion is very fast.

Within a session, the first save takes a while to find the Collection Protocol, Site and other information. Subsequent saves are faster. Successive creation of new specimens for the same patient and pathology report are considerably faster.

Screen Shot:

alt text

Customization

Scat is a reference implementation which captures minimal specimen information. Adding edit fields is done in a single simple text configuration file.

There are two ways to enhance Scat for your own site:

The quick-and-dirty approach:

  1. Edit the following file:

jgem environment gemdir</code>/gems/caruby-scat*/conf/fields.yaml

  1. Add or remove fields to display.

  2. Refresh the Scat edit page.

The safe-and-sane approach:

  1. Install git on your workstation if necessary.

  2. Make a workspace directory on your workstation.

  3. From that directory, execute the following:

git clone git://github.com/caruby/scat.git

  1. Modify the conf/fields.yaml configuration file to add edit fields.

  2. Modify the scat/public/stylesheets/scat.css file to change the web display.

  3. Add views and routes to this Sinatra application as you see fit.

  4. Run Scat with your changes by executing the following in the workspace scat directory:

rackup

  1. See your changes by opening a web browser on http://localhost:4567/.

  2. When you are satisfied with the changes, bump the version number in the lib/scat/version.rb file by appending a branch number, e.g. change the base version 1.2.2 to 1.2.2.1.

  3. Package your changes by executing the following:

    rake gem

  4. Copy the resulting gem file to your server.

  5. On the server, install the new gem, e.g.:

    gem install caruby-scat-1.2.2.1.gem

You can proudly share your changes with the world by forking the Scat repository:

  1. Register for a GitHub account, if you don't already have one.

  2. Navigate to the Scat repository.

  3. Press the Fork button in the upper right.

  4. Fork the repository to your GitHub account.

  5. Set the git origin in your workstation scat directory, e.g.:

git config --replace-all remote.origin.url [email protected]:mygitaccount/scat.git

  1. Commit the changes to your local git repository.

  2. Push the changes to your fork with the command:

git push origin master

Your GitHub fork is publicly visible. You can see other Scat forks by searching on the term scat in GitHub.