HS.FHIR.vDSTU2.Repository.Storage
deprecated class HS.FHIR.vDSTU2.Repository.Storage extends %Library.RegisteredObject
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.Method Inventory
- AddResultToTempSort()
- CacheSearchParams()
- Create()
- Delete()
- DeleteOrphanedResources()
- DeleteSessionResources()
- FindMatchingResourceIds()
- GenerateResourceId()
- GetRefTypeIdsFromSearchParam()
- GetSearchParamType()
- GetStorageDataByStorageId()
- GetStorageIdByTypeAndId()
- GetStorageObjectByStorageId()
- HardDelete()
- History()
- IsSharedResourceType()
- LoadAllSearchParams()
- OnInit()
- Read()
- ReadByStorageId()
- Search()
- SearchInclude()
- SearchRelated()
- Update()
Parameters
parameter CUSTOMSTORAGEPKG;
Individual DSTU2 resource type storage classes that hold the resource-specific search parameter
definitions and resource-specific indexing logic are located by default under the product
class package HS.FHIR.vDSTU2.Repository.Resource. A custom storage package may be specified,
to be used instead of the default package. To do this, extend this class to a custom class
and override the CUSTOMSTORAGEPKG class parameter.
parameter RESOURCEIDINSEARCHRESULTSET = 0;
By default the ResultSet that is returned by Search leaves the ResourceId column value blank.
To have the ResourceId column unconditionally populated by Search, extend this class and set
this class parameter value to 1. Please note that doing so will incur a performance hit for
all search interactions.
parameter RepositoryUtilityClass = HS.FHIR.Utils;
Class that provides various utility methods needed for repository processing.
The utility class methods that are used by this class are:
ValidateResourceTypeFHIR
ValidateResourceTypeCapability
GetResourceBasicInfo
UpdateResourceId
UpdateResourceMeta
ValidateInteraction
parameter ResourceValidatorClass = HS.FHIR.Validation.ResourceValidator;
Class that provides the FHIR resource validation logic for this storage class.
The ResourceValidatorClass must implement the class method ValidateResource.
The class is intended to handle structural validation of a resource and intra-
resource constraints.
parameter SchematronXSLTDir = FHIR/vDSTU2/Schematron;
parameter TEMPSORTGLOBAL = ^||FHIRSearchSort;
parameter VERSIONKEY = DSTU2;
A key useable for disambiguating version-specific cached data
Methods
deprecated classmethod AddResultToTempSort(pStreamletId As %String, pResourceType As %String, pResourceId As %String, pMode As %String, pSortKeys As %String, pSearchTablePackage As %String, pSortGlobal As %String) as %Status
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
deprecated classmethod Create(pContentType As %String, pResourceSchema As %String, pIfNoneExist As %String = "", pValBySchematron As %Boolean = 0, pTransformer, pSessionIdentifier As %String = "", ByRef pResourceStream, ByRef pResourceObject, Output pStorageId As %String, Output pErrors As HS.Types.FHIR.Errors) as %Status
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
API Create carries out the FHIR storage-specific logic for the create interaction. Reference: http://hl7.org/fhir/DSTU2/http.html#create
Input:
pContentType : (required) May be the ContentType from a FHIR request, or even just "json" or "xml".
pResourceSchema : (required) Class package to use as the schema. Example is "HS.FHIR.vDSTU2.Model.Resource".
pIfNoneExist : FHIR search parameters for conditional create.
pValBySchematron : 1 = Perform schematron-based validation of the FHIR resource,
0 = Do not perform schematron-based validation.
pTransformer : (recommended if pValBySchematron=1) Transformer object to use for performing
XSLT 2.0 evaluation during schematron validation. If this object is not
passed in when it is needed, then this method will create an instance of the
transformer and use that. However doing that on each call of this method
incurs a performance impact.
pSessionIdentifier : Session identifier for session-based use of the FHIR storage.
pResourceStream : FHIR resource stream object. This stream will be updated during the course of
the create interaction, and will be returned to the caller.
pResourceObject : FHIR %XML.Document object or %DynamicObject representation of the FHIR resource.
This object will be updated during the course of the create interaction, and
will be returned to the caller.
Output:
pStorageId : Physical storage object id (%Id(), not Oref) for the stored resource.
pErrors : HS.Types.FHIR.Errors object that includes a collection of error information.
See HS.Types.FHIR.Errors for more details.
API Create carries out the FHIR storage-specific logic for the create interaction. Reference: http://hl7.org/fhir/DSTU2/http.html#create
Input:
Output:
deprecated classmethod Delete(pResourceType As %String, pResourceId As %String = "", pConditionalDelete As %String = "", pParameters As %String = "", pMaxSearchMatches As %Integer = 10, pSessionIdentifier As %String = "", ByRef pResourceIds As %Library.ListOfDataTypes) as %Status
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
API Delete carries out the FHIR storage-specific logic for the delete interaction. Reference: http://hl7.org/fhir/DSTU2/http.html#delete
Input:
pResourceType : (required) FHIR resource type.
pResourceId : (required if not using conditional delete) FHIR resource Id.
pConditionalDelete : Conditional delete support value. Valid values are "not-supported", "single",
"multiple" and blank. Blank value is considered same as "not-supported".
pParameters : Search parameters for conditional delete resource search. May be a Search
parameters string, exactly as would be seen in the URL of a FHIR search
request, or may be an %ArrayOfDataTypes of parameter $List values.
pMaxSearchMatches : Maximum number of resources that may be found by the conditional delete
search parameters. If more than this number are found by the search then
the conditional delete is rejected as an error.
pSessionIdentifier : Session identifier for session-based use of the FHIR storage.
Output:
pResourceIds : %ListOfDataTypes object with each element being the resource id and resource
version id of a resource that got deleted, separated by comma.
API Delete carries out the FHIR storage-specific logic for the delete interaction. Reference: http://hl7.org/fhir/DSTU2/http.html#delete
Input:
Output:
deprecated classmethod DeleteOrphanedResources() as %Status
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
API In this context, "orphaned" means the resource references a non-existent session.
There *should* never be orphaned resources. The deletion of the referenced session should trigger the delete of the resource. Still, this utility is provided in case something goes wrong and orphaned resources are left in the repository.
API In this context, "orphaned" means the resource references a non-existent session.
There *should* never be orphaned resources. The deletion of the referenced session should trigger the delete of the resource. Still, this utility is provided in case something goes wrong and orphaned resources are left in the repository.
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
deprecated classmethod FindMatchingResourceIds(pResourceType As %String, pResourceStreamId As %String, pSession As %String = "") as %String
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
deprecated classmethod GenerateResourceId(pResourceType As %String, pSession As %String = "") as %String
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
deprecated classmethod GetRefTypeIdsFromSearchParam(pParamName As %String, pParamVals, pSearchResourceType As %String, pReferenceResourceType As %String, ByRef pReturnVals As %String) as %Status
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
For the specified search parameter name and value(s), if the search parameter is a reference type parameter, gather search parameter id values that unambiguously apply to the specified resource type. Return an error if the search parameter is invalid. Return an error if the search parameter value specifies a resource type that does not apply to the search parameter.
For the specified search parameter name and value(s), if the search parameter is a reference type parameter, gather search parameter id values that unambiguously apply to the specified resource type. Return an error if the search parameter is invalid. Return an error if the search parameter value specifies a resource type that does not apply to the search parameter.
deprecated classmethod GetSearchParamType(pResourceType As %String, pParamName As %String) as %String
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
Given a resource type and the name of a search parameter, return the type of that parameter (token, string, reference, date, uri, quantity, number, etc.). This will return null if pResourceType is valid but pParamName is not recognized.
Given a resource type and the name of a search parameter, return the type of that parameter (token, string, reference, date, uri, quantity, number, etc.). This will return null if pResourceType is valid but pParamName is not recognized.
deprecated classmethod GetStorageDataByStorageId(pStorageId As %String, ByRef pResourceType As %String, ByRef pResourceId As %String, ByRef pResourceVId As %String, ByRef pVerb, ByRef pFormat As %String, ByRef pDeleted As %Boolean, ByRef pLastModified As %String, ByRef pResourceStream As %Stream.Object, ByRef pResourceSchema As %String) as %Status
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
API GetStorageDataByStorageId provides a "lite" read functionality that abstracts away the structure of the physical storage object (indicated by pStorageId) used by this storage class, and retrieves storage object metadata and, if requested, a stream representation of the resource itself. For implementations that store the resource as a FHIR string or stream, as opposed to as an object, the stream is returned "as is", in the format in which it is stored. For implementations that store the FHIR resource as an object, the pFormat parameter can be used as input to specify the format of the returned stream.
API GetStorageDataByStorageId provides a "lite" read functionality that abstracts away the structure of the physical storage object (indicated by pStorageId) used by this storage class, and retrieves storage object metadata and, if requested, a stream representation of the resource itself. For implementations that store the resource as a FHIR string or stream, as opposed to as an object, the stream is returned "as is", in the format in which it is stored. For implementations that store the FHIR resource as an object, the pFormat parameter can be used as input to specify the format of the returned stream.
deprecated classmethod GetStorageIdByTypeAndId(pResourceType As %String, pResourceId As %String, pResourceVId As %String = "", pSessionIdentifier As %String = "", Output pStorageId As %String)
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
deprecated classmethod GetStorageObjectByStorageId(pStorageId As %String, ByRef pStorageObject, ByRef pStorageClass) as %Status
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
deprecated classmethod History(pResourceType, pResourceId, pSince="", pAt="", pSessionIdentifier As %String = "", Output pResultSet As HS.Util.TransientTable, Output pErrors As HS.Types.FHIR.Errors) as %Status
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
API History carries out the FHIR storage-specific logic for the history interaction.
Reference: http://hl7.org/fhir/DSTU2/http.html#history
This method retrieves all the stored versions of a specified FHIR resource and returns a result set object that includes minimal but vital information about each item.
Input:
pResourceType : (required) FHIR resource type.
pResourceId : (required) FHIR resource id.
pSince : FHIR instant-type value for the history _since parameter. This is for
requesting only the history items that occurred after a specified time.
pAt : (not applicable) STU3-specific history parameter, not applicable to DSTU2.
pSessionIdentifier : Session identifier, used for session-based resource storage.
Output:
pResultSet : HS.Util.TransientTable object for holding the results of
the history search. Columns in pResultSet are:
StorageId = The physical storage object id.
Verb = The HTTP method that produced the history item (e.g., PUT, POST).
Deleted = 1 means the item is the result of a DELETE, 0 means not deleted. pErrors : HS.Types.FHIR.Errors object that includes a collection of error information.
See HS.Types.FHIR.Errors for more details.
API History carries out the FHIR storage-specific logic for the history interaction.
Reference: http://hl7.org/fhir/DSTU2/http.html#history
This method retrieves all the stored versions of a specified FHIR resource and returns a result set object that includes minimal but vital information about each item.
Input:
Output:
StorageId = The physical storage object id.
Verb = The HTTP method that produced the history item (e.g., PUT, POST).
Deleted = 1 means the item is the result of a DELETE, 0 means not deleted.
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
IsSharedResourceType returns a Boolean value indicating whether the specified FHIR resource type includes a reference property that may point to a Patient resource. "Shared" in the context of this function means the resource type may NOT point to a Patient resource.
Input:
pResourceType : (required) FHIR resource type.
IsSharedResourceType returns a Boolean value indicating whether the specified FHIR resource type includes a reference property that may point to a Patient resource. "Shared" in the context of this function means the resource type may NOT point to a Patient resource.
Input:
deprecated classmethod LoadAllSearchParams() as %Status
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
Load the search parameter definitions for all resource types into %HSFHIRSearchParams(). For each resource type, if a custom storage class exists in the class package indicated by CUSTOMSTORAGEPKG, then use that class instead of the one in the standard location.
Load the search parameter definitions for all resource types into %HSFHIRSearchParams(). For each resource type, if a custom storage class exists in the class package indicated by CUSTOMSTORAGEPKG, then use that class instead of the one in the standard location.
deprecated classmethod OnInit() as %Status
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
OnInit carries out any tasks desired to be done upon first use of this storage class. For example upon startup of a business host that is using this class as its FHIR storage class.
OnInit carries out any tasks desired to be done upon first use of this storage class. For example upon startup of a business host that is using this class as its FHIR storage class.
deprecated classmethod Read(pContentType As %String, pResourceSchema As %String, pResourceType As %String, pResourceId As %String, pResourceVId As %String = "", pSummary As %String = "", pSessionIdentifier As %String = "", Output pResourceStream, Output pResourceObject, Output pErrors As HS.Types.FHIR.Errors, Output pStorageId As %String) as %Status
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
API Read carries out the FHIR storage-specific logic for the read and vread interactions. Reference: http://hl7.org/fhir/DSTU2/http.html#read
Reference: http://hl7.org/fhir/DSTU2/http.html#vread
Input:
pContentType : (required) May be the ContentType from a FHIR request, or even just "json" or "xml".
pResourceSchema : (required) Class package to use as the schema. Example is "HS.FHIR.vDSTU2.Model.Resource".
pResourceType : (required) FHIR resource type.
pResourceId : (required) FHIR resource Id.
pResourceVId : FHIR resource version Id.
pSummary : (not yet supported) FHIR summary.
pSessionIdentifier : Session identifier for session-based use of the FHIR respository.
Output:
pResourceStream : FHIR resource stream object.
pResourceObject : FHIR %XML.Document object or %DynamicObject representation of the FHIR resource.
pErrors : HS.Types.FHIR.Errors object that includes a collection of error information.
See HS.Types.FHIR.Errors for more details.
pStorageId : Physical storage object id (%Id(), not Oref) for the stored resource.
API Read carries out the FHIR storage-specific logic for the read and vread interactions. Reference: http://hl7.org/fhir/DSTU2/http.html#read
Reference: http://hl7.org/fhir/DSTU2/http.html#vread
Input:
Output:
deprecated classmethod ReadByStorageId(pContentType As %String, pResourceSchema As %String, pStorageId, pSummary As %String = "", pElements As %String = "", Output pResourceStream, Output pResourceObject, Output pErrors As HS.Types.FHIR.Errors, pDoNotReturnObject As %Boolean = 0) as %Status
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
API ReadByStorageId retrieves the FHIR resource stored at the repository object indicated by pStorageId. This method assumes that the storage id has been obtained by previous means such as FHIR search or history on this repository or by FHIR read cross reference of the input resource type + resource id + session identifier (if any) to storage id. Input:
pContentType : (required) May be the ContentType from a FHIR request, or even just "json" or "xml".
pResourceSchema : (required) Class package to use as the schema. Example is "HS.FHIR.vDSTU2.Model.Resource".
pStorageId : (required) Resource repository storage object id.
pSummary : (not yet supported) FHIR _summary parameter value.
pElements : (not yet supported) FHIR _elements parameter value.
pDoNotReturnObject : 0 = Create a %XML.Document object or %DynamicObject from the resource stream and return
it, 1 = Do not create an object. This parameter helps avoid unnecessary performance
overhead when the calling application has no use for an output object.
Output:
pResourceStream : FHIR resource stream object.
pResourceObject : FHIR %XML.Document object or %DynamicObject representation of the FHIR resource.
pErrors : HS.Types.FHIR.Errors object that includes a collection of error information.
See HS.Types.FHIR.Errors for more details.
API ReadByStorageId retrieves the FHIR resource stored at the repository object indicated by pStorageId. This method assumes that the storage id has been obtained by previous means such as FHIR search or history on this repository or by FHIR read cross reference of the input resource type + resource id + session identifier (if any) to storage id. Input:
Output:
deprecated classmethod Search(pResourceType As %String, pCompartment As %String = "", pResourceId As %String = "", pParameters="", pSessionIdentifier As %String = "", Output pResultSet As HS.Util.TransientTable, Output pErrors As HS.Types.FHIR.Errors, pUnused, pSearchPostProcessorClass As %String = "", pSessionApplication As %String = "", pSessionId As %String = "") as %Status
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
API Search executes a specified search on the resource repository and returns a result set of identifiers of the FHIR resources that qualify for the search.
Input:
pResourceType : (required) FHIR resource type.
pCompartment : Needed only for compartment-based search.
pResourceId : Resource Id for compartment-based search.
pParameters : May be a Search parameters string, exactly as would be seen in the URL of a
FHIR search request, or may be an %ArrayOfDataTypes of parameter $List values.
pSessionIdentifier : Session identifier, used for session-based resource storage.
pSearchPostProcessorClass : When specified, the "PostProcessSearch" method of this class is executed
on the initial ResultSet of the search.
pSessionApplication, pSessionId : Optional inputs, can be used as inputs to the "PostProcessSearch" call.
Output:
pResultSet : HS.Util.TransientTable object for holding the results of
the search. Columns in pResultSet are:
ID = The physical storage object id. Deleted = Initialized as blank for all rows. Provides a means to mark rows for exclusion from the returned Bundle of resources. The search and $everything logic subsequent to the return from PostProcessSearch will ignore result set rows that have the Deleted column set to 1.
ResourceType = Resource type.
ResourceId = Resource id, populated only if ..#RESOURCEIDINSEARCHRESULTSET=1.
Mode = "match" means the resource matched by the search criteria. "include" means the resource is present only because a "match" resource has a reference to it.
RefersTo = Comma-delimited list of storage ids to which the resource has references.
pErrors : HS.Types.FHIR.Errors object that includes a collection of error information.
See HS.Types.FHIR.Errors for more details.
API Search executes a specified search on the resource repository and returns a result set of identifiers of the FHIR resources that qualify for the search.
Input:
Output:
ID = The physical storage object id. Deleted = Initialized as blank for all rows. Provides a means to mark rows for exclusion from the returned Bundle of resources. The search and $everything logic subsequent to the return from PostProcessSearch will ignore result set rows that have the Deleted column set to 1.
ResourceType = Resource type.
ResourceId = Resource id, populated only if ..#RESOURCEIDINSEARCHRESULTSET=1.
Mode = "match" means the resource matched by the search criteria. "include" means the resource is present only because a "match" resource has a reference to it.
RefersTo = Comma-delimited list of storage ids to which the resource has references.
deprecated classmethod SearchInclude(pResourceType As %String, pStorageId As %String, pSessionIdentifier As %String, pValidIncludes As %List, ByRef pAlreadyIncluded As %String, pStorageIds As %List) as %Status
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
deprecated classmethod SearchRelated(pCompartment As %String = "", pResourceId As %String = "", pSessionIdentifier As %String = "", ByRef pResultSet As HS.Util.TransientTable) as %Status
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
deprecated classmethod Update(pContentType As %String, pResourceSchema As %String, pParameters, pIfMatchVersion As %String = "", pUpdateCreate As %Boolean = 1, pValBySchematron As %Boolean = 0, pTransformer, pSessionIdentifier As %String = "", ByRef pResourceStream, ByRef pResourceObject, Output pStorageId As %String, Output pErrors) as %Status
THIS CLASS IS DEPRECATED Use HS.FHIRServer.* instead.
API Update carries out the FHIR storage-specific logic for the update interaction. Reference: http://hl7.org/fhir/DSTU2/http.html#update
Input:
pContentType : (required) May be the ContentType from a FHIR request, or even just "json" or "xml".
pResourceSchema : (required) Class package to use as the schema. Example is "HS.FHIR.vDSTU2.Model.Resource".
pParameters : Search parameters for conditional update resource search. May be a Search
parameters string, exactly as would be seen in the URL of a FHIR search
request, or may be an %ArrayOfDataTypes of parameter $List values.
pIfMatchVersion : Resource version id to match when updating. If pIfMatchVersion has a value,
then the current (pre-update) latest version of the resource must match
pIfMatchVersion.
pUpdateCreate : 1 = Allow update to create a new resource identity (i.e., resource for
previously unused resource Id),
0 = Do not allow update to create a new resource identity.
pValBySchematron : 1 = Perform schematron-based validation of the FHIR resource,
0 = Do not perform schematron-based validation.
pTransformer : (recommended if pValBySchematron=1) Transformer object to use for performing
XSLT 2.0 evaluation during schematron validation. If this object is not
passed in when it is needed, then this method will create an instance of the
transformer and use that. However doing that on each call of this method
incurs a performance impact.
pSessionIdentifier : Session identifier for session-based use of the FHIR storage.
pResourceStream : FHIR resource stream object. This stream will be updated during the course of
the update interaction, and will be returned to the caller.
pResourceObject : FHIR %XML.Document object or %DynamicObject representation of the FHIR resource.
This object will be updated during the course of the update interaction, and
will be returned to the caller.
Output:
pStorageId : Physical storage object id (%Id(), not Oref) for the stored resource.
pErrors : HS.Types.FHIR.Errors object that includes a collection of error information.
See HS.Types.FHIR.Errors for more details.
API Update carries out the FHIR storage-specific logic for the update interaction. Reference: http://hl7.org/fhir/DSTU2/http.html#update
Input:
Output:
Inherited Members
Inherited Methods
- %AddToSaveSet()
- %ClassIsLatestVersion()
- %ClassName()
- %ConstructClone()
- %DispatchClassMethod()
- %DispatchGetModified()
- %DispatchGetProperty()
- %DispatchMethod()
- %DispatchSetModified()
- %DispatchSetMultidimProperty()
- %DispatchSetProperty()
- %Extends()
- %GetParameter()
- %IsA()
- %IsModified()
- %New()
- %NormalizeObject()
- %ObjectModified()
- %OriginalNamespace()
- %PackageName()
- %RemoveFromSaveSet()
- %SerializeObject()
- %SetModified()
- %ValidateObject()