Interface FHIRPayloadPersistence
-
- All Known Implementing Classes:
FHIRPayloadPersistenceBlobImpl,FHIRPayloadPersistenceCassandraImpl
public interface FHIRPayloadPersistenceUsed for storing and retrieving payload data. Implementations are expected to be locked to a particular tenant on instantiation.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voiddeletePayload(java.lang.String resourceType, int resourceTypeId, java.lang.String logicalId, java.lang.Integer version, java.lang.String resourcePayloadKey)Delete the payload item.<T extends Resource>
TreadResource(java.lang.Class<T> resourceType, java.lang.String rowResourceTypeName, int resourceTypeId, java.lang.String logicalId, int version, java.lang.String resourcePayloadKey, java.util.List<java.lang.String> elements)Retrieve the payload data for the given resourceTypeId, logicalId and version.<T extends Resource>
java.util.concurrent.CompletableFuture<ResourceResult<? extends Resource>>readResourceAsync(java.lang.Class<T> resourceType, java.lang.String rowResourceTypeName, int resourceTypeId, java.lang.String logicalId, int version, java.lang.String resourcePayloadKey, java.time.Instant lastUpdated, java.util.List<java.lang.String> elements)Async retrieval of the payload data for the given resourceTypeId, logicalId and version.PayloadPersistenceResponsestorePayload(java.lang.String resourceTypeName, int resourceTypeId, java.lang.String logicalId, int version, java.lang.String resourcePayloadKey, Resource resource)Store the payload.
-
-
-
Method Detail
-
storePayload
PayloadPersistenceResponse storePayload(java.lang.String resourceTypeName, int resourceTypeId, java.lang.String logicalId, int version, java.lang.String resourcePayloadKey, Resource resource) throws FHIRPersistenceException
Store the payload. The business key is the tuple {resourceTypeId, logicalId, version} This data is stored directly, and should ideally be compressed.- Parameters:
resourceTypeName- the type name of the resourceresourceTypeId- the database id assigned to this resource typelogicalId- the logical id of the resourceversion- the version of the resourceresourcePayloadKey- the unique key used to tie this to the RDBMS recordresource- the resource to store- Returns:
- the payload key details and future result status.
- Throws:
FHIRPersistenceException
-
readResource
<T extends Resource> T readResource(java.lang.Class<T> resourceType, java.lang.String rowResourceTypeName, int resourceTypeId, java.lang.String logicalId, int version, java.lang.String resourcePayloadKey, java.util.List<java.lang.String> elements) throws FHIRPersistenceException
Retrieve the payload data for the given resourceTypeId, logicalId and version. Synchronous.- Parameters:
resourceType- the expected resource type classrowResourceTypeName- the resource type name of the resource read from the database (matching the resourceTypeId)resourceTypeId- the unique int identifier for the resource type namelogicalId- the logical identifier of the desired resourceversion- the specific version of the desired resourceresourcePayloadKey- the resource payload key connecting the entry to the RDBMS recordelements- to filter elements within the resource - can be null- Returns:
- the fhirResourcePayload exactly as it was provided to
#storePayload(String, int, String, int, String, byte[]) - Throws:
FHIRPersistenceException
-
readResourceAsync
<T extends Resource> java.util.concurrent.CompletableFuture<ResourceResult<? extends Resource>> readResourceAsync(java.lang.Class<T> resourceType, java.lang.String rowResourceTypeName, int resourceTypeId, java.lang.String logicalId, int version, java.lang.String resourcePayloadKey, java.time.Instant lastUpdated, java.util.List<java.lang.String> elements) throws FHIRPersistenceException
Async retrieval of the payload data for the given resourceTypeId, logicalId and version.- Type Parameters:
T-- Parameters:
resourceType-rowResourceTypeName-resourceTypeId-logicalId-version-resourcePayloadKey-lastUpdated- the last modification time of the resource in the RDBMS recordelements-- Returns:
- Throws:
FHIRPersistenceException
-
deletePayload
void deletePayload(java.lang.String resourceType, int resourceTypeId, java.lang.String logicalId, java.lang.Integer version, java.lang.String resourcePayloadKey) throws FHIRPersistenceExceptionDelete the payload item. This may be called to clean up after a failed transaction or by the reconciliation process when it finds an orphaned record. when performing a hard delete on a resource.- Parameters:
resourceType-resourceTypeId-logicalId-version- the version id, or null for all versionsresourcePayloadKey- the key to make sure the entry matches the RDBMS record- Throws:
FHIRPersistenceException
-
-