This data model communicates information about a patient’s surgical appointment. This includes details like assigned staff, case, and procedure details. These messages may come from an Operating Room (OR) system or from the same scheduling system used for non-surgical appointments.
A surgical appointment gets assigned a case number and patient ID. If the surgical appointment is rescheduled, the case number is usually retained. If the surgical appointment is canceled and later rescheduled, however, a new case number is created.
SurgicalScheduling doesn't include insurance information or preference card data (i.e., a surgeon's list of preferred supplies). Preference card data isn't currently exchanged via a known standard, but you can use the Inventory data model to track used or wasted supplies.
This data model has event types that allow you to:
- receive a notification about surgical appointment updates.
Receive a notification when something about a surgical procedure has changed (e.g., change in provider, duration of appointment).
For date or time changes, use a Reschedule message instead.
Request Body Schema
- Metarequired, object- DataModelrequired, stringReliableSurgicalScheduling 
- EventTyperequired, stringReliableModification 
- 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.
 
- Patientrequired, object- Identifiersrequired, Array of objectList of IDs and ID types that identify the patient - IDrequired, stringReliableID for the patient 
- IDTyperequired, stringReliableType of ID. 
 E.g. MRN, EPI
 
- Demographicsobject- FirstNamestring, nullReliablePatient's first name 
- MiddleNamestring, nullPossiblePatient's middle name or middle initial. For patients with multiple middle names, all their middle names are included in this field. 
- LastNamestring, nullReliablePatient's last name 
- DOBstring, nullReliablePatient's date of birth. 
 In ISO 8601 format
- SSNstring, nullProbablePatient's social security number 
- Sexstring, nullReliableValue SetPatient's sex 
- Racestring, nullPossibleValue SetPatient's race 
- IsHispanicboolean, nullPossibleValue SetIndicates if the patient is of hispanic origin. 
- Religionstring, nullPossibleValue SetPatient's religious affiliation 
- MaritalStatusstring, nullPossibleValue SetPatient's marital status 
- IsDeceasedboolean, nullPossibleIndicates if the patient is deceased 
- DeathDateTimestring, nullPossibleDate and Time the patient was proclaimed deceased. 
 ISO 8601 Format
- PhoneNumberobject- Homestring, nullProbablePatient's home phone number. 
 In E. 164 Format. (e.g. +16085551234)
- Officestring, nullProbablePatient's office phone number. 
 In E. 164 Format. (e.g. +16085551234)
- Mobilestring, nullProbablePatient's mobile phone number. 
 In E. 164 Format. (e.g. +16085551234)
 
- EmailAddressesArray of stringPatient's email address(es) 
- Languagestring, nullPossibleValue SetPatient's primary spoken language. 
 In ISO 639-1 alpha values (e.g. 'en'). Supported Values
- CitizenshipArray of stringPatient'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 stringPatient-level notes 
 
- Proceduresrequired, Array of objectArray of procedures to be performed. This will typically contain one entry - but there may be more complex procedures involving multiple separate steps. - DateTimerequired, stringReliableDateTime of appointment. 
 ISO 8601 Format
- Durationrequired, numberReliableLength of appointment. 
 In minutes
- Codestring, nullProbableCode for the service 
- Codesetstring, nullProbableCode set used to identify the service. 
 Codeset will be blank for system-defined codes.
- Descriptionstring, nullProbableDescription of the service 
- ProcedureInfoArray of objectAdditional information about the procedure being scheduled, such as body site. - Descriptionstring, nullPossibleProcedureInfo description, such as 'Laterality'. 
- Valuestring, nullPossibleProcedureInfo value, such as 'unilateral left'. 
 
 
- Visitrequired, object- VisitNumberrequired, stringReliableVisit Number used by the EHR to track this appointment. 
 Unique ID of a single visit
- Locationrequired, objectLocation of the procedure - Departmentrequired, stringReliableDepartment 
- Typestring, nullReliableType of location. 
 Examples: Clinic, Department, Home, Nursing Unit, Provider's Office, Phone
- Facilitystring, nullReliableFacility. 
 Example: Community Hospital
