This data model communicates information about a patient’s office or other outpatient appointment. EHR systems can send Scheduling messages to update your system with the appointment status, date/time, scheduled providers, and scheduled resources.
Every appointment gets assigned a visit number and patient ID. Any changes to the appointment are made with the relevant visit number. If the appointment is canceled and later rescheduled, however, a new visit number is created. Also keep in mind that scheduling holds and blocks don’t have an associated patient ID.
This data model has event types that allow you to:
- receive a notification about appointment updates;
- push or receive a list of available appointment slots;
- query for and receive open appointment times; or
- query for and receive booked appointment times.
Query for open times for booking an appointment within a given time range. Results are returned in Scheduling.AvailableSlotsResponse.
Request Body Schema
- Metarequired, object- DataModelrequired, stringReliableScheduling 
- EventTyperequired, stringReliableAvailableSlots 
- EventDateTimestring, nullReliableDisplays the UTC date and time that an outgoing request is delivered or an incoming request is received. 
 ISO 8601 Format
- Testboolean, nullReliableIndicates whether the request is a test or not. 
- SourceobjectContains the information for the system initiating the message, including the source ID and name. 
 Included in messages from Redox- IDstring, nullReliableIdentifies the system initiating the message. If you have multiple OAuth API keys per environment type, this value is required. If you have only one OAuth API key per environment type, or you're using legacy API keys, this value is optional. 
 UUID
- Namestring, nullReliableDisplays the name of the system initiating the message. 
 
- DestinationsArray of objectContains the information for the endpoint(s) receiving the request. A request must contain at least one destination, but asynchronous requests can have more than one destination. Synchronous requests like queries can only support one destination. 
 Required when sending data to Redox.- IDstring, nullReliableIdentifies the endpoint that the request is directed to. 
 UUID
- Namestring, nullReliableDisplays the name of the endpoint that the request is directed to. 
 
- LogsArray of objectContains the log identifier(s) for the request. - IDstring, nullReliableIdentifies the request log(s) that correspond to this request. You can use this value to locate the relevant log in the Redox dashboard for support and reference. 
 UUID
- AttemptIDstring, nullReliableIdentifies the request log attempt value, which is useful when retries are possible. 
 UUID
 
- FacilityCodestring, nullPossibleCode for the facility related to the message. 
 Only use this field if a health system indicates you should. The code is specific to the health system's EHR and might not be unique across health systems. In general, the facility fields within the data models (e.g. OrderingFacility) are more reliable and informative.
 
- StartDateTimerequired, stringReliableDefines the start of the time range to search for appointments. 
 ISO 8601 Format
- Patientobject- IdentifiersArray of objectContains a list of identifiers and identifier types that correlate to the patient. - IDstring, nullPossibleContains an identifier for the patient. 
- IDTypestring, nullPossibleDefines the type of identifier used to identify the patient (e.g., MRN, EPI). 
 
- Demographicsobject- FirstNamestring, nullPossibleDisplays the patient's first name. 
- MiddleNamestring, nullPossibleDisplays the patient's middle name or initial. For patients with multiple middle names, all their middle names are included in this field. 
- LastNamestring, nullPossibleDisplays the patient's last name. 
- DOBstring, nullPossibleSpecifies the patient's date of birth. 
 In ISO 8601 format
- SSNstring, nullPossibleContains the patient's social security number. 
- Sexstring, nullPossibleValue SetSpecifies the patient's sex. 
- Racestring, nullPossibleValue SetSpecifies the patient's race. 
- IsHispanicboolean, nullPossibleValue SetIndicates whether the patient is of hispanic origin. 
- Religionstring, nullPossibleValue SetIndicates the patient's religious affiliation. 
- MaritalStatusstring, nullPossibleValue SetSpecifies the patient's marital status. 
- IsDeceasedboolean, nullPossibleIndicates if the patient is deceased. 
- DeathDateTimestring, nullPossibleSpecifies the date and time that the patient was proclaimed deceased. 
 ISO 8601 Format
- PhoneNumberobject- Homestring, nullPossibleDisplays the patient's home phone number. 
 In E. 164 Format. (e.g. +16085551234)
- Officestring, nullPossibleDisplays the patient's office phone number. 
 In E. 164 Format. (e.g. +16085551234)
- Mobilestring, nullPossibleDisplays the patient's mobile phone number. 
 In E. 164 Format. (e.g. +16085551234)
 
- EmailAddressesArray of stringDisplays the patient's email address(es). 
- Languagestring, nullPossibleValue SetIndicates the patient's primary spoken language. 
 In ISO 639-1 alpha values (e.g. 'en'). Supported Values
