From 07127f40b17609e32f192780b822e9f856fe6fac Mon Sep 17 00:00:00 2001 From: epicadk Date: Thu, 8 Apr 2021 12:57:27 +0530 Subject: [PATCH 1/6] Add Precision to tsHigh --- .../com/google/android/fhir/index/ResourceIndexer.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/google/android/fhir/index/ResourceIndexer.kt b/core/src/main/java/com/google/android/fhir/index/ResourceIndexer.kt index b4f976a1f0..d0155aee09 100644 --- a/core/src/main/java/com/google/android/fhir/index/ResourceIndexer.kt +++ b/core/src/main/java/com/google/android/fhir/index/ResourceIndexer.kt @@ -123,7 +123,7 @@ internal object ResourceIndexer { DateIndex( searchParam.name, searchParam.path, - date.value.time, + date.precision.add(date.value, 1).time, date.value.time, date.precision ) @@ -133,11 +133,12 @@ internal object ResourceIndexer { DateIndex( searchParam.name, searchParam.path, - dateTime.value.time, + dateTime.precision.add(dateTime.value, 1).time, dateTime.value.time, dateTime.precision ) } + // No need to add precision because an instant is meant to have zero width "instant" -> { val instant = value as InstantType DateIndex( @@ -153,7 +154,8 @@ internal object ResourceIndexer { DateIndex( searchParam.name, searchParam.path, - if (period.hasEnd()) period.end.time else Long.MAX_VALUE, + if (period.hasEnd()) period.endElement.precision.add(period.end, 1).time + else Long.MAX_VALUE, if (period.hasStart()) period.start.time else Long.MIN_VALUE, when { (period.hasEnd() and period.hasStart()) -> @@ -169,7 +171,7 @@ internal object ResourceIndexer { DateIndex( searchParam.name, searchParam.path, - timing.event.maxOf { it.value.time }, + timing.event.maxOf { it.precision.add(it.value, 1).time }, timing.event.minOf { it.value.time }, timing.event.maxOf { it.precision } ) From f3eea5e204131554256514c6d256d1e1424b8118 Mon Sep 17 00:00:00 2001 From: epicadk Date: Thu, 8 Apr 2021 13:03:23 +0530 Subject: [PATCH 2/6] Update tests --- .../com/google/android/fhir/index/ResourceIndexerTest.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/test/java/com/google/android/fhir/index/ResourceIndexerTest.kt b/core/src/test/java/com/google/android/fhir/index/ResourceIndexerTest.kt index 14e50e2c07..ca50bd42b1 100644 --- a/core/src/test/java/com/google/android/fhir/index/ResourceIndexerTest.kt +++ b/core/src/test/java/com/google/android/fhir/index/ResourceIndexerTest.kt @@ -218,7 +218,7 @@ class ResourceIndexerTest { DateIndex( "date", "Observation.effective", - periodElement.end.time, + periodElement.endElement.precision.add(periodElement.end,1).time, periodElement.start.time, periodElement.startElement.precision ) @@ -234,7 +234,7 @@ class ResourceIndexerTest { DateIndex( "date", "Observation.effective", - dateTimeTypeElement.value.time, + dateTimeTypeElement.precision.add(dateTimeTypeElement.value,1).time, dateTimeTypeElement.value.time, dateTimeTypeElement.precision ) @@ -250,7 +250,7 @@ class ResourceIndexerTest { DateIndex( "date", "Observation.effective", - timingElement.event.maxOf { it.value.time }, + timingElement.event.maxOf { it.precision.add(it.value,1).time }, timingElement.event.minOf { it.value.time }, timingElement.event.maxOf { it.precision } ) @@ -333,7 +333,7 @@ class ResourceIndexerTest { DateIndex( "birthdate", "Patient.birthDate", - birthDateElement.getValue().getTime(), + birthDateElement.precision.add(birthDateElement.value,1).time, birthDateElement.getValue().getTime(), birthDateElement.getPrecision() ) From 49bca8253aa773b1ad1430bbf71e374ae65afaa8 Mon Sep 17 00:00:00 2001 From: epicadk Date: Thu, 8 Apr 2021 13:16:18 +0530 Subject: [PATCH 3/6] Update tests --- .../google/android/fhir/index/ResourceIndexerTest.kt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/src/test/java/com/google/android/fhir/index/ResourceIndexerTest.kt b/core/src/test/java/com/google/android/fhir/index/ResourceIndexerTest.kt index ca50bd42b1..f5b74f41b9 100644 --- a/core/src/test/java/com/google/android/fhir/index/ResourceIndexerTest.kt +++ b/core/src/test/java/com/google/android/fhir/index/ResourceIndexerTest.kt @@ -218,7 +218,7 @@ class ResourceIndexerTest { DateIndex( "date", "Observation.effective", - periodElement.endElement.precision.add(periodElement.end,1).time, + periodElement.endElement.precision.add(periodElement.end, 1).time, periodElement.start.time, periodElement.startElement.precision ) @@ -234,7 +234,7 @@ class ResourceIndexerTest { DateIndex( "date", "Observation.effective", - dateTimeTypeElement.precision.add(dateTimeTypeElement.value,1).time, + dateTimeTypeElement.precision.add(dateTimeTypeElement.value, 1).time, dateTimeTypeElement.value.time, dateTimeTypeElement.precision ) @@ -250,7 +250,7 @@ class ResourceIndexerTest { DateIndex( "date", "Observation.effective", - timingElement.event.maxOf { it.precision.add(it.value,1).time }, + timingElement.event.maxOf { it.precision.add(it.value, 1).time }, timingElement.event.minOf { it.value.time }, timingElement.event.maxOf { it.precision } ) @@ -333,9 +333,9 @@ class ResourceIndexerTest { DateIndex( "birthdate", "Patient.birthDate", - birthDateElement.precision.add(birthDateElement.value,1).time, - birthDateElement.getValue().getTime(), - birthDateElement.getPrecision() + birthDateElement.precision.add(birthDateElement.value, 1).time, + birthDateElement.value.time, + birthDateElement.precision ) ) } From 2875f2444e897a36209d0fefc4b32708fdf58529 Mon Sep 17 00:00:00 2001 From: epicadk Date: Tue, 13 Apr 2021 00:08:57 +0530 Subject: [PATCH 4/6] Remove precision --- .../android/fhir/index/ResourceIndexer.kt | 39 ++++++------------- .../android/fhir/index/entities/DateIndex.kt | 9 +---- .../android/fhir/index/ResourceIndexerTest.kt | 28 ++++++------- 3 files changed, 23 insertions(+), 53 deletions(-) diff --git a/core/src/main/java/com/google/android/fhir/index/ResourceIndexer.kt b/core/src/main/java/com/google/android/fhir/index/ResourceIndexer.kt index d0155aee09..48c8ff6138 100644 --- a/core/src/main/java/com/google/android/fhir/index/ResourceIndexer.kt +++ b/core/src/main/java/com/google/android/fhir/index/ResourceIndexer.kt @@ -98,9 +98,8 @@ internal object ResourceIndexer { DateIndex( name = "_lastUpdated", path = arrayOf(resource.fhirType(), "meta", "lastUpdated").joinToString(separator = "."), - tsHigh = lastUpdatedElement.value.time, - tsLow = lastUpdatedElement.value.time, - temporalPrecision = lastUpdatedElement.precision + tsHigh = lastUpdatedElement.precision.add(lastUpdatedElement.value, 1).time - 1, + tsLow = lastUpdatedElement.value.time ) ) } @@ -123,9 +122,8 @@ internal object ResourceIndexer { DateIndex( searchParam.name, searchParam.path, - date.precision.add(date.value, 1).time, - date.value.time, - date.precision + date.precision.add(date.value, 1).time - 1, + date.value.time ) } "dateTime" -> { @@ -133,37 +131,23 @@ internal object ResourceIndexer { DateIndex( searchParam.name, searchParam.path, - dateTime.precision.add(dateTime.value, 1).time, - dateTime.value.time, - dateTime.precision + dateTime.precision.add(dateTime.value, 1).time - 1, + dateTime.value.time ) } // No need to add precision because an instant is meant to have zero width "instant" -> { val instant = value as InstantType - DateIndex( - searchParam.name, - searchParam.path, - instant.value.time, - instant.value.time, - instant.precision - ) + DateIndex(searchParam.name, searchParam.path, instant.value.time, instant.value.time) } "Period" -> { val period = value as Period DateIndex( searchParam.name, searchParam.path, - if (period.hasEnd()) period.endElement.precision.add(period.end, 1).time + if (period.hasEnd()) period.endElement.precision.add(period.end, 1).time - 1 else Long.MAX_VALUE, - if (period.hasStart()) period.start.time else Long.MIN_VALUE, - when { - (period.hasEnd() and period.hasStart()) -> - maxOf(period.startElement.precision, period.endElement.precision) - (period.hasEnd()) -> period.endElement.precision - (period.hasStart()) -> period.startElement.precision - else -> DateTimeType.DEFAULT_PRECISION - } + if (period.hasStart()) period.start.time else 0 ) } "Timing" -> { @@ -171,9 +155,8 @@ internal object ResourceIndexer { DateIndex( searchParam.name, searchParam.path, - timing.event.maxOf { it.precision.add(it.value, 1).time }, - timing.event.minOf { it.value.time }, - timing.event.maxOf { it.precision } + timing.event.maxOf { it.precision.add(it.value, 1).time } - 1, + timing.event.minOf { it.value.time } ) } else -> null diff --git a/core/src/main/java/com/google/android/fhir/index/entities/DateIndex.kt b/core/src/main/java/com/google/android/fhir/index/entities/DateIndex.kt index 6541c6ac63..6b5fd62912 100644 --- a/core/src/main/java/com/google/android/fhir/index/entities/DateIndex.kt +++ b/core/src/main/java/com/google/android/fhir/index/entities/DateIndex.kt @@ -16,8 +16,6 @@ package com.google.android.fhir.index.entities -import ca.uhn.fhir.model.api.TemporalPrecisionEnum - /** * An index record for a date value in a resource. * @@ -31,10 +29,5 @@ internal data class DateIndex( /** The high timestamp. */ val tsHigh: Long, /** The low timestamp. */ - val tsLow: Long, - /** - * The smallest value we can unambiguously resolve the date to. This is an indication to clients - * that any part of the timestamp smaller than the [temporalPrecision] should be ignored. - */ - val temporalPrecision: TemporalPrecisionEnum + val tsLow: Long ) diff --git a/core/src/test/java/com/google/android/fhir/index/ResourceIndexerTest.kt b/core/src/test/java/com/google/android/fhir/index/ResourceIndexerTest.kt index f5b74f41b9..81d9005e17 100644 --- a/core/src/test/java/com/google/android/fhir/index/ResourceIndexerTest.kt +++ b/core/src/test/java/com/google/android/fhir/index/ResourceIndexerTest.kt @@ -218,9 +218,8 @@ class ResourceIndexerTest { DateIndex( "date", "Observation.effective", - periodElement.endElement.precision.add(periodElement.end, 1).time, - periodElement.start.time, - periodElement.startElement.precision + periodElement.endElement.precision.add(periodElement.end, 1).time - 1, + periodElement.start.time ) ) } @@ -234,9 +233,8 @@ class ResourceIndexerTest { DateIndex( "date", "Observation.effective", - dateTimeTypeElement.precision.add(dateTimeTypeElement.value, 1).time, - dateTimeTypeElement.value.time, - dateTimeTypeElement.precision + dateTimeTypeElement.precision.add(dateTimeTypeElement.value, 1).time - 1, + dateTimeTypeElement.value.time ) ) } @@ -250,9 +248,8 @@ class ResourceIndexerTest { DateIndex( "date", "Observation.effective", - timingElement.event.maxOf { it.precision.add(it.value, 1).time }, - timingElement.event.minOf { it.value.time }, - timingElement.event.maxOf { it.precision } + timingElement.event.maxOf { it.precision.add(it.value, 1).time } - 1, + timingElement.event.minOf { it.value.time } ) ) } @@ -266,8 +263,7 @@ class ResourceIndexerTest { "date", "Observation.effective", instantElement.value.time, - instantElement.value.time, - instantElement.precision + instantElement.value.time ) ) } @@ -333,9 +329,8 @@ class ResourceIndexerTest { DateIndex( "birthdate", "Patient.birthDate", - birthDateElement.precision.add(birthDateElement.value, 1).time, - birthDateElement.value.time, - birthDateElement.precision + birthDateElement.precision.add(birthDateElement.value, 1).time - 1, + birthDateElement.value.time ) ) } @@ -349,9 +344,8 @@ class ResourceIndexerTest { DateIndex( "_lastUpdated", "Patient.meta.lastUpdated", - lastUpdatedElement.getValue().getTime(), - lastUpdatedElement.getValue().getTime(), - lastUpdatedElement.getPrecision() + lastUpdatedElement.precision.add(lastUpdatedElement.getValue(), 1).time - 1, + lastUpdatedElement.getValue().getTime() ) ) } From 27332ee1554e9f7bc0c3ffbcd7342f313f15e63b Mon Sep 17 00:00:00 2001 From: epicadk Date: Tue, 13 Apr 2021 01:08:36 +0530 Subject: [PATCH 5/6] Refractor ts_high,ts_low to from,to --- .../fhir/db/impl/entities/DateIndexEntity.kt | 2 +- .../android/fhir/index/ResourceIndexer.kt | 20 +++++++++---------- .../android/fhir/index/entities/DateIndex.kt | 4 ++-- .../android/fhir/index/ResourceIndexerTest.kt | 20 +++++++++---------- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/core/src/main/java/com/google/android/fhir/db/impl/entities/DateIndexEntity.kt b/core/src/main/java/com/google/android/fhir/db/impl/entities/DateIndexEntity.kt index 5467c3f14e..c7954ea2a0 100644 --- a/core/src/main/java/com/google/android/fhir/db/impl/entities/DateIndexEntity.kt +++ b/core/src/main/java/com/google/android/fhir/db/impl/entities/DateIndexEntity.kt @@ -27,7 +27,7 @@ import org.hl7.fhir.r4.model.ResourceType @Entity( indices = [ - Index(value = ["resourceType", "index_name", "index_tsHigh", "index_tsLow"]), + Index(value = ["resourceType", "index_name", "index_to", "index_from"]), Index( // keep this index for faster foreign lookup value = ["resourceId", "resourceType"] diff --git a/core/src/main/java/com/google/android/fhir/index/ResourceIndexer.kt b/core/src/main/java/com/google/android/fhir/index/ResourceIndexer.kt index 48c8ff6138..47d1925a78 100644 --- a/core/src/main/java/com/google/android/fhir/index/ResourceIndexer.kt +++ b/core/src/main/java/com/google/android/fhir/index/ResourceIndexer.kt @@ -98,8 +98,8 @@ internal object ResourceIndexer { DateIndex( name = "_lastUpdated", path = arrayOf(resource.fhirType(), "meta", "lastUpdated").joinToString(separator = "."), - tsHigh = lastUpdatedElement.precision.add(lastUpdatedElement.value, 1).time - 1, - tsLow = lastUpdatedElement.value.time + to = lastUpdatedElement.value.time, + from = lastUpdatedElement.precision.add(lastUpdatedElement.value, 1).time - 1 ) ) } @@ -122,8 +122,8 @@ internal object ResourceIndexer { DateIndex( searchParam.name, searchParam.path, - date.precision.add(date.value, 1).time - 1, - date.value.time + date.value.time, + date.precision.add(date.value, 1).time - 1 ) } "dateTime" -> { @@ -131,8 +131,8 @@ internal object ResourceIndexer { DateIndex( searchParam.name, searchParam.path, - dateTime.precision.add(dateTime.value, 1).time - 1, - dateTime.value.time + dateTime.value.time, + dateTime.precision.add(dateTime.value, 1).time - 1 ) } // No need to add precision because an instant is meant to have zero width @@ -145,9 +145,9 @@ internal object ResourceIndexer { DateIndex( searchParam.name, searchParam.path, + if (period.hasStart()) period.start.time else 0, if (period.hasEnd()) period.endElement.precision.add(period.end, 1).time - 1 - else Long.MAX_VALUE, - if (period.hasStart()) period.start.time else 0 + else Long.MAX_VALUE ) } "Timing" -> { @@ -155,8 +155,8 @@ internal object ResourceIndexer { DateIndex( searchParam.name, searchParam.path, - timing.event.maxOf { it.precision.add(it.value, 1).time } - 1, - timing.event.minOf { it.value.time } + timing.event.minOf { it.value.time }, + timing.event.maxOf { it.precision.add(it.value, 1).time } - 1 ) } else -> null diff --git a/core/src/main/java/com/google/android/fhir/index/entities/DateIndex.kt b/core/src/main/java/com/google/android/fhir/index/entities/DateIndex.kt index 6b5fd62912..334fc6ebcd 100644 --- a/core/src/main/java/com/google/android/fhir/index/entities/DateIndex.kt +++ b/core/src/main/java/com/google/android/fhir/index/entities/DateIndex.kt @@ -27,7 +27,7 @@ internal data class DateIndex( /** The path of the date index, e.g. "Patient.birthdate". */ val path: String, /** The high timestamp. */ - val tsHigh: Long, + val to: Long, /** The low timestamp. */ - val tsLow: Long + val from: Long ) diff --git a/core/src/test/java/com/google/android/fhir/index/ResourceIndexerTest.kt b/core/src/test/java/com/google/android/fhir/index/ResourceIndexerTest.kt index 81d9005e17..27ca47cbef 100644 --- a/core/src/test/java/com/google/android/fhir/index/ResourceIndexerTest.kt +++ b/core/src/test/java/com/google/android/fhir/index/ResourceIndexerTest.kt @@ -218,8 +218,8 @@ class ResourceIndexerTest { DateIndex( "date", "Observation.effective", - periodElement.endElement.precision.add(periodElement.end, 1).time - 1, - periodElement.start.time + periodElement.start.time, + periodElement.endElement.precision.add(periodElement.end, 1).time - 1 ) ) } @@ -233,8 +233,8 @@ class ResourceIndexerTest { DateIndex( "date", "Observation.effective", - dateTimeTypeElement.precision.add(dateTimeTypeElement.value, 1).time - 1, - dateTimeTypeElement.value.time + dateTimeTypeElement.value.time, + dateTimeTypeElement.precision.add(dateTimeTypeElement.value, 1).time - 1 ) ) } @@ -248,8 +248,8 @@ class ResourceIndexerTest { DateIndex( "date", "Observation.effective", - timingElement.event.maxOf { it.precision.add(it.value, 1).time } - 1, - timingElement.event.minOf { it.value.time } + timingElement.event.minOf { it.value.time }, + timingElement.event.maxOf { it.precision.add(it.value, 1).time } - 1 ) ) } @@ -329,8 +329,8 @@ class ResourceIndexerTest { DateIndex( "birthdate", "Patient.birthDate", - birthDateElement.precision.add(birthDateElement.value, 1).time - 1, - birthDateElement.value.time + birthDateElement.value.time, + birthDateElement.precision.add(birthDateElement.value, 1).time - 1 ) ) } @@ -344,8 +344,8 @@ class ResourceIndexerTest { DateIndex( "_lastUpdated", "Patient.meta.lastUpdated", - lastUpdatedElement.precision.add(lastUpdatedElement.getValue(), 1).time - 1, - lastUpdatedElement.getValue().getTime() + lastUpdatedElement.getValue().getTime(), + lastUpdatedElement.precision.add(lastUpdatedElement.getValue(), 1).time - 1 ) ) } From e57bf88cfe9d484c40b575055e387fbb3ea968ba Mon Sep 17 00:00:00 2001 From: epicadk Date: Tue, 13 Apr 2021 10:29:58 +0530 Subject: [PATCH 6/6] Fix order and add some documentation --- .../fhir/db/impl/entities/DateIndexEntity.kt | 2 +- .../google/android/fhir/index/ResourceIndexer.kt | 12 ++++++------ .../android/fhir/index/entities/DateIndex.kt | 14 ++++++++++---- .../android/fhir/index/ResourceIndexerTest.kt | 10 +++++----- 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/core/src/main/java/com/google/android/fhir/db/impl/entities/DateIndexEntity.kt b/core/src/main/java/com/google/android/fhir/db/impl/entities/DateIndexEntity.kt index c7954ea2a0..b22268ed11 100644 --- a/core/src/main/java/com/google/android/fhir/db/impl/entities/DateIndexEntity.kt +++ b/core/src/main/java/com/google/android/fhir/db/impl/entities/DateIndexEntity.kt @@ -27,7 +27,7 @@ import org.hl7.fhir.r4.model.ResourceType @Entity( indices = [ - Index(value = ["resourceType", "index_name", "index_to", "index_from"]), + Index(value = ["resourceType", "index_name", "index_from", "index_to"]), Index( // keep this index for faster foreign lookup value = ["resourceId", "resourceType"] diff --git a/core/src/main/java/com/google/android/fhir/index/ResourceIndexer.kt b/core/src/main/java/com/google/android/fhir/index/ResourceIndexer.kt index 47d1925a78..7b052655c5 100644 --- a/core/src/main/java/com/google/android/fhir/index/ResourceIndexer.kt +++ b/core/src/main/java/com/google/android/fhir/index/ResourceIndexer.kt @@ -98,8 +98,8 @@ internal object ResourceIndexer { DateIndex( name = "_lastUpdated", path = arrayOf(resource.fhirType(), "meta", "lastUpdated").joinToString(separator = "."), - to = lastUpdatedElement.value.time, - from = lastUpdatedElement.precision.add(lastUpdatedElement.value, 1).time - 1 + from = lastUpdatedElement.value.time, + to = lastUpdatedElement.precision.add(lastUpdatedElement.value, 1).time ) ) } @@ -123,7 +123,7 @@ internal object ResourceIndexer { searchParam.name, searchParam.path, date.value.time, - date.precision.add(date.value, 1).time - 1 + date.precision.add(date.value, 1).time ) } "dateTime" -> { @@ -132,7 +132,7 @@ internal object ResourceIndexer { searchParam.name, searchParam.path, dateTime.value.time, - dateTime.precision.add(dateTime.value, 1).time - 1 + dateTime.precision.add(dateTime.value, 1).time ) } // No need to add precision because an instant is meant to have zero width @@ -146,7 +146,7 @@ internal object ResourceIndexer { searchParam.name, searchParam.path, if (period.hasStart()) period.start.time else 0, - if (period.hasEnd()) period.endElement.precision.add(period.end, 1).time - 1 + if (period.hasEnd()) period.endElement.precision.add(period.end, 1).time else Long.MAX_VALUE ) } @@ -156,7 +156,7 @@ internal object ResourceIndexer { searchParam.name, searchParam.path, timing.event.minOf { it.value.time }, - timing.event.maxOf { it.precision.add(it.value, 1).time } - 1 + timing.event.maxOf { it.precision.add(it.value, 1).time } ) } else -> null diff --git a/core/src/main/java/com/google/android/fhir/index/entities/DateIndex.kt b/core/src/main/java/com/google/android/fhir/index/entities/DateIndex.kt index 334fc6ebcd..ca021024cf 100644 --- a/core/src/main/java/com/google/android/fhir/index/entities/DateIndex.kt +++ b/core/src/main/java/com/google/android/fhir/index/entities/DateIndex.kt @@ -26,8 +26,14 @@ internal data class DateIndex( val name: String, /** The path of the date index, e.g. "Patient.birthdate". */ val path: String, - /** The high timestamp. */ - val to: Long, - /** The low timestamp. */ - val from: Long + /** + * The lower bound or start time of the date value. This is a closed interval and the value is + * included + */ + val from: Long, + /** + * The upper bound or end time of the date value. This is an open interval and the value is + * excluded + */ + val to: Long ) diff --git a/core/src/test/java/com/google/android/fhir/index/ResourceIndexerTest.kt b/core/src/test/java/com/google/android/fhir/index/ResourceIndexerTest.kt index 27ca47cbef..7758aac8ed 100644 --- a/core/src/test/java/com/google/android/fhir/index/ResourceIndexerTest.kt +++ b/core/src/test/java/com/google/android/fhir/index/ResourceIndexerTest.kt @@ -219,7 +219,7 @@ class ResourceIndexerTest { "date", "Observation.effective", periodElement.start.time, - periodElement.endElement.precision.add(periodElement.end, 1).time - 1 + periodElement.endElement.precision.add(periodElement.end, 1).time ) ) } @@ -234,7 +234,7 @@ class ResourceIndexerTest { "date", "Observation.effective", dateTimeTypeElement.value.time, - dateTimeTypeElement.precision.add(dateTimeTypeElement.value, 1).time - 1 + dateTimeTypeElement.precision.add(dateTimeTypeElement.value, 1).time ) ) } @@ -249,7 +249,7 @@ class ResourceIndexerTest { "date", "Observation.effective", timingElement.event.minOf { it.value.time }, - timingElement.event.maxOf { it.precision.add(it.value, 1).time } - 1 + timingElement.event.maxOf { it.precision.add(it.value, 1).time } ) ) } @@ -330,7 +330,7 @@ class ResourceIndexerTest { "birthdate", "Patient.birthDate", birthDateElement.value.time, - birthDateElement.precision.add(birthDateElement.value, 1).time - 1 + birthDateElement.precision.add(birthDateElement.value, 1).time ) ) } @@ -345,7 +345,7 @@ class ResourceIndexerTest { "_lastUpdated", "Patient.meta.lastUpdated", lastUpdatedElement.getValue().getTime(), - lastUpdatedElement.precision.add(lastUpdatedElement.getValue(), 1).time - 1 + lastUpdatedElement.precision.add(lastUpdatedElement.getValue(), 1).time ) ) }