HealthShare Health Connect 2021.1Opens in a new window > Class Reference > HSLIB namespace > HS.Util.Installer.ConfigItem


persistent class HS.Util.Installer.ConfigItem extends %Library.Persistent, %XML.Adaptor, HS.Util.DataModel.Adaptor, HS.Util.Installer.AbstractConfigItemType

SQL Table Name: HS_Util_Installer.ConfigItem

A HealthShare configuration item

Property Inventory (Including Private)

Method Inventory (Including Private)


Used in components to define the code database name where to locate sample templates
parameter ClassMappingList = HS,Test;
parameter DOMAIN = HS;
Use the "HS" domain for localization.
parameter RESOURCE;
Inherited description: If specified, this RESOURCE:PERMISSION is checked before any operation on this class via Zen MVC. (Create, Read, Update, or Delete.)
Where to locate the sample template definitions, ie Hub HS.Sample.Production.Hub (to get all items under that package)
parameter TYPE;
Type is set in the sub-classes, and used here as default for the Type property
parameter UITIER = 10;
Parameter that controls the relative importance of this component type in the HealthShare Home UI for selecting namespaces. Lower values indicate components that should appear earlier in the UI. The value is used as the default return value for the GetConfigTypeUITier()() helper method.
Inherited description: The XMLIGNOREINVALIDTAG parameter allows the programmer to control handling of unexpected elements in the XML input. The XMLIGNOREINVALIDTAG parameter will only take affect if XMLSEQUENCE = 0 (the default). By default (XMLIGNOREINVALIDTAG = 0), will treat an unexpected element as an error. If XMLIGNOREINVALIDTAG is set = 1 and XMLSEQUENCE = 0, then unexpected elements will be ignored.
parameter XMLIGNORENULL = inputonly;
Inherited description: XMLIGNORENULL allows the programmer to override the default XML handling of empty strings for properties of type %String. By default (XMLIGNORENULL = 0), empty strings in the XML input are stored as $c(0) and $c(0) is written to XML as an empty tag. A missing tag in the XML input is always stored as "" and "" is always output to XML as no tag.

If XMLIGNORENULL is set = 1, then both missing tags in the XML and empty strings are input as "", and both "" and $c(0) are output as empty tags (i.e. <tag></tag>).

If XMLIGNORENULL is set = "inputonly", then both missing tags in the XML and empty strings are input as "". Output of "" and $c(0) are for XMLIGNORENULL = 0: $c(0) is output as an empty tag (i.e. <tag></tag>) and "" is output as no tag.

If XMLIGNORENULL = "runtime" (runtime is not case sensitive), then the behavior of XMLIGNORENULL is determined by the format parameter of XMLExport, XMLImport and %XML.Reader.OpenFile. The default behavior for XMLIGNORENULL="runtime is the same as XMLIGNORENULL=0. Adding "ignorenull" to the format argument changes the behavior to that of XMLIGNORENULL=1. "ignorenull" shoud be separated by a comma from literal/encoded part of the format. Example values for format are "", ",ignorenull", "literal,ignorenull" and "encoded,ignorenull". Note that "inputonly" is equivalent to using ,ignorenull for XMLExport and not for %XML.Reader.

Properties (Including Private)

