hqmf2js 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. data/.gitignore +10 -0
  2. data/.travis.yml +17 -0
  3. data/Gemfile +41 -0
  4. data/Gemfile.lock +202 -0
  5. data/README.md +7 -0
  6. data/Rakefile +22 -0
  7. data/VERSION +1 -0
  8. data/app/assets/javascripts/hqmf_util.js.coffee +776 -0
  9. data/app/assets/javascripts/logging_utils.js.coffee +150 -0
  10. data/app/assets/javascripts/patient_api_extension.js.coffee +36 -0
  11. data/app/assets/javascripts/specifics.js.coffee +462 -0
  12. data/bin/hqmf2js.rb +25 -0
  13. data/config/warble.rb +144 -0
  14. data/hqmf2js.gemspec +20 -0
  15. data/lib/config/codes.xml +1935 -0
  16. data/lib/generator/characteristic.js.erb +19 -0
  17. data/lib/generator/codes_to_json.rb +81 -0
  18. data/lib/generator/converter.rb +60 -0
  19. data/lib/generator/data_criteria.js.erb +47 -0
  20. data/lib/generator/derived_data.js.erb +5 -0
  21. data/lib/generator/js.rb +263 -0
  22. data/lib/generator/measure_period.js.erb +18 -0
  23. data/lib/generator/patient_data.js.erb +22 -0
  24. data/lib/generator/population_criteria.js.erb +4 -0
  25. data/lib/generator/precondition.js.erb +14 -0
  26. data/lib/hqmf2js.rb +20 -0
  27. data/lib/hquery/engine.rb +4 -0
  28. data/lib/tasks/codes.rake +12 -0
  29. data/lib/tasks/coffee.rake +15 -0
  30. data/lib/tasks/convert.rake +47 -0
  31. data/lib/tasks/cover_me.rake +8 -0
  32. data/test/fixtures/NQF59New.xml +1047 -0
  33. data/test/fixtures/codes/codes.xls +0 -0
  34. data/test/fixtures/codes/codes.xml +1941 -0
  35. data/test/fixtures/i2b2.xml +305 -0
  36. data/test/fixtures/invalid/missing_id.xml +18 -0
  37. data/test/fixtures/invalid/unknown_criteria_type.xml +16 -0
  38. data/test/fixtures/invalid/unknown_demographic_entry.xml +16 -0
  39. data/test/fixtures/invalid/unknown_population_type.xml +9 -0
  40. data/test/fixtures/invalid/unknown_value_type.xml +18 -0
  41. data/test/fixtures/js/59New.js +366 -0
  42. data/test/fixtures/js/test1.js +356 -0
  43. data/test/fixtures/js/test2.js +366 -0
  44. data/test/fixtures/json/0043.json +6 -0
  45. data/test/fixtures/json/0043_hqmf1.json +1 -0
  46. data/test/fixtures/json/0043_hqmf2.json +172 -0
  47. data/test/fixtures/json/59New.json +1352 -0
  48. data/test/fixtures/patient_api.js +2823 -0
  49. data/test/fixtures/patients/francis_drake.json +1180 -0
  50. data/test/fixtures/patients/larry_vanderman.json +645 -0
  51. data/test/test_helper.rb +58 -0
  52. data/test/unit/codes_to_json_test.rb +38 -0
  53. data/test/unit/effective_date_test.rb +48 -0
  54. data/test/unit/hqmf_from_json_javascript_test.rb +108 -0
  55. data/test/unit/hqmf_javascript_test.rb +175 -0
  56. data/test/unit/library_function_test.rb +553 -0
  57. data/test/unit/specifics_test.rb +757 -0
  58. metadata +183 -0
