diff --git a/r4/fhirpath/tests-fhir-r4.xml b/r4/fhirpath/tests-fhir-r4.xml index 3609c58a..3ab6fc2d 100644 --- a/r4/fhirpath/tests-fhir-r4.xml +++ b/r4/fhirpath/tests-fhir-r4.xml @@ -1,182 +1,186 @@ - - + + - birthDate - 1974-12-25 - - birthDate + 1974-12-25 + + - birthDate - true - + birthDate + true + - telecom.use - home - work - mobile - old - - - - - - + telecom.use + home + work + mobile + old + + + + + + - name.given - Peter - James - Jim - Peter - James - - - + name.given + Peter + James + Jim + Peter + James + + + - name.suffix - + name.suffix + - + - name.`given` - Peter - James - Jim - Peter - James - + name.`given` + Peter + James + Jim + Peter + James + - `Patient`.name.`given` - Peter - James - Jim - Peter - James - - - + `Patient`.name.`given` + Peter + James + Jim + Peter + James + + + - name.given1 - + name.given1 + - + - Patient.name.given - Peter - James - Jim - Peter - James - - - + Patient.name.given + Peter + James + Jim + Peter + James + + + - Encounter.name.given - - + Encounter.name.given + + - - + + - Observation.value.unit - lbs - + Observation.value.unit + lbs + - + - Observation.valueQuantity.unit - + Observation.valueQuantity.unit + - + - Observation.value.is(Quantity) - true - - + Observation.value.is(Quantity) + true + + - Observation.value is Quantity - true - + Observation.value is Quantity + true + + + + Observation.issued is instant + - + - Observation.value.is(Period).not() - true - + Observation.value.is(Period).not() + true + - + - Observation.value.as(Quantity).unit - lbs - - + Observation.value.as(Quantity).unit + lbs + + - (Observation.value as Quantity).unit - lbs - + (Observation.value as Quantity).unit + lbs + - + - (Observation.value as Period).unit - + (Observation.value as Period).unit + - + - Observation.value.as(Period).start - - + Observation.value.as(Period).start + + - - + + - Patient.name.given.where(substring($this.length()-3) = 'out') - + Patient.name.given.where(substring($this.length()-3) = 'out') + - + - Patient.name.given.where(substring($this.length()-3) = 'ter') - Peter - Peter - + Patient.name.given.where(substring($this.length()-3) = 'ter') + Peter + Peter + - + - Patient.name.skip(1).given - Jim - Peter - James - + Patient.name.skip(1).given + Jim + Peter + James + - + - Patient.name.skip(3).given - + Patient.name.skip(3).given + - + - Patient.children().skip(1) - - + Patient.children().skip(1) + + - - + + - Patient.name.exists() = true - true - + Patient.name.exists() = true + true + - + - Patient.name.empty() = false - true - + Patient.name.empty() = false + true + - + - Patient.name.given.first() = 'Peter' - true - + Patient.name.given.first() = 'Peter' + true + 1.convertsToInteger()true 0.convertsToInteger()true @@ -197,7 +201,7 @@ -0.1.convertsToDecimal() 1234567890987654321.0.convertsToDecimal()true 0.00000001.convertsToDecimal()true - + @2015-02-04.convertsToDateTime()true @2015-02-04T14:34:28.convertsToDateTime()true @2015-02-04T14:34:28.123.convertsToDateTime()true @@ -213,60 +217,60 @@ 10 'mg'.convertsToQuantity()true 4 days.convertsToQuantity()true - -3 != 3true - Patient.name.given.count() = 5true + -3 != 3true + Patient.name.given.count() = 5true -Patient.name.given.count() = -5true - Patient.name.given.count() > -3true - Patient.name.given.count() != 0true - 1 < 2true - 1 < -2false - +1 < +2true - -1 < 2true - - Observation.value.value > 180.0true - Observation.value.value > 0.0true - Observation.value.value > 0true - Observation.value.value < 190true - Observation.value.value < 'test' - - Patient.birthDate = @1974-12-25true - Patient.birthDate != @1974-12-25T12:34:00 - Patient.birthDate != @1974-12-23T12:34:00-10:00true - Patient.birthDate != @1974-12-25T12:34:00+10:00 - Patient.birthDate != @1974-12-25T12:34:00Z - Patient.birthDate != @T12:14:15true - Patient.birthDate != @T12:14true + Patient.name.given.count() > -3true + Patient.name.given.count() != 0true + 1 < 2true + 1 < -2false + +1 < +2true + -1 < 2true + + Observation.value.value > 180.0true + Observation.value.value > 0.0true + Observation.value.value > 0true + Observation.value.value < 190true + Observation.value.value < 'test' + + Patient.birthDate = @1974-12-25true + Patient.birthDate != @1974-12-25T12:34:00 + Patient.birthDate != @1974-12-23T12:34:00-10:00true + Patient.birthDate != @1974-12-25T12:34:00+10:00 + Patient.birthDate != @1974-12-25T12:34:00Z + Patient.birthDate != @T12:14:15true + Patient.birthDate != @T12:14true Patient.birthDate < today()true now() > Patient.birthDatetrue - - @2017-11-05T01:30:00.0-04:00 > @2017-11-05T01:15:00.0-05:00false + + @2017-11-05T01:30:00.0-04:00 > @2017-11-05T01:15:00.0-05:00false @2017-11-05T01:30:00.0-04:00 < @2017-11-05T01:15:00.0-05:00true @2017-11-05T01:30:00.0-04:00 = @2017-11-05T01:15:00.0-05:00false @2017-11-05T01:30:00.0-04:00 = @2017-11-05T00:30:00.0-05:00true - Patient.name.given.first() = 'P\u0065ter'true + Patient.name.given.first() = 'P\u0065ter'true - Patient.name.given.empty().not()true - Patient.name.given != {} + Patient.name.given.empty().not()true + Patient.name.given != {} - Patient.name.select(given | family).distinct() + Patient.name.select(given | family).distinct() Peter James Chalmers Jim Windsor - Patient.name.given.count() = 1 + 4true + Patient.name.given.count() = 1 + 4true - Patient.name.empty().not()true - Patient.link.empty()true + Patient.name.empty().not()true + Patient.link.empty()true - true.not() = falsetrue - false.not() = truetrue - (0).not() = truetrue - (1).not() = falsetrue - (1|2).not() = false - + true.not() = falsetrue + false.not() = truetrue + (0).not() = truetrue + (1).not() = falsetrue + (1|2).not() = false + 1.convertsToInteger()true @@ -361,23 +365,32 @@ 1 week.toString()1 'wk' - - - Patient.name.select(given.exists()).allTrue()true - Patient.name.select(period.exists()).allTrue()false - Patient.name.all(given.exists())true - Patient.name.all(period.exists())false + + + Patient.name.exists()true + Patient.name.exists(use = 'nickname')false + Patient.name.exists(use = 'official')true + Patient.maritalStatus.coding.exists(code = 'P' and system = 'http://terminology.hl7.org/CodeSystem/v3-MaritalStatus') + or Patient.maritalStatus.coding.exists(code = 'A' and system = 'http://terminology.hl7.org/CodeSystem/v3-MaritalStatus')false + + + + + Patient.name.select(given.exists()).allTrue()true + Patient.name.select(period.exists()).allTrue()false + Patient.name.all(given.exists())true + Patient.name.all(period.exists())false - - Patient.name.first().subsetOf($this.name)true - Patient.name.subsetOf($this.name.first()).not()true - + + Patient.name.first().subsetOf($this.name)true + Patient.name.subsetOf($this.name.first()).not()true + - - Patient.name.first().supersetOf($this.name).not()true - Patient.name.supersetOf($this.name.first())true - + + Patient.name.first().supersetOf($this.name).not()true + Patient.name.supersetOf($this.name.first())true + 4.0000 'g' = 4000.0 'mg'true @@ -402,55 +415,55 @@ iif(false, 1/0, true)true - - - (1 | 2 | 3).isDistinct()true - Questionnaire.descendants().linkId.isDistinct()true - Questionnaire.descendants().linkId.select(substring(0,1)).isDistinct().not()true - - - (1 | 2 | 3).distinct() - 1 - 2 - 3 - - - - Questionnaire.descendants().linkId.distinct().count() - 10 - - - - Questionnaire.descendants().linkId.select(substring(0,1)).distinct().count() - 2 - - - - - Patient.name.count()3 - Patient.name.count() = 3true - Patient.name.first().count()1 - Patient.name.first().count() = 1true - - - - Patient.name.count() = 3true - Patient.name.where(given = 'Jim').count() = 1true - Patient.name.where(given = 'X').count() = 0true - Patient.name.where($this.given = 'Jim').count() = 1true - - - - Patient.name.select(given).count() = 5true - Patient.name.select(given | family).count() = 7 true - - - - ValueSet.expansion.repeat(contains).count() = 10true - Questionnaire.repeat(item).code.count() = 11true - Questionnaire.descendants().code.count() = 23true - Questionnaire.children().code.count() = 2true - + + + (1 | 2 | 3).isDistinct()true + Questionnaire.descendants().linkId.isDistinct()true + Questionnaire.descendants().linkId.select(substring(0,1)).isDistinct().not()true + + + (1 | 2 | 3).distinct() + 1 + 2 + 3 + + + + Questionnaire.descendants().linkId.distinct().count() + 10 + + + + Questionnaire.descendants().linkId.select(substring(0,1)).distinct().count() + 2 + + + + + Patient.name.count()3 + Patient.name.count() = 3true + Patient.name.first().count()1 + Patient.name.first().count() = 1true + + + + Patient.name.count() = 3true + Patient.name.where(given = 'Jim').count() = 1true + Patient.name.where(given = 'X').count() = 0true + Patient.name.where($this.given = 'Jim').count() = 1true + + + + Patient.name.select(given).count() = 5true + Patient.name.select(given | family).count() = 7 true + + + + ValueSet.expansion.repeat(contains).count() = 10true + Questionnaire.repeat(item).code.count() = 11true + Questionnaire.descendants().code.count() = 23true + Questionnaire.children().code.count() = 2true + (1|2|3|4|5|6|7|8|9).aggregate($this+$total, 0) = 45true @@ -458,72 +471,72 @@ (1|2|3|4|5|6|7|8|9).aggregate(iif($total.empty(), $this, iif($this < $total, $this, $total))) = 1true (1|2|3|4|5|6|7|8|9).aggregate(iif($total.empty(), $this, iif($this > $total, $this, $total))) = 9true - - - Patient.name[0].given = 'Peter' | 'James'true - Patient.name[1].given = 'Jim'true - - - - Patient.name.first().single().exists()true - Patient.name.single().exists() - - - - Patient.name.first().given = 'Peter' | 'James'true - Patient.name.last().given = 'Peter' | 'James'true - - - - (0 | 1 | 2).tail() = 1 | 2true - Patient.name.tail().given = 'Jim' | 'Peter' | 'James'true - - - - (0 | 1 | 2).skip(1) = 1 | 2true - (0 | 1 | 2).skip(2) = 2true - Patient.name.skip(1).given.trace('test') = 'Jim' | 'Peter' | 'James'true - Patient.name.skip(3).given.exists() = falsetrue - - - - (0 | 1 | 2).take(1) = 0true - (0 | 1 | 2).take(2) = 0 | 1true - Patient.name.take(1).given = 'Peter' | 'James'true - Patient.name.take(2).given = 'Peter' | 'James' | 'Jim'true - Patient.name.take(3).given.count() = 5true - Patient.name.take(4).given.count() = 5true - Patient.name.take(0).given.exists() = falsetrue - - - - iif(Patient.name.exists(), 'named', 'unnamed') = 'named'true - iif(Patient.name.empty(), 'unnamed', 'named') = 'named'true - - - - '1'.toInteger() = 1true - '-1'.toInteger() = -1true - '0'.toInteger() = 0true - '0.0'.toInteger().empty()true - 'st'.toInteger().empty()true - - - - '1'.toDecimal() = 1true - '-1'.toInteger() = -1true - '0'.toDecimal() = 0true - '0.0'.toDecimal() = 0.0true - 'st'.toDecimal().empty()true - - - - 1.toString() = '1'true - '-1'.toInteger() = -1true - 0.toString() = '0'true - 0.0.toString() = '0.0'true - @2014-12-14.toString() = '2014-12-14'true - + + + Patient.name[0].given = 'Peter' | 'James'true + Patient.name[1].given = 'Jim'true + + + + Patient.name.first().single().exists()true + Patient.name.single().exists() + + + + Patient.name.first().given = 'Peter' | 'James'true + Patient.name.last().given = 'Peter' | 'James'true + + + + (0 | 1 | 2).tail() = 1 | 2true + Patient.name.tail().given = 'Jim' | 'Peter' | 'James'true + + + + (0 | 1 | 2).skip(1) = 1 | 2true + (0 | 1 | 2).skip(2) = 2true + Patient.name.skip(1).given.trace('test') = 'Jim' | 'Peter' | 'James'true + Patient.name.skip(3).given.exists() = falsetrue + + + + (0 | 1 | 2).take(1) = 0true + (0 | 1 | 2).take(2) = 0 | 1true + Patient.name.take(1).given = 'Peter' | 'James'true + Patient.name.take(2).given = 'Peter' | 'James' | 'Jim'true + Patient.name.take(3).given.count() = 5true + Patient.name.take(4).given.count() = 5true + Patient.name.take(0).given.exists() = falsetrue + + + + iif(Patient.name.exists(), 'named', 'unnamed') = 'named'true + iif(Patient.name.empty(), 'unnamed', 'named') = 'named'true + + + + '1'.toInteger() = 1true + '-1'.toInteger() = -1true + '0'.toInteger() = 0true + '0.0'.toInteger().empty()true + 'st'.toInteger().empty()true + + + + '1'.toDecimal() = 1true + '-1'.toInteger() = -1true + '0'.toDecimal() = 0true + '0.0'.toDecimal() = 0.0true + 'st'.toDecimal().empty()true + + + + 1.toString() = '1'true + '-1'.toInteger() = -1true + 0.toString() = '0'true + 0.0.toString() = '0.0'true + @2014-12-14.toString() = '2014-12-14'true + 't'.upper() = 'T'true @@ -536,277 +549,312 @@ 't2'.toChars() = 't' | '2'true - - '12345'.substring(2) = '345'true - '12345'.substring(2,1) = '3'true - '12345'.substring(2,5) = '345'true - '12345'.substring(25).empty()true - '12345'.substring(-1).empty()true - - - - '12345'.startsWith('2') = falsetrue - '12345'.startsWith('1') = truetrue - '12345'.startsWith('12') = truetrue - '12345'.startsWith('13') = falsetrue - '12345'.startsWith('12345') = truetrue - '12345'.startsWith('123456') = falsetrue - '12345'.startsWith('') = truetrue - - - - '12345'.endsWith('2') = falsetrue - '12345'.endsWith('5') = truetrue - '12345'.endsWith('45') = truetrue - '12345'.endsWith('35') = falsetrue - '12345'.endsWith('12345') = truetrue - '12345'.endsWith('012345') = falsetrue - '12345'.endsWith('') = truetrue - - - - '12345'.contains('6') = falsetrue - '12345'.contains('5') = truetrue - '12345'.contains('45') = truetrue - '12345'.contains('35') = falsetrue - '12345'.contains('12345') = truetrue - '12345'.contains('012345') = falsetrue - '12345'.contains('') = truetrue - - - - '123456'.length() = 6true - '12345'.length() = 5true - '123'.length() = 3true - '1'.length() = 1true - ''.length() = 0true - - - - name.given.trace('test').count() = 5true - name.trace('test', given).count() = 3true - - - - Patient.birthDate < today()true - today().toString().length() = 10true - - - - Patient.birthDate < now()true - now().toString().length() > 10true - - - - 1 = 1true + + '12345'.substring(2) = '345'true + '12345'.substring(2,1) = '3'true + '12345'.substring(2,5) = '345'true + '12345'.substring(25).empty()true + '12345'.substring(-1).empty()true + + + + '12345'.startsWith('2') = falsetrue + '12345'.startsWith('1') = truetrue + '12345'.startsWith('12') = truetrue + '12345'.startsWith('13') = falsetrue + '12345'.startsWith('12345') = truetrue + '12345'.startsWith('123456') = falsetrue + '12345'.startsWith('') = truetrue + + + + '12345'.endsWith('2') = falsetrue + '12345'.endsWith('5') = truetrue + '12345'.endsWith('45') = truetrue + '12345'.endsWith('35') = falsetrue + '12345'.endsWith('12345') = truetrue + '12345'.endsWith('012345') = falsetrue + '12345'.endsWith('') = truetrue + + + + '12345'.contains('6') = falsetrue + '12345'.contains('5') = truetrue + '12345'.contains('45') = truetrue + '12345'.contains('35') = falsetrue + '12345'.contains('12345') = truetrue + '12345'.contains('012345') = falsetrue + '12345'.contains('') = truetrue + + + + '123456'.length() = 6true + '12345'.length() = 5true + '123'.length() = 3true + '1'.length() = 1true + ''.length() = 0true + + + + 'test'.encode('base64')dGVzdA== + 'test'.encode('hex')74657374 + 'subjects?_d'.encode('base64')c3ViamVjdHM/X2Q= + 'subjects?_d'.encode('urlbase64')c3ViamVjdHM_X2Q= + + 'dGVzdA=='.decode('base64')test + '74657374'.decode('hex')test + 'c3ViamVjdHM/X2Q='.decode('base64')subjects?_d + 'c3ViamVjdHM_X2Q='.decode('urlbase64')subjects?_d + + + + '"1<2"'.escape('html')&quot;1&lt;2&quot; + '"1<2"'.escape('json')\"1<2\" + '&quot;1&lt;2&quot;'.unescape('html')"1<2" + '\"1<2\"'.unescape('json')"1<2" + + + + '123456'.trim().length() = 6true + '123 456'.trim().length() = 7true + ' 123456 '.trim().length() = 6true + ' '.trim().length() = 0true + + + + 'Peter,James,Jim,Peter,James'.split(',').count() = 5true + + + + name.given.join(',')Peter,James,Jim,Peter,James + + + + + name.given.trace('test').count() = 5true + name.trace('test', given).count() = 3true + + + + Patient.birthDate < today()true + today().toString().length() = 10true + + + + Patient.birthDate < now()true + now().toString().length() > 10true + + + + 1 = 1true {} = {} true = {} (1) = (1)true (1 | 2) = (1 | 2)true (1 | 2 | 3) = (1 | 2 | 3)true - 1 = 2false - 'a' = 'a'true - 'a' = 'A'false - 'a' = 'b'false - 1.1 = 1.1true - 1.1 = 1.2false - 1.10 = 1.1true - 0 = 0true - 0.0 = 0true - @2012-04-15 = @2012-04-15true - @2012-04-15 = @2012-04-16false - @2012-04-15 = @2012-04-15T10:00:00 - @2012-04-15T15:00:00 = @2012-04-15T10:00:00false - @2012-04-15T15:00:00Z = @2012-04-15T10:00:00false - @2012-04-15T15:00:00+02:00 = @2012-04-15T16:00:00+03:00true - name = nametrue - name.take(2) = name.take(2).first() | name.take(2).last()true - name.take(2) = name.take(2).last() | name.take(2).first()false + 1 = 2false + 'a' = 'a'true + 'a' = 'A'false + 'a' = 'b'false + 1.1 = 1.1true + 1.1 = 1.2false + 1.10 = 1.1true + 0 = 0true + 0.0 = 0true + @2012-04-15 = @2012-04-15true + @2012-04-15 = @2012-04-16false + @2012-04-15 = @2012-04-15T10:00:00 + @2012-04-15T15:00:00 = @2012-04-15T10:00:00false + @2012-04-15T15:00:00Z = @2012-04-15T10:00:00false + @2012-04-15T15:00:00+02:00 = @2012-04-15T16:00:00+03:00true + name = nametrue + name.take(2) = name.take(2).first() | name.take(2).last()true + name.take(2) = name.take(2).last() | name.take(2).first()false Observation.value = 185 '[lb_av]'true - - - - 1 != 1false - {} != {} - 1 != 2true - 'a' != 'a'false - 'a' != 'b'true - 1.1 != 1.1false - 1.1 != 1.2true - 1.10 != 1.1false - 0 != 0false - 0.0 != 0false - @2012-04-15 != @2012-04-15false - @2012-04-15 != @2012-04-16true - @2012-04-15 != @2012-04-15T10:00:00 - @2012-04-15T15:00:00 != @2012-04-15T10:00:00true - @2012-04-15T15:00:00Z != @2012-04-15T10:00:00true - @2012-04-15T15:00:00+02:00 != @2012-04-15T16:00:00+03:00false - name != namefalse - name.take(2) != name.take(2).first() | name.take(2).last()false - name.take(2) != name.take(2).last() | name.take(2).first()true + + + + 1 != 1false + {} != {} + 1 != 2true + 'a' != 'a'false + 'a' != 'b'true + 1.1 != 1.1false + 1.1 != 1.2true + 1.10 != 1.1false + 0 != 0false + 0.0 != 0false + @2012-04-15 != @2012-04-15false + @2012-04-15 != @2012-04-16true + @2012-04-15 != @2012-04-15T10:00:00 + @2012-04-15T15:00:00 != @2012-04-15T10:00:00true + @2012-04-15T15:00:00Z != @2012-04-15T10:00:00true + @2012-04-15T15:00:00+02:00 != @2012-04-15T16:00:00+03:00false + name != namefalse + name.take(2) != name.take(2).first() | name.take(2).last()false + name.take(2) != name.take(2).last() | name.take(2).first()true Observation.value != 185 'kg'true - - 1 ~ 1true - {} ~ {}true - 1 ~ {}false - 1 ~ 2false - 'a' ~ 'a'true - 'a' ~ 'A'true - 'a' ~ 'b'false - 1.1 ~ 1.1true - 1.1 ~ 1.2false - 1.10 ~ 1.1true - 0 ~ 0true - 0.0 ~ 0true - @2012-04-15 ~ @2012-04-15true - @2012-04-15 ~ @2012-04-16false - @2012-04-15 ~ @2012-04-15T10:00:00false - - name.take(2).given ~ name.take(2).first().given | name.take(2).last().giventrue - name.take(2).given ~ name.take(2).last().given | name.take(2).first().giventrue + + 1 ~ 1true + {} ~ {}true + 1 ~ {}false + 1 ~ 2false + 'a' ~ 'a'true + 'a' ~ 'A'true + 'a' ~ 'b'false + 1.1 ~ 1.1true + 1.1 ~ 1.2false + 1.10 ~ 1.1true + 0 ~ 0true + 0.0 ~ 0true + @2012-04-15 ~ @2012-04-15true + @2012-04-15 ~ @2012-04-16false + @2012-04-15 ~ @2012-04-15T10:00:00false + + name.take(2).given ~ name.take(2).first().given | name.take(2).last().giventrue + name.take(2).given ~ name.take(2).last().given | name.take(2).first().giventrue Observation.value ~ 185 '[lb_av]'true - - - - 1 !~ 1false - {} !~ {}false - {} !~ 1true - 1 !~ 2true - 'a' !~ 'a'false - 'a' !~ 'A'false - 'a' !~ 'b'true - 1.1 !~ 1.1false - 1.1 !~ 1.2true - 1.10 !~ 1.1false - 0 !~ 0false - 0.0 !~ 0false - @2012-04-15 !~ @2012-04-15false - @2012-04-15 !~ @2012-04-16true - @2012-04-15 !~ @2012-04-15T10:00:00true - - name.take(2).given !~ name.take(2).first().given | name.take(2).last().givenfalse - name.take(2).given !~ name.take(2).last().given | name.take(2).first().givenfalse + + + + 1 !~ 1false + {} !~ {}false + {} !~ 1true + 1 !~ 2true + 'a' !~ 'a'false + 'a' !~ 'A'false + 'a' !~ 'b'true + 1.1 !~ 1.1false + 1.1 !~ 1.2true + 1.10 !~ 1.1false + 0 !~ 0false + 0.0 !~ 0false + @2012-04-15 !~ @2012-04-15false + @2012-04-15 !~ @2012-04-16true + @2012-04-15 !~ @2012-04-15T10:00:00true + + name.take(2).given !~ name.take(2).first().given | name.take(2).last().givenfalse + name.take(2).given !~ name.take(2).last().given | name.take(2).first().givenfalse Observation.value !~ 185 'kg'true - - - - - 1 < 2true - 1.0 < 1.2true - 'a' < 'b'true - 'A' < 'a'true - @2014-12-12 < @2014-12-13true - @2014-12-13T12:00:00 < @2014-12-13T12:00:01true - @T12:00:00 < @T14:00:00true - - 1 < 1false - 1.0 < 1.0false - 'a' < 'a'false - 'A' < 'A'false - @2014-12-12 < @2014-12-12false - @2014-12-13T12:00:00 < @2014-12-13T12:00:00false - @T12:00:00 < @T12:00:00false - - 2 < 1false - 1.1 < 1.0false - 'b' < 'a'false - 'B' < 'A'false - @2014-12-13 < @2014-12-12false - @2014-12-13T12:00:01 < @2014-12-13T12:00:00false - @T12:00:01 < @T12:00:00false - + + + + + 1 < 2true + 1.0 < 1.2true + 'a' < 'b'true + 'A' < 'a'true + @2014-12-12 < @2014-12-13true + @2014-12-13T12:00:00 < @2014-12-13T12:00:01true + @T12:00:00 < @T14:00:00true + + 1 < 1false + 1.0 < 1.0false + 'a' < 'a'false + 'A' < 'A'false + @2014-12-12 < @2014-12-12false + @2014-12-13T12:00:00 < @2014-12-13T12:00:00false + @T12:00:00 < @T12:00:00false + + 2 < 1false + 1.1 < 1.0false + 'b' < 'a'false + 'B' < 'A'false + @2014-12-13 < @2014-12-12false + @2014-12-13T12:00:01 < @2014-12-13T12:00:00false + @T12:00:01 < @T12:00:00false + Observation.value < 200 '[lb_av]'true - - 1 <= 2true - 1.0 <= 1.2true - 'a' <= 'b'true - 'A' <= 'a'true - @2014-12-12 <= @2014-12-13true - @2014-12-13T12:00:00 <= @2014-12-13T12:00:01true - @T12:00:00 <= @T14:00:00true - - 1 <= 1true - 1.0 <= 1.0true - 'a' <= 'a'true - 'A' <= 'A'true - @2014-12-12 <= @2014-12-12true - @2014-12-13T12:00:00 <= @2014-12-13T12:00:00true - @T12:00:00 <= @T12:00:00true - - 2 <= 1false - 1.1 <= 1.0false - 'b' <= 'a'false - 'B' <= 'A'false - @2014-12-13 <= @2014-12-12false - @2014-12-13T12:00:01 <= @2014-12-13T12:00:00false - @T12:00:01 <= @T12:00:00false + + 1 <= 2true + 1.0 <= 1.2true + 'a' <= 'b'true + 'A' <= 'a'true + @2014-12-12 <= @2014-12-13true + @2014-12-13T12:00:00 <= @2014-12-13T12:00:01true + @T12:00:00 <= @T14:00:00true + + 1 <= 1true + 1.0 <= 1.0true + 'a' <= 'a'true + 'A' <= 'A'true + @2014-12-12 <= @2014-12-12true + @2014-12-13T12:00:00 <= @2014-12-13T12:00:00true + @T12:00:00 <= @T12:00:00true + + 2 <= 1false + 1.1 <= 1.0false + 'b' <= 'a'false + 'B' <= 'A'false + @2014-12-13 <= @2014-12-12false + @2014-12-13T12:00:01 <= @2014-12-13T12:00:00false + @T12:00:01 <= @T12:00:00false Observation.value <= 200 '[lb_av]'true - - 1 >= 2false - 1.0 >= 1.2false - 'a' >= 'b'false - 'A' >= 'a'false - @2014-12-12 >= @2014-12-13false - @2014-12-13T12:00:00 >= @2014-12-13T12:00:01false - @T12:00:00 >= @T14:00:00false - - 1 >= 1true - 1.0 >= 1.0true - 'a' >= 'a'true - 'A' >= 'A'true - @2014-12-12 >= @2014-12-12true - @2014-12-13T12:00:00 >= @2014-12-13T12:00:00true - @T12:00:00 >= @T12:00:00true - - 2 >= 1true - 1.1 >= 1.0true - 'b' >= 'a'true - 'B' >= 'A'true - @2014-12-13 >= @2014-12-12true - @2014-12-13T12:00:01 >= @2014-12-13T12:00:00true - @T12:00:01 >= @T12:00:00true + + 1 >= 2false + 1.0 >= 1.2false + 'a' >= 'b'false + 'A' >= 'a'false + @2014-12-12 >= @2014-12-13false + @2014-12-13T12:00:00 >= @2014-12-13T12:00:01false + @T12:00:00 >= @T14:00:00false + + 1 >= 1true + 1.0 >= 1.0true + 'a' >= 'a'true + 'A' >= 'A'true + @2014-12-12 >= @2014-12-12true + @2014-12-13T12:00:00 >= @2014-12-13T12:00:00true + @T12:00:00 >= @T12:00:00true + + 2 >= 1true + 1.1 >= 1.0true + 'b' >= 'a'true + 'B' >= 'A'true + @2014-12-13 >= @2014-12-12true + @2014-12-13T12:00:01 >= @2014-12-13T12:00:00true + @T12:00:01 >= @T12:00:00true Observation.value >= 100 '[lb_av]'true - - - - - 1 > 2false - 1.0 > 1.2false - 'a' > 'b'false - 'A' > 'a'false - @2014-12-12 > @2014-12-13false - @2014-12-13T12:00:00 > @2014-12-13T12:00:01false - @T12:00:00 > @T14:00:00false - - 1 > 1false - 1.0 > 1.0false - 'a' > 'a'false - 'A' > 'A'false - @2014-12-12 > @2014-12-12false - @2014-12-13T12:00:00 > @2014-12-13T12:00:00false - @T12:00:00 > @T12:00:00false - - 2 > 1true - 1.1 > 1.0true - 'b' > 'a'true - 'B' > 'A'true - @2014-12-13 > @2014-12-12true - @2014-12-13T12:00:01 > @2014-12-13T12:00:00true - @T12:00:01 > @T12:00:00true - Observation.value > 100 '[lb_av]'true - - - - (1 | 2 | 3).count() = 3true - (1 | 2 | 2).count() = 2true + + + + + 1 > 2false + 1.0 > 1.2false + 'a' > 'b'false + 'A' > 'a'false + @2014-12-12 > @2014-12-13false + @2014-12-13T12:00:00 > @2014-12-13T12:00:01false + @T12:00:00 > @T14:00:00false + + 1 > 1false + 1.0 > 1.0false + 'a' > 'a'false + 'A' > 'A'false + @2014-12-12 > @2014-12-12false + @2014-12-13T12:00:00 > @2014-12-13T12:00:00false + @T12:00:00 > @T12:00:00false + + 2 > 1true + 1.1 > 1.0true + 'b' > 'a'true + 'B' > 'A'true + @2014-12-13 > @2014-12-12true + @2014-12-13T12:00:01 > @2014-12-13T12:00:00true + @T12:00:01 > @T12:00:00true + Observation.value > 100 '[lb_av]'true + + + + (1 | 2 | 3).count() = 3true + (1 | 2 | 2).count() = 2true (1|1).count() = 1true 1.union(2).union(3).count() = 3true 1.union(2.union(3)).count() = 3true @@ -817,139 +865,139 @@ (1 | 2 | 3).intersect(2 | 4) = 2true - (1 | 2).intersect(4).empty()true + (1 | 2).intersect(4).empty()true (1 | 2).intersect({}).empty()true 1.combine(1).intersect(1).count() = 1true (1 | 2 | 3).exclude(2 | 4) = 1 | 3true - (1 | 2).exclude(4) = 1 | 2true + (1 | 2).exclude(4) = 1 | 2true (1 | 2).exclude({}) = 1 | 2true 1.combine(1).exclude(2).count() = 2true - - - - 1 in (1 | 2 | 3)true - 1 in (2 | 3)false - 'a' in ('a' | 'c' | 'd')true - 'b' in ('a' | 'c' | 'd')false - - - - (1 | 2 | 3) contains 1true - (2 | 3) contains 1 false - ('a' | 'c' | 'd') contains 'a'true - ('a' | 'c' | 'd') contains 'b'false - - - - (true and true) = truetrue - (true and false) = falsetrue - (true and {}).empty()true - - (false and true) = falsetrue - (false and false) = falsetrue - (false and {}) = falsetrue - - ({} and true).empty()true - ({} and false) = falsetrue - ({} and {}).empty()true - - - - (true or true) = truetrue - (true or false) = truetrue - (true or {}) = truetrue - - (false or true) = truetrue - (false or false) = falsetrue - (false or {}).empty()true - - ({} or true) = truetrue - ({} or false).empty()true - ({} or {}).empty()true - - - - (true xor true) = falsetrue - (true xor false) = truetrue - (true xor {}).empty()true - - (false xor true) = truetrue - (false xor false) = falsetrue - (false xor {}).empty()true - - ({} xor true).empty()true - ({} xor false).empty()true - ({} xor {}).empty()true - - - - (true implies true) = truetrue - (true implies false) = falsetrue - (true implies {}).empty()true - - (false implies true) = truetrue - (false implies false) = truetrue - (false implies {}) = truetrue - - ({} implies true) = truetrue - ({} implies false).empty()true - ({} implies {}).empty()true - - - - 1 + 1 = 2true - 1 + 0 = 1true - 1.2 + 1.8 = 3.0true - 'a'+'b' = 'ab'true - - - - 'a' & 'b' = 'ab'true - '1' & {} = '1'true - {} & 'b' = 'b'true - (1 | 2 | 3) & 'b' = '1,2,3b' - - - - 1 - 1 = 0true - 1 - 0 = 1true - 1.8 - 1.2 = 0.6true - 'a'-'b' = 'ab' - - - - 1 * 1 = 1true - 1 * 0 = 0true - 1.2 * 1.8 = 2.16true - - - - 1 / 1 = 1true - 4 / 2 = 2true - 4.0 / 2.0 = 2.0true - 1 / 2 = 0.5true + + + + 1 in (1 | 2 | 3)true + 1 in (2 | 3)false + 'a' in ('a' | 'c' | 'd')true + 'b' in ('a' | 'c' | 'd')false + + + + (1 | 2 | 3) contains 1true + (2 | 3) contains 1 false + ('a' | 'c' | 'd') contains 'a'true + ('a' | 'c' | 'd') contains 'b'false + + + + (true and true) = truetrue + (true and false) = falsetrue + (true and {}).empty()true + + (false and true) = falsetrue + (false and false) = falsetrue + (false and {}) = falsetrue + + ({} and true).empty()true + ({} and false) = falsetrue + ({} and {}).empty()true + + + + (true or true) = truetrue + (true or false) = truetrue + (true or {}) = truetrue + + (false or true) = truetrue + (false or false) = falsetrue + (false or {}).empty()true + + ({} or true) = truetrue + ({} or false).empty()true + ({} or {}).empty()true + + + + (true xor true) = falsetrue + (true xor false) = truetrue + (true xor {}).empty()true + + (false xor true) = truetrue + (false xor false) = falsetrue + (false xor {}).empty()true + + ({} xor true).empty()true + ({} xor false).empty()true + ({} xor {}).empty()true + + + + (true implies true) = truetrue + (true implies false) = falsetrue + (true implies {}).empty()true + + (false implies true) = truetrue + (false implies false) = truetrue + (false implies {}) = truetrue + + ({} implies true) = truetrue + ({} implies false).empty()true + ({} implies {}).empty()true + + + + 1 + 1 = 2true + 1 + 0 = 1true + 1.2 + 1.8 = 3.0true + 'a'+'b' = 'ab'true + + + + 'a' & 'b' = 'ab'true + '1' & {} = '1'true + {} & 'b' = 'b'true + (1 | 2 | 3) & 'b' = '1,2,3b' + + + + 1 - 1 = 0true + 1 - 0 = 1true + 1.8 - 1.2 = 0.6true + 'a'-'b' = 'ab' + + + + 1 * 1 = 1true + 1 * 0 = 0true + 1.2 * 1.8 = 2.16true + + + + 1 / 1 = 1true + 4 / 2 = 2true + 4.0 / 2.0 = 2.0true + 1 / 2 = 0.5true 1.2 / 1.8 = 0.67true - + - - 1 div 1 = 1true - 4 div 2 = 2true + + 1 div 1 = 1true + 4 div 2 = 2true - 5 div 2 = 2true - 2.2 div 1.8 = 1true - + 5 div 2 = 2true + 2.2 div 1.8 = 1true + - - 1 mod 1 = 0true - 4 mod 2 = 0true - 5 mod 2 = 1true - 2.2 mod 1.8 = 0.4true - + + 1 mod 1 = 0true + 4 mod 2 = 0true + 5 mod 2 = 1true + 2.2 mod 1.8 = 0.4true + - + -1.convertsToInteger() @@ -958,20 +1006,20 @@ 1+2*3+4 = 11true 1 > 2 is Booleantrue 1 | 1 is Integertrue - + - - %sct = 'http://snomed.info/sct'true - %loinc = 'http://loinc.org'true - %ucum = 'http://unitsofmeasure.org'true - %`vs-administrative-gender` = 'http://hl7.org/fhir/ValueSet/administrative-gender'true - + + %sct = 'http://snomed.info/sct'true + %loinc = 'http://loinc.org'true + %ucum = 'http://unitsofmeasure.org'true + %`vs-administrative-gender` = 'http://hl7.org/fhir/ValueSet/administrative-gender'true + - - Patient.birthDate.extension('http://hl7.org/fhir/StructureDefinition/patient-birthTime').exists()true - Patient.birthDate.extension(%`ext-patient-birthTime`).exists()true - Patient.birthDate.extension('http://hl7.org/fhir/StructureDefinition/patient-birthTime1').empty()true - + + Patient.birthDate.extension('http://hl7.org/fhir/StructureDefinition/patient-birthTime').exists()true + Patient.birthDate.extension(%`ext-patient-birthTime`).exists()true + Patient.birthDate.extension('http://hl7.org/fhir/StructureDefinition/patient-birthTime1').empty()true + 1.type().namespace = 'System'true @@ -979,9 +1027,9 @@ true.type().namespace = 'System'true true.type().name = 'Boolean'true true.is(Boolean)true - true.is(System.Boolean)true + true.is(System.Boolean)true true is Booleantrue - true is System.Booleantrue + true is System.Booleantrue Patient.active.type().namespace = 'FHIR'true Patient.active.type().name = 'boolean'true Patient.active.is(boolean)true @@ -997,20 +1045,23 @@ Patient.ofType(FHIR.Patient).type().namePatient Patient.is(System.Patient).not()true Patient.ofType(FHIR.`Patient`).type().namePatient - - + + conformsTo('http://hl7.org/fhir/StructureDefinition/Patient')true conformsTo('http://hl7.org/fhir/StructureDefinition/Person')false conformsTo('http://trash') - - + + + name="from-Zulip"> + (true and 'foo').empty()true + (true | 'foo').allTrue()false + -