@blackcode_sa/metaestetics-api 1.13.0 → 1.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/index.d.mts +106 -1
- package/dist/admin/index.d.ts +106 -1
- package/dist/admin/index.js +1303 -130
- package/dist/admin/index.mjs +1303 -130
- package/dist/index.d.mts +360 -2
- package/dist/index.d.ts +360 -2
- package/dist/index.js +3422 -1888
- package/dist/index.mjs +3121 -1588
- package/package.json +1 -1
- package/src/services/analytics/README.md +17 -0
- package/src/services/analytics/TRENDS.md +380 -0
- package/src/services/analytics/analytics.service.ts +540 -30
- package/src/services/analytics/index.ts +1 -0
- package/src/services/analytics/review-analytics.service.ts +941 -0
- package/src/services/analytics/utils/cost-calculation.utils.ts +32 -4
- package/src/services/analytics/utils/grouping.utils.ts +40 -0
- package/src/services/analytics/utils/trend-calculation.utils.ts +200 -0
- package/src/services/appointment/appointment.service.ts +9 -0
- package/src/services/procedure/procedure.service.ts +419 -4
- package/src/services/reviews/reviews.service.ts +58 -7
- package/src/types/analytics/analytics.types.ts +98 -1
- package/src/types/analytics/grouped-analytics.types.ts +25 -0
package/dist/index.d.ts
CHANGED
|
@@ -4026,6 +4026,10 @@ interface AnalyticsFilters {
|
|
|
4026
4026
|
* Grouping period for trend analysis
|
|
4027
4027
|
*/
|
|
4028
4028
|
type GroupingPeriod = 'day' | 'week' | 'month';
|
|
4029
|
+
/**
|
|
4030
|
+
* Trend period type (only predefined periods, no custom)
|
|
4031
|
+
*/
|
|
4032
|
+
type TrendPeriod = 'week' | 'month' | 'quarter' | 'year';
|
|
4029
4033
|
/**
|
|
4030
4034
|
* Entity type for grouping analytics
|
|
4031
4035
|
*/
|
|
@@ -4133,6 +4137,8 @@ interface CancellationMetrics {
|
|
|
4133
4137
|
count: number;
|
|
4134
4138
|
percentage: number;
|
|
4135
4139
|
}>;
|
|
4140
|
+
practitionerId?: string;
|
|
4141
|
+
practitionerName?: string;
|
|
4136
4142
|
}
|
|
4137
4143
|
/**
|
|
4138
4144
|
* No-Show Metrics
|
|
@@ -4145,6 +4151,8 @@ interface NoShowMetrics {
|
|
|
4145
4151
|
totalAppointments: number;
|
|
4146
4152
|
noShowAppointments: number;
|
|
4147
4153
|
noShowRate: number;
|
|
4154
|
+
practitionerId?: string;
|
|
4155
|
+
practitionerName?: string;
|
|
4148
4156
|
}
|
|
4149
4157
|
/**
|
|
4150
4158
|
* Revenue Metrics
|
|
@@ -4174,6 +4182,13 @@ interface RevenueTrend {
|
|
|
4174
4182
|
revenue: number;
|
|
4175
4183
|
appointmentCount: number;
|
|
4176
4184
|
averageRevenue: number;
|
|
4185
|
+
currency?: string;
|
|
4186
|
+
previousPeriod?: {
|
|
4187
|
+
revenue: number;
|
|
4188
|
+
appointmentCount: number;
|
|
4189
|
+
percentageChange: number;
|
|
4190
|
+
direction: 'up' | 'down' | 'stable';
|
|
4191
|
+
};
|
|
4177
4192
|
}
|
|
4178
4193
|
/**
|
|
4179
4194
|
* Duration Trend
|
|
@@ -4187,6 +4202,77 @@ interface DurationTrend {
|
|
|
4187
4202
|
averageActualDuration: number;
|
|
4188
4203
|
averageEfficiency: number;
|
|
4189
4204
|
appointmentCount: number;
|
|
4205
|
+
previousPeriod?: {
|
|
4206
|
+
averageBookedDuration: number;
|
|
4207
|
+
averageActualDuration: number;
|
|
4208
|
+
averageEfficiency: number;
|
|
4209
|
+
efficiencyPercentageChange: number;
|
|
4210
|
+
direction: 'up' | 'down' | 'stable';
|
|
4211
|
+
};
|
|
4212
|
+
}
|
|
4213
|
+
/**
|
|
4214
|
+
* Appointment Count Trend
|
|
4215
|
+
* Appointment count trends over time
|
|
4216
|
+
*/
|
|
4217
|
+
interface AppointmentTrend {
|
|
4218
|
+
period: string;
|
|
4219
|
+
startDate: Date;
|
|
4220
|
+
endDate: Date;
|
|
4221
|
+
totalAppointments: number;
|
|
4222
|
+
completedAppointments: number;
|
|
4223
|
+
canceledAppointments: number;
|
|
4224
|
+
noShowAppointments: number;
|
|
4225
|
+
pendingAppointments: number;
|
|
4226
|
+
confirmedAppointments: number;
|
|
4227
|
+
previousPeriod?: {
|
|
4228
|
+
totalAppointments: number;
|
|
4229
|
+
completedAppointments: number;
|
|
4230
|
+
percentageChange: number;
|
|
4231
|
+
direction: 'up' | 'down' | 'stable';
|
|
4232
|
+
};
|
|
4233
|
+
}
|
|
4234
|
+
/**
|
|
4235
|
+
* Cancellation Rate Trend
|
|
4236
|
+
* Cancellation and no-show rate trends over time
|
|
4237
|
+
*/
|
|
4238
|
+
interface CancellationRateTrend {
|
|
4239
|
+
period: string;
|
|
4240
|
+
startDate: Date;
|
|
4241
|
+
endDate: Date;
|
|
4242
|
+
cancellationRate: number;
|
|
4243
|
+
noShowRate: number;
|
|
4244
|
+
totalAppointments: number;
|
|
4245
|
+
canceledAppointments: number;
|
|
4246
|
+
noShowAppointments: number;
|
|
4247
|
+
previousPeriod?: {
|
|
4248
|
+
cancellationRate: number;
|
|
4249
|
+
noShowRate: number;
|
|
4250
|
+
cancellationRateChange: number;
|
|
4251
|
+
noShowRateChange: number;
|
|
4252
|
+
direction: 'up' | 'down' | 'stable';
|
|
4253
|
+
};
|
|
4254
|
+
}
|
|
4255
|
+
/**
|
|
4256
|
+
* Review Trend
|
|
4257
|
+
* Review rating and recommendation trends over time
|
|
4258
|
+
*/
|
|
4259
|
+
interface ReviewTrend {
|
|
4260
|
+
period: string;
|
|
4261
|
+
startDate: Date;
|
|
4262
|
+
endDate: Date;
|
|
4263
|
+
averageRating: number;
|
|
4264
|
+
recommendationRate: number;
|
|
4265
|
+
totalReviews: number;
|
|
4266
|
+
practitionerAverage?: number;
|
|
4267
|
+
procedureAverage?: number;
|
|
4268
|
+
previousPeriod?: {
|
|
4269
|
+
averageRating: number;
|
|
4270
|
+
recommendationRate: number;
|
|
4271
|
+
percentageChange: number;
|
|
4272
|
+
direction: 'up' | 'down' | 'stable';
|
|
4273
|
+
};
|
|
4274
|
+
entityId?: string;
|
|
4275
|
+
entityName?: string;
|
|
4190
4276
|
}
|
|
4191
4277
|
/**
|
|
4192
4278
|
* Product Usage Metrics
|
|
@@ -4592,6 +4678,18 @@ interface GroupedAnalyticsBase {
|
|
|
4592
4678
|
entityName: string;
|
|
4593
4679
|
entityType: EntityType;
|
|
4594
4680
|
}
|
|
4681
|
+
/**
|
|
4682
|
+
* Review metrics for grouped analytics
|
|
4683
|
+
* Note: This is a simplified version for grouped analytics.
|
|
4684
|
+
* For full review analytics, see ReviewAnalyticsService.ReviewMetrics
|
|
4685
|
+
*/
|
|
4686
|
+
interface ReviewMetrics {
|
|
4687
|
+
totalReviews: number;
|
|
4688
|
+
averageRating: number;
|
|
4689
|
+
recommendationRate: number;
|
|
4690
|
+
ratingDifference?: number;
|
|
4691
|
+
recommendationDifference?: number;
|
|
4692
|
+
}
|
|
4595
4693
|
/**
|
|
4596
4694
|
* Grouped Revenue Metrics
|
|
4597
4695
|
* Revenue analytics grouped by clinic, practitioner, procedure, or patient
|
|
@@ -4606,6 +4704,9 @@ interface GroupedRevenueMetrics extends GroupedAnalyticsBase {
|
|
|
4606
4704
|
refundedRevenue: number;
|
|
4607
4705
|
totalTax: number;
|
|
4608
4706
|
totalSubtotal: number;
|
|
4707
|
+
practitionerId?: string;
|
|
4708
|
+
practitionerName?: string;
|
|
4709
|
+
reviewMetrics?: ReviewMetrics;
|
|
4609
4710
|
}
|
|
4610
4711
|
/**
|
|
4611
4712
|
* Grouped Product Usage Metrics
|
|
@@ -4625,6 +4726,8 @@ interface GroupedProductUsageMetrics extends GroupedAnalyticsBase {
|
|
|
4625
4726
|
totalRevenue: number;
|
|
4626
4727
|
usageCount: number;
|
|
4627
4728
|
}>;
|
|
4729
|
+
practitionerId?: string;
|
|
4730
|
+
practitionerName?: string;
|
|
4628
4731
|
}
|
|
4629
4732
|
/**
|
|
4630
4733
|
* Grouped Patient Retention Metrics
|
|
@@ -4656,6 +4759,8 @@ interface GroupedTimeEfficiencyMetrics extends GroupedAnalyticsBase {
|
|
|
4656
4759
|
totalUnderutilization: number;
|
|
4657
4760
|
averageOverrun: number;
|
|
4658
4761
|
averageUnderutilization: number;
|
|
4762
|
+
practitionerId?: string;
|
|
4763
|
+
practitionerName?: string;
|
|
4659
4764
|
}
|
|
4660
4765
|
/**
|
|
4661
4766
|
* Grouped Patient Behavior Metrics
|
|
@@ -6631,6 +6736,40 @@ declare class ProcedureService extends BaseService {
|
|
|
6631
6736
|
* @returns The created procedure
|
|
6632
6737
|
*/
|
|
6633
6738
|
createProcedure(data: CreateProcedureData): Promise<Procedure>;
|
|
6739
|
+
/**
|
|
6740
|
+
* Validates if a practitioner can perform a procedure based on certification requirements.
|
|
6741
|
+
*
|
|
6742
|
+
* @param procedure - The procedure to check
|
|
6743
|
+
* @param practitioner - The practitioner to validate
|
|
6744
|
+
* @returns true if practitioner can perform the procedure, false otherwise
|
|
6745
|
+
*/
|
|
6746
|
+
canPractitionerPerformProcedure(procedure: Procedure, practitioner: Practitioner): boolean;
|
|
6747
|
+
/**
|
|
6748
|
+
* Clones an existing procedure for a target practitioner.
|
|
6749
|
+
* This creates a new procedure document with the same data as the source procedure,
|
|
6750
|
+
* but linked to the target practitioner.
|
|
6751
|
+
*
|
|
6752
|
+
* @param sourceProcedureId - The ID of the procedure to clone
|
|
6753
|
+
* @param targetPractitionerId - The ID of the practitioner to assign the cloned procedure to
|
|
6754
|
+
* @param overrides - Optional overrides for the new procedure (e.g. price, duration, isActive)
|
|
6755
|
+
* @returns The newly created procedure
|
|
6756
|
+
*/
|
|
6757
|
+
cloneProcedureForPractitioner(sourceProcedureId: string, targetPractitionerId: string, overrides?: Partial<CreateProcedureData> & {
|
|
6758
|
+
isActive?: boolean;
|
|
6759
|
+
}): Promise<Procedure>;
|
|
6760
|
+
/**
|
|
6761
|
+
* Clones an existing procedure for multiple target practitioners.
|
|
6762
|
+
* This creates new procedure documents with the same data as the source procedure,
|
|
6763
|
+
* but linked to each target practitioner.
|
|
6764
|
+
*
|
|
6765
|
+
* @param sourceProcedureId - The ID of the procedure to clone
|
|
6766
|
+
* @param targetPractitionerIds - Array of practitioner IDs to assign the cloned procedure to
|
|
6767
|
+
* @param overrides - Optional overrides for the new procedures (e.g. price, duration, isActive)
|
|
6768
|
+
* @returns Array of newly created procedures
|
|
6769
|
+
*/
|
|
6770
|
+
bulkCloneProcedureForPractitioners(sourceProcedureId: string, targetPractitionerIds: string[], overrides?: Partial<CreateProcedureData> & {
|
|
6771
|
+
isActive?: boolean;
|
|
6772
|
+
}): Promise<Procedure[]>;
|
|
6634
6773
|
/**
|
|
6635
6774
|
* Creates multiple procedures for a list of practitioners based on common data.
|
|
6636
6775
|
* This method is optimized for bulk creation to reduce database reads and writes.
|
|
@@ -7536,6 +7675,131 @@ declare class AppointmentService extends BaseService {
|
|
|
7536
7675
|
}): Promise<NextStepsRecommendation[]>;
|
|
7537
7676
|
}
|
|
7538
7677
|
|
|
7678
|
+
/**
|
|
7679
|
+
* Review metrics for a specific entity (practitioner, procedure, etc.)
|
|
7680
|
+
* Full review analytics metrics with detailed breakdowns
|
|
7681
|
+
*/
|
|
7682
|
+
interface ReviewAnalyticsMetrics {
|
|
7683
|
+
entityId: string;
|
|
7684
|
+
entityName: string;
|
|
7685
|
+
entityType: 'practitioner' | 'procedure' | 'category' | 'subcategory' | 'technology';
|
|
7686
|
+
totalReviews: number;
|
|
7687
|
+
averageRating: number;
|
|
7688
|
+
recommendationRate: number;
|
|
7689
|
+
practitionerMetrics?: {
|
|
7690
|
+
averageKnowledgeAndExpertise: number;
|
|
7691
|
+
averageCommunicationSkills: number;
|
|
7692
|
+
averageBedSideManner: number;
|
|
7693
|
+
averageThoroughness: number;
|
|
7694
|
+
averageTrustworthiness: number;
|
|
7695
|
+
};
|
|
7696
|
+
procedureMetrics?: {
|
|
7697
|
+
averageEffectiveness: number;
|
|
7698
|
+
averageOutcomeExplanation: number;
|
|
7699
|
+
averagePainManagement: number;
|
|
7700
|
+
averageFollowUpCare: number;
|
|
7701
|
+
averageValueForMoney: number;
|
|
7702
|
+
};
|
|
7703
|
+
comparisonToOverall: {
|
|
7704
|
+
ratingDifference: number;
|
|
7705
|
+
recommendationDifference: number;
|
|
7706
|
+
};
|
|
7707
|
+
}
|
|
7708
|
+
/**
|
|
7709
|
+
* Review detail with full information
|
|
7710
|
+
*/
|
|
7711
|
+
interface ReviewDetail {
|
|
7712
|
+
reviewId: string;
|
|
7713
|
+
appointmentId: string;
|
|
7714
|
+
patientId: string;
|
|
7715
|
+
patientName?: string;
|
|
7716
|
+
createdAt: Date;
|
|
7717
|
+
practitionerReview?: PractitionerReview;
|
|
7718
|
+
procedureReview?: ProcedureReview;
|
|
7719
|
+
procedureName?: string;
|
|
7720
|
+
practitionerName?: string;
|
|
7721
|
+
appointmentDate: Date;
|
|
7722
|
+
}
|
|
7723
|
+
/**
|
|
7724
|
+
* Overall review averages for comparison
|
|
7725
|
+
*/
|
|
7726
|
+
interface OverallReviewAverages {
|
|
7727
|
+
practitionerAverage: {
|
|
7728
|
+
totalReviews: number;
|
|
7729
|
+
averageRating: number;
|
|
7730
|
+
recommendationRate: number;
|
|
7731
|
+
averageKnowledgeAndExpertise: number;
|
|
7732
|
+
averageCommunicationSkills: number;
|
|
7733
|
+
averageBedSideManner: number;
|
|
7734
|
+
averageThoroughness: number;
|
|
7735
|
+
averageTrustworthiness: number;
|
|
7736
|
+
};
|
|
7737
|
+
procedureAverage: {
|
|
7738
|
+
totalReviews: number;
|
|
7739
|
+
averageRating: number;
|
|
7740
|
+
recommendationRate: number;
|
|
7741
|
+
averageEffectiveness: number;
|
|
7742
|
+
averageOutcomeExplanation: number;
|
|
7743
|
+
averagePainManagement: number;
|
|
7744
|
+
averageFollowUpCare: number;
|
|
7745
|
+
averageValueForMoney: number;
|
|
7746
|
+
};
|
|
7747
|
+
}
|
|
7748
|
+
/**
|
|
7749
|
+
* Review Analytics Service
|
|
7750
|
+
* Provides review metrics and analytics for practitioners, procedures, categories, and technologies
|
|
7751
|
+
*/
|
|
7752
|
+
declare class ReviewAnalyticsService extends BaseService {
|
|
7753
|
+
private appointmentService;
|
|
7754
|
+
constructor(db: Firestore, auth: any, app: any, appointmentService?: AppointmentService);
|
|
7755
|
+
/**
|
|
7756
|
+
* Fetches reviews filtered by date range and optional filters
|
|
7757
|
+
* Properly filters by clinic branch by checking appointment's clinicId
|
|
7758
|
+
*/
|
|
7759
|
+
private fetchReviews;
|
|
7760
|
+
/**
|
|
7761
|
+
* Gets review metrics for a specific entity
|
|
7762
|
+
*/
|
|
7763
|
+
getReviewMetricsByEntity(entityType: 'practitioner' | 'procedure' | 'category' | 'subcategory' | 'technology', entityId: string, dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ReviewAnalyticsMetrics | null>;
|
|
7764
|
+
/**
|
|
7765
|
+
* Gets review metrics for multiple entities (grouped)
|
|
7766
|
+
*/
|
|
7767
|
+
getReviewMetricsByEntities(entityType: 'practitioner' | 'procedure' | 'category' | 'subcategory' | 'technology', dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ReviewAnalyticsMetrics[]>;
|
|
7768
|
+
/**
|
|
7769
|
+
* Calculates review metrics from a list of reviews
|
|
7770
|
+
*/
|
|
7771
|
+
private calculateReviewMetrics;
|
|
7772
|
+
/**
|
|
7773
|
+
* Gets overall review averages for comparison
|
|
7774
|
+
*/
|
|
7775
|
+
getOverallReviewAverages(dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<OverallReviewAverages>;
|
|
7776
|
+
/**
|
|
7777
|
+
* Gets review details for a specific entity
|
|
7778
|
+
*/
|
|
7779
|
+
getReviewDetails(entityType: 'practitioner' | 'procedure', entityId: string, dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ReviewDetail[]>;
|
|
7780
|
+
/**
|
|
7781
|
+
* Helper method to calculate average
|
|
7782
|
+
*/
|
|
7783
|
+
private calculateAverage;
|
|
7784
|
+
/**
|
|
7785
|
+
* Calculate review trends over time
|
|
7786
|
+
* Groups reviews by period and calculates rating and recommendation metrics
|
|
7787
|
+
*
|
|
7788
|
+
* @param dateRange - Date range for trend analysis (must align with period boundaries)
|
|
7789
|
+
* @param period - Period type (week, month, quarter, year)
|
|
7790
|
+
* @param filters - Optional filters for clinic, practitioner, procedure
|
|
7791
|
+
* @param entityType - Optional entity type to group trends by (practitioner, procedure, technology)
|
|
7792
|
+
* @returns Array of review trends with percentage changes
|
|
7793
|
+
*/
|
|
7794
|
+
getReviewTrends(dateRange: AnalyticsDateRange, period: TrendPeriod, filters?: AnalyticsFilters, entityType?: 'practitioner' | 'procedure' | 'technology'): Promise<ReviewTrend[]>;
|
|
7795
|
+
/**
|
|
7796
|
+
* Calculate grouped review trends (by practitioner, procedure, or technology)
|
|
7797
|
+
* Returns the AVERAGE across all entities of that type for each period
|
|
7798
|
+
* @private
|
|
7799
|
+
*/
|
|
7800
|
+
private getGroupedReviewTrends;
|
|
7801
|
+
}
|
|
7802
|
+
|
|
7539
7803
|
/**
|
|
7540
7804
|
* AnalyticsService provides comprehensive financial and analytical intelligence
|
|
7541
7805
|
* for the Clinic Admin app, including metrics about doctors, procedures,
|
|
@@ -7543,6 +7807,7 @@ declare class AppointmentService extends BaseService {
|
|
|
7543
7807
|
*/
|
|
7544
7808
|
declare class AnalyticsService extends BaseService {
|
|
7545
7809
|
private appointmentService;
|
|
7810
|
+
private reviewAnalyticsService;
|
|
7546
7811
|
/**
|
|
7547
7812
|
* Creates a new AnalyticsService instance.
|
|
7548
7813
|
*
|
|
@@ -7702,6 +7967,10 @@ declare class AnalyticsService extends BaseService {
|
|
|
7702
7967
|
* Get revenue metrics
|
|
7703
7968
|
* First checks for stored analytics, then calculates if not available or stale
|
|
7704
7969
|
*
|
|
7970
|
+
* IMPORTANT: Financial calculations only consider COMPLETED appointments.
|
|
7971
|
+
* Confirmed, pending, canceled, and no-show appointments are NOT included in revenue calculations.
|
|
7972
|
+
* Only procedures that have been completed generate revenue.
|
|
7973
|
+
*
|
|
7705
7974
|
* @param filters - Optional filters
|
|
7706
7975
|
* @param dateRange - Optional date range filter
|
|
7707
7976
|
* @param options - Options for reading stored analytics
|
|
@@ -7720,11 +7989,16 @@ declare class AnalyticsService extends BaseService {
|
|
|
7720
7989
|
/**
|
|
7721
7990
|
* Get product usage metrics
|
|
7722
7991
|
*
|
|
7992
|
+
* IMPORTANT: Only COMPLETED appointments are included in product usage calculations.
|
|
7993
|
+
* Products are only considered "used" when the procedure has been completed.
|
|
7994
|
+
* Confirmed, pending, canceled, and no-show appointments are excluded from product metrics.
|
|
7995
|
+
*
|
|
7723
7996
|
* @param productId - Optional product ID (if not provided, returns all products)
|
|
7724
7997
|
* @param dateRange - Optional date range filter
|
|
7998
|
+
* @param filters - Optional filters (e.g., clinicBranchId)
|
|
7725
7999
|
* @returns Product usage metrics
|
|
7726
8000
|
*/
|
|
7727
|
-
getProductUsageMetrics(productId?: string, dateRange?: AnalyticsDateRange): Promise<ProductUsageMetrics | ProductUsageMetrics[]>;
|
|
8001
|
+
getProductUsageMetrics(productId?: string, dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ProductUsageMetrics | ProductUsageMetrics[]>;
|
|
7728
8002
|
/**
|
|
7729
8003
|
* Get patient behavior metrics grouped by clinic, practitioner, procedure, or technology
|
|
7730
8004
|
* Shows patient no-show and cancellation patterns per entity
|
|
@@ -7761,6 +8035,78 @@ declare class AnalyticsService extends BaseService {
|
|
|
7761
8035
|
* @returns Complete dashboard analytics
|
|
7762
8036
|
*/
|
|
7763
8037
|
getDashboardData(filters?: AnalyticsFilters, dateRange?: AnalyticsDateRange, options?: ReadStoredAnalyticsOptions): Promise<DashboardAnalytics>;
|
|
8038
|
+
/**
|
|
8039
|
+
* Calculate revenue trends over time
|
|
8040
|
+
* Groups appointments by week/month/quarter/year and calculates revenue metrics
|
|
8041
|
+
*
|
|
8042
|
+
* @param dateRange - Date range for trend analysis (must align with period boundaries)
|
|
8043
|
+
* @param period - Period type (week, month, quarter, year)
|
|
8044
|
+
* @param filters - Optional filters for clinic, practitioner, procedure, patient
|
|
8045
|
+
* @param groupBy - Optional entity type to group trends by (clinic, practitioner, procedure, technology, patient)
|
|
8046
|
+
* @returns Array of revenue trends with percentage changes
|
|
8047
|
+
*/
|
|
8048
|
+
getRevenueTrends(dateRange: AnalyticsDateRange, period: TrendPeriod, filters?: AnalyticsFilters, groupBy?: EntityType): Promise<RevenueTrend[]>;
|
|
8049
|
+
/**
|
|
8050
|
+
* Calculate revenue trends grouped by entity
|
|
8051
|
+
*/
|
|
8052
|
+
private getGroupedRevenueTrends;
|
|
8053
|
+
/**
|
|
8054
|
+
* Calculate duration/efficiency trends over time
|
|
8055
|
+
*
|
|
8056
|
+
* @param dateRange - Date range for trend analysis
|
|
8057
|
+
* @param period - Period type (week, month, quarter, year)
|
|
8058
|
+
* @param filters - Optional filters
|
|
8059
|
+
* @param groupBy - Optional entity type to group trends by
|
|
8060
|
+
* @returns Array of duration trends with percentage changes
|
|
8061
|
+
*/
|
|
8062
|
+
getDurationTrends(dateRange: AnalyticsDateRange, period: TrendPeriod, filters?: AnalyticsFilters, groupBy?: EntityType): Promise<DurationTrend[]>;
|
|
8063
|
+
/**
|
|
8064
|
+
* Calculate appointment count trends over time
|
|
8065
|
+
*
|
|
8066
|
+
* @param dateRange - Date range for trend analysis
|
|
8067
|
+
* @param period - Period type (week, month, quarter, year)
|
|
8068
|
+
* @param filters - Optional filters
|
|
8069
|
+
* @param groupBy - Optional entity type to group trends by
|
|
8070
|
+
* @returns Array of appointment trends with percentage changes
|
|
8071
|
+
*/
|
|
8072
|
+
getAppointmentTrends(dateRange: AnalyticsDateRange, period: TrendPeriod, filters?: AnalyticsFilters, groupBy?: EntityType): Promise<AppointmentTrend[]>;
|
|
8073
|
+
/**
|
|
8074
|
+
* Calculate cancellation and no-show rate trends over time
|
|
8075
|
+
*
|
|
8076
|
+
* @param dateRange - Date range for trend analysis
|
|
8077
|
+
* @param period - Period type (week, month, quarter, year)
|
|
8078
|
+
* @param filters - Optional filters
|
|
8079
|
+
* @param groupBy - Optional entity type to group trends by
|
|
8080
|
+
* @returns Array of cancellation rate trends with percentage changes
|
|
8081
|
+
*/
|
|
8082
|
+
getCancellationRateTrends(dateRange: AnalyticsDateRange, period: TrendPeriod, filters?: AnalyticsFilters, groupBy?: EntityType): Promise<CancellationRateTrend[]>;
|
|
8083
|
+
/**
|
|
8084
|
+
* Get review metrics for a specific entity (practitioner, procedure, etc.)
|
|
8085
|
+
*/
|
|
8086
|
+
getReviewMetricsByEntity(entityType: 'practitioner' | 'procedure' | 'category' | 'subcategory' | 'technology', entityId: string, dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ReviewAnalyticsMetrics | null>;
|
|
8087
|
+
/**
|
|
8088
|
+
* Get review metrics for multiple entities (grouped)
|
|
8089
|
+
*/
|
|
8090
|
+
getReviewMetricsByEntities(entityType: 'practitioner' | 'procedure' | 'category' | 'subcategory' | 'technology', dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ReviewAnalyticsMetrics[]>;
|
|
8091
|
+
/**
|
|
8092
|
+
* Get overall review averages for comparison
|
|
8093
|
+
*/
|
|
8094
|
+
getOverallReviewAverages(dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<OverallReviewAverages>;
|
|
8095
|
+
/**
|
|
8096
|
+
* Get review details for a specific entity
|
|
8097
|
+
*/
|
|
8098
|
+
getReviewDetails(entityType: 'practitioner' | 'procedure', entityId: string, dateRange?: AnalyticsDateRange, filters?: AnalyticsFilters): Promise<ReviewDetail[]>;
|
|
8099
|
+
/**
|
|
8100
|
+
* Calculate review trends over time
|
|
8101
|
+
* Groups reviews by period and calculates rating and recommendation metrics
|
|
8102
|
+
*
|
|
8103
|
+
* @param dateRange - Date range for trend analysis
|
|
8104
|
+
* @param period - Period type (week, month, quarter, year)
|
|
8105
|
+
* @param filters - Optional filters for clinic, practitioner, procedure
|
|
8106
|
+
* @param entityType - Optional entity type to group trends by
|
|
8107
|
+
* @returns Array of review trends with percentage changes
|
|
8108
|
+
*/
|
|
8109
|
+
getReviewTrends(dateRange: AnalyticsDateRange, period: TrendPeriod, filters?: AnalyticsFilters, entityType?: 'practitioner' | 'procedure' | 'technology'): Promise<ReviewTrend[]>;
|
|
7764
8110
|
}
|
|
7765
8111
|
|
|
7766
8112
|
/**
|
|
@@ -8670,6 +9016,18 @@ declare class PatientRequirementsService extends BaseService {
|
|
|
8670
9016
|
|
|
8671
9017
|
declare class ReviewService extends BaseService {
|
|
8672
9018
|
constructor(db: Firestore, auth: Auth, app: FirebaseApp);
|
|
9019
|
+
/**
|
|
9020
|
+
* Helper function to convert Firestore Timestamps to Date objects
|
|
9021
|
+
* @param timestamp The timestamp to convert
|
|
9022
|
+
* @returns A JavaScript Date object or null
|
|
9023
|
+
*/
|
|
9024
|
+
private convertTimestamp;
|
|
9025
|
+
/**
|
|
9026
|
+
* Converts a Firestore document to a Review object with proper date handling
|
|
9027
|
+
* @param docData The raw Firestore document data
|
|
9028
|
+
* @returns A Review object with properly converted dates
|
|
9029
|
+
*/
|
|
9030
|
+
private convertDocToReview;
|
|
8673
9031
|
/**
|
|
8674
9032
|
* Creates a new review
|
|
8675
9033
|
* @param data - The review data to create
|
|
@@ -8750,4 +9108,4 @@ declare const getFirebaseApp: () => Promise<FirebaseApp>;
|
|
|
8750
9108
|
declare const getFirebaseStorage: () => Promise<FirebaseStorage>;
|
|
8751
9109
|
declare const getFirebaseFunctions: () => Promise<Functions>;
|
|
8752
9110
|
|
|
8753
|
-
export { AESTHETIC_ANALYSIS_COLLECTION, ANALYTICS_COLLECTION, APPOINTMENTS_COLLECTION, type AddAllergyData, type AddBlockingConditionData, type AddContraindicationData, type AddMedicationData, type AddressData, type AdminInfo, type AdminToken, AdminTokenStatus, type AestheticAnalysis, type AestheticAnalysisStatus, type Allergy, type AllergySubtype, AllergyType, type AllergyTypeWithSubtype, AnalyticsCloudService, type AnalyticsDateRange, type AnalyticsFilters, type AnalyticsMetadata, type AnalyticsPeriod, AnalyticsService, type Appointment, type AppointmentCancelledNotification, type AppointmentMediaItem, type AppointmentMetadata, type AppointmentProductMetadata, type AppointmentReminderNotification, type AppointmentRescheduledProposalNotification, AppointmentService, AppointmentStatus, type AppointmentStatusChangeNotification, type AssessmentScales, AuthService, type BaseDocumentElement, type BaseMetrics, type BaseNotification, BaseService, type BeforeAfterPerZone, type BillingInfo, type BillingPerZone, type BillingTransaction, BillingTransactionType, BillingTransactionsService, type BinaryChoiceElement, BlockingCondition, type Brand, BrandService, CALENDAR_COLLECTION, CANCELLATION_ANALYTICS_SUBCOLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_ANALYTICS_SUBCOLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarServiceV3, CalendarSyncStatus, type CancellationMetrics, type CancellationReasonStats, type Category, CategoryService, CertificationLevel, CertificationSpecialty, type Clinic, type ClinicAdmin, ClinicAdminService, type ClinicAdminSignupData, type ClinicAnalytics, type ClinicBranchSetupData, type ClinicComparisonMetrics, type ClinicContactInfo, type ClinicGroup, ClinicGroupService, type ClinicGroupSetupData, type ClinicInfo, type ClinicLocation, ClinicPhotoTag, type ClinicReview, type ClinicReviewInfo, ClinicService, ClinicTag, type ClinicTags, type ClinicalFindingDetail, type ClinicalFindings, ConstantsService, type ContactPerson, Contraindication, type ContraindicationDynamic, CosmeticAllergySubtype, type CostPerPatientMetrics, type CreateAdminTokenData, type CreateAestheticAnalysisData, type CreateAppointmentData, type CreateAppointmentHttpData, type CreateAppointmentParams, type CreateBillingTransactionData, type CreateBlockingEventParams, type CreateCalendarEventData, type CreateClinicAdminData, type CreateClinicData, type CreateClinicGroupData, type CreateDefaultClinicGroupData, type CreateDocumentTemplateData, type CreateDraftPractitionerData, type CreateManualPatientData, type CreatePatientLocationInfoData, type CreatePatientMedicalInfoData, type CreatePatientProfileData, type CreatePatientSensitiveInfoData, type CreatePatientTokenData, type CreatePractitionerData, type CreatePractitionerInviteData, type CreatePractitionerTokenData, type CreateProcedureData, type CreateSyncedCalendarData, type CreateUserData, Currency, DASHBOARD_ANALYTICS_SUBCOLLECTION, DEFAULT_MEDICAL_INFO, DOCTOR_FORMS_SUBCOLLECTION, DOCUMENTATION_TEMPLATES_COLLECTION, type DashboardAnalytics, type DatePickerElement, type DateRange, type DigitalSignatureElement, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, type DurationTrend, type DynamicTextElement, DynamicVariable, type EmergencyContact, type EntityType, EnvironmentalAllergySubtype, type ExtendedProcedureInfo, ExternalCalendarService, FILLED_DOCUMENTS_COLLECTION, type FileUploadElement, type FilledDocument, type FilledDocumentFileValue, FilledDocumentService, FilledDocumentStatus, type FinalBilling, type FirebaseUser, FoodAllergySubtype, type FormReminderNotification, type FormSubmissionConfirmationNotification, type GamificationInfo, Gender, type GeneralMessageNotification, type GroupedAnalyticsBase, type GroupedPatientBehaviorMetrics, type GroupedPatientRetentionMetrics, type GroupedPractitionerPerformanceMetrics, type GroupedProcedurePerformanceMetrics, type GroupedProductUsageMetrics, type GroupedRevenueMetrics, type GroupedTimeEfficiencyMetrics, type GroupingPeriod, type HeadingElement, HeadingLevel, INVITE_TOKENS_COLLECTION, Language, type LinkedFormInfo, type ListElement, ListType, type LocationData, MEDIA_METADATA_COLLECTION, MediaAccessLevel, type MediaMetadata, type MediaResource, MediaService, MediaType, MedicationAllergySubtype, type MultipleChoiceElement, NOTIFICATIONS_COLLECTION, NO_SHOW_ANALYTICS_SUBCOLLECTION, type NextStepsRecommendation, type NoShowMetrics, type Notification, NotificationService, NotificationStatus, NotificationType, PATIENTS_COLLECTION, PATIENT_APPOINTMENTS_COLLECTION, PATIENT_LOCATION_INFO_COLLECTION, PATIENT_MEDICAL_HISTORY_COLLECTION, PATIENT_MEDICAL_INFO_COLLECTION, PATIENT_REQUIREMENTS_SUBCOLLECTION_NAME, PATIENT_SENSITIVE_INFO_COLLECTION, PRACTITIONERS_COLLECTION, PRACTITIONER_ANALYTICS_SUBCOLLECTION, PRACTITIONER_INVITES_COLLECTION, PROCEDURES_COLLECTION, PROCEDURE_ANALYTICS_SUBCOLLECTION, type ParagraphElement, type PatientAnalytics, type PatientClinic, type PatientDoctor, type PatientGoals, PatientInstructionStatus, type PatientLifetimeValueMetrics, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileForDoctor, type PatientProfileInfo, type PatientRequirementInstance, type PatientRequirementInstruction, PatientRequirementOverallStatus, type PatientRequirementsFilters, PatientRequirementsService, type PatientRetentionMetrics, type PatientReviewInfo, type PatientSensitiveInfo, PatientService, type PatientToken, PatientTokenStatus, type PaymentConfirmationNotification, PaymentStatus, type PaymentStatusBreakdown, type PlanDetails, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerAnalytics, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerClinicWorkingHours, type PractitionerInvite, type PractitionerInviteFilters, PractitionerInviteService, PractitionerInviteStatus, type PractitionerProfileInfo, type PractitionerReview, type PractitionerReviewInfo, PractitionerService, PractitionerStatus, type PractitionerToken, PractitionerTokenStatus, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, type Procedure, type ProcedureAnalytics, type ProcedureCategorization, type ProcedureExtendedInfo, ProcedureFamily, type ProcedureInfo, type ProcedurePopularity, type ProcedureProduct, type ProcedureProfitability, type ProcedureRecommendationNotification, type ProcedureReview, type ProcedureReviewInfo, ProcedureService, type ProcedureSummaryInfo, type Product, type ProductRevenueMetrics, ProductService, type ProductUsageByProcedure, type ProductUsageMetrics, type ProposedWorkingHours, REGISTER_TOKENS_COLLECTION, REVENUE_ANALYTICS_SUBCOLLECTION, REVIEWS_COLLECTION, type RatingScaleElement, type ReadStoredAnalyticsOptions, type RecommendedProcedure, type RequesterInfo, type Requirement, type RequirementInstructionDueNotification, type RequirementSourceProcedure, RequirementType, type RevenueMetrics, type RevenueTrend, type Review, type ReviewRequestNotification, ReviewService, SYNCED_CALENDARS_COLLECTION, type SearchAppointmentsParams, type SearchCalendarEventsParams, SearchLocationEnum, type SearchPatientsParams, type SignatureElement, type SingleChoiceElement, type StoredCancellationMetrics, type StoredClinicAnalytics, type StoredDashboardAnalytics, type StoredNoShowMetrics, type StoredPractitionerAnalytics, type StoredProcedureAnalytics, type StoredRevenueMetrics, type StoredTimeEfficiencyMetrics, type StripeTransactionData, type Subcategory, SubcategoryService, SubscriptionModel, SubscriptionStatus, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, SyncedCalendarsService, TIME_EFFICIENCY_ANALYTICS_SUBCOLLECTION, type Technology, type TechnologyDocumentationTemplate, TechnologyService, type TextInputElement, type TimeEfficiencyMetrics, type TimeSlot, TimeUnit, TreatmentBenefit, type TreatmentBenefitDynamic, USERS_COLLECTION, USER_FORMS_SUBCOLLECTION, type UpdateAestheticAnalysisData, type UpdateAllergyData, type UpdateAppointmentData, type UpdateAppointmentParams, type UpdateBlockingConditionData, type UpdateBlockingEventParams, type UpdateCalendarEventData, type UpdateClinicAdminData, type UpdateClinicData, type UpdateClinicGroupData, type UpdateContraindicationData, type UpdateDocumentTemplateData, type UpdateMedicationData, type UpdatePatientLocationInfoData, type UpdatePatientMedicalInfoData, type UpdatePatientProfileData, type UpdatePatientSensitiveInfoData, type UpdatePractitionerData, type UpdatePractitionerInviteData, type UpdateProcedureData, type UpdateSyncedCalendarData, type UpdateVitalStatsData, type User, UserRole, UserService, type VitalStats, type WorkingHours, type ZoneItemData, type ZonePhotoUploadData, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseFunctions, getFirebaseInstance, getFirebaseStorage, initializeFirebase };
|
|
9111
|
+
export { AESTHETIC_ANALYSIS_COLLECTION, ANALYTICS_COLLECTION, APPOINTMENTS_COLLECTION, type AddAllergyData, type AddBlockingConditionData, type AddContraindicationData, type AddMedicationData, type AddressData, type AdminInfo, type AdminToken, AdminTokenStatus, type AestheticAnalysis, type AestheticAnalysisStatus, type Allergy, type AllergySubtype, AllergyType, type AllergyTypeWithSubtype, AnalyticsCloudService, type AnalyticsDateRange, type AnalyticsFilters, type AnalyticsMetadata, type AnalyticsPeriod, AnalyticsService, type Appointment, type AppointmentCancelledNotification, type AppointmentMediaItem, type AppointmentMetadata, type AppointmentProductMetadata, type AppointmentReminderNotification, type AppointmentRescheduledProposalNotification, AppointmentService, AppointmentStatus, type AppointmentStatusChangeNotification, type AppointmentTrend, type AssessmentScales, AuthService, type BaseDocumentElement, type BaseMetrics, type BaseNotification, BaseService, type BeforeAfterPerZone, type BillingInfo, type BillingPerZone, type BillingTransaction, BillingTransactionType, BillingTransactionsService, type BinaryChoiceElement, BlockingCondition, type Brand, BrandService, CALENDAR_COLLECTION, CANCELLATION_ANALYTICS_SUBCOLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_ANALYTICS_SUBCOLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarServiceV3, CalendarSyncStatus, type CancellationMetrics, type CancellationRateTrend, type CancellationReasonStats, type Category, CategoryService, CertificationLevel, CertificationSpecialty, type Clinic, type ClinicAdmin, ClinicAdminService, type ClinicAdminSignupData, type ClinicAnalytics, type ClinicBranchSetupData, type ClinicComparisonMetrics, type ClinicContactInfo, type ClinicGroup, ClinicGroupService, type ClinicGroupSetupData, type ClinicInfo, type ClinicLocation, ClinicPhotoTag, type ClinicReview, type ClinicReviewInfo, ClinicService, ClinicTag, type ClinicTags, type ClinicalFindingDetail, type ClinicalFindings, ConstantsService, type ContactPerson, Contraindication, type ContraindicationDynamic, CosmeticAllergySubtype, type CostPerPatientMetrics, type CreateAdminTokenData, type CreateAestheticAnalysisData, type CreateAppointmentData, type CreateAppointmentHttpData, type CreateAppointmentParams, type CreateBillingTransactionData, type CreateBlockingEventParams, type CreateCalendarEventData, type CreateClinicAdminData, type CreateClinicData, type CreateClinicGroupData, type CreateDefaultClinicGroupData, type CreateDocumentTemplateData, type CreateDraftPractitionerData, type CreateManualPatientData, type CreatePatientLocationInfoData, type CreatePatientMedicalInfoData, type CreatePatientProfileData, type CreatePatientSensitiveInfoData, type CreatePatientTokenData, type CreatePractitionerData, type CreatePractitionerInviteData, type CreatePractitionerTokenData, type CreateProcedureData, type CreateSyncedCalendarData, type CreateUserData, Currency, DASHBOARD_ANALYTICS_SUBCOLLECTION, DEFAULT_MEDICAL_INFO, DOCTOR_FORMS_SUBCOLLECTION, DOCUMENTATION_TEMPLATES_COLLECTION, type DashboardAnalytics, type DatePickerElement, type DateRange, type DigitalSignatureElement, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, type DurationTrend, type DynamicTextElement, DynamicVariable, type EmergencyContact, type EntityType, EnvironmentalAllergySubtype, type ExtendedProcedureInfo, ExternalCalendarService, FILLED_DOCUMENTS_COLLECTION, type FileUploadElement, type FilledDocument, type FilledDocumentFileValue, FilledDocumentService, FilledDocumentStatus, type FinalBilling, type FirebaseUser, FoodAllergySubtype, type FormReminderNotification, type FormSubmissionConfirmationNotification, type GamificationInfo, Gender, type GeneralMessageNotification, type GroupedAnalyticsBase, type GroupedPatientBehaviorMetrics, type GroupedPatientRetentionMetrics, type GroupedPractitionerPerformanceMetrics, type GroupedProcedurePerformanceMetrics, type GroupedProductUsageMetrics, type GroupedRevenueMetrics, type GroupedTimeEfficiencyMetrics, type GroupingPeriod, type HeadingElement, HeadingLevel, INVITE_TOKENS_COLLECTION, Language, type LinkedFormInfo, type ListElement, ListType, type LocationData, MEDIA_METADATA_COLLECTION, MediaAccessLevel, type MediaMetadata, type MediaResource, MediaService, MediaType, MedicationAllergySubtype, type MultipleChoiceElement, NOTIFICATIONS_COLLECTION, NO_SHOW_ANALYTICS_SUBCOLLECTION, type NextStepsRecommendation, type NoShowMetrics, type Notification, NotificationService, NotificationStatus, NotificationType, type OverallReviewAverages, PATIENTS_COLLECTION, PATIENT_APPOINTMENTS_COLLECTION, PATIENT_LOCATION_INFO_COLLECTION, PATIENT_MEDICAL_HISTORY_COLLECTION, PATIENT_MEDICAL_INFO_COLLECTION, PATIENT_REQUIREMENTS_SUBCOLLECTION_NAME, PATIENT_SENSITIVE_INFO_COLLECTION, PRACTITIONERS_COLLECTION, PRACTITIONER_ANALYTICS_SUBCOLLECTION, PRACTITIONER_INVITES_COLLECTION, PROCEDURES_COLLECTION, PROCEDURE_ANALYTICS_SUBCOLLECTION, type ParagraphElement, type PatientAnalytics, type PatientClinic, type PatientDoctor, type PatientGoals, PatientInstructionStatus, type PatientLifetimeValueMetrics, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileForDoctor, type PatientProfileInfo, type PatientRequirementInstance, type PatientRequirementInstruction, PatientRequirementOverallStatus, type PatientRequirementsFilters, PatientRequirementsService, type PatientRetentionMetrics, type PatientReviewInfo, type PatientSensitiveInfo, PatientService, type PatientToken, PatientTokenStatus, type PaymentConfirmationNotification, PaymentStatus, type PaymentStatusBreakdown, type PlanDetails, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerAnalytics, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerClinicWorkingHours, type PractitionerInvite, type PractitionerInviteFilters, PractitionerInviteService, PractitionerInviteStatus, type PractitionerProfileInfo, type PractitionerReview, type PractitionerReviewInfo, PractitionerService, PractitionerStatus, type PractitionerToken, PractitionerTokenStatus, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, type Procedure, type ProcedureAnalytics, type ProcedureCategorization, type ProcedureExtendedInfo, ProcedureFamily, type ProcedureInfo, type ProcedurePopularity, type ProcedureProduct, type ProcedureProfitability, type ProcedureRecommendationNotification, type ProcedureReview, type ProcedureReviewInfo, ProcedureService, type ProcedureSummaryInfo, type Product, type ProductRevenueMetrics, ProductService, type ProductUsageByProcedure, type ProductUsageMetrics, type ProposedWorkingHours, REGISTER_TOKENS_COLLECTION, REVENUE_ANALYTICS_SUBCOLLECTION, REVIEWS_COLLECTION, type RatingScaleElement, type ReadStoredAnalyticsOptions, type RecommendedProcedure, type RequesterInfo, type Requirement, type RequirementInstructionDueNotification, type RequirementSourceProcedure, RequirementType, type RevenueMetrics, type RevenueTrend, type Review, type ReviewAnalyticsMetrics, ReviewAnalyticsService, type ReviewDetail, type ReviewMetrics, type ReviewRequestNotification, ReviewService, type ReviewTrend, SYNCED_CALENDARS_COLLECTION, type SearchAppointmentsParams, type SearchCalendarEventsParams, SearchLocationEnum, type SearchPatientsParams, type SignatureElement, type SingleChoiceElement, type StoredCancellationMetrics, type StoredClinicAnalytics, type StoredDashboardAnalytics, type StoredNoShowMetrics, type StoredPractitionerAnalytics, type StoredProcedureAnalytics, type StoredRevenueMetrics, type StoredTimeEfficiencyMetrics, type StripeTransactionData, type Subcategory, SubcategoryService, SubscriptionModel, SubscriptionStatus, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, SyncedCalendarsService, TIME_EFFICIENCY_ANALYTICS_SUBCOLLECTION, type Technology, type TechnologyDocumentationTemplate, TechnologyService, type TextInputElement, type TimeEfficiencyMetrics, type TimeSlot, TimeUnit, TreatmentBenefit, type TreatmentBenefitDynamic, type TrendPeriod, USERS_COLLECTION, USER_FORMS_SUBCOLLECTION, type UpdateAestheticAnalysisData, type UpdateAllergyData, type UpdateAppointmentData, type UpdateAppointmentParams, type UpdateBlockingConditionData, type UpdateBlockingEventParams, type UpdateCalendarEventData, type UpdateClinicAdminData, type UpdateClinicData, type UpdateClinicGroupData, type UpdateContraindicationData, type UpdateDocumentTemplateData, type UpdateMedicationData, type UpdatePatientLocationInfoData, type UpdatePatientMedicalInfoData, type UpdatePatientProfileData, type UpdatePatientSensitiveInfoData, type UpdatePractitionerData, type UpdatePractitionerInviteData, type UpdateProcedureData, type UpdateSyncedCalendarData, type UpdateVitalStatsData, type User, UserRole, UserService, type VitalStats, type WorkingHours, type ZoneItemData, type ZonePhotoUploadData, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseFunctions, getFirebaseInstance, getFirebaseStorage, initializeFirebase };
|