Package com.ibm.fhir.persistence
Interface FHIRPersistence
-
- All Known Implementing Classes:
FHIRPersistenceJDBCImpl
public interface FHIRPersistenceThis interface defines the contract between the FHIR Server's REST API layer and the underlying persistence layer that is responsible for interacting with a particular datastore to manage instances of FHIR Resources.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description <T extends Resource>
SingleResourceResult<T>create(FHIRPersistenceContext context, T resource)Stores a new FHIR Resource in the datastore.default <T extends Resource>
SingleResourceResult<T>delete(FHIRPersistenceContext context, Class<T> resourceType, String logicalId)Deletes the specified FHIR Resource from the datastore.StringgenerateResourceId()Generates a resource ID.OperationOutcomegetHealth()Returns an OperationOutcome indicating the current status of the persistence store / backendFHIRPersistenceTransactiongetTransaction()Returns a FHIRPersistenceTransaction object associated with the persistence layer implementation in use.<T extends Resource>
MultiResourceResult<T>history(FHIRPersistenceContext context, Class<T> resourceType, String logicalId)Retrieves all of the versions of the specified FHIR Resource.default booleanisDeleteSupported()Returns true iff the persistence layer implementation supports the "delete" operation.booleanisTransactional()Returns true iff the persistence layer implementation supports transactions.<T extends Resource>
SingleResourceResult<T>read(FHIRPersistenceContext context, Class<T> resourceType, String logicalId)Retrieves the most recent version of a FHIR Resource from the datastore.MultiResourceResult<Resource>search(FHIRPersistenceContext context, Class<? extends Resource> resourceType)Performs a search on the specified target resource type using the specified search parameters.<T extends Resource>
SingleResourceResult<T>update(FHIRPersistenceContext context, String logicalId, T resource)Updates an existing FHIR Resource by storing a new version in the datastore.<T extends Resource>
SingleResourceResult<T>vread(FHIRPersistenceContext context, Class<T> resourceType, String logicalId, String versionId)Retrieves a specific version of a FHIR Resource from the datastore.
-
-
-
Method Detail
-
create
<T extends Resource> SingleResourceResult<T> create(FHIRPersistenceContext context, T resource) throws FHIRPersistenceException
Stores a new FHIR Resource in the datastore.- Parameters:
context- the FHIRPersistenceContext instance associated with the current requestresource- the FHIR Resource instance to be created in the datastore- Returns:
- a SingleResourceResult with a copy of resource with Meta fields updated by the persistence layer and/or an OperationOutcome with hints, warnings, or errors related to the interaction
- Throws:
FHIRPersistenceException
-
read
<T extends Resource> SingleResourceResult<T> read(FHIRPersistenceContext context, Class<T> resourceType, String logicalId) throws FHIRPersistenceException
Retrieves the most recent version of a FHIR Resource from the datastore.- Parameters:
context- the FHIRPersistenceContext instance associated with the current requestresourceType- the resource type of the Resource instance to be retrievedlogicalId- the logical id of the Resource instance to be retrieved- Returns:
- a SingleResourceResult with the FHIR Resource that was retrieved from the datastore and/or an OperationOutcome with hints, warnings, or errors related to the interaction
- Throws:
FHIRPersistenceException
-
vread
<T extends Resource> SingleResourceResult<T> vread(FHIRPersistenceContext context, Class<T> resourceType, String logicalId, String versionId) throws FHIRPersistenceException
Retrieves a specific version of a FHIR Resource from the datastore.- Parameters:
context- the FHIRPersistenceContext instance associated with the current requestresourceType- the resource type of the Resource instance to be retrievedlogicalId- the logical id of the Resource instance to be retrievedversionId- the version of the Resource instance to be retrieved- Returns:
- a SingleResourceResult with the FHIR Resource that was retrieved from the datastore and/or an OperationOutcome with hints, warnings, or errors related to the interaction
- Throws:
FHIRPersistenceException
-
update
<T extends Resource> SingleResourceResult<T> update(FHIRPersistenceContext context, String logicalId, T resource) throws FHIRPersistenceException
Updates an existing FHIR Resource by storing a new version in the datastore.- Parameters:
context- the FHIRPersistenceContext instance associated with the current requestlogicalId- the logical id of the FHIR Resource to be updatedresource- the new contents of the FHIR Resource to be stored- Returns:
- a SingleResourceResult with a copy of resource with fields updated by the persistence layer and/or an OperationOutcome with hints, warnings, or errors related to the interaction
- Throws:
FHIRPersistenceException
-
delete
default <T extends Resource> SingleResourceResult<T> delete(FHIRPersistenceContext context, Class<T> resourceType, String logicalId) throws FHIRPersistenceException
Deletes the specified FHIR Resource from the datastore.- Parameters:
context- the FHIRPersistenceContext instance associated with the current requestresourceType- The type of FHIR Resource to be deleted.logicalId- the logical id of the FHIR Resource to be deleted- Returns:
- a SingleResourceResult with the FHIR Resource that was deleted or null if the specified resource doesn't exist and/or an OperationOutcome with hints, warnings, or errors related to the interaction
- Throws:
FHIRPersistenceException
-
history
<T extends Resource> MultiResourceResult<T> history(FHIRPersistenceContext context, Class<T> resourceType, String logicalId) throws FHIRPersistenceException
Retrieves all of the versions of the specified FHIR Resource.- Parameters:
context- the FHIRPersistenceContext instance associated with the current requestresourceType- the resource type of the Resource instances to be retrievedlogicalId- the logical id of the Resource instances to be retrieved- Returns:
- a MultiResourceResult with a list containing the available versions of the specified FHIR Resource and/or an OperationOutcome with hints, warnings, or errors related to the interaction
- Throws:
FHIRPersistenceException
-
search
MultiResourceResult<Resource> search(FHIRPersistenceContext context, Class<? extends Resource> resourceType) throws FHIRPersistenceException
Performs a search on the specified target resource type using the specified search parameters.- Parameters:
context- the FHIRPersistenceContext instance associated with the current requestresourceType- the resource type which is the target of the search- Returns:
- a MultiResourceResult with the list of FHIR Resources in the search result set and/or an OperationOutcome with hints, warnings, or errors related to the interaction
- Throws:
FHIRPersistenceException
-
isTransactional
boolean isTransactional()
Returns true iff the persistence layer implementation supports transactions.
-
getHealth
OperationOutcome getHealth() throws FHIRPersistenceException
Returns an OperationOutcome indicating the current status of the persistence store / backend- Returns:
- An OperationOutcome with a list of 0 or more OperationalOutcomeIssue indicating the status of the underlying datastore
- Throws:
FHIRPersistenceException
-
getTransaction
FHIRPersistenceTransaction getTransaction()
Returns a FHIRPersistenceTransaction object associated with the persistence layer implementation in use. This can then be used to control transactional boundaries.
-
isDeleteSupported
default boolean isDeleteSupported()
Returns true iff the persistence layer implementation supports the "delete" operation.
-
generateResourceId
String generateResourceId()
Generates a resource ID.- Returns:
- resource ID
-
-