@@ -0,0 +1,1352 @@
1
+ {
2
+ "id": "foo",
3
+ "hqmf_id": "foo",
4
+ "hqmf_version_number": 1,
5
+ "title": "Sample Quality Measure Document",
6
+ "description": "This is the measure description.",
7
+ "population_criteria": {
8
+ "IPP": {
9
+ "conjunction?": true,
10
+ "type": "IPP",
11
+ "title": "Initial Patient Population",
12
+ "hqmf_id": "IPP",
13
+ "stratification": false,
14
+ "preconditions": [
15
+ {
16
+ "id": null,
17
+ "reference": "ageBetween17and64"
18
+ }
19
+ ]
20
+ },
21
+ "DENOM": {
22
+ "conjunction?": true,
23
+ "type": "DENOM",
24
+ "title": "Denominator",
25
+ "hqmf_id": "DENOM",
26
+ "stratification": false,
27
+ "preconditions": [
28
+ {
29
+ "id": null,
30
+ "reference": null,
31
+ "preconditions": [
32
+ {
33
+ "id": null,
34
+ "reference": null,
35
+ "preconditions": [
36
+ {
37
+ "id": null,
38
+ "reference": "HasDiabetes"
39
+ },
40
+ {
41
+ "id": null,
42
+ "reference": null,
43
+ "preconditions": [
44
+ {
45
+ "id": null,
46
+ "reference": "EDorInpatientEncounter"
47
+ },
48
+ {
49
+ "id": null,
50
+ "reference": "AmbulatoryEncounter"
51
+ }
52
+ ],
53
+ "conjunction_code": "atLeastOneTrue"
54
+ }
55
+ ],
56
+ "conjunction_code": "allTrue"
57
+ },
58
+ {
59
+ "id": null,
60
+ "reference": "DiabetesMedAdministered"
61
+ },
62
+ {
63
+ "id": null,
64
+ "reference": "DiabetesMedIntended"
65
+ },
66
+ {
67
+ "id": null,
68
+ "reference": "DiabetesMedSupplied"
69
+ },
70
+ {
71
+ "id": null,
72
+ "reference": "DiabetesMedOrdered"
73
+ }
74
+ ],
75
+ "conjunction_code": "atLeastOneTrue"
76
+ }
77
+ ]
78
+ },
79
+ "NUMER": {
80
+ "conjunction?": true,
81
+ "type": "NUMER",
82
+ "title": "Numerator",
83
+ "hqmf_id": "NUMER",
84
+ "stratification": false,
85
+ "preconditions": [
86
+ {
87
+ "id": null,
88
+ "reference": "HbA1C"
89
+ }
90
+ ]
91
+ },
92
+ "DENEXCEP": {
93
+ "conjunction?": true,
94
+ "type": "DENEXCEP",
95
+ "title": "Denominator exception",
96
+ "hqmf_id": "DENEXCEP",
97
+ "stratification": false,
98
+ "preconditions": [
99
+ {
100
+ "id": null,
101
+ "reference": null,
102
+ "preconditions": [
103
+ {
104
+ "id": null,
105
+ "reference": "HasPolycysticOvaries"
106
+ },
107
+ {
108
+ "id": null,
109
+ "reference": "HasDiabetes"
110
+ }
111
+ ],
112
+ "conjunction_code": "allTrue"
113
+ },
114
+ {
115
+ "id": null,
116
+ "reference": "HasSteroidInducedDiabetes"
117
+ },
118
+ {
119
+ "id": null,
120
+ "reference": "HasGestationalDiabetes"
121
+ }
122
+ ]
123
+ }
124
+ },
125
+ "data_criteria": {
126
+ "birthdateThirtyYearsBeforeMeasurementPeriod": {
127
+ "title": "Birthdate",
128
+ "standard_category": "individual_characteristic",
129
+ "qds_data_type": "individual_characteristic",
130
+ "children_criteria": [],
131
+ "property": "birthtime",
132
+ "type": "characteristic",
133
+ "definition": "patient_characteristic_birthdate",
134
+ "hard_status": false,
135
+ "negation": false,
136
+ "source_data_criteria": "birthdateThirtyYearsBeforeMeasurementPeriod",
137
+ "inline_code_list": {
138
+ "LOINC": [
139
+ "21112-8"
140
+ ]
141
+ },
142
+ "temporal_references": [
143
+ {
144
+ "type": "SBS",
145
+ "reference": "MeasurePeriod",
146
+ "range": {
147
+ "type": "IVL_PQ",
148
+ "low": {
149
+ "type": "PQ",
150
+ "unit": "a",
151
+ "value": "30",
152
+ "inclusive?": true,
153
+ "derived?": false
154
+ }
155
+ }
156
+ }
157
+ ]
158
+ },
159
+ "birthdateFiftyYearsBeforeMeasurementPeriod": {
160
+ "title": "Birthdate",
161
+ "standard_category": "individual_characteristic",
162
+ "qds_data_type": "individual_characteristic",
163
+ "children_criteria": [],
164
+ "property": "birthtime",
165
+ "type": "characteristic",
166
+ "definition": "patient_characteristic_birthdate",
167
+ "hard_status": false,
168
+ "negation": false,
169
+ "source_data_criteria": "birthdateFiftyYearsBeforeMeasurementPeriod",
170
+ "inline_code_list": {
171
+ "LOINC": [
172
+ "21112-8"
173
+ ]
174
+ },
175
+ "temporal_references": [
176
+ {
177
+ "type": "SBS",
178
+ "reference": "MeasurePeriod",
179
+ "range": {
180
+ "type": "IVL_PQ",
181
+ "low": {
182
+ "type": "PQ",
183
+ "unit": "a",
184
+ "value": "50",
185
+ "inclusive?": true,
186
+ "derived?": false
187
+ }
188
+ }
189
+ }
190
+ ]
191
+ },
192
+ "ageFiftyBeforeMeasurementPeriod": {
193
+ "title": "Age",
194
+ "standard_category": "individual_characteristic",
195
+ "qds_data_type": "individual_characteristic",
196
+ "children_criteria": [],
197
+ "property": "age",
198
+ "type": "characteristic",
199
+ "definition": "patient_characteristic_age",
200
+ "hard_status": false,
201
+ "negation": false,
202
+ "source_data_criteria": "ageFiftyBeforeMeasurementPeriod",
203
+ "value": {
204
+ "type": "IVL_PQ",
205
+ "low": {
206
+ "type": "PQ",
207
+ "unit": "a",
208
+ "value": "50",
209
+ "inclusive?": true,
210
+ "derived?": false
211
+ }
212
+ },
213
+ "inline_code_list": {
214
+ "SNOMED-CT": [
215
+ "424144002"
216
+ ]
217
+ },
218
+ "temporal_references": [
219
+ {
220
+ "type": "SBS",
221
+ "reference": "MeasurePeriod"
222
+ }
223
+ ]
224
+ },
225
+ "ageBetween17and64": {
226
+ "title": "ageBetween17and64",
227
+ "standard_category": "individual_characteristic",
228
+ "qds_data_type": "individual_characteristic",
229
+ "children_criteria": [],
230
+ "property": "age",
231
+ "type": "characteristic",
232
+ "definition": "patient_characteristic_age",
233
+ "hard_status": false,
234
+ "negation": false,
235
+ "source_data_criteria": "ageBetween17and64",
236
+ "value": {
237
+ "type": "IVL_PQ",
238
+ "low": {
239
+ "type": "PQ",
240
+ "unit": "a",
241
+ "value": "17",
242
+ "inclusive?": true,
243
+ "derived?": false
244
+ },
245
+ "high": {
246
+ "type": "PQ",
247
+ "unit": "a",
248
+ "value": "64",
249
+ "inclusive?": true,
250
+ "derived?": false
251
+ }
252
+ },
253
+ "inline_code_list": {
254
+ "SNOMED-CT": [
255
+ "424144002"
256
+ ]
257
+ }
258
+ },
259
+ "ageBetween17and21": {
260
+ "title": "ageBetween17and21",
261
+ "standard_category": "individual_characteristic",
262
+ "qds_data_type": "individual_characteristic",
263
+ "children_criteria": [],
264
+ "property": "age",
265
+ "type": "characteristic",
266
+ "definition": "patient_characteristic_age",
267
+ "hard_status": false,
268
+ "negation": false,
269
+ "source_data_criteria": "ageBetween17and21",
270
+ "value": {
271
+ "type": "IVL_PQ",
272
+ "low": {
273
+ "type": "PQ",
274
+ "unit": "a",
275
+ "value": "17",
276
+ "inclusive?": true,
277
+ "derived?": false
278
+ },
279
+ "high": {
280
+ "type": "PQ",
281
+ "unit": "a",
282
+ "value": "21",
283
+ "inclusive?": true,
284
+ "derived?": false
285
+ }
286
+ },
287
+ "inline_code_list": {
288
+ "SNOMED-CT": [
289
+ "424144002"
290
+ ]
291
+ }
292
+ },
293
+ "ageBetween22and29": {
294
+ "title": "ageBetween22and29",
295
+ "standard_category": "individual_characteristic",
296
+ "qds_data_type": "individual_characteristic",
297
+ "children_criteria": [],
298
+ "property": "age",
299
+ "type": "characteristic",
300
+ "definition": "patient_characteristic_age",
301
+ "hard_status": false,
302
+ "negation": false,
303
+ "source_data_criteria": "ageBetween22and29",
304
+ "value": {
305
+ "type": "IVL_PQ",
306
+ "low": {
307
+ "type": "PQ",
308
+ "unit": "a",
309
+ "value": "22",
310
+ "inclusive?": true,
311
+ "derived?": false
312
+ },
313
+ "high": {
314
+ "type": "PQ",
315
+ "unit": "a",
316
+ "value": "29",
317
+ "inclusive?": true,
318
+ "derived?": false
319
+ }
320
+ },
321
+ "inline_code_list": {
322
+ "SNOMED-CT": [
323
+ "424144002"
324
+ ]
325
+ }
326
+ },
327
+ "ageBetween30and39": {
328
+ "title": "ageBetween30and39",
329
+ "standard_category": "individual_characteristic",
330
+ "qds_data_type": "individual_characteristic",
331
+ "children_criteria": [],
332
+ "property": "age",
333
+ "type": "characteristic",
334
+ "definition": "patient_characteristic_age",
335
+ "hard_status": false,
336
+ "negation": false,
337
+ "source_data_criteria": "ageBetween30and39",
338
+ "value": {
339
+ "type": "IVL_PQ",
340
+ "low": {
341
+ "type": "PQ",
342
+ "unit": "a",
343
+ "value": "30",
344
+ "inclusive?": true,
345
+ "derived?": false
346
+ },
347
+ "high": {
348
+ "type": "PQ",
349
+ "unit": "a",
350
+ "value": "39",
351
+ "inclusive?": true,
352
+ "derived?": false
353
+ }
354
+ },
355
+ "inline_code_list": {
356
+ "SNOMED-CT": [
357
+ "424144002"
358
+ ]
359
+ }
360
+ },
361
+ "ageBetween40and49": {
362
+ "title": "Age",
363
+ "standard_category": "individual_characteristic",
364
+ "qds_data_type": "individual_characteristic",
365
+ "children_criteria": [],
366
+ "property": "age",
367
+ "type": "characteristic",
368
+ "definition": "patient_characteristic_age",
369
+ "hard_status": false,
370
+ "negation": false,
371
+ "source_data_criteria": "ageBetween40and49",
372
+ "value": {
373
+ "type": "IVL_PQ",
374
+ "low": {
375
+ "type": "PQ",
376
+ "unit": "a",
377
+ "value": "40",
378
+ "inclusive?": true,
379
+ "derived?": false
380
+ },
381
+ "high": {
382
+ "type": "PQ",
383
+ "unit": "a",
384
+ "value": "49",
385
+ "inclusive?": true,
386
+ "derived?": false
387
+ }
388
+ },
389
+ "inline_code_list": {
390
+ "SNOMED-CT": [
391
+ "424144002"
392
+ ]
393
+ }
394
+ },
395
+ "ageBetween50and59": {
396
+ "title": "Age",
397
+ "standard_category": "individual_characteristic",
398
+ "qds_data_type": "individual_characteristic",
399
+ "children_criteria": [],
400
+ "property": "age",
401
+ "type": "characteristic",
402
+ "definition": "patient_characteristic_age",
403
+ "hard_status": false,
404
+ "negation": false,
405
+ "source_data_criteria": "ageBetween50and59",
406
+ "value": {
407
+ "type": "IVL_PQ",
408
+ "low": {
409
+ "type": "PQ",
410
+ "unit": "a",
411
+ "value": "50",
412
+ "inclusive?": true,
413
+ "derived?": false
414
+ },
415
+ "high": {
416
+ "type": "PQ",
417
+ "unit": "a",
418
+ "value": "59",
419
+ "inclusive?": true,
420
+ "derived?": false
421
+ }
422
+ },
423
+ "inline_code_list": {
424
+ "SNOMED-CT": [
425
+ "424144002"
426
+ ]
427
+ }
428
+ },
429
+ "ageBetween60and64": {
430
+ "title": "Age",
431
+ "standard_category": "individual_characteristic",
432
+ "qds_data_type": "individual_characteristic",
433
+ "children_criteria": [],
434
+ "property": "age",
435
+ "type": "characteristic",
436
+ "definition": "patient_characteristic_age",
437
+ "hard_status": false,
438
+ "negation": false,
439
+ "source_data_criteria": "ageBetween60and64",
440
+ "value": {
441
+ "type": "IVL_PQ",
442
+ "low": {
443
+ "type": "PQ",
444
+ "unit": "a",
445
+ "value": "60",
446
+ "inclusive?": true,
447
+ "derived?": false
448
+ },
449
+ "high": {
450
+ "type": "PQ",
451
+ "unit": "a",
452
+ "value": "64",
453
+ "inclusive?": true,
454
+ "derived?": false
455
+ }
456
+ },
457
+ "inline_code_list": {
458
+ "SNOMED-CT": [
459
+ "424144002"
460
+ ]
461
+ }
462
+ },
463
+ "dummyAge1": {
464
+ "title": "Age",
465
+ "standard_category": "individual_characteristic",
466
+ "qds_data_type": "individual_characteristic",
467
+ "children_criteria": [],
468
+ "property": "age",
469
+ "type": "characteristic",
470
+ "definition": "patient_characteristic_age",
471
+ "hard_status": false,
472
+ "negation": false,
473
+ "source_data_criteria": "dummyAge1",
474
+ "value": {
475
+ "type": "IVL_PQ",
476
+ "low": {
477
+ "type": "PQ",
478
+ "unit": "a",
479
+ "value": "60",
480
+ "inclusive?": true,
481
+ "derived?": false
482
+ },
483
+ "high": {
484
+ "type": "PQ",
485
+ "unit": "a",
486
+ "value": "64",
487
+ "inclusive?": true,
488
+ "derived?": false
489
+ }
490
+ },
491
+ "effective_time": {
492
+ "type": "IVL_TS",
493
+ "low": {
494
+ "type": "TS",
495
+ "value": "20100101",
496
+ "inclusive?": true,
497
+ "derived?": false
498
+ },
499
+ "high": {
500
+ "type": "TS",
501
+ "value": "20111231",
502
+ "inclusive?": true,
503
+ "derived?": false
504
+ }
505
+ },
506
+ "inline_code_list": {
507
+ "SNOMED-CT": [
508
+ "424144002"
509
+ ]
510
+ }
511
+ },
512
+ "dummyAge2": {
513
+ "title": "Age",
514
+ "standard_category": "individual_characteristic",
515
+ "qds_data_type": "individual_characteristic",
516
+ "children_criteria": [],
517
+ "property": "age",
518
+ "type": "characteristic",
519
+ "definition": "patient_characteristic_age",
520
+ "hard_status": false,
521
+ "negation": false,
522
+ "source_data_criteria": "dummyAge2",
523
+ "value": {
524
+ "type": "IVL_PQ",
525
+ "low": {
526
+ "type": "PQ",
527
+ "unit": "a",
528
+ "value": "60",
529
+ "inclusive?": true,
530
+ "derived?": false
531
+ },
532
+ "high": {
533
+ "type": "PQ",
534
+ "unit": "a",
535
+ "value": "64",
536
+ "inclusive?": true,
537
+ "derived?": false
538
+ }
539
+ },
540
+ "effective_time": {
541
+ "type": "IVL_TS",
542
+ "low": {
543
+ "type": "TS",
544
+ "value": "20100101",
545
+ "inclusive?": true,
546
+ "derived?": false
547
+ }
548
+ },
549
+ "inline_code_list": {
550
+ "SNOMED-CT": [
551
+ "424144002"
552
+ ]
553
+ }
554
+ },
555
+ "genderMale": {
556
+ "title": "Gender",
557
+ "standard_category": "individual_characteristic",
558
+ "qds_data_type": "individual_characteristic",
559
+ "children_criteria": [],
560
+ "property": "gender",
561
+ "type": "characteristic",
562
+ "definition": "patient_characteristic_gender",
563
+ "hard_status": false,
564
+ "negation": false,
565
+ "source_data_criteria": "genderMale",
566
+ "value": {
567
+ "type": "CD",
568
+ "system": "2.16.840.1.113883.5.1",
569
+ "code": "M"
570
+ },
571
+ "inline_code_list": {
572
+ "SNOMED-CT": [
573
+ "263495000"
574
+ ]
575
+ }
576
+ },
577
+ "genderFemale": {
578
+ "title": "Gender",
579
+ "standard_category": "individual_characteristic",
580
+ "qds_data_type": "individual_characteristic",
581
+ "children_criteria": [],
582
+ "property": "gender",
583
+ "type": "characteristic",
584
+ "definition": "patient_characteristic_gender",
585
+ "hard_status": false,
586
+ "negation": false,
587
+ "source_data_criteria": "genderFemale",
588
+ "value": {
589
+ "type": "CD",
590
+ "system": "2.16.840.1.113883.5.1",
591
+ "code": "F"
592
+ },
593
+ "inline_code_list": {
594
+ "SNOMED-CT": [
595
+ "263495000"
596
+ ]
597
+ }
598
+ },
599
+ "EDorInpatientEncounter": {
600
+ "title": "EDorInpatientEncounter",
601
+ "standard_category": "encounter",
602
+ "qds_data_type": "encounter",
603
+ "code_list_id": "2.16.840.1.113883.3.464.1.42",
604
+ "children_criteria": [],
605
+ "type": "encounters",
606
+ "definition": "encounter",
607
+ "hard_status": false,
608
+ "negation": false,
609
+ "source_data_criteria": "EDorInpatientEncounter",
610
+ "effective_time": {
611
+ "type": "IVL_TS",
612
+ "high": {
613
+ "type": "TS",
614
+ "inclusive?": true,
615
+ "derived?": true,
616
+ "expression": "MeasurePeriod.high.add(new PQ(-2,'a'))"
617
+ }
618
+ }
619
+ },
620
+ "AmbulatoryEncounter": {
621
+ "title": "AmbulatoryEncounter",
622
+ "standard_category": "encounter",
623
+ "qds_data_type": "encounter",
624
+ "code_list_id": "2.16.840.1.113883.3.464.1.1142",
625
+ "children_criteria": [],
626
+ "type": "encounters",
627
+ "definition": "encounter",
628
+ "hard_status": false,
629
+ "negation": false,
630
+ "source_data_criteria": "AmbulatoryEncounter",
631
+ "effective_time": {
632
+ "type": "IVL_TS",
633
+ "high": {
634
+ "type": "TS",
635
+ "inclusive?": true,
636
+ "derived?": true,
637
+ "expression": "MeasurePeriod.high.add(new PQ(-2,'a'))"
638
+ }
639
+ }
640
+ },
641
+ "DummyLanguage_Arabic": {
642
+ "title": "Language",
643
+ "standard_category": "individual_characteristic",
644
+ "qds_data_type": "individual_characteristic",
645
+ "children_criteria": [],
646
+ "property": "languages",
647
+ "type": "characteristic",
648
+ "definition": "patient_characteristic_languages",
649
+ "hard_status": false,
650
+ "negation": false,
651
+ "source_data_criteria": "DummyLanguage_Arabic",
652
+ "value": {
653
+ "type": "CD",
654
+ "system": "1.0.639.1",
655
+ "code": "ar"
656
+ },
657
+ "inline_code_list": {
658
+ "SNOMED-CT": [
659
+ "102902016"
660
+ ]
661
+ }
662
+ },
663
+ "DummyMaritalStatus_Divorced": {
664
+ "title": "Marital Status",
665
+ "standard_category": "individual_characteristic",
666
+ "qds_data_type": "individual_characteristic",
667
+ "children_criteria": [],
668
+ "property": "maritalStatus",
669
+ "type": "characteristic",
670
+ "definition": "patient_characteristic_marital_status",
671
+ "hard_status": false,
672
+ "negation": false,
673
+ "source_data_criteria": "DummyMaritalStatus_Divorced",
674
+ "value": {
675
+ "type": "CD",
676
+ "system": "2.16.840.1.113883.5.2",
677
+ "code": "D"
678
+ },
679
+ "inline_code_list": {
680
+ "SNOMED-CT": [
681
+ "125680007"
682
+ ]
683
+ }
684
+ },
685
+ "DummyRace_Latin_American": {
686
+ "title": "Race",
687
+ "standard_category": "individual_characteristic",
688
+ "qds_data_type": "individual_characteristic",
689
+ "children_criteria": [],
690
+ "property": "race",
691
+ "type": "characteristic",
692
+ "definition": "patient_characteristic_race",
693
+ "hard_status": false,
694
+ "negation": false,
695
+ "source_data_criteria": "DummyRace_Latin_American",
696
+ "value": {
697
+ "type": "CD",
698
+ "system": "2.16.840.1.113883.6.238",
699
+ "code": "2178-2"
700
+ },
701
+ "inline_code_list": {
702
+ "SNOMED-CT": [
703
+ "103579009"
704
+ ]
705
+ }
706
+ },
707
+ "DummyProcedureAfterHasDiabetes": {
708
+ "title": "DummyProcedureAfterHasDiabetes",
709
+ "standard_category": "procedure",
710
+ "qds_data_type": "procedure_performed",
711
+ "children_criteria": [],
712
+ "type": "procedures",
713
+ "definition": "procedure",
714
+ "status": "performed",
715
+ "hard_status": false,
716
+ "negation": false,
717
+ "source_data_criteria": "DummyProcedureAfterHasDiabetes",
718
+ "effective_time": {
719
+ "type": "IVL_TS",
720
+ "low": {
721
+ "type": "TS",
722
+ "value": "20100101",
723
+ "inclusive?": true,
724
+ "derived?": false
725
+ },
726
+ "high": {
727
+ "type": "TS",
728
+ "value": "20111231",
729
+ "inclusive?": true,
730
+ "derived?": false
731
+ }
732
+ },
733
+ "inline_code_list": {
734
+ "SNOMED-CT": [
735
+ "127355002"
736
+ ]
737
+ },
738
+ "temporal_references": [
739
+ {
740
+ "type": "SAS",
741
+ "reference": "HasDiabetes",
742
+ "range": {
743
+ "type": "IVL_PQ",
744
+ "high": {
745
+ "type": "PQ",
746
+ "unit": "a",
747
+ "value": "1",
748
+ "inclusive?": true,
749
+ "derived?": false
750
+ }
751
+ }
752
+ }
753
+ ]
754
+ },
755
+ "DummyProcedureBeforeMeasurePeriod": {
756
+ "title": "some kind of procedure",
757
+ "standard_category": "procedure",
758
+ "qds_data_type": "procedure_performed",
759
+ "children_criteria": [],
760
+ "type": "procedures",
761
+ "definition": "procedure",
762
+ "status": "performed",
763
+ "hard_status": false,
764
+ "negation": false,
765
+ "source_data_criteria": "DummyProcedureBeforeMeasurePeriod",
766
+ "effective_time": {
767
+ "type": "IVL_TS",
768
+ "low": {
769
+ "type": "TS",
770
+ "value": "20100101",
771
+ "inclusive?": true,
772
+ "derived?": false
773
+ },
774
+ "high": {
775
+ "type": "TS",
776
+ "value": "20111231",
777
+ "inclusive?": true,
778
+ "derived?": false
779
+ }
780
+ },
781
+ "inline_code_list": {
782
+ "LOINC": [
783
+ "127355002"
784
+ ]
785
+ },
786
+ "temporal_references": [
787
+ {
788
+ "type": "SBS",
789
+ "reference": "MeasurePeriod"
790
+ }
791
+ ]
792
+ },
793
+ "DummyProcedureAfterHasDiabetesAndBeforeEncounter": {
794
+ "title": "some kind of procedure",
795
+ "standard_category": "procedure",
796
+ "qds_data_type": "procedure_performed",
797
+ "children_criteria": [],
798
+ "type": "procedures",
799
+ "definition": "procedure",
800
+ "status": "performed",
801
+ "hard_status": false,
802
+ "negation": false,
803
+ "source_data_criteria": "DummyProcedureAfterHasDiabetesAndBeforeEncounter",
804
+ "effective_time": {
805
+ "type": "IVL_TS",
806
+ "low": {
807
+ "type": "TS",
808
+ "value": "20100101",
809
+ "inclusive?": true,
810
+ "derived?": false
811
+ },
812
+ "high": {
813
+ "type": "TS",
814
+ "value": "20111231",
815
+ "inclusive?": true,
816
+ "derived?": false
817
+ }
818
+ },
819
+ "inline_code_list": {
820
+ "LOINC": [
821
+ "127355002"
822
+ ]
823
+ },
824
+ "temporal_references": [
825
+ {
826
+ "type": "SAS",
827
+ "reference": "HasDiabetes",
828
+ "range": {
829
+ "type": "IVL_PQ",
830
+ "high": {
831
+ "type": "PQ",
832
+ "unit": "a",
833
+ "value": "-1",
834
+ "inclusive?": true,
835
+ "derived?": false
836
+ }
837
+ }
838
+ },
839
+ {
840
+ "type": "SBS",
841
+ "reference": "AmbulatoryEncounter"
842
+ }
843
+ ]
844
+ },
845
+ "DummyProcedureAfterHasDiabetesWithCount": {
846
+ "title": "DummyProcedureAfterHasDiabetesWithCount",
847
+ "standard_category": "procedure",
848
+ "qds_data_type": "procedure_performed",
849
+ "children_criteria": [],
850
+ "type": "procedures",
851
+ "definition": "procedure",
852
+ "status": "performed",
853
+ "hard_status": false,
854
+ "negation": false,
855
+ "source_data_criteria": "DummyProcedureAfterHasDiabetesWithCount",
856
+ "effective_time": {
857
+ "type": "IVL_TS",
858
+ "low": {
859
+ "type": "TS",
860
+ "value": "20100101",
861
+ "inclusive?": true,
862
+ "derived?": false
863
+ },
864
+ "high": {
865
+ "type": "TS",
866
+ "value": "20111231",
867
+ "inclusive?": true,
868
+ "derived?": false
869
+ }
870
+ },
871
+ "inline_code_list": {
872
+ "SNOMED-CT": [
873
+ "127355002"
874
+ ]
875
+ },
876
+ "temporal_references": [
877
+ {
878
+ "type": "SAS",
879
+ "reference": "HasDiabetes",
880
+ "range": {
881
+ "type": "IVL_PQ",
882
+ "high": {
883
+ "type": "PQ",
884
+ "unit": "a",
885
+ "value": "1",
886
+ "inclusive?": true,
887
+ "derived?": false
888
+ }
889
+ }
890
+ }
891
+ ],
892
+ "subset_operators": [
893
+ {
894
+ "type": "SUMMARY",
895
+ "value": {
896
+ "type": "IVL_INT",
897
+ "low": {
898
+ "type": "PQ",
899
+ "value": "2",
900
+ "inclusive?": true,
901
+ "derived?": false
902
+ }
903
+ }
904
+ }
905
+ ]
906
+ },
907
+ "anyDiabetes": {
908
+ "title": "anyDiabetes",
909
+ "standard_category": "",
910
+ "qds_data_type": "",
911
+ "children_criteria": [
912
+ "HasDiabetes",
913
+ "HasGestationalDiabetes",
914
+ "HasSteroidInducedDiabetes"
915
+ ],
916
+ "derivation_operator": "UNION",
917
+ "type": "derived",
918
+ "definition": "derived",
919
+ "hard_status": false,
920
+ "negation": false,
921
+ "source_data_criteria": "anyDiabetes"
922
+ },
923
+ "allDiabetes": {
924
+ "title": "allDiabetes",
925
+ "standard_category": "",
926
+ "qds_data_type": "",
927
+ "children_criteria": [
928
+ "HasDiabetes",
929
+ "HasGestationalDiabetes",
930
+ "HasSteroidInducedDiabetes"
931
+ ],
932
+ "derivation_operator": "XPRODUCT",
933
+ "type": "derived",
934
+ "definition": "derived",
935
+ "hard_status": false,
936
+ "negation": false,
937
+ "source_data_criteria": "allDiabetes"
938
+ },
939
+ "HasDiabetes": {
940
+ "title": "HasDiabetes",
941
+ "standard_category": "diagnosis_condition_problem",
942
+ "qds_data_type": "diagnosis_active",
943
+ "code_list_id": "2.16.840.1.113883.3.464.1.37",
944
+ "children_criteria": [],
945
+ "type": "conditions",
946
+ "definition": "diagnosis",
947
+ "status": "active",
948
+ "hard_status": false,
949
+ "negation": false,
950
+ "source_data_criteria": "HasDiabetes"
951
+ },
952
+ "HasGestationalDiabetes": {
953
+ "title": "HasGestationalDiabetes",
954
+ "standard_category": "diagnosis_condition_problem",
955
+ "qds_data_type": "diagnosis_active",
956
+ "code_list_id": "2.16.840.1.113883.3.464.1.67",
957
+ "children_criteria": [],
958
+ "type": "conditions",
959
+ "definition": "diagnosis",
960
+ "hard_status": false,
961
+ "negation": false,
962
+ "source_data_criteria": "HasGestationalDiabetes",
963
+ "effective_time": {
964
+ "type": "IVL_TS",
965
+ "low": {
966
+ "type": "TS",
967
+ "inclusive?": true,
968
+ "derived?": true,
969
+ "expression": "MeasurePeriod.low"
970
+ },
971
+ "high": {
972
+ "type": "TS",
973
+ "inclusive?": true,
974
+ "derived?": true,
975
+ "expression": "MeasurePeriod.high"
976
+ }
977
+ }
978
+ },
979
+ "HasPolycysticOvaries": {
980
+ "title": "HasPolycysticOvaries",
981
+ "standard_category": "diagnosis_condition_problem",
982
+ "qds_data_type": "diagnosis_active",
983
+ "code_list_id": "2.16.840.1.113883.3.464.1.98",
984
+ "children_criteria": [],
985
+ "type": "conditions",
986
+ "definition": "diagnosis",
987
+ "hard_status": false,
988
+ "negation": false,
989
+ "source_data_criteria": "HasPolycysticOvaries",
990
+ "effective_time": {
991
+ "type": "IVL_TS",
992
+ "low": {
993
+ "type": "TS",
994
+ "inclusive?": true,
995
+ "derived?": true,
996
+ "expression": "MeasurePeriod.low.add(new PQ(-1,'a'))"
997
+ },
998
+ "high": {
999
+ "type": "TS",
1000
+ "inclusive?": true,
1001
+ "derived?": true,
1002
+ "expression": "MeasurePeriod.high"
1003
+ }
1004
+ }
1005
+ },
1006
+ "HasSteroidInducedDiabetes": {
1007
+ "title": "HasSteroidInducedDiabetes",
1008
+ "standard_category": "diagnosis_condition_problem",
1009
+ "qds_data_type": "diagnosis_active",
1010
+ "code_list_id": "2.16.840.1.113883.3.464.1.113",
1011
+ "children_criteria": [],
1012
+ "type": "conditions",
1013
+ "definition": "diagnosis",
1014
+ "hard_status": false,
1015
+ "negation": false,
1016
+ "source_data_criteria": "HasSteroidInducedDiabetes",
1017
+ "effective_time": {
1018
+ "type": "IVL_TS",
1019
+ "low": {
1020
+ "type": "TS",
1021
+ "inclusive?": true,
1022
+ "derived?": true,
1023
+ "expression": "MeasurePeriod.low"
1024
+ },
1025
+ "high": {
1026
+ "type": "TS",
1027
+ "inclusive?": true,
1028
+ "derived?": true,
1029
+ "expression": "MeasurePeriod.high"
1030
+ }
1031
+ }
1032
+ },
1033
+ "HbA1CNotDone": {
1034
+ "title": "HbA1CNotDone",
1035
+ "standard_category": "laboratory_test",
1036
+ "qds_data_type": "laboratory_test",
1037
+ "code_list_id": "2.16.840.1.113883.3.464.1.72",
1038
+ "children_criteria": [],
1039
+ "type": "laboratory_tests",
1040
+ "definition": "laboratory_test",
1041
+ "status": "performed",
1042
+ "hard_status": false,
1043
+ "negation": true,
1044
+ "negation_code_list_id": "1.2.3.4",
1045
+ "source_data_criteria": "HbA1CNotDone"
1046
+ },
1047
+ "HbA1C": {
1048
+ "title": "HbA1C",
1049
+ "standard_category": "laboratory_test",
1050
+ "qds_data_type": "laboratory_test",
1051
+ "code_list_id": "2.16.840.1.113883.3.464.1.72",
1052
+ "children_criteria": [],
1053
+ "type": "laboratory_tests",
1054
+ "definition": "laboratory_test",
1055
+ "status": "performed",
1056
+ "hard_status": false,
1057
+ "negation": false,
1058
+ "source_data_criteria": "HbA1C",
1059
+ "value": {
1060
+ "type": "IVL_PQ",
1061
+ "low": {
1062
+ "type": "PQ",
1063
+ "unit": "%",
1064
+ "value": "9",
1065
+ "inclusive?": true,
1066
+ "derived?": false
1067
+ }
1068
+ }
1069
+ },
1070
+ "DummyInlineCodedResult": {
1071
+ "title": "DummyInlineCodedResult",
1072
+ "standard_category": "laboratory_test",
1073
+ "qds_data_type": "laboratory_test",
1074
+ "code_list_id": "2.16.840.1.113883.3.464.1.72",
1075
+ "children_criteria": [],
1076
+ "type": "laboratory_tests",
1077
+ "definition": "laboratory_test",
1078
+ "status": "performed",
1079
+ "hard_status": false,
1080
+ "negation": false,
1081
+ "source_data_criteria": "DummyInlineCodedResult",
1082
+ "value": {
1083
+ "type": "CD",
1084
+ "system": "1.2.3.4",
1085
+ "code": "xyzzy"
1086
+ }
1087
+ },
1088
+ "DummyExternalCodedResult": {
1089
+ "title": "DummyExternalCodedResult",
1090
+ "standard_category": "laboratory_test",
1091
+ "qds_data_type": "laboratory_test",
1092
+ "code_list_id": "2.16.840.1.113883.3.464.1.72",
1093
+ "children_criteria": [],
1094
+ "type": "laboratory_tests",
1095
+ "definition": "laboratory_test",
1096
+ "status": "performed",
1097
+ "hard_status": false,
1098
+ "negation": false,
1099
+ "source_data_criteria": "DummyExternalCodedResult",
1100
+ "value": {
1101
+ "type": "CD",
1102
+ "code_list_id": "1.2.3.4"
1103
+ }
1104
+ },
1105
+ "moreThanTwoHbA1CTests": {
1106
+ "title": "moreThanTwoHbA1CTests",
1107
+ "standard_category": "laboratory_test",
1108
+ "qds_data_type": "laboratory_test",
1109
+ "code_list_id": "2.16.840.1.113883.3.464.1.72",
1110
+ "children_criteria": [],
1111
+ "type": "laboratory_tests",
1112
+ "definition": "laboratory_test",
1113
+ "status": "performed",
1114
+ "hard_status": false,
1115
+ "negation": false,
1116
+ "source_data_criteria": "moreThanTwoHbA1CTests",
1117
+ "subset_operators": [
1118
+ {
1119
+ "type": "COUNT",
1120
+ "value": {
1121
+ "type": "IVL_INT",
1122
+ "low": {
1123
+ "type": "PQ",
1124
+ "value": "3",
1125
+ "inclusive?": true,
1126
+ "derived?": false
1127
+ }
1128
+ }
1129
+ }
1130
+ ]
1131
+ },
1132
+ "moreThanFourHbA1CTests": {
1133
+ "title": "moreThanFourHbA1CTests",
1134
+ "standard_category": "laboratory_test",
1135
+ "qds_data_type": "laboratory_test",
1136
+ "code_list_id": "2.16.840.1.113883.3.464.1.72",
1137
+ "children_criteria": [],
1138
+ "type": "laboratory_tests",
1139
+ "definition": "laboratory_test",
1140
+ "status": "performed",
1141
+ "hard_status": false,
1142
+ "negation": false,
1143
+ "source_data_criteria": "moreThanFourHbA1CTests",
1144
+ "subset_operators": [
1145
+ {
1146
+ "type": "COUNT",
1147
+ "value": {
1148
+ "type": "IVL_INT",
1149
+ "low": {
1150
+ "type": "PQ",
1151
+ "value": "5",
1152
+ "inclusive?": true,
1153
+ "derived?": false
1154
+ }
1155
+ }
1156
+ }
1157
+ ]
1158
+ },
1159
+ "DiabetesMedAdministered": {
1160
+ "title": "DiabetesMedAdministered",
1161
+ "standard_category": "medication",
1162
+ "qds_data_type": "medication_active",
1163
+ "code_list_id": "2.16.840.1.113883.3.464.1.94",
1164
+ "children_criteria": [],
1165
+ "type": "medications",
1166
+ "definition": "medication",
1167
+ "status": "active",
1168
+ "hard_status": false,
1169
+ "negation": false,
1170
+ "source_data_criteria": "DiabetesMedAdministered",
1171
+ "effective_time": {
1172
+ "type": "IVL_TS",
1173
+ "low": {
1174
+ "type": "TS",
1175
+ "inclusive?": true,
1176
+ "derived?": true,
1177
+ "expression": "MeasurePeriod.low.add(new PQ(-2,'a'))"
1178
+ }
1179
+ }
1180
+ },
1181
+ "DiabetesMedAdministeredFor7Days": {
1182
+ "title": "DiabetesMedAdministered",
1183
+ "standard_category": "medication",
1184
+ "qds_data_type": "medication_active",
1185
+ "code_list_id": "2.16.840.1.113883.3.464.1.94",
1186
+ "children_criteria": [],
1187
+ "type": "medications",
1188
+ "definition": "medication",
1189
+ "status": "active",
1190
+ "hard_status": false,
1191
+ "negation": false,
1192
+ "source_data_criteria": "DiabetesMedAdministered",
1193
+ "field_values" : {
1194
+ "CUMULATIVE_MEDICATION_DURATION" : {
1195
+ "type": "IVL_PQ",
1196
+ "low": {
1197
+ "type": "PQ",
1198
+ "value": 5,
1199
+ "inclusive?": true,
1200
+ "derived?": false
1201
+ },
1202
+ "high": {
1203
+ "type": "PQ",
1204
+ "value": 7,
1205
+ "inclusive?": true,
1206
+ "derived?": false
1207
+ }
1208
+ }
1209
+ },
1210
+ "effective_time": {
1211
+ "type": "IVL_TS",
1212
+ "low": {
1213
+ "type": "TS",
1214
+ "inclusive?": true,
1215
+ "derived?": true,
1216
+ "expression": "MeasurePeriod.low.add(new PQ(-2,'a'))"
1217
+ }
1218
+ }
1219
+ },
1220
+ "DiabetesMedAdministeredFor9Days": {
1221
+ "title": "DiabetesMedAdministered",
1222
+ "standard_category": "medication",
1223
+ "qds_data_type": "medication_active",
1224
+ "code_list_id": "2.16.840.1.113883.3.464.1.94",
1225
+ "children_criteria": [],
1226
+ "type": "medications",
1227
+ "definition": "medication",
1228
+ "status": "active",
1229
+ "hard_status": false,
1230
+ "negation": false,
1231
+ "source_data_criteria": "DiabetesMedAdministered",
1232
+ "field_values" : {
1233
+ "CUMULATIVE_MEDICATION_DURATION" : {
1234
+ "type": "IVL_PQ",
1235
+ "low": {
1236
+ "type": "PQ",
1237
+ "value": 8,
1238
+ "inclusive?": true,
1239
+ "derived?": false
1240
+ },
1241
+ "high": {
1242
+ "type": "PQ",
1243
+ "value": 9,
1244
+ "inclusive?": true,
1245
+ "derived?": false
1246
+ }
1247
+ }
1248
+ },
1249
+ "effective_time": {
1250
+ "type": "IVL_TS",
1251
+ "low": {
1252
+ "type": "TS",
1253
+ "inclusive?": true,
1254
+ "derived?": true,
1255
+ "expression": "MeasurePeriod.low.add(new PQ(-2,'a'))"
1256
+ }
1257
+ }
1258
+ },
1259
+ "DiabetesMedIntended": {
1260
+ "title": "DiabetesMedIntended",
1261
+ "standard_category": "medication",
1262
+ "qds_data_type": "medication_active",
1263
+ "code_list_id": "2.16.840.1.113883.3.464.1.94",
1264
+ "children_criteria": [],
1265
+ "type": "medications",
1266
+ "definition": "medication",
1267
+ "status": "active",
1268
+ "hard_status": false,
1269
+ "negation": false,
1270
+ "source_data_criteria": "DiabetesMedIntended",
1271
+ "effective_time": {
1272
+ "type": "IVL_TS",
1273
+ "high": {
1274
+ "type": "TS",
1275
+ "inclusive?": true,
1276
+ "derived?": true,
1277
+ "expression": "MeasurePeriod.high.add(new PQ(-2,'a'))"
1278
+ }
1279
+ }
1280
+ },
1281
+ "DiabetesMedSupplied": {
1282
+ "title": "DiabetesMedSupplied",
1283
+ "standard_category": "medication",
1284
+ "qds_data_type": "medication_dispensed",
1285
+ "code_list_id": "2.16.840.1.113883.3.464.1.94",
1286
+ "children_criteria": [],
1287
+ "type": "medications",
1288
+ "definition": "medication",
1289
+ "status": "dispensed",
1290
+ "hard_status": false,
1291
+ "negation": false,
1292
+ "source_data_criteria": "DiabetesMedSupplied",
1293
+ "effective_time": {
1294
+ "type": "IVL_TS",
1295
+ "high": {
1296
+ "type": "TS",
1297
+ "inclusive?": true,
1298
+ "derived?": true,
1299
+ "expression": "MeasurePeriod.high.add(new PQ(-2,'a'))"
1300
+ }
1301
+ }
1302
+ },
1303
+ "DiabetesMedOrdered": {
1304
+ "title": "DiabetesMedOrdered",
1305
+ "standard_category": "medication",
1306
+ "qds_data_type": "medication_dispensed",
1307
+ "code_list_id": "2.16.840.1.113883.3.464.1.94",
1308
+ "children_criteria": [],
1309
+ "type": "medications",
1310
+ "definition": "medication",
1311
+ "status": "dispensed",
1312
+ "hard_status": false,
1313
+ "negation": false,
1314
+ "source_data_criteria": "DiabetesMedOrdered",
1315
+ "effective_time": {
1316
+ "type": "IVL_TS",
1317
+ "high": {
1318
+ "type": "TS",
1319
+ "inclusive?": true,
1320
+ "derived?": true,
1321
+ "expression": "MeasurePeriod.high.add(new PQ(-2,'a'))"
1322
+ }
1323
+ }
1324
+ }
1325
+ },
1326
+ "source_data_criteria": {},
1327
+ "populations": [
1328
+ {
1329
+ "IPP": "IPP",
1330
+ "DENOM": "DENOM",
1331
+ "NUMER": "NUMER",
1332
+ "DENEXCEP": "DENEXCEP",
1333
+ "id": "Population1",
1334
+ "title": "Population Criteria Section"
1335
+ }
1336
+ ],
1337
+ "measure_period": {
1338
+ "type": "IVL_TS",
1339
+ "low": {
1340
+ "type": "TS",
1341
+ "value": "20110101",
1342
+ "inclusive?": true,
1343
+ "derived?": false
1344
+ },
1345
+ "high": {
1346
+ "type": "TS",
1347
+ "value": "20111231",
1348
+ "inclusive?": true,
1349
+ "derived?": false
1350
+ }
1351
+ }
1352
+ }