hquery-patient-api 0.3.0

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.
Files changed (145) hide show
  1. data/.gitignore +6 -0
  2. data/.travis.yml +17 -0
  3. data/Gemfile +14 -0
  4. data/LICENSE +57 -0
  5. data/README.md +34 -0
  6. data/Rakefile +41 -0
  7. data/VERSION +1 -0
  8. data/app/assets/javascripts/allergy.js.coffee +79 -0
  9. data/app/assets/javascripts/caregoal.js.coffee +18 -0
  10. data/app/assets/javascripts/condition.js.coffee +88 -0
  11. data/app/assets/javascripts/core.js.coffee +556 -0
  12. data/app/assets/javascripts/encounter.js.coffee +56 -0
  13. data/app/assets/javascripts/functionalstatus.js.coffee +48 -0
  14. data/app/assets/javascripts/immunization.js.coffee +115 -0
  15. data/app/assets/javascripts/languages.js.coffee +29 -0
  16. data/app/assets/javascripts/medicalequipment.js.coffee +28 -0
  17. data/app/assets/javascripts/medication.js.coffee +280 -0
  18. data/app/assets/javascripts/patient.js.coffee +302 -0
  19. data/app/assets/javascripts/pregnancy.js.coffee +24 -0
  20. data/app/assets/javascripts/procedure.js.coffee +28 -0
  21. data/app/assets/javascripts/provider.js.coffee +55 -0
  22. data/app/assets/javascripts/result.js.coffee +43 -0
  23. data/app/assets/javascripts/socialhistory.js.coffee +40 -0
  24. data/doc/jsdoc-toolkit/README.txt +183 -0
  25. data/doc/jsdoc-toolkit/app/frame.js +33 -0
  26. data/doc/jsdoc-toolkit/app/frame/Chain.js +102 -0
  27. data/doc/jsdoc-toolkit/app/frame/Dumper.js +144 -0
  28. data/doc/jsdoc-toolkit/app/frame/Hash.js +84 -0
  29. data/doc/jsdoc-toolkit/app/frame/Link.js +173 -0
  30. data/doc/jsdoc-toolkit/app/frame/Namespace.js +10 -0
  31. data/doc/jsdoc-toolkit/app/frame/Opt.js +134 -0
  32. data/doc/jsdoc-toolkit/app/frame/Reflection.js +26 -0
  33. data/doc/jsdoc-toolkit/app/frame/String.js +93 -0
  34. data/doc/jsdoc-toolkit/app/frame/Testrun.js +129 -0
  35. data/doc/jsdoc-toolkit/app/handlers/FOODOC.js +26 -0
  36. data/doc/jsdoc-toolkit/app/handlers/XMLDOC.js +26 -0
  37. data/doc/jsdoc-toolkit/app/handlers/XMLDOC/DomReader.js +159 -0
  38. data/doc/jsdoc-toolkit/app/handlers/XMLDOC/XMLDoc.js +16 -0
  39. data/doc/jsdoc-toolkit/app/handlers/XMLDOC/XMLParse.js +292 -0
  40. data/doc/jsdoc-toolkit/app/lib/JSDOC.js +106 -0
  41. data/doc/jsdoc-toolkit/app/lib/JSDOC/DocComment.js +204 -0
  42. data/doc/jsdoc-toolkit/app/lib/JSDOC/DocTag.js +294 -0
  43. data/doc/jsdoc-toolkit/app/lib/JSDOC/JsDoc.js +140 -0
  44. data/doc/jsdoc-toolkit/app/lib/JSDOC/JsPlate.js +109 -0
  45. data/doc/jsdoc-toolkit/app/lib/JSDOC/Lang.js +144 -0
  46. data/doc/jsdoc-toolkit/app/lib/JSDOC/Parser.js +146 -0
  47. data/doc/jsdoc-toolkit/app/lib/JSDOC/PluginManager.js +33 -0
  48. data/doc/jsdoc-toolkit/app/lib/JSDOC/Symbol.js +644 -0
  49. data/doc/jsdoc-toolkit/app/lib/JSDOC/SymbolSet.js +243 -0
  50. data/doc/jsdoc-toolkit/app/lib/JSDOC/TextStream.js +41 -0
  51. data/doc/jsdoc-toolkit/app/lib/JSDOC/Token.js +18 -0
  52. data/doc/jsdoc-toolkit/app/lib/JSDOC/TokenReader.js +332 -0
  53. data/doc/jsdoc-toolkit/app/lib/JSDOC/TokenStream.js +133 -0
  54. data/doc/jsdoc-toolkit/app/lib/JSDOC/Util.js +32 -0
  55. data/doc/jsdoc-toolkit/app/lib/JSDOC/Walker.js +507 -0
  56. data/doc/jsdoc-toolkit/app/main.js +111 -0
  57. data/doc/jsdoc-toolkit/app/plugins/commentSrcJson.js +20 -0
  58. data/doc/jsdoc-toolkit/app/plugins/frameworkPrototype.js +16 -0
  59. data/doc/jsdoc-toolkit/app/plugins/functionCall.js +10 -0
  60. data/doc/jsdoc-toolkit/app/plugins/publishSrcHilite.js +62 -0
  61. data/doc/jsdoc-toolkit/app/plugins/symbolLink.js +10 -0
  62. data/doc/jsdoc-toolkit/app/plugins/tagParamConfig.js +31 -0
  63. data/doc/jsdoc-toolkit/app/plugins/tagSynonyms.js +43 -0
  64. data/doc/jsdoc-toolkit/app/run.js +348 -0
  65. data/doc/jsdoc-toolkit/app/t/TestDoc.js +144 -0
  66. data/doc/jsdoc-toolkit/app/t/runner.js +13 -0
  67. data/doc/jsdoc-toolkit/app/test.js +342 -0
  68. data/doc/jsdoc-toolkit/app/test/addon.js +24 -0
  69. data/doc/jsdoc-toolkit/app/test/anon_inner.js +14 -0
  70. data/doc/jsdoc-toolkit/app/test/augments.js +31 -0
  71. data/doc/jsdoc-toolkit/app/test/augments2.js +26 -0
  72. data/doc/jsdoc-toolkit/app/test/borrows.js +46 -0
  73. data/doc/jsdoc-toolkit/app/test/borrows2.js +23 -0
  74. data/doc/jsdoc-toolkit/app/test/config.js +22 -0
  75. data/doc/jsdoc-toolkit/app/test/constructs.js +18 -0
  76. data/doc/jsdoc-toolkit/app/test/encoding.js +10 -0
  77. data/doc/jsdoc-toolkit/app/test/encoding_other.js +12 -0
  78. data/doc/jsdoc-toolkit/app/test/event.js +54 -0
  79. data/doc/jsdoc-toolkit/app/test/exports.js +14 -0
  80. data/doc/jsdoc-toolkit/app/test/functions_anon.js +39 -0
  81. data/doc/jsdoc-toolkit/app/test/functions_nested.js +33 -0
  82. data/doc/jsdoc-toolkit/app/test/global.js +13 -0
  83. data/doc/jsdoc-toolkit/app/test/globals.js +25 -0
  84. data/doc/jsdoc-toolkit/app/test/ignore.js +10 -0
  85. data/doc/jsdoc-toolkit/app/test/inner.js +16 -0
  86. data/doc/jsdoc-toolkit/app/test/jsdoc_test.js +477 -0
  87. data/doc/jsdoc-toolkit/app/test/lend.js +33 -0
  88. data/doc/jsdoc-toolkit/app/test/memberof.js +19 -0
  89. data/doc/jsdoc-toolkit/app/test/memberof2.js +38 -0
  90. data/doc/jsdoc-toolkit/app/test/memberof3.js +33 -0
  91. data/doc/jsdoc-toolkit/app/test/memberof_constructor.js +17 -0
  92. data/doc/jsdoc-toolkit/app/test/module.js +17 -0
  93. data/doc/jsdoc-toolkit/app/test/multi_methods.js +25 -0
  94. data/doc/jsdoc-toolkit/app/test/name.js +19 -0
  95. data/doc/jsdoc-toolkit/app/test/namespace_nested.js +23 -0
  96. data/doc/jsdoc-toolkit/app/test/nocode.js +13 -0
  97. data/doc/jsdoc-toolkit/app/test/oblit_anon.js +20 -0
  98. data/doc/jsdoc-toolkit/app/test/overview.js +20 -0
  99. data/doc/jsdoc-toolkit/app/test/param_inline.js +37 -0
  100. data/doc/jsdoc-toolkit/app/test/params_optional.js +8 -0
  101. data/doc/jsdoc-toolkit/app/test/prototype.js +17 -0
  102. data/doc/jsdoc-toolkit/app/test/prototype_nested.js +9 -0
  103. data/doc/jsdoc-toolkit/app/test/prototype_oblit.js +13 -0
  104. data/doc/jsdoc-toolkit/app/test/prototype_oblit_constructor.js +24 -0
  105. data/doc/jsdoc-toolkit/app/test/public.js +10 -0
  106. data/doc/jsdoc-toolkit/app/test/scripts/code.js +5 -0
  107. data/doc/jsdoc-toolkit/app/test/scripts/notcode.txt +5 -0
  108. data/doc/jsdoc-toolkit/app/test/shared.js +42 -0
  109. data/doc/jsdoc-toolkit/app/test/shared2.js +2 -0
  110. data/doc/jsdoc-toolkit/app/test/shortcuts.js +22 -0
  111. data/doc/jsdoc-toolkit/app/test/static_this.js +13 -0
  112. data/doc/jsdoc-toolkit/app/test/synonyms.js +31 -0
  113. data/doc/jsdoc-toolkit/app/test/tosource.js +23 -0
  114. data/doc/jsdoc-toolkit/app/test/variable_redefine.js +14 -0
  115. data/doc/jsdoc-toolkit/conf/sample.conf +31 -0
  116. data/doc/jsdoc-toolkit/java/build.xml +36 -0
  117. data/doc/jsdoc-toolkit/java/build_1.4.xml +36 -0
  118. data/doc/jsdoc-toolkit/java/classes/js.jar +0 -0
  119. data/doc/jsdoc-toolkit/java/src/JsDebugRun.java +21 -0
  120. data/doc/jsdoc-toolkit/java/src/JsRun.java +21 -0
  121. data/doc/jsdoc-toolkit/jsdebug.jar +0 -0
  122. data/doc/jsdoc-toolkit/jsrun.jar +0 -0
  123. data/doc/jsdoc-toolkit/jsrun.sh +52 -0
  124. data/doc/jsdoc-toolkit/out/jsdoc/files.html +218 -0
  125. data/doc/jsdoc-toolkit/out/jsdoc/index.html +218 -0
  126. data/doc/jsdoc-toolkit/out/jsdoc/symbols/Patient.html +546 -0
  127. data/doc/jsdoc-toolkit/out/jsdoc/symbols/_global_.html +463 -0
  128. data/doc/jsdoc-toolkit/out/jsdoc/symbols/src/tmp_patient.js.html +89 -0
  129. data/doc/jsdoc-toolkit/templates/jsdoc/allclasses.tmpl +17 -0
  130. data/doc/jsdoc-toolkit/templates/jsdoc/allfiles.tmpl +56 -0
  131. data/doc/jsdoc-toolkit/templates/jsdoc/class.tmpl +649 -0
  132. data/doc/jsdoc-toolkit/templates/jsdoc/index.tmpl +39 -0
  133. data/doc/jsdoc-toolkit/templates/jsdoc/publish.js +201 -0
  134. data/doc/jsdoc-toolkit/templates/jsdoc/static/default.css +162 -0
  135. data/doc/jsdoc-toolkit/templates/jsdoc/static/header.html +2 -0
  136. data/doc/jsdoc-toolkit/templates/jsdoc/static/index.html +19 -0
  137. data/doc/jsdoc-toolkit/templates/jsdoc/symbol.tmpl +35 -0
  138. data/hquery_patientapi.gemspec +14 -0
  139. data/lib/hquery-patient-api.rb +4 -0
  140. data/lib/hquery/engine.rb +4 -0
  141. data/lib/hquery/generator.rb +18 -0
  142. data/test/fixtures/patient/barry_berry.json +466 -0
  143. data/test/test_helper.rb +25 -0
  144. data/test/unit/patient_api_test.rb +178 -0
  145. metadata +193 -0
