IP Library Granted Patent US 11,968,669
Granted Patent B2
US 11,968,669 · App. 17/416,425 · Granted Apr 23, 2024

Scheduling database system

Inventors: Bjarne Bergheim (Laguna Hills, CA); Sean Doonan (San Diego, CA); Gary B. Carr (Rancho Santa Fe, CA); Luiz A. Motta (San Diego, CA); Zoltan Iles (Carlsbad, CA); Russell Tarvin (Oceanside, CA)
Assignee: TDO Software, Inc.
H04W72/20H04W72/121H04W72/54
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,968,669
App. No.
17/416,425
Granted
Apr 23, 2024
Kind
B2
Abstract

Systems and methods are provided for database scheduling. Scheduling entries are created and stored in a central database and an entity's database. In response to a user request to view the availability of the entity, a scheduling system can retrieve the scheduling data of an entity from the central database. The scheduling database system attempts to connect to an entity to propagate a scheduling entry in near time. If a connection to the entity from the scheduling database system can be made, the system updates the entity's database in near time. However, an attempted connection may have a fail status due to network issues and/or a VPN connection being unavailable. If a connection is unavailable, the updated scheduling data is propagated via a synchronization process. In the scheduling database system, a scheduling entry in the central scheduling database includes a synchronization status that marks the scheduling entry for future propagation. A synchronization status is set in the entities' database(s) to mark an entry for synchronization purposes. The scheduling database system permits double booking.

Claims (102)

1. A method comprising:

receiving, via a first scheduling input user interface, first login information;

determining a first profile associated with the first login information;

receiving, via the first scheduling input user interface, a first scheduling search preference;

determining, from a plurality of entities, a first subset of entities according to the first scheduling search preference, wherein to determine the first subset of entities further comprises:

determining that the first profile lacks authorization for a first entity of the plurality of entities, wherein the first subset of entities excludes the first entity;

retrieving first scheduling data for the first subset of entities;

causing presentation of a first scheduling user interface, wherein the first scheduling user interface presents the first scheduling data;

receiving, via a second scheduling input user interface, second login information;

determining a second profile associated with the second login information;

receiving, via the second scheduling input user interface, a second scheduling search preference;

determining, from the plurality of entities, a second subset of entities according to the second scheduling search preference, wherein to determine the second subset of entities further comprises:

determining that the second profile has authorization for the first entity, wherein the second subset of entities comprises the first entity;

retrieving second scheduling data for the second subset of entities that includes the first entity; and

causing presentation of a second scheduling user interface, wherein the second scheduling user interface presents the second scheduling data.

2. The method of claim 1 , further comprising:

receiving, via the second scheduling user interface, a scheduling selection for the first entity;

determining that an attempted connection with the first entity has a failed status; and

storing, in a first data store, a first scheduling entry for the first entity according to the scheduling selection, wherein the first scheduling entry further comprises a first synchronization status based at least in part on the failed status of the attempted connection, and wherein the first synchronization status marks the first scheduling entry for future propagation to the first entity.

3. The method of claim 2 , further comprising:

determining to synchronize the first scheduling entry based at least in part on the first synchronization status of the first scheduling entry; and

causing a second scheduling entry to be stored or updated in a second data store of the first entity, the second scheduling entry corresponding to the first scheduling entry.

4. The method of claim 1 , further comprising:

receiving, via the second scheduling user interface, a scheduling selection for the first entity;

storing, in a first data store, a first scheduling entry for the first entity according to the scheduling selection, wherein the first scheduling entry further comprises a first synchronization status;

determining to synchronize the first scheduling entry based at least n part on the first synchronization status of the first scheduling entry; and

causing a second scheduling entry to be stored or updated in a second data store of the first entity, the second scheduling entry corresponding to the first scheduling entry.

5. The method of claim 4 , further comprising:

setting, in the first data store, a first field in a third scheduling entry to a second synchronization status, wherein the second synchronization status marks the third scheduling entry for a synchronization check from an entity to the first data store;

determining that the third scheduling entry has a corresponding entry in the second data store of the first entity; and

updating; in the first data store, the first field in the third scheduling entry from the second synchronization status to a third synchronization status, the third synchronization status indicating a synchronization complete status.

6. The method of claim 5 , further comprising:

setting, in the first data store, a second field in a fourth scheduling entry to the second synchronization status;

determining that an entry in the second data store of the first entity does not exist that corresponds to the fourth scheduling entry;

determining to preserve the third scheduling entry based at least in part on the first field being set to the third synchronization status;

determining to delete the fourth scheduling entry based at least in part on the second field being set to the second synchronization status; and

deleting, in the first data store, the fourth scheduling entry.

7. A system comprising:

a non-transitory computer storage medium configured to at least store computer-executable instructions; and

one or more computer hardware processors in communication with the non-transitory computer storage medium, the one or more computer hardware processors configured to execute the computer-executable instructions to at least:

receive, via a first scheduling input user interface, first login information;

determine a first profile associated with the first login information;

receive, via the first scheduling input user interface, a first scheduling search preference;

determine, from a plurality of entities, a first subset of entities according to the first scheduling search preference, wherein to determine the first subset of entities further comprises:

determine that the first profile lacks authorization for a first entity of the plurality of entities, wherein the first subset of entities excludes the first entity;

retrieve first scheduling data for the first subset of entities;

cause presentation of a first scheduling user interface comprising the first scheduling data;

receive, via a second scheduling input user interface, second login information;

determine a second profile associated with the second login information;

receive, via the second scheduling input user interface, a second scheduling search preference;

