Commit Graph

343 Commits

Author SHA1 Message Date
Tadgh eabe3e7c74 Merge branch 'master' into custom-elastic-index 2021-09-07 13:56:44 -04:00
Tadgh f0a8659653 Fix template and setup static prefix as sample 2021-09-04 23:55:03 -04:00
Ken Stevens 346e29920a
Issue 2927 convert mdm clear to spring batch (#2929)
* initial roughout of mdm clear batch job

* still roughing out classes

* finished first draft of reader

* most tests passing now

* all tests pass.  now FIXMEs

* FIXMEs done.  Time for regression.

* fix test

* changelog and docs

* fix test

* pre-review cleanup

* version bump

* move spring autowire deps for cdr

* move spring autowire deps for cdr

* finally got beans working phew

* rearrange method calls so persistence module can perform clear operation on its own

* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/docs/server_jpa_mdm/mdm_operations.md

Co-authored-by: Tadgh <tadgh@cs.toronto.edu>

* review feedback

* review feedback

* Remove inheritance

* fix beans

Co-authored-by: Tadgh <tadgh@cs.toronto.edu>
Co-authored-by: Tadgh <garygrantgraham@gmail.com>
2021-09-03 14:58:19 -04:00
Tadgh 37ad73a422 Bump PRE version so we don't conflict downstream 2021-08-23 15:42:18 -04:00
Tadgh 4fadc62066 Bump Hapi Version 2021-08-06 13:44:04 -04:00
Ken Stevens f5dfc3a5ed
New reindex spring batch operation (#2845)
* first sweep to add new $reindex job

* first cut done.  next up integration test.

* start roughing out reindex everything

* Failing test

* test passes

* add BundleUtil helper method

* rough in processEverything

* rough in processEverything

* fix mock test

* merge master

* Make BaseJpaTest.mySrd lenient.

* fix test

* reindex everything works with FIXMEs

* reindex everything more tests

* moar tests

* moar tests

* fix test

* fix test

* fix regression and fix test

* fix test cycle

* fixme

* fix test

* test provider layer

* reindex everything partition aware

* yay last fixme!

* run reindex in partitioned threads

* add fixmes for areas that require extra testing

* added transaction and log message

* manual integration testing

* changelog

* reindex all partitions

* bump hapi version

* fix test

* moar test

* pre-review cleanup

* fix javadoc

* review feedback

* review feedback

* review feedback

* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/5_5_0/2845-reindex-operation.yaml

Co-authored-by: michaelabuckley <michaelabuckley@gmail.com>

* review feedback

* review feedback

* Update hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/delete/job/ReindexJobTest.java

Co-authored-by: michaelabuckley <michaelabuckley@gmail.com>

* Update hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/delete/job/ReindexJobTest.java

Co-authored-by: michaelabuckley <michaelabuckley@gmail.com>

* Update hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/provider/r4/MultitenantBatchOperationR4Test.java

Co-authored-by: michaelabuckley <michaelabuckley@gmail.com>

* Update hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/provider/r4/MultitenantBatchOperationR4Test.java

Co-authored-by: michaelabuckley <michaelabuckley@gmail.com>

* Update hapi-fhir-jpaserver-searchparam/src/main/java/ca/uhn/fhir/jpa/searchparam/ResourceSearch.java

Co-authored-by: michaelabuckley <michaelabuckley@gmail.com>

* Update hapi-fhir-server/src/main/java/ca/uhn/fhir/rest/api/server/storage/IDeleteExpungeJobSubmitter.java

Co-authored-by: michaelabuckley <michaelabuckley@gmail.com>

Co-authored-by: michaelabuckley <michaelabuckley@gmail.com>
2021-07-29 19:18:49 -04:00
jamesagnew a5e6674e84 Version bump to 5.5.0-PRE7-SNAPSHOT 2021-07-22 08:41:16 -04:00
Tadgh f66f9b992e Bump pre-version as this will break downstream implementations 2021-06-30 15:37:19 -04:00
James Agnew 8b205b23d0
Fix history paging (#2741)
* Fix history paging

* Add changelog

* Add license header
2021-06-18 17:47:51 -04:00
Ken Stevens 134631fdee
Convert delete expunge to use Spring Batch (#2697)
* prepare to add $delete-expunge operation that will create a spring batch job

* Add operation

* Wire up jpa provider.  Begin with failing test.

* Copy/paste bulk import job as a starting point.
FIXME with proposed design

* delete expunge job parameter validation with test

* implemented reader
stubbed processor, writer

* wip for master merge

* started implementing reader

* started implementing reader

* working with stubs

* happy path batch delete expunge is done

* Provider done but test not passing.  Guessing batch infrastructure not running in that test.

* IT test works now

* add reader test

* Converted delete _expunge=true to use new batch job

* DeleteExpungeDaoTest passes

* Fix test

* Change batch size to integer

* rename search count to batch size

* Make delete expunge partition aware

* updated docs

* pre-review cleanup

* change log

* add partition id to SystemRequestDetails

* Make RequestPartitionId serializable

* Change delete expunge provider to use partition id instead of tenant name

* fix tests

* test pointcut gets called

* assert on pointcut calls

* Add resource type to STORAGE_PARTITION_SELECTED pointcut

* bump hapi-fhir version
move expunge provider parameters from JpaConstants to ProviderConstants

* bump hapi-fhir version

* copyrights

* restore deleteexpungeservice for mdm

* restore deleteexpungeservice for mdm

* fix test

* public constants

* convert instant to date

* Moved expunge constants to ProviderConstants

* final review

* disabling InMemoryResourceMatcherR5Test.testNowNextMinute() to see if I can get a clean test run

* fix tests

* fix tests

* fix tests

* fix tests

* review feedback

* review feedback

* review feedback

* review feedback

* review feedback

* review feedback

* improve logging

* bump version

* version bump

* recovering from failed merge

* unzip RequestListJson per Gary's suggestion.  I didn't want to do it at first, but as usual Gary was right.

* fix serialization
2021-06-15 10:36:05 -04:00
jamesagnew 376a84d213 Version bump 2021-06-14 13:12:34 -04:00
James Agnew dc627dc019
Add bulk export authorization layer (#2712)
* Add bulk export authorization layer

* Add docs

* Version bump

* Authorize any

* Add bulk export - all

* Address lgtm issue
2021-06-06 20:47:43 -04:00
jamesagnew 2068372998 Version bump 2021-05-07 17:43:54 -04:00
James Agnew 0cea403800
Fix vulnerability warning on maven plugin (#2621)
* Fix vulnerability warning on maven plugin

* Compile fixes

* Fix bootstrap dep

* Test fix

* Fix tests

* FIx deps
2021-05-02 12:14:32 -04:00
James Agnew 970a9884f0
Avoid tag definition constraint (#2620)
* Avoid tag definition constraint failure

* Version bumps

* Add changelog

* Avoid guava issue

* Test fix

* Test fix

* Bump pom
2021-05-01 17:16:15 -04:00
James Agnew 95d7ba6fa8
Streamline Search SQLs (#2576)
* Streamline SQL queries

* SQL query tidying

* Add changelog

* Test fixes

* Tests passing

* Ongoing work

* Test fixes

* Test fixes

* Build fix

* Cleanup

* Fixes
2021-04-28 10:29:09 -04:00
James Agnew 2ba1005762
OpenAPI Support (#2560)
* Start work on OpenAPI

* Fixes

* Work on OpenAPI

* Cleanup

* Cleanup

* More swagger work

* Build fix

* More work

* More work

* Add documentation

* Docs fixes

* Add changelog

* License updates

* Add API

* Cleanup

* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/docs/server_plain/openapi.md

Co-authored-by: patrick-vachon-smilecdr <81274188+patrick-vachon-smilecdr@users.noreply.github.com>

* Work on scripts

* Add docs

* Compile fix

* Work on fixes

* Fix tests

* Test fix

* Test fix

* Build fix

* Tests

* Build fix

* Work on pipeline

* Version bump

* Test fix

* Version bump

* Test fix attempts

* Test fix

* Test fix

* Remove accidentally committed files

* Fixes

* Tets fixes

* Test fix

* Test fix

* Test fix

* Test fixes

* Test fixes

* Test fixes

* License header updates

* test fix

* Test fixes

* Test fix

* Test fixes

* Test fix

* Checkstyle bump

Co-authored-by: patrick-vachon-smilecdr <81274188+patrick-vachon-smilecdr@users.noreply.github.com>
2021-04-25 15:40:50 -04:00
Nick Goupinets 4e266462ec Bumped up version due to breaking changes 2021-04-20 16:17:27 -04:00
James Agnew ca2088f3ad
Add framework for Bulk Import (#2538)
* Start work on bul;k import

* Work on bulk import

* Have batch working

* Working

* Working

* More work

* More work on bulk export

* Address fixmes

* License header updates

* Test fixes

* License header updates

* Test fix

* Test fix

* Version bumps

* Work on config

* Test cleanup

* One more version bump

* Version bump

* CLeanup

* A few additions

* Test fixes

* Test fix

* Test fix

* Migration fix

* Test fix

* Test fix
2021-04-14 17:41:32 -04:00
James Agnew a6cbf7eebd
Add support for hierarchycal valueset expansion (#2525)
* Add support for hierarchycal valueset expansion

* Add changelog

* Add tests

* Cleanup

* Test fix

* Test fixes
2021-04-06 17:36:54 -04:00
James Agnew b617c7690d
Search Parameter Infrastructure Cleanup (#2522)
* Search param service cleanup

* Work on collapsing search param

* Search param cleanup

* Work on build

* Test fix

* Test fixes

* Ongoing work

* Test fix

* Compile fix

* Test fixes

* Test fix

* Test fix

* License header updates

* Remove fixme

* Cleanup

* Cleanup
2021-04-05 17:40:10 -04:00
Diederik Muylwyk b720c32c1d Version bump 2021-03-29 18:23:16 -04:00
Tuomo Ala-Vannesluoma d3bd48f66a
Suppress Authorization header value from the request headers (#2194) 2021-03-26 09:14:14 -04:00
James Agnew 8352bc9c01
Correct the path to the select2 library in the testpage overlay (#2505)
* Correct the path to the select2 library in the testpage overlay

* Add changelog
2021-03-25 10:52:15 -04:00
James Agnew dc41d5ad61
Add terminology mapping and display population interceptors (#2488)
* Start work on code mapping interceptors

* Work on generation

* Add terminology mapping and display population interceptors

* Add changelog

* License header updates

* Test fixes

* Fix typo

* Interceptor fixes

* License header update

* Test fixes

* Mapping fixes

* Version bump

* License header updates

* Add null tests

* Add null guard

* Intermittent fix
2021-03-21 12:03:57 -04:00
James Agnew 3eda19c65a
Version bump (#2400)
* Version bump

* Docs changes

* Docs tweaks

* Docs tweak

* Spelling fixes

* Docs tweaks
2021-02-18 11:07:49 -05:00
jamesagnew 919c1dbddc Version bump to 5.3.0 2021-02-17 07:10:13 -05:00
James Agnew 65ac0e80fb
Add CapabilityStatement customizer (#2387)
* Add CapabilityStatement customizer

* Fix javadocs
2021-02-15 14:58:34 -05:00
Alejandro Medina f55cb96c8f
Update tmpl-head.html (#2273)
wrong path in library select2
2021-01-07 06:01:33 -05:00
jamesagnew 0c31741eec Version bump to 5.3.0-SNAPSHOT 2020-11-18 14:52:43 -05:00
jamesagnew 4d441ad7f2 Version bump to 5.2.0 2020-11-18 06:30:20 -05:00
James Agnew aa3da9b05f
Bump bootstrap version (#2128)
* Bump bootstrap version

* Add changelog

* Resolve fixme

* Rmove test code
2020-10-12 20:47:14 -04:00
James Agnew 5b6ee4e475
Dependency version bump (#2074)
* Dependency version bump

* More dependency work

* One more fix
2020-09-14 08:42:28 -04:00
jamesagnew 92718c7ef2 Version bump to 5.2.0-SNAPSHOT 2020-08-12 10:23:46 -04:00
jamesagnew 5fb7bd5156 Version bump to 5.1.0 2020-08-11 17:43:24 -04:00
James Agnew 0de0b88aa0
Fix TestpageOverlay XSS Vulnerability (#2027)
* Resolve XSS vulnerability

* Add changelog
2020-08-09 07:06:11 -04:00
Tadgh d1b963321a
MVP EMPI implementation (#1857)
EMPI Initial Implementation (still plenty of known gaps)
2020-05-22 15:03:20 -04:00
jamesagnew 52c8e3551c Version bump to 5.1.0-SNAPSHOT 2020-05-15 14:43:32 -04:00
jamesagnew fe0e07a313 Bump to 5.0.1 2020-05-15 05:47:01 -04:00
jamesagnew 1d13e29ac0 Version bump to 5.1.0-SNAPSHOT 2020-05-12 20:04:20 -04:00
jamesagnew d631ecff4a Prepare for 5.0.0 2020-05-12 11:49:18 -04:00
jamesagnew 6baf1995c9 Work on subscription cleanup 2020-04-02 20:30:19 -04:00
James Agnew bde7c356fe
Implement Jackson parser/serializer (#1733)
* [dev] Integration of a Jackson serializer and deserializer - first stage

* [fix] Fixed some serializing issues
[improve] Improved the processing, removed the loggers

* [clean] Removed the JacksonSerializer class, replaced all the Gson classes with Jackson classes

* [clean] Small cleanup

* [improve] Throw a ConfigurationException if the JsonGenerator cannot be created

* [improve] Use the ObjectMapper's `readTree` instead of `readValue`

* [dev] Latest fixes and improvements

* [dev] Use the Jackson serializer

* [clean] Removed the ObjectMapper configuration, for now

* [fix] Use the GsonStructure also for the parsing of a FHIR resource

* [clean] Removed the LinkedList usage

* Work on preparing for merge of #1673

* Resolve build errors

* Work on parser integration

* Tests passing

* Resolve fixme

* CLeanup

* Fix dependency

Co-authored-by: Bogdan Solga <bogdan.solga@gmail.com>
2020-03-17 17:27:26 -04:00
James Agnew 22413911bf
Validation api changes (#1719)
* Validation enhancements

* Work on validation api reworking

* Keep working on validation API

* Keep working on new term API

* Work on validation api

* Ongoing work on validation

* Work on integrating validation

* Work on validation API

* Add to validation API

* Work on validation

* Work on API

* Work on validation

* Work on validation API

* Work on validation API

* Work on validation api

* Work on validation API

* Work on validation api

* Validation API changes

* Work on API

* More work on validationo API

* Work on validation API

* FIxes

* WOrk on validation api

* Work on validation API

* Tests passing!

* More cleanup

* More validation API changes

* Fix intermittent test failure

* Package reorg

* Validation API work

* Work on doocumentation

* Work on API

* More work on new validation API

* Fix errorprone-reported error

* Test fixes

* Documentation updates

* Documentation tweaks

* Work on API

* Bean name adjustments

* Build fixes

* Some test fixes
2020-03-17 13:28:59 -04:00
jamesagnew ddc7b601ee Version bump to 4.3.0-SNAPSHOT 2020-02-16 19:23:22 -05:00
jamesagnew 4fd80cfca7 Bump to 4.2.0 2020-02-16 19:00:15 -05:00
James Agnew ca620d652f
Add tests (#1606)
* Support chained HAS

* Add some tests

* Add some cleanup

* Work on intermittent tests
2019-11-24 10:11:49 +01:00
James Agnew 74159dcb26
Work on refactoring how PIDs work (#1580)
* Start work on refactoring how PIDs work

* Some test fixes

* Test fixes

* Test fixes

* Restore accidentally deleted line

* One more tweak

* Rework resource link extraction

* Test fix

* Split out transaction processor

* Updates

* Test fix

* Test fixes

* Test fixes

* Clean up LGTM warning

* Fix compile failure

* One more test fix

* Fix LGTM issue

* Add spot for metadata

* Add test logging

* Remove testing code

* More test logging

* Add some test logging

* Attempty to fix intermittent test failure

* Improve exception tracking

* Work on simplifying search param registry

* Fix compile

* Fix compile errors

* Fix two test bugs
2019-11-17 14:35:19 -05:00
James Agnew 251df0849d Add an element ID to testpage for testing 2019-11-13 15:43:15 -05:00
James Agnew 497a96ae68 Version bump for next round of development 2019-11-12 22:09:21 -05:00
jamesagnew f99ad981b5 Version bump to 4.1.0 2019-11-12 16:08:20 -05:00
jiaola 2bf63b1fd7 Enable R5 support in testpage-overlay 2019-10-31 08:18:21 -04:00
James Agnew 403a3d1889
Correct URI loading in testpage-overlay (#1565)
* Clean up tests

* Try to fix intermittent

* Fix URI issue

* Add changelog
2019-10-25 16:14:06 -04:00
James Agnew 0af79b84d9
Use webjars instead of including JS deps (#1551)
* Use webjars instead of including JS deps

* Add changelog
2019-10-21 07:22:55 -04:00
James Agnew 2725797610
Implement Terminology Delta Operations (#1536)
* Start refactoring terminology delta operations

* Work on delta operations

* Work on concept saving

* Split term services into smaller services

* Work on term delta operations

* Work on term svcs

* Work on term operations

* More work on delta uploader

* Add a test

* Wrk on term service

* Fix compile error

* Some refactoring

* Test fix

* Test fix

* Test fixes

* Test fix

* Test fixes

* Test fixes

* Work on delta

* Work on tests#

* Test fixes

* Improve resequencing logic

* Build test

* More testing

* More build testing

* More work on tests

* CHange test logging

* Fix term service PID issue

* Update src/changes/changes.xml

Co-Authored-By: Diederik Muylwyk <diederik.muylwyk@gmail.com>

* Address review comment

* Some cleanup

* Test fix

* Fix some tests

* Test fixes
2019-10-14 19:14:41 -04:00
James Agnew 1a2271f751
Merge branch 'master' into missing-date-fields-fix 2019-10-01 05:29:57 -04:00
James Agnew eddb98084d Move PreferReturnEnum back to original location to avoid regressions 2019-09-19 15:48:58 -04:00
James Agnew 30dfde645b Upgrade to Fontawesdome 5 and prevent uploading resources with binary
storage extensions
2019-09-19 05:28:05 -04:00
James Agnew 9997b02506 Add support for R5 in the terstpage overlay 2019-09-14 11:51:09 -04:00
Jafer Khan f532b2d96c Fixed issue of missing date fields in search forms 2019-09-05 13:42:27 +00:00
jamesagnew e1b43d811f Version bump to 4.1.0-SNAPSHOT 2019-08-14 14:06:06 -04:00
jamesagnew 3f22456b0f Bump version to 4.0.0 2019-08-14 11:06:26 -04:00
Gary Teichrow 5509e5c1df Tweaked a couple POM files for 2 sub-projects to stop the IDE from complaining on the builds. After these changes, the build went flawlessly.
The first change to hapi-fhir-testpage-overlay/pom.xml was to remove a redundant dependency to javax.annotation.
The second change to hapi-fhir-test-utilities/pom.xml was to add a <relativePath> tag to the <parent> tag so that the project could build.
2019-06-25 18:28:23 -04:00
James Agnew 50a8c66bf5 Version bump to 4.0.0-SNAPSHOT 2019-05-30 17:13:03 -04:00
jamesagnew 73aa53be8f Release 3.8.0 2019-05-30 16:50:04 -04:00
James Agnew 6b37525f2d
Clean up redundant dependencies (#1306)
* Remove a bunch of unneedd deps

* Test fix

* Disable useless test
2019-05-09 12:51:13 -04:00
James Agnew 64f57b9736 Fix broken R4 serrver 2019-05-05 09:12:26 -04:00
James Agnew c251b44590 Sanitize two more characters 2019-05-02 08:18:07 -04:00
James Agnew 8f41159eb1 Fix a potential security vulneability in the testpage overlay 2019-05-02 08:13:22 -04:00
James Agnew e6a6c22783 Bump a few project dependencies 2019-03-31 13:57:02 -04: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 8beccab9ab Merge branch 'master' into test-openjdk-11 2019-01-09 10:48:57 -05:00
jamesagnew 4599a10180 Merge branch 'master' into test-openjdk-11 2018-12-23 14:19:59 -05:00
James Agnew 298cf96084 Two more thymeleaf fixes 2018-12-23 13:49:50 -05:00
James Agnew b8ae0e2f73 Adjust for thymeleaf security fix 2018-12-23 13:41:15 -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
jamesagnew 3a3b81a6a8 Preparing things for OpenJDK 11 2018-12-08 17:52:48 -05:00
Ken Stevens 6baee4dc3f
Standalone subscription (#1125) 2018-11-30 17:19:16 -05:00
James Agnew 4fb81d5ee3 Adjust for spring5 in thymeleaf 2018-11-19 17:24:54 -05:00
James Agnew e45af1506c Update spring template 2018-11-16 11:20:21 +01:00
James Agnew 84acafe3af Streamline expunge operation 2018-11-15 11:37:16 +01:00
James Agnew 75210d614b Bump to 3.7.0-SNAPSHOT 2018-11-12 22:37:52 -05:00
James Agnew 63af04a7b4 Prepare for 3.6.0 release 2018-11-12 05:40:55 -05:00
James Agnew a0333a4767 Add one extra null check just in case 2018-10-15 15:19:06 -04:00
James Agnew ba6df6d55a Handle unqualified ID in delete box for testpage overlay 2018-10-15 10:23:21 -04:00
James Agnew 706e004b9d Bump to 3.6.0-SNAPSHOT 2018-09-19 10:24:48 -04:00
James Agnew daef975734 Version bump to 3.5.0 2018-09-08 07:22:21 +08:00
jamesagnew abcf7852b1 Tests pasing locally 2018-05-31 09:10:34 -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 180336e076 Sync to master 2018-03-29 06:54:24 -04:00
jamesagnew 418e82032f Prep for 3.3.0 2018-03-29 05:48:13 -04:00
James Agnew 3b2930f8e9 Prevent a crash in testpage overlay when deleting a resource 2018-02-23 15:24:20 -05:00
jamesagnew 351a2fc2f1 Fix #837 - Use non-legacy content-type for plain json and xml accept
header
2018-02-02 06:43:19 -05:00
James Agnew 16038ece26 Version bump to 3.3.0-SNAPSHOT 2018-01-23 10:31:01 -05:00
James Agnew 6468ca474a Verion bump to 3.2.0 2018-01-13 02:14:33 -05:00
jamesagnew 5b909b4746 Version bump to 3.2.0-SNAPSHOT 2017-11-24 13:32:47 -05:00
jamesagnew 42dd34252d Version bump to 3.1.0 2017-11-23 13:27:21 -05:00