Skip to main content

HS.FHIRServer.API.InteractionsStrategy

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

Property Inventory

Method Inventory

Parameters

parameter StrategyDesc;
parameter StrategyKey;

Properties

property InstanceKey as %String [ Calculated ];
Property methods: InstanceKeyDisplayToLogical(), InstanceKeyIsValid(), InstanceKeyLogicalToDisplay(), InstanceKeyLogicalToOdbc(), InstanceKeyNormalize()
property RepoInstance as HS.FHIRServer.RepoInstance [ Calculated ];
property RepoManager as HS.FHIRServer.API.RepoManager [ Calculated ];
property schema as HS.FHIRServer.Schema [ Calculated ];

Methods

method Create(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 Decommission(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).
method Delete(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.
final method GetDefaultStrategyConfig() as %DynamicObject
@API Returns a default strategy configuration.
classmethod GetEndpointInfo(pStrategyKey As %String = "") as %String
@API Returns a list of information for endpoints in this Namespace, optionally filtered by strategyKey Each entry in the list is a $List( appKey, strategyKey, metadataSetKey, enabled, instanceKey )
deprecated classmethod GetEndpointURL(pStrategyKey As %String, pMetadataSetKey As %String) as %String
@API Get the endpoint URLs for a specific strategy/metadata combination
method GetGlobalRoot() as %String
@API Returns the name of a Global node that is the root of any global-based data for this instance
method GetGlobalTempRoot() as %String
@API Returns the name of a Global node that is the root of any temporary global-based data for this instance
abstract method GetMetadataResource() as %DynamicObject
@API
Return a CapabilityStatement metadata resource. The returned content is derived from a strategy-specific means of formulating a CapabilityStatement. An example use of the output might be to store the CapabilityStatement for a given Service.
This method should not be confused with the Interactions class LoadMetadata() method, which retrieves the stored CapabilityStatement for the current Service.
classmethod GetOneEndpointInfo(pUrl As %String) as %List
@API Returns a list of information for an endpoint in this Namespace The list is a $List( strategyKey, metadataSetKey, enabled )
method GetResourceClass(resourceType As %String) as %String
@API Returns the classname of the persistent object used store resources for the specified type
method GetResourceClassesPackage() as %String
@API Returns a package name reserved for generated resource classes in this instance
method GetResourceTable(resourceType As %String, shortName As %Boolean = 0) as %String
@API Returns the table name that stores resources for the specified type
method GetResourceVersionClass(resourceType As %String) as %String
@API Returns the classname of the persistent object used store older resource versions for the specified type
method GetResourceVersionTable(resourceType As %String = "", shortName As %Boolean = 0) as %String
@API Returns the SQL Table name for older resource versions for the specified type
method GetSearchClass(resourceType 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
method GetSearchClassesPackage() as %String
@API Returns a package name reserved for generated search classes in this instance
method GetSearchTable(resourceType 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
method GetServiceConfigData() as HS.FHIRServer.API.ConfigData
Returns the FHIRService ConfigData object for this endpoint
classmethod GetServiceConfigDataForEndpoint(pUrl As %String) as HS.FHIRServer.API.ConfigData
classmethod GetStrategyConfigInfo() as %DynamicObject
@API.Overrideable Returns a JSON object which defines InteractionsStrategy specific settings. This object allows settings to be modified through the FHIR configuration UI, and will also be used to set default values when a new endpoint is created. Note that additional properties can be saved in an endpoint's strategy configuration, but only settings defined here will appear in the UI and will be given a default value. The object must match the following interface: { prop_name: { # Name of the setting type: "string" | "number" | "boolean", # Datatype of the setting. Must be one of these supported JSON types default: string | number | boolean, # Default value for the property. All endpoints will use this value until changed display_name: string # (optional) Label text used to identify the setting in the config UI description: string # (optional) Description of the property. Will appear as a tooltip in the config UI valueset: array # (optional) Indicates to use a drop-down menu and what options to display. Only applies to number and string 'type'. }, ... } eg. { "read_write": { "type": "boolean", "default": true, "display_name": "Allow write access", "description": "If checked, this endpoint will support POSTing and PUTing resources. Otherwise, it will be read-only" }, "consent_processor": { "type": "string", "default": "MyCustom.ConsentProcessor" "display_name": "Consent processor class", "valueset": ["MyCustom.ConsentProcessor", "Default.ConsentProcessor"] } }
classmethod GetStrategyForEndpoint(pBaseUrl As %String) as HS.FHIRServer.API.InteractionsStrategy
@API Returns an instance of an InteractionsStrategy that manages the specified endpoint base URL.
classmethod GetStrategyList(Output pListOfClasses)
@Deprecated
Change your code to call ##class(HS.FHIRServer.API.RepoManager).GetStrategyList instead. This method is just a passthrough and will be removed in the future.
method InstanceKeyGet() as %String
deprecated abstract method MigrateFromPre2020(ByRef options)
@API This method migrates existing FHIR data from a previous installation of FHIR from pre-HealthConnect 2020.1
abstract method NewInteractionsInstance() as HS.FHIRServer.API.Interactions
@API Creates an instance of the Interactions handler object
method OnBeforeSaveStrategyConfigData(configData As %DynamicObject)
@API.Overrideable If modifications to the strategy configuration has side effects, those should be implemented by overriding this method.
method RepoGet() as HS.FHIRServer.Repo
method RepoInstanceGet() as HS.FHIRServer.ServiceInstance
method RepoManagerGet()
method SaveServiceConfigData(configData As HS.FHIRServer.API.ConfigData)
Update the FHIRService ConfigData object for this endpoint
classmethod SetEnabled(pAppKey As %String, enabled As %Boolean)
method Update(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(serviceOrKey As %String, repoManager As HS.FHIRServer.API.RepoManager = "") as HS.FHIRServer.API.InteractionsStrategy
@API Factory method to create an instance of the InteractionsStrategy class associated with the specified service.
@Input serviceOrKey The Service Key or Service instance for the InteractionsStrategy to manage
@Input repoManager (optional) If present, this RepoManager instance will be assigned as the RepoManager property of the returned strategy. If not present, a new RepoManger will be created.
@Return An instance of an InteractionsStrategy object to manage the service
@Throws: APIContractViolation if the serviceOrKey does not resolve to a service in the Repo managed by the specified 'repoManager'
method schemaGet()

Inherited Members

Inherited Methods

Subclasses

FeedbackOpens in a new tab