care.emr.api.viewsets.scheduling.availability module¶
- class SlotsForDayRequestSpec(*, resource_type: SchedulableResourceTypeOptions, resource_id: Annotated[UUID, UuidVersion(uuid_version=4)], day: date)¶
Bases:
BaseModel
- resource_type: SchedulableResourceTypeOptions¶
- 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]] = {'day': FieldInfo(annotation=date, required=True), 'resource_id': FieldInfo(annotation=UUID, required=True, metadata=[UuidVersion(uuid_version=4)]), 'resource_type': FieldInfo(annotation=SchedulableResourceTypeOptions, 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 AppointmentBookingSpec(*, patient: Annotated[UUID, UuidVersion(uuid_version=4)], note: str, tags: list[Annotated[UUID, UuidVersion(uuid_version=4)]] = [])¶
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]] = {'note': FieldInfo(annotation=str, required=True), 'patient': FieldInfo(annotation=UUID, required=True, metadata=[UuidVersion(uuid_version=4)]), '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 AvailabilityStatsRequestSpec(*, from_date: date, to_date: date, resource_type: SchedulableResourceTypeOptions, resource_id: Annotated[UUID, UuidVersion(uuid_version=4)])¶
Bases:
BaseModel
- resource_type: SchedulableResourceTypeOptions¶
- validate_period()¶
- 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]] = {'from_date': FieldInfo(annotation=date, required=True), 'resource_id': FieldInfo(annotation=UUID, required=True, metadata=[UuidVersion(uuid_version=4)]), 'resource_type': FieldInfo(annotation=SchedulableResourceTypeOptions, required=True), 'to_date': FieldInfo(annotation=date, 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.
- convert_availability_and_exceptions_to_slots(availabilities, exceptions, day)¶
- lock_create_appointment(token_slot, patient, created_by, note)¶
- class SlotViewSet(**kwargs)¶
Bases:
EMRRetrieveMixin
,EMRBaseViewSet
- pydantic_read_model¶
alias of
TokenSlotBaseSpec
- get_slots_for_day(request, *args, **kwargs)¶
- classmethod get_slots_for_day_handler(facility_external_id, request_data)¶
- classmethod create_appointment_handler(obj, request_data, user)¶
- authorize_update(request_obj, model_instance)¶
- create_appointment(request, *args, **kwargs)¶
- availability_stats(request, *args, **kwargs)¶
Return the stats for available slots compared to the booked slots ie Availability percentage.
- authorize_retrieve(model_instance)¶
- authorize_resource_read(resource_obj)¶
- get_queryset()¶
- calculate_slots(date: date, availabilities: list[Availability], schedules, exceptions: list[AvailabilityException])¶