Skip to main content


persistent class HS.Push.MessageCenter.Folder extends %Library.Persistent, HS.Util.DataModel.Adaptor, %XML.Adaptor

SQL Table Name: HS_Push_MessageCenter.Folder

Property Inventory

Method Inventory


parameter DOMAIN = HS;
Domain used for localization.
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.


property FolderName as %String [ Required ];
Property methods: FolderNameDisplayToLogical(), FolderNameGet(), FolderNameGetStored(), FolderNameIsValid(), FolderNameLogicalToDisplay(), FolderNameLogicalToOdbc(), FolderNameNormalize(), FolderNameSet()
property FolderType as %String (VALUELIST = ",Inbox,Deleted,Drafts,Sent,Custom") [ Required ];
Property methods: FolderTypeDisplayToLogical(), FolderTypeGet(), FolderTypeGetStored(), FolderTypeIsValid(), FolderTypeLogicalToDisplay(), FolderTypeLogicalToOdbc(), FolderTypeNormalize(), FolderTypeSet()
property OrderGroup as %Integer;
Property methods: OrderGroupDisplayToLogical(), OrderGroupGet(), OrderGroupGetStored(), OrderGroupIsValid(), OrderGroupLogicalToDisplay(), OrderGroupNormalize(), OrderGroupSet(), OrderGroupXSDToLogical()
relationship OwnerUser as HS.Registry.Person.User [ Inverse = Folders , Cardinality = one ];
Property methods: OwnerUserGet(), OwnerUserGetObject(), OwnerUserGetObjectId(), OwnerUserGetStored(), OwnerUserGetSwizzled(), OwnerUserIsValid(), OwnerUserNewObject(), OwnerUserOnDelete(), OwnerUserRClose(), OwnerUserRExec(), OwnerUserRFetch(), OwnerUserRelate(), OwnerUserSQLCompute(), OwnerUserSet(), OwnerUserSetObject(), OwnerUserSetObjectId(), OwnerUserUnRelate(), OwnerUserUnSwizzle()
property SystemFolder as %Boolean;
Property methods: SystemFolderDisplayToLogical(), SystemFolderGet(), SystemFolderGetStored(), SystemFolderIsValid(), SystemFolderLogicalToDisplay(), SystemFolderLogicalToXSD(), SystemFolderNormalize(), SystemFolderSet(), SystemFolderXSDToLogical()


classmethod AddFolder(pType, pClinicianId, pName, pSystem, pOrderGroup) as %Status
classmethod CreateCustomFolder(pClinicianId As %String, pName As %String = "", Output pId) as %Status
classmethod DeleteCustomFolder(pClinicianId, pFolderId) as %Status
classmethod GetSysFolder(pClinicianId, pType, Output pFolderId) as %Status
get the ID for a system folder of type pType for a clinician
classmethod ListFoldersWebClose(ByRef qHandle As %Binary) as %Status
classmethod ListFoldersWebExecute(ByRef qHandle As %Binary, pClinicianId As %String = "", pSysFoldersOnly=0, pHideVirtualFolders=0) as %Status
classmethod ListFoldersWebFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) as %Status
classmethod OnCheckPermission(Output pHandled As %Boolean = 0, pOperation As %String, pID As %Integer, pObject As HS.Push.MessageCenter.Folder) as %Status
Checks permissions (parameter-based) on a particular operation + object.
If pHandled is set to true, CheckPermission() will be bypassed.
pOperation is "C" (create), "R" (read), "U" (update), or "D" (delete)
pID is the ID of the object being operated on (empty for new objects)
pObject is the object being operated on (for create/read/update; empty for delete)
Returns $$$ERROR($$$AccessDenied) if the user does not have the requisite permission.
classmethod RenameCustomFolder(pFolderId, pNewName) as %Status
classmethod SysFolders(pClinicianId) as %Status
This will check if the system folders exist for a clinician, and if not, create them


query ListFolders(pClinician As %String)
SQL Query:
SELECT %ID,FolderName,FolderType,SystemFolder, OrderGroup FROM Folder Where OwnerUser = :pClinician ORDER BY OrderGroup, FolderName
Prior to calling this, something should have first called SysFolders to create the system folders for this clinician the GetClinicianFromRequest method on the clinician registry already does this
query ListFoldersWeb(pClinicianId As %String = "", pSysFoldersOnly=0, pHideVirtualFolders=0)
Selects ID As %String, FolderName As %String, FolderType As %String, SystemFolder As %Boolean, OrderGroup As %Integer
query ListSysFolders(pClinician As %String)
SQL Query:
SELECT %ID,FolderName,FolderType,SystemFolder, OrderGroup FROM Folder Where OwnerUser = :pClinician AND SystemFolder=1 ORDER BY OrderGroup, FolderName


index (IDKEY on ) [IdKey, Type = key];
Index methods: IDKEYCheck(), IDKEYDelete(), IDKEYExists(), IDKEYOpen(), IDKEYSQLCheckUnique(), IDKEYSQLExists(), IDKEYSQLFindPKeyByConstraint(), IDKEYSQLFindRowIDByConstraint()
index (OwnerUserIndex on OwnerUser);
Index methods: OwnerUserIndexExists()

Inherited Members

Inherited Properties

Inherited Methods


Storage Model: Storage (HS.Push.MessageCenter.Folder)

FeedbackOpens in a new tab