In our idea the patient should be more in control of whom to share data with, therefore we have developed a specific Network API. Inside this API you can define with whom to share your piece of data with.

  1. User types available on the Platform include:

    • Patients
    • Doctors/Coaches
    • Organizations.
  2. Organizations can be created, deleted and modified (CRUD) only by administrators on demand by a coach (to prevent unmanaged behavior). After organizations are created, administrators can add one or more coaches to these organizations. Every Coach in the organization can have one of two available organization roles: "Organization Administrator" or "Organization Member".

  3. Coaches with "Organization Administrator" role can manage organization membership: add other coaches to the organization, change their organization role, or remove members from an organization.

  4. Patient profile is shared with "view account info" permission with all organizations and their members by default. This the equivalent of publicly viewable information on other platforms such as Name and perhaps other basic, non-private information.

  5. Patient can add any platform user (patient or coach) to their network and can set either "view account info" (default), "view full account" or "manage full account" permissions.

  6. Patient can explicitly add any platform organization to their network and grant it "view account info" (default), "view full account" or "manage full account" permission.

  7. If a network member has "view full account" permissions for a particular patient profile, that patient can include them in one or more care plans to let them view care plan data and all other profile resources that have been added to the care plan (such as basic medical data, measurements, etc.)

  8. Permissions granted to an Organization are applied to all of its Doctors/Coaches (unless a patient explicitly adds a Doctor/Coach to their network and assigns them a different permission level)

  9. Any platform user can enter an email address and invite another user to the platform by email. If the user email already exists in the platform, an error will be returned.