care.emr.api.viewsets.facility_organization module

class FacilityOrganizationFilter(data=None, queryset=None, *, request=None, prefix=None)

Bases: FilterSet

base_filters = {'name': <django_filters.filters.CharFilter object>, 'org_type': <django_filters.filters.CharFilter object>, 'parent': <django_filters.filters.UUIDFilter object>}
declared_filters = {'name': <django_filters.filters.CharFilter object>, 'org_type': <django_filters.filters.CharFilter object>, 'parent': <django_filters.filters.UUIDFilter object>}
class FacilityOrganizationViewSet(**kwargs)

Bases: EMRModelViewSet

database_model

alias of FacilityOrganization

pydantic_model

alias of FacilityOrganizationWriteSpec

pydantic_read_model

alias of FacilityOrganizationReadSpec

pydantic_retrieve_model

alias of FacilityOrganizationRetrieveSpec

filterset_class

alias of FacilityOrganizationFilter

filter_backends = [<class 'django_filters.rest_framework.backends.DjangoFilterBackend'>]
get_organization_obj()
get_facility_obj()
validate_data(instance, model_obj=None)
authorize_destroy(instance)
authorize_update(request_obj, model_instance)
authorize_create(instance)
clean_create_data(request_data)
clean_update_data(request_data, keep_fields: set | None = None)
get_queryset()
perform_destroy(instance)
mine(request, *args, **kwargs)

Get organizations that are directly attached to the given user

class FacilityOrganizationUsersViewSet(**kwargs)

Bases: EMRModelViewSet

database_model

alias of FacilityOrganizationUser

pydantic_model

alias of FacilityOrganizationUserWriteSpec

pydantic_read_model

alias of FacilityOrganizationUserReadSpec

pydantic_update_model

alias of FacilityOrganizationUserUpdateSpec

filter_backends = [<class 'rest_framework.filters.SearchFilter'>]
search_fields = ['user__first_name', 'user__last_name', 'user__username']
get_organization_obj()
get_facility_obj()
perform_create(instance)
validate_data(instance, model_obj=None)
validate_destroy(instance)
authorize_destroy(instance)
authorize_update(request_obj, model_instance)
authorize_create(instance)
  • Creates are only allowed if the user is part of the organization

  • The role applied to the new user must be equal or lower in privilege to the user created

  • Maintain a permission to add users to an organization

get_queryset()

Only users part of the organization can access its users