cql_qdm_patientapi 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: a223682b6169cd2d77aee7a38ca3641dfe08b59454fbbf070e6253c0ebe8e252
4
- data.tar.gz: 90844909701048290940079d8ef66189a2debbbf4e3db933e03a599bf4f2314c
2
+ SHA1:
3
+ metadata.gz: 33a7aa24e0f645f52b49e64975b73379aa01bb57
4
+ data.tar.gz: b9bf894f8de2a0ec6fd91f525dbc71c599ca7034
5
5
  SHA512:
6
- metadata.gz: cde1743be206ee2d84dcfd6e5f60edb2751652656679cecaa0c79e609e9fb43d0816844bd709c8e246d0289d1134fd3f6ade97f0df763c6def298ec6b8c93b5c
7
- data.tar.gz: 23d09bee95558466d483c11fb79bda2f2d1e2a5ea2a4d4025b0a316561850042f4ee969a075ba16e886315a1e59ec983160223cbb11647cf51946aa104d55294
6
+ metadata.gz: e713fa97645076726e6e4e42cc8e760fe8d2601239c3c7c3071d535f898b35d1b78dd5bb5d7fe32421ffcc328482fbb4cee2c2e24b01298fe95e583cacf9cf45
7
+ data.tar.gz: c3ed8e6b125f80e01240adb029dce4fbd54f04c2a62a490215ba1a1a6c2269f36ddf22761b507e9e8853c02980bfb87ae7aad7d7dbf0b9fc9f8b2ed40e1daaba
data/.travis.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.2.2
4
+ - 2.3.8
5
5
  before_install:
6
6
  - "sh -e /etc/init.d/xvfb start"
7
7
  before_install: gem install bundler -v 1.15.3
data/Gemfile.lock CHANGED
@@ -1,49 +1,56 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cql_qdm_patientapi (1.3.0)
4
+ cql_qdm_patientapi (1.3.1)
5
5
  coffee-rails (~> 4.1)
6
- rails (~> 4.2)
6
+ rails (>= 4.2, < 6.0)
7
7
  sprockets-rails (~> 2.3)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- actionmailer (4.2.10)
13
- actionpack (= 4.2.10)
14
- actionview (= 4.2.10)
15
- activejob (= 4.2.10)
12
+ actioncable (5.2.1.1)
13
+ actionpack (= 5.2.1.1)
14
+ nio4r (~> 2.0)
15
+ websocket-driver (>= 0.6.1)
16
+ actionmailer (5.2.1.1)
17
+ actionpack (= 5.2.1.1)
18
+ actionview (= 5.2.1.1)
19
+ activejob (= 5.2.1.1)
16
20
  mail (~> 2.5, >= 2.5.4)
17
- rails-dom-testing (~> 1.0, >= 1.0.5)
18
- actionpack (4.2.10)
19
- actionview (= 4.2.10)
20
- activesupport (= 4.2.10)
21
- rack (~> 1.6)
22
- rack-test (~> 0.6.2)
23
- rails-dom-testing (~> 1.0, >= 1.0.5)
21
+ rails-dom-testing (~> 2.0)
22
+ actionpack (5.2.1.1)
23
+ actionview (= 5.2.1.1)
24
+ activesupport (= 5.2.1.1)
25
+ rack (~> 2.0)
26
+ rack-test (>= 0.6.3)
27
+ rails-dom-testing (~> 2.0)
24
28
  rails-html-sanitizer (~> 1.0, >= 1.0.2)
25
- actionview (4.2.10)
26
- activesupport (= 4.2.10)
29
+ actionview (5.2.1.1)
30
+ activesupport (= 5.2.1.1)
27
31
  builder (~> 3.1)
28
- erubis (~> 2.7.0)
29
- rails-dom-testing (~> 1.0, >= 1.0.5)
32
+ erubi (~> 1.4)
33
+ rails-dom-testing (~> 2.0)
30
34
  rails-html-sanitizer (~> 1.0, >= 1.0.3)
31
- activejob (4.2.10)
32
- activesupport (= 4.2.10)
33
- globalid (>= 0.3.0)
34
- activemodel (4.2.10)
35
- activesupport (= 4.2.10)
36
- builder (~> 3.1)
37
- activerecord (4.2.10)
38
- activemodel (= 4.2.10)
39
- activesupport (= 4.2.10)
40
- arel (~> 6.0)
41
- activesupport (4.2.10)
42
- i18n (~> 0.7)
35
+ activejob (5.2.1.1)
36
+ activesupport (= 5.2.1.1)
37
+ globalid (>= 0.3.6)
38
+ activemodel (5.2.1.1)
39
+ activesupport (= 5.2.1.1)
40
+ activerecord (5.2.1.1)
41
+ activemodel (= 5.2.1.1)
42
+ activesupport (= 5.2.1.1)
43
+ arel (>= 9.0)
44
+ activestorage (5.2.1.1)
45
+ actionpack (= 5.2.1.1)
46
+ activerecord (= 5.2.1.1)
47
+ marcel (~> 0.3.1)
48
+ activesupport (5.2.1.1)
49
+ concurrent-ruby (~> 1.0, >= 1.0.2)
50
+ i18n (>= 0.7, < 2)
43
51
  minitest (~> 5.1)
44
- thread_safe (~> 0.3, >= 0.3.4)
45
52
  tzinfo (~> 1.1)
46
- arel (6.0.4)
53
+ arel (9.0.0)
47
54
  builder (3.2.3)
48
55
  bundler-audit (0.6.0)
49
56
  bundler (~> 1.2)
@@ -55,53 +62,58 @@ GEM
55
62
  coffee-script-source
56
63
  execjs
57
64
  coffee-script-source (1.12.2)
58
- concurrent-ruby (1.0.5)
59
- crass (1.0.2)
60
- erubis (2.7.0)
65
+ concurrent-ruby (1.1.3)
66
+ crass (1.0.4)
67
+ erubi (1.7.1)
61
68
  execjs (2.7.0)
62
69
  globalid (0.4.1)
63
70
  activesupport (>= 4.2.0)
64
- i18n (0.9.1)
71
+ i18n (1.1.1)
65
72
  concurrent-ruby (~> 1.0)
