HS.FHIRServer.ServiceUpgrade
abstract class HS.FHIRServer.ServiceUpgrade
Method Inventory
- AddRolesToCSPApp()
- AddRolesToCSPAppsV4()
- CSPAppExists()
- CompleteV3Upgrade()
- FindPropDef()
- FlagBySearchColumnQuery()
- InitializeNamespaceConfig()
- MDSKeyToPackageList()
- ModifyArchitectureSubclasses()
- RebuildCapabilityStatements()
- RecompileRsrcV4()
- ReindexPeriodV6()
- ReindexRsrcBySuper()
- ReindexRsrcV4()
- ReindexSingletonIdentifiersV6()
- ReindexV4()
- ReindexV5()
- UpgradeNamespace()
Parameters
parameter CVGLOBAL = ^HS.FHIRServer("admin", "ConfigVersion");
parameter ConfigVersion = 7;
parameter INSTGLOBAL = ^HS.FHIRServer("admin", "instance");
Methods
classmethod AddRolesToCSPApp(ByRef pLogFile As %File, pCSPApp As %String, pRolesToAdd As %List, pMatchRole As %String = "")
classmethod AddRolesToCSPAppsV4(ByRef pLogFile As %File)
Add %HS_ImpersonateUser to all FHIR endpoint CSP apps in Foundation namespaces,
to allow for changing FHIR request Username and Roles based on access token
contents. ODS does not need to be able to change these items, due to how ODS
processes FHIR requests with access tokens.
classmethod CSPAppExists(pCSPApp, ByRef pAppObj, ByRef pSC) as %Boolean
classmethod CompleteV3Upgrade(ByRef pLogFile As %File, repoMgr As HS.FHIRServer.API.RepoManager, instance As HS.FHIRServer.ServiceInstance, mdsKey As %String)
classmethod FindPropDef(classDef As %Dictionary.ClassDefinition, fieldName As %String)
Upgrade helper method which identifies search columns that meet a specified criteria
and calls the API which flags them to be reindexed. Will search across all active
repositories unless otherwise specified.
@Arguments
pLogFile (optional) Installer log file to write to
pCondition Valid SQL expression to restrict a search on HS_FHIRServer_Storage_Json.SearchColumn
Eg. "Datatype = 'HumanName' or DataType = 'Address"
classmethod InitializeNamespaceConfig()
classmethod ModifyArchitectureSubclasses(pStrategyClass As %String)
For upgrading from version >= 2020.1 and version < 2020.4 of the FHIR Server
Notes from the documentation we are automating as part of upgrade:
Do one of the following in your endpoint’s namespace:
-If the InteractionsStrategy of your endpoint extends HS.FHIRServer.Storage.Json.InteractionsStrategy
create a subclass of HS.FHIRServer.Storage.Json.RepoManager.
-If the InteractionsStrategy of your endpoint subclassed HS.FHIRServer.API.InteractionsStrategy directly,
create a subclass of the HS.FHIRServer.API.RepoManager.
Add the following parameters to your subclass of the Repo Manager:
-StrategyClass — Specifies the subclass of your InteractionsStrategy.
-StrategyKey — Specifies the unique identifier of the InteractionsStrategy. This must match the value of the StrategyKey
parameter in the InteractionsStrategy subclass.
classmethod RebuildCapabilityStatements()
Rebuild the CapabilityStatement for all non-Decomissioned endpoints.
A fail of any rebuild should not fail all of UpgradeNamespace().
classmethod RecompileRsrcV4(ByRef pLogFile As %File)
classmethod ReindexPeriodV6(ByRef pLogFile As %File)
Many index values for Period properties were improperly derived by simply adding a
trailing "Z" on partial values that had been filled out to a timestamp, rather than
applying ConvertToUTC() on the filled out value. The relevant logic in IndexPeriod()
is now corrected. Period properties therefore need to be re-indexed.
classmethod ReindexRsrcBySuper(ByRef pLogFile As %File, pRsrcSuperClass As %String = "", pIndicesList As %List)
[Re]build specified indices in FHIRServer resource table classes that extend the specified resource table super class.
classmethod ReindexRsrcV4(ByRef pBackgroundItem As HS.HC.Util.Installer.Upgrade.BackgroundItem, ByRef pLogFile As %File)
classmethod ReindexSingletonIdentifiersV6(ByRef pLogFile As %File)
Singleton identifiers were improperly projected as a string (rather than "list of string"), even though
we need to store multiple values in each entry. Updating the existing search table property will cause
compatibility problems on search/update for any pre-existing data (IRIS will expect it as a list, but
it was stored as a string). Instead, create a new property where these singleton identifiers can be
expressed as lists. The columns will be marked as needing re-indexing, and that's when the values will
be populated.
classmethod ReindexV4(ByRef pLogFile As %File)
classmethod ReindexV5(ByRef pLogFile As %File)