care.emr.resources.scheduling.schedule.spec module

class SlotTypeOptions(*values)

Bases: str, Enum

open = 'open'
appointment = 'appointment'
closed = 'closed'
class SchedulableResourceTypeOptions(*values)

Bases: str, Enum

practitioner = 'practitioner'
location = 'location'
healthcare_service = 'healthcare_service'
class AvailabilityDateTimeSpec(*, meta: dict = {}, day_of_week: Annotated[int, Le(le=6)], start_time: time, end_time: time)

Bases: EMRResource

day_of_week: int
start_time: time
end_time: time
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_of_week': FieldInfo(annotation=int, required=True, metadata=[Le(le=6)]), 'end_time': FieldInfo(annotation=time, required=True), 'meta': FieldInfo(annotation=dict, required=False, default={}), 'start_time': FieldInfo(annotation=time, 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 AvailabilityBaseSpec(*, meta: dict = {}, id: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None)

Bases: EMRResource

id: 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]] = {'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'meta': FieldInfo(annotation=dict, 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 AvailabilityForScheduleSpec(*, meta: dict = {}, id: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None, name: str, slot_type: SlotTypeOptions, slot_size_in_minutes: Annotated[int | None, Ge(ge=1)], tokens_per_slot: Annotated[int | None, Ge(ge=1)], create_tokens: bool = False, reason: str = '', availability: list[AvailabilityDateTimeSpec])

Bases: AvailabilityBaseSpec

name: str
slot_type: SlotTypeOptions
slot_size_in_minutes: int | None
tokens_per_slot: int | None
create_tokens: bool
reason: str
availability: list[AvailabilityDateTimeSpec]
classmethod validate_availability(availabilities: list[AvailabilityDateTimeSpec])
validate_for_slot_type()
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]] = {'availability': FieldInfo(annotation=list[AvailabilityDateTimeSpec], required=True), 'create_tokens': FieldInfo(annotation=bool, required=False, default=False), '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), 'reason': FieldInfo(annotation=str, required=False, default=''), 'slot_size_in_minutes': FieldInfo(annotation=Union[int, NoneType], required=True, metadata=[Ge(ge=1)]), 'slot_type': FieldInfo(annotation=SlotTypeOptions, required=True), 'tokens_per_slot': FieldInfo(annotation=Union[int, NoneType], required=True, metadata=[Ge(ge=1)])}

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 AvailabilityCreateSpec(*, meta: dict = {}, id: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None, name: str, slot_type: SlotTypeOptions, slot_size_in_minutes: Annotated[int | None, Ge(ge=1)], tokens_per_slot: Annotated[int | None, Ge(ge=1)], create_tokens: bool = False, reason: str = '', availability: list[AvailabilityDateTimeSpec], schedule: Annotated[UUID, UuidVersion(uuid_version=4)])

Bases: AvailabilityForScheduleSpec

schedule: Annotated[UUID, UuidVersion(uuid_version=4)]
check_for_overlaps()
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]] = {'availability': FieldInfo(annotation=list[AvailabilityDateTimeSpec], required=True), 'create_tokens': FieldInfo(annotation=bool, required=False, default=False), '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), 'reason': FieldInfo(annotation=str, required=False, default=''), 'schedule': FieldInfo(annotation=UUID, required=True, metadata=[UuidVersion(uuid_version=4)]), 'slot_size_in_minutes': FieldInfo(annotation=Union[int, NoneType], required=True, metadata=[Ge(ge=1)]), 'slot_type': FieldInfo(annotation=SlotTypeOptions, required=True), 'tokens_per_slot': FieldInfo(annotation=Union[int, NoneType], required=True, metadata=[Ge(ge=1)])}

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 ScheduleBaseSpec(*, meta: dict = {}, id: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None)

Bases: EMRResource

id: 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]] = {'id': FieldInfo(annotation=Union[Annotated[UUID, UuidVersion], NoneType], required=False, default=None), 'meta': FieldInfo(annotation=dict, 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 ScheduleCreateSpec(*, meta: dict = {}, id: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None, facility: Annotated[UUID, UuidVersion(uuid_version=4)], name: str, valid_from: datetime, valid_to: datetime, availabilities: list[AvailabilityForScheduleSpec], resource_type: SchedulableResourceTypeOptions, resource_id: Annotated[UUID, UuidVersion(uuid_version=4)])

Bases: ScheduleBaseSpec

facility: Annotated[UUID, UuidVersion(uuid_version=4)]
name: str
valid_from: datetime
valid_to: datetime
availabilities: list[AvailabilityForScheduleSpec]
resource_type: SchedulableResourceTypeOptions
resource_id: Annotated[UUID, UuidVersion(uuid_version=4)]
classmethod validate_dates(value)
validate_period()
classmethod validate_availabilities_not_overlapping(availabilities: list[AvailabilityForScheduleSpec])
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]] = {'availabilities': FieldInfo(annotation=list[AvailabilityForScheduleSpec], required=True), 'facility': FieldInfo(annotation=UUID, required=True, metadata=[UuidVersion(uuid_version=4)]), '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), 'resource_id': FieldInfo(annotation=UUID, required=True, metadata=[UuidVersion(uuid_version=4)]), 'resource_type': FieldInfo(annotation=SchedulableResourceTypeOptions, required=True), 'valid_from': FieldInfo(annotation=datetime, required=True), 'valid_to': FieldInfo(annotation=datetime, 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 ScheduleUpdateSpec(*, meta: dict = {}, id: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None, name: str, valid_from: datetime, valid_to: datetime)

Bases: ScheduleBaseSpec

name: str
valid_from: datetime
valid_to: datetime
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]] = {'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), 'valid_from': FieldInfo(annotation=datetime, required=True), 'valid_to': FieldInfo(annotation=datetime, 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 ScheduleReadSpec(*, meta: dict = {}, id: Annotated[UUID, UuidVersion(uuid_version=4)] | None = None, name: str, valid_from: datetime, valid_to: datetime, availabilities: list = [], resource_type: SchedulableResourceTypeOptions, charge_item_definition: dict | None = None, revisit_allowed_days: int | None = None, revisit_charge_item_definition: dict | None = None, created_by: dict = {}, updated_by: dict = {})

Bases: ScheduleBaseSpec

name: str
valid_from: datetime
valid_to: datetime
availabilities: list
resource_type: SchedulableResourceTypeOptions
charge_item_definition: dict | None
revisit_allowed_days: int | None
revisit_charge_item_definition: dict | None
created_by: dict
updated_by: dict
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]] = {'availabilities': FieldInfo(annotation=list, required=False, default=[]), 'charge_item_definition': FieldInfo(annotation=Union[dict, NoneType], required=False, default=None), 'created_by': FieldInfo(annotation=dict, required=False, default={}), '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), 'resource_type': FieldInfo(annotation=SchedulableResourceTypeOptions, required=True), 'revisit_allowed_days': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'revisit_charge_item_definition': FieldInfo(annotation=Union[dict, NoneType], required=False, default=None), 'updated_by': FieldInfo(annotation=dict, required=False, default={}), 'valid_from': FieldInfo(annotation=datetime, required=True), 'valid_to': FieldInfo(annotation=datetime, 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.

has_overlapping_availability(availabilities: list[AvailabilityDateTimeSpec])