66
- loofah (2.2.2)
73
+ loofah (2.2.3)
67
74
  crass (~> 1.0.2)
68
75
  nokogiri (>= 1.5.9)
69
76
  mail (2.7.1)
70
77
  mini_mime (>= 0.1.1)
78
+ marcel (0.3.3)
79
+ mimemagic (~> 0.3.2)
80
+ method_source (0.9.2)
81
+ mimemagic (0.3.2)
71
82
  mini_mime (1.0.1)
72
83
  mini_portile2 (2.3.0)
73
- minitest (5.10.3)
84
+ minitest (5.11.3)
85
+ nio4r (2.3.1)
74
86
  nokogiri (1.8.5)
75
87
  mini_portile2 (~> 2.3.0)
76
88
  phantomjs (2.1.1.0)
77
- rack (1.6.8)
78
- rack-test (0.6.3)
79
- rack (>= 1.0)
80
- rails (4.2.10)
81
- actionmailer (= 4.2.10)
82
- actionpack (= 4.2.10)
83
- actionview (= 4.2.10)
84
- activejob (= 4.2.10)
85
- activemodel (= 4.2.10)
86
- activerecord (= 4.2.10)
87
- activesupport (= 4.2.10)
88
- bundler (>= 1.3.0, < 2.0)
89
- railties (= 4.2.10)
90
- sprockets-rails
91
- rails-deprecated_sanitizer (1.0.3)
92
- activesupport (>= 4.2.0.alpha)
93
- rails-dom-testing (1.0.8)
94
- activesupport (>= 4.2.0.beta, < 5.0)
95
- nokogiri (~> 1.6)
96
- rails-deprecated_sanitizer (>= 1.0.1)
89
+ rack (2.0.6)
90
+ rack-test (1.1.0)
91
+ rack (>= 1.0, < 3)
92
+ rails (5.2.1.1)
93
+ actioncable (= 5.2.1.1)
94
+ actionmailer (= 5.2.1.1)
95
+ actionpack (= 5.2.1.1)
96
+ actionview (= 5.2.1.1)
97
+ activejob (= 5.2.1.1)
98
+ activemodel (= 5.2.1.1)
99
+ activerecord (= 5.2.1.1)
100
+ activestorage (= 5.2.1.1)
101
+ activesupport (= 5.2.1.1)
102
+ bundler (>= 1.3.0)
103
+ railties (= 5.2.1.1)
104
+ sprockets-rails (>= 2.0.0)
105
+ rails-dom-testing (2.0.3)
106
+ activesupport (>= 4.2.0)
107
+ nokogiri (>= 1.6)
97
108
  rails-html-sanitizer (1.0.4)
98
109
  loofah (~> 2.2, >= 2.2.2)
99
- railties (4.2.10)
100
- actionpack (= 4.2.10)
101
- activesupport (= 4.2.10)
110
+ railties (5.2.1.1)
111
+ actionpack (= 5.2.1.1)
112
+ activesupport (= 5.2.1.1)
113
+ method_source
102
114
  rake (>= 0.8.7)
103
- thor (>= 0.18.1, < 2.0)
104
- rake (12.2.1)
115
+ thor (>= 0.19.0, < 2.0)
116
+ rake (12.3.1)
105
117
  sprockets (3.7.2)
106
118
  concurrent-ruby (~> 1.0)
107
119
  rack (> 1, < 3)
@@ -113,10 +125,13 @@ GEM
113
125
  railties (>= 3.2.5, < 6)
114
126
  teaspoon-jasmine (2.3.4)
115
127
  teaspoon (>= 1.0.0)
116
- thor (0.20.0)
128
+ thor (0.20.3)
117
129
  thread_safe (0.3.6)
118
- tzinfo (1.2.4)
130
+ tzinfo (1.2.5)
119
131
  thread_safe (~> 0.1)
132
+ websocket-driver (0.7.0)
133
+ websocket-extensions (>= 0.1.0)
134
+ websocket-extensions (0.1.3)
120
135
 
121
136
  PLATFORMS
122
137
  ruby
@@ -128,4 +143,4 @@ DEPENDENCIES
128
143
  teaspoon-jasmine (= 2.3.4)
129
144
 
130
145
  BUNDLED WITH
131
- 1.16.2
146
+ 1.16.6
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
  spec.license = "Apache-2.0"
21
21
 
22
- spec.add_dependency 'rails', '~> 4.2'
22
+ spec.add_dependency 'rails', '>= 4.2', '< 6.0'
23
23
  spec.add_dependency 'coffee-rails', '~> 4.1'
24
24
  spec.add_dependency 'sprockets-rails', '~> 2.3'
25
25
  end
@@ -1,3 +1,3 @@
1
1
  module CqlQdmPatientapi
2
- VERSION = "1.3.0"
2
+ VERSION = "1.3.1"
3
3
  end
