HS.Registry.Person.User
persistent class HS.Registry.Person.User extends %Library.Persistent, HS.Push.Registry.Recipient, HS.Registry.Person.Base
SQL Table Name: HS_Registry_Person.UserClinician
Include (HS.Common, %ZHSLIB)Property Inventory
- Active
- CacheUser
- Description
- Emails
- Facilities
- Folders
- Idents
- IgnoreProviderUpdates
- LastLoginDate
- Location
- LoginIDs
- MessageRepository
- Organization
- ProviderID
- Proxies
- Specialty
- SubSpecialty
- UserID
Method Inventory
- CheckEmailDuplication()
- CopyEmailAddressToEmailID()
- FindByEmail()
- FindUsersClose()
- FindUsersExecute()
- FindUsersFetch()
- GetExistingData()
- GetUserClinicianFromRequest()
- OnCheckPermission()
- ResolveClinicianGroup()
- ResolveUserClinician()
- ReturnSessionInfoResponse()
- SampleMapEmailAddressToEmailID()
- SessionUserClinician()
- UpdateMessageRepositoryForAllUsers()
- UserHasFacility()
- UserHasLoginID()
- UserHasRelationships()
Parameters
parameter DSINTERVAL = 5;
Inherited description: DSINTERVAL is the number of seconds between one DSTIME value and the next. The DSTIME value for DSINTERVAL > 0 is computed from $ZTIMESTAMP
and is the number of seconds from day 0, time 0 to the nearest interval, rounded down. Using an interval has the effect of grouping
all DSTIME entries for the class in some number of seconds.
parameter DSTIME = AUTO;
Inherited description: If the DSTIME parameter is set to AUTO then the most recent filing operation in the current DSTIME value
for each object will be recorded in a global, ^OBJ.DSTIME:
^OBJ.DSTIME(ExtentName,DSTIME,objectID) = filing operation
For DSTIME=AUTO the DSTIME value is recorded in ^OBJ.DSTIME and is set by the consumer of DSTIME data.
Refer to %DeepSee documentation for more information on how DSTIME is used by %DeepSee.
The filing operations are:
If the DSTIME parameter is set to MANUAL then the user is responsible for journaling object filing operations. If DSTIME is set to "CONDITIONAL", the user is expected to define the parameter DSCONDITION setting it to an expression which will determine if the actions performed when DSTIME is set to AUTO will execute or not
^OBJ.DSTIME(ExtentName,DSTIME,objectID) = filing operation
For DSTIME=AUTO the DSTIME value is recorded in ^OBJ.DSTIME and is set by the consumer of DSTIME data.
Refer to %DeepSee documentation for more information on how DSTIME is used by %DeepSee.
The filing operations are:
Code | Operation |
---|---|
0 | Update |
1 | Insert |
2 | Delete |
If the DSTIME parameter is set to MANUAL then the user is responsible for journaling object filing operations. If DSTIME is set to "CONDITIONAL", the user is expected to define the parameter DSCONDITION setting it to an expression which will determine if the actions performed when DSTIME is set to AUTO will execute or not
parameter EMAILCOPYGLOBAL = ^CacheTemp.CopyEmailAddrToID;
This global is used for storing process id for the background process of copying email addr into email id
Properties
property Active as %Boolean [ InitialExpression = 1 ];
Set to True to prevent recipient from being selected
Property methods: ActiveDisplayToLogical(), ActiveGet(), ActiveGetStored(), ActiveIsValid(), ActiveLogicalToDisplay(), ActiveLogicalToXSD(), ActiveNormalize(), ActiveSet(), ActiveXSDToLogical()
property CacheUser as %Boolean [ InitialExpression = 0 ];
If this is a Cache User, then the UserID is their Cache User ID, and their
authentication cannot be delegated
Property methods: CacheUserDisplayToLogical(), CacheUserGet(), CacheUserGetStored(), CacheUserIsValid(), CacheUserLogicalToDisplay(), CacheUserLogicalToXSD(), CacheUserNormalize(), CacheUserSet(), CacheUserXSDToLogical()
property Description as %String);
Inherited description: Description of clinician
Property methods: DescriptionDisplayToLogical(), DescriptionGet(), DescriptionGetStored(), DescriptionIsValid(), DescriptionLogicalToDisplay(), DescriptionLogicalToOdbc(), DescriptionNormalize(), DescriptionSet()
relationship Emails as array of HS.Registry.Person.UserEmail [ InitialExpression = $listbuild("HS.Registry.Person.UserEmail","UserClinician",+$this,"children",1,1) , Transient , Inverse = UserClinician , Cardinality = children ];
Property methods: EmailsGet(), EmailsGetObject(), EmailsGetObjectId(), EmailsGetSwizzled(), EmailsIsEmpty(), EmailsIsValid(), EmailsNewObject(), EmailsRClose(), EmailsRExec(), EmailsRFetch(), EmailsRelate(), EmailsSQLCompute(), EmailsSet(), EmailsUnRelate()
relationship Facilities as array of HS.Registry.Person.UserFacility [ InitialExpression = $listbuild("HS.Registry.Person.UserFacility","UserClinician",+$this,"children",1,1) , Transient , Inverse = UserClinician , Cardinality = children ];
Property methods: FacilitiesGet(), FacilitiesGetObject(), FacilitiesGetObjectId(), FacilitiesGetSwizzled(), FacilitiesIsEmpty(), FacilitiesIsValid(), FacilitiesNewObject(), FacilitiesRClose(), FacilitiesRExec(), FacilitiesRFetch(), FacilitiesRelate(), FacilitiesSQLCompute(), FacilitiesSet(), FacilitiesUnRelate()
relationship Folders as array of HS.Push.MessageCenter.Folder [ InitialExpression = $listbuild("HS.Push.MessageCenter.Folder","OwnerUser",+$this,"many",1,1) , Transient , Inverse = OwnerUser , Cardinality = many ];
Property methods: FoldersGet(), FoldersGetObject(), FoldersGetObjectId(), FoldersGetSwizzled(), FoldersIsEmpty(), FoldersIsValid(), FoldersNewObject(), FoldersRClose(), FoldersRExec(), FoldersRFetch(), FoldersRelate(), FoldersSQLCompute(), FoldersSet(), FoldersUnRelate()
relationship Idents as array of HS.Registry.Person.UserIdentifier [ InitialExpression = $listbuild("HS.Registry.Person.UserIdentifier","UserClinician",+$this,"children",1,1) , Transient , Inverse = UserClinician , Cardinality = children ];
Property methods: IdentsGet(), IdentsGetObject(), IdentsGetObjectId(), IdentsGetSwizzled(), IdentsIsEmpty(), IdentsIsValid(), IdentsNewObject(), IdentsRClose(), IdentsRExec(), IdentsRFetch(), IdentsRelate(), IdentsSQLCompute(), IdentsSet(), IdentsUnRelate()
property IgnoreProviderUpdates as %Boolean [ InitialExpression = 0 ];
When true and syncing with provider directory , will ignore demographic, telecom and identifier updates sent from HSPD
Property methods: IgnoreProviderUpdatesDisplayToLogical(), IgnoreProviderUpdatesGet(), IgnoreProviderUpdatesGetStored(), IgnoreProviderUpdatesIsValid(), IgnoreProviderUpdatesLogicalToDisplay(), IgnoreProviderUpdatesLogicalToXSD(), IgnoreProviderUpdatesNormalize(), IgnoreProviderUpdatesSet(), IgnoreProviderUpdatesXSDToLogical()
property LastLoginDate as %Date;
Used to check for inactivity
Property methods: LastLoginDateDisplayToLogical(), LastLoginDateGet(), LastLoginDateGetStored(), LastLoginDateIsValid(), LastLoginDateLogicalToDisplay(), LastLoginDateLogicalToOdbc(), LastLoginDateLogicalToXSD(), LastLoginDateNormalize(), LastLoginDateOdbcToLogical(), LastLoginDateSet(), LastLoginDateXSDToLogical()
property Location as %String (MAXLEN = 256);
Free text, site specific meaning
Property methods: LocationDisplayToLogical(), LocationGet(), LocationGetStored(), LocationIsValid(), LocationLogicalToDisplay(), LocationLogicalToOdbc(), LocationNormalize(), LocationSet()
relationship LoginIDs as array of HS.Registry.Person.UserLoginID [ InitialExpression = $listbuild("HS.Registry.Person.UserLoginID","UserClinician",+$this,"children",1,1) , Transient , Inverse = UserClinician , Cardinality = children ];
Property methods: LoginIDsGet(), LoginIDsGetObject(), LoginIDsGetObjectId(), LoginIDsGetSwizzled(), LoginIDsIsEmpty(), LoginIDsIsValid(), LoginIDsNewObject(), LoginIDsRClose(), LoginIDsRExec(), LoginIDsRFetch(), LoginIDsRelate(), LoginIDsSQLCompute(), LoginIDsSet(), LoginIDsUnRelate()
property MessageRepository as %String (MAXLEN = 256);
Property methods: MessageRepositoryDisplayToLogical(), MessageRepositoryGet(), MessageRepositoryGetStored(), MessageRepositoryIsValid(), MessageRepositoryLogicalToDisplay(), MessageRepositoryLogicalToOdbc(), MessageRepositoryNormalize(), MessageRepositorySet()
property Organization as %Boolean [ InitialExpression = 0 ];
Support organization to differenciate from user type
Property methods: OrganizationDisplayToLogical(), OrganizationGet(), OrganizationGetStored(), OrganizationIsValid(), OrganizationLogicalToDisplay(), OrganizationLogicalToXSD(), OrganizationNormalize(), OrganizationSet(), OrganizationXSDToLogical()
property ProviderID as %String (MAXLEN = 128);
The UniqueID of the Home Provider created for the User
Property methods: ProviderIDDisplayToLogical(), ProviderIDGet(), ProviderIDGetStored(), ProviderIDIsValid(), ProviderIDLogicalToDisplay(), ProviderIDLogicalToOdbc(), ProviderIDNormalize(), ProviderIDSet()
property Proxies as array of %String;
The set of users who are allowed to be a proxy for this user
Proxies act on behalf of this user, and implicitly get their consent groups
This is an array of UserID strings
Property methods: ProxiesBuildValueArray(), ProxiesCollectionToDisplay(), ProxiesCollectionToOdbc(), ProxiesDisplayToCollection(), ProxiesDisplayToLogical(), ProxiesGet(), ProxiesGetObject(), ProxiesGetObjectId(), ProxiesGetStored(), ProxiesGetSwizzled(), ProxiesIsValid(), ProxiesLogicalToDisplay(), ProxiesLogicalToOdbc(), ProxiesNormalize(), ProxiesOdbcToCollection(), ProxiesSet(), ProxiesSetObject(), ProxiesSetObjectId()
property Specialty as %String (MAXLEN = 256);
Property methods: SpecialtyDisplayToLogical(), SpecialtyGet(), SpecialtyGetStored(), SpecialtyIsValid(), SpecialtyLogicalToDisplay(), SpecialtyLogicalToOdbc(), SpecialtyNormalize(), SpecialtySet()
property SubSpecialty as %String (MAXLEN = 256);
Property methods: SubSpecialtyDisplayToLogical(), SubSpecialtyGet(), SubSpecialtyGetStored(), SubSpecialtyIsValid(), SubSpecialtyLogicalToDisplay(), SubSpecialtyLogicalToOdbc(), SubSpecialtyNormalize(), SubSpecialtySet()
property UserID as %String (MAXLEN = 128, SELECTIVITY = 1) [ Required ];
Will end up as $username. It's not an IDKEY - that's an internalID
Property methods: UserIDDisplayToLogical(), UserIDGet(), UserIDGetStored(), UserIDIsValid(), UserIDLogicalToDisplay(), UserIDLogicalToOdbc(), UserIDNormalize(), UserIDSet()
Methods
classmethod CheckEmailDuplication(pExportToFile As %Boolean = 1)
For all existing user/clinician, check the duplication of Email Addresses associated with different users
pExportToFile: boolean value to choose whether to export the result to a file under directory /Mgr//
@API.Method
@API.Method
classmethod CopyEmailAddressToEmailID(pClassName As %String, pMethodName As %String, pLogFileName As %String = "CopyEmailAddressToEmailIDLog.txt")
Method to copy Email Addresses to Email IDs based on user-defined mapping method
perform in background
pClassName: name of the class where the user-defined mapping method exists
pMethodName: name of the user-defined mapping method
pLogFileName: name of the file to write the log messages to. By default, the file will be created in/mgr/ directory.
@API.Method
pMethodName: name of the user-defined mapping method
pLogFileName: name of the file to write the log messages to. By default, the file will be created in
@API.Method
classmethod FindByEmail(pEmail As %String, Output pId As %String, Output pName As %String, Output pUserId As %String) as %Status
classmethod FindUsersExecute(ByRef qHandle As %Binary, pActiveOnly As %Boolean = 1, pLastName As %String, pFirstName As %String, pUserId As %String, pNumber As %String, pAssignAuth As %String, pCliniciansOnly As %Boolean, pFilterFlag As %Boolean, pFacilities As %String, pRelationshipId As %String, pMPIID As %String, pDelivery As %Boolean, pOrganizationsOnly As %Boolean) as %Status
classmethod FindUsersFetch(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 %RegisteredObject = "") 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
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.Resolve a clinician group ID
classmethod ResolveUserClinician(ByRef pClinicianId As %String = "", pRequestingUser As %String = "") as %Status
classmethod ReturnSessionInfoResponse(pUserName) as HS.Registry.Person.User.WebServices.Containers.SessionInfo
classmethod SampleMapEmailAddressToEmailID(pUser As HS.Registry.Person.User, pUserLoginIDList As %Library.ListOfObjects)
This example method maps Email Addresses to Email IDs based on security domain and email type
pUser: an object HS.Registry.Person.User
pUserLoginIDList: the list of HS.Registry.Person.UserLoginID objects for that user
User should assume that all LoginID objects passed to this method have an empty Email ID field
In this example, in HS default domain, only emails of EmailType Secure ("S") are mapped to Email IDs
In other domains, primary emails are mapped to Email IDs. If no email is marked as primary, then use any of the existing emails
NOTE: Please do not call %Save() on the modified LoginID objects in this method. This will be handled in CopyEmailAddressToEmailID() method
classmethod UpdateMessageRepositoryForAllUsers(pOldRepository As %String, pNewRepository As %String)
Updates the MessageRepository of every record of HS.Registry.Person.User
that currently has pOldRepository as it's repository to be
pNewRepository. Both arguments MUST match the "Name" property of
existing entries in the Gateways Registry i.e. in table HS_Gateway.Config.
This method can be run either directly from terminal OR as a background job using the Job command.
Throws errors when run from terminal. Writes errors to the Application Error Log as well so they can be viewed when run using the Job command.
@API.Method
This method can be run either directly from terminal OR as a background job using the Job command.
Throws errors when run from terminal. Writes errors to the Application Error Log as well so they can be viewed when run using the Job command.
@API.Method
classmethod UserHasFacility(pRegistryId) as %Integer
Helper method to check whether an exisiting user has facility
Return -1 to indicate failure
classmethod UserHasLoginID(pRegistryId) as %Integer
Helper method to check whether an exisiting user has loginid
Return -1 to indicate failure
Method returns 1 if User has existing Clinician-Patient Relationships, 0 otherwise
Paremeters:
- pRegistryId: The Registry ID associated with the user.
Queries
query FindUsers(pActiveOnly As %String, pLastName As %String, pFirstName As %String, pUserId As %String, pNumber As %String, pAssignAuth As %String, pCliniciansOnly As %Boolean, pFilterFlag As %Boolean, pFacilities As %String, pRelationshipId As %String, pMPIID As %String, pDelivery As %Boolean = 0, pOrganizationsOnly As %Boolean = 0)
Indexes
index (IDKEY on ) [IdKey, Type = key];
Index methods: IDKEYCheck(), IDKEYDelete(), IDKEYExists(), IDKEYOpen(), IDKEYSQLCheckUnique(), IDKEYSQLExists(), IDKEYSQLFindPKeyByConstraint(), IDKEYSQLFindRowIDByConstraint()
index (NameIndex on NameParts.Family);
Index methods: NameIndexExists()
index (ProviderIndex on ProviderID);
Will be used when we create a UI for Home Providers, to update corresponding users
Index methods: ProviderIndexExists()
index (Proxies on Proxies(KEYS));
Index methods: ProxiesBuildValueArray(), ProxiesCollectionToDisplay(), ProxiesCollectionToOdbc(), ProxiesDisplayToCollection(), ProxiesDisplayToLogical(), ProxiesGet(), ProxiesGetObject(), ProxiesGetObjectId(), ProxiesGetStored(), ProxiesGetSwizzled(), ProxiesIsValid(), ProxiesLogicalToDisplay(), ProxiesLogicalToOdbc(), ProxiesNormalize(), ProxiesOdbcToCollection(), ProxiesSet(), ProxiesSetObject(), ProxiesSetObjectId()
index (UserID on UserID);
Index methods: UserIDDisplayToLogical(), UserIDExists(), UserIDGet(), UserIDGetStored(), UserIDIsValid(), UserIDLogicalToDisplay(), UserIDLogicalToOdbc(), UserIDNormalize(), UserIDSet()
Inherited Members
Inherited Properties
- %id
- %seriesCount
- %seriesNames
- %source
- AdditionalInfo
- Addresses
- AdministrativeGender
- BirthDateTime
- BirthPlace
- EthnicGroup
- Identifiers
- LanguageCommunication
- MaritalStatus
- Name
- NameParts
- Race
- ReligiousAffiliation
- Roles
- Telecoms
- Type
- VIPIndicator
Inherited Methods
- %%CLASSNAMELogicalToStorage()
- %%CLASSNAMEStorageToLogical()
- %AddToSaveSet()
- %AddToSyncSet()
- %BMEBuilt()
- %BuildIndicesAsync()
- %BuildIndicesAsyncResponse()
- %CheckConstraints()
- %CheckConstraintsForExtent()
- %ClassIsLatestVersion()
- %ClassName()
- %ComposeOid()
- %ConstructClone()
- %CreateModelInstance()
- %Delete()
- %DeleteExtent()
- %DeleteId()
- %DeleteModel()
- %DispatchClassMethod()
- %DispatchGetModified()
- %DispatchMethod()
- %DispatchSetModified()
- %DispatchSetMultidimProperty()
- %Exists()
- %ExistsId()
- %Extends()
- %GUID()
- %GUIDSet()
- %GetJSValidationCode()
- %GetLock()
- %GetParameter()
- %GetPropertyInfo()
- %GetSwizzleObject()
- %Id()
- %InsertBatch()
- %InvokeAction()
- %IsA()
- %IsModified()
- %IsNull()
- %IsReadOnly()
- %JSONExport()
- %JSONExportToStream()
- %JSONExportToString()
- %JSONImport()
- %JSONMappingInfo()
- %JSONNew()
- %KillExtent()
- %KillExtentData()
- %LoadFromMemory()
- %LockExtent()
- %LockId()
- %New()
- %NormalizeObject()
- %ObjectIsNull()
- %ObjectModified()
- %Oid()
- %OnBeforeAddToSync()
- %OnCopyDataFromModel()
- %OnCopyDataToModel()
- %OnDeleteFinally()
- %OnDeleteModel()
- %OnDeleteSource()
- %OnDetermineClass()
- %OnGetPropertyInfo()
- %OnInvokeAction()
- %OnLoadModel()
- %OnNewSource()
- %OnOpenFinally()
- %OnOpenSource()
- %OnSaveFinally()
- %OnSaveSource()
- %OnStoreModel()
- %OnSubmit()
- %Open()
- %OpenId()
- %OpenModel()
- %OriginalNamespace()
- %PackageName()
- %PhysicalAddress()
- %PurgeIndices()
- %Reload()
- %RemoveFromSaveSet()
- %ResolveConcurrencyConflict()
- %RollBack()
- %Save()
- %SaveDirect()
- %SaveIndices()
- %SaveModel()
- %SerializeObject()
- %SetModified()
- %SortBegin()
- %SortEnd()
- %SubmitHandler()
- %SyncObjectIn()
- %SyncTransport()
- %UnlockExtent()
- %UnlockId()
- %ValidateIndices()
- %ValidateObject()
- %ValidateTable()
- CheckPermission()
- CopyFrom()
- JSONExport()
- JSONExportToStream()
- JSONExportToString()
- JSONImport()
- ListReceivingSystemsClose()
- ListReceivingSystemsExecute()
- ListReceivingSystemsFetch()
- XMLDTD()
- XMLExport()
- XMLExportToStream()
- XMLExportToString()
- XMLNew()
- XMLSchema()
- XMLSchemaNamespace()
- XMLSchemaType()
Storage
Storage Model: Storage (HS.Registry.Person.User)
^HS.Registry.Person.UserD(ID,"AdditionalInfo",n) |
= | AdditionalInfo(n) |
Storage Model: Storage (HS.Registry.Person.User)
^HS.Registry.Person.UserD(ID,"Addresses",n) |
= | Addresses(n) |
Storage Model: Storage (HS.Registry.Person.User)
^HS.Registry.Person.UserD(ID,"Identifiers",n) |
= | Identifiers(n) |
Storage Model: Storage (HS.Registry.Person.User)
^HS.Registry.Person.UserD(ID,"Proxies",n) |
= | Proxies(n) |
Storage Model: Storage (HS.Registry.Person.User)
^HS.Registry.Person.UserD(ID,"Telecoms",n) |
= | Telecoms(n) |
Storage Model: Storage (HS.Registry.Person.User)
^HS.Registry.Person.UserD(ID) |
= | %%CLASSNAME
NameParts
Name
Type
BirthDateTime
BirthPlace
AdministrativeGender
Active
CacheUser
Race
EthnicGroup
LanguageCommunication
VIPIndicator
Description
MaritalStatus
MessageRepository
ReligiousAffiliation
UserID
LastLoginDate
Specialty
SubSpecialty
Location
Roles
ProviderID
IgnoreProviderUpdates
Organization
|