/
Schedule an appointment flow

Schedule an appointment flow

Appointment Scheduling Flow Documentation

Use Case: Patient schedules a new medical appointment after logging in.

Precondition:

  • User has successfully logged in with valid username and password.

Use Case Steps:

User Login

The application initiates the login process.

Call the userLogin function with the user's credentials.

public func userLogin(userName: String, password: String, success: @escaping() -> Void, failure: @escaping (Error) -> Void) { // Perform the login process with the provided username and password. }

Handle success and failure scenarios appropriately.

Create Intake Information with IntakeConfig:

Define an IntakeConfig with relevant information.

let intakeConfig = IntakeConfig(reasonForVisit: "Routine check-up")

 

Use VisitService to create intake with the provided configuration.

VisitService.shared.createIntake(with: intakeConfig, success: { intake // Store the intake to update later }, failure: { error in // Handle the failure to start the visit using VSeeKit native view. })

Get List of Consultation Types:

Retrieve a list of consultation types corresponding to the current room.

public func getConsultationList() throws -> [Consultation]

 

Select a Consultation Type and Update Intake:

Choose a consultation type from the obtained list.

Update the previously created intake with the selected consultation type.

VisitService.shared.updateIntakeWithConsultation(intake: Intake, consultation: Consultation, success: @escaping () -> Void, failure: @escaping (Error) -> Void)

Use Updated Intake Information to Get Available Room Slots:

Utilize the updated intake information to retrieve a list of available room slots for each corresponding day.

VisitService.shared.getRoomSlotAvailableFrom(date: Date, provider: Provider?, intake: Intake, success: @escaping ([RoomSlot]) -> Void, failure: @escaping (Error) -> Void)

 

Select a Room Slot and Schedule the Visit:

Choose a room slot from the list of available slots.

Schedule the visit using the selected intake, provider (if applicable), and room slot.

VisitService.shared.scheduleVisit(intake: Intake, provider: Provider?, slot: RoomSlot, success: @escaping (Visit?) -> Void, failure: @escaping (Error?) -> Void)

Handle success and failure scenarios accordingly.

 

By following these steps, a patient can successfully log in and schedule a new medical appointment based on their preferences and available slots.

 

 

Related content