@@ -584,7 +584,8 @@
584
584
  },{"./clinical":5,"./datetime":7,"./interval":9,"./logic":10,"./uncertainty":11}],7:[function(require,module,exports){
585
585
  // Generated by CoffeeScript 1.12.7
586
586
  (function() {
587
- var Date, DateTime, Uncertainty, cqlFormatStringToMomentFormatString, daysInMonth, getTimezoneSeparatorFromString, isValidDateStringFormat, isValidDateTimeStringFormat, jsDate, moment, normalizeMillisecondsField, normalizeMillisecondsFieldInString, ref;
587
+ var Date, DateTime, Uncertainty, cqlFormatStringToMomentFormatString, daysInMonth, getTimezoneSeparatorFromString, isValidDateStringFormat, isValidDateTimeStringFormat, jsDate, moment, normalizeMillisecondsField, normalizeMillisecondsFieldInString, ref,
588
+ indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
588
589
 
589
590
  Uncertainty = require('./uncertainty').Uncertainty;
590
591
 
@@ -937,6 +938,32 @@
937
938
  };
938
939
 
939
940
  DateTime.prototype.toString = function() {
941
+ if (this.isTime()) {
942
+ return this.toStringTime();
943
+ } else {
944
+ return this.toStringDateTime();
945
+ }
946
+ };
947
+
948
+ DateTime.prototype.toStringTime = function() {
949
+ var str;
950
+ str = 'T';
951
+ if (this.hour != null) {
952
+ str += +this._pad(this.hour);
953
+ if (this.minute != null) {
954
+ str += ':' + this._pad(this.minute);
955
+ if (this.second != null) {
956
+ str += ':' + this._pad(this.second);
957
+ if (this.millisecond != null) {
958
+ str += '.' + String("00" + this.millisecond).slice(-3);
959
+ }
960
+ }
961
+ }
962
+ }
963
+ return str;
964
+ };
965
+
966
+ DateTime.prototype.toStringDateTime = function() {
940
967
  var offsetHours, offsetMin, str;
941
968
  str = '';
942
969
  if (this.year != null) {
@@ -970,6 +997,10 @@
970
997
  return str;
971
998
  };
972
999
 
1000
+ DateTime.prototype.getDateTime = function() {
1001
+ return this;
1002
+ };
1003
+
973
1004
  DateTime.prototype.getDate = function() {
974
1005
  return new Date(this.year, this.month, this.day);
975
1006
  };
@@ -1280,12 +1311,18 @@
1280
1311
 
1281
1312
  DateTime.prototype.isMorePrecise = Date.prototype.isMorePrecise = function(other) {
1282
1313
  var field, i, len, ref1;
1283
- ref1 = this.constructor.FIELDS;
1284
- for (i = 0, len = ref1.length; i < len; i++) {
1285
- field = ref1[i];
1286
- if ((other[field] != null) && (this[field] == null)) {
1314
+ if (typeof other === 'string' && indexOf.call(this.constructor.FIELDS, other) >= 0) {
1315
+ if (this[other] == null) {
1287
1316
  return false;
1288
1317
  }
1318
+ } else {
1319
+ ref1 = this.constructor.FIELDS;
1320
+ for (i = 0, len = ref1.length; i < len; i++) {
1321
+ field = ref1[i];
1322
+ if ((other[field] != null) && (this[field] == null)) {
1323
+ return false;
1324
+ }
1325
+ }
1289
1326
  }
1290
1327
  return !this.isSamePrecision(other);
1291
1328
  };
@@ -1296,6 +1333,9 @@
1296
1333
 
1297
1334
  DateTime.prototype.isSamePrecision = Date.prototype.isSamePrecision = function(other) {
1298
1335
  var field, i, len, ref1;
1336
+ if (typeof other === 'string' && indexOf.call(this.constructor.FIELDS, other) >= 0) {
1337
+ return other === this.getPrecision();
1338
+ }
1299
1339
  ref1 = this.constructor.FIELDS;
1300
1340
  for (i = 0, len = ref1.length; i < len; i++) {
1301
1341
  field = ref1[i];
@@ -2100,6 +2140,13 @@
2100
2140
  }
2101
2141
  };
2102
2142
 
2143
+ Interval.prototype.toString = function() {
2144
+ var end, start;
2145
+ start = this.lowClosed ? '[' : '(';
2146
+ end = this.highClosed ? ']' : ')';
2147
+ return start + this.low.toString() + ', ' + this.high.toString() + end;
2148
+ };
2149
+
2103
2150
  return Interval;
2104
2151
 
2105
2152
  })();
@@ -3594,6 +3641,9 @@
3594
3641
  var date1, date2, ref, result;
3595
3642
  ref = this.execArgs(ctx), date1 = ref[0], date2 = ref[1];
3596
3643
  if ((date1 != null) && (date2 != null)) {
3644
+ if (date2.isDate && date1.isDateTime) {
3645
+ date1 = date1.getDate();
3646
+ }
3597
3647
  result = date1.durationBetween(date2, this.precision.toLowerCase());
3598
3648
  if ((result != null) && result.isPoint()) {
3599
3649
  return result.low;
@@ -4603,9 +4653,10 @@
4603
4653
  },{"../datatypes/datatypes":6,"./builder":14,"./expression":20,"./quantity":32}],24:[function(require,module,exports){
4604
4654
  // Generated by CoffeeScript 1.12.7
4605
4655
  (function() {
4606
- var Collapse, End, Ends, Expression, Interval, Meets, MeetsAfter, MeetsBefore, Overlaps, OverlapsAfter, OverlapsBefore, Quantity, Start, Starts, ThreeValuedLogic, UnimplementedExpression, Width, build, cmp, doAddition, doIncludes, doSubtraction, dtivl, predecessor, ref, ref1, ref2, successor,
4656
+ var Collapse, End, Ends, Expand, Expression, Interval, MIN_FLOAT_PRECISION_VALUE, Meets, MeetsAfter, MeetsBefore, Overlaps, OverlapsAfter, OverlapsBefore, Quantity, Start, Starts, ThreeValuedLogic, UnimplementedExpression, Width, build, cmp, collapseIntervals, compare_units, convert_value, doAddition, doIncludes, doSubtraction, dtivl, intervalListType, predecessor, ref, ref1, ref2, successor,
4607
4657
  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
4608
- hasProp = {}.hasOwnProperty;
4658
+ hasProp = {}.hasOwnProperty,
4659
+ indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
4609
4660
 
4610
4661
  ref = require('./expression'), Expression = ref.Expression, UnimplementedExpression = ref.UnimplementedExpression;
4611
4662
 
@@ -4613,9 +4664,9 @@
4613
4664
 
4614
4665
  build = require('./builder').build;
4615
4666
 
4616
- ref1 = require('./quantity'), Quantity = ref1.Quantity, doAddition = ref1.doAddition, doSubtraction = ref1.doSubtraction;
4667
+ ref1 = require('./quantity'), Quantity = ref1.Quantity, doAddition = ref1.doAddition, doSubtraction = ref1.doSubtraction, compare_units = ref1.compare_units, convert_value = ref1.convert_value;
4617
4668
 
4618
- ref2 = require('../util/math'), successor = ref2.successor, predecessor = ref2.predecessor;
4669
+ ref2 = require('../util/math'), successor = ref2.successor, predecessor = ref2.predecessor, MIN_FLOAT_PRECISION_VALUE = ref2.MIN_FLOAT_PRECISION_VALUE;
4619
4670
 
4620
4671
  dtivl = require('../datatypes/interval');
4621
4672
 
@@ -4920,6 +4971,252 @@
4920
4971
 
4921
4972
  })(Expression);
4922
4973
 
4974
+ intervalListType = function(intervals) {
4975
+ var high, itvl, j, len, low, ref3, ref4, type;
4976
+ type = null;
4977
+ for (j = 0, len = intervals.length; j < len; j++) {
4978
+ itvl = intervals[j];
4979
+ if (itvl == null) {
4980
+ continue;
4981
+ }
4982
+ if ((itvl.low == null) && (itvl.high == null)) {
4983
+ continue;
4984
+ }
4985
+ low = (ref3 = itvl.low) != null ? ref3 : itvl.high;
4986
+ high = (ref4 = itvl.high) != null ? ref4 : itvl.low;
4987
+ if ((typeof low.isTime === "function" ? low.isTime() : void 0) && (typeof high.isTime === "function" ? high.isTime() : void 0)) {
4988
+ if (type == null) {
4989
+ type = 'time';
4990
+ } else if (type === 'time') {
4991
+ continue;
4992
+ } else {
4993
+ return 'mismatch';
4994
+ }
4995
+ } else if ((low.isDateTime || high.isDateTime) && (low.isDateTime || low.isDate) && (high.isDateTime || high.isDate)) {
4996
+ if ((type == null) || type === 'date') {
4997
+ type = 'datetime';
4998
+ } else if (type === 'datetime') {
4999
+ continue;
5000
+ } else {
5001
+ return 'mismatch';
5002
+ }
5003
+ } else if (low.isDate && high.isDate) {
5004
+ if (type == null) {
5005
+ type = 'date';
5006
+ } else if (type === 'date' || 'datetime') {
5007
+ continue;
5008
+ } else {
5009
+ return 'mismatch';
5010
+ }
5011
+ } else if (low.isQuantity && high.isQuantity) {
5012
+ if (type == null) {
5013
+ type = 'quantity';
5014
+ } else if (type === 'quantity') {
5015
+ continue;
5016
+ } else {
5017
+ return 'mismatch';
5018
+ }
5019
+ } else if (Number.isInteger(low) && Number.isInteger(high)) {
5020
+ if (type == null) {
5021
+ type = 'integer';
5022
+ } else if (type === 'integer' || 'decimal') {
5023
+ continue;
5024
+ } else {
5025
+ return 'mismatch';
5026
+ }
5027
+ } else if (typeof low === 'number' && typeof high === 'number') {
5028
+ if ((type == null) || type === 'integer') {
5029
+ type = 'decimal';
5030
+ } else if (type === 'decimal') {
5031
+ continue;
5032
+ } else {
5033
+ return 'mismatch';
5034
+ }
5035
+ } else {
5036
+ return 'mismatch';
5037
+ }
5038
+ }
5039
+ return type;
5040
+ };
5041
+
5042
+ module.exports.Expand = Expand = (function(superClass) {
5043
+ extend(Expand, superClass);
5044
+
5045
+ function Expand(json) {
5046
+ Expand.__super__.constructor.apply(this, arguments);
5047
+ }
5048
+
5049
+ Expand.prototype.exec = function(ctx) {
5050
+ var defaultPer, expandFunction, interval, intervals, items, j, len, per, ref3, results, type;
5051
+ ref3 = this.execArgs(ctx), intervals = ref3[0], per = ref3[1];
5052
+ type = intervalListType(intervals);
5053
+ if (type === 'mismatch') {
5054
+ throw new Error("List of intervals contains mismatched types.");
5055
+ }
5056
+ if (type == null) {
5057
+ return null;
5058
+ }
5059
+ intervals = collapseIntervals(intervals, per);
5060
+ if (intervals.length === 0) {
5061
+ return [];
5062
+ }
5063
+ if (type === "time" || type === "date" || type === "datetime") {
5064
+ expandFunction = this.expandDTishInterval;
5065
+ defaultPer = function(interval) {
5066
+ return new Quantity({
5067
+ value: 1,
5068
+ unit: interval.low.getPrecision()
5069
+ });
5070
+ };
5071
+ } else if (type === "quantity") {
5072
+ expandFunction = this.expandQuantityInterval;
5073
+ defaultPer = function(interval) {
5074
+ return new Quantity({
5075
+ value: 1,
5076
+ unit: interval.low.unit
5077
+ });
5078
+ };
5079
+ } else if (type === "integer" || type === "decimal") {
5080
+ expandFunction = this.expandNumericInterval;
5081
+ defaultPer = function(interval) {
5082
+ return new Quantity({
5083
+ value: 1,
5084
+ unit: '1'
5085
+ });
5086
+ };
5087
+ } else {
5088
+ throw new Error("Interval list type not yet supported.");
5089
+ }
5090
+ results = [];
5091
+ for (j = 0, len = intervals.length; j < len; j++) {
5092
+ interval = intervals[j];
5093
+ if (interval == null) {
5094
+ continue;
5095
+ }
5096
+ if ((interval.low == null) || (interval.high == null)) {
5097
+ return null;
5098
+ }
5099
+ if (type === 'datetime') {
5100
+ interval.low = interval.low.getDateTime();
5101
+ interval.high = interval.high.getDateTime();
5102
+ }
5103
+ per = per != null ? per : defaultPer(interval);
5104
+ items = expandFunction.call(this, interval, per);
5105
+ if (items === null) {
5106
+ return null;
5107
+ }
5108
+ results.push.apply(results, items);
5109
+ }
5110
+ return results;
5111
+ };
5112
+
5113
+ Expand.prototype.expandDTishInterval = function(interval, per) {
5114
+ var count, current_high, current_low, high, i, j, k, low, point_intervals, ref3, ref4, ref5, ref6, results;
5115
+ if ((ref3 = per.unit) === 'week' || ref3 === 'weeks') {
5116
+ per.value *= 7;
5117
+ per.unit = 'day';
5118
+ }
5119
+ if (ref4 = per.unit, indexOf.call(interval.low.constructor.FIELDS, ref4) < 0) {
5120
+ return null;
5121
+ }
5122
+ if (interval.low.isLessPrecise(per.unit)) {
5123
+ return null;
5124
+ }
5125
+ low = interval.lowClosed ? interval.low : interval.low.successor();
5126
+ high = interval.highClosed ? interval.high : interval.high.predecessor();
5127
+ if (low.after(high)) {
5128
+ return [];
5129
+ }
5130
+ current_low = low;
5131
+ results = [];
5132
+ point_intervals = current_low.add(per.value, per.unit).predecessor().equals(current_low);
5133
+ if (per.unit === low.getPrecision()) {
5134
+ count = Math.floor((low.durationBetween(high, per.unit).high + 1) / per.value);
5135
+ } else {
5136
+ count = Math.floor((low.durationBetween(high, per.unit).low + 1) / per.value);
5137
+ }
5138
+ if (point_intervals) {
5139
+ for (i = j = 1, ref5 = count + 1; 1 <= ref5 ? j <= ref5 : j >= ref5; i = 1 <= ref5 ? ++j : --j) {
5140
+ results.push(new dtivl.Interval(current_low, current_low.copy(), true, true));
5141
+ current_low = current_low.add(per.value, per.unit);
5142
+ }
5143
+ } else {
5144
+ for (i = k = 1, ref6 = count; 1 <= ref6 ? k <= ref6 : k >= ref6; i = 1 <= ref6 ? ++k : --k) {
5145
+ current_high = current_low.add(per.value, per.unit).predecessor();
5146
+ results.push(new dtivl.Interval(current_low, current_high, true, true));
5147
+ current_low = current_low.add(per.value, per.unit);
5148
+ }
5149
+ }
5150
+ if (results.length > 0 && !results[results.length - 1].high.sameOrBefore(high)) {
5151
+ results.pop();
5152
+ }
5153
+ return results;
5154
+ };
5155
+
5156
+ Expand.prototype.expandQuantityInterval = function(interval, per) {
5157
+ var high_value, itvl, j, len, low_value, per_value, result_units, results;
5158
+ if (compare_units(interval.low.unit, per.unit) > 0) {
5159
+ result_units = per.unit;
5160
+ } else {
5161
+ result_units = interval.low.unit;
5162
+ }
5163
+ low_value = convert_value(interval.low.value, interval.low.unit, result_units);
5164
+ high_value = convert_value(interval.high.value, interval.high.unit, result_units);
5165
+ per_value = convert_value(per.value, per.unit, result_units);
5166
+ if (!((low_value != null) && (high_value != null) && (per_value != null))) {
5167
+ return null;
5168
+ }
5169
+ results = this.makeNumericIntervalList(low_value, high_value, interval.lowClosed, interval.highClosed, per_value);
5170
+ for (j = 0, len = results.length; j < len; j++) {
5171
+ itvl = results[j];
5172
+ itvl.low = new Quantity({
5173
+ value: itvl.low,
5174
+ unit: result_units
5175
+ });
5176
+ itvl.high = new Quantity({
5177
+ value: itvl.high,
5178
+ unit: result_units
5179
+ });
5180
+ }
5181
+ return results;
5182
+ };
5183
+
5184
+ Expand.prototype.expandNumericInterval = function(interval, per) {
5185
+ if (per.unit !== '1') {
5186
+ return null;
5187
+ }
5188
+ return this.makeNumericIntervalList(interval.low, interval.high, interval.lowClosed, interval.highClosed, per.value);
5189
+ };
5190
+
5191
+ Expand.prototype.makeNumericIntervalList = function(low, high, lowClosed, highClosed, per) {
5192
+ var gap, point_intervals, results, width, x;
5193
+ point_intervals = Number.isInteger(low) && Number.isInteger(high) && Number.isInteger(per);
5194
+ gap = point_intervals ? 1 : MIN_FLOAT_PRECISION_VALUE;
5195
+ if (!lowClosed) {
5196
+ low = low + gap;
5197
+ }
5198
+ if (!highClosed) {
5199
+ high = high - gap;
5200
+ }
5201
+ width = per - gap;
5202
+ if (low > high) {
5203
+ return [];
5204
+ }
5205
+ results = (function() {
5206
+ var j, ref3, ref4, ref5, results1;
5207
+ results1 = [];
5208
+ for (x = j = ref3 = low, ref4 = high - width, ref5 = per; ref5 > 0 ? j <= ref4 : j >= ref4; x = j += ref5) {
5209
+ results1.push(new dtivl.Interval(x, x + width, true, true));
5210
+ }
5211
+ return results1;
5212
+ })();
5213
+ return results;
5214
+ };
5215
+
5216
+ return Expand;
5217
+
5218
+ })(Expression);
5219
+
4923
5220
  module.exports.Collapse = Collapse = (function(superClass) {
4924
5221
  extend(Collapse, superClass);
4925
5222
 
@@ -4928,141 +5225,146 @@
4928
5225
  }
4929
5226
 
4930
5227
  Collapse.prototype.exec = function(ctx) {
4931
- var a, b, collapsedIntervals, i, interval, intervals, intervalsClone, len, perWidth, precisionUnits, ref3, ref4, ref5, ref6, ref7;
5228
+ var intervals, perWidth, ref3;
4932
5229
  ref3 = this.execArgs(ctx), intervals = ref3[0], perWidth = ref3[1];
4933
- intervalsClone = [];
4934
- for (i = 0, len = intervals.length; i < len; i++) {
4935
- interval = intervals[i];
4936
- if (interval != null) {
4937
- intervalsClone.push(interval.copy());
4938
- }
5230
+ return collapseIntervals(intervals, perWidth);
5231
+ };
5232
+
5233
+ return Collapse;
5234
+
5235
+ })(Expression);
5236
+
5237
+ collapseIntervals = function(intervals, perWidth) {
5238
+ var a, b, collapsedIntervals, interval, intervalsClone, j, len, precisionUnits, ref3, ref4, ref5, ref6;
5239
+ intervalsClone = [];
5240
+ for (j = 0, len = intervals.length; j < len; j++) {
5241
+ interval = intervals[j];
5242
+ if (interval != null) {
5243
+ intervalsClone.push(interval.copy());
4939
5244
  }
4940
- if (intervals == null) {
4941
- return null;
4942
- } else if ((intervalsClone != null ? intervalsClone.length : void 0) <= 1) {
4943
- return intervalsClone;
4944
- } else {
4945
- if (perWidth == null) {
4946
- if (intervalsClone[0].low != null) {
4947
- if (intervalsClone[0].low.isDateTime) {
4948
- precisionUnits = intervalsClone[0].low.getPrecision();
4949
- perWidth = new Quantity({
4950
- value: 1,
4951
- unit: precisionUnits
4952
- });
4953
- } else if (intervalsClone[0].low.isQuantity) {
4954
- perWidth = doSubtraction(successor(intervalsClone[0].low), intervalsClone[0].low);
4955
- } else {
4956
- perWidth = successor(intervalsClone[0].low) - intervalsClone[0].low;
4957
- }
4958
- } else if (intervalsClone[0].high != null) {
4959
- if (intervalsClone[0].high.isDateTime) {
4960
- precisionUnits = intervalsClone[0].high.getPrecision();
4961
- perWidth = new Quantity({
4962
- value: 1,
4963
- unit: precisionUnits
4964
- });
4965
- } else if (intervalsClone[0].high.isQuantity) {
4966
- perWidth = doSubtraction(successor(intervalsClone[0].high), intervalsClone[0].high);
4967
- } else {
4968
- perWidth = successor(intervalsClone[0].high) - intervalsClone[0].high;
4969
- }
5245
+ }
5246
+ if (intervals == null) {
5247
+ return null;
5248
+ } else if ((intervalsClone != null ? intervalsClone.length : void 0) <= 1) {
5249
+ return intervalsClone;
5250
+ } else {
5251
+ if (perWidth == null) {
5252
+ if (intervalsClone[0].low != null) {
5253
+ if (intervalsClone[0].low.isDateTime) {
5254
+ precisionUnits = intervalsClone[0].low.getPrecision();
5255
+ perWidth = new Quantity({
5256
+ value: 1,
5257
+ unit: precisionUnits
5258
+ });
5259
+ } else if (intervalsClone[0].low.isQuantity) {
5260
+ perWidth = doSubtraction(successor(intervalsClone[0].low), intervalsClone[0].low);
4970
5261
  } else {
4971
- throw new Error("Point type of intervals provided to collapse cannot be determined.");
5262
+ perWidth = successor(intervalsClone[0].low) - intervalsClone[0].low;
4972
5263
  }
4973
- if (typeof perWidth === 'number') {
5264
+ } else if (intervalsClone[0].high != null) {
5265
+ if (intervalsClone[0].high.isDateTime) {
5266
+ precisionUnits = intervalsClone[0].high.getPrecision();
4974
5267
  perWidth = new Quantity({
4975
- value: perWidth,
4976
- unit: '1'
5268
+ value: 1,
5269
+ unit: precisionUnits
4977
5270
  });
5271
+ } else if (intervalsClone[0].high.isQuantity) {
5272
+ perWidth = doSubtraction(successor(intervalsClone[0].high), intervalsClone[0].high);
5273
+ } else {
5274
+ perWidth = successor(intervalsClone[0].high) - intervalsClone[0].high;
4978
5275
  }
5276
+ } else {
5277
+ throw new Error("Point type of intervals provided to collapse cannot be determined.");
4979
5278
  }
4980
- intervalsClone.sort(function(a, b) {
4981
- var ref4, ref5;
4982
- if (typeof ((ref4 = a.low) != null ? ref4.before : void 0) === 'function') {
4983
- if ((b.low != null) && a.low.before(b.low)) {
4984
- return -1;
4985
- }
4986
- if ((b.low == null) || a.low.after(b.low)) {
4987
- return 1;
4988
- }
4989
- } else if ((a.low != null) && (b.low != null)) {
4990
- if (a.low < b.low) {
4991
- return -1;
4992
- }
4993
- if (a.low > b.low) {
4994
- return 1;
4995
- }
4996
- } else if ((a.low != null) && (b.low == null)) {
5279
+ if (typeof perWidth === 'number') {
5280
+ perWidth = new Quantity({
5281
+ value: perWidth,
5282
+ unit: '1'
5283
+ });
5284
+ }
5285
+ }
5286
+ intervalsClone.sort(function(a, b) {
5287
+ var ref3, ref4;
5288
+ if (typeof ((ref3 = a.low) != null ? ref3.before : void 0) === 'function') {
5289
+ if ((b.low != null) && a.low.before(b.low)) {
5290
+ return -1;
5291
+ }
5292
+ if ((b.low == null) || a.low.after(b.low)) {
4997
5293
  return 1;
4998
- } else if ((a.low == null) && (b.low != null)) {
5294
+ }
5295
+ } else if ((a.low != null) && (b.low != null)) {
5296
+ if (a.low < b.low) {
4999
5297
  return -1;
5000
5298
  }
5001
- if (typeof ((ref5 = a.high) != null ? ref5.before : void 0) === 'function') {
5002
- if ((b.high == null) || a.high.before(b.high)) {
5003
- return -1;
5004
- }
5005
- if (a.high.after(b.high)) {
5006
- return 1;
5007
- }
5008
- } else if ((a.high != null) && (b.high != null)) {
5009
- if (a.high < b.high) {
5010
- return -1;
5011
- }
5012
- if (a.high > b.high) {
5013
- return 1;
5014
- }
5015
- } else if ((a.high != null) && (b.high == null)) {
5299
+ if (a.low > b.low) {
5300
+ return 1;
5301
+ }
5302
+ } else if ((a.low != null) && (b.low == null)) {
5303
+ return 1;
5304
+ } else if ((a.low == null) && (b.low != null)) {
5305
+ return -1;
5306
+ }
5307
+ if (typeof ((ref4 = a.high) != null ? ref4.before : void 0) === 'function') {
5308
+ if ((b.high == null) || a.high.before(b.high)) {
5016
5309
  return -1;
5017
- } else if ((a.high == null) && (b.high != null)) {
5310
+ }
5311
+ if (a.high.after(b.high)) {
5018
5312
  return 1;
5019
5313
  }
5020
- return 0;
5021
- });
5022
- collapsedIntervals = [];
5023
- a = intervalsClone.shift();
5024
- b = intervalsClone.shift();
5025
- while (b) {
5026
- if (typeof ((ref4 = b.low) != null ? ref4.durationBetween : void 0) === 'function') {
5027
- if ((ref5 = a.high) != null ? ref5.sameOrAfter(b.low) : void 0) {
5028
- if ((b.high == null) || b.high.after(a.high)) {
5029
- a.high = b.high;
5030
- }
5031
- } else if (((ref6 = a.high) != null ? ref6.durationBetween(b.low, perWidth.unit).high : void 0) <= perWidth.value) {
5314
+ } else if ((a.high != null) && (b.high != null)) {
5315
+ if (a.high < b.high) {
5316
+ return -1;
5317
+ }
5318
+ if (a.high > b.high) {
5319
+ return 1;
5320
+ }
5321
+ } else if ((a.high != null) && (b.high == null)) {
5322
+ return -1;
5323
+ } else if ((a.high == null) && (b.high != null)) {
5324
+ return 1;
5325
+ }
5326
+ return 0;
5327
+ });
5328
+ collapsedIntervals = [];
5329
+ a = intervalsClone.shift();
5330
+ b = intervalsClone.shift();
5331
+ while (b) {
5332
+ if (typeof ((ref3 = b.low) != null ? ref3.durationBetween : void 0) === 'function') {
5333
+ if ((ref4 = a.high) != null ? ref4.sameOrAfter(b.low) : void 0) {
5334
+ if ((b.high == null) || b.high.after(a.high)) {
5032
5335
  a.high = b.high;
5033
- } else {
5034
- collapsedIntervals.push(a);
5035
- a = b;
5036
5336
  }
5037
- } else if (typeof ((ref7 = b.low) != null ? ref7.sameOrBefore : void 0) === 'function') {
5038
- if ((a.high != null) && b.low.sameOrBefore(doAddition(a.high, perWidth))) {
5039
- if ((b.high == null) || b.high.after(a.high)) {
5040
- a.high = b.high;
5041
- }
5042
- } else {
5043
- collapsedIntervals.push(a);
5044
- a = b;
5337
+ } else if (((ref5 = a.high) != null ? ref5.durationBetween(b.low, perWidth.unit).high : void 0) <= perWidth.value) {
5338
+ a.high = b.high;
5339
+ } else {
5340
+ collapsedIntervals.push(a);
5341
+ a = b;
5342
+ }
5343
+ } else if (typeof ((ref6 = b.low) != null ? ref6.sameOrBefore : void 0) === 'function') {
5344
+ if ((a.high != null) && b.low.sameOrBefore(doAddition(a.high, perWidth))) {
5345
+ if ((b.high == null) || b.high.after(a.high)) {
5346
+ a.high = b.high;
5045
5347
  }
5046
5348
  } else {
5047
- if ((b.low - a.high) <= perWidth.value) {
5048
- if (b.high > a.high || (b.high == null)) {
5049
- a.high = b.high;
5050
- }
5051
- } else {
5052
- collapsedIntervals.push(a);
5053
- a = b;
5349
+ collapsedIntervals.push(a);
5350
+ a = b;
5351
+ }
5352
+ } else {
5353
+ if ((b.low - a.high) <= perWidth.value) {
5354
+ if (b.high > a.high || (b.high == null)) {
5355
+ a.high = b.high;
5054
5356
  }
5357
+ } else {
5358
+ collapsedIntervals.push(a);
5359
+ a = b;
5055
5360
  }
5056
- b = intervalsClone.shift();
5057
5361
  }
5058
- collapsedIntervals.push(a);
5059
- return collapsedIntervals;
5362
+ b = intervalsClone.shift();
5060
5363
  }
5061
- };
5062
-
5063
- return Collapse;
5064
-
5065
- })(Expression);
5364
+ collapsedIntervals.push(a);
5365
+ return collapsedIntervals;
5366
+ }
5367
+ };
5066
5368
 
5067
5369
  }).call(this);
5068
5370
 
@@ -6801,6 +7103,23 @@
6801
7103
  }
6802
7104
  };
6803
7105
 
7106
+ module.exports.compare_units = function(unit_a, unit_b) {
7107
+ var c, e;
7108
+ try {
7109
+ c = ucum.convert(1, ucum_unit(unit_a), ucum_unit(unit_b));
7110
+ if (c > 1) {
7111
+ return 1;
7112
+ }
7113
+ if (c < 1) {
7114
+ return -1;
7115
+ }
7116
+ return 0;
7117
+ } catch (error) {
7118
+ e = error;
7119
+ return null;
7120
+ }
7121
+ };
7122
+
6804
7123
  }).call(this);
6805
7124
 
6806
7125
 
@@ -7448,11 +7767,11 @@
7448
7767
  },{"./builder":14,"./expression":20}],36:[function(require,module,exports){
7449
7768
  // Generated by CoffeeScript 1.12.7
7450
7769
  (function() {
7451
- var Combine, Concatenate, EndsWith, Expression, Lower, PositionOf, Split, StartsWith, Substring, Upper, build,
7770
+ var Combine, Concatenate, EndsWith, Expression, Lower, PositionOf, Split, SplitOnMatches, StartsWith, Substring, UnimplementedExpression, Upper, build, ref,
7452
7771
  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
7453
7772
  hasProp = {}.hasOwnProperty;
7454
7773
 
7455
- Expression = require('./expression').Expression;
7774
+ ref = require('./expression'), Expression = ref.Expression, UnimplementedExpression = ref.UnimplementedExpression;
7456
7775
 
7457
7776
  build = require('./builder').build;
7458
7777
 
@@ -7531,6 +7850,17 @@
7531
7850
 
7532
7851
  })(Expression);
7533
7852
 
7853
+ module.exports.SplitOnMatches = SplitOnMatches = (function(superClass) {
7854
+ extend(SplitOnMatches, superClass);
7855
+
7856
+ function SplitOnMatches() {
7857
+ return SplitOnMatches.__super__.constructor.apply(this, arguments);
7858
+ }
7859
+
7860
+ return SplitOnMatches;
7861
+
7862
+ })(UnimplementedExpression);
7863
+
7534
7864
  module.exports.Upper = Upper = (function(superClass) {
7535
7865
  extend(Upper, superClass);
7536
7866
 
@@ -7798,7 +8128,7 @@
7798
8128
  },{"./builder":14,"./expression":20}],38:[function(require,module,exports){
7799
8129
  // Generated by CoffeeScript 1.12.7
7800
8130
  (function() {
7801
- var As, Concept, Convert, Date, DateTime, Expression, FunctionRef, IntervalTypeSpecifier, Is, ListTypeSpecifier, NamedTypeSpecifier, ToBoolean, ToConcept, ToDate, ToDateTime, ToDecimal, ToInteger, ToQuantity, ToString, ToTime, TupleTypeSpecifier, UnimplementedExpression, isValidDecimal, isValidInteger, limitDecimalPrecision, normalizeMillisecondsField, parseQuantity, ref, ref1, ref2,
8131
+ var As, Concept, Convert, ConvertsToBoolean, ConvertsToDate, ConvertsToDateTime, ConvertsToDecimal, ConvertsToInteger, ConvertsToQuantity, ConvertsToString, ConvertsToTime, Date, DateTime, Expression, FunctionRef, IntervalTypeSpecifier, Is, ListTypeSpecifier, NamedTypeSpecifier, ToBoolean, ToConcept, ToDate, ToDateTime, ToDecimal, ToInteger, ToQuantity, ToString, ToTime, TupleTypeSpecifier, UnimplementedExpression, isValidDecimal, isValidInteger, limitDecimalPrecision, normalizeMillisecondsField, parseQuantity, ref, ref1, ref2,
7802
8132
  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
7803
8133
  hasProp = {}.hasOwnProperty;
7804
8134
 
@@ -8153,6 +8483,94 @@
8153
8483
 
8154
8484
  })(UnimplementedExpression);
8155
8485
 
8486
+ module.exports.ConvertsToBoolean = ConvertsToBoolean = (function(superClass) {
8487
+ extend(ConvertsToBoolean, superClass);
8488
+
8489
+ function ConvertsToBoolean() {
8490
+ return ConvertsToBoolean.__super__.constructor.apply(this, arguments);
8491
+ }
8492
+
8493
+ return ConvertsToBoolean;
8494
+
8495
+ })(UnimplementedExpression);
8496
+
8497
+ module.exports.ConvertsToDate = ConvertsToDate = (function(superClass) {
8498
+ extend(ConvertsToDate, superClass);
8499
+
8500
+ function ConvertsToDate() {
8501
+ return ConvertsToDate.__super__.constructor.apply(this, arguments);
8502
+ }
8503
+
8504
+ return ConvertsToDate;
8505
+
8506
+ })(UnimplementedExpression);
8507
+
8508
+ module.exports.ConvertsToDateTime = ConvertsToDateTime = (function(superClass) {
8509
+ extend(ConvertsToDateTime, superClass);
8510
+
8511
+ function ConvertsToDateTime() {
8512
+ return ConvertsToDateTime.__super__.constructor.apply(this, arguments);
8513
+ }
8514
+
8515
+ return ConvertsToDateTime;
8516
+
8517
+ })(UnimplementedExpression);
8518
+
8519
+ module.exports.ConvertsToDecimal = ConvertsToDecimal = (function(superClass) {
8520
+ extend(ConvertsToDecimal, superClass);
8521
+
8522
+ function ConvertsToDecimal() {
8523
+ return ConvertsToDecimal.__super__.constructor.apply(this, arguments);
8524
+ }
8525
+
8526
+ return ConvertsToDecimal;
8527
+
8528
+ })(UnimplementedExpression);
8529
+
8530
+ module.exports.ConvertsToInteger = ConvertsToInteger = (function(superClass) {
8531
+ extend(ConvertsToInteger, superClass);
8532
+
8533
+ function ConvertsToInteger() {
8534
+ return ConvertsToInteger.__super__.constructor.apply(this, arguments);
8535
+ }
8536
+
8537
+ return ConvertsToInteger;
8538
+
8539
+ })(UnimplementedExpression);
8540
+
8541
+ module.exports.ConvertsToQuantity = ConvertsToQuantity = (function(superClass) {
8542
+ extend(ConvertsToQuantity, superClass);
8543
+
8544
+ function ConvertsToQuantity() {
8545
+ return ConvertsToQuantity.__super__.constructor.apply(this, arguments);
8546
+ }
8547
+
8548
+ return ConvertsToQuantity;
8549
+
8550
+ })(UnimplementedExpression);
8551
+
8552
+ module.exports.ConvertsToString = ConvertsToString = (function(superClass) {
8553
+ extend(ConvertsToString, superClass);
8554
+
8555
+ function ConvertsToString() {
8556
+ return ConvertsToString.__super__.constructor.apply(this, arguments);
8557
+ }
8558
+
8559
+ return ConvertsToString;
8560
+
8561
+ })(UnimplementedExpression);
8562
+
8563
+ module.exports.ConvertsToTime = ConvertsToTime = (function(superClass) {
8564
+ extend(ConvertsToTime, superClass);
8565
+
8566
+ function ConvertsToTime() {
8567
+ return ConvertsToTime.__super__.constructor.apply(this, arguments);
8568
+ }
8569
+
8570
+ return ConvertsToTime;
8571
+
8572
+ })(UnimplementedExpression);
8573
+
8156
8574
  module.exports.IntervalTypeSpecifier = IntervalTypeSpecifier = (function(superClass) {
8157
8575
  extend(IntervalTypeSpecifier, superClass);
8158
8576
 
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cql_qdm_patientapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - The MITRE Corporation
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-15 00:00:00.000000000 Z
11
+ date: 2018-12-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '4.2'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '6.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '4.2'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '6.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: coffee-rails
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -131,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
137
  version: '0'
132
138
  requirements: []
133
139
  rubyforge_project:
134
- rubygems_version: 2.7.7
140
+ rubygems_version: 2.6.14
135
141
  signing_key:
136
142
  specification_version: 4
137
143
  summary: QDM CQL execution engine and HDS patient model interface