Commit Graph

336 Commits

Author SHA1 Message Date
patrick-werner 2f3ac9d734 added missing method 2019-03-30 15:21:01 +01:00
Matti Uusitalo 5e0996d8ff Better method comment 2019-03-05 12:00:56 +02:00
Matti Uusitalo 9549a1615c Merge with origin/master 2019-03-05 11:44:30 +02:00
James Agnew 48c10bddc5
Narrative Generator refactoring (#1219)
* Starting work on this

* Working on narrative templates

* Work on new narrative system

* Account for some failing tests due to refactoring of narrative mode

* Another test fix

* More test fixes

* One more test fix

* Work on searches

* Address review comments
2019-02-27 14:59:57 -05:00
James Agnew 0f8c8d18e2 Bump version to 3.8.0-SNAPSHOT 2019-02-06 20:02:28 -05:00
jamesagnew 207015c3af Version bump to 3.7.0 2019-02-05 21:36:38 -05:00
James Agnew 9a8e3245b8 Build fixes 2019-02-05 15:00:36 -05:00
James Agnew 47123196a0 Merge branch 'master' of https://github.com/eevaturkka/hapi-fhir into eevaturkka-master 2019-02-05 14:26:41 -05:00
Eeva Turkka be746854e5 version number for release 2019-01-31 15:42:37 +02:00
Eeva Turkka 1c9f7f7ca9 Version number changed for build 2019-01-31 13:26:13 +02:00
Eeva Turkka 7e7d4d8879 Allowing items without answers even if item is disabled. 2019-01-31 13:00:41 +02:00
Eeva Turkka e6df4a21e4 Merge branch 'enablewhen_fix' of https://github.com/eevaturkka/hapi-fhir into enablewhen_fix 2019-01-28 10:31:44 +02:00
James Agnew 4f16fea580 Fix compile error 2018-12-28 12:11:19 -05:00
James Agnew 14a132a937 Squashed commit of the following:
commit 9659655830
Author: James Agnew <jamesagnew@gmail.com>
Date:   Thu Dec 27 17:54:25 2018 -0500

    Finish sync

commit 70da25b76f
Author: jamesagnew <jamesagnew@gmail.com>
Date:   Thu Dec 27 10:32:51 2018 -0500

    Work on RI4 sync
2018-12-27 17:58:47 -05:00
James Agnew a0cb7edd08 Version bump a few dependencies 2018-12-22 20:13:03 -05:00
Ken Stevens 84a34eb3c9
Subscription module support (#1147)
* Reorganizing packages and dependencies to support standalone subscription running within a CDR container where all hapi modules are on the classpath.

Moved Subscription registry out of interceptor and introduced SubscriptionLoader

* Created ActiveSubscription and moved cache bits into it

* Moved ExecutorQueue stuff out into its own class

* Add test and supporting code to validate SubscriptionConstants.EXT_SUBSCRIPTION_RESTHOOK_DELIVER_LATEST_VERSION behaviour

* Added SubscriptionCheckingSubscriber

* Moved a few beans to @ComponentScan

* Replaced use of beanFactory with concrete factory classes

* Switched test to use subscribablechannel

* Added SubscriptionLoaderFhirClientTest

* Confirm that our SubscriptionProviderFhirClient works with a live fhir client

* Register interceptors with DaoConfig instead of RestServer.
Also, Rename @VisibleForTesting methods with ForUnitTest

* Fix triggering service so it uses new subscriptionmatcherinterceptor

* Renamed "Database" classes to "Dao"

* processing -> matching naming change
2018-12-18 13:09:06 -05:00
Matti Uusitalo a3e7f5b18f Corrected group ids back to ca.uhn.hapi.fhir 2018-12-18 11:21:29 +02:00
Matti Uusitalo 01eb7faf66 Deleted unnecessary Inteface class 2018-12-18 10:15:47 +02:00
Matti Uusitalo 98f929997b Sync with upstream/master 2018-12-17 15:38:05 +02:00
Matti Uusitalo 7ad45308e0 Make this configurable 2018-12-17 14:10:15 +02:00
Matti Uusitalo 89e3cac0e2 Corrected problems caused by merge 2018-12-17 13:55:15 +02:00
Matti Uusitalo 8183c18406 Corrected project dependency version numberts 2018-12-17 13:54:43 +02:00
Matti Uusitalo 58959eec48 Do not force enableWhen to have system 2018-12-17 13:31:07 +02:00
Matti Uusitalo dd8e027ff4 Don't evaluate Extensions when determining type of answer 2018-12-17 13:31:07 +02:00
Matti Uusitalo a1f79a2063 Filter Extensions from enablewhen evaluation 2018-12-17 13:31:07 +02:00
Matti Uusitalo 755eaa5f25 bumped version n. for release 2018-12-17 13:31:07 +02:00
Matti Uusitalo c2b3d48afe Support required questionnaireitem groups 2018-12-17 13:31:07 +02:00
Matti Uusitalo a0db7e20b6 temporarily set hard coded error when no profile found 2018-12-17 13:30:36 +02:00
Matti Uusitalo cefacdc18c Returned to original state as the experiment failed 2018-12-17 13:30:36 +02:00
Matti Uusitalo 24ebe6cf03 Temporarily set isNoTerminologyServer() return true to avoid errors about loinc codes 2018-12-17 13:30:36 +02:00
Matti Uusitalo 311d92f276 Added more information to the error message about misplaced QuestionnaireResponseItem 2018-12-17 13:30:36 +02:00
Eeva Turkka 076d18977d Added support for Quantity in the default enable when evaluator 2018-12-17 13:30:36 +02:00
Matti Uusitalo b29e8d987c Avoid infinite loop when validating misaligned questionnaireresponseitems 2018-12-17 13:27:27 +02:00
Matti Uusitalo a9c625365d Added missing propagation of QuestionnaireResponse root element 2018-12-17 13:27:27 +02:00
Matti Uusitalo ab484c9819 Thread questionnaireResponse root element through questionnaire validation so implementations of enablewhen may validate against the complete resource 2018-12-17 13:27:27 +02:00
Matti Uusitalo 10fe878540 Changed versions to use fi.kela.kanta.phr parent 2018-12-17 13:27:27 +02:00
Matti Uusitalo e84689b167 Way to inject custom enablewhen evaluator added 2018-12-17 13:27:27 +02:00
Matti Uusitalo 507c78320c Added check for answering questions which are not enabled 2018-12-17 13:27:27 +02:00
Matti Uusitalo d2c6a98c24 Removed unused HapiWorkerContext 2018-12-17 13:27:27 +02:00
Okko Kauhanen a12f5892e2 Added operator evaluation for R4 enableWhen 2018-12-17 13:26:31 +02:00
Eeva Turkka 69d9e5d2b2 Unit tests up to date and maybe we need to use r4 path 2018-12-17 13:15:43 +02:00
Eeva Turkka 84c02d2e79 Cherry picked changes from master to 3.5.0 branch 2018-12-17 13:13:38 +02:00
Matti Uusitalo 3c56640d57 Do not force enableWhen to have system 2018-12-17 12:48:53 +02:00
Matti Uusitalo 73e85ce668 Don't evaluate Extensions when determining type of answer 2018-12-17 12:48:53 +02:00
Matti Uusitalo 14b5d88530 Filter Extensions from enablewhen evaluation 2018-12-17 12:48:53 +02:00
Matti Uusitalo 4956c9c7e0 bumped version n. for release 2018-12-17 12:48:53 +02:00
Matti Uusitalo c04a172fcd Support required questionnaireitem groups 2018-12-17 12:48:53 +02:00
Matti Uusitalo e13bc28b42 temporarily set hard coded error when no profile found 2018-12-17 12:45:51 +02:00
Matti Uusitalo 3f21bfb560 Returned to original state as the experiment failed 2018-12-17 12:45:51 +02:00
Matti Uusitalo 154a1d92e0 Temporarily set isNoTerminologyServer() return true to avoid errors about loinc codes 2018-12-17 12:45:51 +02:00
Matti Uusitalo c86ae90c4d Added more information to the error message about misplaced QuestionnaireResponseItem 2018-12-17 12:45:51 +02:00
Eeva Turkka 074e812162 Added support for Quantity in the default enable when evaluator 2018-12-17 12:45:51 +02:00
Matti Uusitalo 94f0520982 Avoid infinite loop when validating misaligned questionnaireresponseitems 2018-12-17 12:43:43 +02:00
Matti Uusitalo a6b0cb2a6e Added missing propagation of QuestionnaireResponse root element 2018-12-17 12:43:43 +02:00
Matti Uusitalo fa0b61d9b8 Thread questionnaireResponse root element through questionnaire validation so implementations of enablewhen may validate against the complete resource 2018-12-17 12:43:43 +02:00
Matti Uusitalo a981452957 Reverted to original version 2018-12-17 12:43:43 +02:00
Matti Uusitalo b7843498dc Changed versions to use fi.kela.kanta.phr parent 2018-12-17 12:43:43 +02:00
Matti Uusitalo 76eb85308c Way to inject custom enablewhen evaluator added 2018-12-17 12:43:43 +02:00
Matti Uusitalo 78ab112204 Added check for answering questions which are not enabled 2018-12-17 12:43:43 +02:00
Matti Uusitalo 16a4004f02 Removed unused HapiWorkerContext 2018-12-17 12:43:43 +02:00
Matti Uusitalo e7e039a851 Added default enablewhen behaviour to STU3 resources converted to R4 2018-12-17 12:43:43 +02:00
Okko Kauhanen 8f338c1b63 Remove unnecessary throw 2018-12-17 12:43:43 +02:00
Okko Kauhanen 4fff5ee27a Fixed bug in finding QuestionnaireResponse child items 2018-12-17 12:43:43 +02:00
Okko Kauhanen cddb6b993c Added operator evaluation for R4 enableWhen 2018-12-17 12:43:43 +02:00
Okko Kauhanen 6a83a3fb59 fix enablewhen result 2018-12-17 12:42:29 +02:00
Okko Kauhanen 275cc9556f Missing file 2018-12-17 12:42:29 +02:00
Okko Kauhanen 48db1d8770 First implementation of enableWhen evaluator 2018-12-17 12:42:29 +02:00
Eeva Turkka ad11409705 Unit tests up to date and maybe we need to use r4 path 2018-12-17 12:42:29 +02:00
Eeva Turkka 7097526f81 Cherry picked changes from master to 3.5.0 branch 2018-12-17 12:41:05 +02:00
James Agnew 46f5c18adc Prepare for 3.6.0 release 2018-12-17 12:32:33 +02:00
Matti Uusitalo b262985e21 Do not force enableWhen to have system 2018-12-13 13:29:17 +02:00
hdconradi 89ede0e524 Extension domains configuration for the fhr instance validator (#917)
* Fix the url of the StructureDefinition extensions

http://hl7.org/fhir/tools/StructureDefinition/ -> http://hl7.org/fhir/StructureDefinition/
That makes the entry for the structuredefinition-expression superfluous.

The url behind IG_DEPENDSON_PACKAGE_EXTENSION does not point is not (yet?) valid too.

* Add ability to configure custom extension domains.

* Testing the extension domains configuration

* Fix obvious bug when determining resource name

The for loop was completely superfluous beforehand.
Either fix it as e.g. in this patch or remove it.

* small improvements and TODO's for possible NPE's

- javadoc see
- use diamond operator for generics
- remove throws clause when exception is not thrown
- add TODO's for some cases a NPE might occur.
  My knowledge of the context is not sufficient to suggest the proper
  way to solve this.
2018-12-13 05:32:47 -05:00
Matti Uusitalo c85f4b8362 Don't evaluate Extensions when determining type of answer 2018-12-13 12:12:56 +02:00
Matti Uusitalo 82387e6902 Filter Extensions from enablewhen evaluation 2018-12-12 14:22:38 +02:00
Matti Uusitalo 3df4004539 bumped version n. for release 2018-12-11 11:17:40 +02:00
Matti Uusitalo 64f378ae78 Support required questionnaireitem groups 2018-12-10 13:58:14 +02:00
Matti Uusitalo b2e20b5c31 temporarily set hard coded error when no profile found 2018-12-10 13:57:04 +02:00
Matti Uusitalo 5a508f45b9 Returned to original state as the experiment failed 2018-12-10 13:52:38 +02:00
Matti Uusitalo f72fbbe402 Temporarily set isNoTerminologyServer() return true to avoid errors about loinc codes 2018-12-10 13:52:38 +02:00
Matti Uusitalo b922670d97 Added more information to the error message about misplaced QuestionnaireResponseItem 2018-12-10 13:52:38 +02:00
Eeva Turkka efbff93247 Added support for Quantity in the default enable when evaluator 2018-12-10 13:52:38 +02:00
Matti Uusitalo d2a1be82f8 Avoid infinite loop when validating misaligned questionnaireresponseitems 2018-12-10 13:51:12 +02:00
Matti Uusitalo 55287f126c Added missing propagation of QuestionnaireResponse root element 2018-12-10 13:51:12 +02:00
Matti Uusitalo 2941e7067a Thread questionnaireResponse root element through questionnaire validation so implementations of enablewhen may validate against the complete resource 2018-12-10 13:51:12 +02:00
Matti Uusitalo 606d901523 Reverted to original version 2018-12-10 13:48:23 +02:00
Matti Uusitalo addc44b5f4 Changed versions to use fi.kela.kanta.phr parent 2018-12-10 13:48:23 +02:00
Matti Uusitalo 11b1114fe8 Way to inject custom enablewhen evaluator added 2018-12-10 13:48:23 +02:00
Matti Uusitalo deb8de8705 Added check for answering questions which are not enabled 2018-12-10 13:48:23 +02:00
Matti Uusitalo e2cdb7bbe6 Removed unused HapiWorkerContext 2018-12-10 13:48:23 +02:00
Matti Uusitalo 98cf1becb1 Added default enablewhen behaviour to STU3 resources converted to R4 2018-12-10 13:46:45 +02:00
Okko Kauhanen 360e8d2d8f Remove unnecessary throw 2018-12-10 13:45:12 +02:00
Okko Kauhanen 430e8c89e8 Fixed bug in finding QuestionnaireResponse child items 2018-12-10 13:45:12 +02:00
Okko Kauhanen 0540efa49b Added operator evaluation for R4 enableWhen 2018-12-10 13:45:12 +02:00
Okko Kauhanen f56ad302dd fix enablewhen result 2018-12-10 13:45:12 +02:00
Okko Kauhanen 44b24a65cb Missing file 2018-12-10 13:45:12 +02:00
Okko Kauhanen e4db83ce41 First implementation of enableWhen evaluator 2018-12-10 13:45:12 +02:00
Eeva Turkka c67554e5aa Unit tests up to date and maybe we need to use r4 path 2018-12-10 13:45:12 +02:00
Eeva Turkka b0635a91cd Fixed unit test asserts 2018-12-10 13:33:55 +02:00
Eeva Turkka 4dbef9a799 Cherry picked changes from master to 3.5.0 branch 2018-12-10 13:33:55 +02:00
Matti Uusitalo b76fe1e6be Sync our fork with Hapi master. Merge remote-tracking branch 'upstream/master' 2018-12-10 13:20:27 +02:00
jamesagnew cc57bacab8 Version bump to 3.7.0-SNAPSHOT 2018-11-12 10:07:28 -05:00
James Agnew 63af04a7b4 Prepare for 3.6.0 release 2018-11-12 05:40:55 -05:00
Matti Uusitalo 130fc3a90e Removed unused HapiWorkerContext 2018-11-07 11:46:24 +02:00
Matti Uusitalo b140351650 Added default enablewhen behaviour to STU3 resources converted to R4 2018-11-06 13:11:12 +02:00
Okko Kauhanen 139ec6503f Remove unnecessary throw 2018-11-05 18:39:13 +02:00
Okko Kauhanen c099fcda0a Fixed bug in finding QuestionnaireResponse child items 2018-11-05 17:49:12 +02:00
Okko Kauhanen 4c4c8ba87a Added operator evaluation for R4 enableWhen 2018-11-05 17:03:50 +02:00
Okko Kauhanen 38a2b17a5e fix enablewhen result 2018-11-05 13:00:32 +02:00
Okko Kauhanen 91bf3b61f6 Missing file 2018-11-05 12:55:02 +02:00
Okko Kauhanen 0dcc4fa189 First implementation of enableWhen evaluator 2018-11-05 12:01:25 +02:00
Eeva Turkka 92936d6889 Unit tests up to date and maybe we need to use r4 path 2018-11-02 15:54:34 +02:00
Eeva Turkka 15610c9498 Fixed unit test asserts 2018-11-02 12:03:48 +02:00
Eeva Turkka a832b58691 Fixed test cases to make EnableWhen disable questions 2018-11-02 09:17:35 +02:00
Eeva Turkka 0c0f887ddf Added unit tests - Case when hasAnswer is false doesn't work with
InstanceValidator yet.
2018-11-01 15:58:05 +02:00
James Agnew 34bb70af65 Add validator test and allow migrator to be used for 3_3_0 2018-10-08 21:04:17 -04:00
James Agnew 1cfaeadcb8 Don't use a null version advisor in the DSTU2 version converter 2018-10-01 16:48:56 -04:00
James Agnew 3fd86efa73 One more useless class deleted 2018-09-30 13:41:58 -04:00
James Agnew d7abeb513b Remove class that is failing the build and not used 2018-09-30 13:31:06 -04:00
James Agnew 3e445faf47 Squashed commit of the following:
commit df641506885e09e63f80efc6c658d01a1a3a8142
Author: James Agnew <jamesagnew@gmail.com>
Date:   Sat Sep 29 13:47:22 2018 -0400

    Shrink validation resources

commit 4c1550eafa26f4235b4b8804741aecc03276b5c6
Author: James Agnew <jamesagnew@gmail.com>
Date:   Fri Sep 28 22:45:28 2018 -0400

    Updates to get R4 working

commit 8332f15291006691ed9b07ead3e3524b0fc85510
Author: jamesagnew <jamesagnew@gmail.com>
Date:   Fri Sep 28 09:02:13 2018 -0400

    Ongoing work on gettign R4 working

commit f7146cab7aed937bb625a8aec95744d76db00041
Author: James Agnew <jamesagnew@gmail.com>
Date:   Fri Sep 28 05:21:01 2018 -0400

    More work on sync

commit f48de4a10b1bab2584fee813017d9b27b237bfa9
Merge: 9e4f3cc722 aacb78b779
Author: James Agnew <jamesagnew@gmail.com>
Date:   Thu Sep 27 20:11:29 2018 -0400

    Merge branch 'sync_r4' of github.com:jamesagnew/hapi-fhir into sync_r4

commit 9e4f3cc722668aae31a77b19bf9b032af3ae01b0
Author: James Agnew <jamesagnew@gmail.com>
Date:   Thu Sep 27 20:11:19 2018 -0400

    Fix compile error

commit 7ec29e0ceda8f9013cbabb95767cbe15b4b81303
Merge: 23f7517325 002c4b3ff7
Author: James Agnew <jamesagnew@gmail.com>
Date:   Thu Sep 27 20:04:23 2018 -0400

    Merge branch 'master' into sync_r4

commit aacb78b7793ab2c71e0a2a774240ee2b5d3f9e7f
Author: jamesagnew <jamesagnew@gmail.com>
Date:   Thu Sep 27 20:01:42 2018 -0400

    Keep working on getting R4 building

commit 4950de46d99897e74d41dfdb10d3d8a3435cb0c9
Author: jamesagnew <jamesagnew@gmail.com>
Date:   Tue Sep 25 13:11:27 2018 -0400

    Ongoing work to get R4 working

commit 819d69c20e112dd3c72569ec50114ddb8263c300
Author: jamesagnew <jamesagnew@gmail.com>
Date:   Thu Sep 20 08:15:36 2018 -0400

    Work on getting build working

commit 2c61b6cd1205ced5d7b822cf10942c69272ea078
Merge: 16b5bb06c8 dfb4de86f1
Author: jamesagnew <jamesagnew@gmail.com>
Date:   Thu Sep 20 05:16:53 2018 -0400

    Merge branch 'master' into sync_r4

commit 16b5bb06c8cdaf8d67c3b80f5aa9be9fccd99aef
Author: jamesagnew <jamesagnew@gmail.com>
Date:   Mon Sep 17 05:30:39 2018 -0400

    Work on R4 sync

commit 23f7517325a14dd2ca1eb5641296ead2776634ae
Author: James Agnew <jamesagnew@gmail.com>
Date:   Sun Sep 16 10:19:00 2018 -0400

    Work on sync

commit 6cc413c1f1dea538295aa4c16c21a5677494ac4c
Author: James Agnew <jamesagnew@gmail.com>
Date:   Fri Sep 14 17:28:28 2018 -0400

    Work on R$ sync

commit df6f6ad2ce783b07ccc383134705d874bc5d2cf1
Author: jamesagnew <jamesagnew@gmail.com>
Date:   Fri Sep 14 08:33:07 2018 -0400

    Work on R4
2018-09-29 13:48:35 -04:00
James Agnew 706e004b9d Bump to 3.6.0-SNAPSHOT 2018-09-19 10:24:48 -04:00
James Agnew 261f2c73ab Merge branch 'jpa_migration' 2018-09-11 08:09:15 -04:00
jamesagnew 0e75c8ed39 A few test fixes 2018-09-10 08:50:12 -04:00
James Agnew 29f324f8de
Merge branch 'master' into master 2018-09-07 23:25:49 -04:00
James Agnew daef975734 Version bump to 3.5.0 2018-09-08 07:22:21 +08:00
James Agnew f4a21eadda Fix this issue 2018-09-01 14:38:52 +08:00
Anthony Sute 5ef647840b Follow-up fixes for unit tests for issue #1048. 2018-08-10 11:47:53 -04:00
Anthony Sute 0fdcad0985 Second pull request for fixes for issue #1048. 2018-08-06 13:17:51 -04:00
Anthony Sute 3cf3f7d5d6 Fixes for issue #1048. FhirInstanceValidator::validate() now looking in meta/profile section of request prior to calling InstanceValidator::validate(). 2018-08-06 12:50:50 -04:00
jamesagnew e5cb609f4d Performance improvements 2018-06-24 20:02:27 -04:00
James Agnew e9fffd3cdc Allow indexing in custom search params to descend into contained
resources
2018-06-22 11:22:07 -04:00
James Agnew 218937e425 Several fixes 2018-06-20 05:53:32 -04:00
James Agnew cc0e836680
Auth interceptor early checks (#995)
* Validator fix

* Enhance AuthorizationInterceptor so that it tries to deny access earlier
for compartment searches that are outside the allowable compartment.

* FIx DSTU2 test that wasn't updated

* More test fixes
2018-06-10 17:48:20 -04:00
James Agnew 91d4ab8496 Merge branch 'java9' of github.com:jamesagnew/hapi-fhir into java9 2018-05-30 15:03:29 -04:00
James Agnew 1fcb374d40 Test fixes 2018-05-30 15:03:11 -04:00
jamesagnew d127a89047 Some test fixes 2018-05-30 11:01:43 -04:00
James Agnew d819d685ee Test fix 2018-05-30 09:57:41 -04:00
jamesagnew 5a96482860 More work o JDK9 tests 2018-05-30 08:04:01 -04:00
James Agnew a52805e504 Work on JDK9 support 2018-05-30 05:45:08 -04:00
Diederik Muylwyk 0e2c57fa60 Bumping version. 2018-05-28 17:44:38 -04:00
Diederik Muylwyk 2871920734 Preparing release. 2018-05-28 10:45:47 -04:00
jamesagnew 09eb52ed27 Fix failing tests 2018-05-24 06:33:13 -04:00
James Agnew 1ead3f715e
Merge pull request #892 from hdconradi/validate-questionnaire-response-item-type-for-text
Allow text items in questionnaire
2018-05-24 06:03:18 -04:00
James Agnew 934369a1d9
Merge branch 'master' into instance-validator-npe-on-itemtype 2018-05-24 05:55:22 -04:00
James Agnew 179e88eb86
Merge pull request #881 from hdconradi/two-typos
Two typos in the InstanceValidator
2018-05-24 05:52:39 -04:00
James Agnew 74e7152ce6
Merge pull request #880 from hdconradi/required-answer-can-be-missing-when-in-progress
Activate the QuestionnaireResponseValidatorDstu3Test again and add tests for missing required items
2018-05-24 05:46:41 -04:00
James Agnew eb77b8a225
Merge pull request #874 from hdconradi/validation-server-exception-when-local-reference-absent
Validation server exception when local reference absent
2018-05-23 06:29:25 -04:00
jamesagnew c82c57eb37 Sync validator 2018-05-23 06:28:58 -04:00
jamesagnew 7e83fc78cf Disable user resource and weaken validation on the public server 2018-05-21 19:04:37 -04:00
jamesagnew e8139192e0 FIx test issues 2018-05-21 13:07:11 -04:00
James Agnew a7cd37e2a0
Merge branch 'master' into fix936 2018-05-17 07:30:31 -04:00