property %HSLIB as %String [ InitialExpression = "HSLIB" , Required ];
Property methods: %HSLIBDisplayToLogical(), %HSLIBGet(), %HSLIBGetStored(), %HSLIBIsValid(), %HSLIBLogicalToDisplay(), %HSLIBLogicalToOdbc(), %HSLIBNormalize(), %HSLIBSet()
property Activated as %Boolean [ InitialExpression = 0 ];
Activated status
Property methods: ActivatedDisplayToLogical(), ActivatedGet(), ActivatedGetStored(), ActivatedIsValid(), ActivatedLogicalToDisplay(), ActivatedLogicalToXSD(), ActivatedNormalize(), ActivatedSet(), ActivatedXSDToLogical()
property AuditProduction as %Boolean;
One production in the federation, either the registry (default) or an edge, is designated as the controller for the audit database. The audit consolidation service runs there for alerts, and external ATNA inbound and outbound services and operations run there.
Property methods: AuditProductionDisplayToLogical(), AuditProductionGet(), AuditProductionGetStored(), AuditProductionIsValid(), AuditProductionLogicalToDisplay(), AuditProductionLogicalToXSD(), AuditProductionNormalize(), AuditProductionSet(), AuditProductionXSDToLogical()
property CreatedAt as %TimeStamp [ InitialExpression = $ZDT($H,3) , Required ];
Time this config item was created
Property methods: CreatedAtDisplayToLogical(), CreatedAtGet(), CreatedAtGetStored(), CreatedAtIsValid(), CreatedAtLogicalToDisplay(), CreatedAtLogicalToXSD(), CreatedAtNormalize(), CreatedAtOdbcToLogical(), CreatedAtSet(), CreatedAtXSDToLogical()
property DatabaseLocation as %String);
When not set, the database will be placed in the manager directory
Property methods: DatabaseLocationDisplayToLogical(), DatabaseLocationGet(), DatabaseLocationGetStored(), DatabaseLocationIsValid(), DatabaseLocationLogicalToDisplay(), DatabaseLocationLogicalToOdbc(), DatabaseLocationNormalize(), DatabaseLocationSet()
property Description as %Text.Text;
Description of this item
Property methods: DescriptionAddDocToDictionary(), DescriptionAddToDictionary(), DescriptionAddToThesaurus(), DescriptionBuildValueArray(), DescriptionChooseSearchKey(), DescriptionClassify(), DescriptionCreateQList(), DescriptionDecompressOffsets(), DescriptionDisplayToLogical(), DescriptionDropDictionary(), DescriptionEndOfWord(), DescriptionExcludeCommonTerms(), DescriptionGet(), DescriptionGetStored(), DescriptionIsValid(), DescriptionLoadThesaurus(), DescriptionLogicalToDisplay(), DescriptionLogicalToOdbc(), DescriptionMakeSearchTerms(), DescriptionNormalize(), DescriptionRemoveDocFromDictionary(), DescriptionRemoveFromThesaurus(), DescriptionSeparateWords(), DescriptionSet(), DescriptionSimilarity(), DescriptionSimilarityIdx(), DescriptionStandardize(), DescriptionTranslate(), Descriptionends(), Descriptionsetto(), DescriptionstemWord()
property Disabled as %Boolean [ InitialExpression = 0 ];
Disabled flag
Property methods: DisabledDisplayToLogical(), DisabledGet(), DisabledGetStored(), DisabledIsValid(), DisabledLogicalToDisplay(), DisabledLogicalToXSD(), DisabledNormalize(), DisabledSet(), DisabledXSDToLogical()
property HSComponentName as %String (MAXLEN = 320);
HealthShare network wide unique name
The HSComponentName should be no longer than 320 characters (255 for Max FQDN, 64 for Max namespace length, plus 1 for colon)
Property methods: HSComponentNameDisplayToLogical(), HSComponentNameGet(), HSComponentNameGetStored(), HSComponentNameIsValid(), HSComponentNameLogicalToDisplay(), HSComponentNameLogicalToOdbc(), HSComponentNameNormalize(), HSComponentNameSet()
property LastActivated as %TimeStamp;
Time this config item was last Activated (if at all)
Property methods: LastActivatedDisplayToLogical(), LastActivatedGet(), LastActivatedGetStored(), LastActivatedIsValid(), LastActivatedLogicalToDisplay(), LastActivatedLogicalToXSD(), LastActivatedNormalize(), LastActivatedOdbcToLogical(), LastActivatedSet(), LastActivatedXSDToLogical()
property Name as HS.Types.ComponentName [ Required ];
Item name (also the namespace name)
Property methods: NameDisplayToLogical(), NameGet(), NameGetStored(), NameIdxCheck(), NameIdxDelete(), NameIdxExists(), NameIdxOpen(), NameIdxSQLCheckUnique(), NameIdxSQLExists(), NameIdxSQLFindPKeyByConstraint(), NameIdxSQLFindRowIDByConstraint(), NameIsValid(), NameLogicalToDisplay(), NameLogicalToOdbc(), NameNormalize(), NameSet()
property Production as %String (MAXLEN = 128);
Production name
Property methods: ProductionDisplayToLogical(), ProductionGet(), ProductionGetStored(), ProductionIsValid(), ProductionLogicalToDisplay(), ProductionLogicalToOdbc(), ProductionNormalize(), ProductionSet()
property Products as list of %String;
Property methods: ProductsBuildValueArray(), ProductsCollectionToDisplay(), ProductsCollectionToOdbc(), ProductsDisplayToCollection(), ProductsDisplayToLogical(), ProductsGet(), ProductsGetObject(), ProductsGetObjectId(), ProductsGetStored(), ProductsGetSwizzled(), ProductsIsValid(), ProductsLogicalToDisplay(), ProductsLogicalToOdbc(), ProductsNormalize(), ProductsOdbcToCollection(), ProductsSet(), ProductsSetObject(), ProductsSetObjectId()
property Template as %String (MAXLEN = 128);
Production template
Property methods: TemplateDisplayToLogical(), TemplateGet(), TemplateGetStored(), TemplateIsValid(), TemplateLogicalToDisplay(), TemplateLogicalToOdbc(), TemplateNormalize(), TemplateSet()
property Type as %String (DISPLAYLIST = ",Hub,Edge Gateway,Access Gateway,Flash Gateway,Bus,Foundation", MAXLEN = 12, VALUELIST = ",Hub,EdgeGateway,AccessGateway,FlashGateway,Bus,Foundation") [ InitialExpression = ..#TYPE , Required ];
Property methods: TypeDisplayToLogical(), TypeGet(), TypeGetStored(), TypeIsValid(), TypeLogicalToDisplay(), TypeLogicalToOdbc(), TypeNormalize(), TypeSet()

Methods (Including Private)

classmethod AddDeferredAction(pNamespace As %String, actionName As %String, value As %List) [ Language = objectscript ]
Saves Marker handled by OnProductionStart handler to perform actions that require a running Production
classmethod AuditRegistryServiceExists() as %Boolean [ Language = objectscript ]
classmethod BuildDBNS(pNamespace, ByRef pVars, ByRef pLogFile, pDoMirror As %Boolean = 1) as %Status [ Language = objectscript ]
classmethod BuildPortalApp(pNamespace, ByRef pLogFile, pAddRoles As %String = "") as %Status [ Language = objectscript ]
Build CSP application
classmethod CSPPath(pNamespace) as %String [ Language = objectscript ]
classmethod CSPRolesForCoreNamespace(pNamespace As %String, pIncludeIRISSYS As %Boolean = 0) as %String [ Language = objectscript ]
classmethod CheckPrivileges(ByRef pLogFile) as %Status [ Language = objectscript ]
classmethod ClearAuditLog() [ Language = objectscript ]
classmethod ClearDeferredActions(pNamespace) [ Language = objectscript ]
classmethod ClearFHIRDbs(pDBList As %List, pLogFile, pPurge) as %Status [ Language = objectscript ]
classmethod ClearSystemAPI() [ Language = objectscript ]
classmethod CopyFilesFromInstallDirToDataDir(pSourceRelativePath As %String, pTargetRelativePath As %String) as %String [ Language = objectscript ]
Copy files from provided source path (relative to the installation directory) to provided target target path (relative to data directory).
Files are overlaid.
IS NOT MIRROR AWARE. This is intentional. This method is intended for use during an operation that happens on both members of a mirror (such as production start).
@Argument pSourceRelativePath Source path (should be relative. Not absolute).
@Argument pTargetRelativePath Target path (should be relative. Not absolute).
classmethod CreateCSPRoles(pNames) as %Status [ Language = objectscript ]
classmethod CreateHSAUDIT() as %Status [ Language = objectscript ]
classmethod CreateNavigationApp() [ Language = objectscript ]
classmethod DeleteHSAUDIT() as %Status [ Language = objectscript ]
classmethod ExistsNS(pNamespace) as %Boolean [ Language = objectscript ]
classmethod FormattedCSPRolesForCoreNamespace(pNamespace, pIncludeIRISSYS As %Boolean = 0) as %String [ Language = objectscript ]
Returns a set of roles output by CSPRolesForCoreNamespace(), but formatted such that they can be used in the MatchRoles property of Security.Applications:Create() The output is in the format :role1:role2:role3
@Argument pNamespace The namespace where the roles will be used.
classmethod GatewayDisableRequest(pNamespace) as %Status [ Language = objectscript ]
classmethod GetComponentByName(pName As %String, ByRef pComponent As HS.Util.Installer.ConfigItem, pCreate As %Boolean = 0, pType As %String = "", pHSLIB As %String = "HSLIB", ByRef pSettings) as %Status [ Language = objectscript ]
Open the configuration object pComponent with name pName If it does not exist (an pCreate is set) then create an object of the specified type, using any Settings provided and some (but not all) defaults pHSLIB argument is not used - it's an ancient leftover
classmethod GetDBDirs(pDBList As %List, ByRef pArr) [ Language = objectscript ]
classmethod GetDBResourceName(pNamespace As %String = "", ByRef tSC=$$$OK) as %String [ Language = objectscript ]
classmethod GetDefaultCSPCustomLoginPage() as %String [ Language = objectscript ]
Helper method to return the default CSP Custom Login page that should be added to user-facing CSP applications for this ConfigItem type.
classmethod GetDefaultCSPCustomLoginPageForNamespace(pNamespace As %String) as %String [ Language = objectscript ]
Helper method to return the default CSP Custom Login page for a given namespace.
classmethod GetDefaultCSPSessionEventsClass() as %String [ Language = objectscript ]
Helper method to return the default CSP SessionEvents class that should be added to user-facing CSP applications for this ConfigItem type.
classmethod GetDefaultCSPSessionEventsClassForNamespace(pNamespace As %String) as %String [ Language = objectscript ]
Helper method to return the default CSP SessionEvents class for a given namespace.
classmethod GetDeferredAction(pNamespace As %String, actionName As %String) as %List [ Language = objectscript ]
method GetPackageName() as %String [ Language = objectscript ]
method GetProductionName() as %String [ Language = objectscript ]
classmethod GetPropertyValue(pID="", pPropertyName As %String = "", Output pSC As %Status) as %String [ Language = objectscript ]
The GetStored method of properties in persistent classes is designed (and documented) to return an error if the referenced object instance does not exist. This method works around that by returning "" in that case.
classmethod GetSampleTemplates(Output pSampleProductions) as %Status [ Language = objectscript ]
classmethod GetThisComponentName() as %String [ Language = objectscript ]
This can be called from a running production to get the component name. By Default, the component name is the same as the namespace. In 2008.1, this was only sort-of findable, on edge gateways, as a setting on HS.Gateway.HSWS.WebServices Starting with 2008.2, there's a setting on the sample productions where this will really live.
classmethod GetUIMenuClass(pInternalProductName As %String) as %Dictionary.Classname [ Language = objectscript ]
Helper method to allow sub-classes to specify an alternative class to drive the population of the UI menus for this namespace type. The menu class should extend HS.HC.Util.AbstractUIMenuClass and SHOULD implement the addMenu() method.
classmethod GetUpgradeClassPrefix(pInternalProductName As %String) as %String [ Language = objectscript ]
Helper method to identify the prefix that should be used to locate the upgrade classes for the specified product. Note that the classes must extend HS.Util.Installer.Upgrade.Abstract, and have numeric trailing values that match major version releases.
classmethod HasDeferredActions(pNamespace As %String) [ Language = objectscript ]
classmethod InitializeComponent(ByRef pVars, ByRef pLogFile, pNamespace, ByRef pComponent, pDefaultTemplate) as %Status [ Language = objectscript ]
classmethod InitializeInstall(ByRef pVars, ByRef pLogFile, ByRef pNamespace, ByRef pIsUpgrade, ByRef pInitialState) as %Status [ Language = objectscript ]
abstract classmethod Install(pNamespace As %String, ByRef pVars) as %Status [ Language = objectscript ]
Install the configuration item in the specified namespace. pVars allows you to override/change configuration parameters, which will be updated in the HS.Util.Installer.ConfigItem database. The allowed subscripts in pVars will vary across the different subclasses of HS.Util.Installer.ConfigItem, and the method should be overridden and re-documented in each subclass.
classmethod InstallKits(pVars, pNamespace, pIsUpgrade) as %Status [ Language = objectscript ]
classmethod MapAllAuditDB() as %Status [ Language = objectscript ]
Called for install of hub or edge, where that has been specified as the audit production
classmethod MapAuditDB(pNamespace, pAuditDB) as %Status [ Language = objectscript ]
method MarkActivated(pValue As %Boolean = 1) as %Status [ Language = objectscript ]
Mark this config item as being activated Also saves any changed values
classmethod MirrorCheck(pNS) as %Boolean [ Language = objectscript ]
classmethod OnPreUnInstall(pNamespace As %String, pPurgeFiles As %Boolean = 0, pLogFile) as %Status [ Language = objectscript ]
classmethod OnUnInstall(pNamespace As %String, pPurgeFiles As %Boolean = 0, pLogFile) as %Status [ Language = objectscript ]
Can be implemented on subclasses that aren't overriding UnInstall
classmethod ScheduleSystemTasks(pNamespace, ByRef pLogFile) as %Status [ Language = objectscript ]
private classmethod SecureInitializeInstall(ByRef pVars, ByRef pLogFile, ByRef pNamespace, ByRef pIsUpgrade, ByRef pInitialState) as %Status [ Language = objectscript ]
classmethod SetThisComponentName(pHSName As %String) as %Status [ Language = objectscript ]
classmethod SettingsFilePath(tDirPath) [ Language = objectscript ]
Input a file directory path that is relative to the installation directory This outputs a path that we can use as an Ensemble setting, relative to the default process directory, assuming the default process' database directory is directly under (installdir)\mgr This allows an installdemo to be mirrored on the same laptop In production, the setting would always be changed to point to somewhere else, and if a mirror, it would need to be the same physical directory on both sides
classmethod SetupSampleDeepSee(pNamespace As %String) as %Status [ Language = objectscript ]
This can now be run in either the registry or an edge on a different instance
classmethod UnInstall(pNamespace As %String, pPurgeFiles As %Boolean = 0, pDeleteCSPApps As %Boolean = 1) as %Status [ Language = objectscript ]
Most callers will pass 1 to purgefiles This will attempt to clean up as much as possible, even if things are partially deleted
classmethod UnInstallCleanup() as %Status [ Language = objectscript ]
On UnInstall, cleanup HSSYS if no other HS namespaces exist
classmethod UnInstallP(pNamespace As %String) as %Status [ Language = objectscript ]
New wrapper for Uninstall - does purge. Subsequent reinstall will fail if IRIS.DAT is still present
classmethod UnMapAllAuditDB(pForce As %Boolean = 0) as %Status [ Language = objectscript ]
Called for uninstall of hub or edge Also called by UnInstallAll, with pForce (and it ignores errors)
classmethod UnMapAuditDB(pNamespace, pAuditDB) as %Status [ Language = objectscript ]
classmethod UpdateClassMappings(pNamespace, pHSLIB, pOldList="", pNewList="") [ Language = objectscript ]
classmethod ValidateName(pNamespace, ByRef pDatabase, ByRef pProduction) as %String [ Language = objectscript ]
classmethod WebAppExists(pWebAppName As %String) as %Boolean [ Language = objectscript ]
Returns 1 if a web application with the give name exists.


query Configuration()
SQL Query:
SELECT %ID,Name,Type,CreatedAt,Description,Production,Activated,LastActivated,Disabled FROM ConfigItem ORDER BY Type, Name
Enumerate all configuration items


index (NameIdx on Name) [IdKey, Type = key, Unique];
Name index to ensure uniqueness
Index methods: NameIdxCheck(), NameIdxDelete(), NameIdxExists(), NameIdxOpen(), NameIdxSQLCheckUnique(), NameIdxSQLExists(), NameIdxSQLFindPKeyByConstraint(), NameIdxSQLFindRowIDByConstraint()

Inherited Members

Inherited Properties (Including Private)

Inherited Methods (Including Private)


Storage Model: Storage (HS.Util.Installer.ConfigItem)


Storage Model: Storage (HS.Util.Installer.ConfigItem)


Storage Model: Storage (HS.Util.Installer.ConfigItem)



FeedbackOpens in a new window