caruby-tissue 1.2.2 → 1.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (153) hide show
  1. data/History.txt +4 -0
  2. data/bin/crtdump +11 -3
  3. data/bin/{seed → crtseed} +0 -0
  4. data/conf/annotation/pathology_scg/AdditionalFinding.hbm.xml +19 -0
  5. data/conf/annotation/pathology_scg/BasePathologyAnnotation.hbm.xml +260 -0
  6. data/conf/annotation/pathology_scg/BreastMargin.hbm.xml +21 -0
  7. data/conf/annotation/pathology_scg/BreastMarginInvolved.hbm.xml +15 -0
  8. data/conf/annotation/pathology_scg/BreastMarginUninvolved.hbm.xml +14 -0
  9. data/conf/annotation/pathology_scg/CNSMargin.hbm.xml +19 -0
  10. data/conf/annotation/pathology_scg/CNSMarginLocation.hbm.xml +14 -0
  11. data/conf/annotation/pathology_scg/CarcinomaInSituStatus.hbm.xml +14 -0
  12. data/conf/annotation/pathology_scg/ColorectalLocalExcisionMarginUninvolved.hbm.xml +15 -0
  13. data/conf/annotation/pathology_scg/ColorectalResectedMarginUninvolved.hbm.xml +22 -0
  14. data/conf/annotation/pathology_scg/Cytogenetics.hbm.xml +15 -0
  15. data/conf/annotation/pathology_scg/DeepMelanomaMargin.hbm.xml +16 -0
  16. data/conf/annotation/pathology_scg/Details.hbm.xml +14 -0
  17. data/conf/annotation/pathology_scg/DirectExtensionOfTumor.hbm.xml +14 -0
  18. data/conf/annotation/pathology_scg/DistalMargin.hbm.xml +15 -0
  19. data/conf/annotation/pathology_scg/DistanceFromAnalVerge.hbm.xml +23 -0
  20. data/conf/annotation/pathology_scg/DistantMetastasis.hbm.xml +19 -0
  21. data/conf/annotation/pathology_scg/ExcionalBiopsyMarginUninvolved.hbm.xml +15 -0
  22. data/conf/annotation/pathology_scg/ExcisionalBiopsyColorectalDeepMargin.hbm.xml +15 -0
  23. data/conf/annotation/pathology_scg/ExcisionalBiopsyColorectalLateralOrMucosalMargin.hbm.xml +15 -0
  24. data/conf/annotation/pathology_scg/ExtraprostaticExtension.hbm.xml +20 -0
  25. data/conf/annotation/pathology_scg/ExtraprostaticExtensionTissueSites.hbm.xml +14 -0
  26. data/conf/annotation/pathology_scg/GleasonScore.hbm.xml +16 -0
  27. data/conf/annotation/pathology_scg/HistologicGrade.hbm.xml +16 -0
  28. data/conf/annotation/pathology_scg/HistologicType.hbm.xml +19 -0
  29. data/conf/annotation/pathology_scg/HistologicVariantType.hbm.xml +14 -0
  30. data/conf/annotation/pathology_scg/ImmunoPhenotyping.hbm.xml +16 -0
  31. data/conf/annotation/pathology_scg/Invasion.hbm.xml +16 -0
  32. data/conf/annotation/pathology_scg/KidneyMarginLocation.hbm.xml +15 -0
  33. data/conf/annotation/pathology_scg/KidneyNephrectomyMargin.hbm.xml +19 -0
  34. data/conf/annotation/pathology_scg/LateralMelanomaMargin.hbm.xml +16 -0
  35. data/conf/annotation/pathology_scg/LocalExcisionColorectalDeepMargin.hbm.xml +15 -0
  36. data/conf/annotation/pathology_scg/LocalExcisionColorectalLateralMargin.hbm.xml +20 -0
  37. data/conf/annotation/pathology_scg/LungResectionMargin.hbm.xml +17 -0
  38. data/conf/annotation/pathology_scg/LungResectionMarginsUninvolved.hbm.xml +14 -0
  39. data/conf/annotation/pathology_scg/MacroscopicExtentOfTumor.hbm.xml +14 -0
  40. data/conf/annotation/pathology_scg/MesentricMargin.hbm.xml +15 -0
  41. data/conf/annotation/pathology_scg/MetastasisTissueSite.hbm.xml +15 -0
  42. data/conf/annotation/pathology_scg/Microcalcification.hbm.xml +14 -0
  43. data/conf/annotation/pathology_scg/NottinghamHistologicScore.hbm.xml +17 -0
  44. data/conf/annotation/pathology_scg/OtherResectedOrgans.hbm.xml +15 -0
  45. data/conf/annotation/pathology_scg/PancreasMargin.hbm.xml +20 -0
  46. data/conf/annotation/pathology_scg/PancreasMarginInvolvedByInvasiveCarcinoma.hbm.xml +15 -0
  47. data/conf/annotation/pathology_scg/PancreasMarginUninvolvedByInvasiveCarcinoma.hbm.xml +20 -0
  48. data/conf/annotation/pathology_scg/PathologicalStaging.hbm.xml +16 -0
  49. data/conf/annotation/pathology_scg/PolypConfiguration.hbm.xml +15 -0
  50. data/conf/annotation/pathology_scg/PrimaryTumorStage.hbm.xml +14 -0
  51. data/conf/annotation/pathology_scg/ProstateMarginLocation.hbm.xml +15 -0
  52. data/conf/annotation/pathology_scg/ProximalMargin.hbm.xml +15 -0
  53. data/conf/annotation/pathology_scg/RadialMargin.hbm.xml +15 -0
  54. data/conf/annotation/pathology_scg/RadicalProstatectomyMargin.hbm.xml +20 -0
  55. data/conf/annotation/pathology_scg/RegionalLymphNode.hbm.xml +19 -0
  56. data/conf/annotation/pathology_scg/SatelliteNodule.hbm.xml +14 -0
  57. data/conf/annotation/pathology_scg/SpecimenCollectionGroup.hbm.xml +87 -0
  58. data/conf/annotation/pathology_scg/SpecimenIntegrity.hbm.xml +15 -0
  59. data/conf/annotation/pathology_scg/SpecimenSize.hbm.xml +17 -0
  60. data/conf/annotation/pathology_scg/TissueSide.hbm.xml +14 -0
  61. data/conf/annotation/pathology_scg/TumorSize.hbm.xml +29 -0
  62. data/conf/annotation/pathology_scg/TumorTissueSite.hbm.xml +20 -0
  63. data/conf/annotation/pathology_scg/UninvolvedMelanomaMargin.hbm.xml +15 -0
  64. data/conf/annotation/pathology_specimen/AdditionalFinding.hbm.xml +19 -0
  65. data/conf/annotation/pathology_specimen/AdditionalPathologicFinding.hbm.xml +18 -0
  66. data/conf/annotation/pathology_specimen/Details.hbm.xml +15 -0
  67. data/conf/annotation/pathology_specimen/GleasonScore.hbm.xml +16 -0
  68. data/conf/annotation/pathology_specimen/HistologicGrade.hbm.xml +16 -0
  69. data/conf/annotation/pathology_specimen/HistologicType.hbm.xml +19 -0
  70. data/conf/annotation/pathology_specimen/HistologicVariantType.hbm.xml +14 -0
  71. data/conf/annotation/pathology_specimen/Invasion.hbm.xml +16 -0
  72. data/conf/annotation/pathology_specimen/NottinghamHistologicScore.hbm.xml +17 -0
  73. data/conf/annotation/pathology_specimen/Specimen.hbm.xml +52 -0
  74. data/conf/annotation/pathology_specimen/SpecimenBaseSolidTissuePathologyAnnotation.hbm.xml +73 -0
  75. data/examples/galena/lib/galena/cli/seed.rb +0 -21
  76. data/examples/galena/lib/galena/migration/frozen_shims.rb +6 -5
  77. data/examples/galena/lib/galena/seed/defaults.rb +0 -5
  78. data/{lib → examples/galena/lib}/galena.rb +0 -0
  79. data/lib/catissue/annotation/annotatable.rb +37 -0
  80. data/lib/catissue/annotation/annotatable_class.rb +255 -0
  81. data/lib/catissue/annotation/annotation.rb +49 -0
  82. data/lib/catissue/annotation/annotation_class.rb +277 -0
  83. data/lib/catissue/annotation/annotation_module.rb +77 -0
  84. data/lib/catissue/annotation/hibernate_mapping.rb +46 -0
  85. data/lib/catissue/annotation/proxy.rb +28 -0
  86. data/lib/catissue/annotation/proxy_class.rb +68 -0
  87. data/lib/catissue/cli/migrate.rb +2 -2
  88. data/lib/catissue/cli/smoke.rb +6 -4
  89. data/lib/catissue/database/annotation/annotation_service.rb +75 -61
  90. data/lib/catissue/database/annotation/annotator.rb +17 -76
  91. data/lib/catissue/database/annotation/entity_facade.rb +265 -0
  92. data/lib/catissue/database/annotation/id_generator.rb +62 -0
  93. data/lib/catissue/database/annotation/integration_service.rb +105 -59
  94. data/lib/catissue/database/annotation/reference_writer.rb +150 -0
  95. data/lib/catissue/database/controlled_values.rb +12 -12
  96. data/lib/catissue/database.rb +148 -58
  97. data/lib/catissue/domain/abstract_specimen.rb +40 -14
  98. data/lib/catissue/domain/abstract_specimen_collection_group.rb +1 -3
  99. data/lib/catissue/domain/collection_protocol.rb +13 -5
  100. data/lib/catissue/domain/collection_protocol_event.rb +1 -14
  101. data/lib/catissue/domain/consent_tier_response.rb +2 -0
  102. data/lib/catissue/domain/consent_tier_status.rb +5 -3
  103. data/lib/catissue/domain/container.rb +14 -10
  104. data/lib/catissue/domain/container_position.rb +8 -0
  105. data/lib/catissue/domain/container_type.rb +13 -6
  106. data/lib/catissue/domain/participant.rb +15 -10
  107. data/lib/catissue/domain/site.rb +9 -3
  108. data/lib/catissue/domain/specimen.rb +79 -40
  109. data/lib/catissue/domain/specimen_array.rb +11 -1
  110. data/lib/catissue/domain/specimen_collection_group.rb +79 -41
  111. data/lib/catissue/domain/specimen_event_parameters.rb +5 -8
  112. data/lib/catissue/domain/specimen_position.rb +0 -2
  113. data/lib/catissue/domain/specimen_requirement.rb +1 -1
  114. data/lib/catissue/domain/storage_container.rb +109 -48
  115. data/lib/catissue/domain/storage_type.rb +1 -1
  116. data/lib/catissue/migration/migrator.rb +6 -14
  117. data/lib/catissue/resource.rb +18 -8
  118. data/lib/catissue/util/position.rb +11 -1
  119. data/lib/catissue/util/storable.rb +18 -11
  120. data/lib/catissue/util/storage_type_holder.rb +44 -6
  121. data/lib/catissue/version.rb +1 -1
  122. metadata +86 -35
  123. data/bin/migrate.rb +0 -42
  124. data/bin/seed.rb +0 -43
  125. data/examples/galena/doc/CaTissue/Participant.html +0 -241
  126. data/examples/galena/doc/CaTissue/SpecimenCollectionGroup.html +0 -190
  127. data/examples/galena/doc/CaTissue/StorageContainer.html +0 -179
  128. data/examples/galena/doc/CaTissue/TissueSpecimen.html +0 -320
  129. data/examples/galena/doc/CaTissue.html +0 -93
  130. data/examples/galena/doc/Galena/Seed/Defaults.html +0 -650
  131. data/examples/galena/doc/Galena/Seed.html +0 -203
  132. data/examples/galena/doc/Galena.html +0 -172
  133. data/examples/galena/doc/_index.html +0 -181
  134. data/examples/galena/doc/class_list.html +0 -36
  135. data/examples/galena/doc/css/common.css +0 -1
  136. data/examples/galena/doc/css/full_list.css +0 -53
  137. data/examples/galena/doc/css/style.css +0 -307
  138. data/examples/galena/doc/file.README.html +0 -153
  139. data/examples/galena/doc/file_list.html +0 -38
  140. data/examples/galena/doc/frames.html +0 -13
  141. data/examples/galena/doc/index.html +0 -153
  142. data/examples/galena/doc/js/app.js +0 -202
  143. data/examples/galena/doc/js/full_list.js +0 -149
  144. data/examples/galena/doc/js/jquery.js +0 -154
  145. data/examples/galena/doc/method_list.html +0 -163
  146. data/examples/galena/doc/top-level-namespace.html +0 -112
  147. data/lib/README.html +0 -33
  148. data/lib/catissue/database/annotation/annotatable_service.rb +0 -25
  149. data/lib/catissue/database/annotation/entity_manager.rb +0 -10
  150. data/lib/galena/cli/seed.rb +0 -43
  151. data/lib/galena/migration/filter_shims.rb +0 -43
  152. data/lib/galena/migration/frozen_shims.rb +0 -53
  153. data/lib/galena/seed/defaults.rb +0 -109
