Final Mergeback of 7.4.0 (#6223)

* use SearchParamater validator in package installer (#6112)

* Ensure ' ' is treated as '+' in timezones with offsets. (#6115)

* Use lockless mode when adding index on Azure Sql server (#6100)

* Use lockless mode when adding index on Azure Sql server

Use try-catch for Online add-index on Sql Server.
This avoids having to map out the entire matrix of Sql Server product names and ONLINE index support.
Warnings in docs, and cleanups

* make consent service dont call willSeeResource on children if parent resource is AUTHORIZED or REJECT (#6127)

* fix hfj search migration task (#6143)

* fix migration task

* changelog

* changelog

* code review

* spotless

---------

Co-authored-by: jdar <justin.dar@smiledigitalhealth.com>

* Enhance migration for MSSQL to change the collation for HFJ_RESOURCE.FHIR_ID to case sensitive (#6135)

* MSSQL:  Migrate HFJ_RESOURCE.FHIR_ID to new collation:  SQL_Latin1_General_CP1_CS_AS

* Spotless.

* Enhance test.  Fix case in ResourceSearchView to defend against future migration to case insensitive collation.

* Remove TODOs.  Add comment to ResourceSearchView explaining why all columns are uppercase.  Changelog.

* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_4_0/6146-mssql-hfj-resource-fhir-id-colllation.yaml

Code reviewer suggestion

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

* Code review fixes:  Make changes conditional on the collation including _CI_, otherwise, leave it alone.

---------

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

* Common API for FHIR Data Access (#6141)

* Add initial interface for common FHIR API

* Fix formatting

* Update javadocs

* Address code review comments

* Add path value to _id search parameter and other missing search param… (#6128)

* Add path value to _id search parameter and other missing search parameters to IAnyResource.

* Adjust tests and remove now unnecessary addition of meta parameters which are now provided by IAnyResource

* Revert unneeded change

* _security param is not token but uri

* Add tests for new defined resource-level standard parameters

* Adjust test

---------

Co-authored-by: juan.marchionatto <juan.marchionatto@smilecdr.com>

* update to online (#6157)

* SEARCH_UUID should be non-null (#6165)

Avoid using constants in migrations because it creates false history.

* Handle 400 and 404 codes returned by remote terminology operation. (#6151)

* Handle 400 and 404 codes returned by remote terminology  operation.

* Some simplification

* Adjust changelog

* Add a comment to explain alternate solution which can be reused.

* fix concepts with no display element for $apply-codesystem-delta-add and $apply-codesystem-delta-remove (#6164)

* allow transaction with update conditional urls (#6155)

* Revert "Add path value to _id search parameter and other missing search param…" (#6171)

This reverts commit 2275eba1a0.

* 7 2 2 mb (#6160)

* Enhance RuleBuilder code to support multiple instances (#5852)

* Overhaul bulk export permissions.

* Overhaul bulk export permissions.

* Small tweak to rule builder.

* Cleanup validation.

* Cleanup validation.

* Code review feedback.

* Postgres terminology service hard coded column names migration (#5866)

* updating parent pids column name

* updating name of the fullTestField Search

* updating name of the fullTestField Search

* fixing typo.

* failing test.

* - Moving FullTextField annotation from getter method and adding it to the newly added VC property of the entity;

- reverting the name of the FullTextField entity to its previous name of 'myParentPids';

- reverting the name of the lucene index to search on in the terminology service.

- updating the changelog;

* making spotless happy

---------

Co-authored-by: peartree <etienne.poirier@smilecdr.com>

* 5879 back porting fix for issue 5877 (attempting to update a tokenparam with a value greater than 200 characters raises an sqlexception) to release rel_7_2 (#5881)

* initial failing test.

* solution

* adding changelog

* spotless

* moving changelog from 7_4_0 to 7_2_0 and deleting 7_4_0 folder.

---------

Co-authored-by: peartree <etienne.poirier@smilecdr.com>

* Expose BaseRequestPartitionHelperSvc validateAndNormalize methods (#5811)

* Expose BaseRequestPartitionHelperSvc validate and normalize methods

* Compilation errors

* change mock test to jpa test

* change mock test to jpa test

* validateAndNormalizePartitionIds

* validateAndNormalizePartitionNames

* validateAndNormalizePartitionIds validation + bug fix

* validateAndNormalizePartitionNames validation

* fix test

* version bump

* Ensure a non-numeric FHIR ID doesn't result in a NumberFormatException when processing survivorship rules (#5883)

* Add failing test as well as commented out potential solution.

* Fix for NumberFormatException.

* Add conditional test for survivorship rules.

* Spotless.

* Add changelog.

* Code review feedback.

* updating documentation (#5889)

* Ensure temp file ends with "." and then suffix. (#5894)

* bugfix to https://github.com/hapifhir/hapi-fhir-jpaserver-starter/issues/675 (#5892)

Co-authored-by: Jens Kristian Villadsen <jenskristianvilladsen@gmail.com>

* Enhance mdm interceptor (#5899)

* Add MDM Transaction Context for further downstream processing giving interceptors a better chance of figuring out what happened.

* Added javadoc

* Cahngelog

* spotless

---------

Co-authored-by: Jens Kristian Villadsen <jenskristianvilladsen@gmail.com>

* Fix BaseHapiFhirResourceDao $meta method to use HapiTransactionService instead of @Transaction (#5896)

* Try making ResourceTable.myTags EAGER instead of LAZY and see if it breaks anything.

* Try making ResourceTable.myTags EAGER instead of LAZY and see if it breaks anything.

* Ensure BaseHapiFhirResourceDao#metaGetOperation uses HapiTransactionService instead of @Transactional in order to resolve megascale $meta bug.

* Add changelog.

* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_2_0/5898-ld-megascale-meta-operation-fails-hapi-0389.yaml

Commit code reviewer suggestion.

Co-authored-by: Tadgh <garygrantgraham@gmail.com>

---------

Co-authored-by: Tadgh <garygrantgraham@gmail.com>

* Fix query chained on sort bug where we over-filter results (#5903)

* Failing test.

* Ensure test cleanup doesn't fail by deleting Patients before Practitioners.

* Implement fix.

* Spotless.

* Clean up unit test and add changelog.  Fix unit test.

* Fix changelog file.

* Apply suggestions from code review

Apply code review suggestions.

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

* Spotless

---------

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

* cve fix (#5906)

Co-authored-by: Long Ma <long@smilecdr.com>

* Fixing issues with postgres LOB migration. (#5895)

* Fixing issues with postgres LOB migration.

* addressing code review comments for audit/transaction logs.

* test and implementation for BinaryStorageEntity migration post code review.

* test and implementation for BinaryStorageEntity migration post code review.

* test and implementation for TermConcept
 migration post code review.

* applying spotless

* test and implementation for TermConceptProperty
 migration post code review.

* test and implementation for TermValueSetConcept
 migration post code review.

* fixing migration version

* fixing migration task

* changelog

* fixing changelog

* Minor renames

* addressing comments and suggestions from second code review.

* passing tests

* fixing more tests

---------

Co-authored-by: peartree <etienne.poirier@smilecdr.com>
Co-authored-by: Tadgh <garygrantgraham@gmail.com>

* 6051 bulk export security errors (#5915)

* Enhance RuleBuilder code to support multiple instances (#5852)

* Overhaul bulk export permissions.

* Overhaul bulk export permissions.

* Small tweak to rule builder.

* Cleanup validation.

* Cleanup validation.

* Code review feedback.

* Postgres terminology service hard coded column names migration (#5866)

* updating parent pids column name

* updating name of the fullTestField Search

* updating name of the fullTestField Search

* fixing typo.

* failing test.

* - Moving FullTextField annotation from getter method and adding it to the newly added VC property of the entity;

- reverting the name of the FullTextField entity to its previous name of 'myParentPids';

- reverting the name of the lucene index to search on in the terminology service.

- updating the changelog;

* making spotless happy

---------

Co-authored-by: peartree <etienne.poirier@smilecdr.com>

* 5879 back porting fix for issue 5877 (attempting to update a tokenparam with a value greater than 200 characters raises an sqlexception) to release rel_7_2 (#5881)

* initial failing test.

* solution

* adding changelog

* spotless

* moving changelog from 7_4_0 to 7_2_0 and deleting 7_4_0 folder.

---------

Co-authored-by: peartree <etienne.poirier@smilecdr.com>

* Expose BaseRequestPartitionHelperSvc validateAndNormalize methods (#5811)

* Expose BaseRequestPartitionHelperSvc validate and normalize methods

* Compilation errors

* change mock test to jpa test

* change mock test to jpa test

* validateAndNormalizePartitionIds

* validateAndNormalizePartitionNames

* validateAndNormalizePartitionIds validation + bug fix

* validateAndNormalizePartitionNames validation

* fix test

* version bump

* Ensure a non-numeric FHIR ID doesn't result in a NumberFormatException when processing survivorship rules (#5883)

* Add failing test as well as commented out potential solution.

* Fix for NumberFormatException.

* Add conditional test for survivorship rules.

* Spotless.

* Add changelog.

* Code review feedback.

* updating documentation (#5889)

* Ensure temp file ends with "." and then suffix. (#5894)

* bugfix to https://github.com/hapifhir/hapi-fhir-jpaserver-starter/issues/675 (#5892)

Co-authored-by: Jens Kristian Villadsen <jenskristianvilladsen@gmail.com>

* Enhance mdm interceptor (#5899)

* Add MDM Transaction Context for further downstream processing giving interceptors a better chance of figuring out what happened.

* Added javadoc

* Cahngelog

* spotless

---------

Co-authored-by: Jens Kristian Villadsen <jenskristianvilladsen@gmail.com>

* Fix BaseHapiFhirResourceDao $meta method to use HapiTransactionService instead of @Transaction (#5896)

* Try making ResourceTable.myTags EAGER instead of LAZY and see if it breaks anything.

* Try making ResourceTable.myTags EAGER instead of LAZY and see if it breaks anything.

* Ensure BaseHapiFhirResourceDao#metaGetOperation uses HapiTransactionService instead of @Transactional in order to resolve megascale $meta bug.

* Add changelog.

* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_2_0/5898-ld-megascale-meta-operation-fails-hapi-0389.yaml

Commit code reviewer suggestion.

Co-authored-by: Tadgh <garygrantgraham@gmail.com>

---------

Co-authored-by: Tadgh <garygrantgraham@gmail.com>

* Fix query chained on sort bug where we over-filter results (#5903)

* Failing test.

* Ensure test cleanup doesn't fail by deleting Patients before Practitioners.

* Implement fix.

* Spotless.

* Clean up unit test and add changelog.  Fix unit test.

* Fix changelog file.

* Apply suggestions from code review

Apply code review suggestions.

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

* Spotless

---------

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

* cve fix (#5906)

Co-authored-by: Long Ma <long@smilecdr.com>

* Fixing issues with postgres LOB migration. (#5895)

* Fixing issues with postgres LOB migration.

* addressing code review comments for audit/transaction logs.

* test and implementation for BinaryStorageEntity migration post code review.

* test and implementation for BinaryStorageEntity migration post code review.

* test and implementation for TermConcept
 migration post code review.

* applying spotless

* test and implementation for TermConceptProperty
 migration post code review.

* test and implementation for TermValueSetConcept
 migration post code review.

* fixing migration version

* fixing migration task

* changelog

* fixing changelog

* Minor renames

* addressing comments and suggestions from second code review.

* passing tests

* fixing more tests

---------

Co-authored-by: peartree <etienne.poirier@smilecdr.com>
Co-authored-by: Tadgh <garygrantgraham@gmail.com>

* refactor bulk export rule, add concept of appliestoallpatients, fix tests

* spotless

* Cahgnelog, tests

* more tests

* refactor style checks

---------

Co-authored-by: Luke deGruchy <luke.degruchy@smilecdr.com>
Co-authored-by: Etienne Poirier <33007955+epeartree@users.noreply.github.com>
Co-authored-by: peartree <etienne.poirier@smilecdr.com>
Co-authored-by: Nathan Doef <n.doef@protonmail.com>
Co-authored-by: TipzCM <leif.stawnyczy@gmail.com>
Co-authored-by: dotasek <david.otasek@smilecdr.com>
Co-authored-by: Jens Kristian Villadsen <jenskristianvilladsen@gmail.com>
Co-authored-by: Michael Buckley <michaelabuckley@gmail.com>
Co-authored-by: longma1 <32119004+longma1@users.noreply.github.com>
Co-authored-by: Long Ma <long@smilecdr.com>

* Convert a few nulls to aggressive denies

* Change chain sort syntax for MS SQL (#5917)

* Change sort type on chains

* Change sort type on chains

* Test for MS SQL

* Comments

* Version bump

* Updating version to: 7.2.1 post release.

* Fix queries with chained sort with Lucene by checking supported SortSpecs (#5958)

* First commit with very rough solution.

* Solidify solutions for both requirements.  Add new tests.  Enhance others.

* Spotless.

* Add new chained sort spec algorithm.  Add new Msg.codes.  Finalize tests.  Update docs.  Add changelog.

* pom remove the snapshot

* Updating version to: 7.2.2 post release.

* cherry-picked pr 6051

* changelog fix

* cherry-picked 6027

* docs and changelog

* merge fix for issue with infinite cache refresh loop

* Use lockless mode when adding index on Azure Sql server (#6100) (#6129)

* Use lockless mode when adding index on Azure Sql server

Use try-catch for Online add-index on Sql Server.
This avoids having to map out the entire matrix of Sql Server product names and ONLINE index support.
Warnings in docs, and cleanups

* added fix for 6133

* failing Test

* Add fix

* spotless

* Remove useless file

* Fix claeaner

* cleanup

* Remove dead class

* Changelog

* test description

* Add test. Fix broken logic.

* fix quantity search parameter test to pass

* reverted test testDirectPathWholeResourceNotIndexedWorks in FhirResourceDaoR4SearchWithElasticSearchIT

* spotless

* cleanup mistake during merge

* added missing imports

* fix more mergeback oopsies

* bump to 7.3.13-snapshot

---------

Co-authored-by: Luke deGruchy <luke.degruchy@smilecdr.com>
Co-authored-by: Etienne Poirier <33007955+epeartree@users.noreply.github.com>
Co-authored-by: peartree <etienne.poirier@smilecdr.com>
Co-authored-by: Nathan Doef <n.doef@protonmail.com>
Co-authored-by: TipzCM <leif.stawnyczy@gmail.com>
Co-authored-by: dotasek <david.otasek@smilecdr.com>
Co-authored-by: Jens Kristian Villadsen <jenskristianvilladsen@gmail.com>
Co-authored-by: Tadgh <garygrantgraham@gmail.com>
Co-authored-by: Michael Buckley <michaelabuckley@gmail.com>
Co-authored-by: Long Ma <long@smilecdr.com>
Co-authored-by: markiantorno <markiantorno@gmail.com>

* Patient validate operation with remote terminology service enabled returns 400 bad request (#6124)

* Patient $validate operation with Remote Terminology Service enabled returns 400 Bad Request - failing test

* Patient $validate operation with Remote Terminology Service enabled returns 400 Bad Request - implementation

* - Changing method accessibility from default to public to allow method overwriting. (#6172)

Co-authored-by: peartree <etienne.poirier@smilecdr.com>

* applying Taha Attari's fix on branch merging to rel_7_4 (#6177)

Co-authored-by: peartree <etienne.poirier@smilecdr.com>

* Automated Migration Testing (HAPI-FHIR) V7_4_0 (#6170)

* Automated Migration Testing (HAPI-FHIR) - updated test migration scripts for 7_4_0

* Automated Migration Testing (HAPI-FHIR) - updated test migration scripts for 7_2_0

* To provide the target resource partitionId and partitionDate in the resourceLinlk (#6149)

* initial POC.

* addressing comments from first code review

* Adding tests

* adding changelog and spotless

* fixing tests

* spotless

---------

Co-authored-by: peartree <etienne.poirier@smilecdr.com>

* applying patch (#6190)

Co-authored-by: peartree <etienne.poirier@smilecdr.com>

* cve for 08 release (#6197)

Co-authored-by: Long Ma <long@smilecdr.com>

* Search param path missing for _id param (#6175)

* Add path tp _id search param and definitions for _lastUpdated _tag, _profile and _security

* Add tests and changelog

* Increase snapshot version

* Irrelevant change to force new build

---------

Co-authored-by: juan.marchionatto <juan.marchionatto@smilecdr.com>

* Reverting to core fhir-test-cases 1.1.14; (#6194)

re-enabling FhirPatchCoreTest

Co-authored-by: peartree <etienne.poirier@smilecdr.com>

* Fix $reindex job with custom partition interceptor based on resource type. Update reindex job to always run with urls. (#6185)

* Refactor logic to bring together partition related logic in batch2 jobs using IJobPartitionProvider. Update logic such that reindex job without urls will attempt to create urls for all supported resource types.

* Small changes and fix of pipeline error.

* Small change to enable mdm-submit to use PartitionedUrl in the job parameters

* Revert logback change. Fix dependency version generating errors in the pipeline.

* Spotless fix. Add test dependency back without version.

* Upgrade test dependency to another version

* Add javadoc for PartitionedUrl. Other small fixes and refactoring in tests.

* Spotless fix.

* Change to JobParameters to fix some of the tests.

* Small changes for code review in test

* Address code review comments.

* Revert change from bad merge.

* Address remaining code review comments

* 6188 subscription not marked as a cross partition subscription matches operation on resources in other partitions (#6191)

* initial failing test

* WIP

* fixing/adding tests

* added changelog

* spotless

* fixing tests

* Cleaning up tests

* addressing commetns from first code review.

* no-op to get pipelines going

---------

Co-authored-by: peartree <etienne.poirier@smilecdr.com>

* Resolve 6173 - Log unhandled Exceptions in RestfulServer (#6176) (#6205)

* 6173 - Log unhandled Exceptions in RestfulServer.

* Use placeholder for failed streams.

* Starting test for server handling.

* Got test working.

* Fixed use of synchronized keyword.

* Applied mvn spotless.

---------

Co-authored-by: Kevin Dougan <72025369+KevinDougan@users.noreply.github.com>
Co-authored-by: Michael Buckley <michaelabuckley@gmail.com>

* Partition aware transactions (#6167)

* Partition aware transactions

* Address review comments

* Test fixes

* Remove dead issue field

* Test fixes

---------

Co-authored-by: Tadgh <garygrantgraham@gmail.com>

* Add license header

* rel_7_4 mergeback

* Attempt fix for npe (#6213)

* wip

* wip

* wip

* remove whitespace

* Add test

* changelog

* Version bump

---------

Co-authored-by: Emre Dincturk <74370953+mrdnctrk@users.noreply.github.com>
Co-authored-by: Luke deGruchy <luke.degruchy@smilecdr.com>
Co-authored-by: Michael Buckley <michaelabuckley@gmail.com>
Co-authored-by: jdar8 <69840459+jdar8@users.noreply.github.com>
Co-authored-by: jdar <justin.dar@smiledigitalhealth.com>
Co-authored-by: Luke deGruchy <luke.degruchy@smiledigitalhealth.com>
Co-authored-by: JP <jonathan.i.percival@gmail.com>
Co-authored-by: jmarchionatto <60409882+jmarchionatto@users.noreply.github.com>
Co-authored-by: juan.marchionatto <juan.marchionatto@smilecdr.com>
Co-authored-by: TipzCM <leif.stawnyczy@gmail.com>
Co-authored-by: Martha Mitran <marthamitran@gmail.com>
Co-authored-by: Etienne Poirier <33007955+epeartree@users.noreply.github.com>
Co-authored-by: longma1 <32119004+longma1@users.noreply.github.com>
Co-authored-by: peartree <etienne.poirier@smilecdr.com>
Co-authored-by: Nathan Doef <n.doef@protonmail.com>
Co-authored-by: dotasek <david.otasek@smilecdr.com>
Co-authored-by: Jens Kristian Villadsen <jenskristianvilladsen@gmail.com>
Co-authored-by: Long Ma <long@smilecdr.com>
Co-authored-by: markiantorno <markiantorno@gmail.com>
Co-authored-by: volodymyr-korzh <132366313+volodymyr-korzh@users.noreply.github.com>
Co-authored-by: Martha Mitran <martha.mitran@smiledigitalhealth.com>
Co-authored-by: Kevin Dougan <72025369+KevinDougan@users.noreply.github.com>
Co-authored-by: James Agnew <jamesagnew@gmail.com>
Co-authored-by: volodymyr <volodymyr.korzh@smilecdr.com>
This commit is contained in:
Tadgh 2024-08-20 09:03:09 -07:00 committed by GitHub
parent 3e2d84d0f7
commit 947291e7f5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 49 additions and 6 deletions

View File

@ -56,7 +56,7 @@ public interface IAnyResource extends IBaseResource {
@SearchParamDefinition(
name = SP_RES_LAST_UPDATED,
path = "Resource.meta.lastUpdated",
description = "The last updated date of the resource",
description = "Only return resources which were last updated as specified by the given range",
type = "date")
/**

View File

@ -0,0 +1,4 @@
---
type: fix
issue: 6208
title: "A regression was temporarily introduced which caused searches by `_lastUpdated` to fail with a NullPointerException when using Lucene as the backing search engine. This has been corrected"

View File

@ -29,6 +29,7 @@ import ca.uhn.fhir.model.primitive.InstantDt;
import ca.uhn.fhir.model.primitive.UriDt;
import ca.uhn.fhir.parser.IParser;
import ca.uhn.fhir.parser.StrictErrorHandler;
import ca.uhn.fhir.rest.api.CacheControlDirective;
import ca.uhn.fhir.rest.api.Constants;
import ca.uhn.fhir.rest.api.MethodOutcome;
import ca.uhn.fhir.rest.api.PreferReturnEnum;
@ -1112,6 +1113,34 @@ public class ResourceProviderR4Test extends BaseResourceProviderR4Test {
}
@Test
public void testSearchByUrl() {
// setup
DateType dt = new DateType(new Date());
String nowStr = dt.getValueAsString();
boolean storeResourceInHSearch = myStorageSettings.isStoreResourceInHSearchIndex();
boolean advancedHSearch = myStorageSettings.isAdvancedHSearchIndexing();
try {
// use full text search
myStorageSettings.setStoreResourceInHSearchIndex(true);
myStorageSettings.setAdvancedHSearchIndexing(true);
// test
Bundle b = myClient.search()
.byUrl("Patient?_lastUpdated=" + nowStr)
.returnBundle(Bundle.class)
.cacheControl(CacheControlDirective.noCache())
.execute();
assertNotNull(b);
} finally {
// reset back to previous
myStorageSettings.setAdvancedHSearchIndexing(advancedHSearch);
myStorageSettings.setStoreResourceInHSearchIndex(storeResourceInHSearch);
}
}
@Test
public void testCreateConditionalWithPreferRepresentation() {
Patient p = new Patient();

View File

@ -121,9 +121,12 @@ public class ${className}ResourceProvider extends
@RawParam
Map<String, List<String>> theAdditionalRawParams,
##DSTU2 is not an IAnyResource, yet supports LastUpdated, so we keep the magic SP in this case.
#if ( $version == 'dstu2' )
@Description(shortDefinition="Only return resources which were last updated as specified by the given range")
@OptionalParam(name="_lastUpdated")
DateRangeParam theLastUpdated,
DateRangeParam the_lastUpdated,
#end
@IncludeParam
Set<Include> theIncludes,
@ -162,11 +165,18 @@ public class ${className}ResourceProvider extends
paramMap.add("_has", theHas);
#foreach ( $param in $searchParams )
paramMap.add("${param.name}", the${param.nameCapitalized});
#if( ${param.name} == "_lastUpdated")
## Skip Last Updated since its handled by param defined below.
#else
paramMap.add("${param.name}", the${param.nameCapitalized});
#end
#end
#if ( $version != 'dstu' )
paramMap.setRevIncludes(theRevIncludes);
paramMap.setLastUpdated(theLastUpdated);
paramMap.setRevIncludes(theRevIncludes);
## Note that since we have added an SearchParamDefinition on IAnyResource for this, we had to remove
## the magic _lastUpdated that was previously hardcoded as an OperationParam. However, we still need to populate
## This special variable in the SP map.
paramMap.setLastUpdated(the_lastUpdated);
#end
paramMap.setIncludes(theIncludes);
paramMap.setSort(theSort);