Users and Roles

LDM User


FLEXFORM USER

This is any user or potential user of the system. Potential users only have their GoSecure email address populated, the first time they log in they will be onboarded and rest of the information will be completed this includes GoSecure ID, Given Name, Middle Name, Last Name and their qualifications.

When users logon the system their qualifications will be updated based on the data in CPDB. If their qualifications intesect with the qualifications a Program Area considers a Requestor then the Requestor's data will also be created/updated. For more information on qualifications see: Provider Professions

For FlexForms User there are two validation profiles. The FlexFormsPotentialUser profile should be used when creating team members and only the GoSecure email address is known. The FlexFormsUser profile should be used after the user has been onboarded, it is more restrictive and requires the user have a name.

FlexFormsPotentialUser profile which is based on the Practitioner FHIR resource

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..0codeBinding
systemΣ1..1uriBinding
valueΣ1..1string
periodΣ I0..0Period
assignerΣ I0..0Reference(Organization)
activeΣ0..1boolean
id0..1string
extensionI0..*Extension
useΣ ?!0..0codeBinding
textΣ0..1string
familyΣ1..1string
firstNameΣ0..1string
middleNameΣ0..1string
prefixΣ0..1string
suffixΣ0..0string
periodΣ I0..0Period
id0..1string
extensionI0..*Extension
systemΣ I1..1codeBindingFixed Value
valueΣ1..1string
useΣ ?!0..0codeBinding
rankΣ0..0positiveInt
periodΣ I0..0Period
addressΣ0..0Address
genderΣ0..0codeBinding
birthDateΣ0..0date
photoI0..0Attachment
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..0codeBinding
systemΣ1..1uriBinding
valueΣ1..1string
periodΣ I0..0Period
assignerΣ I0..0Reference(Organization)
code1..1CodeableConceptBinding
periodI0..0Period
communication0..0CodeableConceptBinding

FlexFormsUser profile which is based on the FlexPotentialUser

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..0codeBinding
systemΣ1..1uriBinding
valueΣ1..1string
periodΣ I0..0Period
assignerΣ I0..0Reference(Organization)
activeΣ0..1boolean
id0..1string
extensionI0..*Extension
useΣ ?!0..0codeBinding
textΣ0..1string
familyΣ1..1string
firstNameΣ0..1string
middleNameΣ0..1string
prefixΣ0..1string
suffixΣ0..0string
periodΣ I0..0Period
id0..1string
extensionI0..*Extension
systemΣ I1..1codeBindingFixed Value
valueΣ1..1string
useΣ ?!0..0codeBinding
rankΣ0..0positiveInt
periodΣ I0..0Period
addressΣ0..0Address
genderΣ0..0codeBinding
birthDateΣ0..0date
photoI0..0Attachment
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..0codeBinding
systemΣ1..1uriBinding
valueΣ1..1string
periodΣ I0..0Period
assignerΣ I0..0Reference(Organization)
code1..1CodeableConceptBinding
periodI0..0Period
communication0..0CodeableConceptBinding


FLEXFORM ROLE

These are the roles the user has in the application:

  • A single user can have many roles in the system.
  • A user can have multiple Requestor roles if they qualify as a Requestor in more than one Program Area.
  • A user will have also have roles for each Requestor they work on behalf of.
  • If the user has at least on Requestor role they will also have a Practitioner role. The Practitioner role has no permissions in the system, it is just used to link to locations. This prevents repeating the same links to locations for each Requestor.
  • If the role isn't Practitioner then it will have a link to the related Practitioner role.
  • If the role is an assignable role like Delegate or Designate it will have a link to the related Requestor role they are working on behalf of.

Example Setup

Partition ID User Role Code RelatedPractitionerRole RelatedRequestorRole Program Area Location
DEFAULT 1 Bob PRACTITIONER Location A
Location B
DEFAULT 2 Bob REQUESTOR 1 ODSP
DEFAULT 3 Bob REQUESTOR 1 PROGRAM-X
DEFAULT 4 JANE DESIGNATE 1 2 ODSP Location A
DEFAULT 5 MIKE DELEGATE 1 3 PROGRAM-X

