caruby-scat 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,17 @@
1
+ .DS_Store
2
+ **~
3
+ cruft
4
+ ext
5
+ .project
6
+ .idea
7
+ .loadpath
8
+ .yardoc
9
+ .*/
10
+ redis.pid
11
+ **redis-server
12
+ *.gem
13
+ *.pdf
14
+ *.tar*
15
+ **log
16
+ /doc/api
17
+ /test/results
data/Gemfile ADDED
@@ -0,0 +1,25 @@
1
+ source :rubygems
2
+ gemspec
3
+
4
+ group :development do
5
+ gem 'ruby-debug'
6
+ # Uncomment the following lines if there are local gem changes. Change the path option
7
+ # to your workspace location. Commit the changed Gemfile and Gemfile.lock to a git branch
8
+ # named 'local' rather than to the master branch. Do not check in the local change.
9
+ gem 'caruby-core', :path => File.dirname(__FILE__) + '/../core'
10
+ gem 'caruby-tissue', :path => File.dirname(__FILE__) + '/../tissue'
11
+ gem 'caruby-small', :path => File.dirname(__FILE__) + '/../small'
12
+ gem 'jinx', :path => File.dirname(__FILE__) + '/../../jinx/core'
13
+ gem 'jinx-json', :path => File.dirname(__FILE__) + '/../../jinx/json'
14
+ gem 'caruby-scat', :path => File.dirname(__FILE__), :require => 'scat'
15
+ end
16
+
17
+ group :test do
18
+ gem 'rspec', '>= 2.6'
19
+ gem 'sinatra', '=1.2.6' # TODO - retry with 1.3 when it is available
20
+ gem 'shotgun'
21
+ gem 'cucumber'
22
+ gem 'capybara'
23
+ gem 'launchy'
24
+ gem 'rack-test', :require => 'rack/test'
25
+ end
@@ -0,0 +1,158 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ caruby-scat (1.1.1)
5
+ bundler
6
+ caruby-tissue (>= 2.1.4)
7
+ haml
8
+ jruby-openssl
9
+ rack
10
+ redis
11
+ redis-store
12
+ sinatra
13
+ sinatra-authorization
14
+
15
+ PATH
16
+ remote: /Users/loneyf/workspace/caruby/core
17
+ specs:
18
+ caruby-core (2.1.3)
19
+ bundler
20
+ jinx (~> 2.1.1)
21
+ jinx-json (~> 2.1.1)
22
+ jinx-migrate (>= 2.1.1)
23
+ rdbi
24
+
25
+ PATH
26
+ remote: /Users/loneyf/workspace/caruby/tissue
27
+ specs:
28
+ caruby-tissue (2.1.5)
29
+ bundler
30
+ caruby-core (>= 2.1.1)
31
+ uom (>= 1.2.2)
32
+
33
+ PATH
34
+ remote: /Users/loneyf/workspace/jinx/core
35
+ specs:
36
+ jinx (2.1.3)
37
+ bundler
38
+
39
+ PATH
40
+ remote: /Users/loneyf/workspace/jinx/json
41
+ specs:
42
+ jinx-json (2.1.2)
43
+ bundler
44
+ jinx
45
+ json_pure
46
+
47
+ GEM
48
+ remote: http://rubygems.org/
49
+ specs:
50
+ addressable (2.2.8)
51
+ bouncy-castle-java (1.5.0146.1)
52
+ builder (3.0.0)
53
+ capybara (1.1.2)
54
+ mime-types (>= 1.16)
55
+ nokogiri (>= 1.3.3)
56
+ rack (>= 1.0.0)
57
+ rack-test (>= 0.5.4)
58
+ selenium-webdriver (~> 2.0)
59
+ xpath (~> 0.1.4)
60
+ childprocess (0.3.2)
61
+ ffi (~> 1.0.6)
62
+ columnize (0.3.6)
63
+ cucumber (1.2.1)
64
+ builder (>= 2.1.2)
65
+ diff-lcs (>= 1.1.3)
66
+ gherkin (~> 2.11.0)
67
+ json (>= 1.4.6)
68
+ diff-lcs (1.1.3)
69
+ epoxy (0.3.1)
70
+ extensional (1.3.1)
71
+ fastercsv (1.5.5)
72
+ ffi (1.0.11-java)
73
+ gherkin (2.11.0-java)
74
+ json (>= 1.4.6)
75
+ haml (3.1.6)
76
+ jinx-migrate (2.1.2)
77
+ bundler
78
+ fastercsv
79
+ rack
80
+ jruby-openssl (0.7.7)
81
+ bouncy-castle-java (>= 1.5.0146.1)
82
+ json (1.7.3-java)
83
+ json_pure (1.7.3)
84
+ launchy (2.1.0-java)
85
+ addressable (~> 2.2.6)
86
+ ffi (~> 1.0.9)
87
+ spoon (~> 0.0.1)
88
+ libwebsocket (0.1.3)
89
+ addressable
90
+ methlab (0.1.0)
91
+ mime-types (1.18)
92
+ multi_json (1.3.6)
93
+ nokogiri (1.5.4-java)
94
+ rack (1.4.1)
95
+ rack-test (0.6.1)
96
+ rack (>= 1.0)
97
+ rake (0.9.2.2)
98
+ rdbi (0.9.1)
99
+ epoxy (>= 0.3.1)
100
+ methlab (>= 0.0.9)
101
+ typelib
102
+ redis (3.0.1)
103
+ redis-store (1.1.1)
104
+ redis (>= 2.2.0)
105
+ rspec (2.10.0)
106
+ rspec-core (~> 2.10.0)
107
+ rspec-expectations (~> 2.10.0)
108
+ rspec-mocks (~> 2.10.0)
109
+ rspec-core (2.10.1)
110
+ rspec-expectations (2.10.0)
111
+ diff-lcs (~> 1.1.3)
112
+ rspec-mocks (2.10.1)
113
+ ruby-debug (0.10.4)
114
+ columnize (>= 0.1)
115
+ ruby-debug-base (~> 0.10.4.0)
116
+ ruby-debug-base (0.10.4-java)
117
+ rubyzip (0.9.9)
118
+ selenium-webdriver (2.22.2)
119
+ childprocess (>= 0.2.5)
120
+ ffi (~> 1.0)
121
+ libwebsocket (~> 0.1.3)
122
+ multi_json (~> 1.0)
123
+ rubyzip
124
+ shotgun (0.9)
125
+ rack (>= 1.0)
126
+ sinatra (1.2.6)
127
+ rack (~> 1.1)
128
+ tilt (>= 1.2.2, < 2.0)
129
+ sinatra-authorization (1.0.0)
130
+ sinatra (>= 0.9.1.1)
131
+ spoon (0.0.1)
132
+ tilt (1.3.3)
133
+ typelib (0.1.0)
134
+ uom (1.2.2)
135
+ extensional
136
+ xpath (0.1.4)
137
+ nokogiri (~> 1.3)
138
+ yard (0.8.2.1)
139
+
140
+ PLATFORMS
141
+ java
142
+
143
+ DEPENDENCIES
144
+ capybara
145
+ caruby-core!
146
+ caruby-scat!
147
+ caruby-tissue!
148
+ cucumber
149
+ jinx!
150
+ jinx-json!
151
+ launchy
152
+ rack-test
153
+ rake
154
+ rspec (>= 2.6)
155
+ ruby-debug
156
+ shotgun
157
+ sinatra (= 1.2.6)
158
+ yard
@@ -0,0 +1,9 @@
1
+ This history lists major release themes. See the git commits for change details.
2
+
3
+ 1.2.1 / 2012-06-18
4
+ ------------------
5
+ * Preserve fields.
6
+
7
+ 1.1.1 / 2012-04-24
8
+ ------------------
9
+ * Initial release.
data/LEGAL ADDED
@@ -0,0 +1,4 @@
1
+ LEGAL NOTICE INFORMATION
2
+ ------------------------
3
+ All the files in this distribution are covered under either the MIT
4
+ license (see the file LICENSE).
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 Oregon Health & Science University
2
+
3
+ Permission is hereby granted, free of charge, to any person
4
+ obtaining a copy of this software and associated documentation
5
+ files (the "Software"), to deal in the Software without
6
+ restriction, including without limitation the rights to use,
7
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the
9
+ Software is furnished to do so, subject to the following
10
+ conditions:
11
+
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,131 @@
1
+ Scat: a _S_imple _caT_issue application
2
+ =============================================
3
+ **Git**: [http://github.com/caruby/scat](http://github.com/caruby/scat)
4
+ **Author**: OHSU Knight Cancer Institute
5
+ **Copyright**: 2012
6
+ **License**: MIT License
7
+
8
+ Synopsis
9
+ --------
10
+ Scat is a light-weight [caRuby Tissue](http://caruby.rubyforge.org/tissue.html) web application.
11
+
12
+ Features
13
+ --------
14
+ 1. Create tissue specimens in caTissue.
15
+
16
+ 2. Create the specimen subject, registration and collection group as necessary.
17
+
18
+ 3. Auto-complete the diagnosis and tissue site.
19
+
20
+ 4. Authorize the user.
21
+
22
+ 5. One small edit page to rule them all.
23
+
24
+ 6. Dynamically responds to tablet and even smartphone devices.
25
+
26
+ 7. Simple edit form configuration.
27
+
28
+ 8. Leverage the [caRuby](http://caruby.rubyforge.org) declarative API.
29
+
30
+ Requirements
31
+ ------------
32
+ The current Scat release requires the caTissue API client and Linux.
33
+
34
+ After installation, the supported caTissue versions are listed by the following command:
35
+
36
+ crtsmoke --version
37
+
38
+ Installation
39
+ ------------
40
+ Scat is installed on a caTissue server as a JRuby gem:
41
+
42
+ sudo jgem install caruby-scat
43
+
44
+ The log file is +/var/log/scat.log+. Ensure that the +/var/log+ directory is writable.
45
+
46
+ Usage
47
+ -----
48
+ 1. Execute +crtscat+ to start Scat.
49
+
50
+ 2. Open a web browser on +http:://+_server_+:4567/+, where _server_ is the name of your server.
51
+
52
+ 3. Scat starts on the specimen edit page. Hover over the edit form entry question mark to
53
+ describe the field. Enter values for each field.
54
+
55
+ 4. Enter five or more letters in the Diagnosis or Tissue Site and wait briefly to
56
+ bring up a list of matching caTissue values.
57
+
58
+ 5. Press the Submit button to create a new specimen.
59
+
60
+ The Diagnosis and Tissue Site term => controlled value matches are cached locally and
61
+ persistently. Subsequent term auto-completion is very fast.
62
+
63
+ Within a session, the first save takes a while to find the Collection Protocol, Site and
64
+ other information. Subsequent saves are faster. Successive creation of new specimens
65
+ for the same patient and pathology report are considerably faster.
66
+
67
+ Customization
68
+ -------------
69
+ Scat is a reference implementation which captures minimal specimen information. Adding
70
+ edit fields is done in a single simple text configuration file.
71
+
72
+ Enhance Scat for your own site as follows:
73
+
74
+ 1. Install [git](http://git-scm.com/) on your workstation if necessary.
75
+
76
+ 2. Install Scat as described in the Installation section above.
77
+
78
+ 3. Make a workspace directory on your workstation.
79
+
80
+ 4. From that directory, execute +git clone git://github.com/caruby/scat.git+
81
+
82
+ 5. Modify the +conf/fields.yaml+ configuration file to add edit fields.
83
+
84
+ 6. Modify the +scat/public/stylesheets/scat.css+ file to change the web display.
85
+
86
+ 7. Add views and routes to this [Sinatra](http://www.sinatrarb.com/) application as you see fit.
87
+
88
+ 8. Run Scat with your changes by executing the following in the workspace +scat+ directory:
89
+
90
+ rackup
91
+
92
+ 9. See your changes by opening a web browser on +http://localhost:4567/+.
93
+
94
+ 11. Change the version number in the +lib/scat/version.rb+ file by appending a branch number,
95
+ e.g. change the base version +1.2.2+ to +1.2.2.1+
96
+
97
+ 10. Package your changes by executing the following:
98
+
99
+ rake gem
100
+
101
+ 11. Copy the resulting gem file to your server.
102
+
103
+ 12. On the server, install the new gem, e.g.:
104
+
105
+ gem install caruby-scat-1.2.2.1.gem
106
+
107
+ You can make your changes public by forking the Scat repository:
108
+
109
+ 1. Register for a [GitHub](https://github.com) account, if you don't already have one.
110
+
111
+ 2. Navigate to the Scat [repository](https://github.com/caruby/scat).
112
+
113
+ 3. Press the Fork button in the upper right.
114
+
115
+ 4. Fork the repository to your GitHub account.
116
+
117
+ 5. Set the git origin in your workstation +scat+ directory, e.g.:
118
+
119
+ git config --replace-all remote.origin.url git@github.com:mygitaccount/scat.git
120
+
121
+ 6. Commit the changes to your local git repository.
122
+
123
+ 7. Push the changes to your fork with the command:
124
+
125
+ git push origin master
126
+
127
+ Your GitHub fork is publicly visible. You can see other Scat forks by searching on the
128
+ term +scat+ in GitHub.
129
+
130
+
131
+
@@ -0,0 +1,41 @@
1
+ require 'fileutils'
2
+ require File.expand_path('version', File.dirname(__FILE__) + '/lib/scat')
3
+
4
+ desc "Default: run all tests"
5
+ task :default => :test
6
+
7
+ desc "Launch Scat"
8
+ task :launch do
9
+ jruby "bin/scat"
10
+ end
11
+
12
+ # the gem name
13
+ GEM = 'caruby-scat'
14
+ GEM_VERSION = Scat::VERSION
15
+
16
+ WINDOWS = (Config::CONFIG['host_os'] =~ /mingw|win32|cygwin/ ? true : false) rescue false
17
+ SUDO = WINDOWS ? '' : 'sudo'
18
+
19
+ desc 'Builds the gem'
20
+ task :gem do
21
+ sh "jgem build #{GEM}.gemspec"
22
+ end
23
+
24
+ desc 'Installs the gem'
25
+ task :install => :gem do
26
+ sh "#{SUDO} jgem install #{GEM}-#{GEM_VERSION}.gem"
27
+ end
28
+
29
+ desc 'Documents the API'
30
+ task :doc do
31
+ FileUtils.rm_rf 'doc/api'
32
+ sh "yardoc"
33
+ end
34
+
35
+ desc 'Runs the specs'
36
+ task :spec do
37
+ Dir['spec/**/*_spec.rb'].each { |f| sh "rspec #{f}" rescue nil }
38
+ end
39
+
40
+ desc 'Runs the tests'
41
+ task :test => :spec
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env jruby
2
+ #
3
+ # scat: Start the Scat web application
4
+ #
5
+
6
+ require 'scat'
7
+ rackup --env production File.dirname(__FILE__) + '../config.ru'
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env jruby
2
+ #
3
+ # scatseed: Create a sample Scat protocol
4
+ #
5
+
6
+ require 'catissue'
7
+ require File.dirname(__FILE__) + '/../test/fixtures/seed'
8
+
9
+ Jinx.logger(:app => 'Scat', :debug => true)
10
+ Scat::Seed.protocol_for('Scat').find(:create)
@@ -0,0 +1,30 @@
1
+ require 'date'
2
+ require File.dirname(__FILE__) + '/lib/scat/version'
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = 'caruby-scat'
6
+ s.summary = 'Simple caTissue web application'
7
+ s.description = s.summary + '. See the home page for more information.'
8
+ s.version = Scat::VERSION
9
+ s.date = Date.today
10
+ s.author = "OHSU"
11
+ s.email = 'caruby.org@gmail.com'
12
+ s.homepage = 'https://github.com/caruby/scat'
13
+ s.require_path = 'lib'
14
+ s.bindir = 'bin'
15
+ s.files = `git ls-files`.split("\n") << 'ext/redis-server'
16
+ s.test_files = `git ls-files features spec test`.split("\n")
17
+ s.executables = `git ls-files bin`.split("\n").map { |f| File.basename(f) }
18
+ s.add_runtime_dependency 'bundler'
19
+ s.add_runtime_dependency 'rack'
20
+ s.add_runtime_dependency 'sinatra'
21
+ s.add_runtime_dependency 'haml'
22
+ s.add_runtime_dependency 'redis'
23
+ s.add_runtime_dependency 'redis-store'
24
+ s.add_runtime_dependency 'jruby-openssl'
25
+ s.add_runtime_dependency 'caruby-small'
26
+ s.add_development_dependency 'yard'
27
+ s.add_development_dependency 'rake'
28
+ s.has_rdoc = 'yard'
29
+ s.license = 'MIT'
30
+ end