Fix history paging (#2741)
* Fix history paging * Add changelog * Add license header
This commit is contained in:
parent
097a2f70b3
commit
8b205b23d0
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -3,14 +3,14 @@
|
|||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-bom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>HAPI FHIR BOM</name>
|
||||
|
||||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-cli</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../../hapi-deployable-pom</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
type: fix
|
||||
issue: 2741
|
||||
title: "A regression caused the JPA Server History operation to not return paging links in responses. This
|
||||
has been corrected."
|
|
@ -11,7 +11,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -120,9 +120,9 @@ public interface IFhirResourceDao<T extends IBaseResource> extends IDao {
|
|||
|
||||
Class<T> getResourceType();
|
||||
|
||||
IBundleProvider history(Date theSince, Date theUntil, RequestDetails theRequestDetails);
|
||||
IBundleProvider history(Date theSince, Date theUntil, Integer theOffset, RequestDetails theRequestDetails);
|
||||
|
||||
IBundleProvider history(IIdType theId, Date theSince, Date theUntil, RequestDetails theRequestDetails);
|
||||
IBundleProvider history(IIdType theId, Date theSince, Date theUntil, Integer theOffset, RequestDetails theRequestDetails);
|
||||
|
||||
/**
|
||||
* Not supported in DSTU1!
|
||||
|
|
|
@ -22,6 +22,7 @@ package ca.uhn.fhir.jpa.api.dao;
|
|||
|
||||
import ca.uhn.fhir.jpa.api.model.ExpungeOptions;
|
||||
import ca.uhn.fhir.jpa.api.model.ExpungeOutcome;
|
||||
import ca.uhn.fhir.rest.annotation.Offset;
|
||||
import ca.uhn.fhir.rest.api.server.IBundleProvider;
|
||||
import ca.uhn.fhir.rest.api.server.RequestDetails;
|
||||
import org.hl7.fhir.instance.model.api.IBaseBundle;
|
||||
|
@ -52,7 +53,7 @@ public interface IFhirSystemDao<T, MT> extends IDao {
|
|||
Map<String, Long> getResourceCountsFromCache();
|
||||
|
||||
|
||||
IBundleProvider history(Date theDate, Date theUntil, RequestDetails theRequestDetails);
|
||||
IBundleProvider history(Date theDate, Date theUntil, Integer theOffset, RequestDetails theRequestDetails);
|
||||
|
||||
/**
|
||||
* Not supported for DSTU1
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -467,11 +467,12 @@ public abstract class BaseHapiFhirDao<T extends IBaseResource> extends BaseStora
|
|||
return retVal;
|
||||
}
|
||||
|
||||
protected IBundleProvider history(RequestDetails theRequest, String theResourceType, Long theResourcePid, Date theRangeStartInclusive, Date theRangeEndInclusive) {
|
||||
protected IBundleProvider history(RequestDetails theRequest, String theResourceType, Long theResourcePid, Date theRangeStartInclusive, Date theRangeEndInclusive, Integer theOffset) {
|
||||
|
||||
String resourceName = defaultIfBlank(theResourceType, null);
|
||||
|
||||
Search search = new Search();
|
||||
search.setOffset(theOffset);
|
||||
search.setDeleted(false);
|
||||
search.setCreated(new Date());
|
||||
search.setLastUpdated(theRangeStartInclusive, theRangeEndInclusive);
|
||||
|
|
|
@ -831,20 +831,20 @@ public abstract class BaseHapiFhirResourceDao<T extends IBaseResource> extends B
|
|||
|
||||
@Override
|
||||
@Transactional
|
||||
public IBundleProvider history(Date theSince, Date theUntil, RequestDetails theRequestDetails) {
|
||||
public IBundleProvider history(Date theSince, Date theUntil, Integer theOffset, RequestDetails theRequestDetails) {
|
||||
// Notify interceptors
|
||||
ActionRequestDetails requestDetails = new ActionRequestDetails(theRequestDetails);
|
||||
notifyInterceptors(RestOperationTypeEnum.HISTORY_TYPE, requestDetails);
|
||||
|
||||
StopWatch w = new StopWatch();
|
||||
IBundleProvider retVal = super.history(theRequestDetails, myResourceName, null, theSince, theUntil);
|
||||
IBundleProvider retVal = super.history(theRequestDetails, myResourceName, null, theSince, theUntil, theOffset);
|
||||
ourLog.debug("Processed history on {} in {}ms", myResourceName, w.getMillisAndRestart());
|
||||
return retVal;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public IBundleProvider history(final IIdType theId, final Date theSince, Date theUntil, RequestDetails theRequest) {
|
||||
public IBundleProvider history(final IIdType theId, final Date theSince, Date theUntil, Integer theOffset, RequestDetails theRequest) {
|
||||
if (theRequest != null) {
|
||||
// Notify interceptors
|
||||
ActionRequestDetails requestDetails = new ActionRequestDetails(theRequest, getResourceName(), theId);
|
||||
|
@ -856,7 +856,7 @@ public abstract class BaseHapiFhirResourceDao<T extends IBaseResource> extends B
|
|||
IIdType id = theId.withResourceType(myResourceName).toUnqualifiedVersionless();
|
||||
BaseHasResource entity = readEntity(id, theRequest);
|
||||
|
||||
IBundleProvider retVal = super.history(theRequest, myResourceName, entity.getId(), theSince, theUntil);
|
||||
IBundleProvider retVal = super.history(theRequest, myResourceName, entity.getId(), theSince, theUntil, theOffset);
|
||||
|
||||
ourLog.debug("Processed history on {} in {}ms", id, w.getMillisAndRestart());
|
||||
return retVal;
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package ca.uhn.fhir.jpa.dao;
|
||||
|
||||
import ca.uhn.fhir.jpa.api.config.DaoConfig;
|
||||
import ca.uhn.fhir.jpa.api.dao.IFhirSystemDao;
|
||||
import ca.uhn.fhir.jpa.api.model.ExpungeOptions;
|
||||
import ca.uhn.fhir.jpa.api.model.ExpungeOutcome;
|
||||
|
@ -93,7 +92,7 @@ public abstract class BaseHapiFhirSystemDao<T extends IBaseBundle, MT> extends B
|
|||
}
|
||||
|
||||
@Override
|
||||
public IBundleProvider history(Date theSince, Date theUntil, RequestDetails theRequestDetails) {
|
||||
public IBundleProvider history(Date theSince, Date theUntil, Integer theOffset, RequestDetails theRequestDetails) {
|
||||
if (theRequestDetails != null) {
|
||||
// Notify interceptors
|
||||
ActionRequestDetails requestDetails = new ActionRequestDetails(theRequestDetails);
|
||||
|
@ -101,7 +100,7 @@ public abstract class BaseHapiFhirSystemDao<T extends IBaseBundle, MT> extends B
|
|||
}
|
||||
|
||||
StopWatch w = new StopWatch();
|
||||
IBundleProvider retVal = super.history(theRequestDetails, null, null, theSince, theUntil);
|
||||
IBundleProvider retVal = super.history(theRequestDetails, null, null, theSince, theUntil, theOffset);
|
||||
ourLog.info("Processed global history in {}ms", w.getMillisAndRestart());
|
||||
return retVal;
|
||||
}
|
||||
|
|
|
@ -95,7 +95,7 @@ public class HistoryBuilder {
|
|||
}
|
||||
|
||||
@SuppressWarnings("OptionalIsPresent")
|
||||
public List<ResourceHistoryTable> fetchEntities(RequestPartitionId thePartitionId, int theFromIndex, int theToIndex) {
|
||||
public List<ResourceHistoryTable> fetchEntities(RequestPartitionId thePartitionId, Integer theOffset, int theFromIndex, int theToIndex) {
|
||||
CriteriaBuilder cb = myEntityManager.getCriteriaBuilder();
|
||||
CriteriaQuery<ResourceHistoryTable> criteriaQuery = cb.createQuery(ResourceHistoryTable.class);
|
||||
Root<ResourceHistoryTable> from = criteriaQuery.from(ResourceHistoryTable.class);
|
||||
|
@ -108,7 +108,12 @@ public class HistoryBuilder {
|
|||
|
||||
TypedQuery<ResourceHistoryTable> query = myEntityManager.createQuery(criteriaQuery);
|
||||
|
||||
query.setFirstResult(theFromIndex);
|
||||
int startIndex = theFromIndex;
|
||||
if (theOffset != null) {
|
||||
startIndex += theOffset;
|
||||
}
|
||||
query.setFirstResult(startIndex);
|
||||
|
||||
query.setMaxResults(theToIndex - theFromIndex);
|
||||
|
||||
List<ResourceHistoryTable> tables = query.getResultList();
|
||||
|
|
|
@ -30,6 +30,7 @@ import javax.persistence.SequenceGenerator;
|
|||
import javax.persistence.Table;
|
||||
import javax.persistence.Temporal;
|
||||
import javax.persistence.TemporalType;
|
||||
import javax.persistence.Transient;
|
||||
import javax.persistence.UniqueConstraint;
|
||||
import javax.persistence.Version;
|
||||
import java.io.Serializable;
|
||||
|
@ -143,6 +144,13 @@ public class Search implements ICachedSearchDetails, Serializable {
|
|||
@Column(name = "SEARCH_PARAM_MAP", nullable = true)
|
||||
private byte[] mySearchParameterMap;
|
||||
|
||||
/**
|
||||
* This isn't currently persisted in the DB as it's only used for history. We could
|
||||
* change this if needed in the future.
|
||||
*/
|
||||
@Transient
|
||||
private Integer myOffset;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
|
@ -388,6 +396,14 @@ public class Search implements ICachedSearchDetails, Serializable {
|
|||
mySearchQueryStringHash = null;
|
||||
}
|
||||
|
||||
public void setOffset(Integer theOffset) {
|
||||
myOffset = theOffset;
|
||||
}
|
||||
|
||||
public Integer getOffset() {
|
||||
return myOffset;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public static String createSearchQueryStringForStorage(@Nonnull String theSearchQueryString, @Nonnull RequestPartitionId theRequestPartitionId) {
|
||||
String searchQueryString = theSearchQueryString;
|
||||
|
|
|
@ -32,6 +32,7 @@ import ca.uhn.fhir.rest.annotation.Create;
|
|||
import ca.uhn.fhir.rest.annotation.Delete;
|
||||
import ca.uhn.fhir.rest.annotation.History;
|
||||
import ca.uhn.fhir.rest.annotation.IdParam;
|
||||
import ca.uhn.fhir.rest.annotation.Offset;
|
||||
import ca.uhn.fhir.rest.annotation.Operation;
|
||||
import ca.uhn.fhir.rest.annotation.OperationParam;
|
||||
import ca.uhn.fhir.rest.annotation.Patch;
|
||||
|
@ -107,6 +108,7 @@ public abstract class BaseJpaResourceProvider<T extends IBaseResource> extends B
|
|||
@History
|
||||
public IBundleProvider getHistoryForResourceInstance(
|
||||
HttpServletRequest theRequest,
|
||||
@Offset Integer theOffset,
|
||||
@IdParam IIdType theId,
|
||||
@Since Date theSince,
|
||||
@At DateRangeParam theAt,
|
||||
|
@ -115,7 +117,7 @@ public abstract class BaseJpaResourceProvider<T extends IBaseResource> extends B
|
|||
startRequest(theRequest);
|
||||
try {
|
||||
DateRangeParam sinceOrAt = processSinceOrAt(theSince, theAt);
|
||||
return myDao.history(theId, sinceOrAt.getLowerBoundAsInstant(), sinceOrAt.getUpperBoundAsInstant(), theRequestDetails);
|
||||
return myDao.history(theId, sinceOrAt.getLowerBoundAsInstant(), sinceOrAt.getUpperBoundAsInstant(), theOffset, theRequestDetails);
|
||||
} finally {
|
||||
endRequest(theRequest);
|
||||
}
|
||||
|
@ -124,13 +126,14 @@ public abstract class BaseJpaResourceProvider<T extends IBaseResource> extends B
|
|||
@History
|
||||
public IBundleProvider getHistoryForResourceType(
|
||||
HttpServletRequest theRequest,
|
||||
@Offset Integer theOffset,
|
||||
@Since Date theSince,
|
||||
@At DateRangeParam theAt,
|
||||
RequestDetails theRequestDetails) {
|
||||
startRequest(theRequest);
|
||||
try {
|
||||
DateRangeParam sinceOrAt = processSinceOrAt(theSince, theAt);
|
||||
return myDao.history(sinceOrAt.getLowerBoundAsInstant(), sinceOrAt.getUpperBoundAsInstant(), theRequestDetails);
|
||||
return myDao.history(sinceOrAt.getLowerBoundAsInstant(), sinceOrAt.getUpperBoundAsInstant(), theOffset, theRequestDetails);
|
||||
} finally {
|
||||
endRequest(theRequest);
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@ import ca.uhn.fhir.jpa.model.util.JpaConstants;
|
|||
import ca.uhn.fhir.jpa.search.reindex.IResourceReindexingSvc;
|
||||
import ca.uhn.fhir.rest.annotation.At;
|
||||
import ca.uhn.fhir.rest.annotation.History;
|
||||
import ca.uhn.fhir.rest.annotation.Offset;
|
||||
import ca.uhn.fhir.rest.annotation.Operation;
|
||||
import ca.uhn.fhir.rest.annotation.OperationParam;
|
||||
import ca.uhn.fhir.rest.annotation.Since;
|
||||
|
@ -90,11 +91,16 @@ public class BaseJpaSystemProvider<T, MT> extends BaseJpaProvider implements IJp
|
|||
}
|
||||
|
||||
@History
|
||||
public IBundleProvider historyServer(HttpServletRequest theRequest, @Since Date theDate, @At DateRangeParam theAt, RequestDetails theRequestDetails) {
|
||||
public IBundleProvider historyServer(
|
||||
HttpServletRequest theRequest,
|
||||
@Offset Integer theOffset,
|
||||
@Since Date theDate,
|
||||
@At DateRangeParam theAt,
|
||||
RequestDetails theRequestDetails) {
|
||||
startRequest(theRequest);
|
||||
try {
|
||||
DateRangeParam range = super.processSinceOrAt(theDate, theAt);
|
||||
return myDao.history(range.getLowerBoundAsInstant(), range.getUpperBoundAsInstant(), theRequestDetails);
|
||||
return myDao.history(range.getLowerBoundAsInstant(), range.getUpperBoundAsInstant(), theOffset, theRequestDetails);
|
||||
} finally {
|
||||
endRequest(theRequest);
|
||||
}
|
||||
|
|
|
@ -147,12 +147,12 @@ public class PersistedJpaBundleProvider implements IBundleProvider {
|
|||
/**
|
||||
* Perform a history search
|
||||
*/
|
||||
private List<IBaseResource> doHistoryInTransaction(int theFromIndex, int theToIndex) {
|
||||
private List<IBaseResource> doHistoryInTransaction(Integer theOffset, int theFromIndex, int theToIndex) {
|
||||
|
||||
HistoryBuilder historyBuilder = myHistoryBuilderFactory.newHistoryBuilder(mySearchEntity.getResourceType(), mySearchEntity.getResourceId(), mySearchEntity.getLastUpdatedLow(), mySearchEntity.getLastUpdatedHigh());
|
||||
|
||||
RequestPartitionId partitionId = getRequestPartitionId();
|
||||
List<ResourceHistoryTable> results = historyBuilder.fetchEntities(partitionId, theFromIndex, theToIndex);
|
||||
List<ResourceHistoryTable> results = historyBuilder.fetchEntities(partitionId, theOffset, theFromIndex, theToIndex);
|
||||
|
||||
List<IBaseResource> retVal = new ArrayList<>();
|
||||
for (ResourceHistoryTable next : results) {
|
||||
|
@ -321,7 +321,7 @@ public class PersistedJpaBundleProvider implements IBundleProvider {
|
|||
|
||||
switch (mySearchEntity.getSearchType()) {
|
||||
case HISTORY:
|
||||
return template.execute(theStatus -> doHistoryInTransaction(theFromIndex, theToIndex));
|
||||
return template.execute(theStatus -> doHistoryInTransaction(mySearchEntity.getOffset(), theFromIndex, theToIndex));
|
||||
case SEARCH:
|
||||
case EVERYTHING:
|
||||
default:
|
||||
|
|
|
@ -627,8 +627,8 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
ourLog.info("***** About to perform search");
|
||||
found = toUnqualifiedVersionlessIds(myOrganizationDao.search(map));
|
||||
|
||||
runInTransaction(()->{
|
||||
ourLog.info("Resources:\n * {}", myResourceTableDao.findAll().stream().map(t->t.toString()).collect(Collectors.joining("\n * ")));
|
||||
runInTransaction(() -> {
|
||||
ourLog.info("Resources:\n * {}", myResourceTableDao.findAll().stream().map(t -> t.toString()).collect(Collectors.joining("\n * ")));
|
||||
});
|
||||
|
||||
assertThat(found.toString(), found, contains(orgId, patId));
|
||||
|
@ -655,7 +655,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
public void testDeleteResource() {
|
||||
myDaoConfig.setHistoryCountMode(HistoryCountModeEnum.COUNT_ACCURATE);
|
||||
|
||||
int initialHistory = myPatientDao.history(null, null, mySrd).size();
|
||||
int initialHistory = myPatientDao.history(null, null, null, mySrd).size();
|
||||
|
||||
IIdType id1;
|
||||
IIdType id2;
|
||||
|
@ -697,7 +697,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
// good
|
||||
}
|
||||
|
||||
IBundleProvider history = myPatientDao.history(null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(null, null, null, mySrd);
|
||||
assertEquals(4 + initialHistory, history.sizeOrThrowNpe());
|
||||
List<IBaseResource> resources = history.getResources(0, 4);
|
||||
assertNotNull(ResourceMetadataKeyEnum.DELETED_AT.get((IResource) resources.get(0)));
|
||||
|
@ -800,7 +800,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
// ok
|
||||
}
|
||||
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, null, mySrd);
|
||||
assertEquals(2, history.size().intValue());
|
||||
|
||||
assertNotNull(ResourceMetadataKeyEnum.DELETED_AT.get((IResource) history.getResources(0, 1).get(0)));
|
||||
|
@ -1030,7 +1030,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
ourLog.info("Forced IDs:\n{}", myForcedIdDao.findAll().stream().map(t -> t.toString()).collect(Collectors.joining("\n")));
|
||||
});
|
||||
|
||||
List<Patient> patients = toList(myPatientDao.history(idv1.toVersionless(), null, null, mySrd));
|
||||
List<Patient> patients = toList(myPatientDao.history(idv1.toVersionless(), null, null, null, mySrd));
|
||||
assertTrue(patients.size() == 2);
|
||||
// Newest first
|
||||
assertEquals("Patient/testHistoryByForcedId/_history/2", patients.get(0).getId().toUnqualified().getValue());
|
||||
|
@ -1070,7 +1070,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
}
|
||||
|
||||
// By instance
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, null, mySrd);
|
||||
assertEquals(fullSize + 1, history.size().intValue());
|
||||
for (int i = 0; i < fullSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1079,7 +1079,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
}
|
||||
|
||||
// By type
|
||||
history = myPatientDao.history(null, null, mySrd);
|
||||
history = myPatientDao.history(null, null, null, mySrd);
|
||||
assertEquals(fullSize + 1, history.size().intValue());
|
||||
for (int i = 0; i < fullSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1088,7 +1088,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
}
|
||||
|
||||
// By server
|
||||
history = mySystemDao.history(null, null, mySrd);
|
||||
history = mySystemDao.history(null, null, null, mySrd);
|
||||
assertEquals(fullSize + 1, history.size().intValue());
|
||||
for (int i = 0; i < fullSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1101,7 +1101,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
*/
|
||||
|
||||
// By instance
|
||||
history = myPatientDao.history(id, middleDate, null, mySrd);
|
||||
history = myPatientDao.history(id, middleDate, null, null, mySrd);
|
||||
assertEquals(halfSize, history.size().intValue());
|
||||
for (int i = 0; i < halfSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1110,7 +1110,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
}
|
||||
|
||||
// By type
|
||||
history = myPatientDao.history(middleDate, null, mySrd);
|
||||
history = myPatientDao.history(middleDate, null, null, mySrd);
|
||||
assertEquals(halfSize, history.size().intValue());
|
||||
for (int i = 0; i < halfSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1119,7 +1119,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
}
|
||||
|
||||
// By server
|
||||
history = mySystemDao.history(middleDate, null, mySrd);
|
||||
history = mySystemDao.history(middleDate, null, null, mySrd);
|
||||
assertEquals(halfSize, history.size().intValue());
|
||||
for (int i = 0; i < halfSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1137,7 +1137,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
halfSize++;
|
||||
|
||||
// By instance
|
||||
history = myPatientDao.history(id, null, null, mySrd);
|
||||
history = myPatientDao.history(id, null, null, null, mySrd);
|
||||
for (int i = 0; i < fullSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
String actual = history.getResources(i, i + 1).get(0).getIdElement().getValue();
|
||||
|
@ -1146,7 +1146,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
assertEquals(fullSize + 1, history.size().intValue(), log(history));
|
||||
|
||||
// By type
|
||||
history = myPatientDao.history(null, null, mySrd);
|
||||
history = myPatientDao.history(null, null, null, mySrd);
|
||||
for (int i = 0; i < fullSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
String actual = history.getResources(i, i + 1).get(0).getIdElement().getValue();
|
||||
|
@ -1157,7 +1157,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
assertEquals(fullSize + 1, history.size().intValue(), log(history)); // fails?
|
||||
|
||||
// By server
|
||||
history = mySystemDao.history(null, null, mySrd);
|
||||
history = mySystemDao.history(null, null, null, mySrd);
|
||||
for (int i = 0; i < fullSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
String actual = history.getResources(i, i + 1).get(0).getIdElement().getValue();
|
||||
|
@ -1170,7 +1170,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
*/
|
||||
|
||||
// By instance
|
||||
history = myPatientDao.history(id, middleDate, null, mySrd);
|
||||
history = myPatientDao.history(id, middleDate, null, null, mySrd);
|
||||
for (int i = 0; i < halfSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
String actual = history.getResources(i, i + 1).get(0).getIdElement().getValue();
|
||||
|
@ -1179,7 +1179,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
assertEquals(halfSize, history.size().intValue());
|
||||
|
||||
// By type
|
||||
history = myPatientDao.history(middleDate, null, mySrd);
|
||||
history = myPatientDao.history(middleDate, null, null, mySrd);
|
||||
for (int i = 0; i < halfSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
String actual = history.getResources(i, i + 1).get(0).getIdElement().getValue();
|
||||
|
@ -1188,7 +1188,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
assertEquals(halfSize, history.size().intValue());
|
||||
|
||||
// By server
|
||||
history = mySystemDao.history(middleDate, null, mySrd);
|
||||
history = mySystemDao.history(middleDate, null, null, mySrd);
|
||||
for (int i = 0; i < halfSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
String actual = history.getResources(i, i + 1).get(0).getIdElement().getValue();
|
||||
|
@ -1210,7 +1210,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
patient.setId(id);
|
||||
myPatientDao.update(patient, mySrd);
|
||||
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, null, mySrd);
|
||||
assertEquals(3, history.size().intValue());
|
||||
List<IBaseResource> entries = history.getResources(0, 3);
|
||||
ourLog.info("" + ResourceMetadataKeyEnum.UPDATED.get((IResource) entries.get(0)));
|
||||
|
@ -2068,7 +2068,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
|
||||
@Test()
|
||||
public void testSortByComposite() {
|
||||
|
||||
|
||||
IIdType pid0;
|
||||
IIdType oid1;
|
||||
IIdType oid2;
|
||||
|
@ -2086,55 +2086,55 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
obs.getSubject().setReference(pid0);
|
||||
obs.getCode().addCoding().setCode("2345-7").setSystem("http://loinc.org");
|
||||
obs.setValue(new StringDt("200"));
|
||||
|
||||
|
||||
oid1 = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
||||
|
||||
|
||||
ourLog.info("Observation: \n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
Observation obs = new Observation();
|
||||
obs.addIdentifier().setSystem("urn:system").setValue("FOO");
|
||||
obs.getSubject().setReference(pid0);
|
||||
obs.getCode().addCoding().setCode("2345-7").setSystem("http://loinc.org");
|
||||
obs.setValue(new StringDt("300"));
|
||||
|
||||
|
||||
oid2 = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
||||
|
||||
|
||||
ourLog.info("Observation: \n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
Observation obs = new Observation();
|
||||
obs.addIdentifier().setSystem("urn:system").setValue("FOO");
|
||||
obs.getSubject().setReference(pid0);
|
||||
obs.getCode().addCoding().setCode("2345-7").setSystem("http://loinc.org");
|
||||
obs.setValue(new StringDt("150"));
|
||||
|
||||
|
||||
oid3 = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
||||
|
||||
|
||||
ourLog.info("Observation: \n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
Observation obs = new Observation();
|
||||
obs.addIdentifier().setSystem("urn:system").setValue("FOO");
|
||||
obs.getSubject().setReference(pid0);
|
||||
obs.getCode().addCoding().setCode("2345-7").setSystem("http://loinc.org");
|
||||
obs.setValue(new StringDt("250"));
|
||||
|
||||
|
||||
oid4 = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
||||
|
||||
|
||||
ourLog.info("Observation: \n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||
}
|
||||
|
||||
|
||||
SearchParameterMap pm = new SearchParameterMap();
|
||||
pm.setSort(new SortSpec(Observation.SP_CODE_VALUE_STRING));
|
||||
|
||||
|
||||
|
||||
|
||||
IBundleProvider found = myObservationDao.search(pm);
|
||||
|
||||
|
||||
List<IIdType> list = toUnqualifiedVersionlessIds(found);
|
||||
assertEquals(4, list.size());
|
||||
assertEquals(oid3, list.get(0));
|
||||
|
@ -2142,6 +2142,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
|||
assertEquals(oid4, list.get(2));
|
||||
assertEquals(oid2, list.get(3));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSortByDate() {
|
||||
Patient p = new Patient();
|
||||
|
|
|
@ -723,7 +723,7 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
|||
// ok
|
||||
}
|
||||
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, null, mySrd);
|
||||
assertEquals(2, history.size().intValue());
|
||||
|
||||
assertNotNull(ResourceMetadataKeyEnum.DELETED_AT.get((IResource) history.getResources(0, 1).get(0)));
|
||||
|
|
|
@ -2,7 +2,6 @@ package ca.uhn.fhir.jpa.dao.dstu3;
|
|||
|
||||
import ca.uhn.fhir.rest.api.server.IBundleProvider;
|
||||
import ca.uhn.fhir.util.StopWatch;
|
||||
import ca.uhn.fhir.util.TestUtil;
|
||||
import org.apache.commons.collections4.comparators.ReverseComparator;
|
||||
import org.apache.commons.dbcp2.BasicDataSource;
|
||||
import org.hl7.fhir.dstu3.model.Bundle;
|
||||
|
@ -12,7 +11,6 @@ import org.hl7.fhir.dstu3.model.IdType;
|
|||
import org.hl7.fhir.dstu3.model.Organization;
|
||||
import org.hl7.fhir.dstu3.model.Patient;
|
||||
import org.hl7.fhir.instance.model.api.IBaseResource;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
@ -124,7 +122,7 @@ public class FhirDaoConcurrencyDstu3Test extends BaseJpaDstu3SystemTest {
|
|||
Long currentVersion = currentPatient.getIdElement().getVersionIdPartAsLong();
|
||||
ourLog.info("Current version: {}", currentVersion);
|
||||
|
||||
IBundleProvider historyBundle = myPatientDao.history(new IdType("Patient/PID"),null,null,mySrd);
|
||||
IBundleProvider historyBundle = myPatientDao.history(new IdType("Patient/PID"), null, null, null, mySrd);
|
||||
List<IBaseResource> resources = historyBundle.getResources(0, 1000);
|
||||
List<Long> versions = new ArrayList<>();
|
||||
for (IBaseResource next : resources) {
|
||||
|
@ -144,5 +142,4 @@ public class FhirDaoConcurrencyDstu3Test extends BaseJpaDstu3SystemTest {
|
|||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -899,7 +899,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
public void testDeleteResource() {
|
||||
myDaoConfig.setHistoryCountMode(HistoryCountModeEnum.COUNT_ACCURATE);
|
||||
|
||||
int initialHistory = myPatientDao.history(null, null, mySrd).size();
|
||||
int initialHistory = myPatientDao.history(null, null, null, mySrd).size();
|
||||
|
||||
IIdType id1;
|
||||
IIdType id2;
|
||||
|
@ -942,7 +942,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
// good
|
||||
}
|
||||
|
||||
IBundleProvider history = myPatientDao.history(null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(null, null, null, mySrd);
|
||||
assertEquals(4 + initialHistory, history.size().intValue());
|
||||
List<IBaseResource> resources = history.getResources(0, 4);
|
||||
assertNotNull(ResourceMetadataKeyEnum.DELETED_AT.get((IAnyResource) resources.get(0)));
|
||||
|
@ -1051,7 +1051,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
// ok
|
||||
}
|
||||
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, null, mySrd);
|
||||
assertEquals(2, history.size().intValue());
|
||||
|
||||
assertNotNull(ResourceMetadataKeyEnum.DELETED_AT.get((IAnyResource) history.getResources(0, 1).get(0)));
|
||||
|
@ -1275,7 +1275,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
idv2 = myPatientDao.update(patient, mySrd).getId();
|
||||
}
|
||||
|
||||
List<Patient> patients = toList(myPatientDao.history(idv1.toVersionless(), null, null, mySrd));
|
||||
List<Patient> patients = toList(myPatientDao.history(idv1.toVersionless(), null, null, null, mySrd));
|
||||
assertTrue(patients.size() == 2);
|
||||
// Newest first
|
||||
assertEquals("Patient/testHistoryByForcedId/_history/2", patients.get(0).getIdElement().toUnqualified().getValue());
|
||||
|
@ -1310,7 +1310,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
}
|
||||
|
||||
// By instance
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, null, mySrd);
|
||||
assertEquals(fullSize + 1, history.size().intValue());
|
||||
for (int i = 0; i < fullSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1319,7 +1319,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
}
|
||||
|
||||
// By type
|
||||
history = myPatientDao.history(null, null, mySrd);
|
||||
history = myPatientDao.history(null, null, null, mySrd);
|
||||
assertEquals(fullSize + 1, history.size().intValue());
|
||||
for (int i = 0; i < fullSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1328,7 +1328,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
}
|
||||
|
||||
// By server
|
||||
history = mySystemDao.history(null, null, mySrd);
|
||||
history = mySystemDao.history(null, null, null, mySrd);
|
||||
assertEquals(fullSize + 1, history.size().intValue());
|
||||
for (int i = 0; i < fullSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1341,7 +1341,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
*/
|
||||
|
||||
// By instance
|
||||
history = myPatientDao.history(id, middleDate, null, mySrd);
|
||||
history = myPatientDao.history(id, middleDate, null, null, mySrd);
|
||||
assertEquals(halfSize, history.size().intValue());
|
||||
for (int i = 0; i < halfSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1350,7 +1350,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
}
|
||||
|
||||
// By type
|
||||
history = myPatientDao.history(middleDate, null, mySrd);
|
||||
history = myPatientDao.history(middleDate, null, null, mySrd);
|
||||
assertEquals(halfSize, history.size().intValue());
|
||||
for (int i = 0; i < halfSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1359,7 +1359,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
}
|
||||
|
||||
// By server
|
||||
history = mySystemDao.history(middleDate, null, mySrd);
|
||||
history = mySystemDao.history(middleDate, null, null, mySrd);
|
||||
assertEquals(halfSize, history.size().intValue());
|
||||
for (int i = 0; i < halfSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1377,7 +1377,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
halfSize++;
|
||||
|
||||
// By instance
|
||||
history = myPatientDao.history(id, null, null, mySrd);
|
||||
history = myPatientDao.history(id, null, null, null, mySrd);
|
||||
assertEquals(fullSize + 1, history.size().intValue());
|
||||
for (int i = 0; i < fullSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1386,7 +1386,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
}
|
||||
|
||||
// By type
|
||||
history = myPatientDao.history(null, null, mySrd);
|
||||
history = myPatientDao.history(null, null, null, mySrd);
|
||||
assertEquals(fullSize + 1, history.size().intValue());
|
||||
for (int i = 0; i < fullSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1395,7 +1395,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
}
|
||||
|
||||
// By server
|
||||
history = mySystemDao.history(null, null, mySrd);
|
||||
history = mySystemDao.history(null, null, null, mySrd);
|
||||
assertEquals(fullSize + 1, history.size().intValue());
|
||||
for (int i = 0; i < fullSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1408,7 +1408,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
*/
|
||||
|
||||
// By instance
|
||||
history = myPatientDao.history(id, middleDate, null, mySrd);
|
||||
history = myPatientDao.history(id, middleDate, null, null, mySrd);
|
||||
assertEquals(halfSize, history.size().intValue());
|
||||
for (int i = 0; i < halfSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1417,7 +1417,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
}
|
||||
|
||||
// By type
|
||||
history = myPatientDao.history(middleDate, null, mySrd);
|
||||
history = myPatientDao.history(middleDate, null, null, mySrd);
|
||||
assertEquals(halfSize, history.size().intValue());
|
||||
for (int i = 0; i < halfSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1426,7 +1426,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
}
|
||||
|
||||
// By server
|
||||
history = mySystemDao.history(middleDate, null, mySrd);
|
||||
history = mySystemDao.history(middleDate, null, null, mySrd);
|
||||
assertEquals(halfSize, history.size().intValue());
|
||||
for (int i = 0; i < halfSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1445,7 +1445,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
inPatient.getMeta().addProfile("http://example.com/1");
|
||||
IIdType id = myPatientDao.create(inPatient, mySrd).getId().toUnqualifiedVersionless();
|
||||
|
||||
IBundleProvider history = myPatientDao.history(null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(null, null, null, mySrd);
|
||||
assertEquals(1, history.size().intValue());
|
||||
Patient outPatient = (Patient) history.getResources(0, 1).get(0);
|
||||
assertEquals("version1", inPatient.getName().get(0).getFamily());
|
||||
|
@ -1459,7 +1459,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
inPatient.getMeta().addProfile("http://example.com/2");
|
||||
myPatientDao.metaAddOperation(id, inPatient.getMeta(), mySrd);
|
||||
|
||||
history = myPatientDao.history(null, null, mySrd);
|
||||
history = myPatientDao.history(null, null, null, mySrd);
|
||||
assertEquals(1, history.size().intValue());
|
||||
outPatient = (Patient) history.getResources(0, 1).get(0);
|
||||
assertEquals("version1", inPatient.getName().get(0).getFamily());
|
||||
|
@ -1475,7 +1475,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
inPatient.getName().get(0).setFamily("version2");
|
||||
myPatientDao.update(inPatient, mySrd);
|
||||
|
||||
history = myPatientDao.history(null, null, mySrd);
|
||||
history = myPatientDao.history(null, null, null, mySrd);
|
||||
assertEquals(2, history.size().intValue());
|
||||
outPatient = (Patient) history.getResources(0, 2).get(0);
|
||||
assertEquals("version2", outPatient.getName().get(0).getFamily());
|
||||
|
@ -1501,7 +1501,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
patient.setId(id);
|
||||
myPatientDao.update(patient, mySrd);
|
||||
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, null, mySrd);
|
||||
List<IBaseResource> entries = history.getResources(0, 3);
|
||||
ourLog.info(entries.get(0).getIdElement() + " - " + entries.get(0).getMeta().getLastUpdated());
|
||||
ourLog.info(entries.get(1).getIdElement() + " - " + entries.get(1).getMeta().getLastUpdated());
|
||||
|
@ -1545,13 +1545,13 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
|
||||
List<String> idValues;
|
||||
|
||||
idValues = toUnqualifiedIdValues(myPatientDao.history(id, preDates.get(0), preDates.get(3), mySrd));
|
||||
idValues = toUnqualifiedIdValues(myPatientDao.history(id, preDates.get(0), preDates.get(3), null, mySrd));
|
||||
assertThat(idValues, contains(ids.get(2), ids.get(1), ids.get(0)));
|
||||
|
||||
idValues = toUnqualifiedIdValues(myPatientDao.history(preDates.get(0), preDates.get(3), mySrd));
|
||||
idValues = toUnqualifiedIdValues(myPatientDao.history(preDates.get(0), preDates.get(3), null, mySrd));
|
||||
assertThat(idValues, contains(ids.get(2), ids.get(1), ids.get(0)));
|
||||
|
||||
idValues = toUnqualifiedIdValues(mySystemDao.history(preDates.get(0), preDates.get(3), mySrd));
|
||||
idValues = toUnqualifiedIdValues(mySystemDao.history(preDates.get(0), preDates.get(3), null, mySrd));
|
||||
assertThat(idValues, contains(ids.get(2), ids.get(1), ids.get(0)));
|
||||
}
|
||||
|
||||
|
@ -1572,7 +1572,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
|
||||
// No since
|
||||
|
||||
IBundleProvider history = myPatientDao.history(null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(null, null, null, mySrd);
|
||||
assertEquals(1, history.size().intValue());
|
||||
Patient outPatient = (Patient) history.getResources(0, 1).get(0);
|
||||
assertEquals("version1", inPatient.getName().get(0).getFamily());
|
||||
|
@ -1581,7 +1581,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
|
||||
// Before since
|
||||
|
||||
history = myPatientDao.history(before, null, mySrd);
|
||||
history = myPatientDao.history(before, null, null, mySrd);
|
||||
assertEquals(1, history.size().intValue());
|
||||
outPatient = (Patient) history.getResources(0, 1).get(0);
|
||||
assertEquals("version1", inPatient.getName().get(0).getFamily());
|
||||
|
@ -1590,7 +1590,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
|
||||
// After since
|
||||
|
||||
history = myPatientDao.history(after, null, mySrd);
|
||||
history = myPatientDao.history(after, null, null, mySrd);
|
||||
assertEquals(0, history.size().intValue());
|
||||
|
||||
}
|
||||
|
@ -1598,7 +1598,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
|||
@Test
|
||||
public void testHistoryWithInvalidId() throws Exception {
|
||||
try {
|
||||
myPatientDao.history(new IdType("Patient/FOOFOOFOO"), null, null, mySrd);
|
||||
myPatientDao.history(new IdType("Patient/FOOFOOFOO"), null, null, null, mySrd);
|
||||
fail();
|
||||
} catch (ResourceNotFoundException e) {
|
||||
assertEquals("Resource Patient/FOOFOOFOO is not known", e.getMessage());
|
||||
|
|
|
@ -1340,7 +1340,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
|||
// ok
|
||||
}
|
||||
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, null, mySrd);
|
||||
assertEquals(2, history.size().intValue());
|
||||
|
||||
assertNotNull(ResourceMetadataKeyEnum.DELETED_AT.get((IAnyResource) history.getResources(0, 1).get(0)));
|
||||
|
@ -1437,7 +1437,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
|||
Bundle bundle = myFhirCtx.newJsonParser().parseResource(Bundle.class, input);
|
||||
mySystemDao.transaction(mySrd, bundle);
|
||||
|
||||
IBundleProvider history = mySystemDao.history(null, null, null);
|
||||
IBundleProvider history = mySystemDao.history(null, null, null, null);
|
||||
Bundle list = toBundle(history);
|
||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(list));
|
||||
|
||||
|
|
|
@ -315,7 +315,7 @@ public class ConsentEventsDaoR4Test extends BaseJpaR4SystemTest {
|
|||
// Perform a history
|
||||
SearchParameterMap map = new SearchParameterMap();
|
||||
map.setSort(new SortSpec(Observation.SP_IDENTIFIER, SortOrderEnum.ASC));
|
||||
IBundleProvider outcome = myObservationDao.history(null, null, mySrd);
|
||||
IBundleProvider outcome = myObservationDao.history(null, null, null, mySrd);
|
||||
ourLog.info("Search UUID: {}", outcome.getUuid());
|
||||
|
||||
// Fetch the first 10 (don't cross a fetch boundary)
|
||||
|
|
|
@ -54,7 +54,7 @@ import static org.mockito.ArgumentMatchers.eq;
|
|||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@SuppressWarnings({"unchecked", "deprecation", "Duplicates"})
|
||||
@SuppressWarnings({"deprecation", "Duplicates"})
|
||||
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
|
||||
public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
||||
|
||||
|
@ -267,7 +267,7 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
|||
ourLog.info("Future produced success");
|
||||
} catch (Exception e) {
|
||||
ourLog.info("Future produced exception: {}", e.toString());
|
||||
throw new AssertionError("Failed with message: " + e.toString(), e);
|
||||
throw new AssertionError("Failed with message: " + e, e);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -397,7 +397,7 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
|||
ourLog.info("Future produced success");
|
||||
} catch (Exception e) {
|
||||
ourLog.info("Future produced exception: {}", e.toString());
|
||||
throw new AssertionError("Failed with message: " + e.toString(), e);
|
||||
throw new AssertionError("Failed with message: " + e, e);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -449,12 +449,12 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
|||
ourLog.info("Future produced success");
|
||||
} catch (Exception e) {
|
||||
ourLog.info("Future produced exception: {}", e.toString());
|
||||
throw new AssertionError("Failed with message: " + e.toString(), e);
|
||||
throw new AssertionError("Failed with message: " + e, e);
|
||||
}
|
||||
}
|
||||
|
||||
// Make sure we saved the object
|
||||
IBundleProvider patient = myPatientDao.history(patientId, null, null, null);
|
||||
IBundleProvider patient = myPatientDao.history(patientId, null, null, null, null);
|
||||
assertThat(patient.sizeOrThrowNpe(), greaterThanOrEqualTo(3));
|
||||
|
||||
}
|
||||
|
@ -485,8 +485,8 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
|||
// this is expected since we're not retrying
|
||||
ourLog.info("Version conflict (expected): {}", e.getCause().toString());
|
||||
} else {
|
||||
ourLog.info("Future produced exception: {}", e.toString());
|
||||
throw new AssertionError("Failed with message: " + e.toString(), e);
|
||||
ourLog.info("Future produced exception: {}", e);
|
||||
throw new AssertionError("Failed with message: " + e, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -521,8 +521,8 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
|||
// this is expected since we're not retrying
|
||||
ourLog.info("Version conflict (expected): {}", e.getCause().toString());
|
||||
} else {
|
||||
ourLog.info("Future produced exception: {}", e.toString());
|
||||
throw new AssertionError("Failed with message: " + e.toString(), e);
|
||||
ourLog.info("Future produced exception: {}", e);
|
||||
throw new AssertionError("Failed with message: " + e, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -561,8 +561,8 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
|||
// this is expected since we're not retrying
|
||||
ourLog.info("Version conflict (expected): {}", e.getCause().toString());
|
||||
} else {
|
||||
ourLog.info("Future produced exception: {}", e.toString());
|
||||
throw new AssertionError("Failed with message: " + e.toString(), e);
|
||||
ourLog.info("Future produced exception: {}", e);
|
||||
throw new AssertionError("Failed with message: " + e, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -616,7 +616,7 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
|||
ourLog.info("Future produced success");
|
||||
} catch (Exception e) {
|
||||
ourLog.info("Future produced exception: {}", e.toString());
|
||||
throw new AssertionError("Failed with message: " + e.toString(), e);
|
||||
throw new AssertionError("Failed with message: " + e, e);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -668,7 +668,7 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
|||
ourLog.info("Future produced success");
|
||||
} catch (Exception e) {
|
||||
ourLog.info("Future produced exception: {}", e.toString());
|
||||
throw new AssertionError("Failed with message: " + e.toString(), e);
|
||||
throw new AssertionError("Failed with message: " + e, e);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -726,7 +726,7 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
|||
ourLog.info("Future produced success");
|
||||
} catch (Exception e) {
|
||||
ourLog.info("Future produced exception: {}", e.toString());
|
||||
throw new AssertionError("Failed with message: " + e.toString(), e);
|
||||
throw new AssertionError("Failed with message: " + e, e);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -439,7 +439,7 @@ public class FhirResourceDaoR4QueryCountTest extends BaseJpaR4Test {
|
|||
|
||||
myCaptureQueriesListener.clear();
|
||||
runInTransaction(() -> {
|
||||
IBundleProvider history = mySystemDao.history(null, null, null);
|
||||
IBundleProvider history = mySystemDao.history(null, null, null, null);
|
||||
assertEquals(3, history.getResources(0, 99).size());
|
||||
});
|
||||
myCaptureQueriesListener.logSelectQueriesForCurrentThread();
|
||||
|
@ -456,7 +456,7 @@ public class FhirResourceDaoR4QueryCountTest extends BaseJpaR4Test {
|
|||
// Second time should leverage forced ID cache
|
||||
myCaptureQueriesListener.clear();
|
||||
runInTransaction(() -> {
|
||||
IBundleProvider history = mySystemDao.history(null, null, null);
|
||||
IBundleProvider history = mySystemDao.history(null, null, null, null);
|
||||
assertEquals(3, history.getResources(0, 99).size());
|
||||
});
|
||||
myCaptureQueriesListener.logSelectQueriesForCurrentThread();
|
||||
|
@ -503,7 +503,7 @@ public class FhirResourceDaoR4QueryCountTest extends BaseJpaR4Test {
|
|||
|
||||
myCaptureQueriesListener.clear();
|
||||
runInTransaction(() -> {
|
||||
IBundleProvider history = mySystemDao.history(null, null, null);
|
||||
IBundleProvider history = mySystemDao.history(null, null, null, null);
|
||||
assertEquals(3, history.getResources(0, 3).size());
|
||||
});
|
||||
myCaptureQueriesListener.logSelectQueriesForCurrentThread();
|
||||
|
@ -519,7 +519,7 @@ public class FhirResourceDaoR4QueryCountTest extends BaseJpaR4Test {
|
|||
// Second time should leverage forced ID cache
|
||||
myCaptureQueriesListener.clear();
|
||||
runInTransaction(() -> {
|
||||
IBundleProvider history = mySystemDao.history(null, null, null);
|
||||
IBundleProvider history = mySystemDao.history(null, null, null, null);
|
||||
assertEquals(3, history.getResources(0, 3).size());
|
||||
});
|
||||
myCaptureQueriesListener.logSelectQueriesForCurrentThread();
|
||||
|
|
|
@ -17,7 +17,7 @@ import static org.hamcrest.Matchers.contains;
|
|||
import static org.hamcrest.Matchers.containsInAnyOrder;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
@SuppressWarnings({"unchecked", "deprecation", "Duplicates"})
|
||||
@SuppressWarnings({"Duplicates"})
|
||||
public class FhirResourceDaoR4TagsTest extends BaseJpaR4Test {
|
||||
|
||||
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(FhirResourceDaoR4TagsTest.class);
|
||||
|
@ -86,7 +86,7 @@ public class FhirResourceDaoR4TagsTest extends BaseJpaR4Test {
|
|||
public void testStoreAndRetrieveVersionedTags_History() {
|
||||
initializeVersioned();
|
||||
|
||||
IBundleProvider history = myPatientDao.history(null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(null, null, null, mySrd);
|
||||
|
||||
// Version 1
|
||||
Patient patient = (Patient) history.getResources(0, 999).get(1);
|
||||
|
@ -104,7 +104,7 @@ public class FhirResourceDaoR4TagsTest extends BaseJpaR4Test {
|
|||
public void testStoreAndRetrieveNonVersionedTags_History() {
|
||||
initializeNonVersioned();
|
||||
|
||||
IBundleProvider history = myPatientDao.history(null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(null, null, null, mySrd);
|
||||
|
||||
// Version 1
|
||||
Patient patient = (Patient) history.getResources(0, 999).get(1);
|
||||
|
|
|
@ -1373,7 +1373,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
public void testDeleteResource() {
|
||||
myDaoConfig.setHistoryCountMode(HistoryCountModeEnum.COUNT_ACCURATE);
|
||||
|
||||
int initialHistory = myPatientDao.history(null, null, mySrd).size();
|
||||
int initialHistory = myPatientDao.history(null, null, null, mySrd).size();
|
||||
|
||||
IIdType id1;
|
||||
IIdType id2;
|
||||
|
@ -1416,7 +1416,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
// good
|
||||
}
|
||||
|
||||
IBundleProvider history = myPatientDao.history(null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(null, null, null, mySrd);
|
||||
assertEquals(4 + initialHistory, history.size().intValue());
|
||||
List<IBaseResource> resources = history.getResources(0, 4);
|
||||
assertNotNull(ResourceMetadataKeyEnum.DELETED_AT.get((IAnyResource) resources.get(0)));
|
||||
|
@ -1591,7 +1591,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
// ok
|
||||
}
|
||||
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, null, mySrd);
|
||||
assertEquals(2, history.size().intValue());
|
||||
|
||||
assertNotNull(ResourceMetadataKeyEnum.DELETED_AT.get((IAnyResource) history.getResources(0, 1).get(0)));
|
||||
|
@ -1838,7 +1838,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
idv2 = myPatientDao.update(patient, mySrd).getId();
|
||||
}
|
||||
|
||||
List<Patient> patients = toList(myPatientDao.history(idv1.toVersionless(), null, null, mySrd));
|
||||
List<Patient> patients = toList(myPatientDao.history(idv1.toVersionless(), null, null, null, mySrd));
|
||||
assertTrue(patients.size() == 2);
|
||||
// Newest first
|
||||
assertEquals("Patient/testHistoryByForcedId/_history/2", patients.get(0).getIdElement().toUnqualified().getValue());
|
||||
|
@ -1872,7 +1872,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
}
|
||||
|
||||
// By instance
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, null, mySrd);
|
||||
assertEquals(fullSize + 1, history.size().intValue());
|
||||
for (int i = 0; i < fullSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1881,7 +1881,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
}
|
||||
|
||||
// By type
|
||||
history = myPatientDao.history(null, null, mySrd);
|
||||
history = myPatientDao.history(null, null, null, mySrd);
|
||||
assertEquals(fullSize + 1, history.size().intValue());
|
||||
for (int i = 0; i < fullSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1890,7 +1890,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
}
|
||||
|
||||
// By server
|
||||
history = mySystemDao.history(null, null, mySrd);
|
||||
history = mySystemDao.history(null, null, null, mySrd);
|
||||
assertEquals(fullSize + 1, history.size().intValue());
|
||||
for (int i = 0; i < fullSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1903,7 +1903,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
*/
|
||||
|
||||
// By instance
|
||||
history = myPatientDao.history(id, middleDate, null, mySrd);
|
||||
history = myPatientDao.history(id, middleDate, null, null, mySrd);
|
||||
assertEquals(halfSize, history.size().intValue());
|
||||
for (int i = 0; i < halfSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1912,7 +1912,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
}
|
||||
|
||||
// By type
|
||||
history = myPatientDao.history(middleDate, null, mySrd);
|
||||
history = myPatientDao.history(middleDate, null, null, mySrd);
|
||||
assertEquals(halfSize, history.size().intValue());
|
||||
for (int i = 0; i < halfSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1921,7 +1921,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
}
|
||||
|
||||
// By server
|
||||
history = mySystemDao.history(middleDate, null, mySrd);
|
||||
history = mySystemDao.history(middleDate, null, null, mySrd);
|
||||
assertEquals(halfSize, history.size().intValue());
|
||||
for (int i = 0; i < halfSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1939,7 +1939,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
halfSize++;
|
||||
|
||||
// By instance
|
||||
history = myPatientDao.history(id, null, null, mySrd);
|
||||
history = myPatientDao.history(id, null, null, null, mySrd);
|
||||
assertEquals(fullSize + 1, history.size().intValue());
|
||||
for (int i = 0; i < fullSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1948,7 +1948,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
}
|
||||
|
||||
// By type
|
||||
history = myPatientDao.history(null, null, mySrd);
|
||||
history = myPatientDao.history(null, null, null, mySrd);
|
||||
assertEquals(fullSize + 1, history.size().intValue());
|
||||
for (int i = 0; i < fullSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1957,7 +1957,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
}
|
||||
|
||||
// By server
|
||||
history = mySystemDao.history(null, null, mySrd);
|
||||
history = mySystemDao.history(null, null, null, mySrd);
|
||||
assertEquals(fullSize + 1, history.size().intValue());
|
||||
for (int i = 0; i < fullSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1970,7 +1970,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
*/
|
||||
|
||||
// By instance
|
||||
history = myPatientDao.history(id, middleDate, null, mySrd);
|
||||
history = myPatientDao.history(id, middleDate, null, null, mySrd);
|
||||
assertEquals(halfSize, history.size().intValue());
|
||||
for (int i = 0; i < halfSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1979,7 +1979,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
}
|
||||
|
||||
// By type
|
||||
history = myPatientDao.history(middleDate, null, mySrd);
|
||||
history = myPatientDao.history(middleDate, null, null, mySrd);
|
||||
assertEquals(halfSize, history.size().intValue());
|
||||
for (int i = 0; i < halfSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -1988,7 +1988,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
}
|
||||
|
||||
// By server
|
||||
history = mySystemDao.history(middleDate, null, mySrd);
|
||||
history = mySystemDao.history(middleDate, null, null, mySrd);
|
||||
assertEquals(halfSize, history.size().intValue());
|
||||
for (int i = 0; i < halfSize; i++) {
|
||||
String expected = id.withVersion(Integer.toString(fullSize + 1 - i)).getValue();
|
||||
|
@ -2007,7 +2007,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
inPatient.getMeta().addProfile("http://example.com/1");
|
||||
IIdType id = myPatientDao.create(inPatient, mySrd).getId().toUnqualifiedVersionless();
|
||||
|
||||
IBundleProvider history = myPatientDao.history(null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(null, null, null, mySrd);
|
||||
assertEquals(1, history.size().intValue());
|
||||
Patient outPatient = (Patient) history.getResources(0, 1).get(0);
|
||||
assertEquals("version1", inPatient.getName().get(0).getFamily());
|
||||
|
@ -2021,7 +2021,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
inPatient.getMeta().addProfile("http://example.com/2");
|
||||
myPatientDao.metaAddOperation(id, inPatient.getMeta(), mySrd);
|
||||
|
||||
history = myPatientDao.history(null, null, mySrd);
|
||||
history = myPatientDao.history(null, null, null, mySrd);
|
||||
assertEquals(1, history.size().intValue());
|
||||
outPatient = (Patient) history.getResources(0, 1).get(0);
|
||||
assertEquals("version1", inPatient.getName().get(0).getFamily());
|
||||
|
@ -2037,7 +2037,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
inPatient.getName().get(0).setFamily("version2");
|
||||
myPatientDao.update(inPatient, mySrd);
|
||||
|
||||
history = myPatientDao.history(null, null, mySrd);
|
||||
history = myPatientDao.history(null, null, null, mySrd);
|
||||
assertEquals(2, history.size().intValue());
|
||||
outPatient = (Patient) history.getResources(0, 2).get(0);
|
||||
assertEquals("version2", outPatient.getName().get(0).getFamily());
|
||||
|
@ -2063,7 +2063,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
patient.setId(id);
|
||||
myPatientDao.update(patient, mySrd);
|
||||
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, null, mySrd);
|
||||
List<IBaseResource> entries = history.getResources(0, 3);
|
||||
ourLog.info(entries.get(0).getIdElement() + " - " + entries.get(0).getMeta().getLastUpdated());
|
||||
ourLog.info(entries.get(1).getIdElement() + " - " + entries.get(1).getMeta().getLastUpdated());
|
||||
|
@ -2107,13 +2107,13 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
|
||||
List<String> idValues;
|
||||
|
||||
idValues = toUnqualifiedIdValues(myPatientDao.history(id, preDates.get(0), preDates.get(3), mySrd));
|
||||
idValues = toUnqualifiedIdValues(myPatientDao.history(id, preDates.get(0), preDates.get(3), null, mySrd));
|
||||
assertThat(idValues, contains(ids.get(2), ids.get(1), ids.get(0)));
|
||||
|
||||
idValues = toUnqualifiedIdValues(myPatientDao.history(preDates.get(0), preDates.get(3), mySrd));
|
||||
idValues = toUnqualifiedIdValues(myPatientDao.history(preDates.get(0), preDates.get(3), null, mySrd));
|
||||
assertThat(idValues, contains(ids.get(2), ids.get(1), ids.get(0)));
|
||||
|
||||
idValues = toUnqualifiedIdValues(mySystemDao.history(preDates.get(0), preDates.get(3), mySrd));
|
||||
idValues = toUnqualifiedIdValues(mySystemDao.history(preDates.get(0), preDates.get(3), null, mySrd));
|
||||
assertThat(idValues, contains(ids.get(2), ids.get(1), ids.get(0)));
|
||||
}
|
||||
|
||||
|
@ -2134,7 +2134,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
|
||||
// No since
|
||||
|
||||
IBundleProvider history = myPatientDao.history(null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(null, null, null, mySrd);
|
||||
assertEquals(1, history.size().intValue());
|
||||
Patient outPatient = (Patient) history.getResources(0, 1).get(0);
|
||||
assertEquals("version1", inPatient.getName().get(0).getFamily());
|
||||
|
@ -2143,7 +2143,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
|
||||
// Before since
|
||||
|
||||
history = myPatientDao.history(before, null, mySrd);
|
||||
history = myPatientDao.history(before, null, null, mySrd);
|
||||
assertEquals(1, history.size().intValue());
|
||||
outPatient = (Patient) history.getResources(0, 1).get(0);
|
||||
assertEquals("version1", inPatient.getName().get(0).getFamily());
|
||||
|
@ -2152,7 +2152,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
|
||||
// After since
|
||||
|
||||
history = myPatientDao.history(after, null, mySrd);
|
||||
history = myPatientDao.history(after, null, null, mySrd);
|
||||
assertEquals(0, history.size().intValue());
|
||||
|
||||
}
|
||||
|
@ -2160,7 +2160,7 @@ public class FhirResourceDaoR4Test extends BaseJpaR4Test {
|
|||
@Test
|
||||
public void testHistoryWithInvalidId() {
|
||||
try {
|
||||
myPatientDao.history(new IdType("Patient/FOOFOOFOO"), null, null, mySrd);
|
||||
myPatientDao.history(new IdType("Patient/FOOFOOFOO"), null, null, null, mySrd);
|
||||
fail();
|
||||
} catch (ResourceNotFoundException e) {
|
||||
assertEquals("Resource Patient/FOOFOOFOO is not known", e.getMessage());
|
||||
|
|
|
@ -538,7 +538,7 @@ public class FhirResourceDaoR4UpdateTest extends BaseJpaR4Test {
|
|||
* Get history
|
||||
*/
|
||||
|
||||
IBundleProvider historyBundle = myPatientDao.history(outcome.getId(), null, null, mySrd);
|
||||
IBundleProvider historyBundle = myPatientDao.history(outcome.getId(), null, null, null, mySrd);
|
||||
|
||||
assertEquals(2, historyBundle.size().intValue());
|
||||
|
||||
|
|
|
@ -2065,7 +2065,7 @@ public class FhirSystemDaoR4Test extends BaseJpaR4SystemTest {
|
|||
// ok
|
||||
}
|
||||
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, mySrd);
|
||||
IBundleProvider history = myPatientDao.history(id, null, null, null, mySrd);
|
||||
assertEquals(2, history.size().intValue());
|
||||
|
||||
assertNotNull(ResourceMetadataKeyEnum.DELETED_AT.get((IAnyResource) history.getResources(0, 1).get(0)));
|
||||
|
@ -2162,7 +2162,7 @@ public class FhirSystemDaoR4Test extends BaseJpaR4SystemTest {
|
|||
Bundle bundle = myFhirCtx.newJsonParser().parseResource(Bundle.class, input);
|
||||
mySystemDao.transaction(mySrd, bundle);
|
||||
|
||||
IBundleProvider history = mySystemDao.history(null, null, null);
|
||||
IBundleProvider history = mySystemDao.history(null, null, null, null);
|
||||
Bundle list = toBundleR4(history);
|
||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(list));
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ public class JpaHistoryR4Test extends BaseJpaR4SystemTest {
|
|||
*/
|
||||
|
||||
myCaptureQueriesListener.clear();
|
||||
IBundleProvider history = myPatientDao.history(null, null, new SystemRequestDetails());
|
||||
IBundleProvider history = myPatientDao.history(null, null, null, new SystemRequestDetails());
|
||||
|
||||
// Simulate the server requesting the Bundle.total value
|
||||
assertEquals(null, history.size());
|
||||
|
@ -75,7 +75,7 @@ public class JpaHistoryR4Test extends BaseJpaR4SystemTest {
|
|||
*/
|
||||
|
||||
myCaptureQueriesListener.clear();
|
||||
IBundleProvider history = myPatientDao.history(null, null, new SystemRequestDetails());
|
||||
IBundleProvider history = myPatientDao.history(null, null, null, new SystemRequestDetails());
|
||||
|
||||
// Simulate the server requesting the Bundle.total value
|
||||
assertEquals(20, history.sizeOrThrowNpe());
|
||||
|
@ -95,7 +95,7 @@ public class JpaHistoryR4Test extends BaseJpaR4SystemTest {
|
|||
*/
|
||||
|
||||
myCaptureQueriesListener.clear();
|
||||
history = myPatientDao.history(null, null, new SystemRequestDetails());
|
||||
history = myPatientDao.history(null, null, null, new SystemRequestDetails());
|
||||
|
||||
// Simulate the server requesting the Bundle.total value
|
||||
assertEquals(20, history.sizeOrThrowNpe());
|
||||
|
@ -121,7 +121,7 @@ public class JpaHistoryR4Test extends BaseJpaR4SystemTest {
|
|||
*/
|
||||
|
||||
myCaptureQueriesListener.clear();
|
||||
IBundleProvider history = myPatientDao.history(null, null, new SystemRequestDetails());
|
||||
IBundleProvider history = myPatientDao.history(null, null, null, new SystemRequestDetails());
|
||||
|
||||
// Simulate the server requesting the Bundle.total value
|
||||
assertEquals(20, history.sizeOrThrowNpe());
|
||||
|
@ -143,7 +143,7 @@ public class JpaHistoryR4Test extends BaseJpaR4SystemTest {
|
|||
*/
|
||||
|
||||
myCaptureQueriesListener.clear();
|
||||
history = myPatientDao.history(null, null, new SystemRequestDetails());
|
||||
history = myPatientDao.history(null, null, null, new SystemRequestDetails());
|
||||
|
||||
// Simulate the server requesting the Bundle.total value
|
||||
assertEquals(20, history.sizeOrThrowNpe());
|
||||
|
@ -171,7 +171,7 @@ public class JpaHistoryR4Test extends BaseJpaR4SystemTest {
|
|||
*/
|
||||
|
||||
myCaptureQueriesListener.clear();
|
||||
IBundleProvider history = myPatientDao.history(null, new Date(), new SystemRequestDetails());
|
||||
IBundleProvider history = myPatientDao.history(null, new Date(), null, new SystemRequestDetails());
|
||||
|
||||
// No count since there is an offset
|
||||
assertEquals(null, history.size());
|
||||
|
@ -196,7 +196,7 @@ public class JpaHistoryR4Test extends BaseJpaR4SystemTest {
|
|||
*/
|
||||
|
||||
myCaptureQueriesListener.clear();
|
||||
IBundleProvider history = mySystemDao.history(null, null, new SystemRequestDetails());
|
||||
IBundleProvider history = mySystemDao.history(null, null, null, new SystemRequestDetails());
|
||||
|
||||
// Simulate the server requesting the Bundle.total value
|
||||
assertEquals(20, history.sizeOrThrowNpe());
|
||||
|
@ -218,7 +218,7 @@ public class JpaHistoryR4Test extends BaseJpaR4SystemTest {
|
|||
*/
|
||||
|
||||
myCaptureQueriesListener.clear();
|
||||
history = mySystemDao.history(null, null, new SystemRequestDetails());
|
||||
history = mySystemDao.history(null, null, null, new SystemRequestDetails());
|
||||
|
||||
// Simulate the server requesting the Bundle.total value
|
||||
assertEquals(20, history.sizeOrThrowNpe());
|
||||
|
@ -244,7 +244,7 @@ public class JpaHistoryR4Test extends BaseJpaR4SystemTest {
|
|||
ExecutorService threadPool = Executors.newFixedThreadPool(20);
|
||||
try {
|
||||
Runnable task = () -> {
|
||||
IBundleProvider history = mySystemDao.history(null, null, new SystemRequestDetails());
|
||||
IBundleProvider history = mySystemDao.history(null, null, null, new SystemRequestDetails());
|
||||
assertEquals(20, history.sizeOrThrowNpe());
|
||||
assertEquals(20, history.getResources(0, 999).size());
|
||||
};
|
||||
|
|
|
@ -2754,7 +2754,7 @@ public class PartitioningSqlR4Test extends BasePartitioningR4Test {
|
|||
|
||||
addReadPartition(1);
|
||||
myCaptureQueriesListener.clear();
|
||||
IBundleProvider results = myPatientDao.history(id, null, null, mySrd);
|
||||
IBundleProvider results = myPatientDao.history(id, null, null, null, mySrd);
|
||||
assertEquals(2, results.sizeOrThrowNpe());
|
||||
List<String> ids = toUnqualifiedIdValues(results);
|
||||
assertThat(ids, contains(id.withVersion("2").getValue(), id.withVersion("1").getValue()));
|
||||
|
@ -2791,7 +2791,7 @@ public class PartitioningSqlR4Test extends BasePartitioningR4Test {
|
|||
|
||||
addReadPartition(2);
|
||||
try {
|
||||
myPatientDao.history(id, null, null, mySrd);
|
||||
myPatientDao.history(id, null, null, null, mySrd);
|
||||
fail();
|
||||
} catch (ResourceNotFoundException e) {
|
||||
// good
|
||||
|
@ -2811,7 +2811,7 @@ public class PartitioningSqlR4Test extends BasePartitioningR4Test {
|
|||
|
||||
addReadDefaultPartition();
|
||||
myCaptureQueriesListener.clear();
|
||||
IBundleProvider results = myPatientDao.history(id, null, null, mySrd);
|
||||
IBundleProvider results = myPatientDao.history(id, null, null, null, mySrd);
|
||||
assertEquals(2, results.sizeOrThrowNpe());
|
||||
List<String> ids = toUnqualifiedIdValues(results);
|
||||
assertThat(ids, contains(id.withVersion("2").getValue(), id.withVersion("1").getValue()));
|
||||
|
@ -2847,7 +2847,7 @@ public class PartitioningSqlR4Test extends BasePartitioningR4Test {
|
|||
|
||||
addReadAllPartitions();
|
||||
myCaptureQueriesListener.clear();
|
||||
IBundleProvider results = myPatientDao.history(id, null, null, mySrd);
|
||||
IBundleProvider results = myPatientDao.history(id, null, null, null, mySrd);
|
||||
assertEquals(2, results.sizeOrThrowNpe());
|
||||
List<String> ids = toUnqualifiedIdValues(results);
|
||||
assertThat(ids, contains(id.withVersion("2").getValue(), id.withVersion("1").getValue()));
|
||||
|
@ -2857,7 +2857,7 @@ public class PartitioningSqlR4Test extends BasePartitioningR4Test {
|
|||
public void testHistory_Server() {
|
||||
addReadAllPartitions();
|
||||
try {
|
||||
mySystemDao.history(null, null, mySrd).size();
|
||||
mySystemDao.history(null, null, null, mySrd).size();
|
||||
fail();
|
||||
} catch (InvalidRequestException e) {
|
||||
assertEquals("Type- and Server- level history operation not supported across partitions on partitioned server", e.getMessage());
|
||||
|
@ -2876,7 +2876,7 @@ public class PartitioningSqlR4Test extends BasePartitioningR4Test {
|
|||
|
||||
addReadPartition(1);
|
||||
myCaptureQueriesListener.clear();
|
||||
IBundleProvider results = mySystemDao.history(null, null, mySrd);
|
||||
IBundleProvider results = mySystemDao.history(null, null, null, mySrd);
|
||||
assertEquals(2, results.sizeOrThrowNpe());
|
||||
List<String> ids = toUnqualifiedIdValues(results);
|
||||
assertThat(ids, contains(id1B.withVersion("1").getValue(), id1A.withVersion("1").getValue()));
|
||||
|
@ -2908,7 +2908,7 @@ public class PartitioningSqlR4Test extends BasePartitioningR4Test {
|
|||
|
||||
addReadDefaultPartition();
|
||||
myCaptureQueriesListener.clear();
|
||||
IBundleProvider results = mySystemDao.history(null, null, mySrd);
|
||||
IBundleProvider results = mySystemDao.history(null, null, null, mySrd);
|
||||
assertEquals(2, results.sizeOrThrowNpe());
|
||||
List<String> ids = toUnqualifiedIdValues(results);
|
||||
assertThat(ids, contains(id1B.withVersion("1").getValue(), id1A.withVersion("1").getValue()));
|
||||
|
@ -2945,7 +2945,7 @@ public class PartitioningSqlR4Test extends BasePartitioningR4Test {
|
|||
{
|
||||
addReadPartition(2, null);
|
||||
myCaptureQueriesListener.clear();
|
||||
IBundleProvider results = mySystemDao.history(null, null, mySrd);
|
||||
IBundleProvider results = mySystemDao.history(null, null, null, mySrd);
|
||||
assertEquals(4, results.sizeOrThrowNpe());
|
||||
List<String> ids = toUnqualifiedVersionlessIdValues(results);
|
||||
assertThat(ids, contains(id22, id21, idNull2, idNull1));
|
||||
|
@ -2955,7 +2955,7 @@ public class PartitioningSqlR4Test extends BasePartitioningR4Test {
|
|||
{
|
||||
addReadPartition(2, 3);
|
||||
myCaptureQueriesListener.clear();
|
||||
IBundleProvider results = mySystemDao.history(null, null, mySrd);
|
||||
IBundleProvider results = mySystemDao.history(null, null, null, mySrd);
|
||||
assertEquals(4, results.sizeOrThrowNpe());
|
||||
List<String> ids = toUnqualifiedVersionlessIdValues(results);
|
||||
assertThat(ids, contains(id32, id22, id31, id21));
|
||||
|
@ -2967,7 +2967,7 @@ public class PartitioningSqlR4Test extends BasePartitioningR4Test {
|
|||
public void testHistory_Type_AllPartitions() {
|
||||
addReadAllPartitions();
|
||||
try {
|
||||
myPatientDao.history(null, null, mySrd).size();
|
||||
myPatientDao.history(null, null, null, mySrd).size();
|
||||
fail();
|
||||
} catch (InvalidRequestException e) {
|
||||
assertEquals("Type- and Server- level history operation not supported across partitions on partitioned server", e.getMessage());
|
||||
|
@ -2986,7 +2986,7 @@ public class PartitioningSqlR4Test extends BasePartitioningR4Test {
|
|||
|
||||
addReadPartition(1);
|
||||
myCaptureQueriesListener.clear();
|
||||
IBundleProvider results = myPatientDao.history(null, null, mySrd);
|
||||
IBundleProvider results = myPatientDao.history(null, null, null, mySrd);
|
||||
assertEquals(2, results.sizeOrThrowNpe());
|
||||
List<String> ids = toUnqualifiedIdValues(results);
|
||||
assertThat(ids, contains(id1B.withVersion("1").getValue(), id1A.withVersion("1").getValue()));
|
||||
|
@ -3018,7 +3018,7 @@ public class PartitioningSqlR4Test extends BasePartitioningR4Test {
|
|||
|
||||
addReadDefaultPartition();
|
||||
myCaptureQueriesListener.clear();
|
||||
IBundleProvider results = myPatientDao.history(null, null, mySrd);
|
||||
IBundleProvider results = myPatientDao.history(null, null, null, mySrd);
|
||||
assertEquals(2, results.sizeOrThrowNpe());
|
||||
List<String> ids = toUnqualifiedIdValues(results);
|
||||
assertThat(ids, contains(id1B.withVersion("1").getValue(), id1A.withVersion("1").getValue()));
|
||||
|
|
|
@ -2734,6 +2734,106 @@ public class ResourceProviderR4Test extends BaseResourceProviderR4Test {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHistoryPaging() {
|
||||
|
||||
Patient patient = new Patient();
|
||||
patient.setId("Patient/A");
|
||||
patient.setActive(true);
|
||||
myClient.update().resource(patient).execute();
|
||||
patient.setActive(false);
|
||||
myClient.update().resource(patient).execute();
|
||||
|
||||
sleepAtLeast(100);
|
||||
Date midDate = new Date();
|
||||
sleepAtLeast(100);
|
||||
|
||||
patient.setActive(true);
|
||||
myClient.update().resource(patient).execute();
|
||||
patient.setActive(false);
|
||||
myClient.update().resource(patient).execute();
|
||||
patient.setActive(true);
|
||||
myClient.update().resource(patient).execute();
|
||||
patient.setActive(false);
|
||||
myClient.update().resource(patient).execute();
|
||||
|
||||
Bundle history = myClient
|
||||
.history()
|
||||
.onInstance("Patient/A")
|
||||
.returnBundle(Bundle.class)
|
||||
.prettyPrint()
|
||||
.count(2)
|
||||
.execute();
|
||||
|
||||
assertThat(toUnqualifiedIdValues(history).toString(), toUnqualifiedIdValues(history), contains(
|
||||
"Patient/A/_history/6",
|
||||
"Patient/A/_history/5"
|
||||
));
|
||||
|
||||
history = myClient
|
||||
.loadPage()
|
||||
.next(history)
|
||||
.execute();
|
||||
|
||||
assertThat(toUnqualifiedIdValues(history).toString(), toUnqualifiedIdValues(history), contains(
|
||||
"Patient/A/_history/4",
|
||||
"Patient/A/_history/3"
|
||||
));
|
||||
|
||||
history = myClient
|
||||
.loadPage()
|
||||
.next(history)
|
||||
.execute();
|
||||
|
||||
assertThat(toUnqualifiedIdValues(history).toString(), toUnqualifiedIdValues(history), contains(
|
||||
"Patient/A/_history/2",
|
||||
"Patient/A/_history/1"
|
||||
));
|
||||
|
||||
history = myClient
|
||||
.loadPage()
|
||||
.next(history)
|
||||
.execute();
|
||||
|
||||
assertEquals(0, history.getEntry().size());
|
||||
|
||||
/*
|
||||
* Try with a date offset
|
||||
*/
|
||||
|
||||
history = myClient
|
||||
.history()
|
||||
.onInstance("Patient/A")
|
||||
.returnBundle(Bundle.class)
|
||||
.since(midDate)
|
||||
.prettyPrint()
|
||||
.count(2)
|
||||
.execute();
|
||||
|
||||
assertThat(toUnqualifiedIdValues(history).toString(), toUnqualifiedIdValues(history), contains(
|
||||
"Patient/A/_history/6",
|
||||
"Patient/A/_history/5"
|
||||
));
|
||||
|
||||
history = myClient
|
||||
.loadPage()
|
||||
.next(history)
|
||||
.execute();
|
||||
|
||||
assertThat(toUnqualifiedIdValues(history).toString(), toUnqualifiedIdValues(history), contains(
|
||||
"Patient/A/_history/4",
|
||||
"Patient/A/_history/3"
|
||||
));
|
||||
|
||||
history = myClient
|
||||
.loadPage()
|
||||
.next(history)
|
||||
.execute();
|
||||
|
||||
assertEquals(0, history.getEntry().size());
|
||||
|
||||
}
|
||||
|
||||
// private void delete(String theResourceType, String theParamName, String theParamValue) {
|
||||
// Bundle resources;
|
||||
// do {
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -161,7 +161,7 @@ public abstract class BaseResourceReturningMethodBinding extends BaseMethodBindi
|
|||
}
|
||||
numToReturn = pageSize;
|
||||
|
||||
if (requestOffset != null) {
|
||||
if (requestOffset != null && !isOffsetModeHistory()) {
|
||||
// When offset query is done theResult already contains correct amount (+ their includes etc.) so return everything
|
||||
resourceList = theResult.getResources(0, Integer.MAX_VALUE);
|
||||
} else if (numToReturn > 0) {
|
||||
|
@ -238,7 +238,7 @@ public abstract class BaseResourceReturningMethodBinding extends BaseMethodBindi
|
|||
BundleLinks links = new BundleLinks(theRequest.getFhirServerBase(), theIncludes, RestfulServerUtils.prettyPrintResponse(theServer, theRequest), theBundleType);
|
||||
links.setSelf(theLinkSelf);
|
||||
|
||||
if (requestOffset != null || (!theServer.canStoreSearchResults() && !isEverythingOperation(theRequest))) {
|
||||
if (requestOffset != null || (!theServer.canStoreSearchResults() && !isEverythingOperation(theRequest)) || isOffsetModeHistory()) {
|
||||
int offset = requestOffset != null ? requestOffset : 0;
|
||||
// Paging without caching
|
||||
// We're doing requestOffset pages
|
||||
|
@ -288,6 +288,10 @@ public abstract class BaseResourceReturningMethodBinding extends BaseMethodBindi
|
|||
|
||||
}
|
||||
|
||||
protected boolean isOffsetModeHistory() {
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean isEverythingOperation(RequestDetails theRequest) {
|
||||
return (theRequest.getRestOperationType() == RestOperationTypeEnum.EXTENDED_OPERATION_TYPE
|
||||
|| theRequest.getRestOperationType() == RestOperationTypeEnum.EXTENDED_OPERATION_INSTANCE)
|
||||
|
|
|
@ -103,6 +103,11 @@ public class HistoryMethodBinding extends BaseResourceReturningMethodBinding {
|
|||
return ReturnTypeEnum.BUNDLE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isOffsetModeHistory() {
|
||||
return true;
|
||||
}
|
||||
|
||||
// ObjectUtils.equals is replaced by a JDK7 method..
|
||||
@Override
|
||||
public MethodMatchEnum incomingServerRequestMatchesMethod(RequestDetails theRequest) {
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-spring-boot-samples</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>hapi-fhir-spring-boot-sample-client-apache</artifactId>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-spring-boot-samples</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>hapi-fhir-spring-boot-sample-client-okhttp</artifactId>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-spring-boot-samples</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>hapi-fhir-spring-boot-sample-server-jersey</artifactId>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-spring-boot</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>hapi-fhir-spring-boot-samples</artifactId>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -1,5 +1,25 @@
|
|||
package ca.uhn.fhir.test.utilities;
|
||||
|
||||
/*-
|
||||
* #%L
|
||||
* HAPI FHIR Test Utilities
|
||||
* %%
|
||||
* Copyright (C) 2014 - 2021 Smile CDR, Inc.
|
||||
* %%
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
* #L%
|
||||
*/
|
||||
|
||||
import ca.uhn.fhir.rest.api.server.RequestDetails;
|
||||
import ca.uhn.fhir.rest.server.RestfulServer;
|
||||
import ca.uhn.fhir.rest.server.servlet.ServletRequestDetails;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
@ -58,37 +58,37 @@
|
|||
<dependency>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-structures-dstu3</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-structures-hl7org-dstu2</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-structures-r4</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-structures-r5</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-validation-resources-dstu2</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-validation-resources-dstu3</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-validation-resources-r4</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.velocity</groupId>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
2
pom.xml
2
pom.xml
|
@ -6,7 +6,7 @@
|
|||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<name>HAPI-FHIR</name>
|
||||
<description>An open-source implementation of the FHIR specification in Java.</description>
|
||||
<url>https://hapifhir.io</url>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>5.5.0-PRE4-SNAPSHOT</version>
|
||||
<version>5.5.0-PRE5-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
Loading…
Reference in New Issue