Smile Portal
EAP

 
Please contact us if you would like to try out this early access feature.

Setup

The Smile Portal requires a "Custom Application Configuration" of the following form:

{
	"externalApps": [
		{
			"label": "Custom Applications FHIR Endpoint",
			"group": "Custom Applications",
			"url": "https://external-host/some-external-application",
			"description": "Description of the custom external application"
		}
	],
	"bundledApps": [
		{
			"label": "Prior Auth",
			"group": "Custom Applications",
			"url": "https://host/prior-auth-fhir",
			"appType": "PRIOR_AUTH"
		},
		{
			"label": "Provider Access API",
			"group": "Custom Applications",
			"url": "https://host/provider-access-api",
			"appType": "PROVIDER_ACCESS_API"
		},
		{
			"label": "Terminology",
			"group": "Custom Applications",
			"url": "https://host/terminology-fhir",
			"appType": "TERMINOLOGY"
		},
		{
			"label": "Terminology Mapping",
			"group": "Custom Applications",
			"url": "https://host/terminology-mapping",
			"appType": "TERMINOLOGY_MAPPING"
		}
	]
}

This is for manually configuring the applications that will appear inside Smile Portal.

  • label: Text used for displaying the app on the menu
  • group: Used to group menu items together
  • url: URL to be used to embed the app in Smile Portal
  • description: Human-readable description of the custom application (optional, for externalApps only)
  • appType: Built-in app to be used in Smile Portal
  • additionalParameters: Used for custom configuration for the apps
  • fhirRepo: The fhir repo that stores the resources

Bundled App Types and Admin Roles

When using appType in a bundledApps entry, each built-in application type has a corresponding admin role that must be granted to users who need access to that application. The following table lists the available bundled application types, their admin role names, and the FHIR resource permissions included with each role.

Application TypeAdmin RoleIncluded FHIR Permissions
PATIENT_MANAGEMENTPATIENT_MANAGEMENT_ADMINRead/Write Patient, Read/Write Consent
PAYER_TO_PAYERPAYER_TO_PAYER_ADMINRead Communication, Read Task
PRIOR_AUTHPRIOR_AUTH_ADMINRead Communication
PROVIDER_ACCESS_APIPROVIDER_ACCESS_API_ADMINRead Communication
TERMINOLOGYTERMINOLOGY_ADMINRead/Write CodeSystem, Read/Write ConceptMap
TERMINOLOGY_MAPPINGTERMINOLOGY_MAPPING_ADMINRead/Write Task
INGESTION_DASHBOARDINGESTION_DASHBOARD_ADMINView transaction log, View transaction log events
TRANSACTION_LOGTRANSACTION_LOG_ADMINView transaction log
USER_MANAGEMENTUSER_MANAGEMENT_ADMINView/Create/Update users

Admin roles are assigned to users via the User Management JSON Admin endpoint.

Auto-Discovered CDR Module Applications

In addition to manually configured applications, Smile Portal automatically discovers certain CDR modules and makes them available in the portal. The following module types are auto-discovered:

Module TypeApplication TypePortal URLRequired Role
FHIR REST Endpoint (all versions)FHIR_ENDPOINTContext path + /swagger-ui/FHIR_ENDPOINT_ADMIN
FHIRWeb ConsoleFHIR_WEBContext pathFHIR_WEB_ADMIN
AppSphere (App Gallery)APPSPHERE_CONSOLE, APPSPHERE_PORTAL, APPSPHERE_GALLERYContext path + sub-pathAppSphere roles
MDM UIMDMUIContext pathMDMUI_ADMIN or MDMUI_DATA_STEWARD

Client Creation and Configuration

 

An OIDC client is also required as part of Smile Portal configuration. Client creation and configuration can be done as follows:

  • Under “Users & Authorization” from the Smile CDR's navigation menu, select “OpenID Connect Clients”;
  • Select “Add Client” to create a new OIDC Client
  • Provide a value for ClientID. Use this same ClientID in the Smile Portal module configuration.
  • In the Authorized Grant Types field, select "Authorization Code" and "Refresh Token".
  • In the Authorized Redirect URLs field, include the link to the Smile Portal. NOTE: Ensure that the name entered for the Context Path field while configuring the Smile Portal module is correctly reflected. Including the / the end of the URL is important. e.g. https://try.smilecdr.com/smile-portal/
  • In the Scopes field, enter the scopes (whitespace separated) that can be requested (e.g. online_access openid profile).