determine, from the plurality of entities, a second subset of entities according to the second scheduling search preference, wherein to determine the second subset of entities further comprises:

determine that the second profile has authorization for the first entity, wherein the second subset of entities comprises the first entity;

retrieve second scheduling data for the second subset of entities that includes the first entity; and

cause presentation of a second scheduling user interface comprising the second scheduling data.

8. The system of claim 7 , wherein to determine that the first profile lacks authorization for the first entity further comprises:

determine that the first profile corresponds to a profile for a person.

9. The system of claim 7 , wherein to determine that the second profile has authorization for the first entity further comprises:

determine that the second profile corresponds to a general practitioner.

10. The system of claim 7 , wherein to determine that the second profile has authorization for the first entity further comprises:

determine that the second profile corresponds to at least one preferred referrer for the first entity.

11. The system of claim 7 , wherein the first entity corresponds to a special practitioner.

12. The system of claim 7 , further comprising a first data store; wherein the one or more computer hardware processors are further configured to:

receive, via the second scheduling user interface, a scheduling selection for the first entity;

determine that an attempted connection with the first entity has a failed status; and

store, in a first data store, a first scheduling entry for the first entity according to the scheduling selection, wherein the first scheduling entry further comprises a first synchronization status based at least in part on the failed status of the attempted connection, and wherein the first synchronization status marks the first scheduling entry for future propagation to the first entity.

13. The system of claim 12 , the one or more computer hardware processors are further configured to:

determine to synchronize the first scheduling entry based at least in part on the first synchronization status of the first scheduling entry; and

cause a second scheduling entry to be stored or updated in a second data store of the first entity, the second scheduling entry corresponding to the first scheduling entry.

14. A system comprising:

a non-transitory computer storage medium configured to at least store computer-executable instructions; and

one or more computer hardware processors in communication with the non-transitory computer storage medium, the one or more computer hardware processors configured to execute the computer-executable instructions to at least:

receive, via a scheduling input user interface, login information;

determine a profile associated with the login information;

receive, via the scheduling input user interface, a scheduling search preference;

determine, from a plurality of entities, a subset of entities according to the scheduling search preference, wherein to determine the subset of entities further comprises:

determine that the profile has authorization for a first entity,

wherein the subset of entities comprises the first entity;

retrieve scheduling data for the subset of entities that includes the first entity; and

cause presentation of a scheduling user interface, wherein the scheduling user interface presents the scheduling data.

15. The system of claim 14 , further comprising a first data store, wherein the one or more computer hardware processors are further configured to:

receive, via the scheduling user interface, a scheduling selection for the first entity;

determine that an attempted connection with the first entity has a failed status; and

store, in the first data store, a first scheduling entry for the first entity according to the scheduling selection, wherein the first scheduling entry further comprises a first synchronization status based at least in part on the failed status of the attempted connection, and wherein the first synchronization status marks the first scheduling entry for future propagation to the first entity.

16. The system of claim 15 , wherein the one or more computer hardware processors are further configured to:

determine to synchronize the first scheduling entry based at least in part on the first synchronization status of the first scheduling entry; and

cause a second scheduling entry to be stored or updated in a second data store of the first entity, the second scheduling entry corresponding to the first scheduling entry.

17. The system of claim 14 , further comprising a first data store, wherein the one or more computer hardware processors are further configured to:

receive, via the scheduling user interface, a scheduling selection for the first entity;

store, in the first data store, a first scheduling entry for the first entity according to the scheduling selection, wherein the first scheduling entry further comprises a first synchronization status;

determine to synchronize the first scheduling entry based at least in part on the first synchronization status of the first scheduling entry; and

cause a second scheduling entry to be stored or updated in a second data store of the first entity, the second scheduling entry corresponding to the first scheduling entry.

18. The system of claim 17 , wherein the one or more computer hardware processors are further configured to:

set, in the first data store, a first field in a third scheduling entry to a second synchronization status, wherein the second synchronization status marks the third scheduling entry for a synchronization check from an entity to the first data store;

determine that the third scheduling entry has a corresponding entry in the second data store of the first entity; and

update, in the first data store, the first field in the third scheduling entry from the second synchronization status to a third synchronization status, the third synchronization status indicating a synchronization complete status.

19. The system of claim 18 , wherein the one or more computer hardware processors are further configured to:

set, in the first data store, a second field in a fourth scheduling entry to the second synchronization status;

determine that an entry in the second data store of the first entity does not exist that corresponds to the fourth scheduling entry;

determine to delete the fourth scheduling entry based at least in part on the second field being set to the second synchronization status; and

delete, in the first data store, the fourth scheduling entry.

20. The system of claim 14 , wherein to determine that the profile has authorization for the first entity further comprises:

determine that the profile corresponds to a general practitioner.

Assignments (2)
CHANGE OF NAME Recorded Mar 21, 2024
From: TDO SOFTWARE, INC.
To: SONENDO, INC.
Reel/Frame 066861/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2021
From: BERGHEIM, BJARNE; DOONAN, SEAN; CARR, GARY B.; MOTTA, LUIZ A.; ILES, ZOLTAN; TARVIN, RUSSELL
To: TDO SOFTWARE, INC.
Reel/Frame 057939/0001 →
Continuity (6)
Provisional Application 62860162 · Jun 11, 2019
Provisional Application 62831464 · Apr 9, 2019
Provisional Application 62798347 · Jan 29, 2019
Provisional Application 62787705 · Jan 2, 2019
Provisional Application 62782234 · Dec 19, 2018
Related Publication 20220078829A1 · Mar 10, 2022
Cited By (2)
US 1,118,938 US 12,708,496