care.emr.resources.patient.spec module¶
- class BloodGroupChoices(*values)¶
-
- A_negative = 'A_negative'¶
- A_positive = 'A_positive'¶
- B_negative = 'B_negative'¶
- B_positive = 'B_positive'¶
- AB_negative = 'AB_negative'¶
- AB_positive = 'AB_positive'¶
- O_negative = 'O_negative'¶
- O_positive = 'O_positive'¶
- unknown = 'unknown'¶
- class GenderChoices(*values)¶
-
- male = 'male'¶
- female = 'female'¶
- non_binary = 'non_binary'¶
- transgender = 'transgender'¶
- class PatientBaseSpec(*, meta: dict = {}, id: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None, name: Annotated[str, MaxLen(max_length=200)], gender: GenderChoices, phone_number: Annotated[str | PhoneNumber(country_code=None, national_number=None, extension=None, italian_leading_zero=None, number_of_leading_zeros=None, country_code_source=0, preferred_domestic_carrier_code=None), MaxLen(max_length=14), PhoneNumberValidator(default_region=None, number_format=E164, supported_regions=[])], emergency_phone_number: Annotated[Annotated[str | PhoneNumber(country_code=None, national_number=None, extension=None, italian_leading_zero=None, number_of_leading_zeros=None, country_code_source=0, preferred_domestic_carrier_code=None), PhoneNumberValidator(default_region=None, number_format=E164, supported_regions=[])] | None, MaxLen(max_length=14)] = None, address: str | None = None, permanent_address: str | None = None, pincode: int | None = None, deceased_datetime: Annotated[datetime, AfterValidator(func=validate_timezone_aware)] | None = None, blood_group: BloodGroupChoices | None = None)¶
Bases:
EMRResource
- gender: GenderChoices¶
- phone_number: Annotated[str | PhoneNumber(country_code=None, national_number=None, extension=None, italian_leading_zero=None, number_of_leading_zeros=None, country_code_source=0, preferred_domestic_carrier_code=None), PhoneNumberValidator(default_region=None, number_format=E164, supported_regions=[])]¶
- emergency_phone_number: Annotated[str | PhoneNumber(country_code=None, national_number=None, extension=None, italian_leading_zero=None, number_of_leading_zeros=None, country_code_source=0, preferred_domestic_carrier_code=None), PhoneNumberValidator(default_region=None, number_format=E164, supported_regions=[])] | None¶
- blood_group: BloodGroupChoices | None¶
- classmethod validate_deceased_datetime(deceased_datetime)¶
- 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]] = {'address': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'blood_group': FieldInfo(annotation=Union[BloodGroupChoices, NoneType], required=False, default=None), 'deceased_datetime': FieldInfo(annotation=Union[Annotated[datetime, AfterValidator], NoneType], required=False, default=None), 'emergency_phone_number': FieldInfo(annotation=Union[Annotated[Union[str, PhoneNumber], PhoneNumberValidator], NoneType], required=False, default=None, metadata=[MaxLen(max_length=14)]), 'gender': FieldInfo(annotation=GenderChoices, required=True), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'name': FieldInfo(annotation=str, required=True, metadata=[MaxLen(max_length=200)]), 'permanent_address': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'phone_number': FieldInfo(annotation=Union[str, PhoneNumber], required=True, metadata=[MaxLen(max_length=14), PhoneNumberValidator(default_region=None, number_format='E164', supported_regions=[])]), 'pincode': FieldInfo(annotation=Union[int, NoneType], required=False, default=None)}¶
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.
- validate_identifier_config(config, value, obj=None)¶
- class PatientIdentifierConfigRequest(*, config: Annotated[UUID, UuidVersion(uuid_version=4)], value: str)¶
Bases:
BaseModel
- 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]] = {'config': FieldInfo(annotation=UUID, required=True, metadata=[UuidVersion(uuid_version=4)]), 'value': 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 PatientCreateSpec(*, meta: dict = {}, id: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None, name: Annotated[str, MaxLen(max_length=200)], gender: GenderChoices, phone_number: Annotated[str | PhoneNumber(country_code=None, national_number=None, extension=None, italian_leading_zero=None, number_of_leading_zeros=None, country_code_source=0, preferred_domestic_carrier_code=None), MaxLen(max_length=14), PhoneNumberValidator(default_region=None, number_format=E164, supported_regions=[])], emergency_phone_number: Annotated[Annotated[str | PhoneNumber(country_code=None, national_number=None, extension=None, italian_leading_zero=None, number_of_leading_zeros=None, country_code_source=0, preferred_domestic_carrier_code=None), PhoneNumberValidator(default_region=None, number_format=E164, supported_regions=[])] | None, MaxLen(max_length=14)] = None, address: str | None = None, permanent_address: str | None = None, pincode: int | None = None, deceased_datetime: Annotated[datetime, AfterValidator(func=validate_timezone_aware)] | None = None, blood_group: BloodGroupChoices | None = None, geo_organization: Annotated[UUID, UuidVersion(uuid_version=4)], date_of_birth: date | None = None, age: int | None = None, identifiers: list[PatientIdentifierConfigRequest] = [], tags: list[Annotated[UUID, UuidVersion(uuid_version=4)]] = [])¶
Bases:
PatientBaseSpec
- identifiers: list[PatientIdentifierConfigRequest]¶
- classmethod validate_geo_organization(geo_organization)¶
- validate_identifiers()¶
- 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]] = {'address': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'age': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'blood_group': FieldInfo(annotation=Union[BloodGroupChoices, NoneType], required=False, default=None), 'date_of_birth': FieldInfo(annotation=Union[date, NoneType], required=False, default=None), 'deceased_datetime': FieldInfo(annotation=Union[Annotated[datetime, AfterValidator], NoneType], required=False, default=None), 'emergency_phone_number': FieldInfo(annotation=Union[Annotated[Union[str, PhoneNumber], PhoneNumberValidator], NoneType], required=False, default=None, metadata=[MaxLen(max_length=14)]), 'gender': FieldInfo(annotation=GenderChoices, required=True), 'geo_organization': FieldInfo(annotation=UUID, required=True, metadata=[UuidVersion(uuid_version=4)]), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'identifiers': FieldInfo(annotation=list[PatientIdentifierConfigRequest], required=False, default=[]), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'name': FieldInfo(annotation=str, required=True, metadata=[MaxLen(max_length=200)]), 'permanent_address': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'phone_number': FieldInfo(annotation=Union[str, PhoneNumber], required=True, metadata=[MaxLen(max_length=14), PhoneNumberValidator(default_region=None, number_format='E164', supported_regions=[])]), 'pincode': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'tags': FieldInfo(annotation=list[Annotated[UUID, UuidVersion]], required=False, default=[])}¶
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 PatientUpdateSpec(*, meta: dict = {}, id: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None, name: Annotated[str | None, MaxLen(max_length=200)] = None, gender: GenderChoices | None = None, phone_number: Annotated[Annotated[str | PhoneNumber(country_code=None, national_number=None, extension=None, italian_leading_zero=None, number_of_leading_zeros=None, country_code_source=0, preferred_domestic_carrier_code=None), PhoneNumberValidator(default_region=None, number_format=E164, supported_regions=[])] | None, MaxLen(max_length=14)] = None, emergency_phone_number: Annotated[Annotated[str | PhoneNumber(country_code=None, national_number=None, extension=None, italian_leading_zero=None, number_of_leading_zeros=None, country_code_source=0, preferred_domestic_carrier_code=None), PhoneNumberValidator(default_region=None, number_format=E164, supported_regions=[])] | None, MaxLen(max_length=14)] = None, address: str | None = None, permanent_address: str | None = None, pincode: int | None = None, deceased_datetime: Annotated[datetime, AfterValidator(func=validate_timezone_aware)] | None = None, blood_group: BloodGroupChoices | None = None, date_of_birth: date | None = None, age: int | None = None, geo_organization: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None, identifiers: list[PatientIdentifierConfigRequest] = [])¶
Bases:
PatientBaseSpec
- gender: GenderChoices | None¶
- phone_number: Annotated[str | PhoneNumber(country_code=None, national_number=None, extension=None, italian_leading_zero=None, number_of_leading_zeros=None, country_code_source=0, preferred_domestic_carrier_code=None), PhoneNumberValidator(default_region=None, number_format=E164, supported_regions=[])] | None¶
- emergency_phone_number: Annotated[str | PhoneNumber(country_code=None, national_number=None, extension=None, italian_leading_zero=None, number_of_leading_zeros=None, country_code_source=0, preferred_domestic_carrier_code=None), PhoneNumberValidator(default_region=None, number_format=E164, supported_regions=[])] | None¶
- blood_group: BloodGroupChoices | None¶
- identifiers: list[PatientIdentifierConfigRequest]¶
- classmethod validate_geo_organization(geo_organization)¶
- perform_extra_deserialization(is_update, obj)¶
- classmethod validate_identifiers(identifiers, info)¶
- 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]] = {'address': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'age': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'blood_group': FieldInfo(annotation=Union[BloodGroupChoices, NoneType], required=False, default=None), 'date_of_birth': FieldInfo(annotation=Union[date, NoneType], required=False, default=None), 'deceased_datetime': FieldInfo(annotation=Union[Annotated[datetime, AfterValidator], NoneType], required=False, default=None), 'emergency_phone_number': FieldInfo(annotation=Union[Annotated[Union[str, PhoneNumber], PhoneNumberValidator], NoneType], required=False, default=None, metadata=[MaxLen(max_length=14)]), 'gender': FieldInfo(annotation=Union[GenderChoices, NoneType], required=False, default=None), '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), 'identifiers': FieldInfo(annotation=list[PatientIdentifierConfigRequest], required=False, default=[]), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'name': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, metadata=[MaxLen(max_length=200)]), 'permanent_address': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'phone_number': FieldInfo(annotation=Union[Annotated[Union[str, PhoneNumber], PhoneNumberValidator], NoneType], required=False, default=None, metadata=[MaxLen(max_length=14)]), 'pincode': FieldInfo(annotation=Union[int, NoneType], required=False, default=None)}¶
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 PatientListSpec(*, meta: dict = {}, id: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None, name: Annotated[str, MaxLen(max_length=200)], gender: GenderChoices, phone_number: Annotated[str | PhoneNumber(country_code=None, national_number=None, extension=None, italian_leading_zero=None, number_of_leading_zeros=None, country_code_source=0, preferred_domestic_carrier_code=None), MaxLen(max_length=14), PhoneNumberValidator(default_region=None, number_format=E164, supported_regions=[])], emergency_phone_number: Annotated[Annotated[str | PhoneNumber(country_code=None, national_number=None, extension=None, italian_leading_zero=None, number_of_leading_zeros=None, country_code_source=0, preferred_domestic_carrier_code=None), PhoneNumberValidator(default_region=None, number_format=E164, supported_regions=[])] | None, MaxLen(max_length=14)] = None, address: str | None = None, permanent_address: str | None = None, pincode: int | None = None, deceased_datetime: Annotated[datetime, AfterValidator(func=validate_timezone_aware)] | None = None, blood_group: BloodGroupChoices | None = None, date_of_birth: date | None = None, year_of_birth: date | None = None, created_date: datetime, modified_date: datetime, instance_tags: list[dict] = [], facility_tags: list[dict] = [])¶
Bases:
PatientBaseSpec
- classmethod perform_extra_serialization(mapping, obj, *args, **kwargs)¶
- 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]] = {'address': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'blood_group': FieldInfo(annotation=Union[BloodGroupChoices, NoneType], required=False, default=None), 'created_date': FieldInfo(annotation=datetime, required=True), 'date_of_birth': FieldInfo(annotation=Union[date, NoneType], required=False, default=None), 'deceased_datetime': FieldInfo(annotation=Union[Annotated[datetime, AfterValidator], NoneType], required=False, default=None), 'emergency_phone_number': FieldInfo(annotation=Union[Annotated[Union[str, PhoneNumber], PhoneNumberValidator], NoneType], required=False, default=None, metadata=[MaxLen(max_length=14)]), 'facility_tags': FieldInfo(annotation=list[dict], required=False, default=[]), 'gender': FieldInfo(annotation=GenderChoices, required=True), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'instance_tags': FieldInfo(annotation=list[dict], required=False, default=[]), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'modified_date': FieldInfo(annotation=datetime, required=True), 'name': FieldInfo(annotation=str, required=True, metadata=[MaxLen(max_length=200)]), 'permanent_address': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'phone_number': FieldInfo(annotation=Union[str, PhoneNumber], required=True, metadata=[MaxLen(max_length=14), PhoneNumberValidator(default_region=None, number_format='E164', supported_regions=[])]), 'pincode': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'year_of_birth': FieldInfo(annotation=Union[date, NoneType], required=False, default=None)}¶
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 PatientPartialSpec(*, meta: dict = {}, id: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None, name: str, gender: GenderChoices, phone_number: str, partial_id: str)¶
Bases:
EMRResource
- gender: GenderChoices¶
- classmethod perform_extra_serialization(mapping, 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]] = {'gender': FieldInfo(annotation=GenderChoices, required=True), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'name': FieldInfo(annotation=str, required=True), 'partial_id': FieldInfo(annotation=str, required=True), 'phone_number': 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 PatientIdentifierResponse(*, config: PatientIdentifierListSpec, value: str)¶
Bases:
BaseModel
- config: PatientIdentifierListSpec¶
- 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]] = {'config': FieldInfo(annotation=PatientIdentifierListSpec, required=True), 'value': 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 PatientRetrieveSpec(*, meta: dict = {}, permissions: list[str] = [], id: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None, name: Annotated[str, MaxLen(max_length=200)], gender: GenderChoices, phone_number: Annotated[str | PhoneNumber(country_code=None, national_number=None, extension=None, italian_leading_zero=None, number_of_leading_zeros=None, country_code_source=0, preferred_domestic_carrier_code=None), MaxLen(max_length=14), PhoneNumberValidator(default_region=None, number_format=E164, supported_regions=[])], emergency_phone_number: Annotated[Annotated[str | PhoneNumber(country_code=None, national_number=None, extension=None, italian_leading_zero=None, number_of_leading_zeros=None, country_code_source=0, preferred_domestic_carrier_code=None), PhoneNumberValidator(default_region=None, number_format=E164, supported_regions=[])] | None, MaxLen(max_length=14)] = None, address: str | None = None, permanent_address: str | None = None, pincode: int | None = None, deceased_datetime: Annotated[datetime, AfterValidator(func=validate_timezone_aware)] | None = None, blood_group: BloodGroupChoices | None = None, date_of_birth: date | None = None, year_of_birth: date | None = None, created_date: datetime, modified_date: datetime, instance_tags: list[dict] = [], facility_tags: list[dict] = [], geo_organization: dict = {}, created_by: dict | None = None, updated_by: dict | None = None, instance_identifiers: list[PatientIdentifierResponse] = [], facility_identifiers: list[PatientIdentifierResponse] = [])¶
Bases:
PatientListSpec
,PatientPermissionsMixin
- instance_identifiers: list[PatientIdentifierResponse]¶
- facility_identifiers: list[PatientIdentifierResponse]¶
- classmethod perform_extra_serialization(mapping, obj, *args, **kwargs)¶
- 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]] = {'address': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'blood_group': FieldInfo(annotation=Union[BloodGroupChoices, NoneType], required=False, default=None), 'created_by': FieldInfo(annotation=Union[dict, NoneType], required=False, default=None), 'created_date': FieldInfo(annotation=datetime, required=True), 'date_of_birth': FieldInfo(annotation=Union[date, NoneType], required=False, default=None), 'deceased_datetime': FieldInfo(annotation=Union[Annotated[datetime, AfterValidator], NoneType], required=False, default=None), 'emergency_phone_number': FieldInfo(annotation=Union[Annotated[Union[str, PhoneNumber], PhoneNumberValidator], NoneType], required=False, default=None, metadata=[MaxLen(max_length=14)]), 'facility_identifiers': FieldInfo(annotation=list[PatientIdentifierResponse], required=False, default=[]), 'facility_tags': FieldInfo(annotation=list[dict], required=False, default=[]), 'gender': FieldInfo(annotation=GenderChoices, required=True), 'geo_organization': FieldInfo(annotation=dict, required=False, default={}), 'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'instance_identifiers': FieldInfo(annotation=list[PatientIdentifierResponse], required=False, default=[]), 'instance_tags': FieldInfo(annotation=list[dict], required=False, default=[]), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'modified_date': FieldInfo(annotation=datetime, required=True), 'name': FieldInfo(annotation=str, required=True, metadata=[MaxLen(max_length=200)]), 'permanent_address': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'permissions': FieldInfo(annotation=list[str], required=False, default=[]), 'phone_number': FieldInfo(annotation=Union[str, PhoneNumber], required=True, metadata=[MaxLen(max_length=14), PhoneNumberValidator(default_region=None, number_format='E164', supported_regions=[])]), 'pincode': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'updated_by': FieldInfo(annotation=Union[dict, NoneType], required=False, default=None), 'year_of_birth': FieldInfo(annotation=Union[date, NoneType], required=False, default=None)}¶
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.