care.emr.resources.user.spec module¶
- is_valid_username(username)¶
- class UserTypeOptions(*values)¶
-
- doctor = 'doctor'¶
- nurse = 'nurse'¶
- staff = 'staff'¶
- volunteer = 'volunteer'¶
- administrator = 'administrator'¶
- class UserTypeRoleMapping(*values)¶
Bases:
Enum
- doctor = Role(name='Doctor', description='Doctor at some facility')¶
- nurse = Role(name='Nurse', description='Nurse at some facility')¶
- staff = Role(name='Staff', description='Staff at some facility')¶
- volunteer = Role(name='Volunteer', description='Volunteer at some facility')¶
- administrator = Role(name='Administrator', description='Administrator at a given boundary')¶
- class UserBaseSpec(*, meta: dict = {}, id: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None, first_name: str, last_name: str, phone_number: Annotated[str, MaxLen(max_length=14)], prefix: Annotated[str | None, MaxLen(max_length=10)] = None, suffix: Annotated[str | None, MaxLen(max_length=50)] = None)¶
Bases:
EMRResource
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'first_name': FieldInfo(annotation=str, required=True), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'last_name': FieldInfo(annotation=str, required=True), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'phone_number': FieldInfo(annotation=str, required=True, metadata=[MaxLen(max_length=14)]), 'prefix': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, metadata=[MaxLen(max_length=10)]), 'suffix': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, metadata=[MaxLen(max_length=50)])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class UserUpdateSpec(*, meta: dict = {}, id: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None, first_name: str, last_name: str, phone_number: Annotated[str, MaxLen(max_length=14)], prefix: Annotated[str | None, MaxLen(max_length=10)] = None, suffix: Annotated[str | None, MaxLen(max_length=50)] = None, user_type: UserTypeOptions, gender: GenderChoices, geo_organization: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None)¶
Bases:
UserBaseSpec
- user_type: UserTypeOptions¶
- gender: GenderChoices¶
- perform_extra_deserialization(is_update, obj)¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'first_name': FieldInfo(annotation=str, required=True), 'gender': FieldInfo(annotation=GenderChoices, required=True), 'geo_organization': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'last_name': FieldInfo(annotation=str, required=True), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'phone_number': FieldInfo(annotation=str, required=True, metadata=[MaxLen(max_length=14)]), 'prefix': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, metadata=[MaxLen(max_length=10)]), 'suffix': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, metadata=[MaxLen(max_length=50)]), 'user_type': FieldInfo(annotation=UserTypeOptions, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class UserCreateSpec(*, meta: dict = {}, id: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None, first_name: str, last_name: str, phone_number: Annotated[str, MaxLen(max_length=14)], prefix: Annotated[str | None, MaxLen(max_length=10)] = None, suffix: Annotated[str | None, MaxLen(max_length=50)] = None, user_type: UserTypeOptions, gender: GenderChoices, geo_organization: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None, password: str | None = None, username: str, email: str)¶
Bases:
UserUpdateSpec
- classmethod validate_username(username)¶
- classmethod validate_phone_number(phone_number)¶
- classmethod validate_user_email(email)¶
- classmethod validate_password(password)¶
- perform_extra_deserialization(is_update, obj)¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=str, required=True), 'first_name': FieldInfo(annotation=str, required=True), 'gender': FieldInfo(annotation=GenderChoices, required=True), 'geo_organization': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'last_name': FieldInfo(annotation=str, required=True), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'password': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'phone_number': FieldInfo(annotation=str, required=True, metadata=[MaxLen(max_length=14)]), 'prefix': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, metadata=[MaxLen(max_length=10)]), 'suffix': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, metadata=[MaxLen(max_length=50)]), 'user_type': FieldInfo(annotation=UserTypeOptions, required=True), 'username': FieldInfo(annotation=str, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class UserSpec(*, meta: dict = {}, id: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None, first_name: str, last_name: str, phone_number: Annotated[str, MaxLen(max_length=14)], prefix: Annotated[str | None, MaxLen(max_length=10)] = None, suffix: Annotated[str | None, MaxLen(max_length=50)] = None, last_login: str, profile_picture_url: str, user_type: str, gender: str, username: str, mfa_enabled: bool = False, deleted: bool = False)¶
Bases:
UserBaseSpec
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'deleted': FieldInfo(annotation=bool, required=False, default=False), 'first_name': FieldInfo(annotation=str, required=True), 'gender': FieldInfo(annotation=str, required=True), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'last_login': FieldInfo(annotation=str, required=True), 'last_name': FieldInfo(annotation=str, required=True), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'mfa_enabled': FieldInfo(annotation=bool, required=False, default=False), 'phone_number': FieldInfo(annotation=str, required=True, metadata=[MaxLen(max_length=14)]), 'prefix': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, metadata=[MaxLen(max_length=10)]), 'profile_picture_url': FieldInfo(annotation=str, required=True), 'suffix': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, metadata=[MaxLen(max_length=50)]), 'user_type': FieldInfo(annotation=str, required=True), 'username': FieldInfo(annotation=str, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class UserRetrieveSpec(*, meta: dict = {}, id: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None, first_name: str, last_name: str, phone_number: Annotated[str, MaxLen(max_length=14)], prefix: Annotated[str | None, MaxLen(max_length=10)] = None, suffix: Annotated[str | None, MaxLen(max_length=50)] = None, last_login: str, profile_picture_url: str, user_type: str, gender: str, username: str, mfa_enabled: bool = False, deleted: bool = False, geo_organization: dict, created_by: UserSpec, email: str, flags: list[str] = [])¶
Bases:
UserSpec
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'created_by': FieldInfo(annotation=UserSpec, required=True), 'deleted': FieldInfo(annotation=bool, required=False, default=False), 'email': FieldInfo(annotation=str, required=True), 'first_name': FieldInfo(annotation=str, required=True), 'flags': FieldInfo(annotation=list[str], required=False, default=[]), 'gender': FieldInfo(annotation=str, required=True), 'geo_organization': FieldInfo(annotation=dict, required=True), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'last_login': FieldInfo(annotation=str, required=True), 'last_name': FieldInfo(annotation=str, required=True), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'mfa_enabled': FieldInfo(annotation=bool, required=False, default=False), 'phone_number': FieldInfo(annotation=str, required=True, metadata=[MaxLen(max_length=14)]), 'prefix': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, metadata=[MaxLen(max_length=10)]), 'profile_picture_url': FieldInfo(annotation=str, required=True), 'suffix': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, metadata=[MaxLen(max_length=50)]), 'user_type': FieldInfo(annotation=str, required=True), 'username': FieldInfo(annotation=str, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class CurrentUserRetrieveSpec(*, meta: dict = {}, id: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None, first_name: str, last_name: str, phone_number: Annotated[str, MaxLen(max_length=14)], prefix: Annotated[str | None, MaxLen(max_length=10)] = None, suffix: Annotated[str | None, MaxLen(max_length=50)] = None, last_login: str, profile_picture_url: str, user_type: str, gender: str, username: str, mfa_enabled: bool = False, deleted: bool = False, geo_organization: dict, created_by: UserSpec, email: str, flags: list[str] = [], is_superuser: bool, qualification: str | None, doctor_experience_commenced_on: str | None, doctor_medical_council_registration: str | None, weekly_working_hours: str | None, alt_phone_number: str | None, date_of_birth: str | None, verified: bool, pf_endpoint: str | None, pf_p256dh: str | None, pf_auth: str | None, organizations: list[dict], facilities: list[dict], permissions: list[str])¶
Bases:
UserRetrieveSpec
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alt_phone_number': FieldInfo(annotation=Union[str, NoneType], required=True), 'created_by': FieldInfo(annotation=UserSpec, required=True), 'date_of_birth': FieldInfo(annotation=Union[str, NoneType], required=True), 'deleted': FieldInfo(annotation=bool, required=False, default=False), 'doctor_experience_commenced_on': FieldInfo(annotation=Union[str, NoneType], required=True), 'doctor_medical_council_registration': FieldInfo(annotation=Union[str, NoneType], required=True), 'email': FieldInfo(annotation=str, required=True), 'facilities': FieldInfo(annotation=list[dict], required=True), 'first_name': FieldInfo(annotation=str, required=True), 'flags': FieldInfo(annotation=list[str], required=False, default=[]), 'gender': FieldInfo(annotation=str, required=True), 'geo_organization': FieldInfo(annotation=dict, required=True), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'is_superuser': FieldInfo(annotation=bool, required=True), 'last_login': FieldInfo(annotation=str, required=True), 'last_name': FieldInfo(annotation=str, required=True), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'mfa_enabled': FieldInfo(annotation=bool, required=False, default=False), 'organizations': FieldInfo(annotation=list[dict], required=True), 'permissions': FieldInfo(annotation=list[str], required=True), 'pf_auth': FieldInfo(annotation=Union[str, NoneType], required=True), 'pf_endpoint': FieldInfo(annotation=Union[str, NoneType], required=True), 'pf_p256dh': FieldInfo(annotation=Union[str, NoneType], required=True), 'phone_number': FieldInfo(annotation=str, required=True, metadata=[MaxLen(max_length=14)]), 'prefix': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, metadata=[MaxLen(max_length=10)]), 'profile_picture_url': FieldInfo(annotation=str, required=True), 'qualification': FieldInfo(annotation=Union[str, NoneType], required=True), 'suffix': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, metadata=[MaxLen(max_length=50)]), 'user_type': FieldInfo(annotation=str, required=True), 'username': FieldInfo(annotation=str, required=True), 'verified': FieldInfo(annotation=bool, required=True), 'weekly_working_hours': FieldInfo(annotation=Union[str, NoneType], required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class PublicUserReadSpec(*, meta: dict = {}, id: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None, first_name: str, last_name: str, phone_number: Annotated[str, MaxLen(max_length=14)], prefix: Annotated[str | None, MaxLen(max_length=10)] = None, suffix: Annotated[str | None, MaxLen(max_length=50)] = None, last_login: str, profile_picture_url: str, user_type: str, gender: str, username: str)¶
Bases:
UserBaseSpec
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'first_name': FieldInfo(annotation=str, required=True), 'gender': FieldInfo(annotation=str, required=True), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'last_login': FieldInfo(annotation=str, required=True), 'last_name': FieldInfo(annotation=str, required=True), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'phone_number': FieldInfo(annotation=str, required=True, metadata=[MaxLen(max_length=14)]), 'prefix': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, metadata=[MaxLen(max_length=10)]), 'profile_picture_url': FieldInfo(annotation=str, required=True), 'suffix': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, metadata=[MaxLen(max_length=50)]), 'user_type': FieldInfo(annotation=str, required=True), 'username': FieldInfo(annotation=str, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.