In the default CommCare model, each CommCare user has their own list of cases, comprised of the cases he/she registered. So if a mobile worker registers the pregnant mother 'Monica' on her phone, then the 'Monica' case appears in her case list and no one else's. This means that no other mobile worker can perform a follow-up visit for Monica.
Case Sharing changes this, by allowing mobile users to share cases that appear in their case lists. App builders can create what's called a case sharing group, and then add mobile users to that group. All mobile users within a single case sharing group have access to the cases that all other members of the group have created. This allows multiple mobile workers to share responsibility for a group of cases, by making it seamless for different workers to conduct different pieces of overall project services for a single case. Some common use cases:
- David works with another community health worker, Maria, who has the same CommCare application on her phone. David and Maria visit the same community members. Sometimes David will register a new pregnancy, and Maria will follow up with her later.
- David refers sick clients to a local clinic. A nurse at the clinic has a phone with a different CommCare application for sick community members. The nurse will want to see why David referred the patient, as well as all the data that David has collected about the patient in the past. David will want to know the outcome of the visit.
How to enable case sharing
- Make sure any CommCare applications that you want to have share cases with one another are located in the same project space
- Turn on case sharing for your application(s), by doing the following for each app:
- Go to app settings (by clicking the gear icon next to the app name)
- Select the "Advanced Settings" tab
- Check the "Case Sharing" checkbox
- Add your mobile users to case sharing groups, by doing the following:
- Go to the "Users" page
- Click on "Groups"
- Enter a name for the group and then click on the "+ Create Group" button
- On the new page that loads, click "Edit Settings" and then turn on Case Sharing
- Under the "Group Membership" tab, add all users who you wish to have share cases with each other in this group, by entering each username one at a time and then clicking "Update"
- If you're sharing cases between two or more different CommCare applications, make sure that the case type matches between all the menus you want to have share case lists
One very important thing to note is that if case sharing is turned on for your app, all users must be in exactly one case sharing group. Users not in a case sharing group will cause errors, and users in more than one group will cause errors if they ever create a case. The only time that it is valid to add a user to multiple case sharing groups is if they will only ever be reviewing or modifying existing cases, and never creating new ones. For more on this use case, see Assigning cases to one of multiple groups.
You can structure your case sharing groups such that a "supervisor" user is in multiple case sharing groups. If you are on the Standard plan or higher, this is easy to set up through Organizations. For more information, see Assigning cases to one of multiple groups.
Often if you have an error in case management (i.e. you did not follow one of the steps above), you will see a message indicating that your user is not in a case sharing group or is in more than one case sharing group. If you see this, go back and check your case sharing settings. It is likely that 1 of your users is not in exactly one case sharing group.
Case Sharing FAQs
Q: If a case was created before case sharing was turned on and the case sharing group was created, does that case get reassigned automatically to that group's owner id, or does the case retain its original owner id?
A: The case should retain the original case owner ID
Q: What is the difference between user id and owner id?
A: The owner ID is the id of the user or group who owns the case (the case will appear on their application's case list). User id is the id of the user who last submitted a form to the case.
Q: What happens if two mobile users are sharing a case, are both working offline, and both make changes to the case?
A: Once the forms are submitted they will update the case in the order in which they are received (according to the server received time). If one of the forms closed a case and a subsequent form attempts to update that case, the case will not be reopened but the (now closed) case will be updated.
Q: Is there a way to specify case sharing for different groups by menu or a specific case type?
A: Unfortunately this use case is not currently supported in the app builder. However, you can configure this manually by specifying the "owner_id" property for new cases which you don't want to share to be set to the id of the current user (defined in the form as a hidden value) in the normal case property configuration screen. That will result in those cases not being shared.