In this example:

  • The first row is the PRACTITIONER role record which holds the links to the locations.
  • Rows 2 and 3. Bob is a REQUESTOR for ODSP and PROGRAM-X
  • Row 4 is a DESIGNATE role for JANE working on behalf of Bob's REQUESTOR role for ODSP. She is limited to location A
  • Row 5 is a DELEGATE role for MIKE working on behalf of Bob's REQUESTOR role for PROGRAM-X.

This maps to the FlexFormRole profile which is based on the PractitionerRole resource:

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
RelatedPractitionerRoleI0..1Extension(Reference(FlexFormsRole | PractitionerRole))
RelatedRequestorRoleI0..1Extension(Reference(FlexFormsRole))
TeamMemberNameI0..1Extension(string)
GeneralConsentI0..1Extension(Reference(TermsOfUseConsent))
TeamMaintenanceConsentI0..1Extension(Reference(TermsOfUseConsent))
modifierExtension?! I0..*Extension
identifierΣ0..0Identifier
activeΣ0..1boolean
periodΣ I0..0Period
practitionerΣ I1..1Reference(FlexFormUser | FlexFormPotentialUser)
organizationΣ I0..1Reference(ProgramArea)
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..0string
codeΣ1..1codeBinding
displayΣ0..0string
userSelectedΣ0..0boolean
textΣ0..0string
specialtyΣ0..0CodeableConceptBinding
locationΣ I0..*Reference(RequestorLocation)
healthcareServiceI0..0Reference(HealthcareService)
telecomΣ I0..0ContactPoint
availabilityExceptions0..0string
endpointI0..0Reference(Endpoint)


REQUESTOR LOCATION

Requestor Locations are locations where a Requestor works. A Requestor can have one or more locations. This data is initally loaded when a Requestor is onboarded, the data comes from CPDB and EAP. In later releases of SADIE the location data will be maintainable using the user interface.

If the role is a Requestor then the Works_On_Behalf_Of will be null. If the role is Delegate of Designate then the Works_On_Behalf_Of will be the Requestor they are working for.

The meaning of the Locations depends on the Role. If the role is a Requestor then this is the Requestor's work locations. If the role is a not a requestor then the Locations are the only Locations this role is valid for. Example: Bob is a Requestor that has 5 locations but only wants Jack to be a Designate at 2 of them.

Requestor Location profile which is based on the Location FHIR resource

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..0codeBinding
systemΣ1..1uriBinding
valueΣ1..1string
periodΣ I0..0Period
assignerΣ I0..0Reference(Organization)
statusΣ ?!0..1codeBinding
operationalStatusΣ1..1CodingBinding
nameΣ1..1string
alias0..0string
descriptionΣ0..0string
modeΣ0..0codeBinding
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..0string
codeΣ0..1codeBinding
displayΣ0..0string
userSelectedΣ0..0boolean
textΣ0..0string
id0..1string
extensionI0..*Extension
systemΣ I1..1codeBindingFixed Value
valueΣ1..1string
useΣ ?!0..0codeBinding
rankΣ1..1positiveInt
periodΣ I0..0Period
contactDescriptionI0..1Extension(string)
id0..1string
extensionI0..*Extension
systemΣ I1..1codeBindingFixed Value
valueΣ1..1string
useΣ ?!0..0codeBinding
rankΣ1..1positiveInt
periodΣ I0..0Period
contactDescriptionI0..1Extension(string)
id0..1string
extensionI0..*Extension
systemΣ I1..1codeBindingFixed Value
valueΣ1..1string
useΣ ?!0..0codeBindingFixed Value
rankΣ1..1positiveInt
periodΣ I0..0Period
id0..1string
extensionI0..*Extension
useΣ ?!0..0codeBinding
typeΣ0..0codeBinding
textΣ0..1string
lineΣ0..1string
cityΣ0..1string
districtΣ0..0string
stateΣ0..1string
postalCodeΣ0..1string
countryΣ0..1string
periodΣ I0..0Period
physicalTypeΣ0..0CodeableConcept
managingOrganizationΣ I0..0Reference(Organization)
partOfI0..0Reference(Location)
availabilityExceptions0..0string
endpointI0..0Reference(Endpoint)