NoahES Groups and Locations User Memberships Limit

To learn more about the Group and Location feature: https://himsanoah.atlassian.net/wiki/spaces/NESP/pages/3103162395

HIMSA has decided to implement a new limitation on Groups and Locations User Memberships starting from NoahES version 1.13. We have seen examples of users having many groups and locations in their database and this can have a negative impact on response times for patient-data searches through the API since every group/location will be AND’ed in the search query. Therefore, we have implemented a limitation of 10 memberships of groups and locations per user, but at the same time, we have added a new property on the UserAccount entity that allows for the User to be a member of All groups and locations going forward. Note that enabling this flag will mean that the User will also become a member of any group/location that is added in the future (until disabling the flag). If one decides to disable the flag, this will mean that the UserAccount will be removed from all Groups and Locations, except the default Group or Location which is defined as a field on the UserAccount.

These limitations will have an impact on the following routes in the API:

PUT PatientGroups: This route will now return BadRequest if adding a new PatientGroup Membership to a user that is already a member of 10 groups or locations.
The route will also not be available for Users that have the IsMemberOfAllPatientGroups flag set to true

DELETE PatientGroups: This route will no longer be available for Users with the IsMemberOfAllPatientGroups flag set to true, returning BadRequest.

PUT UserAccount IsMemberOfAllPatientGroups (name TBD): A new route will be added that enables updating the IsMemberOfAllPatientGroups property on a User. If a User has had the flag enabled through this route, the same route will need to be called again with IsMemberOfAllPatientGroups=false in order to use the PUT and DELETE PatientGroups routes.