care.emr.api.viewsets.scheduling.booking module

class CancelBookingSpec(*, reason: Literal[BookingStatusChoices.cancelled, BookingStatusChoices.entered_in_error, BookingStatusChoices.rescheduled], note: str | None = None)

Bases: BaseModel

reason: Literal[BookingStatusChoices.cancelled, BookingStatusChoices.entered_in_error, BookingStatusChoices.rescheduled]
note: str | None
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=Union[str, NoneType], required=False, default=None), 'reason': FieldInfo(annotation=Literal[<BookingStatusChoices.cancelled: 'cancelled'>, <BookingStatusChoices.entered_in_error: 'entered_in_error'>, <BookingStatusChoices.rescheduled: 'rescheduled'>], 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 TokenGenerationSpec(*, category: Annotated[UUID, UuidVersion(uuid_version=4)], note: str | None = None, queue: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None)

Bases: BaseModel

category: Annotated[UUID, UuidVersion(uuid_version=4)]
note: str | None
queue: Annotated[UUID, UuidVersion(uuid_version=4)] | None
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]] = {'category': FieldInfo(annotation=UUID, required=True, metadata=[UuidVersion(uuid_version=4)]), 'note': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'queue': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], 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 RescheduleBookingSpec(*, new_slot: Annotated[UUID, UuidVersion(uuid_version=4)], new_booking_note: str, previous_booking_note: str | None = None, tags: list[Annotated[UUID, UuidVersion(uuid_version=4)]] = [])

Bases: BaseModel

new_slot: Annotated[UUID, UuidVersion(uuid_version=4)]
new_booking_note: str
previous_booking_note: str | None
tags: list[Annotated[UUID, UuidVersion(uuid_version=4)]]
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]] = {'new_booking_note': FieldInfo(annotation=str, required=True), 'new_slot': FieldInfo(annotation=UUID, required=True, metadata=[UuidVersion(uuid_version=4)]), 'previous_booking_note': FieldInfo(annotation=Union[str, 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 TokenBookingFilters(data=None, queryset=None, *, request=None, prefix=None)

Bases: FilterSet

base_filters = {'date': <django_filters.filters.DateFromToRangeFilter object>, 'patient': <django_filters.filters.UUIDFilter object>, 'resource_ids': <care.utils.filters.dummy_filter.DummyCharFilter object>, 'resource_type': <care.utils.filters.dummy_filter.DummyCharFilter object>, 'slot': <django_filters.filters.UUIDFilter object>, 'status': <care.utils.filters.multiselect.MultiSelectFilter object>}
declared_filters = {'date': <django_filters.filters.DateFromToRangeFilter object>, 'patient': <django_filters.filters.UUIDFilter object>, 'resource_ids': <care.utils.filters.dummy_filter.DummyCharFilter object>, 'resource_type': <care.utils.filters.dummy_filter.DummyCharFilter object>, 'slot': <django_filters.filters.UUIDFilter object>, 'status': <care.utils.filters.multiselect.MultiSelectFilter object>}
class TokenBookingViewSet(**kwargs)

Bases: EMRRetrieveMixin, EMRUpdateMixin, EMRListMixin, EMRBaseViewSet, EMRTagMixin

database_model

alias of TokenBooking

pydantic_model

alias of TokenBookingWriteSpec

pydantic_read_model

alias of TokenBookingReadSpec

pydantic_retrieve_model

alias of TokenBookingRetrieveSpec

pydantic_update_model

alias of TokenBookingWriteSpec

filterset_class

alias of TokenBookingFilters

filter_backends = [<class 'django_filters.rest_framework.backends.DjangoFilterBackend'>, <class 'care.emr.tagging.filters.SingleFacilityTagFilter'>, <class 'rest_framework.filters.OrderingFilter'>]
ordering_fields = ['created_date', 'token_slot__start_datetime']
resource_type = 'token_booking'
get_facility_obj()
get_facility_from_instance(instance)
authorize_update(request_obj, model_instance)
authorize_retrieve(model_instance)
get_queryset()
classmethod cancel_appointment_handler(instance, request_data, user)
cancel(request, *args, **kwargs)
reschedule(request, *args, **kwargs)
available_users(request, *args, **kwargs)
generate_token(request, *args, **kwargs)
authorize_booking_list(base_query, resource_type, organization_ids, resource_ids, user, facility)