Skip to main content

HS.FHIRServer.API.RepoManager

abstract class HS.FHIRServer.API.RepoManager extends %Library.RegisteredObject

This is the primary API for managing a repository and its service(s) and endpoint(s)

Property Inventory

Method Inventory

Parameters

parameter IsSingleServiceStrategy = 1;
True if the Repo Strategy is limited to only 1 service per repo
parameter MaxGlobalPrefixLength = 31;
Maximum length for GlobalPrefix definition in generated PackageDefinition classes.
parameter StrategyClass;
parameter StrategyKey;

Properties

property repo as HS.FHIRServer.Repo [ Calculated ];

Methods

method AddService(pMetadataSetKey As %String, pAppKey As %String = "") as HS.FHIRServer.RepoInstance
@API
Adds a new service to this Repo that uses the specified MetadataSet and returns the ID for the new service. The Id may be passed to the CreateStrategy method to obtain a InteractionsStrategy and Interactions objects for the new service.

@Input pMetadataSetKey Comma-separated string listing the FHIR Metadata packages for the RepoInstance.
@Input pAppKey URL of the CSP application serving this FHIR Server RepoInstance.

@Return The RepoInstance of the new service.
classmethod CreateRepo(strategyKey As %String, createDatabases=0, resourcePath As %String = "", versionPath As %String = "") as HS.FHIRServer.Repo
@API Factory method to create a Repo Instance for the specified Strategy.
@Input strategyKey The key for the strategy to be used by the new Repo
@Returns the Id for the new Repo
abstract method CreateService(serviceId As %String, ByRef options)
@API Create the service. This method initializes a service for an endpoint including generating any classes or schemas required and registering the configuration for later modification or deletion
method CreateStrategy(serviceOrKey As %String) as HS.FHIRServer.API.InteractionsStrategy
@API Factory method to create an instance of an HS.FHIRServer.API.InteractionsStrategy for a specified ServiceInstance
@Input serviceOrKey The Service Key or Service instance for the InteractionsStrategy to manage
@Throws: APIContractViolation if the serviceOrKey does not resolve to a service for this Repo.
abstract method DecommissionService(serviceId As %String, ByRef options)
@API Decommission the service. This method detaches a service from any REST endpoints, making it inaccessiable for client operations. The Service may remove all of its data, or it may preserves data to support retention policies. A decommissioned service cannot be deleted until all data in the service have been deleted (via retention policies).
abstract method DeleteService(serviceId As %String, ByRef options)
@API Delete the service. This method removes a service. This includes and FHIR data and associated schema classes as well as registration data. A decommissioned service cannot be removed.
abstract method GetGlobalRoot(serviceId As %String) as %String
@API Returns a $Name for a Global Root node that can be used by the specified service instance
abstract method GetGlobalTempRoot(serviceId As %String) as %String
@API Returns a $Name for a Temporary Global Root node that can be used by the specified service instance
abstract method GetIndexType(resourceType As %String, paramCode As %String) as %Integer
@API Returns the index type for the specified resource type and parameter code
classmethod GetQuantityStorageGlobalPrefix(pRepo As HS.FHIRServer.Repo, pResourceType As %String)
@API Formulate and return a GlobalPrefix value to use for the StorageDefinition globals for the quantity index storage class for the specified resource type in the specified HS.FHIRServer.Repo.
abstract method GetResourceClassName(serviceId As %String, pResourceType As %String) as %String
@API Returns the classname of the persistent object used store resources for the specified type
abstract method GetResourceTableName(serviceId As %String, pResourceType As %String, shortName As %Boolean = 0) as %String
@API Returns the table name that stores resources for the specified type
abstract method GetResourceVersionClassName(serviceId As %String, pResourceType As %String) as %String
@API Returns the classname of the persistent object used store older resource versions for the specified type
abstract method GetResourceVersionTableName(serviceId As %String, pResourceType As %String, shortName As %Boolean = 0) as %String
@API Returns the SQL Table name for older resource versions for the specified type
abstract method GetSearchClassName(serviceId As %String, pResourceType As %String) as %String
@API Returns the classname of the persistent object used to index the specified type. Note, it may be the same as the ResourceClass
abstract method GetSearchColumnName(serviceId As %String, pResourceType As %String, paramCode As %String) as %String
@API Returns the classname of the persistent object used to index the specified type. Note, it may be the same as the ResourceClass
abstract method GetSearchTableName(serviceId As %String, pResourceType As %String, pChildName As %String, shortName As %Boolean = 0) as %String
@API Returns the table name used to index the specified type. Note, it may be the same as the ResourceTable
classmethod GetStorageGlobalPrefix(pRepo As HS.FHIRServer.Repo, pTableType As %String) as %String
@API Formulate and return a GlobalPrefix value to use for the StorageDefinition globals for the specified HS.FHIRServer.Repo table class type.
classmethod GetStrategyList(Output pListOfClasses)
@API Return a multi-dimensional array of information nodes, using the StrategyKey as the key. indexed by StrategyKey. Output: pListOfClasses(n): the name of the n-th available InteractionsStrategy class pListOfClasses(n, "repoManager"): the name of the n-th available RepoManager class pListOfClasses(n, "desc"): the description of the n-th available strategy
classmethod MakeStoragePackageDefinition(pPackageName As %String, pGlobalPrefix As %String, ByRef pUpdated As %Boolean)
@API Create and Save a PackageDefinition class for the specified storage class package name. Set the GlobalPrefix property to the specified value. If the class already exists, or there are already classes within the specified package, then the PackageDefinition is not created or updated, and is not considered an error. This method Throws upon actual error.
@Input pPackageName Class package name.
@Input pGlobalPrefix Global prefix value for PackageDefinition.
@Output pUpdated Create/update status: 1 = Created PackageDefinition, -1 = Exists, not updated, -2 Did not exist, not created.
abstract method UpdateService(serviceId As %String, ByRef options)
@API Update the schema. This method applies changes to an already configured schema (if possible) For example, to add a search parameter including ensuring that the new field is indexed. Handle changes to the schema structure
classmethod getInstance(repoOrId) as HS.FHIRServer.API.RepoManager
@API Factory method to return a instance of a RepoManager. The input parameter, repoOrId, may be the ID value of a Repo, or an instantiated HS.FHIRServer.Repo object.
method repoGet() as HS.FHIRServer.Repo

Inherited Members

Inherited Methods

Subclasses

FeedbackOpens in a new tab