- CitizenshipArray of stringSpecifies the patient's nation(s) of citizenship. 
 In ISO 3166 alpha 2 format (e.g. 'US').
- AddressobjectPatient's home address - StreetAddressstring, nullProbableStreet address 
- Citystring, nullProbableCity 
- Statestring, nullProbableState 
- ZIPstring, nullProbableZIP 
- Countystring, nullPossibleCounty 
- Countrystring, nullPossibleValue SetCountry 
 
 
- NotesArray of stringContains any patient-level notes. 
 Not supported with data on demand.
- DiagnosesArray of objectContains a list of diagnoses associated with the visit. - Codestring, nullProbableCode for the diagnosis 
- Codesetstring, nullProbableValue SetCode set used to identify the diagnosis. 
 One of the following: ICD-9, ICD-10, HCPCS, CPT
- Namestring, nullProbableName of the diagnosis 
- Typestring, nullPossibleValue SetType of the diagnosis 
- DocumentedDateTimestring, nullPossibleDateTime the diagnosis was documented. 
 ISO 8601 Format
 
 
- EndDateTimestring, nullPossibleDefines the end of the time range to search for appointments. 
 ISO 8601 Format
- Visitobject- ReasonsArray of stringContains is a patient-friendly value that provides context for the purpose of the appointment (e.g., knee pain). This differs from the Visit Type since it can include a clinical component. 
- AttendingProvidersArray of object- IDstring, nullProbableID of the provider. 
 This ID is often required for Inpatient Visits.
- IDTypestring, nullProbableID type of the ID for the provider 
- FirstNamestring, nullPossibleFirst name of the provider 
- LastNamestring, nullPossibleLast name of the provider 
- CredentialsArray of stringList of credentials for the provider. 
 e.g. MD, PhD
- AddressobjectProvider's address - StreetAddressstring, nullPossibleStreet address 
- Citystring, nullPossibleCity 
- Statestring, nullPossibleState 
- ZIPstring, nullPossibleZIP 
- Countystring, nullPossibleCounty 
- Countrystring, nullPossibleValue SetCountry 
 
- EmailAddressesArray of stringProvider's email address(es) 
- PhoneNumberobject- Officestring, nullPossibleProvider's office phone number. 
 In E. 164 Format. (e.g. +16085551234)
 
- LocationobjectProvider's location - Typestring, nullPossibleType of location. 
 Examples: Clinic, Department, Home, Nursing Unit, Provider's Office, Phone
- Facilitystring, nullPossibleFacility. 
 Example: Community Hospital
- FacilityIdentifiersArray of objectList of IDs specific to this facility - IDstring, nullPossibleAn ID specific to this facility 
- IDTypestring, nullPossibleThe source or system to which this ID pertains. 
 Could be an OID or a human-readable name
 
- Departmentstring, nullPossibleDepartment 
- DepartmentIdentifiersArray of objectList of IDs specific to this department - IDstring, nullPossibleAn ID specific to this department 
- IDTypestring, nullPossibleThe source or system to which this ID pertains. 
 Could be an OID or a human-readable name
 
- Roomstring, nullPossibleRoom. 
 Example: 136
 
 
- LocationsArray of objectSpecifies the location of the appointment. - Typestring, nullProbableSpecifies the type of location (e.g., clinic, department, home, nursing unit, provider office, phone). 
 Not supported with data on demand.
- Facilitystring, nullProbableSpecifies the kind of facility (e.g., community hospital). 
 Not supported with data on demand.
- Departmentstring, nullProbableSpecifies the department where the patient appointment takes place. 
- SpecialtyDepartmentobjectIndicates the departments specialty. - Codestring, nullPossibleCode for the specialty of the department 
- Codesetstring, nullPossibleCode set used to identify the specialty of the department 
- Descriptionstring, nullPossibleDescription of the specialty of the department 
 
- Roomstring, nullProbableDisplays the room number for the visit (e.g., 136). 
 Not supported with data on demand.
- IDstring, nullPossibleContains the unique identifier of the visit location. 
 
- VisitTypeArray of objectDefines the type of patient visit. - Codestring, nullPossibleCode for the visit type 
- Codesetstring, nullPossibleCode set used to identify the visit type 
- Descriptionstring, nullPossibleDescription of the visit type 
 
- VisitPreferenceArray of objectContains the details for the appointment scheduling preferences. - Durationstring, nullPossibleDefines the preferred length of time for the patient visit. 
- DurationUnitstring, nullPossibleSpecifies the unit of measurement for the duration field. 
- DayArray of stringSpecifies the preferred day of week for scheduling the appointment. 
- TimeArray of stringSpecifies the preferred time of day for the appointment.