Loading...

Doctor Dashboard

Sign in to manage your patients and orders

{{ error }}

{{ menuItems.find(item => item.id === currentView)?.name || 'Dashboard' }}

Pending Approval

{{ pendingApprovalCount }}

Ready to Sign

{{ approvedCount }}

Signed Orders

{{ signedCount }}

Total Patients

{{ patientsCount }}

Orders Pending Approval

Review and approve or decline patient orders

Order ID

{{ order.id.substring(0, 8) }}...

Pending Followup Postversand

Patient

{{ order.user?.name || 'Unknown' }}

{{ order.user?.email || order.userId }}

Items

{{ order.items?.length || 0 }} items

Created

{{ formatDate(order.createdAt) }}

Approved Orders

Orders that have been approved and are ready for processing

Electronic signing will be automatic once InfoCert integration is complete.

Order ID

{{ order.id.substring(0, 8) }}...

Signing Failed Approved Followup Postversand Auto-approved

{{ order.prescription.signingError }}

Patient

{{ order.user?.name || 'Unknown' }}

{{ order.user?.email || order.userId }}

Items

{{ order.items?.length || 0 }} items

Approved

{{ formatDate(order.updatedAt) }}

Signed Orders

Orders that have been signed and processed

Order ID

{{ order.id.substring(0, 8) }}...

Signed Auto-approved

Patient

{{ order.user?.name || 'Unknown' }}

{{ order.user?.email || order.userId }}

Items

{{ order.items?.length || 0 }} items

Signed

{{ formatDate(order.updatedAt) }}

Videocall Availability

Manage your availability slots for videocall appointments

All times are displayed in CET (Central European Time) timezone

Video calls are powered by Jitsi Meet (open source, no payment required)

Loading availability...

Repeating availability

No rules yet. "Add availability" creates all appointments for the next {{ availabilityMeta.horizonDays }} days in one go and keeps them topped up.

{{ describeRule(rule) }}
{{ rule.startDate }} – {{ isOpenEnded(rule) ? 'ongoing' : rule.endDate }} · paused

Days off

No days off. Blocked days are skipped by every rule.

{{ day.date }} · {{ day.reason }}
{{ day.dayName }}
{{ day.dateFormatted }}
Day off No Slots {{ day.slots.length }} Slots

Times shown in CET

{{ slot.startTime }}
Booked
Führerschein-Check
{{ slot.precheckId }}
No availability slots for this day

Patients

View your patients and their order history

Patient Total Orders Last Order Actions
{{ patient.user?.name || 'Unknown' }}
{{ patient.user?.email || patient.userId }}
{{ patient.orders.length }} {{ formatDate(patient.orders[0]?.createdAt) }}

Access Denied

You don't have doctor privileges to access this dashboard.

Order Details

Postversand - Physisches Rezept

Bitte das Rezept handschriftlich auf dem Rezeptblock ausfüllen und per Post an den Patienten senden.

Lieferadresse:

{{ selectedOrder.user?.name }}

{{ selectedOrder.deliveryAddress?.street }}

{{ selectedOrder.deliveryAddress?.zip }} {{ selectedOrder.deliveryAddress?.city }}

Order Information

Order ID: {{ selectedOrder.id }}
Status: {{ selectedOrder.status }} Auto-approved
Auto-approved at: {{ formatDate(selectedOrder.autoApprovedAt) }}
Created: {{ formatDate(selectedOrder.createdAt) }}
Updated: {{ formatDate(selectedOrder.updatedAt) }}

Patient Information

Name: {{ selectedOrder.user?.name || 'Unknown' }}
Email: {{ selectedOrder.user?.email || selectedOrder.userId }}
Phone: {{ selectedOrder.user?.phone || 'N/A' }}
Date of Birth: {{ selectedOrder.user.birthDate }} ({{ calculateAge(selectedOrder.user.birthDate) }} years) N/A

Order Items

{{ item.productName }}
PZN: {{ item.productPzn }}
Quantity: {{ item.quantity }}
Price: €{{ item.price }}
Fragebogen wird geladen...
Fragebogen konnte nicht geladen werden: {{ questionnaireError }}

Questionnaire Responses

{{ selectedOrderQuestionnaire.type === 'followup' ? 'Folgerezept' : 'Erstrezept' }}
{{ getSectionTitle(section.id, selectedOrderQuestionnaire.type) }}
{{ getQuestionLabel(question) }}: {{ Array.isArray(answer) ? answer.join(', ') : answer }}
Specified: "{{ section.otherTexts[question] }}"

Keine Antworten vorhanden

Produktbewertungen
{{ rating.productName }} ({{ rating.productId }})
{{ getRatingEmoji(n, rating.rating) }} {{ rating.rating }}/5
Kein Fragebogen vorhanden

Prescription Document

Scheduled Video Call

Scheduled: {{ formatVideoCallDateTime(selectedOrderVideoCall.date, selectedOrderVideoCall.startTime) }}

Video call powered by Jitsi Meet (open source, no payment required)

Signature Failed

{{ selectedOrder.prescription.signingError }}

Patient Details

Patient Information

Name: {{ selectedPatient.user?.name || 'Unknown' }}
Email: {{ selectedPatient.user?.email || selectedPatient.userId }}
Phone: {{ selectedPatient.user?.phone || 'N/A' }}
Total Orders: {{ selectedPatient.orders.length }}

Order History

Order ID Status Items Created Actions
{{ order.id.substring(0, 8) }}... DEMO {{ order.status }} {{ order.items?.length || 0 }} {{ formatDate(order.createdAt) }}

Add availability

All times are CET. Saving creates every appointment at once, up to {{ availabilityMeta.horizonDays }} days ahead.

Creates {{ rulePreview.total }} appointment(s) now: {{ rulePreview.perDay }} per day on {{ rulePreview.days }} day(s), up to {{ availabilityMeta.horizon }}. Ongoing rules are extended automatically every night. Check dates and times.

Block days

Open appointments in this range are removed; booked ones stay. Rules skip blocked days.

Copy week

Copies the open appointments of the chosen week (Mon–Sun) into the following weeks.

Clear open appointments

Removes all open appointments in the range. Booked appointments are kept.

Bulk Signature Request Results

Successfully created requests for {{ bulkResult.success.length }} orders:

  • {{ orderId }}

Failed to create requests for {{ bulkResult.failures.length }} orders:

Order ID Reason
{{ failure.orderId }} {{ failure.reason }}