- FacilityIdentifiersArray of objectList of IDs specific to this facility - IDstring, nullReliableAn ID specific to this facility 
- IDTypestring, nullReliableThe source or system to which this ID pertains. 
 Could be an OID or a human-readable name
 
- DepartmentIdentifiersArray of objectList of IDs specific to this department - IDstring, nullReliableAn ID specific to this department 
- IDTypestring, nullReliableThe source or system to which this ID pertains. 
 Could be an OID or a human-readable name
 
- Roomstring, nullReliableRoom. 
 Example: 136
- Bedstring, nullReliableBed. 
 Example: B
 
- AccountNumberstring, nullPossibleAccount Number. 
 An ID that can span several visits often related to the same issue - pregnancy, surgeries, research study, etc.
- VisitDateTimestring, nullPossibleDateTime of appointment. 
 ISO 8601 Format
- Statusstring, nullProbableStatus of the visit. 
 One of the following: Scheduled, Arrived, Completed, Pending, Canceled, Left without being seen, No show
- Durationnumber, nullPossibleLength of appointment. 
 In minutes
- PatientClassstring, nullReliablePatient class will indicate the state of the patient at the time of scheduling. 
 Examples: Inpatient, Outpatient, Emergency
- NotesArray of stringNotes about the visit 
- AttendingProviderobject- IDstring, nullProbableID of the attending provider. 
 This ID is often required for Inpatient Visits.
- IDTypestring, nullProbableID type of the ID for the attending provider 
- FirstNamestring, nullPossibleFirst name of the attending provider 
- LastNamestring, nullPossibleLast name of the attending provider 
- CredentialsArray of stringList of credentials for the attending 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
 
 
- DiagnosesArray of objectList of diagnoses associated with this 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
 
- EquipmentArray of objectEquipment or resources assigned to this appointment. Each may be scheduled individually. - Codestring, nullProbableCode for the equipment 
- Codesetstring, nullProbableCode set used to identify the equipment. 
 Codeset will be blank for system-defined codes.
- Descriptionstring, nullProbableDescription of the equipment. 
 Example: X-Ray, Therapy Ball, etc.
- StartDateTimestring, nullProbableIf the equipment's schedule is different from the appointment schedule, this is the time that this staff member is scheduled to start work. 
- Durationnumber, nullProbableLength of time that the equipment is scheduled for. 
 In minutes
 
 
- SurgeryStaffArray of objectAll of the staff assigned to this appointment. Each may be scheduled individually. - IDstring, nullProbableID of the Surgery staff member. 
 This ID is often required for Inpatient Visits.
- IDTypestring, nullProbableID type of the ID for the Surgery staff member 
- FirstNamestring, nullPossibleFirst name of the Surgery staff member 
- LastNamestring, nullPossibleLast name of the Surgery staff member 
- CredentialsArray of stringList of credentials for the Surgery staff member. 
 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
 
- RoleobjectThe role of this person in the surgery. - Codestring, nullProbableCode for the service 
- Codesetstring, nullProbableCode set used to identify the service. 
 Codeset will be blank for system-defined codes.
- Descriptionstring, nullProbableDescription of the service. 
 Example: Primary Surgeon, Anesthesiologist, etc.
 
- StartDateTimestring, nullProbableIf this staff member's schedule is different from the appointment schedule, this is the time that this staff member is scheduled to start work. 
- Durationnumber, nullReliableLength of time that the staff member is scheduled for. 
 In minutes
 
- SurgicalInfoArray of objectList of supplementary clinical information associated with the appointment. These may include answers to Ask at Order Entry (AOE) questions, preference card information, or discrete data points about the patient. - Codestring, nullProbableCode for the information element 
- Codesetstring, nullProbableCode set used to identify the information element. 
 Codeset will be blank for system-defined codes. LOINC is used for a subset of AOE questions.
- Descriptionstring, nullProbableDescription of the information element. 
 For AOEs, this is typically the text of the AOE question
- Valuestring, nullReliableThe value of the corresponding Surgical Info code. 
 For example, the code will identify the question being answered, and this property will contain the answer.
 
- SurgicalCaseobject- Numberstring, nullPossibleSurgery specific identifier 
- Statusstring, nullPossibleStatus of the surgical case. 
 This is most often an EHR-specific value, such as 'Procedure started' or 'In Room'.