From 8b51d26101c7fd727b34c8076d6a02cef36662cc Mon Sep 17 00:00:00 2001 From: Chris Moesel Date: Fri, 29 May 2026 12:28:15 -0400 Subject: [PATCH 1/2] Improve handling of boundless and unknown intervals Add special case logic for boundless intervals (e.g., Interval[null, null]) and unknown intervals (e.g., Interval(null, null) --- examples/browser/cql4browsers.js | 97 +- src/datatypes/interval.ts | 91 +- test/datatypes/interval-test.ts | 491 +++++ test/elm/interval/data.cql | 4 + test/elm/interval/data.js | 1606 ++++++++++++----- test/elm/interval/interval-test.ts | 16 +- .../cql/CqlIntervalOperatorsTest.cql | 20 +- .../cql/CqlIntervalOperatorsTest.json | 240 +-- test/spec-tests/skip-list.txt | 5 + 9 files changed, 1885 insertions(+), 685 deletions(-) diff --git a/examples/browser/cql4browsers.js b/examples/browser/cql4browsers.js index 5b803f89d..3160a7a42 100644 --- a/examples/browser/cql4browsers.js +++ b/examples/browser/cql4browsers.js @@ -1799,6 +1799,12 @@ class Interval { get isInterval() { return true; } + get isBoundlessInterval() { + return this.low == null && this.lowClosed && this.high == null && this.highClosed; + } + get isUnknownInterval() { + return this.low == null && !this.lowClosed && this.high == null && !this.highClosed; + } get pointType() { let pointType = null; const point = this.low != null ? this.low : this.high; @@ -1835,19 +1841,22 @@ class Interval { if (this.high != null && typeof this.high.copy === 'function') { newHigh = this.high.copy(); } - return new Interval(newLow, newHigh, this.lowClosed, this.highClosed); + return new Interval(newLow, newHigh, this.lowClosed, this.highClosed, this.defaultPointType); } contains(item, precision) { - // These first two checks ensure correct handling of edge case where an item equals the closed boundary + if (item != null && item.isInterval) { + throw new Error('Argument to contains must be a point'); + } + if (this.isBoundlessInterval) { + return true; + } + // Ensure correct handling of edge case where an item equals the closed boundary if (this.lowClosed && this.low != null && cmp.equals(this.low, item)) { return true; } if (this.highClosed && this.high != null && cmp.equals(this.high, item)) { return true; } - if (item != null && item.isInterval) { - throw new Error('Argument to contains must be a point'); - } let lowFn; if (this.lowClosed && this.low == null) { lowFn = () => true; @@ -1877,6 +1886,12 @@ class Interval { return logic_1.ThreeValuedLogic.and(this.includes(other, precision), logic_1.ThreeValuedLogic.not(other.includes(this, precision))); } includes(other, precision) { + if (this.isBoundlessInterval) { + return true; + } + else if (other === null || other === void 0 ? void 0 : other.isBoundlessInterval) { + return this.isUnknownInterval ? null : false; + } if (other == null || !other.isInterval) { return this.contains(other, precision); } @@ -1894,6 +1909,9 @@ class Interval { } } overlaps(item, precision) { + if (this.isBoundlessInterval || (item === null || item === void 0 ? void 0 : item.isBoundlessInterval)) { + return true; + } const closed = this.toClosed(); const [low, high] = (() => { if (item != null && item.isInterval) { @@ -1907,19 +1925,37 @@ class Interval { return logic_1.ThreeValuedLogic.and(cmp.lessThanOrEquals(closed.low, high, precision), cmp.greaterThanOrEquals(closed.high, low, precision)); } overlapsAfter(item, precision) { - const closed = this.toClosed(); const high = item != null && item.isInterval ? item.toClosed().high : item; + if (this.isBoundlessInterval) { + return cmp.lessThan(high, (0, math_1.maxValueForInstance)(high), precision); + } + else if (item === null || item === void 0 ? void 0 : item.isBoundlessInterval) { + return false; + } + const closed = this.toClosed(); return logic_1.ThreeValuedLogic.and(cmp.lessThanOrEquals(closed.low, high, precision), cmp.greaterThan(closed.high, high, precision)); } overlapsBefore(item, precision) { - const closed = this.toClosed(); const low = item != null && item.isInterval ? item.toClosed().low : item; + if (this.isBoundlessInterval) { + return cmp.greaterThan(low, (0, math_1.minValueForInstance)(low), precision); + } + else if (item === null || item === void 0 ? void 0 : item.isBoundlessInterval) { + return false; + } + const closed = this.toClosed(); return logic_1.ThreeValuedLogic.and(cmp.lessThan(closed.low, low, precision), cmp.greaterThanOrEquals(closed.high, low, precision)); } union(other) { if (other == null || !other.isInterval) { throw new Error('Argument to union must be an interval'); } + if (this.isBoundlessInterval) { + return this.copy(); + } + else if (other.isBoundlessInterval) { + return other.copy(); + } // Note that interval union is only defined if the arguments overlap or meet. if (this.overlaps(other) || this.meets(other)) { const [a, b] = [this.toClosed(), other.toClosed()]; @@ -1967,7 +2003,13 @@ class Interval { if (other == null || !other.isInterval) { throw new Error('Argument to union must be an interval'); } - // Note that interval union is only defined if the arguments overlap. + if (this.isBoundlessInterval) { + return other.copy(); + } + else if (other.isBoundlessInterval) { + return this.copy(); + } + // Note that interval intersect is only defined if the arguments overlap. if (this.overlaps(other)) { const [a, b] = [this.toClosed(), other.toClosed()]; let l, lc; @@ -2110,6 +2152,9 @@ class Interval { } } sameOrBefore(other, precision) { + if (this.isBoundlessInterval || (other === null || other === void 0 ? void 0 : other.isBoundlessInterval)) { + return this.equals(other); + } if (this.end() == null || other == null || other.start() == null) { return null; } @@ -2118,6 +2163,9 @@ class Interval { } } sameOrAfter(other, precision) { + if (this.isBoundlessInterval || (other === null || other === void 0 ? void 0 : other.isBoundlessInterval)) { + return this.equals(other); + } if (this.start() == null || other == null || other.end() == null) { return null; } @@ -2127,6 +2175,12 @@ class Interval { } equals(other) { if (other != null && other.isInterval) { + if (this.isBoundlessInterval) { + return other.isBoundlessInterval ? true : other.isUnknownInterval ? null : false; + } + else if (other.isBoundlessInterval) { + return this.isUnknownInterval ? null : false; + } const [a, b] = [this.toClosed(), other.toClosed()]; return logic_1.ThreeValuedLogic.and(cmp.equals(a.low, b.low), cmp.equals(a.high, b.high)); } @@ -2135,6 +2189,9 @@ class Interval { } } after(other, precision) { + if (this.isBoundlessInterval || (other === null || other === void 0 ? void 0 : other.isBoundlessInterval)) { + return false; + } const closed = this.toClosed(); // Meets spec, but not 100% correct (e.g., (null, 5] after [6, 10] --> null) // Simple way to fix it: and w/ not overlaps @@ -2146,6 +2203,9 @@ class Interval { } } before(other, precision) { + if (this.isBoundlessInterval || (other === null || other === void 0 ? void 0 : other.isBoundlessInterval)) { + return false; + } const closed = this.toClosed(); // Meets spec, but not 100% correct (e.g., (null, 5] after [6, 10] --> null) // Simple way to fix it: and w/ not overlaps @@ -2157,9 +2217,15 @@ class Interval { } } meets(other, precision) { + if (this.isBoundlessInterval || (other === null || other === void 0 ? void 0 : other.isBoundlessInterval)) { + return false; + } return logic_1.ThreeValuedLogic.or(this.meetsBefore(other, precision), this.meetsAfter(other, precision)); } meetsAfter(other, precision) { + if (this.isBoundlessInterval || (other === null || other === void 0 ? void 0 : other.isBoundlessInterval)) { + return false; + } try { if (precision != null && this.low != null && this.low.isDateTime) { return this.toClosed().low.sameAs(other.toClosed().high != null ? other.toClosed().high.add(1, precision) : null, precision); @@ -2173,6 +2239,9 @@ class Interval { } } meetsBefore(other, precision) { + if (this.isBoundlessInterval || (other === null || other === void 0 ? void 0 : other.isBoundlessInterval)) { + return false; + } try { if (precision != null && this.high != null && this.high.isDateTime) { return this.toClosed().high.sameAs(other.toClosed().low != null ? other.toClosed().low.add(-1, precision) : null, precision); @@ -2208,6 +2277,12 @@ class Interval { return this.toClosed().high; } starts(other, precision) { + if (this.isBoundlessInterval) { + return other.isBoundlessInterval ? true : other.isUnknownInterval ? null : false; + } + else if (other === null || other === void 0 ? void 0 : other.isBoundlessInterval) { + return this.isUnknownInterval ? null : false; + } let startEqual; if (precision != null && this.low != null && this.low.isDateTime) { startEqual = this.low.sameAs(other.low, precision); @@ -2219,6 +2294,12 @@ class Interval { return startEqual && endLessThanOrEqual; } ends(other, precision) { + if (this.isBoundlessInterval) { + return other.isBoundlessInterval ? true : other.isUnknownInterval ? null : false; + } + else if (other === null || other === void 0 ? void 0 : other.isBoundlessInterval) { + return this.isUnknownInterval ? null : false; + } let endEqual; const startGreaterThanOrEqual = cmp.greaterThanOrEquals(this.low, other.low, precision); if (precision != null && (this.low != null ? this.low.isDateTime : undefined)) { diff --git a/src/datatypes/interval.ts b/src/datatypes/interval.ts index 4ab843a23..b8fedb49f 100644 --- a/src/datatypes/interval.ts +++ b/src/datatypes/interval.ts @@ -27,6 +27,14 @@ export class Interval { return true; } + get isBoundlessInterval() { + return this.low == null && this.lowClosed && this.high == null && this.highClosed; + } + + get isUnknownInterval() { + return this.low == null && !this.lowClosed && this.high == null && !this.highClosed; + } + get pointType() { let pointType = null; const point = this.low != null ? this.low : this.high; @@ -61,20 +69,23 @@ export class Interval { newHigh = this.high.copy(); } - return new Interval(newLow, newHigh, this.lowClosed, this.highClosed); + return new Interval(newLow, newHigh, this.lowClosed, this.highClosed, this.defaultPointType); } contains(item: any, precision?: any) { - // These first two checks ensure correct handling of edge case where an item equals the closed boundary + if (item != null && item.isInterval) { + throw new Error('Argument to contains must be a point'); + } + if (this.isBoundlessInterval) { + return true; + } + // Ensure correct handling of edge case where an item equals the closed boundary if (this.lowClosed && this.low != null && cmp.equals(this.low, item)) { return true; } if (this.highClosed && this.high != null && cmp.equals(this.high, item)) { return true; } - if (item != null && item.isInterval) { - throw new Error('Argument to contains must be a point'); - } let lowFn; if (this.lowClosed && this.low == null) { lowFn = () => true; @@ -108,6 +119,11 @@ export class Interval { } includes(other: any, precision?: any) { + if (this.isBoundlessInterval) { + return true; + } else if (other?.isBoundlessInterval) { + return this.isUnknownInterval ? null : false; + } if (other == null || !other.isInterval) { return this.contains(other, precision); } @@ -129,6 +145,9 @@ export class Interval { } overlaps(item: any, precision?: any) { + if (this.isBoundlessInterval || item?.isBoundlessInterval) { + return true; + } const closed = this.toClosed(); const [low, high] = (() => { if (item != null && item.isInterval) { @@ -145,8 +164,13 @@ export class Interval { } overlapsAfter(item: any, precision?: any) { - const closed = this.toClosed(); const high = item != null && item.isInterval ? item.toClosed().high : item; + if (this.isBoundlessInterval) { + return cmp.lessThan(high, maxValueForInstance(high), precision); + } else if (item?.isBoundlessInterval) { + return false; + } + const closed = this.toClosed(); return ThreeValuedLogic.and( cmp.lessThanOrEquals(closed.low, high, precision), cmp.greaterThan(closed.high, high, precision) @@ -154,8 +178,13 @@ export class Interval { } overlapsBefore(item: any, precision?: any) { - const closed = this.toClosed(); const low = item != null && item.isInterval ? item.toClosed().low : item; + if (this.isBoundlessInterval) { + return cmp.greaterThan(low, minValueForInstance(low), precision); + } else if (item?.isBoundlessInterval) { + return false; + } + const closed = this.toClosed(); return ThreeValuedLogic.and( cmp.lessThan(closed.low, low, precision), cmp.greaterThanOrEquals(closed.high, low, precision) @@ -166,6 +195,11 @@ export class Interval { if (other == null || !other.isInterval) { throw new Error('Argument to union must be an interval'); } + if (this.isBoundlessInterval) { + return this.copy(); + } else if (other.isBoundlessInterval) { + return other.copy(); + } // Note that interval union is only defined if the arguments overlap or meet. if (this.overlaps(other) || this.meets(other)) { const [a, b] = [this.toClosed(), other.toClosed()]; @@ -205,7 +239,12 @@ export class Interval { if (other == null || !other.isInterval) { throw new Error('Argument to union must be an interval'); } - // Note that interval union is only defined if the arguments overlap. + if (this.isBoundlessInterval) { + return other.copy(); + } else if (other.isBoundlessInterval) { + return this.copy(); + } + // Note that interval intersect is only defined if the arguments overlap. if (this.overlaps(other)) { const [a, b] = [this.toClosed(), other.toClosed()]; let l, lc; @@ -347,6 +386,9 @@ export class Interval { } sameOrBefore(other: any, precision?: any) { + if (this.isBoundlessInterval || other?.isBoundlessInterval) { + return this.equals(other); + } if (this.end() == null || other == null || other.start() == null) { return null; } else { @@ -355,6 +397,9 @@ export class Interval { } sameOrAfter(other: any, precision?: any) { + if (this.isBoundlessInterval || other?.isBoundlessInterval) { + return this.equals(other); + } if (this.start() == null || other == null || other.end() == null) { return null; } else { @@ -364,6 +409,11 @@ export class Interval { equals(other: any) { if (other != null && other.isInterval) { + if (this.isBoundlessInterval) { + return other.isBoundlessInterval ? true : other.isUnknownInterval ? null : false; + } else if (other.isBoundlessInterval) { + return this.isUnknownInterval ? null : false; + } const [a, b] = [this.toClosed(), other.toClosed()]; return ThreeValuedLogic.and(cmp.equals(a.low, b.low), cmp.equals(a.high, b.high)); } else { @@ -372,6 +422,9 @@ export class Interval { } after(other: any, precision?: any) { + if (this.isBoundlessInterval || other?.isBoundlessInterval) { + return false; + } const closed = this.toClosed(); // Meets spec, but not 100% correct (e.g., (null, 5] after [6, 10] --> null) // Simple way to fix it: and w/ not overlaps @@ -383,6 +436,9 @@ export class Interval { } before(other: any, precision?: any) { + if (this.isBoundlessInterval || other?.isBoundlessInterval) { + return false; + } const closed = this.toClosed(); // Meets spec, but not 100% correct (e.g., (null, 5] after [6, 10] --> null) // Simple way to fix it: and w/ not overlaps @@ -394,6 +450,9 @@ export class Interval { } meets(other: any, precision?: any) { + if (this.isBoundlessInterval || other?.isBoundlessInterval) { + return false; + } return ThreeValuedLogic.or( this.meetsBefore(other, precision), this.meetsAfter(other, precision) @@ -401,6 +460,9 @@ export class Interval { } meetsAfter(other: any, precision?: any) { + if (this.isBoundlessInterval || other?.isBoundlessInterval) { + return false; + } try { if (precision != null && this.low != null && this.low.isDateTime) { return this.toClosed().low.sameAs( @@ -416,6 +478,9 @@ export class Interval { } meetsBefore(other: any, precision?: any) { + if (this.isBoundlessInterval || other?.isBoundlessInterval) { + return false; + } try { if (precision != null && this.high != null && this.high.isDateTime) { return this.toClosed().high.sameAs( @@ -453,6 +518,11 @@ export class Interval { } starts(other: any, precision?: any) { + if (this.isBoundlessInterval) { + return other.isBoundlessInterval ? true : other.isUnknownInterval ? null : false; + } else if (other?.isBoundlessInterval) { + return this.isUnknownInterval ? null : false; + } let startEqual; if (precision != null && this.low != null && this.low.isDateTime) { startEqual = this.low.sameAs(other.low, precision); @@ -464,6 +534,11 @@ export class Interval { } ends(other: any, precision?: any) { + if (this.isBoundlessInterval) { + return other.isBoundlessInterval ? true : other.isUnknownInterval ? null : false; + } else if (other?.isBoundlessInterval) { + return this.isUnknownInterval ? null : false; + } let endEqual; const startGreaterThanOrEqual = cmp.greaterThanOrEquals(this.low, other.low, precision); if (precision != null && (this.low != null ? this.low.isDateTime : undefined)) { diff --git a/test/datatypes/interval-test.ts b/test/datatypes/interval-test.ts index d2bf7c59a..8e88400d7 100644 --- a/test/datatypes/interval-test.ts +++ b/test/datatypes/interval-test.ts @@ -5,6 +5,8 @@ import { Uncertainty } from '../../src/datatypes/uncertainty'; import data from './interval-data'; const xy = (obj: any) => [obj.x, obj.y]; +const boundlessInterval = () => new Interval(null, null); +const unknownInterval = () => new Interval(null, null, false, false); describe('Interval', () => { it('should properly set all properties when constructed as DateTime interval', () => { @@ -30,6 +32,20 @@ describe('Interval', () => { i.lowClosed.should.be.true(); i.highClosed.should.be.true(); }); + + it('should identify and copy boundless and unknown intervals', () => { + const all = boundlessInterval(); + all.isBoundlessInterval.should.be.true(); + all.isUnknownInterval.should.be.false(); + + const mystery = unknownInterval(); + mystery.isBoundlessInterval.should.be.false(); + mystery.isUnknownInterval.should.be.true(); + + const allCopy = all.copy(); + allCopy.should.eql(all); + allCopy.should.not.equal(all); + }); }); describe('DateTimeInterval.contains', () => { @@ -74,6 +90,8 @@ describe('DateTimeInterval.contains', () => { new Interval(date, null, true, false).contains(date).should.be.true(); should(new Interval(date, null, true, false).contains(late)).be.null(); new Interval(date, null, true, false).contains(early).should.be.false(); + new Interval(null, null).contains(date).should.be.true(); + should(new Interval(null, null, false, false).contains(date)).be.null(); }); it('should properly handle imprecision', () => { @@ -232,6 +250,15 @@ describe('DateTimeInterval.includes', () => { it('should include a point date', () => { d.all2012.closed.includes(d.mid2012.full).should.be.true(); }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().includes(d.mid2012.full).should.be.true(); + boundlessInterval().includes(d.all2012.closed).should.be.true(); + boundlessInterval().includes(unknownInterval()).should.be.true(); + d.all2012.closed.includes(boundlessInterval()).should.be.false(); + should(unknownInterval().includes(d.all2012.closed)).be.null(); + should(unknownInterval().includes(boundlessInterval())).be.null(); + }); }); describe('DateTimeInterval.includedIn', () => { @@ -359,6 +386,27 @@ describe('DateTimeInterval.includedIn', () => { it('should include a point date', () => { d.all2012.closed.includedIn(d.mid2012.full).should.be.true(); }); + + it('should properly handle boundless and unknown intervals', () => { + d.all2012.closed.includedIn(boundlessInterval()).should.be.true(); + boundlessInterval().includedIn(d.all2012.closed).should.be.false(); + boundlessInterval().includedIn(boundlessInterval()).should.be.true(); + unknownInterval().includedIn(boundlessInterval()).should.be.true(); + }); +}); + +describe('DateTimeInterval.properlyIncludes', () => { + let d: any; + beforeEach(() => { + d = data(); + }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().properlyIncludes(d.all2012.closed).should.be.true(); + boundlessInterval().properlyIncludes(boundlessInterval()).should.be.false(); + should(boundlessInterval().properlyIncludes(unknownInterval())).be.null(); + should(unknownInterval().properlyIncludes(d.all2012.closed)).be.null(); + }); }); describe('DateTimeInterval.overlaps(DateTimeInterval)', () => { @@ -451,6 +499,49 @@ describe('DateTimeInterval.overlaps(DateTimeInterval)', () => { y.open.overlaps(x.open).should.be.true(); }); + it('should properly handle null endpoints', () => { + const date = DateTime.parse('2012-01-01T00:00:00.0'); + const early = DateTime.parse('0001-01-01T00:00:00.0'); + const late = DateTime.parse('2999-01-01T00:00:00.0'); + const earlyInterval = new Interval(early, DateTime.parse('2011-01-01T00:00:00.0')); + const lateInterval = new Interval(DateTime.parse('2013-01-01T00:00:00.0'), late); + const startsAtDate = new Interval(date, late); + const endsAtDate = new Interval(early, date); + + should(new Interval(null, date).overlaps(earlyInterval)).be.true(); + should(new Interval(null, date).overlaps(lateInterval)).be.false(); + should(new Interval(null, date, false, true).overlaps(startsAtDate)).be.true(); + should(new Interval(null, date, false, true).overlaps(earlyInterval)).be.null(); + should(new Interval(null, date, false, true).overlaps(lateInterval)).be.false(); + + should(new Interval(date, null).overlaps(lateInterval)).be.true(); + should(new Interval(date, null).overlaps(earlyInterval)).be.false(); + should(new Interval(date, null, true, false).overlaps(endsAtDate)).be.true(); + should(new Interval(date, null, true, false).overlaps(lateInterval)).be.null(); + should(new Interval(date, null, true, false).overlaps(earlyInterval)).be.false(); + + should(new Interval(null, null).overlaps(d.all2012.closed)).be.true(); + should(new Interval(null, null, false, false).overlaps(d.all2012.closed)).be.null(); + should(d.all2012.closed.overlaps(new Interval(null, null))).be.true(); + should(d.all2012.closed.overlaps(new Interval(null, null, false, false))).be.null(); + // TODO: These commented out edge cases with all null endpoints on both sides currently don't pass + //should(new Interval(null, null).overlaps(new Interval(null, null))).be.true(); + //should(new Interval(null, null).overlaps(new Interval(null, null, false, false))).be.true(); + //should(new Interval(null, null, false, false).overlaps(new Interval(null, null))).be.true(); + should( + new Interval(null, null, false, false).overlaps(new Interval(null, null, false, false)) + ).be.null(); + }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().overlaps(boundlessInterval()).should.be.true(); + boundlessInterval().overlaps(d.all2012.closed).should.be.true(); + d.all2012.closed.overlaps(boundlessInterval()).should.be.true(); + boundlessInterval().overlaps(unknownInterval()).should.be.true(); + unknownInterval().overlaps(boundlessInterval()).should.be.true(); + should(unknownInterval().overlaps(d.all2012.closed)).be.null(); + }); + it('should properly handle imprecision', () => { let [x, y] = Array.from(xy(d.dIvl.sameAs)); x.closed.overlaps(y.toMinute).should.be.true(); @@ -511,6 +602,29 @@ describe('DateTimeInterval.overlaps(DateTime)', () => { d.all2012.closed.overlaps(d.aft2012.full).should.be.false(); }); + it('should properly handle null endpoints', () => { + const date = DateTime.parse('2012-01-01T00:00:00.0'); + const early = DateTime.parse('0001-01-01T00:00:00.0'); + const late = DateTime.parse('2999-01-01T00:00:00.0'); + should(new Interval(null, date).overlaps(early)).be.true(); + should(new Interval(null, date).overlaps(late)).be.false(); + should(new Interval(null, date, false, true).overlaps(date)).be.true(); + should(new Interval(null, date, false, true).overlaps(early)).be.null(); + should(new Interval(null, date, false, true).overlaps(late)).be.false(); + should(new Interval(date, null).overlaps(late)).be.true(); + should(new Interval(date, null).overlaps(early)).be.false(); + should(new Interval(date, null, true, false).overlaps(date)).be.true(); + should(new Interval(date, null, true, false).overlaps(late)).be.null(); + should(new Interval(date, null, true, false).overlaps(early)).be.false(); + should(new Interval(null, null).overlaps(date)).be.true(); + should(new Interval(null, null, false, false).overlaps(date)).be.null(); + }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().overlaps(d.mid2012.full).should.be.true(); + should(unknownInterval().overlaps(d.mid2012.full)).be.null(); + }); + it('should properly handle imprecision', () => { d.all2012.closed.overlaps(d.bef2012.toMonth).should.be.false(); should.not.exist(d.all2012.closed.overlaps(d.beg2012.toMonth)); @@ -534,6 +648,30 @@ describe('DateTimeInterval.overlaps(DateTime)', () => { }); }); +describe('DateTimeInterval.overlapsBefore', () => { + let d: any; + beforeEach(() => { + d = data(); + }); + + it('should properly handle boundless intervals', () => { + boundlessInterval().overlapsBefore(d.mid2012.full).should.be.true(); + d.all2012.closed.overlapsBefore(boundlessInterval()).should.be.false(); + }); +}); + +describe('DateTimeInterval.overlapsAfter', () => { + let d: any; + beforeEach(() => { + d = data(); + }); + + it('should properly handle boundless intervals', () => { + boundlessInterval().overlapsAfter(d.mid2012.full).should.be.true(); + d.all2012.closed.overlapsAfter(boundlessInterval()).should.be.false(); + }); +}); + describe('DateTimeInterval.equals', () => { let d: any; beforeEach(() => { @@ -688,6 +826,58 @@ describe('DateTimeInterval.equals', () => { ivl.equals(point).should.be.false(); }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().equals(boundlessInterval()).should.be.true(); + boundlessInterval().equals(d.all2012.closed).should.be.false(); + d.all2012.closed.equals(boundlessInterval()).should.be.false(); + should(boundlessInterval().equals(unknownInterval())).be.null(); + should(unknownInterval().equals(boundlessInterval())).be.null(); + should(unknownInterval().equals(unknownInterval())).be.null(); + }); +}); + +describe('DateTimeInterval.sameAs', () => { + let d: any; + beforeEach(() => { + d = data(); + }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().sameAs(boundlessInterval()).should.be.true(); + boundlessInterval().sameAs(d.all2012.closed).should.be.false(); + d.all2012.closed.sameAs(boundlessInterval()).should.be.false(); + should(boundlessInterval().sameAs(unknownInterval())).be.null(); + should(unknownInterval().sameAs(boundlessInterval())).be.null(); + }); +}); + +describe('DateTimeInterval.sameOrBefore', () => { + let d: any; + beforeEach(() => { + d = data(); + }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().sameOrBefore(boundlessInterval()).should.be.true(); + boundlessInterval().sameOrBefore(d.all2012.closed).should.be.false(); + d.all2012.closed.sameOrBefore(boundlessInterval()).should.be.false(); + should(unknownInterval().sameOrBefore(boundlessInterval())).be.null(); + }); +}); + +describe('DateTimeInterval.sameOrAfter', () => { + let d: any; + beforeEach(() => { + d = data(); + }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().sameOrAfter(boundlessInterval()).should.be.true(); + boundlessInterval().sameOrAfter(d.all2012.closed).should.be.false(); + d.all2012.closed.sameOrAfter(boundlessInterval()).should.be.false(); + should(unknownInterval().sameOrAfter(boundlessInterval())).be.null(); + }); }); describe('DateTimeInterval.union', () => { @@ -870,6 +1060,13 @@ describe('DateTimeInterval.union', () => { it('should throw when the argument is a point', () => { should(() => d.all2012.closed.union(d.mid2012.closed)).throw(Error); }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().union(d.all2012.closed).should.eql(boundlessInterval()); + d.all2012.closed.union(boundlessInterval()).should.eql(boundlessInterval()); + boundlessInterval().union(unknownInterval()).should.eql(boundlessInterval()); + unknownInterval().union(boundlessInterval()).should.eql(boundlessInterval()); + }); }); describe('DateTimeInterval.intersect', () => { @@ -996,6 +1193,13 @@ describe('DateTimeInterval.intersect', () => { it('should throw when the argument is a point', () => { should(() => d.all2012.intersect(DateTime.parse('2012-07-01T00:00:00.0'))).throw(Error); }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().intersect(d.all2012.closed).should.eql(d.all2012.closed); + d.all2012.closed.intersect(boundlessInterval()).should.eql(d.all2012.closed); + boundlessInterval().intersect(unknownInterval()).should.eql(unknownInterval()); + unknownInterval().intersect(boundlessInterval()).should.eql(unknownInterval()); + }); }); describe('DateTimeInterval.except', () => { @@ -1261,6 +1465,11 @@ describe('DateTimeInterval.after', () => { should.not.exist(x.toYear.after(y.closed)); should.not.exist(x.toYear.after(x.closed)); }); + + it('should properly handle boundless intervals', () => { + boundlessInterval().after(d.all2012.closed).should.be.false(); + d.all2012.closed.after(boundlessInterval()).should.be.false(); + }); }); describe('DateTimeInterval.before', () => { @@ -1393,6 +1602,11 @@ describe('DateTimeInterval.before', () => { should.not.exist(y.toYear.before(x.closed)); should.not.exist(x.toYear.before(y.closed)); }); + + it('should properly handle boundless intervals', () => { + boundlessInterval().before(d.all2012.closed).should.be.false(); + d.all2012.closed.before(boundlessInterval()).should.be.false(); + }); }); // TODO Add tests that pass in precision parameters @@ -1516,6 +1730,11 @@ describe('DateTimeInterval.meets', () => { x.toMinute.meets(y.toMinute).should.be.false(); x.toYear.meets(y.closed).should.be.false(); }); + + it('should properly handle boundless intervals', () => { + boundlessInterval().meets(d.all2012.closed).should.be.false(); + d.all2012.closed.meets(boundlessInterval()).should.be.false(); + }); }); // TODO Add tests that pass in precision parameter @@ -1644,6 +1863,11 @@ describe('DateTimeInterval.meetsAfter', () => { x.toMinute.meetsAfter(y.toMinute).should.be.false(); x.toYear.meetsAfter(y.closed).should.be.false(); }); + + it('should properly handle boundless intervals', () => { + boundlessInterval().meetsAfter(d.all2012.closed).should.be.false(); + d.all2012.closed.meetsAfter(boundlessInterval()).should.be.false(); + }); }); // TODO Add tests that pass in precision parameter @@ -1768,6 +1992,41 @@ describe('DateTimeInterval.meetsBefore', () => { x.toMinute.meetsBefore(y.toMinute).should.be.false(); x.toYear.meetsBefore(y.closed).should.be.false(); }); + + it('should properly handle boundless intervals', () => { + boundlessInterval().meetsBefore(d.all2012.closed).should.be.false(); + d.all2012.closed.meetsBefore(boundlessInterval()).should.be.false(); + }); +}); + +describe('DateTimeInterval.starts', () => { + let d: any; + beforeEach(() => { + d = data(); + }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().starts(boundlessInterval()).should.be.true(); + boundlessInterval().starts(d.all2012.closed).should.be.false(); + d.all2012.closed.starts(boundlessInterval()).should.be.false(); + should(boundlessInterval().starts(unknownInterval())).be.null(); + should(unknownInterval().starts(boundlessInterval())).be.null(); + }); +}); + +describe('DateTimeInterval.ends', () => { + let d: any; + beforeEach(() => { + d = data(); + }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().ends(boundlessInterval()).should.be.true(); + boundlessInterval().ends(d.all2012.closed).should.be.false(); + d.all2012.closed.ends(boundlessInterval()).should.be.false(); + should(boundlessInterval().ends(unknownInterval())).be.null(); + should(unknownInterval().ends(boundlessInterval())).be.null(); + }); }); describe('IntegerInterval.contains', () => { @@ -1809,6 +2068,8 @@ describe('IntegerInterval.contains', () => { new Interval(0, null, true, false).contains(0).should.be.true(); should(new Interval(0, null, true, false).contains(123456789)).be.null(); new Interval(0, null, true, false).contains(-1).should.be.false(); + new Interval(null, null).contains(5).should.be.true(); + should(new Interval(null, null, false, false).contains(5)).be.null(); }); it('should properly handle imprecision', () => { @@ -1960,6 +2221,15 @@ describe('IntegerInterval.includes', () => { it('should include a point Integer', () => { d.zeroToHundred.closed.includes(50).should.be.true(); }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().includes(50).should.be.true(); + boundlessInterval().includes(d.zeroToHundred.closed).should.be.true(); + boundlessInterval().includes(unknownInterval()).should.be.true(); + d.zeroToHundred.closed.includes(boundlessInterval()).should.be.false(); + should(unknownInterval().includes(d.zeroToHundred.closed)).be.null(); + should(unknownInterval().includes(boundlessInterval())).be.null(); + }); }); describe('IntegerInterval.includedIn', () => { @@ -2079,6 +2349,27 @@ describe('IntegerInterval.includedIn', () => { d.zeroToHundred.closed.includedIn(50).should.be.true(); d.zeroToHundred.closed.includedIn(500).should.be.false(); }); + + it('should properly handle boundless and unknown intervals', () => { + d.zeroToHundred.closed.includedIn(boundlessInterval()).should.be.true(); + boundlessInterval().includedIn(d.zeroToHundred.closed).should.be.false(); + boundlessInterval().includedIn(boundlessInterval()).should.be.true(); + unknownInterval().includedIn(boundlessInterval()).should.be.true(); + }); +}); + +describe('IntegerInterval.properlyIncludes', () => { + let d: any; + beforeEach(() => { + d = data(); + }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().properlyIncludes(d.zeroToHundred.closed).should.be.true(); + boundlessInterval().properlyIncludes(boundlessInterval()).should.be.false(); + should(boundlessInterval().properlyIncludes(unknownInterval())).be.null(); + should(unknownInterval().properlyIncludes(d.zeroToHundred.closed)).be.null(); + }); }); describe('IntegerInterval.overlaps(IntegerInterval)', () => { @@ -2171,6 +2462,39 @@ describe('IntegerInterval.overlaps(IntegerInterval)', () => { y.open.overlaps(x.open).should.be.true(); }); + it('should properly handle null endpoints', () => { + const earlyInterval = new Interval(-123456789, -1); + const lateInterval = new Interval(1, 123456789); + const startsAtZero = new Interval(0, 123456789); + const endsAtZero = new Interval(-123456789, 0); + + should(new Interval(null, 0).overlaps(earlyInterval)).be.true(); + should(new Interval(null, 0).overlaps(lateInterval)).be.false(); + should(new Interval(null, 0, false, true).overlaps(startsAtZero)).be.true(); + should(new Interval(null, 0, false, true).overlaps(earlyInterval)).be.null(); + should(new Interval(null, 0, false, true).overlaps(lateInterval)).be.false(); + + should(new Interval(0, null).overlaps(lateInterval)).be.true(); + should(new Interval(0, null).overlaps(earlyInterval)).be.false(); + should(new Interval(0, null, true, false).overlaps(endsAtZero)).be.true(); + should(new Interval(0, null, true, false).overlaps(lateInterval)).be.null(); + should(new Interval(0, null, true, false).overlaps(earlyInterval)).be.false(); + + should(new Interval(null, null).overlaps(d.zeroToHundred.closed)).be.true(); + should(new Interval(null, null, false, false).overlaps(d.zeroToHundred.closed)).be.null(); + should(d.zeroToHundred.closed.overlaps(new Interval(null, null))).be.true(); + should(d.zeroToHundred.closed.overlaps(new Interval(null, null, false, false))).be.null(); + }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().overlaps(boundlessInterval()).should.be.true(); + boundlessInterval().overlaps(d.zeroToHundred.closed).should.be.true(); + d.zeroToHundred.closed.overlaps(boundlessInterval()).should.be.true(); + boundlessInterval().overlaps(unknownInterval()).should.be.true(); + unknownInterval().overlaps(boundlessInterval()).should.be.true(); + should(unknownInterval().overlaps(d.zeroToHundred.closed)).be.null(); + }); + it('should properly handle imprecision', () => { const uIvl = new Interval(new Uncertainty(5, 10), new Uncertainty(15, 20)); @@ -2222,6 +2546,26 @@ describe('IntegerInterval.overlaps(Integer)', () => { d.zeroToHundred.closed.overlaps(105).should.be.false(); }); + it('should properly handle null endpoints', () => { + should(new Interval(null, 0).overlaps(-123456789)).be.true(); + should(new Interval(null, 0).overlaps(1)).be.false(); + should(new Interval(null, 0, false, true).overlaps(0)).be.true(); + should(new Interval(null, 0, false, true).overlaps(-123456789)).be.null(); + should(new Interval(null, 0, false, true).overlaps(1)).be.false(); + should(new Interval(0, null).overlaps(123456789)).be.true(); + should(new Interval(0, null).overlaps(-1)).be.false(); + should(new Interval(0, null, true, false).overlaps(0)).be.true(); + should(new Interval(0, null, true, false).overlaps(123456789)).be.null(); + should(new Interval(0, null, true, false).overlaps(-1)).be.false(); + should(new Interval(null, null).overlaps(5)).be.true(); + should(new Interval(null, null, false, false).overlaps(5)).be.null(); + }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().overlaps(5).should.be.true(); + should(unknownInterval().overlaps(5)).be.null(); + }); + it('should properly handle imprecision', () => { d.zeroToHundred.closed.overlaps(new Uncertainty(-20, -10)).should.be.false(); should.not.exist(d.zeroToHundred.closed.overlaps(new Uncertainty(-20, 20))); @@ -2252,6 +2596,32 @@ describe('IntegerInterval.overlaps(Integer)', () => { }); }); +describe('IntegerInterval.overlapsBefore', () => { + let d: any; + beforeEach(() => { + d = data(); + }); + + it('should properly handle boundless intervals', () => { + boundlessInterval().overlapsBefore(d.zeroToHundred.closed).should.be.true(); + boundlessInterval().overlapsBefore(5).should.be.true(); + d.zeroToHundred.closed.overlapsBefore(boundlessInterval()).should.be.false(); + }); +}); + +describe('IntegerInterval.overlapsAfter', () => { + let d: any; + beforeEach(() => { + d = data(); + }); + + it('should properly handle boundless intervals', () => { + boundlessInterval().overlapsAfter(d.zeroToHundred.closed).should.be.true(); + boundlessInterval().overlapsAfter(5).should.be.true(); + d.zeroToHundred.closed.overlapsAfter(boundlessInterval()).should.be.false(); + }); +}); + describe('IntegerInterval.equals', () => { let d: any; beforeEach(() => { @@ -2392,6 +2762,58 @@ describe('IntegerInterval.equals', () => { ivl.equals(point).should.be.false(); }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().equals(boundlessInterval()).should.be.true(); + boundlessInterval().equals(d.zeroToHundred.closed).should.be.false(); + d.zeroToHundred.closed.equals(boundlessInterval()).should.be.false(); + should(boundlessInterval().equals(unknownInterval())).be.null(); + should(unknownInterval().equals(boundlessInterval())).be.null(); + should(unknownInterval().equals(unknownInterval())).be.null(); + }); +}); + +describe('IntegerInterval.sameAs', () => { + let d: any; + beforeEach(() => { + d = data(); + }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().sameAs(boundlessInterval()).should.be.true(); + boundlessInterval().sameAs(d.zeroToHundred.closed).should.be.false(); + d.zeroToHundred.closed.sameAs(boundlessInterval()).should.be.false(); + should(boundlessInterval().sameAs(unknownInterval())).be.null(); + should(unknownInterval().sameAs(boundlessInterval())).be.null(); + }); +}); + +describe('IntegerInterval.sameOrBefore', () => { + let d: any; + beforeEach(() => { + d = data(); + }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().sameOrBefore(boundlessInterval()).should.be.true(); + boundlessInterval().sameOrBefore(d.zeroToHundred.closed).should.be.false(); + d.zeroToHundred.closed.sameOrBefore(boundlessInterval()).should.be.false(); + should(unknownInterval().sameOrBefore(boundlessInterval())).be.null(); + }); +}); + +describe('IntegerInterval.sameOrAfter', () => { + let d: any; + beforeEach(() => { + d = data(); + }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().sameOrAfter(boundlessInterval()).should.be.true(); + boundlessInterval().sameOrAfter(d.zeroToHundred.closed).should.be.false(); + d.zeroToHundred.closed.sameOrAfter(boundlessInterval()).should.be.false(); + should(unknownInterval().sameOrAfter(boundlessInterval())).be.null(); + }); }); describe('IntegerInterval.union', () => { @@ -2536,6 +2958,13 @@ describe('IntegerInterval.union', () => { it('should throw when the argument is a point', () => { should(() => d.zeroToHundred.union(300)).throw(Error); }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().union(d.zeroToHundred.closed).should.eql(boundlessInterval()); + d.zeroToHundred.closed.union(boundlessInterval()).should.eql(boundlessInterval()); + boundlessInterval().union(unknownInterval()).should.eql(boundlessInterval()); + unknownInterval().union(boundlessInterval()).should.eql(boundlessInterval()); + }); }); describe('IntegerInterval.intersect', () => { @@ -2672,6 +3101,13 @@ describe('IntegerInterval.intersect', () => { it('should throw when the argument is a point', () => { should(() => d.zeroToHundred.intersect(50)).throw(Error); }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().intersect(d.zeroToHundred.closed).should.eql(d.zeroToHundred.closed); + d.zeroToHundred.closed.intersect(boundlessInterval()).should.eql(d.zeroToHundred.closed); + boundlessInterval().intersect(unknownInterval()).should.eql(unknownInterval()); + unknownInterval().intersect(boundlessInterval()).should.eql(unknownInterval()); + }); }); describe('IntegerInterval.except', () => { @@ -2927,6 +3363,11 @@ describe('IntegerInterval.after', () => { uIvl.after(uIvl).should.be.false(); }); + + it('should properly handle boundless intervals', () => { + boundlessInterval().after(d.zeroToHundred.closed).should.be.false(); + d.zeroToHundred.closed.after(boundlessInterval()).should.be.false(); + }); }); describe('IntegerInterval.before', () => { @@ -3048,6 +3489,11 @@ describe('IntegerInterval.before', () => { uIvl.before(uIvl).should.be.false(); }); + + it('should properly handle boundless intervals', () => { + boundlessInterval().before(d.zeroToHundred.closed).should.be.false(); + d.zeroToHundred.closed.before(boundlessInterval()).should.be.false(); + }); }); describe('IntegerInterval.meets', () => { @@ -3169,6 +3615,11 @@ describe('IntegerInterval.meets', () => { uIvl.meets(uIvl).should.be.false(); }); + + it('should properly handle boundless intervals', () => { + boundlessInterval().meets(d.zeroToHundred.closed).should.be.false(); + d.zeroToHundred.closed.meets(boundlessInterval()).should.be.false(); + }); }); describe('IntegerInterval.meetsAfter', () => { @@ -3290,6 +3741,11 @@ describe('IntegerInterval.meetsAfter', () => { uIvl.meetsAfter(uIvl).should.be.false(); }); + + it('should properly handle boundless intervals', () => { + boundlessInterval().meetsAfter(d.zeroToHundred.closed).should.be.false(); + d.zeroToHundred.closed.meetsAfter(boundlessInterval()).should.be.false(); + }); }); describe('IntegerInterval.meetsBefore', () => { @@ -3411,6 +3867,41 @@ describe('IntegerInterval.meetsBefore', () => { uIvl.meetsBefore(uIvl).should.be.false(); }); + + it('should properly handle boundless intervals', () => { + boundlessInterval().meetsBefore(d.zeroToHundred.closed).should.be.false(); + d.zeroToHundred.closed.meetsBefore(boundlessInterval()).should.be.false(); + }); +}); + +describe('IntegerInterval.starts', () => { + let d: any; + beforeEach(() => { + d = data(); + }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().starts(boundlessInterval()).should.be.true(); + boundlessInterval().starts(d.zeroToHundred.closed).should.be.false(); + d.zeroToHundred.closed.starts(boundlessInterval()).should.be.false(); + should(boundlessInterval().starts(unknownInterval())).be.null(); + should(unknownInterval().starts(boundlessInterval())).be.null(); + }); +}); + +describe('IntegerInterval.ends', () => { + let d: any; + beforeEach(() => { + d = data(); + }); + + it('should properly handle boundless and unknown intervals', () => { + boundlessInterval().ends(boundlessInterval()).should.be.true(); + boundlessInterval().ends(d.zeroToHundred.closed).should.be.false(); + d.zeroToHundred.closed.ends(boundlessInterval()).should.be.false(); + should(boundlessInterval().ends(unknownInterval())).be.null(); + should(unknownInterval().ends(boundlessInterval())).be.null(); + }); }); // TODO: Tests for real numbers (i.e., floats) diff --git a/test/elm/interval/data.cql b/test/elm/interval/data.cql index c62bfb760..7b6f63bd4 100644 --- a/test/elm/interval/data.cql +++ b/test/elm/interval/data.cql @@ -643,6 +643,8 @@ define OverlapsBeforeRealIvl: Interval[1.234, 1.567] overlaps Interval[1.345, 1. define OverlapsAfterRealIvl: Interval[1.345, 1.678] overlaps Interval[1.234, 1.567] define OverlapsBoundaryRealIvl: Interval[1.0, 1.234] overlaps Interval[1.234, 2.0] define NoOverlapsRealIvl: Interval[1.0, 1.23456789) overlaps Interval[1.23456789, 2.0] +define OverlapsClosedNullIntervalLHS: (Interval[null, null] as Interval) overlaps Interval[6, 10] +define OverlapsClosedNullIntervalRHS: Interval[6, 10] overlaps (Interval[null, null] as Interval) define OverlapsIsNull: Interval[6, 10] overlaps (null as Interval) // @Test: OverlapsDateTime @@ -663,6 +665,8 @@ define NoOverlap: ivlC overlaps ivlD define NoImpreciseOverlap: ivlE overlaps ivlG define UnknownOverlap: ivlE overlaps ivlH define MatchingPrecisionOverlap: ivlF overlaps ivlG +define OverlapsClosedNullIntervalLHS: (Interval[null, null] as Interval) overlaps ivlA +define OverlapsClosedNullIntervalRHS: ivlA overlaps (Interval[null, null] as Interval) define PrecisionDateIvl: Interval[DateTime(2012, 3, 2, 12, 34, 56, 789), DateTime(2012, 9, 2, 1, 23, 45, 678)) // NOTE: There appears to be a bug in cql-to-elm that translates these 'overlaps' to 'OverlapsAfter'! define OverlapsBeforeDayOfIvlEdge: PrecisionDateIvl overlaps day of Interval[DateTime(2012, 9, 2, 23, 59, 59, 999), DateTime(2012, 10, 1, 0, 0, 0, 0)] diff --git a/test/elm/interval/data.js b/test/elm/interval/data.js index 67228ef67..0bb879a30 100644 --- a/test/elm/interval/data.js +++ b/test/elm/interval/data.js @@ -139784,6 +139784,8 @@ define OverlapsBeforeRealIvl: Interval[1.234, 1.567] overlaps Interval[1.345, 1. define OverlapsAfterRealIvl: Interval[1.345, 1.678] overlaps Interval[1.234, 1.567] define OverlapsBoundaryRealIvl: Interval[1.0, 1.234] overlaps Interval[1.234, 2.0] define NoOverlapsRealIvl: Interval[1.0, 1.23456789) overlaps Interval[1.23456789, 2.0] +define OverlapsClosedNullIntervalLHS: (Interval[null, null] as Interval) overlaps Interval[6, 10] +define OverlapsClosedNullIntervalRHS: Interval[6, 10] overlaps (Interval[null, null] as Interval) define OverlapsIsNull: Interval[6, 10] overlaps (null as Interval) */ @@ -139799,7 +139801,7 @@ module.exports['Overlaps'] = { "type" : "Annotation", "t" : [ ], "s" : { - "r" : "358", + "r" : "412", "s" : [ { "value" : [ "", "library TestSnippet version '1'" ] } ] @@ -140898,7 +140900,7 @@ module.exports['Overlaps'] = { }, { "localId" : "358", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", - "name" : "OverlapsIsNull", + "name" : "OverlapsClosedNullIntervalLHS", "context" : "Patient", "accessLevel" : "Public", "annotation" : [ { @@ -140907,33 +140909,411 @@ module.exports['Overlaps'] = { "s" : { "r" : "358", "s" : [ { - "value" : [ "", "define ", "OverlapsIsNull", ": " ] + "value" : [ "", "define ", "OverlapsClosedNullIntervalLHS", ": " ] }, { - "r" : "374", + "r" : "378", "s" : [ { - "r" : "361", + "r" : "359", "s" : [ { + "value" : [ "(" ] + }, { "r" : "359", + "s" : [ { + "r" : "362", + "s" : [ { + "r" : "360", + "value" : [ "Interval[", "null", ", ", "null", "]" ] + } ] + }, { + "value" : [ " as " ] + }, { + "r" : "365", + "s" : [ { + "value" : [ "Interval<" ] + }, { + "r" : "366", + "s" : [ { + "value" : [ "Integer" ] + } ] + }, { + "value" : [ ">" ] + } ] + } ] + }, { + "value" : [ ")" ] + } ] + }, { + "r" : "378", + "value" : [ " ", "overlaps", " " ] + }, { + "r" : "375", + "s" : [ { + "r" : "373", + "value" : [ "Interval[", "6", ", ", "10", "]" ] + } ] + } ] + } ] + } + } ], + "expression" : { + "type" : "Overlaps", + "localId" : "378", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", + "annotation" : [ ], + "signature" : [ { + "type" : "IntervalTypeSpecifier", + "localId" : "379", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "380", + "name" : "{urn:hl7-org:elm-types:r1}Integer", + "annotation" : [ ] + } + }, { + "type" : "IntervalTypeSpecifier", + "localId" : "381", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "382", + "name" : "{urn:hl7-org:elm-types:r1}Integer", + "annotation" : [ ] + } + } ], + "operand" : [ { + "type" : "As", + "localId" : "359", + "strict" : false, + "annotation" : [ ], + "resultTypeSpecifier" : { + "type" : "IntervalTypeSpecifier", + "localId" : "371", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "372", + "name" : "{urn:hl7-org:elm-types:r1}Integer", + "annotation" : [ ] + } + }, + "signature" : [ ], + "operand" : { + "type" : "Interval", + "localId" : "362", + "lowClosed" : true, + "highClosed" : true, + "annotation" : [ ], + "resultTypeSpecifier" : { + "type" : "IntervalTypeSpecifier", + "localId" : "363", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "364", + "name" : "{urn:hl7-org:elm-types:r1}Any", + "annotation" : [ ] + } + }, + "low" : { + "type" : "Null", + "localId" : "360", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Any", + "annotation" : [ ] + }, + "high" : { + "type" : "Null", + "localId" : "361", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Any", + "annotation" : [ ] + } + }, + "asTypeSpecifier" : { + "type" : "IntervalTypeSpecifier", + "localId" : "365", + "annotation" : [ ], + "resultTypeSpecifier" : { + "type" : "IntervalTypeSpecifier", + "localId" : "367", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "368", + "name" : "{urn:hl7-org:elm-types:r1}Integer", + "annotation" : [ ] + } + }, + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "366", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", + "name" : "{urn:hl7-org:elm-types:r1}Integer", + "annotation" : [ ] + } + } + }, { + "type" : "Interval", + "localId" : "375", + "lowClosed" : true, + "highClosed" : true, + "annotation" : [ ], + "resultTypeSpecifier" : { + "type" : "IntervalTypeSpecifier", + "localId" : "376", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "377", + "name" : "{urn:hl7-org:elm-types:r1}Integer", + "annotation" : [ ] + } + }, + "low" : { + "type" : "Literal", + "localId" : "373", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", + "valueType" : "{urn:hl7-org:elm-types:r1}Integer", + "value" : "6", + "annotation" : [ ] + }, + "high" : { + "type" : "Literal", + "localId" : "374", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", + "valueType" : "{urn:hl7-org:elm-types:r1}Integer", + "value" : "10", + "annotation" : [ ] + } + } ] + } + }, { + "localId" : "385", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", + "name" : "OverlapsClosedNullIntervalRHS", + "context" : "Patient", + "accessLevel" : "Public", + "annotation" : [ { + "type" : "Annotation", + "t" : [ ], + "s" : { + "r" : "385", + "s" : [ { + "value" : [ "", "define ", "OverlapsClosedNullIntervalRHS", ": " ] + }, { + "r" : "405", + "s" : [ { + "r" : "388", + "s" : [ { + "r" : "386", "value" : [ "Interval[", "6", ", ", "10", "]" ] } ] }, { - "r" : "374", + "r" : "405", "value" : [ " ", "overlaps", " " ] }, { - "r" : "364", + "r" : "391", "s" : [ { "value" : [ "(" ] }, { - "r" : "364", + "r" : "391", "s" : [ { - "r" : "365", + "r" : "394", + "s" : [ { + "r" : "392", + "value" : [ "Interval[", "null", ", ", "null", "]" ] + } ] + }, { + "value" : [ " as " ] + }, { + "r" : "397", + "s" : [ { + "value" : [ "Interval<" ] + }, { + "r" : "398", + "s" : [ { + "value" : [ "Integer" ] + } ] + }, { + "value" : [ ">" ] + } ] + } ] + }, { + "value" : [ ")" ] + } ] + } ] + } ] + } + } ], + "expression" : { + "type" : "Overlaps", + "localId" : "405", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", + "annotation" : [ ], + "signature" : [ { + "type" : "IntervalTypeSpecifier", + "localId" : "406", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "407", + "name" : "{urn:hl7-org:elm-types:r1}Integer", + "annotation" : [ ] + } + }, { + "type" : "IntervalTypeSpecifier", + "localId" : "408", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "409", + "name" : "{urn:hl7-org:elm-types:r1}Integer", + "annotation" : [ ] + } + } ], + "operand" : [ { + "type" : "Interval", + "localId" : "388", + "lowClosed" : true, + "highClosed" : true, + "annotation" : [ ], + "resultTypeSpecifier" : { + "type" : "IntervalTypeSpecifier", + "localId" : "389", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "390", + "name" : "{urn:hl7-org:elm-types:r1}Integer", + "annotation" : [ ] + } + }, + "low" : { + "type" : "Literal", + "localId" : "386", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", + "valueType" : "{urn:hl7-org:elm-types:r1}Integer", + "value" : "6", + "annotation" : [ ] + }, + "high" : { + "type" : "Literal", + "localId" : "387", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", + "valueType" : "{urn:hl7-org:elm-types:r1}Integer", + "value" : "10", + "annotation" : [ ] + } + }, { + "type" : "As", + "localId" : "391", + "strict" : false, + "annotation" : [ ], + "resultTypeSpecifier" : { + "type" : "IntervalTypeSpecifier", + "localId" : "403", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "404", + "name" : "{urn:hl7-org:elm-types:r1}Integer", + "annotation" : [ ] + } + }, + "signature" : [ ], + "operand" : { + "type" : "Interval", + "localId" : "394", + "lowClosed" : true, + "highClosed" : true, + "annotation" : [ ], + "resultTypeSpecifier" : { + "type" : "IntervalTypeSpecifier", + "localId" : "395", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "396", + "name" : "{urn:hl7-org:elm-types:r1}Any", + "annotation" : [ ] + } + }, + "low" : { + "type" : "Null", + "localId" : "392", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Any", + "annotation" : [ ] + }, + "high" : { + "type" : "Null", + "localId" : "393", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Any", + "annotation" : [ ] + } + }, + "asTypeSpecifier" : { + "type" : "IntervalTypeSpecifier", + "localId" : "397", + "annotation" : [ ], + "resultTypeSpecifier" : { + "type" : "IntervalTypeSpecifier", + "localId" : "399", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "400", + "name" : "{urn:hl7-org:elm-types:r1}Integer", + "annotation" : [ ] + } + }, + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "398", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", + "name" : "{urn:hl7-org:elm-types:r1}Integer", + "annotation" : [ ] + } + } + } ] + } + }, { + "localId" : "412", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", + "name" : "OverlapsIsNull", + "context" : "Patient", + "accessLevel" : "Public", + "annotation" : [ { + "type" : "Annotation", + "t" : [ ], + "s" : { + "r" : "412", + "s" : [ { + "value" : [ "", "define ", "OverlapsIsNull", ": " ] + }, { + "r" : "428", + "s" : [ { + "r" : "415", + "s" : [ { + "r" : "413", + "value" : [ "Interval[", "6", ", ", "10", "]" ] + } ] + }, { + "r" : "428", + "value" : [ " ", "overlaps", " " ] + }, { + "r" : "418", + "s" : [ { + "value" : [ "(" ] + }, { + "r" : "418", + "s" : [ { + "r" : "419", "value" : [ "null", " as " ] }, { - "r" : "366", + "r" : "420", "s" : [ { "value" : [ "Interval<" ] }, { - "r" : "367", + "r" : "421", "s" : [ { "value" : [ "Integer" ] } ] @@ -140950,50 +141330,50 @@ module.exports['Overlaps'] = { } ], "expression" : { "type" : "Overlaps", - "localId" : "374", + "localId" : "428", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", "annotation" : [ ], "signature" : [ { "type" : "IntervalTypeSpecifier", - "localId" : "375", + "localId" : "429", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "376", + "localId" : "430", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } }, { "type" : "IntervalTypeSpecifier", - "localId" : "377", + "localId" : "431", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "378", + "localId" : "432", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } } ], "operand" : [ { "type" : "Interval", - "localId" : "361", + "localId" : "415", "lowClosed" : true, "highClosed" : true, "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "362", + "localId" : "416", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "363", + "localId" : "417", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } }, "low" : { "type" : "Literal", - "localId" : "359", + "localId" : "413", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "6", @@ -141001,7 +141381,7 @@ module.exports['Overlaps'] = { }, "high" : { "type" : "Literal", - "localId" : "360", + "localId" : "414", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "10", @@ -141009,16 +141389,16 @@ module.exports['Overlaps'] = { } }, { "type" : "As", - "localId" : "364", + "localId" : "418", "strict" : false, "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "372", + "localId" : "426", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "373", + "localId" : "427", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } @@ -141026,28 +141406,28 @@ module.exports['Overlaps'] = { "signature" : [ ], "operand" : { "type" : "Null", - "localId" : "365", + "localId" : "419", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Any", "annotation" : [ ] }, "asTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "366", + "localId" : "420", "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "368", + "localId" : "422", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "369", + "localId" : "423", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } }, "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "367", + "localId" : "421", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] @@ -141081,6 +141461,8 @@ define NoOverlap: ivlC overlaps ivlD define NoImpreciseOverlap: ivlE overlaps ivlG define UnknownOverlap: ivlE overlaps ivlH define MatchingPrecisionOverlap: ivlF overlaps ivlG +define OverlapsClosedNullIntervalLHS: (Interval[null, null] as Interval) overlaps ivlA +define OverlapsClosedNullIntervalRHS: ivlA overlaps (Interval[null, null] as Interval) define PrecisionDateIvl: Interval[DateTime(2012, 3, 2, 12, 34, 56, 789), DateTime(2012, 9, 2, 1, 23, 45, 678)) // NOTE: There appears to be a bug in cql-to-elm that translates these 'overlaps' to 'OverlapsAfter'! define OverlapsBeforeDayOfIvlEdge: PrecisionDateIvl overlaps day of Interval[DateTime(2012, 9, 2, 23, 59, 59, 999), DateTime(2012, 10, 1, 0, 0, 0, 0)] @@ -141105,7 +141487,7 @@ module.exports['OverlapsDateTime'] = { "type" : "Annotation", "t" : [ ], "s" : { - "r" : "1083", + "r" : "1133", "s" : [ { "value" : [ "", "library TestSnippet version '1'" ] } ] @@ -143428,21 +143810,309 @@ module.exports['OverlapsDateTime'] = { "s" : { "r" : "639", "s" : [ { - "value" : [ "", "define ", "MatchingPrecisionOverlap", ": " ] + "value" : [ "", "define ", "MatchingPrecisionOverlap", ": " ] + }, { + "r" : "646", + "s" : [ { + "r" : "640", + "s" : [ { + "value" : [ "ivlF" ] + } ] + }, { + "r" : "646", + "value" : [ " ", "overlaps", " " ] + }, { + "r" : "643", + "s" : [ { + "value" : [ "ivlG" ] + } ] + } ] + } ] + } + } ], + "expression" : { + "type" : "Overlaps", + "localId" : "646", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", + "annotation" : [ ], + "signature" : [ { + "type" : "IntervalTypeSpecifier", + "localId" : "647", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "648", + "name" : "{urn:hl7-org:elm-types:r1}DateTime", + "annotation" : [ ] + } + }, { + "type" : "IntervalTypeSpecifier", + "localId" : "649", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "650", + "name" : "{urn:hl7-org:elm-types:r1}DateTime", + "annotation" : [ ] + } + } ], + "operand" : [ { + "type" : "ExpressionRef", + "localId" : "640", + "name" : "ivlF", + "annotation" : [ ], + "resultTypeSpecifier" : { + "type" : "IntervalTypeSpecifier", + "localId" : "641", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "642", + "name" : "{urn:hl7-org:elm-types:r1}DateTime", + "annotation" : [ ] + } + } + }, { + "type" : "ExpressionRef", + "localId" : "643", + "name" : "ivlG", + "annotation" : [ ], + "resultTypeSpecifier" : { + "type" : "IntervalTypeSpecifier", + "localId" : "644", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "645", + "name" : "{urn:hl7-org:elm-types:r1}DateTime", + "annotation" : [ ] + } + } + } ] + } + }, { + "localId" : "653", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", + "name" : "OverlapsClosedNullIntervalLHS", + "context" : "Patient", + "accessLevel" : "Public", + "annotation" : [ { + "type" : "Annotation", + "t" : [ ], + "s" : { + "r" : "653", + "s" : [ { + "value" : [ "", "define ", "OverlapsClosedNullIntervalLHS", ": " ] + }, { + "r" : "671", + "s" : [ { + "r" : "654", + "s" : [ { + "value" : [ "(" ] + }, { + "r" : "654", + "s" : [ { + "r" : "657", + "s" : [ { + "r" : "655", + "value" : [ "Interval[", "null", ", ", "null", "]" ] + } ] + }, { + "value" : [ " as " ] + }, { + "r" : "660", + "s" : [ { + "value" : [ "Interval<" ] + }, { + "r" : "661", + "s" : [ { + "value" : [ "DateTime" ] + } ] + }, { + "value" : [ ">" ] + } ] + } ] + }, { + "value" : [ ")" ] + } ] + }, { + "r" : "671", + "value" : [ " ", "overlaps", " " ] + }, { + "r" : "668", + "s" : [ { + "value" : [ "ivlA" ] + } ] + } ] + } ] + } + } ], + "expression" : { + "type" : "Overlaps", + "localId" : "671", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", + "annotation" : [ ], + "signature" : [ { + "type" : "IntervalTypeSpecifier", + "localId" : "672", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "673", + "name" : "{urn:hl7-org:elm-types:r1}DateTime", + "annotation" : [ ] + } + }, { + "type" : "IntervalTypeSpecifier", + "localId" : "674", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "675", + "name" : "{urn:hl7-org:elm-types:r1}DateTime", + "annotation" : [ ] + } + } ], + "operand" : [ { + "type" : "As", + "localId" : "654", + "strict" : false, + "annotation" : [ ], + "resultTypeSpecifier" : { + "type" : "IntervalTypeSpecifier", + "localId" : "666", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "667", + "name" : "{urn:hl7-org:elm-types:r1}DateTime", + "annotation" : [ ] + } + }, + "signature" : [ ], + "operand" : { + "type" : "Interval", + "localId" : "657", + "lowClosed" : true, + "highClosed" : true, + "annotation" : [ ], + "resultTypeSpecifier" : { + "type" : "IntervalTypeSpecifier", + "localId" : "658", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "659", + "name" : "{urn:hl7-org:elm-types:r1}Any", + "annotation" : [ ] + } + }, + "low" : { + "type" : "Null", + "localId" : "655", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Any", + "annotation" : [ ] + }, + "high" : { + "type" : "Null", + "localId" : "656", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Any", + "annotation" : [ ] + } + }, + "asTypeSpecifier" : { + "type" : "IntervalTypeSpecifier", + "localId" : "660", + "annotation" : [ ], + "resultTypeSpecifier" : { + "type" : "IntervalTypeSpecifier", + "localId" : "662", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "663", + "name" : "{urn:hl7-org:elm-types:r1}DateTime", + "annotation" : [ ] + } + }, + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "661", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}DateTime", + "name" : "{urn:hl7-org:elm-types:r1}DateTime", + "annotation" : [ ] + } + } + }, { + "type" : "ExpressionRef", + "localId" : "668", + "name" : "ivlA", + "annotation" : [ ], + "resultTypeSpecifier" : { + "type" : "IntervalTypeSpecifier", + "localId" : "669", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "670", + "name" : "{urn:hl7-org:elm-types:r1}DateTime", + "annotation" : [ ] + } + } + } ] + } + }, { + "localId" : "678", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", + "name" : "OverlapsClosedNullIntervalRHS", + "context" : "Patient", + "accessLevel" : "Public", + "annotation" : [ { + "type" : "Annotation", + "t" : [ ], + "s" : { + "r" : "678", + "s" : [ { + "value" : [ "", "define ", "OverlapsClosedNullIntervalRHS", ": " ] }, { - "r" : "646", + "r" : "696", "s" : [ { - "r" : "640", + "r" : "679", "s" : [ { - "value" : [ "ivlF" ] + "value" : [ "ivlA" ] } ] }, { - "r" : "646", + "r" : "696", "value" : [ " ", "overlaps", " " ] }, { - "r" : "643", + "r" : "682", "s" : [ { - "value" : [ "ivlG" ] + "value" : [ "(" ] + }, { + "r" : "682", + "s" : [ { + "r" : "685", + "s" : [ { + "r" : "683", + "value" : [ "Interval[", "null", ", ", "null", "]" ] + } ] + }, { + "value" : [ " as " ] + }, { + "r" : "688", + "s" : [ { + "value" : [ "Interval<" ] + }, { + "r" : "689", + "s" : [ { + "value" : [ "DateTime" ] + } ] + }, { + "value" : [ ">" ] + } ] + } ] + }, { + "value" : [ ")" ] } ] } ] } ] @@ -143450,58 +144120,112 @@ module.exports['OverlapsDateTime'] = { } ], "expression" : { "type" : "Overlaps", - "localId" : "646", + "localId" : "696", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", "annotation" : [ ], "signature" : [ { "type" : "IntervalTypeSpecifier", - "localId" : "647", + "localId" : "697", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "648", + "localId" : "698", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } }, { "type" : "IntervalTypeSpecifier", - "localId" : "649", + "localId" : "699", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "650", + "localId" : "700", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } } ], "operand" : [ { "type" : "ExpressionRef", - "localId" : "640", - "name" : "ivlF", + "localId" : "679", + "name" : "ivlA", "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "641", + "localId" : "680", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "642", + "localId" : "681", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } } }, { - "type" : "ExpressionRef", - "localId" : "643", - "name" : "ivlG", + "type" : "As", + "localId" : "682", + "strict" : false, "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "644", + "localId" : "694", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "645", + "localId" : "695", + "name" : "{urn:hl7-org:elm-types:r1}DateTime", + "annotation" : [ ] + } + }, + "signature" : [ ], + "operand" : { + "type" : "Interval", + "localId" : "685", + "lowClosed" : true, + "highClosed" : true, + "annotation" : [ ], + "resultTypeSpecifier" : { + "type" : "IntervalTypeSpecifier", + "localId" : "686", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "687", + "name" : "{urn:hl7-org:elm-types:r1}Any", + "annotation" : [ ] + } + }, + "low" : { + "type" : "Null", + "localId" : "683", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Any", + "annotation" : [ ] + }, + "high" : { + "type" : "Null", + "localId" : "684", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}Any", + "annotation" : [ ] + } + }, + "asTypeSpecifier" : { + "type" : "IntervalTypeSpecifier", + "localId" : "688", + "annotation" : [ ], + "resultTypeSpecifier" : { + "type" : "IntervalTypeSpecifier", + "localId" : "690", + "annotation" : [ ], + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "691", + "name" : "{urn:hl7-org:elm-types:r1}DateTime", + "annotation" : [ ] + } + }, + "pointType" : { + "type" : "NamedTypeSpecifier", + "localId" : "689", + "resultTypeName" : "{urn:hl7-org:elm-types:r1}DateTime", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } @@ -143509,7 +144233,7 @@ module.exports['OverlapsDateTime'] = { } ] } }, { - "localId" : "653", + "localId" : "703", "name" : "PrecisionDateIvl", "context" : "Patient", "accessLevel" : "Public", @@ -143517,25 +144241,25 @@ module.exports['OverlapsDateTime'] = { "type" : "Annotation", "t" : [ ], "s" : { - "r" : "653", + "r" : "703", "s" : [ { "value" : [ "", "define ", "PrecisionDateIvl", ": " ] }, { - "r" : "702", + "r" : "752", "s" : [ { "value" : [ "Interval[" ] }, { - "r" : "670", + "r" : "720", "s" : [ { - "r" : "654", + "r" : "704", "value" : [ "DateTime", "(", "2012", ", ", "3", ", ", "2", ", ", "12", ", ", "34", ", ", "56", ", ", "789", ")" ] } ] }, { "value" : [ ", " ] }, { - "r" : "694", + "r" : "744", "s" : [ { - "r" : "678", + "r" : "728", "value" : [ "DateTime", "(", "2012", ", ", "9", ", ", "2", ", ", "1", ", ", "23", ", ", "45", ", ", "678", ")" ] } ] }, { @@ -143546,76 +144270,76 @@ module.exports['OverlapsDateTime'] = { } ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "705", + "localId" : "755", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "706", + "localId" : "756", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } }, "expression" : { "type" : "Interval", - "localId" : "702", + "localId" : "752", "lowClosed" : true, "highClosed" : false, "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "703", + "localId" : "753", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "704", + "localId" : "754", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } }, "low" : { "type" : "DateTime", - "localId" : "670", + "localId" : "720", "resultTypeName" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ], "signature" : [ { "type" : "NamedTypeSpecifier", - "localId" : "671", + "localId" : "721", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "672", + "localId" : "722", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "673", + "localId" : "723", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "674", + "localId" : "724", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "675", + "localId" : "725", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "676", + "localId" : "726", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "677", + "localId" : "727", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } ], "year" : { "type" : "Literal", - "localId" : "654", + "localId" : "704", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2012", @@ -143623,7 +144347,7 @@ module.exports['OverlapsDateTime'] = { }, "month" : { "type" : "Literal", - "localId" : "655", + "localId" : "705", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "3", @@ -143631,7 +144355,7 @@ module.exports['OverlapsDateTime'] = { }, "day" : { "type" : "Literal", - "localId" : "656", + "localId" : "706", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2", @@ -143639,7 +144363,7 @@ module.exports['OverlapsDateTime'] = { }, "hour" : { "type" : "Literal", - "localId" : "657", + "localId" : "707", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "12", @@ -143647,7 +144371,7 @@ module.exports['OverlapsDateTime'] = { }, "minute" : { "type" : "Literal", - "localId" : "658", + "localId" : "708", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "34", @@ -143655,7 +144379,7 @@ module.exports['OverlapsDateTime'] = { }, "second" : { "type" : "Literal", - "localId" : "659", + "localId" : "709", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "56", @@ -143663,7 +144387,7 @@ module.exports['OverlapsDateTime'] = { }, "millisecond" : { "type" : "Literal", - "localId" : "660", + "localId" : "710", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "789", @@ -143672,48 +144396,48 @@ module.exports['OverlapsDateTime'] = { }, "high" : { "type" : "DateTime", - "localId" : "694", + "localId" : "744", "resultTypeName" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ], "signature" : [ { "type" : "NamedTypeSpecifier", - "localId" : "695", + "localId" : "745", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "696", + "localId" : "746", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "697", + "localId" : "747", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "698", + "localId" : "748", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "699", + "localId" : "749", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "700", + "localId" : "750", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "701", + "localId" : "751", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } ], "year" : { "type" : "Literal", - "localId" : "678", + "localId" : "728", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2012", @@ -143721,7 +144445,7 @@ module.exports['OverlapsDateTime'] = { }, "month" : { "type" : "Literal", - "localId" : "679", + "localId" : "729", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "9", @@ -143729,7 +144453,7 @@ module.exports['OverlapsDateTime'] = { }, "day" : { "type" : "Literal", - "localId" : "680", + "localId" : "730", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2", @@ -143737,7 +144461,7 @@ module.exports['OverlapsDateTime'] = { }, "hour" : { "type" : "Literal", - "localId" : "681", + "localId" : "731", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "1", @@ -143745,7 +144469,7 @@ module.exports['OverlapsDateTime'] = { }, "minute" : { "type" : "Literal", - "localId" : "682", + "localId" : "732", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "23", @@ -143753,7 +144477,7 @@ module.exports['OverlapsDateTime'] = { }, "second" : { "type" : "Literal", - "localId" : "683", + "localId" : "733", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "45", @@ -143761,7 +144485,7 @@ module.exports['OverlapsDateTime'] = { }, "millisecond" : { "type" : "Literal", - "localId" : "684", + "localId" : "734", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "678", @@ -143770,7 +144494,7 @@ module.exports['OverlapsDateTime'] = { } } }, { - "localId" : "709", + "localId" : "759", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", "name" : "OverlapsBeforeDayOfIvlEdge", "context" : "Patient", @@ -143779,35 +144503,35 @@ module.exports['OverlapsDateTime'] = { "type" : "Annotation", "t" : [ ], "s" : { - "r" : "709", + "r" : "759", "s" : [ { "value" : [ "// NOTE: There appears to be a bug in cql-to-elm that translates these 'overlaps' to 'OverlapsAfter'!\n", "define ", "OverlapsBeforeDayOfIvlEdge", ": " ] }, { - "r" : "764", + "r" : "814", "s" : [ { - "r" : "710", + "r" : "760", "s" : [ { "value" : [ "PrecisionDateIvl" ] } ] }, { - "r" : "764", + "r" : "814", "value" : [ " ", "overlaps day of", " " ] }, { - "r" : "761", + "r" : "811", "s" : [ { "value" : [ "Interval[" ] }, { - "r" : "729", + "r" : "779", "s" : [ { - "r" : "713", + "r" : "763", "value" : [ "DateTime", "(", "2012", ", ", "9", ", ", "2", ", ", "23", ", ", "59", ", ", "59", ", ", "999", ")" ] } ] }, { "value" : [ ", " ] }, { - "r" : "753", + "r" : "803", "s" : [ { - "r" : "737", + "r" : "787", "value" : [ "DateTime", "(", "2012", ", ", "10", ", ", "1", ", ", "0", ", ", "0", ", ", "0", ", ", "0", ")" ] } ] }, { @@ -143819,108 +144543,108 @@ module.exports['OverlapsDateTime'] = { } ], "expression" : { "type" : "Overlaps", - "localId" : "764", + "localId" : "814", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", "precision" : "Day", "annotation" : [ ], "signature" : [ { "type" : "IntervalTypeSpecifier", - "localId" : "765", + "localId" : "815", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "766", + "localId" : "816", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } }, { "type" : "IntervalTypeSpecifier", - "localId" : "767", + "localId" : "817", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "768", + "localId" : "818", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } } ], "operand" : [ { "type" : "ExpressionRef", - "localId" : "710", + "localId" : "760", "name" : "PrecisionDateIvl", "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "711", + "localId" : "761", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "712", + "localId" : "762", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } } }, { "type" : "Interval", - "localId" : "761", + "localId" : "811", "lowClosed" : true, "highClosed" : true, "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "762", + "localId" : "812", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "763", + "localId" : "813", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } }, "low" : { "type" : "DateTime", - "localId" : "729", + "localId" : "779", "resultTypeName" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ], "signature" : [ { "type" : "NamedTypeSpecifier", - "localId" : "730", + "localId" : "780", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "731", + "localId" : "781", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "732", + "localId" : "782", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "733", + "localId" : "783", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "734", + "localId" : "784", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "735", + "localId" : "785", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "736", + "localId" : "786", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } ], "year" : { "type" : "Literal", - "localId" : "713", + "localId" : "763", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2012", @@ -143928,7 +144652,7 @@ module.exports['OverlapsDateTime'] = { }, "month" : { "type" : "Literal", - "localId" : "714", + "localId" : "764", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "9", @@ -143936,7 +144660,7 @@ module.exports['OverlapsDateTime'] = { }, "day" : { "type" : "Literal", - "localId" : "715", + "localId" : "765", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2", @@ -143944,7 +144668,7 @@ module.exports['OverlapsDateTime'] = { }, "hour" : { "type" : "Literal", - "localId" : "716", + "localId" : "766", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "23", @@ -143952,7 +144676,7 @@ module.exports['OverlapsDateTime'] = { }, "minute" : { "type" : "Literal", - "localId" : "717", + "localId" : "767", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "59", @@ -143960,7 +144684,7 @@ module.exports['OverlapsDateTime'] = { }, "second" : { "type" : "Literal", - "localId" : "718", + "localId" : "768", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "59", @@ -143968,7 +144692,7 @@ module.exports['OverlapsDateTime'] = { }, "millisecond" : { "type" : "Literal", - "localId" : "719", + "localId" : "769", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "999", @@ -143977,48 +144701,48 @@ module.exports['OverlapsDateTime'] = { }, "high" : { "type" : "DateTime", - "localId" : "753", + "localId" : "803", "resultTypeName" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ], "signature" : [ { "type" : "NamedTypeSpecifier", - "localId" : "754", + "localId" : "804", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "755", + "localId" : "805", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "756", + "localId" : "806", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "757", + "localId" : "807", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "758", + "localId" : "808", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "759", + "localId" : "809", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "760", + "localId" : "810", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } ], "year" : { "type" : "Literal", - "localId" : "737", + "localId" : "787", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2012", @@ -144026,7 +144750,7 @@ module.exports['OverlapsDateTime'] = { }, "month" : { "type" : "Literal", - "localId" : "738", + "localId" : "788", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "10", @@ -144034,7 +144758,7 @@ module.exports['OverlapsDateTime'] = { }, "day" : { "type" : "Literal", - "localId" : "739", + "localId" : "789", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "1", @@ -144042,7 +144766,7 @@ module.exports['OverlapsDateTime'] = { }, "hour" : { "type" : "Literal", - "localId" : "740", + "localId" : "790", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144050,7 +144774,7 @@ module.exports['OverlapsDateTime'] = { }, "minute" : { "type" : "Literal", - "localId" : "741", + "localId" : "791", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144058,7 +144782,7 @@ module.exports['OverlapsDateTime'] = { }, "second" : { "type" : "Literal", - "localId" : "742", + "localId" : "792", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144066,7 +144790,7 @@ module.exports['OverlapsDateTime'] = { }, "millisecond" : { "type" : "Literal", - "localId" : "743", + "localId" : "793", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144076,7 +144800,7 @@ module.exports['OverlapsDateTime'] = { } ] } }, { - "localId" : "771", + "localId" : "821", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", "name" : "OverlapsAfterDayOfIvlEdge", "context" : "Patient", @@ -144085,35 +144809,35 @@ module.exports['OverlapsDateTime'] = { "type" : "Annotation", "t" : [ ], "s" : { - "r" : "771", + "r" : "821", "s" : [ { "value" : [ "", "define ", "OverlapsAfterDayOfIvlEdge", ": " ] }, { - "r" : "826", + "r" : "876", "s" : [ { - "r" : "772", + "r" : "822", "s" : [ { "value" : [ "PrecisionDateIvl" ] } ] }, { - "r" : "826", + "r" : "876", "value" : [ " ", "overlaps day of", " " ] }, { - "r" : "823", + "r" : "873", "s" : [ { "value" : [ "Interval[" ] }, { - "r" : "791", + "r" : "841", "s" : [ { - "r" : "775", + "r" : "825", "value" : [ "DateTime", "(", "2012", ", ", "1", ", ", "2", ", ", "0", ", ", "0", ", ", "0", ", ", "0", ")" ] } ] }, { "value" : [ ", " ] }, { - "r" : "815", + "r" : "865", "s" : [ { - "r" : "799", + "r" : "849", "value" : [ "DateTime", "(", "2012", ", ", "3", ", ", "2", ", ", "0", ", ", "0", ", ", "0", ", ", "0", ")" ] } ] }, { @@ -144125,108 +144849,108 @@ module.exports['OverlapsDateTime'] = { } ], "expression" : { "type" : "Overlaps", - "localId" : "826", + "localId" : "876", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", "precision" : "Day", "annotation" : [ ], "signature" : [ { "type" : "IntervalTypeSpecifier", - "localId" : "827", + "localId" : "877", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "828", + "localId" : "878", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } }, { "type" : "IntervalTypeSpecifier", - "localId" : "829", + "localId" : "879", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "830", + "localId" : "880", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } } ], "operand" : [ { "type" : "ExpressionRef", - "localId" : "772", + "localId" : "822", "name" : "PrecisionDateIvl", "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "773", + "localId" : "823", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "774", + "localId" : "824", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } } }, { "type" : "Interval", - "localId" : "823", + "localId" : "873", "lowClosed" : true, "highClosed" : true, "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "824", + "localId" : "874", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "825", + "localId" : "875", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } }, "low" : { "type" : "DateTime", - "localId" : "791", + "localId" : "841", "resultTypeName" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ], "signature" : [ { "type" : "NamedTypeSpecifier", - "localId" : "792", + "localId" : "842", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "793", + "localId" : "843", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "794", + "localId" : "844", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "795", + "localId" : "845", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "796", + "localId" : "846", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "797", + "localId" : "847", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "798", + "localId" : "848", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } ], "year" : { "type" : "Literal", - "localId" : "775", + "localId" : "825", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2012", @@ -144234,7 +144958,7 @@ module.exports['OverlapsDateTime'] = { }, "month" : { "type" : "Literal", - "localId" : "776", + "localId" : "826", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "1", @@ -144242,7 +144966,7 @@ module.exports['OverlapsDateTime'] = { }, "day" : { "type" : "Literal", - "localId" : "777", + "localId" : "827", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2", @@ -144250,7 +144974,7 @@ module.exports['OverlapsDateTime'] = { }, "hour" : { "type" : "Literal", - "localId" : "778", + "localId" : "828", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144258,7 +144982,7 @@ module.exports['OverlapsDateTime'] = { }, "minute" : { "type" : "Literal", - "localId" : "779", + "localId" : "829", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144266,7 +144990,7 @@ module.exports['OverlapsDateTime'] = { }, "second" : { "type" : "Literal", - "localId" : "780", + "localId" : "830", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144274,7 +144998,7 @@ module.exports['OverlapsDateTime'] = { }, "millisecond" : { "type" : "Literal", - "localId" : "781", + "localId" : "831", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144283,48 +145007,48 @@ module.exports['OverlapsDateTime'] = { }, "high" : { "type" : "DateTime", - "localId" : "815", + "localId" : "865", "resultTypeName" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ], "signature" : [ { "type" : "NamedTypeSpecifier", - "localId" : "816", + "localId" : "866", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "817", + "localId" : "867", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "818", + "localId" : "868", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "819", + "localId" : "869", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "820", + "localId" : "870", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "821", + "localId" : "871", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "822", + "localId" : "872", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } ], "year" : { "type" : "Literal", - "localId" : "799", + "localId" : "849", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2012", @@ -144332,7 +145056,7 @@ module.exports['OverlapsDateTime'] = { }, "month" : { "type" : "Literal", - "localId" : "800", + "localId" : "850", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "3", @@ -144340,7 +145064,7 @@ module.exports['OverlapsDateTime'] = { }, "day" : { "type" : "Literal", - "localId" : "801", + "localId" : "851", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2", @@ -144348,7 +145072,7 @@ module.exports['OverlapsDateTime'] = { }, "hour" : { "type" : "Literal", - "localId" : "802", + "localId" : "852", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144356,7 +145080,7 @@ module.exports['OverlapsDateTime'] = { }, "minute" : { "type" : "Literal", - "localId" : "803", + "localId" : "853", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144364,7 +145088,7 @@ module.exports['OverlapsDateTime'] = { }, "second" : { "type" : "Literal", - "localId" : "804", + "localId" : "854", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144372,7 +145096,7 @@ module.exports['OverlapsDateTime'] = { }, "millisecond" : { "type" : "Literal", - "localId" : "805", + "localId" : "855", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144382,7 +145106,7 @@ module.exports['OverlapsDateTime'] = { } ] } }, { - "localId" : "833", + "localId" : "883", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", "name" : "OverlapsContainsDayOfIvl", "context" : "Patient", @@ -144391,35 +145115,35 @@ module.exports['OverlapsDateTime'] = { "type" : "Annotation", "t" : [ ], "s" : { - "r" : "833", + "r" : "883", "s" : [ { "value" : [ "", "define ", "OverlapsContainsDayOfIvl", ": " ] }, { - "r" : "888", + "r" : "938", "s" : [ { - "r" : "834", + "r" : "884", "s" : [ { "value" : [ "PrecisionDateIvl" ] } ] }, { - "r" : "888", + "r" : "938", "value" : [ " ", "overlaps day of", " " ] }, { - "r" : "885", + "r" : "935", "s" : [ { "value" : [ "Interval[" ] }, { - "r" : "853", + "r" : "903", "s" : [ { - "r" : "837", + "r" : "887", "value" : [ "DateTime", "(", "2012", ", ", "5", ", ", "1", ", ", "0", ", ", "0", ", ", "0", ", ", "0", ")" ] } ] }, { "value" : [ ", " ] }, { - "r" : "877", + "r" : "927", "s" : [ { - "r" : "861", + "r" : "911", "value" : [ "DateTime", "(", "2012", ", ", "6", ", ", "1", ", ", "0", ", ", "0", ", ", "0", ", ", "0", ")" ] } ] }, { @@ -144431,108 +145155,108 @@ module.exports['OverlapsDateTime'] = { } ], "expression" : { "type" : "Overlaps", - "localId" : "888", + "localId" : "938", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", "precision" : "Day", "annotation" : [ ], "signature" : [ { "type" : "IntervalTypeSpecifier", - "localId" : "889", + "localId" : "939", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "890", + "localId" : "940", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } }, { "type" : "IntervalTypeSpecifier", - "localId" : "891", + "localId" : "941", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "892", + "localId" : "942", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } } ], "operand" : [ { "type" : "ExpressionRef", - "localId" : "834", + "localId" : "884", "name" : "PrecisionDateIvl", "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "835", + "localId" : "885", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "836", + "localId" : "886", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } } }, { "type" : "Interval", - "localId" : "885", + "localId" : "935", "lowClosed" : true, "highClosed" : true, "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "886", + "localId" : "936", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "887", + "localId" : "937", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } }, "low" : { "type" : "DateTime", - "localId" : "853", + "localId" : "903", "resultTypeName" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ], "signature" : [ { "type" : "NamedTypeSpecifier", - "localId" : "854", + "localId" : "904", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "855", + "localId" : "905", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "856", + "localId" : "906", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "857", + "localId" : "907", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "858", + "localId" : "908", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "859", + "localId" : "909", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "860", + "localId" : "910", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } ], "year" : { "type" : "Literal", - "localId" : "837", + "localId" : "887", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2012", @@ -144540,7 +145264,7 @@ module.exports['OverlapsDateTime'] = { }, "month" : { "type" : "Literal", - "localId" : "838", + "localId" : "888", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "5", @@ -144548,7 +145272,7 @@ module.exports['OverlapsDateTime'] = { }, "day" : { "type" : "Literal", - "localId" : "839", + "localId" : "889", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "1", @@ -144556,7 +145280,7 @@ module.exports['OverlapsDateTime'] = { }, "hour" : { "type" : "Literal", - "localId" : "840", + "localId" : "890", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144564,7 +145288,7 @@ module.exports['OverlapsDateTime'] = { }, "minute" : { "type" : "Literal", - "localId" : "841", + "localId" : "891", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144572,7 +145296,7 @@ module.exports['OverlapsDateTime'] = { }, "second" : { "type" : "Literal", - "localId" : "842", + "localId" : "892", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144580,7 +145304,7 @@ module.exports['OverlapsDateTime'] = { }, "millisecond" : { "type" : "Literal", - "localId" : "843", + "localId" : "893", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144589,48 +145313,48 @@ module.exports['OverlapsDateTime'] = { }, "high" : { "type" : "DateTime", - "localId" : "877", + "localId" : "927", "resultTypeName" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ], "signature" : [ { "type" : "NamedTypeSpecifier", - "localId" : "878", + "localId" : "928", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "879", + "localId" : "929", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "880", + "localId" : "930", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "881", + "localId" : "931", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "882", + "localId" : "932", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "883", + "localId" : "933", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "884", + "localId" : "934", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } ], "year" : { "type" : "Literal", - "localId" : "861", + "localId" : "911", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2012", @@ -144638,7 +145362,7 @@ module.exports['OverlapsDateTime'] = { }, "month" : { "type" : "Literal", - "localId" : "862", + "localId" : "912", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "6", @@ -144646,7 +145370,7 @@ module.exports['OverlapsDateTime'] = { }, "day" : { "type" : "Literal", - "localId" : "863", + "localId" : "913", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "1", @@ -144654,7 +145378,7 @@ module.exports['OverlapsDateTime'] = { }, "hour" : { "type" : "Literal", - "localId" : "864", + "localId" : "914", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144662,7 +145386,7 @@ module.exports['OverlapsDateTime'] = { }, "minute" : { "type" : "Literal", - "localId" : "865", + "localId" : "915", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144670,7 +145394,7 @@ module.exports['OverlapsDateTime'] = { }, "second" : { "type" : "Literal", - "localId" : "866", + "localId" : "916", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144678,7 +145402,7 @@ module.exports['OverlapsDateTime'] = { }, "millisecond" : { "type" : "Literal", - "localId" : "867", + "localId" : "917", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144688,7 +145412,7 @@ module.exports['OverlapsDateTime'] = { } ] } }, { - "localId" : "895", + "localId" : "945", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", "name" : "OverlapsContainedByDayOfIvl", "context" : "Patient", @@ -144697,35 +145421,35 @@ module.exports['OverlapsDateTime'] = { "type" : "Annotation", "t" : [ ], "s" : { - "r" : "895", + "r" : "945", "s" : [ { "value" : [ "", "define ", "OverlapsContainedByDayOfIvl", ": " ] }, { - "r" : "950", + "r" : "1000", "s" : [ { - "r" : "896", + "r" : "946", "s" : [ { "value" : [ "PrecisionDateIvl" ] } ] }, { - "r" : "950", + "r" : "1000", "value" : [ " ", "overlaps day of", " " ] }, { - "r" : "947", + "r" : "997", "s" : [ { "value" : [ "Interval[" ] }, { - "r" : "915", + "r" : "965", "s" : [ { - "r" : "899", + "r" : "949", "value" : [ "DateTime", "(", "2012", ", ", "1", ", ", "1", ", ", "0", ", ", "0", ", ", "0", ", ", "0", ")" ] } ] }, { "value" : [ ", " ] }, { - "r" : "939", + "r" : "989", "s" : [ { - "r" : "923", + "r" : "973", "value" : [ "DateTime", "(", "2012", ", ", "12", ", ", "1", ", ", "0", ", ", "0", ", ", "0", ", ", "0", ")" ] } ] }, { @@ -144737,108 +145461,108 @@ module.exports['OverlapsDateTime'] = { } ], "expression" : { "type" : "Overlaps", - "localId" : "950", + "localId" : "1000", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", "precision" : "Day", "annotation" : [ ], "signature" : [ { "type" : "IntervalTypeSpecifier", - "localId" : "951", + "localId" : "1001", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "952", + "localId" : "1002", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } }, { "type" : "IntervalTypeSpecifier", - "localId" : "953", + "localId" : "1003", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "954", + "localId" : "1004", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } } ], "operand" : [ { "type" : "ExpressionRef", - "localId" : "896", + "localId" : "946", "name" : "PrecisionDateIvl", "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "897", + "localId" : "947", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "898", + "localId" : "948", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } } }, { "type" : "Interval", - "localId" : "947", + "localId" : "997", "lowClosed" : true, "highClosed" : true, "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "948", + "localId" : "998", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "949", + "localId" : "999", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } }, "low" : { "type" : "DateTime", - "localId" : "915", + "localId" : "965", "resultTypeName" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ], "signature" : [ { "type" : "NamedTypeSpecifier", - "localId" : "916", + "localId" : "966", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "917", + "localId" : "967", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "918", + "localId" : "968", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "919", + "localId" : "969", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "920", + "localId" : "970", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "921", + "localId" : "971", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "922", + "localId" : "972", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } ], "year" : { "type" : "Literal", - "localId" : "899", + "localId" : "949", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2012", @@ -144846,7 +145570,7 @@ module.exports['OverlapsDateTime'] = { }, "month" : { "type" : "Literal", - "localId" : "900", + "localId" : "950", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "1", @@ -144854,7 +145578,7 @@ module.exports['OverlapsDateTime'] = { }, "day" : { "type" : "Literal", - "localId" : "901", + "localId" : "951", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "1", @@ -144862,7 +145586,7 @@ module.exports['OverlapsDateTime'] = { }, "hour" : { "type" : "Literal", - "localId" : "902", + "localId" : "952", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144870,7 +145594,7 @@ module.exports['OverlapsDateTime'] = { }, "minute" : { "type" : "Literal", - "localId" : "903", + "localId" : "953", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144878,7 +145602,7 @@ module.exports['OverlapsDateTime'] = { }, "second" : { "type" : "Literal", - "localId" : "904", + "localId" : "954", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144886,7 +145610,7 @@ module.exports['OverlapsDateTime'] = { }, "millisecond" : { "type" : "Literal", - "localId" : "905", + "localId" : "955", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144895,48 +145619,48 @@ module.exports['OverlapsDateTime'] = { }, "high" : { "type" : "DateTime", - "localId" : "939", + "localId" : "989", "resultTypeName" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ], "signature" : [ { "type" : "NamedTypeSpecifier", - "localId" : "940", + "localId" : "990", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "941", + "localId" : "991", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "942", + "localId" : "992", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "943", + "localId" : "993", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "944", + "localId" : "994", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "945", + "localId" : "995", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "946", + "localId" : "996", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } ], "year" : { "type" : "Literal", - "localId" : "923", + "localId" : "973", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2012", @@ -144944,7 +145668,7 @@ module.exports['OverlapsDateTime'] = { }, "month" : { "type" : "Literal", - "localId" : "924", + "localId" : "974", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "12", @@ -144952,7 +145676,7 @@ module.exports['OverlapsDateTime'] = { }, "day" : { "type" : "Literal", - "localId" : "925", + "localId" : "975", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "1", @@ -144960,7 +145684,7 @@ module.exports['OverlapsDateTime'] = { }, "hour" : { "type" : "Literal", - "localId" : "926", + "localId" : "976", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144968,7 +145692,7 @@ module.exports['OverlapsDateTime'] = { }, "minute" : { "type" : "Literal", - "localId" : "927", + "localId" : "977", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144976,7 +145700,7 @@ module.exports['OverlapsDateTime'] = { }, "second" : { "type" : "Literal", - "localId" : "928", + "localId" : "978", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144984,7 +145708,7 @@ module.exports['OverlapsDateTime'] = { }, "millisecond" : { "type" : "Literal", - "localId" : "929", + "localId" : "979", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -144994,7 +145718,7 @@ module.exports['OverlapsDateTime'] = { } ] } }, { - "localId" : "957", + "localId" : "1007", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", "name" : "NotOverlapsDayOfIvl", "context" : "Patient", @@ -145003,35 +145727,35 @@ module.exports['OverlapsDateTime'] = { "type" : "Annotation", "t" : [ ], "s" : { - "r" : "957", + "r" : "1007", "s" : [ { "value" : [ "", "define ", "NotOverlapsDayOfIvl", ": " ] }, { - "r" : "1012", + "r" : "1062", "s" : [ { - "r" : "958", + "r" : "1008", "s" : [ { "value" : [ "PrecisionDateIvl" ] } ] }, { - "r" : "1012", + "r" : "1062", "value" : [ " ", "overlaps day of", " " ] }, { - "r" : "1009", + "r" : "1059", "s" : [ { "value" : [ "Interval[" ] }, { - "r" : "977", + "r" : "1027", "s" : [ { - "r" : "961", + "r" : "1011", "value" : [ "DateTime", "(", "2012", ", ", "1", ", ", "2", ", ", "0", ", ", "0", ", ", "0", ", ", "0", ")" ] } ] }, { "value" : [ ", " ] }, { - "r" : "1001", + "r" : "1051", "s" : [ { - "r" : "985", + "r" : "1035", "value" : [ "DateTime", "(", "2012", ", ", "3", ", ", "1", ", ", "0", ", ", "0", ", ", "0", ", ", "0", ")" ] } ] }, { @@ -145043,108 +145767,108 @@ module.exports['OverlapsDateTime'] = { } ], "expression" : { "type" : "Overlaps", - "localId" : "1012", + "localId" : "1062", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", "precision" : "Day", "annotation" : [ ], "signature" : [ { "type" : "IntervalTypeSpecifier", - "localId" : "1013", + "localId" : "1063", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "1014", + "localId" : "1064", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } }, { "type" : "IntervalTypeSpecifier", - "localId" : "1015", + "localId" : "1065", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "1016", + "localId" : "1066", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } } ], "operand" : [ { "type" : "ExpressionRef", - "localId" : "958", + "localId" : "1008", "name" : "PrecisionDateIvl", "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "959", + "localId" : "1009", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "960", + "localId" : "1010", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } } }, { "type" : "Interval", - "localId" : "1009", + "localId" : "1059", "lowClosed" : true, "highClosed" : true, "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "1010", + "localId" : "1060", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "1011", + "localId" : "1061", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } }, "low" : { "type" : "DateTime", - "localId" : "977", + "localId" : "1027", "resultTypeName" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ], "signature" : [ { "type" : "NamedTypeSpecifier", - "localId" : "978", + "localId" : "1028", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "979", + "localId" : "1029", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "980", + "localId" : "1030", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "981", + "localId" : "1031", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "982", + "localId" : "1032", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "983", + "localId" : "1033", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "984", + "localId" : "1034", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } ], "year" : { "type" : "Literal", - "localId" : "961", + "localId" : "1011", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2012", @@ -145152,7 +145876,7 @@ module.exports['OverlapsDateTime'] = { }, "month" : { "type" : "Literal", - "localId" : "962", + "localId" : "1012", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "1", @@ -145160,7 +145884,7 @@ module.exports['OverlapsDateTime'] = { }, "day" : { "type" : "Literal", - "localId" : "963", + "localId" : "1013", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2", @@ -145168,7 +145892,7 @@ module.exports['OverlapsDateTime'] = { }, "hour" : { "type" : "Literal", - "localId" : "964", + "localId" : "1014", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -145176,7 +145900,7 @@ module.exports['OverlapsDateTime'] = { }, "minute" : { "type" : "Literal", - "localId" : "965", + "localId" : "1015", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -145184,7 +145908,7 @@ module.exports['OverlapsDateTime'] = { }, "second" : { "type" : "Literal", - "localId" : "966", + "localId" : "1016", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -145192,7 +145916,7 @@ module.exports['OverlapsDateTime'] = { }, "millisecond" : { "type" : "Literal", - "localId" : "967", + "localId" : "1017", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -145201,48 +145925,48 @@ module.exports['OverlapsDateTime'] = { }, "high" : { "type" : "DateTime", - "localId" : "1001", + "localId" : "1051", "resultTypeName" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ], "signature" : [ { "type" : "NamedTypeSpecifier", - "localId" : "1002", + "localId" : "1052", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "1003", + "localId" : "1053", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "1004", + "localId" : "1054", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "1005", + "localId" : "1055", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "1006", + "localId" : "1056", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "1007", + "localId" : "1057", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "1008", + "localId" : "1058", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } ], "year" : { "type" : "Literal", - "localId" : "985", + "localId" : "1035", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2012", @@ -145250,7 +145974,7 @@ module.exports['OverlapsDateTime'] = { }, "month" : { "type" : "Literal", - "localId" : "986", + "localId" : "1036", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "3", @@ -145258,7 +145982,7 @@ module.exports['OverlapsDateTime'] = { }, "day" : { "type" : "Literal", - "localId" : "987", + "localId" : "1037", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "1", @@ -145266,7 +145990,7 @@ module.exports['OverlapsDateTime'] = { }, "hour" : { "type" : "Literal", - "localId" : "988", + "localId" : "1038", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -145274,7 +145998,7 @@ module.exports['OverlapsDateTime'] = { }, "minute" : { "type" : "Literal", - "localId" : "989", + "localId" : "1039", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -145282,7 +146006,7 @@ module.exports['OverlapsDateTime'] = { }, "second" : { "type" : "Literal", - "localId" : "990", + "localId" : "1040", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -145290,7 +146014,7 @@ module.exports['OverlapsDateTime'] = { }, "millisecond" : { "type" : "Literal", - "localId" : "991", + "localId" : "1041", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "0", @@ -145300,7 +146024,7 @@ module.exports['OverlapsDateTime'] = { } ] } }, { - "localId" : "1019", + "localId" : "1069", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", "name" : "OverlapsAfterDayOfImpreciseInterval", "context" : "Patient", @@ -145309,35 +146033,35 @@ module.exports['OverlapsDateTime'] = { "type" : "Annotation", "t" : [ ], "s" : { - "r" : "1019", + "r" : "1069", "s" : [ { "value" : [ "", "define ", "OverlapsAfterDayOfImpreciseInterval", ": " ] }, { - "r" : "1044", + "r" : "1094", "s" : [ { - "r" : "1020", + "r" : "1070", "s" : [ { "value" : [ "PrecisionDateIvl" ] } ] }, { - "r" : "1044", + "r" : "1094", "value" : [ " ", "overlaps day of", " " ] }, { - "r" : "1041", + "r" : "1091", "s" : [ { "value" : [ "Interval[" ] }, { - "r" : "1029", + "r" : "1079", "s" : [ { - "r" : "1023", + "r" : "1073", "value" : [ "DateTime", "(", "2012", ", ", "1", ")" ] } ] }, { "value" : [ ", " ] }, { - "r" : "1038", + "r" : "1088", "s" : [ { - "r" : "1032", + "r" : "1082", "value" : [ "DateTime", "(", "2012", ", ", "4", ")" ] } ] }, { @@ -145349,83 +146073,83 @@ module.exports['OverlapsDateTime'] = { } ], "expression" : { "type" : "Overlaps", - "localId" : "1044", + "localId" : "1094", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", "precision" : "Day", "annotation" : [ ], "signature" : [ { "type" : "IntervalTypeSpecifier", - "localId" : "1045", + "localId" : "1095", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "1046", + "localId" : "1096", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } }, { "type" : "IntervalTypeSpecifier", - "localId" : "1047", + "localId" : "1097", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "1048", + "localId" : "1098", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } } ], "operand" : [ { "type" : "ExpressionRef", - "localId" : "1020", + "localId" : "1070", "name" : "PrecisionDateIvl", "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "1021", + "localId" : "1071", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "1022", + "localId" : "1072", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } } }, { "type" : "Interval", - "localId" : "1041", + "localId" : "1091", "lowClosed" : true, "highClosed" : true, "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "1042", + "localId" : "1092", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "1043", + "localId" : "1093", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } }, "low" : { "type" : "DateTime", - "localId" : "1029", + "localId" : "1079", "resultTypeName" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ], "signature" : [ { "type" : "NamedTypeSpecifier", - "localId" : "1030", + "localId" : "1080", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "1031", + "localId" : "1081", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } ], "year" : { "type" : "Literal", - "localId" : "1023", + "localId" : "1073", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2012", @@ -145433,7 +146157,7 @@ module.exports['OverlapsDateTime'] = { }, "month" : { "type" : "Literal", - "localId" : "1024", + "localId" : "1074", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "1", @@ -145442,23 +146166,23 @@ module.exports['OverlapsDateTime'] = { }, "high" : { "type" : "DateTime", - "localId" : "1038", + "localId" : "1088", "resultTypeName" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ], "signature" : [ { "type" : "NamedTypeSpecifier", - "localId" : "1039", + "localId" : "1089", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "1040", + "localId" : "1090", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } ], "year" : { "type" : "Literal", - "localId" : "1032", + "localId" : "1082", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2012", @@ -145466,7 +146190,7 @@ module.exports['OverlapsDateTime'] = { }, "month" : { "type" : "Literal", - "localId" : "1033", + "localId" : "1083", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "4", @@ -145476,7 +146200,7 @@ module.exports['OverlapsDateTime'] = { } ] } }, { - "localId" : "1051", + "localId" : "1101", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", "name" : "MayOverlapBeforeDayOfImpreciseIvl", "context" : "Patient", @@ -145485,35 +146209,35 @@ module.exports['OverlapsDateTime'] = { "type" : "Annotation", "t" : [ ], "s" : { - "r" : "1051", + "r" : "1101", "s" : [ { "value" : [ "", "define ", "MayOverlapBeforeDayOfImpreciseIvl", ": " ] }, { - "r" : "1076", + "r" : "1126", "s" : [ { - "r" : "1052", + "r" : "1102", "s" : [ { "value" : [ "PrecisionDateIvl" ] } ] }, { - "r" : "1076", + "r" : "1126", "value" : [ " ", "overlaps day of", " " ] }, { - "r" : "1073", + "r" : "1123", "s" : [ { "value" : [ "Interval[" ] }, { - "r" : "1061", + "r" : "1111", "s" : [ { - "r" : "1055", + "r" : "1105", "value" : [ "DateTime", "(", "2012", ", ", "9", ")" ] } ] }, { "value" : [ ", " ] }, { - "r" : "1070", + "r" : "1120", "s" : [ { - "r" : "1064", + "r" : "1114", "value" : [ "DateTime", "(", "2012", ", ", "10", ")" ] } ] }, { @@ -145525,83 +146249,83 @@ module.exports['OverlapsDateTime'] = { } ], "expression" : { "type" : "Overlaps", - "localId" : "1076", + "localId" : "1126", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", "precision" : "Day", "annotation" : [ ], "signature" : [ { "type" : "IntervalTypeSpecifier", - "localId" : "1077", + "localId" : "1127", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "1078", + "localId" : "1128", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } }, { "type" : "IntervalTypeSpecifier", - "localId" : "1079", + "localId" : "1129", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "1080", + "localId" : "1130", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } } ], "operand" : [ { "type" : "ExpressionRef", - "localId" : "1052", + "localId" : "1102", "name" : "PrecisionDateIvl", "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "1053", + "localId" : "1103", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "1054", + "localId" : "1104", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } } }, { "type" : "Interval", - "localId" : "1073", + "localId" : "1123", "lowClosed" : true, "highClosed" : true, "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "1074", + "localId" : "1124", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "1075", + "localId" : "1125", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } }, "low" : { "type" : "DateTime", - "localId" : "1061", + "localId" : "1111", "resultTypeName" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ], "signature" : [ { "type" : "NamedTypeSpecifier", - "localId" : "1062", + "localId" : "1112", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "1063", + "localId" : "1113", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } ], "year" : { "type" : "Literal", - "localId" : "1055", + "localId" : "1105", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2012", @@ -145609,7 +146333,7 @@ module.exports['OverlapsDateTime'] = { }, "month" : { "type" : "Literal", - "localId" : "1056", + "localId" : "1106", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "9", @@ -145618,23 +146342,23 @@ module.exports['OverlapsDateTime'] = { }, "high" : { "type" : "DateTime", - "localId" : "1070", + "localId" : "1120", "resultTypeName" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ], "signature" : [ { "type" : "NamedTypeSpecifier", - "localId" : "1071", + "localId" : "1121", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "1072", + "localId" : "1122", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } ], "year" : { "type" : "Literal", - "localId" : "1064", + "localId" : "1114", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2012", @@ -145642,7 +146366,7 @@ module.exports['OverlapsDateTime'] = { }, "month" : { "type" : "Literal", - "localId" : "1065", + "localId" : "1115", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "10", @@ -145652,7 +146376,7 @@ module.exports['OverlapsDateTime'] = { } ] } }, { - "localId" : "1083", + "localId" : "1133", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", "name" : "MayOverlapAfterDayOfImpreciseIvl", "context" : "Patient", @@ -145661,35 +146385,35 @@ module.exports['OverlapsDateTime'] = { "type" : "Annotation", "t" : [ ], "s" : { - "r" : "1083", + "r" : "1133", "s" : [ { "value" : [ "", "define ", "MayOverlapAfterDayOfImpreciseIvl", ": " ] }, { - "r" : "1108", + "r" : "1158", "s" : [ { - "r" : "1084", + "r" : "1134", "s" : [ { "value" : [ "PrecisionDateIvl" ] } ] }, { - "r" : "1108", + "r" : "1158", "value" : [ " ", "overlaps day of", " " ] }, { - "r" : "1105", + "r" : "1155", "s" : [ { "value" : [ "Interval[" ] }, { - "r" : "1093", + "r" : "1143", "s" : [ { - "r" : "1087", + "r" : "1137", "value" : [ "DateTime", "(", "2012", ", ", "1", ")" ] } ] }, { "value" : [ ", " ] }, { - "r" : "1102", + "r" : "1152", "s" : [ { - "r" : "1096", + "r" : "1146", "value" : [ "DateTime", "(", "2012", ", ", "3", ")" ] } ] }, { @@ -145701,83 +146425,83 @@ module.exports['OverlapsDateTime'] = { } ], "expression" : { "type" : "Overlaps", - "localId" : "1108", + "localId" : "1158", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Boolean", "precision" : "Day", "annotation" : [ ], "signature" : [ { "type" : "IntervalTypeSpecifier", - "localId" : "1109", + "localId" : "1159", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "1110", + "localId" : "1160", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } }, { "type" : "IntervalTypeSpecifier", - "localId" : "1111", + "localId" : "1161", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "1112", + "localId" : "1162", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } } ], "operand" : [ { "type" : "ExpressionRef", - "localId" : "1084", + "localId" : "1134", "name" : "PrecisionDateIvl", "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "1085", + "localId" : "1135", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "1086", + "localId" : "1136", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } } }, { "type" : "Interval", - "localId" : "1105", + "localId" : "1155", "lowClosed" : true, "highClosed" : true, "annotation" : [ ], "resultTypeSpecifier" : { "type" : "IntervalTypeSpecifier", - "localId" : "1106", + "localId" : "1156", "annotation" : [ ], "pointType" : { "type" : "NamedTypeSpecifier", - "localId" : "1107", + "localId" : "1157", "name" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ] } }, "low" : { "type" : "DateTime", - "localId" : "1093", + "localId" : "1143", "resultTypeName" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ], "signature" : [ { "type" : "NamedTypeSpecifier", - "localId" : "1094", + "localId" : "1144", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "1095", + "localId" : "1145", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } ], "year" : { "type" : "Literal", - "localId" : "1087", + "localId" : "1137", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2012", @@ -145785,7 +146509,7 @@ module.exports['OverlapsDateTime'] = { }, "month" : { "type" : "Literal", - "localId" : "1088", + "localId" : "1138", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "1", @@ -145794,23 +146518,23 @@ module.exports['OverlapsDateTime'] = { }, "high" : { "type" : "DateTime", - "localId" : "1102", + "localId" : "1152", "resultTypeName" : "{urn:hl7-org:elm-types:r1}DateTime", "annotation" : [ ], "signature" : [ { "type" : "NamedTypeSpecifier", - "localId" : "1103", + "localId" : "1153", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] }, { "type" : "NamedTypeSpecifier", - "localId" : "1104", + "localId" : "1154", "name" : "{urn:hl7-org:elm-types:r1}Integer", "annotation" : [ ] } ], "year" : { "type" : "Literal", - "localId" : "1096", + "localId" : "1146", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "2012", @@ -145818,7 +146542,7 @@ module.exports['OverlapsDateTime'] = { }, "month" : { "type" : "Literal", - "localId" : "1097", + "localId" : "1147", "resultTypeName" : "{urn:hl7-org:elm-types:r1}Integer", "valueType" : "{urn:hl7-org:elm-types:r1}Integer", "value" : "3", diff --git a/test/elm/interval/interval-test.ts b/test/elm/interval/interval-test.ts index 536f9605b..b47053862 100644 --- a/test/elm/interval/interval-test.ts +++ b/test/elm/interval/interval-test.ts @@ -1023,6 +1023,11 @@ describe('Overlaps', () => { (await this.noOverlapsRealIvl.exec(this.ctx)).should.be.false(); }); + it('should accept overlaps (closed null boundaries)', async function () { + (await this.overlapsClosedNullIntervalLHS.exec(this.ctx)).should.be.true(); + (await this.overlapsClosedNullIntervalRHS.exec(this.ctx)).should.be.true(); + }); + it('should return null for null value', async function () { should(await this.overlapsIsNull.exec(this.ctx)).be.null(); }); @@ -1060,6 +1065,11 @@ describe('OverlapsDateTime', () => { (await this.matchingPrecisionOverlap.exec(this.ctx)).should.be.true(); }); + it('should accept overlaps (closed null boundaries)', async function () { + (await this.overlapsClosedNullIntervalLHS.exec(this.ctx)).should.be.true(); + (await this.overlapsClosedNullIntervalRHS.exec(this.ctx)).should.be.true(); + }); + it('should correctly compare using the requested precision', async function () { (await this.overlapsBeforeDayOfIvlEdge.exec(this.ctx)).should.be.true(); (await this.overlapsAfterDayOfIvlEdge.exec(this.ctx)).should.be.true(); @@ -1445,8 +1455,8 @@ describe('Starts', () => { setup(this, data); }); - it('should calculate to null', async function () { - should(await this.testStartsNull.exec(this.ctx)).be.null(); + it('should calculate to false for boundless interval starts bounded interval', async function () { + should(await this.testStartsNull.exec(this.ctx)).be.false(); }); it('should calculate integer intervals properly', async function () { @@ -1481,7 +1491,7 @@ describe('Ends', () => { }); it('should calculate to null', async function () { - should(await this.testEndsNull.exec(this.ctx)).be.null(); + should(await this.testEndsNull.exec(this.ctx)).be.false(); }); it('should calculate integer intervals properly', async function () { diff --git a/test/spec-tests/cql/CqlIntervalOperatorsTest.cql b/test/spec-tests/cql/CqlIntervalOperatorsTest.cql index 0ed5cc58e..a53861cc3 100644 --- a/test/spec-tests/cql/CqlIntervalOperatorsTest.cql +++ b/test/spec-tests/cql/CqlIntervalOperatorsTest.cql @@ -1142,9 +1142,11 @@ define "OnOrBefore": Tuple{ define "Overlaps": Tuple{ "TestOverlapsNull": Tuple{ + skipped: 'Wrong answer (Interval[null, null] should overlap everything)' + /* expression: Interval[null, null] overlaps Interval[1, 10], output: null - }, + */ }, "IntegerIntervalOverlapsTrue": Tuple{ expression: Interval[1, 10] overlaps Interval[4, 10], output: true @@ -1249,9 +1251,11 @@ define "Overlaps": Tuple{ define "OverlapsBefore": Tuple{ "TestOverlapsBeforeNull": Tuple{ + skipped: 'Wrong answer (Interval[null, null] should overlap before anything but another interval w/ null low closed boundary)' + /* expression: Interval[null, null] overlaps before Interval[1, 10], output: null - }, + */ }, "IntegerIntervalOverlapsBeforeTrue": Tuple{ expression: Interval[1, 10] overlaps before Interval[4, 10], output: true @@ -1324,9 +1328,11 @@ define "OverlapsBefore": Tuple{ define "OverlapsAfter": Tuple{ "TestOverlapsAfterNull": Tuple{ + skipped: 'Wrong answer (Interval[null, null] should overlap after anything but another interval w/ null high closed boundary)' + /* expression: Interval[null, null] overlaps after Interval[1, 10], output: null - }, + */ }, "IntegerIntervalOverlapsAfterTrue": Tuple{ expression: Interval[4, 15] overlaps after Interval[1, 10], output: true @@ -1621,9 +1627,11 @@ define "Start": Tuple{ define "Starts": Tuple{ "TestStartsNull": Tuple{ + skipped: 'Wrong answer (Interval[null, null] can only start Interval[null, null])' + /* expression: Interval[null, null] starts Interval[1, 10], output: null - }, + */ }, "IntegerIntervalStartsTrue": Tuple{ expression: Interval[4, 10] starts Interval[4, 15], output: true @@ -1668,9 +1676,11 @@ define "Starts": Tuple{ define "Union": Tuple{ "TestUnionNull": Tuple{ + skipped: 'Wrong answer (Interval[null, null] union any valid interval of the same point type is Interval[null, null])' + /* expression: Interval[null, null] union Interval[1, 10], output: null - }, + */ }, "IntegerIntervalUnion1To15": Tuple{ expression: Interval[1, 10] union Interval[4, 15], output: Interval [ 1, 15 ] diff --git a/test/spec-tests/cql/CqlIntervalOperatorsTest.json b/test/spec-tests/cql/CqlIntervalOperatorsTest.json index 664155946..5891a9cf7 100644 --- a/test/spec-tests/cql/CqlIntervalOperatorsTest.json +++ b/test/spec-tests/cql/CqlIntervalOperatorsTest.json @@ -26699,51 +26699,11 @@ "annotation": [], "element": [ { - "name": "expression", - "value": { - "type": "Overlaps", - "annotation": [], - "signature": [], - "operand": [ - { - "type": "Interval", - "lowClosed": true, - "highClosed": true, - "annotation": [], - "low": { - "type": "Null", - "annotation": [] - }, - "high": { - "type": "Null", - "annotation": [] - } - }, - { - "type": "Interval", - "lowClosed": true, - "highClosed": true, - "annotation": [], - "low": { - "type": "Literal", - "valueType": "{urn:hl7-org:elm-types:r1}Integer", - "value": "1", - "annotation": [] - }, - "high": { - "type": "Literal", - "valueType": "{urn:hl7-org:elm-types:r1}Integer", - "value": "10", - "annotation": [] - } - } - ] - } - }, - { - "name": "output", + "name": "skipped", "value": { - "type": "Null", + "type": "Literal", + "valueType": "{urn:hl7-org:elm-types:r1}String", + "value": "Wrong answer (Interval[null, null] should overlap everything)", "annotation": [] } } @@ -28927,51 +28887,11 @@ "annotation": [], "element": [ { - "name": "expression", - "value": { - "type": "OverlapsBefore", - "annotation": [], - "signature": [], - "operand": [ - { - "type": "Interval", - "lowClosed": true, - "highClosed": true, - "annotation": [], - "low": { - "type": "Null", - "annotation": [] - }, - "high": { - "type": "Null", - "annotation": [] - } - }, - { - "type": "Interval", - "lowClosed": true, - "highClosed": true, - "annotation": [], - "low": { - "type": "Literal", - "valueType": "{urn:hl7-org:elm-types:r1}Integer", - "value": "1", - "annotation": [] - }, - "high": { - "type": "Literal", - "valueType": "{urn:hl7-org:elm-types:r1}Integer", - "value": "10", - "annotation": [] - } - } - ] - } - }, - { - "name": "output", + "name": "skipped", "value": { - "type": "Null", + "type": "Literal", + "valueType": "{urn:hl7-org:elm-types:r1}String", + "value": "Wrong answer (Interval[null, null] should overlap before anything but another interval w/ null low closed boundary)", "annotation": [] } } @@ -30405,51 +30325,11 @@ "annotation": [], "element": [ { - "name": "expression", - "value": { - "type": "OverlapsAfter", - "annotation": [], - "signature": [], - "operand": [ - { - "type": "Interval", - "lowClosed": true, - "highClosed": true, - "annotation": [], - "low": { - "type": "Null", - "annotation": [] - }, - "high": { - "type": "Null", - "annotation": [] - } - }, - { - "type": "Interval", - "lowClosed": true, - "highClosed": true, - "annotation": [], - "low": { - "type": "Literal", - "valueType": "{urn:hl7-org:elm-types:r1}Integer", - "value": "1", - "annotation": [] - }, - "high": { - "type": "Literal", - "valueType": "{urn:hl7-org:elm-types:r1}Integer", - "value": "10", - "annotation": [] - } - } - ] - } - }, - { - "name": "output", + "name": "skipped", "value": { - "type": "Null", + "type": "Literal", + "valueType": "{urn:hl7-org:elm-types:r1}String", + "value": "Wrong answer (Interval[null, null] should overlap after anything but another interval w/ null high closed boundary)", "annotation": [] } } @@ -34795,51 +34675,11 @@ "annotation": [], "element": [ { - "name": "expression", - "value": { - "type": "Starts", - "annotation": [], - "signature": [], - "operand": [ - { - "type": "Interval", - "lowClosed": true, - "highClosed": true, - "annotation": [], - "low": { - "type": "Null", - "annotation": [] - }, - "high": { - "type": "Null", - "annotation": [] - } - }, - { - "type": "Interval", - "lowClosed": true, - "highClosed": true, - "annotation": [], - "low": { - "type": "Literal", - "valueType": "{urn:hl7-org:elm-types:r1}Integer", - "value": "1", - "annotation": [] - }, - "high": { - "type": "Literal", - "valueType": "{urn:hl7-org:elm-types:r1}Integer", - "value": "10", - "annotation": [] - } - } - ] - } - }, - { - "name": "output", + "name": "skipped", "value": { - "type": "Null", + "type": "Literal", + "valueType": "{urn:hl7-org:elm-types:r1}String", + "value": "Wrong answer (Interval[null, null] can only start Interval[null, null])", "annotation": [] } } @@ -35825,51 +35665,11 @@ "annotation": [], "element": [ { - "name": "expression", - "value": { - "type": "Union", - "annotation": [], - "signature": [], - "operand": [ - { - "type": "Interval", - "lowClosed": true, - "highClosed": true, - "annotation": [], - "low": { - "type": "Null", - "annotation": [] - }, - "high": { - "type": "Null", - "annotation": [] - } - }, - { - "type": "Interval", - "lowClosed": true, - "highClosed": true, - "annotation": [], - "low": { - "type": "Literal", - "valueType": "{urn:hl7-org:elm-types:r1}Integer", - "value": "1", - "annotation": [] - }, - "high": { - "type": "Literal", - "valueType": "{urn:hl7-org:elm-types:r1}Integer", - "value": "10", - "annotation": [] - } - } - ] - } - }, - { - "name": "output", + "name": "skipped", "value": { - "type": "Null", + "type": "Literal", + "valueType": "{urn:hl7-org:elm-types:r1}String", + "value": "Wrong answer (Interval[null, null] union any valid interval of the same point type is Interval[null, null])", "annotation": [] } } diff --git a/test/spec-tests/skip-list.txt b/test/spec-tests/skip-list.txt index 74120b094..e3d0cedbf 100644 --- a/test/spec-tests/skip-list.txt +++ b/test/spec-tests/skip-list.txt @@ -36,6 +36,11 @@ CqlIntervalOperatorsTest.Expand.ExpandPer1IntervalOverload Wrong CqlIntervalOperatorsTest.Expand.ExpandPer1OpenIntervalOverload Wrong answer (single interval overload should return list of points) CqlIntervalOperatorsTest.Expand.ExpandPer2DaysIntervalOverload Wrong answer (single interval overload should return list of points) CqlIntervalOperatorsTest.Intersect.TestIntersectNull Wrong answer (Interval[5, 10] vs Interval[5, null)) +CqlIntervalOperatorsTest.Overlaps.TestOverlapsNull Wrong answer (Interval[null, null] should overlap everything) +CqlIntervalOperatorsTest.OverlapsBefore.TestOverlapsBeforeNull Wrong answer (Interval[null, null] should overlap before anything but another interval w/ null low closed boundary) +CqlIntervalOperatorsTest.OverlapsAfter.TestOverlapsAfterNull Wrong answer (Interval[null, null] should overlap after anything but another interval w/ null high closed boundary) +CqlIntervalOperatorsTest.Starts.TestStartsNull Wrong answer (Interval[null, null] can only start Interval[null, null]) +CqlIntervalOperatorsTest.Union.TestUnionNull Wrong answer (Interval[null, null] union any valid interval of the same point type is Interval[null, null]) CqlTypeOperatorsTest.Convert.StringToDateTime Wrong answer (different offsets) CqlTypeOperatorsTest.ToDateTime.ToDateTime1 Wrong answer (different offsets) CqlTypeOperatorsTest.ToDateTime.ToDateTime2 Wrong answer (different offsets) From fd13dd2e4beeab78030bb6a05247b4a2eb783d6d Mon Sep 17 00:00:00 2001 From: Chris Moesel Date: Fri, 29 May 2026 12:38:05 -0400 Subject: [PATCH 2/2] npm audit fix --- package-lock.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 180278d78..0de15f99e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1742,13 +1742,13 @@ } }, "node_modules/browserify-sign": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.5.tgz", - "integrity": "sha512-C2AUdAJg6rlM2W5QMp2Q4KGQMVBwR1lIimTsUnutJ8bMpW5B52pGpR2gEnNBNwijumDo5FojQ0L9JrXA8m4YEw==", + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.6.tgz", + "integrity": "sha512-sd+Q65fjlWCYWtZKXiKfrUc8d+4jtp/8f0W2NkwzLtoW4bI6UDnWusLWIurHnmurW0XShIRxpwiOX4EoPtXUAg==", "dev": true, "license": "ISC", "dependencies": { - "bn.js": "^5.2.2", + "bn.js": "^5.2.3", "browserify-rsa": "^4.1.1", "create-hash": "^1.2.0", "create-hmac": "^1.1.7", @@ -5161,9 +5161,9 @@ "license": "MIT" }, "node_modules/qs": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz", - "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==", + "version": "6.15.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.2.tgz", + "integrity": "sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==", "dev": true, "license": "BSD-3-Clause", "dependencies": {