Multi-Tenant MSO vs. Sing-Tenant + AccessPolicies
# support
n
Hi @finnbergquist I read your article about Multi-Tenant MSO: https://www.medplum.com/blog/multi-tenant-mso and had a few questions. As an MSO company, we need to see all patients across practices and assign or move patients between practices. Each provider technically has their own practice, but in some cases, they work on the same patient. (e.g., a speech therapist and an occupational therapist work on the same patient. They need each other's SOAP notes on the same patient.) I understand the multi-tenant setup allows moving patients between practices, but I don't know if it supports two providers from different practices to see the records/SOAP notes of the same patient. I think we can achieve this by: * Use one Medplum Project (single FHIR datastore) * Use AccessPolicies and Compartment-based rules to define who can see what: - Each provider/practice has an AccessPolicy restricting them to their patient panel (via Organization, PractitionerRole, or custom tag). - MSO admins have a global AccessPolicy that can see and modify everything. * Use a “Practice” or “Organization” resource to represent each practice and link patients/providers to it. How do you think about the above approach compared to the multi-tenant MSO approach in your article? I'm curious what your thoughts are. Thanks!
f
Hey @Ni Ni , good question! > I understand the multi-tenant setup allows moving patients between practices, but I don't know if it supports two providers from different practices to see the records/SOAP notes of the same patient. This actually already works in the current model! As long as the Organization references for both practices are added to the Patient's
Patient.meta.compartment
, and the clinicians each have their respective organization references on their
ProjectMembership.access []
, then both will be able to see the Patient & the resources in the Patient's compartment (as defined by the [patient compartment definition ](https://hl7.org/fhir/R4/compartmentdefinition-patient.html)) So for example, if you are using DocumentReference for your SOAP note.
DocumentReference.subject
or
DocumentReference.author
must point to your Patient. Using the example form the blog post:
Copy code
{
 "resourceType": "Patient",
 //...
 "meta": {
   "project": "019571c0-035b-72fe-a5fa-75d13a09589c",
   "compartment": [
     {
       "reference": "Organization/019571c0-035b-72fe-a5fa-75d13a09589c",
       "display": "King's Landing Center for Medicine"
     },
     {
       "reference": "Organization/0195b4a3-e637-77e2-ab0c-7ec36b68932d",
       "display": "Winterfell Pediatrics Center"
     },
   ]
 }
}
This Patient & their SOAP Notes would be visible to clinicians from both of these Organizations
In this example above, the Patient would be visible by both Practitioners
49 Views