Was just discussing this with Marta Girdea.
The patient index is currently based only on the core functionality of the patient-data component. However, additional optional components can and will add to this base functionality (e.g., Owners in patient-access, exomic data, etc.). Because of the current architecture, these additional data cannot be included in the index and cannot be efficiently searched/filtered on (making an Owner filter more difficult than it needs to be, for example).
It seems like each optional component should register itself with the Patient class in some way, along with controllers for JSON and Excel serialization and loading, maybe a UI, optional data indexing, filtering options, etc, but that's just my $0.02.