@@ -1,307 +0,0 @@
1
- body {
2
- padding: 0 20px;
3
- font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
4
- font-size: 13px;
5
- }
6
- body.frames { padding: 0 5px; }
7
- h1 { font-size: 25px; margin: 1em 0 0.5em; padding-top: 4px; border-top: 1px dotted #d5d5d5; }
8
- h1.noborder { border-top: 0px; margin-top: 0; padding-top: 4px; }
9
- h1.title { margin-bottom: 10px; }
10
- h1.alphaindex { margin-top: 0; font-size: 22px; }
11
- h2 {
12
- padding: 0;
13
- padding-bottom: 3px;
14
- border-bottom: 1px #aaa solid;
15
- font-size: 1.4em;
16
- margin: 1.8em 0 0.5em;
17
- }
18
- h2 small { font-weight: normal; font-size: 0.7em; display: block; float: right; }
19
- .clear { clear: both; }
20
- .inline { display: inline; }
21
- .inline p:first-child { display: inline; }
22
- .docstring h1, .docstring h2, .docstring h3, .docstring h4 { padding: 0; border: 0; border-bottom: 1px dotted #bbb; }
23
- .docstring h1 { font-size: 1.2em; }
24
- .docstring h2 { font-size: 1.1em; }
25
- .docstring h3, .docstring h4 { font-size: 1em; border-bottom: 0; padding-top: 10px; }
26
- .docstring .object_link { font-family: monospace; }
27
-
28
- .note {
29
- color: #222;
30
- -moz-border-radius: 3px; -webkit-border-radius: 3px;
31
- background: #e3e4e3; border: 1px solid #d5d5d5; padding: 7px 10px;
32
- display: block;
33
- }
34
- .note.todo { background: #ffffc5; border-color: #ececaa; }
35
- .note.returns_void { background: #efefef; }
36
- .note.deprecated { background: #ffe5e5; border-color: #e9dada; }
37
- .note.private { background: #ffffc5; border-color: #ececaa; }
38
- .note.title { text-transform: lowercase; padding: 1px 5px; margin-left: 5px; font-size: 0.9em; font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; display: inline; }
39
- h1 .note.title { font-size: 0.5em; font-weight: normal; padding: 3px 5px; position: relative; top: -3px; text-transform: capitalize; }
40
- .note.title.constructor { color: #fff; background: #6a98d6; border-color: #6689d6; }
41
- .note.title.writeonly { color: #fff; background: #45a638; border-color: #2da31d; }
42
- .note.title.readonly { color: #fff; background: #6a98d6; border-color: #6689d6; }
43
- .note.title.private { background: #d5d5d5; border-color: #c5c5c5; }
44
-
45
- h3.inherited {
46
- font-style: italic;
47
- font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
48
- font-weight: normal;
49
- padding: 0;
50
- margin: 0;
51
- margin-top: 12px;
52
- margin-bottom: 3px;
53
- font-size: 13px;
54
- }
55
- p.inherited {
56
- padding: 0;
57
- margin: 0;
58
- margin-left: 25px;
59
- }
60
-
61
- dl.box {
62
- width: 520px;
63
- font-size: 1em;
64
- }
65
- dl.box dt {
66
- float: left;
67
- display: block;
68
- width: 100px;
69
- margin: 0;
70
- text-align: right;
71
- font-weight: bold;
72
- border: 1px solid #aaa;
73
- border-width: 1px 0px 0px 1px;
74
- padding: 6px 0;
75
- padding-right: 10px;
76
- }
77
- dl.box dd {
78
- float: left;
79
- display: block;
80
- width: 380px;
81
- margin: 0;
82
- padding: 6px 0;
83
- padding-right: 20px;
84
- border: 1px solid #aaa;
85
- border-width: 1px 1px 0 0;
86
- }
87
- dl.box .last {
88
- border-bottom: 1px solid #aaa;
89
- }
90
- dl.box .r1 { background: #eee; }
91
-
92
- ul.toplevel { list-style: none; padding-left: 0; font-size: 1.1em; }
93
- #files { padding-left: 15px; font-size: 1.1em; }
94
-
95
- #files { padding: 0; }
96
- #files li { list-style: none; display: inline; padding: 7px 12px; line-height: 35px; }
97
-
98
- dl.constants { margin-left: 40px; }
99
- dl.constants dt { font-weight: bold; font-size: 1.1em; margin-bottom: 5px; }
100
- dl.constants dd { width: 75%; white-space: pre; font-family: monospace; margin-bottom: 18px; }
101
-
102
- .summary_desc { margin-left: 32px; display: block; font-family: sans-serif; }
103
- .summary_desc tt { font-size: 0.9em; }
104
- dl.constants .note { padding: 2px 6px; padding-right: 12px; margin-top: 6px; }
105
- dl.constants .docstring { margin-left: 32px; font-size: 0.9em; font-weight: normal; }
106
- dl.constants .tags { padding-left: 32px; font-size: 0.9em; line-height: 0.8em; }
107
- dl.constants .discussion *:first-child { margin-top: 0; }
108
- dl.constants .discussion *:last-child { margin-bottom: 0; }
109
-
110
- .method_details { border-top: 1px dotted #aaa; margin-top: 15px; padding-top: 0; }
111
- .method_details.first { border: 0; }
112
- p.signature {
113
- font-size: 1.1em; font-weight: normal; font-family: Monaco, Consolas, Courier, monospace;
114
- padding: 6px 10px; margin-top: 18px;
115
- background: #e5e8ff; border: 1px solid #d8d8e5; -moz-border-radius: 3px; -webkit-border-radius: 3px;
116
- }
117
- p.signature tt { font-family: Monaco, Consolas, Courier, monospace; }
118
- p.signature .overload { display: block; }
119
- p.signature .extras { font-weight: normal; font-family: sans-serif; color: #444; font-size: 1em; }
120
- p.signature .aliases { display: block; font-weight: normal; font-size: 0.9em; font-family: sans-serif; margin-top: 0px; color: #555; }
121
- p.signature .aliases .names { font-family: Monaco, Consolas, Courier, monospace; font-weight: bold; color: #000; font-size: 1.2em; }
122
-
123
- .tags h3 { font-size: 1em; margin-bottom: 0; }
124
- .tags ul { margin-top: 5px; padding-left: 30px; list-style: square; }
125
- .tags ul li { margin-bottom: 3px; }
126
- .tags ul .name { font-family: monospace; font-weight: bold; }
127
- .tags ul .note { padding: 3px 6px; }
128
- .tags { margin-bottom: 12px; }
129
-
130
- .tags .examples h3 { margin-bottom: 10px; }
131
- .tags .examples h4 { padding: 0; margin: 0; margin-left: 15px; font-weight: bold; font-size: 0.9em; }
132
-
133
- .tags .overload .overload_item { list-style: none; margin-bottom: 25px; }
134
- .tags .overload .overload_item .signature {
135
- padding: 2px 8px;
136
- background: #e5e8ff; border: 1px solid #d8d8e5; -moz-border-radius: 3px; -webkit-border-radius: 3px;
137
- }
138
- .tags .overload .signature { margin-left: -15px; font-family: monospace; display: block; font-size: 1.1em; }
139
- .tags .overload .docstring { margin-top: 15px; }
140
-
141
- .defines { display: none; }
142
-
143
- #method_missing_details .notice.this { position: relative; top: -8px; color: #888; padding: 0; margin: 0; }
144
-
145
- .showSource { font-size: 0.9em; }
146
- .showSource a:link, .showSource a:visited { text-decoration: none; color: #666; }
147
-
148
- #content a:link, #content a:visited { text-decoration: none; color: #05a; }
149
- #content a:hover { background: #ffffa5; }
150
- .docstring { margin-right: 6em; }
151
-
152
- ul.summary {
153
- list-style: none;
154
- font-family: monospace;
155
- font-size: 1em;
156
- line-height: 1.5em;
157
- }
158
- ul.summary a:link, ul.summary a:visited {
159
- text-decoration: none; font-size: 1.1em;
160
- }
161
- ul.summary li { margin-bottom: 5px; }
162
- .summary .summary_signature {
163
- padding: 1px 10px;
164
- background: #eaeaff; border: 1px solid #dfdfe5;
165
- -moz-border-radius: 3px; -webkit-border-radius: 3px;
166
- }
167
- .summary_signature:hover { background: #eeeeff; cursor: pointer; }
168
- ul.summary.compact li { display: inline; margin-right: 5px; line-height: 2.6em;}
169
- ul.summary.compact .summary_signature { padding: 5px 7px; padding-right: 4px; }
170
- #content .summary_signature:hover a:link,
171
- #content .summary_signature:hover a:visited {
172
- background: transparent;
173
- color: #48f;
174
- }
175
-
176
- p.inherited a { font-family: monospace; font-size: 0.9em; }
177
- p.inherited { word-spacing: 5px; font-size: 1.2em; }
178
-
179
- p.children { font-size: 1.2em; }
180
- p.children a { font-size: 0.9em; }
181
- p.children strong { font-size: 0.8em; }
182
- p.children strong.modules { padding-left: 5px; }
183
-
184
- ul.fullTree { display: none; padding-left: 0; list-style: none; margin-left: 0; margin-bottom: 10px; }
185
- ul.fullTree ul { margin-left: 0; padding-left: 0; list-style: none; }
186
- ul.fullTree li { text-align: center; padding-top: 18px; padding-bottom: 12px; background: url(data:image/gif;base64,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) no-repeat top center; }
187
- ul.fullTree li:first-child { padding-top: 0; background: transparent; }
188
- ul.fullTree li:last-child { padding-bottom: 0; }
189
- .showAll ul.fullTree { display: block; }
190
- .showAll .inheritName { display: none; }
191
-
192
- #search { position: absolute; right: 14px; top: 0px; }
193
- #search a:link, #search a:visited {
194
- display: block; float: left; margin-right: 4px;
195
- padding: 8px 10px; text-decoration: none; color: #05a;
196
- border: 1px solid #d8d8e5;
197
- -moz-border-radius-bottomleft: 3px; -moz-border-radius-bottomright: 3px;
198
- -webkit-border-bottom-left-radius: 3px; -webkit-border-bottom-right-radius: 3px;
199
- background: #eaf0ff;
200
- -webkit-box-shadow: -1px 1px 3px #ddd;
201
- }
202
- #search a:hover { background: #f5faff; color: #06b; }
203
- #search a.active {
204
- background: #568; padding-bottom: 20px; color: #fff; border: 1px solid #457;
205
- -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px;
206
- -webkit-border-top-left-radius: 5px; -webkit-border-top-right-radius: 5px;
207
- }
208
- #search a.inactive { color: #999; }
209
- .frames #search { display: none; }
210
- .inheritanceTree, .toggleDefines { float: right; }
211
-
212
- #menu { font-size: 1.3em; color: #bbb; top: -5px; position: relative; }
213
- #menu .title, #menu a { font-size: 0.7em; }
214
- #menu .title a { font-size: 1em; }
215
- #menu .title { color: #555; }
216
- #menu a:link, #menu a:visited { color: #333; text-decoration: none; border-bottom: 1px dotted #bbd; }
217
- #menu a:hover { color: #05a; }
218
- #menu .noframes { display: none; }
219
- .frames #menu .noframes { display: inline; float: right; }
220
-
221
- #footer { margin-top: 15px; border-top: 1px solid #ccc; text-align: center; padding: 7px 0; color: #999; }
222
- #footer a:link, #footer a:visited { color: #444; text-decoration: none; border-bottom: 1px dotted #bbd; }
223
- #footer a:hover { color: #05a; }
224
-
225
- #listing ul.alpha { font-size: 1.1em; }
226
- #listing ul.alpha { margin: 0; padding: 0; padding-bottom: 10px; list-style: none; }
227
- #listing ul.alpha li.letter { font-size: 1.4em; padding-bottom: 10px; }
228
- #listing ul.alpha ul { margin: 0; padding-left: 15px; }
229
- #listing ul small { color: #666; font-size: 0.7em; }
230
-
231
- li.r1 { background: #f0f0f0; }
232
- li.r2 { background: #fafafa; }
233
-
234
- #search_frame {
235
- z-index: 9999;
236
- background: #fff;
237
- display: none;
238
- position: absolute;
239
- top: 36px;
240
- right: 18px;
241
- width: 500px;
242
- height: 80%;
243
- overflow-y: scroll;
244
- border: 1px solid #999;
245
- border-collapse: collapse;
246
- -webkit-box-shadow: -7px 5px 25px #aaa;
247
- -moz-box-shadow: -7px 5px 25px #aaa;
248
- -moz-border-radius: 2px;
249
- -webkit-border-radius: 2px;
250
- }
251
-
252
- #content ul.summary li.deprecated a:link,
253
- #content ul.summary li.deprecated a:visited { text-decoration: line-through; font-style: italic; }
254
-
255
- #toc {
256
- padding: 20px; padding-right: 30px; border: 1px solid #ddd; float: right; background: #fff; margin-left: 20px; margin-bottom: 20px;
257
- max-width: 300px;
258
- -webkit-box-shadow: -2px 2px 6px #bbb;
259
- -moz-box-shadow: -2px 2px 6px #bbb;
260
- z-index: 5000;
261
- position: relative;
262
- }
263
- #toc.nofloat { float: none; max-width: none; border: none; padding: 0; margin: 20px 0; -webkit-box-shadow: none; -moz-box-shadow: none; }
264
- #toc.nofloat.hidden { padding: 0; background: 0; margin-bottom: 5px; }
265
- #toc .title { margin: 0; }
266
- #toc ol { padding-left: 1.8em; }
267
- #toc li { font-size: 1.1em; line-height: 1.7em; }
268
- #toc > ol > li { font-size: 1.1em; font-weight: bold; }
269
- #toc ol > ol { font-size: 0.9em; }
270
- #toc ol ol > ol { padding-left: 2.3em; }
271
- #toc ol + li { margin-top: 0.3em; }
272
- #toc.hidden { padding: 10px; background: #f6f6f6; -webkit-box-shadow: none; -moz-box-shadow: none; }
273
- #filecontents h1 + #toc.nofloat { margin-top: 0; }
274
-
275
- /* syntax highlighting */
276
- .source_code { display: none; padding: 3px 8px; border-left: 8px solid #ddd; margin-top: 5px; }
277
- #filecontents pre.code, .docstring pre.code, .source_code pre { font-family: monospace; }
278
- #filecontents pre.code, .docstring pre.code { display: block; }
279
- .source_code .lines { padding-right: 12px; color: #555; text-align: right; }
280
- #filecontents pre.code, .docstring pre.code,
281
- .tags .example { padding: 5px 12px; margin-top: 4px; border: 1px solid #eef; background: #f5f5ff; }
282
- pre.code { color: #000; }
283
- pre.code .info.file { color: #555; }
284
- pre.code .val { color: #036A07; }
285
- pre.code .tstring_content,
286
- pre.code .heredoc_beg, pre.code .heredoc_end,
287
- pre.code .qwords_beg, pre.code .qwords_end,
288
- pre.code .tstring, pre.code .dstring { color: #036A07; }
289
- pre.code .fid, pre.code .id.new, pre.code .id.to_s,
290
- pre.code .id.to_sym, pre.code .id.to_f,
291
- pre.code .dot + pre.code .id,
292
- pre.code .id.to_i pre.code .id.each { color: #0085FF; }
293
- pre.code .comment { color: #0066FF; }
294
- pre.code .const, pre.code .constant { color: #585CF6; }
295
- pre.code .symbol { color: #C5060B; }
296
- pre.code .kw,
297
- pre.code .label,
298
- pre.code .id.require,
299
- pre.code .id.extend,
300
- pre.code .id.include { color: #0000FF; }
301
- pre.code .ivar { color: #318495; }
302
- pre.code .gvar,
303
- pre.code .id.backref,
304
- pre.code .id.nth_ref { color: #6D79DE; }
305
- pre.code .regexp, .dregexp { color: #036A07; }
306
- pre.code a { border-bottom: 1px dotted #bbf; }
307
-
@@ -1,153 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
- <head>
5
- <meta name="Content-Type" content="text/html; charset=utf-8" />
6
- <title>Documentation by YARD 0.6.1</title>
7
- <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
8
- <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
9
-
10
- <script type="text/javascript" charset="utf-8">
11
- relpath = '';
12
- if (relpath != '') relpath += '/';
13
- </script>
14
- <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
15
- <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
16
-
17
- </head>
18
- <body>
19
- <script type="text/javascript" charset="utf-8">
20
- if (window.top.frames.main) document.body.className = 'frames';
21
- </script>
22
-
23
- <div id="header">
24
- <div id="menu">
25
-
26
- <a href="_index.html" title="Index">Index</a> &raquo;
27
- <span class="title">File: README</span>
28
-
29
-
30
- <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
31
- </div>
32
-
33
- <div id="search">
34
- <a id="class_list_link" href="#">Class List</a>
35
- <a id="method_list_link" href="#">Method List</a>
36
- <a id ="file_list_link" href="#">File List</a>
37
- </div>
38
-
39
- <div class="clear"></div>
40
- </div>
41
-
42
- <iframe id="search_frame"></iframe>
43
-
44
- <div id="content"><div id='filecontents'><h1>Galena caRuby Tissue example</h1>
45
-
46
- <h2>Synopsis</h2>
47
-
48
- <p>This directory contains the caRuby Tissue example for the hypothetical Galena Cancer Center.
49
- The example files are a useful template for building your own migrator.</p>
50
-
51
- <p>The Galena example demonstrates how to load the content of a custom tissue bank into caTissue.
52
- The use cases illustrate several common migration impediments:</p>
53
-
54
- <ul>
55
- <li>Different terminology than caTissue</li>
56
- <li>Different associations than caTissue</li>
57
- <li>Incomplete input for caTissue</li>
58
- <li>Denormalized input</li>
59
- <li>Inconsistent input</li>
60
- <li>Input data scrubbing</li>
61
- <li>Aliquot inference</li>
62
- <li>Pre-defined caTissue protocol</li>
63
- </ul>
64
-
65
-
66
- <h2>Setup</h2>
67
-
68
- <ol>
69
- <li><p>Run the <code>crtexample --list</code> command to display the Galena example location.</p></li>
70
- <li><p>Copy the example into a location of your choosing.</p></li>
71
- <li><p>Configure a caTissue client to connect to a test caTissue instance, as described in the
72
- caTissue Technical Guide.</p></li>
73
- <li><p>Define the caRuby Tissue access property file as described in the configuration
74
- <a href="how-do-i-configure-caruby-to-work-with-catissue">FAQ</a>.</p></li>
75
- </ol>
76
-
77
-
78
- <h2>Migration</h2>
79
-
80
- <p>The example migration input data resides in the <code>data</code> directory.
81
- Each CSV input file holds one row for each specimen.</p>
82
-
83
- <p>Each example has a field mapping configuration in the <code>conf/migration</code> directory.
84
- For example, the <code>simple.csv</code> input file is migrated into caTissue using the
85
- <code>simple_migration.yaml</code> configuration file.</p>
86
-
87
- <p>Migrate the Galena <code>simple</code> example as follows:</p>
88
-
89
- <ol>
90
- <li><p>Open a console in the copied Galena example location.</p></li>
91
- <li><p>Run the following:</p>
92
-
93
- <p> bin/seed</p>
94
-
95
- <p>This command initializes the administrative objects in the Galena test database,
96
- including the Galena collection protocol, site, cancer center, tissue bank and coordinator.</p></li>
97
- <li><p>Run the following:</p>
98
-
99
- <p> crtmigrate --target TissueSpecimen --mapping conf/migration/simple_fields.yaml data/simple.csv</p>
100
-
101
- <p>This command migrates the CSV record in the <code>simple.csv</code> input file into a caTissue
102
- <code>TissueSpecimen</code> based on the <code>simple_fields.yaml</code> mapping file.
103
- The command will take a couple of minutes to finish, since the less information
104
- you provide caRuby the more it works to fill in the missing bits. In the meantime,
105
- peruse the configuration and data files to see which data are migrated and
106
- where this data ends up in caTissue.</p></li>
107
- <li><p>Open the caTissue application on the test server and verify the content of the
108
- Galena CP collection protocol.</p></li>
109
- </ol>
110
-
111
-
112
- <p>The other examples are run in a similar manner. Each example demonstrates different
113
- features of the caRuby Migration utility as follows:</p>
114
-
115
- <ul>
116
- <li>simple - a good starting point with limited input fields</li>
117
- <li>minimal - the fewest possible input fields without writing custom Ruby shim code</li>
118
- <li>general - lots of input fields, no custom Ruby code</li>
119
- <li>filter - a smattering of custom Ruby shim code to convert input values to caTissue values</li>
120
- <li>frozen - an example demonstrating how to import storage locations</li>
121
- </ul>
122
-
123
-
124
- <p>Try running an example with the <code>--debug</code> flag and look at the <code>log/migration.log</code> file to see
125
- what caRuby is up to behind the scenes (hint: a lot!).</p>
126
-
127
- <h2>Input data</h2>
128
-
129
- <p>The sample Galena Tissue Bank CSV input files hold one row for each specimen.
130
- Common fields are as follows:</p>
131
-
132
- <ul>
133
- <li>MRN - Patient Medical Record Number</li>
134
- <li>Initials - Patient name initials</li>
135
- <li>Frozen? - Flag indicating whether the specimen is frozen</li>
136
- <li>SPN - Surgical Pathology Number</li>
137
- <li>Collection Date - Date the specimen was acquired by the tissue bank</li>
138
- <li>Received Date - Date the specimen was donated by the participant</li>
139
- <li>Quantity - Amount collected</li>
140
- <li>Box - Tissue storage container</li>
141
- <li>X - the tissue box column</li>
142
- <li>Y - the tissue box row</li>
143
- </ul>
144
- </div></div>
145
-
146
- <div id="footer">
147
- Generated on Tue Nov 30 11:09:42 2010 by
148
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
149
- 0.6.1 (ruby-1.8.6).
150
- </div>
151
-
152
- </body>
153
- </html>
@@ -1,38 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
- <html>
4
- <head>
5
- <meta name="Content-Type" content="text/html; charset=utf-8" />
6
- <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
7
- <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
8
- <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
9
- <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
10
- <base id="base_target" target="_parent" />
11
- </head>
12
- <body>
13
- <script type="text/javascript" charset="utf-8">
14
- if (window.top.frames.main) {
15
- document.getElementById('base_target').target = 'main';
16
- document.body.className = 'frames';
17
- }
18
- </script>
19
- <div id="content">
20
- <h1 id="full_list_header">File List</h1>
21
- <div id="nav">
22
- <a target="_self" href="class_list.html">Classes</a> |
23
- <a target="_self" href="method_list.html">Methods</a> |
24
- <a target="_self" href="file_list.html">Files</a>
25
- </div>
26
- <div id="search">Search: <input type="text" /></div>
27
-
28
- <ul id="full_list" class="files">
29
-
30
-
31
- <li class="r1"><a href="index.html" title="README">README</a></li>
32
-
33
-
34
- </ul>
35
- </div>
36
- </body>
37
- </html>
38
-
@@ -1,13 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
3
-
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
- <head>
6
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
7
- <title>Documentation by YARD 0.6.1</title>
8
- </head>
9
- <frameset cols="20%,*">
10
- <frame name="list" src="class_list.html" />
11
- <frame name="main" src="index.html" />
12
- </frameset>
13
- </html>
@@ -1,153 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
- <head>
5
- <meta name="Content-Type" content="text/html; charset=utf-8" />
6
- <title>Documentation by YARD 0.6.1</title>
7
- <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
8
- <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
9
-
10
- <script type="text/javascript" charset="utf-8">
11
- relpath = '';
12
- if (relpath != '') relpath += '/';
13
- </script>
14
- <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
15
- <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
16
-
17
- </head>
18
- <body>
19
- <script type="text/javascript" charset="utf-8">
20
- if (window.top.frames.main) document.body.className = 'frames';
21
- </script>
22
-
23
- <div id="header">
24
- <div id="menu">
25
-
26
- <a href="_index.html" title="Index">Index</a> &raquo;
27
- <span class="title">File: README</span>
28
-
29
-
30
- <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
31
- </div>
32
-
33
- <div id="search">
34
- <a id="class_list_link" href="#">Class List</a>
35
- <a id="method_list_link" href="#">Method List</a>
36
- <a id ="file_list_link" href="#">File List</a>
37
- </div>
38
-
39
- <div class="clear"></div>
40
- </div>
41
-
42
- <iframe id="search_frame"></iframe>
43
-
44
- <div id="content"><div id='filecontents'><h1>Galena caRuby Tissue example</h1>
45
-
46
- <h2>Synopsis</h2>
47
-
48
- <p>This directory contains the caRuby Tissue example for the hypothetical Galena Cancer Center.
49
- The example files are a useful template for building your own migrator.</p>
50
-
51
- <p>The Galena example demonstrates how to load the content of a custom tissue bank into caTissue.
52
- The use cases illustrate several common migration impediments:</p>
53
-
54
- <ul>
55
- <li>Different terminology than caTissue</li>
56
- <li>Different associations than caTissue</li>
57
- <li>Incomplete input for caTissue</li>
58
- <li>Denormalized input</li>
59
- <li>Inconsistent input</li>
60
- <li>Input data scrubbing</li>
61
- <li>Aliquot inference</li>
62
- <li>Pre-defined caTissue protocol</li>
63
- </ul>
64
-
65
-
66
- <h2>Setup</h2>
67
-
68
- <ol>
69
- <li><p>Run the <code>crtexample --list</code> command to display the Galena example location.</p></li>
70
- <li><p>Copy the example into a location of your choosing.</p></li>
71
- <li><p>Configure a caTissue client to connect to a test caTissue instance, as described in the
72
- caTissue Technical Guide.</p></li>
73
- <li><p>Define the caRuby Tissue access property file as described in the configuration
74
- <a href="how-do-i-configure-caruby-to-work-with-catissue">FAQ</a>.</p></li>
75
- </ol>
76
-
77
-
78
- <h2>Migration</h2>
79
-
80
- <p>The example migration input data resides in the <code>data</code> directory.
81
- Each CSV input file holds one row for each specimen.</p>
82
-
83
- <p>Each example has a field mapping configuration in the <code>conf/migration</code> directory.
84
- For example, the <code>simple.csv</code> input file is migrated into caTissue using the
85
- <code>simple_migration.yaml</code> configuration file.</p>
86
-
87
- <p>Migrate the Galena <code>simple</code> example as follows:</p>
88
-
89
- <ol>
90
- <li><p>Open a console in the copied Galena example location.</p></li>
91
- <li><p>Run the following:</p>
92
-
93
- <p> bin/seed</p>
94
-
95
- <p>This command initializes the administrative objects in the Galena test database,
96
- including the Galena collection protocol, site, cancer center, tissue bank and coordinator.</p></li>
97
- <li><p>Run the following:</p>
98
-
99
- <p> crtmigrate --target TissueSpecimen --mapping conf/migration/simple_fields.yaml data/simple.csv</p>
100
-
101
- <p>This command migrates the CSV record in the <code>simple.csv</code> input file into a caTissue
102
- <code>TissueSpecimen</code> based on the <code>simple_fields.yaml</code> mapping file.
103
- The command will take a couple of minutes to finish, since the less information
104
- you provide caRuby the more it works to fill in the missing bits. In the meantime,
105
- peruse the configuration and data files to see which data are migrated and
106
- where this data ends up in caTissue.</p></li>
107
- <li><p>Open the caTissue application on the test server and verify the content of the
108
- Galena CP collection protocol.</p></li>
109
- </ol>
110
-
111
-
112
- <p>The other examples are run in a similar manner. Each example demonstrates different
113
- features of the caRuby Migration utility as follows:</p>
114
-
115
- <ul>
116
- <li>simple - a good starting point with limited input fields</li>
117
- <li>minimal - the fewest possible input fields without writing custom Ruby shim code</li>
118
- <li>general - lots of input fields, no custom Ruby code</li>
119
- <li>filter - a smattering of custom Ruby shim code to convert input values to caTissue values</li>
120
- <li>frozen - an example demonstrating how to import storage locations</li>
121
- </ul>
122
-
123
-
124
- <p>Try running an example with the <code>--debug</code> flag and look at the <code>log/migration.log</code> file to see
125
- what caRuby is up to behind the scenes (hint: a lot!).</p>
126
-
127
- <h2>Input data</h2>
128
-
129
- <p>The sample Galena Tissue Bank CSV input files hold one row for each specimen.
130
- Common fields are as follows:</p>
131
-
132
- <ul>
133
- <li>MRN - Patient Medical Record Number</li>
134
- <li>Initials - Patient name initials</li>
135
- <li>Frozen? - Flag indicating whether the specimen is frozen</li>
136
- <li>SPN - Surgical Pathology Number</li>
137
- <li>Collection Date - Date the specimen was acquired by the tissue bank</li>
138
- <li>Received Date - Date the specimen was donated by the participant</li>
139
- <li>Quantity - Amount collected</li>
140
- <li>Box - Tissue storage container</li>
141
- <li>X - the tissue box column</li>
142
- <li>Y - the tissue box row</li>
143
- </ul>
144
- </div></div>
145
-
146
- <div id="footer">
147
- Generated on Tue Nov 30 11:09:42 2010 by
148
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
149
- 0.6.1 (ruby-1.8.6).
150
- </div>
151
-
152
- </body>
153
- </html>