@@ -0,0 +1,302 @@
1
+ # =require core.js.coffee
2
+ # =require medication.js.coffee
3
+ # =require condition.js.coffee
4
+ # =require encounter.js.coffee
5
+ # =require procedure.js.coffee
6
+ # =require result.js.coffee
7
+ # =require immunization.js.coffee
8
+ # =require allergy.js.coffee
9
+ # =require provider.js.coffee
10
+ # =require languages.js.coffee
11
+ # =require pregnancy.js.coffee
12
+ # =require socialhistory.js.coffee
13
+ # =require caregoal.js.coffee
14
+ # =require medicalequipment.js.coffee
15
+ # =require functionalstatus.js.coffee
16
+
17
+ ###*
18
+ @namespace scoping into the hquery namespace
19
+ ###
20
+ this.hQuery ||= {}
21
+
22
+ ###*
23
+ @class Supports
24
+ @exports Supports as hQuery.Supports
25
+ ###
26
+ class hQuery.Supports
27
+ constructor: (@json) ->
28
+ ###*
29
+ @returns {DateRange}
30
+ ###
31
+ supportDate: -> new hQuery.DateRange @json['supportDate']
32
+
33
+ ###*
34
+ @returns {Person}
35
+ ###
36
+ guardian: -> new hQuery.Person @json['guardian']
37
+
38
+ ###*
39
+ @returns {String}
40
+ ###
41
+ guardianSupportType: -> @json['guardianSupportType']
42
+
43
+ ###*
44
+ @returns {Person}
45
+ ###
46
+ contact: -> new hQuery.Person @json['contact']
47
+
48
+ ###*
49
+ @returns {String}
50
+ ###
51
+ contactSupportType: -> @json['guardianSupportType']
52
+
53
+
54
+ ###*
55
+ @class Representation of a patient
56
+ @augments hQuery.Person
57
+ @exports Patient as hQuery.Patient
58
+ ###
59
+ class hQuery.Patient extends hQuery.Person
60
+ ###*
61
+ @returns {String} containing M or F representing the gender of the patient
62
+ ###
63
+ gender: -> @json['gender']
64
+
65
+ ###*
66
+ @returns {Date} containing the patient's birthdate
67
+ ###
68
+ birthtime: ->
69
+ hQuery.dateFromUtcSeconds @json['birthdate']
70
+
71
+ ###*
72
+ @param (Date) date the date at which the patient age is calculated, defaults to now.
73
+ @returns {number} the patient age in years
74
+ ###
75
+ age: (date = new Date()) ->
76
+ oneDay = 24*60*60*1000;
77
+ oneYear = 365*oneDay;
78
+ return (date.getTime()-this.birthtime().getTime())/oneYear;
79
+
80
+ ###*
81
+ @returns {CodedValue} the domestic partnership status of the patient
82
+ The following HL7 codeset is used:
83
+ A Annulled
84
+ D Divorced
85
+ I Interlocutory
86
+ L Legally separated
87
+ M Married
88
+ P Polygamous
89
+ S Never Married
90
+ T Domestic Partner
91
+ W Widowed
92
+ ###
93
+ maritalStatus: ->
94
+ if @json['maritalStatus']
95
+ return new hQuery.CodedValue @json['maritalStatus']['code'], @json['maritalStatus']['codeSystem']
96
+
97
+ ###*
98
+ @returns {CodedValue} of the spiritual faith affiliation of the patient
99
+ It uses the HL7 codeset. http://www.hl7.org/memonly/downloads/v3edition.cfm#V32008
100
+ ###
101
+ religiousAffiliation: ->
102
+ if @json['religiousAffiliation']
103
+ return new hQuery.CodedValue @json['religiousAffiliation']['code'], @json['religiousAffiliation']['codeSystem']
104
+
105
+ ###*
106
+ @returns {CodedValue} of the race of the patient
107
+ CDC codes: http://phinvads.cdc.gov/vads/ViewCodeSystemConcept.action?oid=2.16.840.1.113883.6.238&code=1000-9
108
+ ###
109
+ race: ->
110
+ if @json['race']
111
+ return new hQuery.CodedValue @json['race']['code'], @json['race']['codeSystem']
112
+
113
+ ###*
114
+ @returns {CodedValue} of the ethnicity of the patient
115
+ CDC codes: http://phinvads.cdc.gov/vads/ViewCodeSystemConcept.action?oid=2.16.840.1.113883.6.238&code=1000-9
116
+ ###
117
+ ethnicity: ->
118
+ if @json['ethnicity']
119
+ return new hQuery.CodedValue @json['ethnicity']['code'], @json['ethnicity']['codeSystem']
120
+
121
+ ###*
122
+ @returns {CodedValue} This is the code specifying the level of confidentiality of the document.
123
+ HL7 Confidentiality Code (2.16.840.1.113883.5.25)
124
+ ###
125
+ confidentiality: ->
126
+ if @json['confidentiality']
127
+ return new hQuery.CodedValue @json['confidentiality']['code'], @json['confidentiality']['codeSystem']
128
+
129
+ ###*
130
+ @returns {Address} of the location where the patient was born
131
+ ###
132
+ birthPlace: ->
133
+ new hQuery.Address @json['birthPlace']
134
+
135
+ ###*
136
+ @returns {Supports} information regarding key support contacts relative to healthcare decisions, including next of kin
137
+ ###
138
+ supports: -> new hQuery.Supports @json['supports']
139
+
140
+ ###*
141
+ @returns {Organization}
142
+ ###
143
+ custodian: -> new hQuery.Organization @json['custodian']
144
+
145
+ ###*
146
+ @returns {Provider} the providers associated with the patient
147
+ ###
148
+ provider: -> new hQuery.Provider @json['provider']
149
+
150
+
151
+ ###*
152
+ @returns {hQuery.CodedEntryList} A list of {@link hQuery.LanguagesSpoken} objects
153
+ Code from http://www.ietf.org/rfc/rfc4646.txt representing the name of the human language
154
+ ###
155
+ languages: ->
156
+ list = new hQuery.CodedEntryList
157
+ if @json['languages']
158
+ for language in @json['languages']
159
+ list.push(new hQuery.Language(language))
160
+ list
161
+
162
+ ###*
163
+ @returns {Boolean} returns true if the patient has died
164
+ ###
165
+ expired: -> @json['expired']
166
+
167
+ ###*
168
+ @returns {Boolean} returns true if the patient participated in a clinical trial
169
+ ###
170
+ clinicalTrialParticipant: -> @json['clinicalTrialParticipant']
171
+
172
+ ###*
173
+ @returns {hQuery.CodedEntryList} A list of {@link hQuery.Encounter} objects
174
+ ###
175
+ encounters: ->
176
+ list = new hQuery.CodedEntryList
177
+ if @json['encounters']
178
+ for encounter in @json['encounters']
179
+ list.pushIfUsable(new hQuery.Encounter(encounter))
180
+ list
181
+
182
+ ###*
183
+ @returns {hQuery.CodedEntryList} A list of {@link Medication} objects
184
+ ###
185
+ medications: ->
186
+ list = new hQuery.CodedEntryList
187
+ if @json['medications']
188
+ for medication in @json['medications']
189
+ list.pushIfUsable(new hQuery.Medication(medication))
190
+ list
191
+
192
+
193
+ ###*
194
+ @returns {hQuery.CodedEntryList} A list of {@link Condition} objects
195
+ ###
196
+ conditions: ->
197
+ list = new hQuery.CodedEntryList
198
+ if @json['conditions']
199
+ for condition in @json['conditions']
200
+ list.pushIfUsable(new hQuery.Condition(condition))
201
+ list
202
+
203
+ ###*
204
+ @returns {hQuery.CodedEntryList} A list of {@link Procedure} objects
205
+ ###
206
+ procedures: ->
207
+ list = new hQuery.CodedEntryList
208
+ if @json['procedures']
209
+ for procedure in @json['procedures']
210
+ list.pushIfUsable(new hQuery.Procedure(procedure))
211
+ list
212
+
213
+ ###*
214
+ @returns {hQuery.CodedEntryList} A list of {@link Result} objects
215
+ ###
216
+ results: ->
217
+ list = new hQuery.CodedEntryList
218
+ if @json['results']
219
+ for result in @json['results']
220
+ list.pushIfUsable(new hQuery.Result(result))
221
+ list
222
+
223
+ ###*
224
+ @returns {hQuery.CodedEntryList} A list of {@link Result} objects
225
+ ###
226
+ vitalSigns: ->
227
+ list = new hQuery.CodedEntryList
228
+ if @json['vital_signs']
229
+ for vital in @json['vital_signs']
230
+ list.pushIfUsable(new hQuery.Result(vital))
231
+ list
232
+
233
+ ###*
234
+ @returns {hQuery.CodedEntryList} A list of {@link Immunization} objects
235
+ ###
236
+ immunizations: ->
237
+ list = new hQuery.CodedEntryList
238
+ if @json['immunizations']
239
+ for immunization in @json['immunizations']
240
+ list.pushIfUsable(new hQuery.Immunization(immunization))
241
+ list
242
+
243
+
244
+ ###*
245
+ @returns {hQuery.CodedEntryList} A list of {@link Allergy} objects
246
+ ###
247
+ allergies: ->
248
+ list = new hQuery.CodedEntryList
249
+ if @json['allergies']
250
+ for allergy in @json['allergies']
251
+ list.pushIfUsable(new hQuery.Allergy(allergy))
252
+ list
253
+
254
+ ###*
255
+ @returns {hQuery.CodedEntryList} A list of {@link Pregnancy} objects
256
+ ###
257
+ pregnancies: ->
258
+ list = new hQuery.CodedEntryList
259
+ if @json['pregnancies']
260
+ for pregnancy in @json['pregnancies']
261
+ list.pushIfUsable(new hQuery.Pregnancy(pregnancy))
262
+ list
263
+
264
+ ###*
265
+ @returns {hQuery.CodedEntryList} A list of {@link Socialhistory} objects
266
+ ###
267
+ socialHistories: ->
268
+ list = new hQuery.CodedEntryList
269
+ if @json['socialhistories']
270
+ for socialhistory in @json['socialhistories']
271
+ list.pushIfUsable(new hQuery.Socialhistory(socialhistory))
272
+ list
273
+
274
+ ###*
275
+ @returns {hQuery.CodedEntryList} A list of {@link CareGoal} objects
276
+ ###
277
+ careGoals: ->
278
+ list = new hQuery.CodedEntryList
279
+ if @json['care_goals']
280
+ for caregoal in @json['care_goals']
281
+ list.pushIfUsable(new hQuery.CareGoal(caregoal))
282
+ list
283
+
284
+ ###*
285
+ @returns {hQuery.CodedEntryList} A list of {@link MedicalEquipment} objects
286
+ ###
287
+ medicalEquipment: ->
288
+ list = new hQuery.CodedEntryList
289
+ if @json['medical_equipment']
290
+ for equipment in @json['medical_equipment']
291
+ list.pushIfUsable(new hQuery.MedicalEquipment(equipment))
292
+ list
293
+
294
+ ###*
295
+ @returns {hQuery.CodedEntryList} A list of {@link FunctionalStatus} objects
296
+ ###
297
+ functionalStatuses: ->
298
+ list = new hQuery.CodedEntryList
299
+ if @json['functional_statuses']
300
+ for fs in @json['functional_statuses']
301
+ list.pushIfUsable(new hQuery.FunctionalStatus(fs))
302
+ list
@@ -0,0 +1,24 @@
1
+ ###*
2
+ @namespace scoping into the hquery namespace
3
+ ###
4
+ this.hQuery ||= {}
5
+
6
+
7
+ # =require core.coffee
8
+ ###*
9
+ This includes information about the patients current and past pregnancy status
10
+ The Coded Entry code system should be SNOMED-CT
11
+ @class
12
+ @augments hQuery.CodedEntry
13
+ @exports Pregnancy as hQuery.Pregnancy
14
+ ###
15
+ class hQuery.Pregnancy extends hQuery.CodedEntry
16
+ constructor: (@json) ->
17
+ super(@json)
18
+
19
+
20
+ ###*
21
+ @returns {String}
22
+ ###
23
+ comment: -> @json['comment']
24
+
@@ -0,0 +1,28 @@
1
+ ###*
2
+ @namespace scoping into the hquery namespace
3
+ ###
4
+ this.hQuery ||= {}
5
+
6
+
7
+ # =require core.coffee
8
+ ###*
9
+ This represents all interventional, surgical, diagnostic, or therapeutic procedures or
10
+ treatments pertinent to the patient.
11
+ @class
12
+ @augments hQuery.CodedEntry
13
+ @exports Procedure as hQuery.Procedure
14
+ ###
15
+ class hQuery.Procedure extends hQuery.CodedEntry
16
+ constructor: (@json) ->
17
+ super(@json)
18
+
19
+ ###*
20
+ @returns {hQuery.Actor} The provider that performed the procedure
21
+ ###
22
+ performer: -> new hQuery.Actor @json['performer']
23
+
24
+ ###*
25
+ @returns {hQuery.CodedValue} A SNOMED code indicating the body site on which the
26
+ procedure was performed
27
+ ###
28
+ site: -> new hQuery.CodedValue @json['site']['code'], @json['site']['codeSystem']
@@ -0,0 +1,55 @@
1
+ ###*
2
+ @namespace scoping into the hquery namespace
3
+ ###
4
+ this.hQuery ||= {}
5
+
6
+
7
+ # =require core.coffee
8
+ ###*
9
+ @class
10
+
11
+ @exports Provider as hQuery.Provider
12
+ ###
13
+ class hQuery.Provider
14
+ constructor: (@json) ->
15
+
16
+ ###*
17
+ @returns {hQuery.Person}
18
+ ###
19
+ providerEntity: -> new hQuery.Person @json['providerEntity']
20
+
21
+ ###*
22
+ @returns {hQuery.DateRange}
23
+ ###
24
+ careProvisionDateRange: -> new hQuery.DateRange @json['careProvisionDateRange']
25
+
26
+ ###*
27
+ @returns {hQuery.CodedValue}
28
+ ###
29
+ role: -> new hQuery.CodedValue @json['role']['code'], @json['role']['codeSystem']
30
+
31
+ ###*
32
+ @returns {String}
33
+ ###
34
+ patientID: -> @json['patientID']
35
+
36
+
37
+ ###*
38
+ @returns {hQuery.CodedValue}
39
+ ###
40
+ providerType: -> new hQuery.CodedValue @json['providerType']['code'], @json['providerType']['codeSystem']
41
+
42
+
43
+ ###*
44
+ @returns {String}
45
+ ###
46
+ providerID: -> @json['providerID']
47
+
48
+ ###*
49
+ @returns {hQuery.Organization}
50
+ ###
51
+ organizationName: -> new hQuery.Organization @json
52
+
53
+
54
+
55
+
@@ -0,0 +1,43 @@
1
+ ###*
2
+ @namespace scoping into the hquery namespace
3
+ ###
4
+ this.hQuery ||= {}
5
+
6
+
7
+ # =require core.coffee
8
+ ###*
9
+ Observations generated by laboratories, imaging procedures, and other procedures. The scope
10
+ includes hematology, chemistry, serology, virology, toxicology, microbiology, plain x-ray,
11
+ ultrasound, CT, MRI, angiography, cardiac echo, nuclear medicine, pathology, and procedure
12
+ observations.
13
+ @class
14
+ @augments hQuery.CodedEntry
15
+ @exports Result as hQuery.Result
16
+ ###
17
+ class hQuery.Result extends hQuery.CodedEntry
18
+ constructor: (@json) ->
19
+ super(@json)
20
+
21
+ ###*
22
+ ASTM CCR defines a restricted set of required result Type codes (see ResultTypeCode in section 7.3
23
+ Summary of CCD value sets), used to categorize a result into one of several commonly accepted values
24
+ (e.g. Hematology, Chemistry, Nuclear Medicine).
25
+ @returns {CodedValue}
26
+ ###
27
+ resultType: -> this.type()
28
+
29
+ ###*
30
+ @returns {CodedValue}
31
+ ###
32
+ interpretation: -> new hQuery.CodedValue @json['interpretation'].code, @json['interpretation'].codeSystem
33
+
34
+ ###*
35
+ @returns {String}
36
+ ###
37
+ referenceRange: -> @json['referenceRange']
38
+
39
+ ###*
40
+ @returns {String}
41
+ ###
42
+ comment: -> @json['comment']
43
+