export enum AssistantType { MedicalSecretary = 'MedicalSecretary', Nurse = 'Nurse', Specialist = 'Specialist', Administrative = 'Administrative', Other = 'Other', } export interface ConsultAssignedAssistant { id?: number ///optional for insertion uuidConsult: string uuidAssistant: string type: AssistantType tagSpecialty?: string duuidCurrentTaskDescription?: string } export enum TransmissionKind { Fax = 'Fax', Email = 'Email', SMS = 'SMS', EncryptedEmail = 'EncryptedEmail', Logs = 'Logs', API = 'API', Other = 'Other', } export enum TransmissionStatus { Preparing = 'Preparing', Sending = 'Sending', Sent = 'Sent', Retrying = 'Retrying', Failed = 'Failed', DriverError = 'DriverError', TimedOut = 'TimedOut', ReceiverNotExist = 'ReceiverNotExist', ReceiverNotAnswering = 'ReceiverNotAnswering', ReceiverIncompatible = 'ReceiverIncompatible', } export interface ConsultTransmission { id: number uuidConsult: string kind: TransmissionKind status: TransmissionStatus nameDriverReceiver: string addressReceiver: string idDriverForTransmission: string txtLastDriverMessage: string numTry: number numTryLeft: number delay: number tsFirstTry: string tsLastStatusUpdate: string keyWebhookSecret: string } export enum ConsultType { FollowUp = "FollowUp", Onboard = 'Onboard', Refill = 'Refill', } export enum FeeStatus { NoFee = 'NoFee', Pending = 'Pending', Paid = 'Paid', Reimbursed = 'Reimbursed', Cancelled = 'Cancelled', Contested = 'Contested', } export enum MedicalStatus { Creating = 'Creating', Assigning = 'Assigning', Assigned = 'Assigned', New = 'New', ToAnswer = 'ToAnswer', Answered = 'Answered', Closing = 'Closing', Closed = 'Closed', Reopened = 'Reopened', Archived = 'Archived', Failed = 'Failed', } export enum TaskStatus { None = 'None', ToDo = 'ToDo', InProgress = 'InProgress', Blocked = 'Blocked', Done = 'Done', } export enum ClosedReasonType { /** * A completed consultation */ Completed = 'Completed', /** * The conclusion was that what the patient submitted was not a disease */ NotADisease = 'NotADisease', /** * The consultation was not appropriate for virtual */ NotAppropriateForVirtual = 'NotAppropriateForVirtual', /** * Any other reason why the consultation was closed */ Other = 'Other', /** * A consultation that is required to be done in person */ RequiresInPerson = 'RequiresInPerson', } export interface ClosedConsultReasonInsertFields { /** * The uuid of the consultation */ consult_uuid: string /** * The reason why the consultation was closed */ closed_reason_type: ClosedReasonType /** * The description why the consultation was closed */ closed_reason_description: string /** * When the consultation was closed */ created_at: string } export interface ConsultClosedReason { /** * The reason why the consultation was closed */ closedReasonType: ClosedReasonType /** * The description why the consultation was closed */ closedReasonDescription?: string } export interface ConsultRequest { uuidPractice: string consultType?: ConsultType tagSpecialtyRequired: string idStripeInvoiceOrPaymentIntent: string isoLocalityRequired?: string isoLanguageRequired: string uuidParent?: string } export interface Consult { uuid: string uuidPracticeAdmin: string uuidPractice: string tagSpecialtyRequired: string isoLanguageRequired: string idPracticePayment: number statusFee?: FeeStatus isoLocalityRequired: string statusMedical?: MedicalStatus consultType: ConsultType uuidAssignedDoctor: string uuidCurrentAssigned: string uuidParent?: string statusTask?: TaskStatus hasTransmissions?: boolean assignedAssistant?: ConsultAssignedAssistant[] closeConsultReason?: ConsultClosedReason shortId?: string createdAt?: string expiresAt?: string }