Skip to main content

User Onboarding

The process of adding a new user to the system is onboarding. There are two types of users in Carium: Providers and Patients. Each type of user can be onboarded in two ways: Manual and Self-Service.

In manual onboarding, a Provider explicitly enters the user's information into the system and Carium delivers email or SMS instructions for signing up. Manual onboarding is typically used when you know which patients you want to onboard ahead of time, and you already have their contact information.

In self-service onboarding, the user installs the Carium App and enters a organization-wide Organization Code, along with their personal information. Providers may edit the user's information after the user has signed up. Self-service onboarding is typically used to pre-provision groups before you know specifically which patients will be using the system.

Manual onboarding

When a Provider User manually onboards a new Patient, both an Individual and User record will be created for that Patient. The created Individual will also automatically be shared with that Provider's Organization.

A new Patient is onboarded by sending a POST to /patients/. There are a few different things to consider when onboarding a new Patient:

  • Do you have the minimum information required to onboard this Patient (first/last name, date of birth, email, or phone number)?
  • Do you want to invite this Patient to use the Patient app (either via the web or mobile apps)?
  • What's the best way to interact with this Patient (email, SMS)?
  • What's this Patient's preferred language (English and Spanish are currently supported)?

Request Body Attributes

The POST sent to /showboat/v1/patients/ follows JSON-API, and so must be wrapped in:

{
"data": {
"attributes": {},
"type": "ui-patients"
}
}

The most important data is on the attributes portion of the request body.

AttributeRequired?DescriptionExample
birth-dateYesPatient's date of birth (YYYY-MM-DD format)"1970-01-02"
emailNot if mobile-phone is givenPatient's email address"john.doe@domain.com"
genderNoPatient's gender (female | male | other | pnta | unknown)"pnta"
first-nameYesPatient's first/given name"John"
individual-group-idNoUUID of an IndividualGroup that should include the new Patient"1e5402d8-2374-4392-af92-dcf5f9672e31"
last-nameYesPatient's last/family name"Doe"
localeYesPatient's locale/language (en_US | es_US)"en_US"
mobile-phoneNot if email is givenPatient's SMS-enabled mobile number"+13215551234"
notificationsNoHow to invite Patient to use Patient app (email | sms)["email", "sms"]
preferred-nameNoPatient's preferred name"Jack"
usernameNoPatient's username used to access Patient app (must match email or mobile-phone)"john.doe@domain.com"

How do the questions above map to the attributes passed to /patients/?

Here are a few examples of how to onboard different Patients while inviting them to use the Patient app. For these examples, leave out the common fields of birth-date, gender, first-name, last-name, individual-group-id, last-name, and preferred-name as they don't impact the Patient app invitations.

Patient app via email

Sending the following attributes will result in an email being sent to john.doe@domain.com with a link to allow the Patient to verify their email address and set a password. They can then use john.doe@domain.com as their username and that password to access the Patient app via Carium's web interface or one of Carium's mobile apps (available on iOS and Android).

{
"email": "john.doe@domain.com",
"mobile-phone": "+13215551234",
"notifications": ["email"],
"username": "john.doe@domain.com"
}

Patient app via SMS

Sending the following attributes will result in an SMS message being sent to +13215551234 with a link to allow the Patient to verify their phone number and set a password. They can then use +13215551234 as their username and that password to access the Patient app via Carium's web interface or one of Carium's mobile apps (available on iOS and Android).

{
"email": "john.doe@domain.com",
"mobile-phone": "+13215551234",
"notifications": ["sms"],
"username": "+13215551234"
}

Patient app via both email and SMS

Sending the following attributes will result in both an email being sent to john.doe@domain.com and an SMS message being sent to +13215551234. Both messages will include links to allow the Patient to verify with a link to allow the Patient to verify the email or phone number, respectively and set a password. Whichever invitation they choose to use to complete their registration will decide what their username will be.

If they use the link set to them via SMS, then their username will be +13215551234, if they use the link emailed to them, then their username will be john.doe@domain.com. They can then use that username and the password they entered to access the Patient app via Carium's web interface or one of Carium's mobile apps (available on iOS and Android).

{
"email": "john.doe@domain.com",
"mobile-phone": "+13215551234",
"notifications": ["email", "sms"],
"username": "+13215551234"
}

No Patient app with only email

Sending the following attributes will result in no invitations being sent to the Patient at all. The Patient won't have any access to the Patient app. Their username will be set to john.doe@domain.com initially, but they can later be sent an invitation via either SMS or email.

{
"email": "john.doe@domain.com"
}

No Patient app with only phone

Sending the following attributes will result in no invitations being sent to the Patient at all. The Patient won't have any access to the Patient app. Their username will be set to +13215551234 initially, but they can later be sent an invitation via either SMS or email.

{
"mobile-phone": "+13215551234"
}

No Patient app with both email and phone

Sending the following attributes will result in no invitations being sent to the Patient at all. The Patient won't have any access to the Patient app. Their username will be set to john.doe@domain.com initially, but they can later be sent an invitation via either SMS or email.

{
"email": "john.doe@domain.com",
"mobile-phone": "+13215551234"
}