@blackcode_sa/metaestetics-api 1.5.4 → 1.5.7

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.
@@ -207,6 +207,7 @@ var TreatmentBenefit = /* @__PURE__ */ ((TreatmentBenefit2) => {
207
207
  })(TreatmentBenefit || {});
208
208
 
209
209
  // src/types/documentation-templates/index.ts
210
+ var DOCUMENTATION_TEMPLATES_COLLECTION = "documentation-templates";
210
211
  var DocumentElementType = /* @__PURE__ */ ((DocumentElementType2) => {
211
212
  DocumentElementType2["HEADING"] = "heading";
212
213
  DocumentElementType2["PARAGRAPH"] = "paragraph";
@@ -1460,17 +1461,12 @@ var ProductService = class extends BaseService {
1460
1461
 
1461
1462
  // src/services/documentation-templates/documentation-template.service.ts
1462
1463
  var import_firestore7 = require("firebase/firestore");
1463
-
1464
- // src/types/index.ts
1465
- var DOCUMENTATION_TEMPLATES_COLLECTION2 = "documentation-templates";
1466
-
1467
- // src/services/documentation-templates/documentation-template.service.ts
1468
1464
  var DocumentationTemplateService = class extends BaseService {
1469
1465
  constructor() {
1470
1466
  super(...arguments);
1471
1467
  this.collectionRef = (0, import_firestore7.collection)(
1472
1468
  this.db,
1473
- DOCUMENTATION_TEMPLATES_COLLECTION2
1469
+ DOCUMENTATION_TEMPLATES_COLLECTION
1474
1470
  );
1475
1471
  }
1476
1472
  /**
@@ -115,6 +115,7 @@ var TreatmentBenefit = /* @__PURE__ */ ((TreatmentBenefit2) => {
115
115
  })(TreatmentBenefit || {});
116
116
 
117
117
  // src/types/documentation-templates/index.ts
118
+ var DOCUMENTATION_TEMPLATES_COLLECTION = "documentation-templates";
118
119
  var DocumentElementType = /* @__PURE__ */ ((DocumentElementType2) => {
119
120
  DocumentElementType2["HEADING"] = "heading";
120
121
  DocumentElementType2["PARAGRAPH"] = "paragraph";
@@ -1438,17 +1439,12 @@ import {
1438
1439
  limit,
1439
1440
  startAfter
1440
1441
  } from "firebase/firestore";
1441
-
1442
- // src/types/index.ts
1443
- var DOCUMENTATION_TEMPLATES_COLLECTION2 = "documentation-templates";
1444
-
1445
- // src/services/documentation-templates/documentation-template.service.ts
1446
1442
  var DocumentationTemplateService = class extends BaseService {
1447
1443
  constructor() {
1448
1444
  super(...arguments);
1449
1445
  this.collectionRef = collection7(
1450
1446
  this.db,
1451
- DOCUMENTATION_TEMPLATES_COLLECTION2
1447
+ DOCUMENTATION_TEMPLATES_COLLECTION
1452
1448
  );
1453
1449
  }
1454
1450
  /**
package/dist/index.d.mts CHANGED
@@ -26,6 +26,14 @@ declare const getFirebaseAuth: () => Promise<Auth>;
26
26
  declare const getFirebaseDB: () => Promise<Firestore>;
27
27
  declare const getFirebaseApp: () => Promise<FirebaseApp>;
28
28
 
29
+ /**
30
+ * Types for the Medical Documentation Templating System
31
+ */
32
+ /**
33
+ * Kolekcija u Firestore bazi gde se čuvaju dokumentacijske šablone
34
+ */
35
+ declare const DOCUMENTATION_TEMPLATES_COLLECTION = "documentation-templates";
36
+ declare const FILLED_DOCUMENTS_COLLECTION = "filled-documents";
29
37
  /**
30
38
  * Enum for element types in documentation templates
31
39
  */
@@ -3676,9 +3684,6 @@ interface CreateUserData {
3676
3684
  }
3677
3685
  type FirebaseUser = User$1;
3678
3686
 
3679
- declare const DOCUMENTATION_TEMPLATES_COLLECTION = "documentation-templates";
3680
- declare const FILLED_DOCUMENTS_COLLECTION = "filled-documents";
3681
-
3682
3687
  declare class PatientService extends BaseService {
3683
3688
  constructor(db: Firestore, auth: Auth, app: FirebaseApp);
3684
3689
  createPatientProfile(data: CreatePatientProfileData): Promise<PatientProfile>;
@@ -4336,6 +4341,149 @@ declare class NotificationService extends BaseService {
4336
4341
  getAppointmentNotifications(appointmentId: string): Promise<Notification[]>;
4337
4342
  }
4338
4343
 
4344
+ /**
4345
+ * Procedure represents a specific medical procedure that can be performed by a practitioner in a clinic
4346
+ * It inherits properties from technology and adds clinic/practitioner specific details
4347
+ */
4348
+ interface Procedure {
4349
+ /** Unique identifier of the procedure */
4350
+ id: string;
4351
+ /** Name of the procedure */
4352
+ name: string;
4353
+ /** Detailed description of the procedure */
4354
+ description: string;
4355
+ /** Family of procedures this belongs to (aesthetics/surgery) */
4356
+ family: ProcedureFamily;
4357
+ /** Category this procedure belongs to */
4358
+ category: Category;
4359
+ /** Subcategory this procedure belongs to */
4360
+ subcategory: Subcategory;
4361
+ /** Technology used in this procedure */
4362
+ technology: Technology;
4363
+ /** Product used in this procedure */
4364
+ product: Product;
4365
+ /** Price of the procedure */
4366
+ price: number;
4367
+ /** Currency for the price */
4368
+ currency: Currency;
4369
+ /** How the price is measured (per ml, per zone, etc.) */
4370
+ pricingMeasure: PricingMeasure;
4371
+ /** Duration of the procedure in minutes */
4372
+ duration: number;
4373
+ /** Blocking conditions that prevent this procedure */
4374
+ blockingConditions: BlockingCondition[];
4375
+ /** Treatment benefits of this procedure */
4376
+ treatmentBenefits: TreatmentBenefit[];
4377
+ /** Pre-procedure requirements */
4378
+ preRequirements: Requirement[];
4379
+ /** Post-procedure requirements */
4380
+ postRequirements: Requirement[];
4381
+ /** Certification requirements for performing this procedure */
4382
+ certificationRequirement: CertificationRequirement;
4383
+ /** Documentation templates required for this procedure */
4384
+ documentationTemplates: DocumentTemplate[];
4385
+ /** ID of the practitioner who performs this procedure */
4386
+ practitionerId: string;
4387
+ /** ID of the clinic branch where this procedure is performed */
4388
+ clinicBranchId: string;
4389
+ /** Whether this procedure is active */
4390
+ isActive: boolean;
4391
+ /** When this procedure was created */
4392
+ createdAt: Date;
4393
+ /** When this procedure was last updated */
4394
+ updatedAt: Date;
4395
+ }
4396
+ /**
4397
+ * Data required to create a new procedure
4398
+ */
4399
+ interface CreateProcedureData {
4400
+ name: string;
4401
+ description: string;
4402
+ family: ProcedureFamily;
4403
+ categoryId: string;
4404
+ subcategoryId: string;
4405
+ technologyId: string;
4406
+ productId: string;
4407
+ price: number;
4408
+ currency: Currency;
4409
+ pricingMeasure: PricingMeasure;
4410
+ duration: number;
4411
+ practitionerId: string;
4412
+ clinicBranchId: string;
4413
+ }
4414
+ /**
4415
+ * Data that can be updated for an existing procedure
4416
+ */
4417
+ interface UpdateProcedureData {
4418
+ name?: string;
4419
+ description?: string;
4420
+ price?: number;
4421
+ currency?: Currency;
4422
+ pricingMeasure?: PricingMeasure;
4423
+ duration?: number;
4424
+ isActive?: boolean;
4425
+ }
4426
+
4427
+ declare class ProcedureService extends BaseService {
4428
+ constructor(db: Firestore, auth: Auth, app: FirebaseApp);
4429
+ /**
4430
+ * Creates a new procedure
4431
+ * @param data - The data for creating a new procedure
4432
+ * @returns The created procedure
4433
+ */
4434
+ createProcedure(data: CreateProcedureData): Promise<Procedure>;
4435
+ /**
4436
+ * Gets a procedure by ID
4437
+ * @param id - The ID of the procedure to get
4438
+ * @returns The procedure if found, null otherwise
4439
+ */
4440
+ getProcedure(id: string): Promise<Procedure | null>;
4441
+ /**
4442
+ * Gets all procedures for a clinic branch
4443
+ * @param clinicBranchId - The ID of the clinic branch
4444
+ * @returns List of procedures
4445
+ */
4446
+ getProceduresByClinicBranch(clinicBranchId: string): Promise<Procedure[]>;
4447
+ /**
4448
+ * Gets all procedures for a practitioner
4449
+ * @param practitionerId - The ID of the practitioner
4450
+ * @returns List of procedures
4451
+ */
4452
+ getProceduresByPractitioner(practitionerId: string): Promise<Procedure[]>;
4453
+ /**
4454
+ * Updates a procedure
4455
+ * @param id - The ID of the procedure to update
4456
+ * @param data - The data to update
4457
+ * @returns The updated procedure
4458
+ */
4459
+ updateProcedure(id: string, data: UpdateProcedureData): Promise<Procedure>;
4460
+ /**
4461
+ * Deactivates a procedure
4462
+ * @param id - The ID of the procedure to deactivate
4463
+ */
4464
+ deactivateProcedure(id: string): Promise<void>;
4465
+ /**
4466
+ * Gets a category by ID
4467
+ * @private
4468
+ */
4469
+ private getCategory;
4470
+ /**
4471
+ * Gets a subcategory by ID
4472
+ * @private
4473
+ */
4474
+ private getSubcategory;
4475
+ /**
4476
+ * Gets a technology by ID
4477
+ * @private
4478
+ */
4479
+ private getTechnology;
4480
+ /**
4481
+ * Gets a product by ID
4482
+ * @private
4483
+ */
4484
+ private getProduct;
4485
+ }
4486
+
4339
4487
  /**
4340
4488
  * Service for managing documentation templates
4341
4489
  */
@@ -14463,6 +14611,7 @@ declare const createCalendarEventSchema: z.ZodObject<{
14463
14611
  description?: string | undefined;
14464
14612
  createdAt?: any;
14465
14613
  appointmentId?: string | null | undefined;
14614
+ clinicBranchId?: string | null | undefined;
14466
14615
  procedureId?: string | null | undefined;
14467
14616
  eventLocation?: {
14468
14617
  latitude: number;
@@ -14473,7 +14622,6 @@ declare const createCalendarEventSchema: z.ZodObject<{
14473
14622
  postalCode: string;
14474
14623
  geohash?: string | null | undefined;
14475
14624
  } | undefined;
14476
- clinicBranchId?: string | null | undefined;
14477
14625
  clinicBranchInfo?: any;
14478
14626
  practitionerProfileId?: string | null | undefined;
14479
14627
  practitionerProfileInfo?: {
@@ -14520,6 +14668,7 @@ declare const createCalendarEventSchema: z.ZodObject<{
14520
14668
  description?: string | undefined;
14521
14669
  createdAt?: any;
14522
14670
  appointmentId?: string | null | undefined;
14671
+ clinicBranchId?: string | null | undefined;
14523
14672
  procedureId?: string | null | undefined;
14524
14673
  eventLocation?: {
14525
14674
  latitude: number;
@@ -14530,7 +14679,6 @@ declare const createCalendarEventSchema: z.ZodObject<{
14530
14679
  postalCode: string;
14531
14680
  geohash?: string | null | undefined;
14532
14681
  } | undefined;
14533
- clinicBranchId?: string | null | undefined;
14534
14682
  clinicBranchInfo?: any;
14535
14683
  practitionerProfileId?: string | null | undefined;
14536
14684
  practitionerProfileInfo?: {
@@ -14859,6 +15007,7 @@ declare const calendarEventSchema: z.ZodObject<{
14859
15007
  eventType: CalendarEventType;
14860
15008
  description?: string | undefined;
14861
15009
  appointmentId?: string | null | undefined;
15010
+ clinicBranchId?: string | null | undefined;
14862
15011
  procedureId?: string | null | undefined;
14863
15012
  eventLocation?: {
14864
15013
  latitude: number;
@@ -14869,7 +15018,6 @@ declare const calendarEventSchema: z.ZodObject<{
14869
15018
  postalCode: string;
14870
15019
  geohash?: string | null | undefined;
14871
15020
  } | undefined;
14872
- clinicBranchId?: string | null | undefined;
14873
15021
  clinicBranchInfo?: any;
14874
15022
  practitionerProfileId?: string | null | undefined;
14875
15023
  practitionerProfileInfo?: {
@@ -14930,6 +15078,7 @@ declare const calendarEventSchema: z.ZodObject<{
14930
15078
  eventType: CalendarEventType;
14931
15079
  description?: string | undefined;
14932
15080
  appointmentId?: string | null | undefined;
15081
+ clinicBranchId?: string | null | undefined;
14933
15082
  procedureId?: string | null | undefined;
14934
15083
  eventLocation?: {
14935
15084
  latitude: number;
@@ -14940,7 +15089,6 @@ declare const calendarEventSchema: z.ZodObject<{
14940
15089
  postalCode: string;
14941
15090
  geohash?: string | null | undefined;
14942
15091
  } | undefined;
14943
- clinicBranchId?: string | null | undefined;
14944
15092
  clinicBranchInfo?: any;
14945
15093
  practitionerProfileId?: string | null | undefined;
14946
15094
  practitionerProfileInfo?: {
@@ -15118,4 +15266,4 @@ declare enum FirebaseErrorCode {
15118
15266
  POPUP_ALREADY_OPEN = "auth/cancelled-popup-request"
15119
15267
  }
15120
15268
 
15121
- export { AUTH_ERRORS, type AddAllergyData, type AddBlockingConditionData, type AddContraindicationData, type AddMedicationData, type AddressData, type AdminInfo, type AdminToken, AdminTokenStatus, type Allergy, type AllergySubtype, AllergyType, type AllergyTypeWithSubtype, type AppointmentNotification, type AppointmentReminderNotification, AuthError, AuthService, type BaseNotification, BlockingCondition, type Brand, CALENDAR_COLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarSyncStatus, type Category, CertificationLevel, CertificationSpecialty, type Clinic, type ClinicAdmin, ClinicAdminService, type ClinicAdminSignupData, type ClinicBranchSetupData, type ClinicContactInfo, type ClinicGroup, ClinicGroupService, type ClinicGroupSetupData, type ClinicInfo, type ClinicLocation, ClinicPhotoTag, type ClinicReview, ClinicService, ClinicTag, type ClinicTags, type ContactPerson, Contraindication, CosmeticAllergySubtype, type CreateAdminTokenData, type CreateAppointmentParams, type CreateCalendarEventData, type CreateClinicAdminData, type CreateClinicData, type CreateClinicGroupData, type CreateDefaultClinicGroupData, type CreateDocumentTemplateData, type CreateDraftPractitionerData, type CreatePatientLocationInfoData, type CreatePatientMedicalInfoData, type CreatePatientProfileData, type CreatePatientSensitiveInfoData, type CreatePractitionerData, type CreatePractitionerTokenData, type CreateSyncedCalendarData, type CreateUserData, Currency, DOCUMENTATION_TEMPLATES_COLLECTION, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, DynamicVariable, type EmergencyContact, EnvironmentalAllergySubtype, FILLED_DOCUMENTS_COLLECTION, type FilledDocument, FilledDocumentService, FilledDocumentStatus, FirebaseErrorCode, type FirebaseUser, FoodAllergySubtype, type GamificationInfo, Gender, HeadingLevel, Language, ListType, type LocationData, MedicationAllergySubtype, type Notification, NotificationService, NotificationStatus, NotificationType, PATIENTS_COLLECTION, PATIENT_APPOINTMENTS_COLLECTION, PATIENT_LOCATION_INFO_COLLECTION, PATIENT_MEDICAL_HISTORY_COLLECTION, PATIENT_MEDICAL_INFO_COLLECTION, PATIENT_SENSITIVE_INFO_COLLECTION, PRACTITIONERS_COLLECTION, type PatientClinic, type PatientDoctor, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileInfo, type PatientSensitiveInfo, PatientService, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerClinicWorkingHours, type PractitionerProfileInfo, type PractitionerReview, PractitionerService, PractitionerStatus, type PractitionerToken, PractitionerTokenStatus, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, type ProcedureCategorization, ProcedureFamily, type ProcedureInfo, type Product, REGISTER_TOKENS_COLLECTION, type Requirement, type ReviewInfo, SYNCED_CALENDARS_COLLECTION, type ServiceInfo, type Subcategory, SubscriptionModel, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, SyncedCalendarsService, type Technology, type TimeSlot, TreatmentBenefit, USER_ERRORS, type UpdateAllergyData, type UpdateAppointmentParams, type UpdateBlockingConditionData, 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 UpdateSyncedCalendarData, type UpdateVitalStatsData, type User, UserRole, UserService, type ValidationSchema, type VitalStats, type WorkingHours, addAllergySchema, addBlockingConditionSchema, addContraindicationSchema, addMedicationSchema, addressDataSchema, adminInfoSchema, adminTokenSchema, allergySchema, allergySubtypeSchema, appointmentNotificationSchema, appointmentReminderNotificationSchema, baseNotificationSchema, blockingConditionSchema, calendarEventSchema, calendarEventTimeSchema, clinicAdminOptionsSchema, clinicAdminSchema, clinicAdminSignupSchema, clinicBranchSetupSchema, clinicContactInfoSchema, clinicGroupSchema, clinicGroupSetupSchema, clinicInfoSchema, clinicLocationSchema, clinicReviewSchema, clinicSchema, clinicTagsSchema, contactPersonSchema, contraindicationSchema, createAdminTokenSchema, createAppointmentSchema, createCalendarEventSchema, createClinicAdminSchema, createClinicGroupSchema, createClinicSchema, createDefaultClinicGroupSchema, createDocumentTemplateSchema, createDraftPractitionerSchema, createPatientLocationInfoSchema, createPatientMedicalInfoSchema, createPatientProfileSchema, createPatientSensitiveInfoSchema, createPractitionerSchema, createPractitionerTokenSchema, createUserOptionsSchema, doctorInfoSchema, documentElementSchema, documentElementWithoutIdSchema, documentTemplateSchema, emailSchema, emergencyContactSchema, gamificationSchema, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseInstance, initializeFirebase, locationDataSchema, medicationSchema, notificationSchema, passwordSchema, patientClinicSchema, patientDoctorSchema, patientLocationInfoSchema, patientMedicalInfoSchema, patientProfileInfoSchema, patientProfileSchema, patientSensitiveInfoSchema, postRequirementNotificationSchema, practitionerBasicInfoSchema, practitionerCertificationSchema, practitionerClinicProceduresSchema, practitionerClinicWorkingHoursSchema, practitionerProfileInfoSchema, practitionerReviewSchema, practitionerSchema, practitionerTokenSchema, practitionerWorkingHoursSchema, preRequirementNotificationSchema, procedureCategorizationSchema, procedureInfoSchema, reviewInfoSchema, serviceInfoSchema, syncedCalendarEventSchema, timeSlotSchema, timestampSchema, updateAllergySchema, updateAppointmentSchema, updateBlockingConditionSchema, updateCalendarEventSchema, updateClinicAdminSchema, updateClinicGroupSchema, updateClinicSchema, updateContraindicationSchema, updateDocumentTemplateSchema, updateMedicationSchema, updatePatientMedicalInfoSchema, updateVitalStatsSchema, userRoleSchema, userRolesSchema, userSchema, vitalStatsSchema, workingHoursSchema };
15269
+ export { AUTH_ERRORS, type AddAllergyData, type AddBlockingConditionData, type AddContraindicationData, type AddMedicationData, type AddressData, type AdminInfo, type AdminToken, AdminTokenStatus, type Allergy, type AllergySubtype, AllergyType, type AllergyTypeWithSubtype, type AppointmentNotification, type AppointmentReminderNotification, AuthError, AuthService, type BaseNotification, BlockingCondition, type Brand, CALENDAR_COLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarSyncStatus, type Category, CertificationLevel, CertificationSpecialty, type Clinic, type ClinicAdmin, ClinicAdminService, type ClinicAdminSignupData, type ClinicBranchSetupData, type ClinicContactInfo, type ClinicGroup, ClinicGroupService, type ClinicGroupSetupData, type ClinicInfo, type ClinicLocation, ClinicPhotoTag, type ClinicReview, ClinicService, ClinicTag, type ClinicTags, type ContactPerson, Contraindication, CosmeticAllergySubtype, type CreateAdminTokenData, type CreateAppointmentParams, type CreateCalendarEventData, type CreateClinicAdminData, type CreateClinicData, type CreateClinicGroupData, type CreateDefaultClinicGroupData, type CreateDocumentTemplateData, type CreateDraftPractitionerData, type CreatePatientLocationInfoData, type CreatePatientMedicalInfoData, type CreatePatientProfileData, type CreatePatientSensitiveInfoData, type CreatePractitionerData, type CreatePractitionerTokenData, type CreateSyncedCalendarData, type CreateUserData, Currency, DOCUMENTATION_TEMPLATES_COLLECTION, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, DynamicVariable, type EmergencyContact, EnvironmentalAllergySubtype, FILLED_DOCUMENTS_COLLECTION, type FilledDocument, FilledDocumentService, FilledDocumentStatus, FirebaseErrorCode, type FirebaseUser, FoodAllergySubtype, type GamificationInfo, Gender, HeadingLevel, Language, ListType, type LocationData, MedicationAllergySubtype, type Notification, NotificationService, NotificationStatus, NotificationType, PATIENTS_COLLECTION, PATIENT_APPOINTMENTS_COLLECTION, PATIENT_LOCATION_INFO_COLLECTION, PATIENT_MEDICAL_HISTORY_COLLECTION, PATIENT_MEDICAL_INFO_COLLECTION, PATIENT_SENSITIVE_INFO_COLLECTION, PRACTITIONERS_COLLECTION, type PatientClinic, type PatientDoctor, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileInfo, type PatientSensitiveInfo, PatientService, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerClinicWorkingHours, type PractitionerProfileInfo, type PractitionerReview, PractitionerService, PractitionerStatus, type PractitionerToken, PractitionerTokenStatus, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, type ProcedureCategorization, ProcedureFamily, type ProcedureInfo, ProcedureService, type Product, REGISTER_TOKENS_COLLECTION, type Requirement, type ReviewInfo, SYNCED_CALENDARS_COLLECTION, type ServiceInfo, type Subcategory, SubscriptionModel, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, SyncedCalendarsService, type Technology, type TimeSlot, TreatmentBenefit, USER_ERRORS, type UpdateAllergyData, type UpdateAppointmentParams, type UpdateBlockingConditionData, 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 UpdateSyncedCalendarData, type UpdateVitalStatsData, type User, UserRole, UserService, type ValidationSchema, type VitalStats, type WorkingHours, addAllergySchema, addBlockingConditionSchema, addContraindicationSchema, addMedicationSchema, addressDataSchema, adminInfoSchema, adminTokenSchema, allergySchema, allergySubtypeSchema, appointmentNotificationSchema, appointmentReminderNotificationSchema, baseNotificationSchema, blockingConditionSchema, calendarEventSchema, calendarEventTimeSchema, clinicAdminOptionsSchema, clinicAdminSchema, clinicAdminSignupSchema, clinicBranchSetupSchema, clinicContactInfoSchema, clinicGroupSchema, clinicGroupSetupSchema, clinicInfoSchema, clinicLocationSchema, clinicReviewSchema, clinicSchema, clinicTagsSchema, contactPersonSchema, contraindicationSchema, createAdminTokenSchema, createAppointmentSchema, createCalendarEventSchema, createClinicAdminSchema, createClinicGroupSchema, createClinicSchema, createDefaultClinicGroupSchema, createDocumentTemplateSchema, createDraftPractitionerSchema, createPatientLocationInfoSchema, createPatientMedicalInfoSchema, createPatientProfileSchema, createPatientSensitiveInfoSchema, createPractitionerSchema, createPractitionerTokenSchema, createUserOptionsSchema, doctorInfoSchema, documentElementSchema, documentElementWithoutIdSchema, documentTemplateSchema, emailSchema, emergencyContactSchema, gamificationSchema, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseInstance, initializeFirebase, locationDataSchema, medicationSchema, notificationSchema, passwordSchema, patientClinicSchema, patientDoctorSchema, patientLocationInfoSchema, patientMedicalInfoSchema, patientProfileInfoSchema, patientProfileSchema, patientSensitiveInfoSchema, postRequirementNotificationSchema, practitionerBasicInfoSchema, practitionerCertificationSchema, practitionerClinicProceduresSchema, practitionerClinicWorkingHoursSchema, practitionerProfileInfoSchema, practitionerReviewSchema, practitionerSchema, practitionerTokenSchema, practitionerWorkingHoursSchema, preRequirementNotificationSchema, procedureCategorizationSchema, procedureInfoSchema, reviewInfoSchema, serviceInfoSchema, syncedCalendarEventSchema, timeSlotSchema, timestampSchema, updateAllergySchema, updateAppointmentSchema, updateBlockingConditionSchema, updateCalendarEventSchema, updateClinicAdminSchema, updateClinicGroupSchema, updateClinicSchema, updateContraindicationSchema, updateDocumentTemplateSchema, updateMedicationSchema, updatePatientMedicalInfoSchema, updateVitalStatsSchema, userRoleSchema, userRolesSchema, userSchema, vitalStatsSchema, workingHoursSchema };
package/dist/index.d.ts CHANGED
@@ -26,6 +26,14 @@ declare const getFirebaseAuth: () => Promise<Auth>;
26
26
  declare const getFirebaseDB: () => Promise<Firestore>;
27
27
  declare const getFirebaseApp: () => Promise<FirebaseApp>;
28
28
 
29
+ /**
30
+ * Types for the Medical Documentation Templating System
31
+ */
32
+ /**
33
+ * Kolekcija u Firestore bazi gde se čuvaju dokumentacijske šablone
34
+ */
35
+ declare const DOCUMENTATION_TEMPLATES_COLLECTION = "documentation-templates";
36
+ declare const FILLED_DOCUMENTS_COLLECTION = "filled-documents";
29
37
  /**
30
38
  * Enum for element types in documentation templates
31
39
  */
@@ -3676,9 +3684,6 @@ interface CreateUserData {
3676
3684
  }
3677
3685
  type FirebaseUser = User$1;
3678
3686
 
3679
- declare const DOCUMENTATION_TEMPLATES_COLLECTION = "documentation-templates";
3680
- declare const FILLED_DOCUMENTS_COLLECTION = "filled-documents";
3681
-
3682
3687
  declare class PatientService extends BaseService {
3683
3688
  constructor(db: Firestore, auth: Auth, app: FirebaseApp);
3684
3689
  createPatientProfile(data: CreatePatientProfileData): Promise<PatientProfile>;
@@ -4336,6 +4341,149 @@ declare class NotificationService extends BaseService {
4336
4341
  getAppointmentNotifications(appointmentId: string): Promise<Notification[]>;
4337
4342
  }
4338
4343
 
4344
+ /**
4345
+ * Procedure represents a specific medical procedure that can be performed by a practitioner in a clinic
4346
+ * It inherits properties from technology and adds clinic/practitioner specific details
4347
+ */
4348
+ interface Procedure {
4349
+ /** Unique identifier of the procedure */
4350
+ id: string;
4351
+ /** Name of the procedure */
4352
+ name: string;
4353
+ /** Detailed description of the procedure */
4354
+ description: string;
4355
+ /** Family of procedures this belongs to (aesthetics/surgery) */
4356
+ family: ProcedureFamily;
4357
+ /** Category this procedure belongs to */
4358
+ category: Category;
4359
+ /** Subcategory this procedure belongs to */
4360
+ subcategory: Subcategory;
4361
+ /** Technology used in this procedure */
4362
+ technology: Technology;
4363
+ /** Product used in this procedure */
4364
+ product: Product;
4365
+ /** Price of the procedure */
4366
+ price: number;
4367
+ /** Currency for the price */
4368
+ currency: Currency;
4369
+ /** How the price is measured (per ml, per zone, etc.) */
4370
+ pricingMeasure: PricingMeasure;
4371
+ /** Duration of the procedure in minutes */
4372
+ duration: number;
4373
+ /** Blocking conditions that prevent this procedure */
4374
+ blockingConditions: BlockingCondition[];
4375
+ /** Treatment benefits of this procedure */
4376
+ treatmentBenefits: TreatmentBenefit[];
4377
+ /** Pre-procedure requirements */
4378
+ preRequirements: Requirement[];
4379
+ /** Post-procedure requirements */
4380
+ postRequirements: Requirement[];
4381
+ /** Certification requirements for performing this procedure */
4382
+ certificationRequirement: CertificationRequirement;
4383
+ /** Documentation templates required for this procedure */
4384
+ documentationTemplates: DocumentTemplate[];
4385
+ /** ID of the practitioner who performs this procedure */
4386
+ practitionerId: string;
4387
+ /** ID of the clinic branch where this procedure is performed */
4388
+ clinicBranchId: string;
4389
+ /** Whether this procedure is active */
4390
+ isActive: boolean;
4391
+ /** When this procedure was created */
4392
+ createdAt: Date;
4393
+ /** When this procedure was last updated */
4394
+ updatedAt: Date;
4395
+ }
4396
+ /**
4397
+ * Data required to create a new procedure
4398
+ */
4399
+ interface CreateProcedureData {
4400
+ name: string;
4401
+ description: string;
4402
+ family: ProcedureFamily;
4403
+ categoryId: string;
4404
+ subcategoryId: string;
4405
+ technologyId: string;
4406
+ productId: string;
4407
+ price: number;
4408
+ currency: Currency;
4409
+ pricingMeasure: PricingMeasure;
4410
+ duration: number;
4411
+ practitionerId: string;
4412
+ clinicBranchId: string;
4413
+ }
4414
+ /**
4415
+ * Data that can be updated for an existing procedure
4416
+ */
4417
+ interface UpdateProcedureData {
4418
+ name?: string;
4419
+ description?: string;
4420
+ price?: number;
4421
+ currency?: Currency;
4422
+ pricingMeasure?: PricingMeasure;
4423
+ duration?: number;
4424
+ isActive?: boolean;
4425
+ }
4426
+
4427
+ declare class ProcedureService extends BaseService {
4428
+ constructor(db: Firestore, auth: Auth, app: FirebaseApp);
4429
+ /**
4430
+ * Creates a new procedure
4431
+ * @param data - The data for creating a new procedure
4432
+ * @returns The created procedure
4433
+ */
4434
+ createProcedure(data: CreateProcedureData): Promise<Procedure>;
4435
+ /**
4436
+ * Gets a procedure by ID
4437
+ * @param id - The ID of the procedure to get
4438
+ * @returns The procedure if found, null otherwise
4439
+ */
4440
+ getProcedure(id: string): Promise<Procedure | null>;
4441
+ /**
4442
+ * Gets all procedures for a clinic branch
4443
+ * @param clinicBranchId - The ID of the clinic branch
4444
+ * @returns List of procedures
4445
+ */
4446
+ getProceduresByClinicBranch(clinicBranchId: string): Promise<Procedure[]>;
4447
+ /**
4448
+ * Gets all procedures for a practitioner
4449
+ * @param practitionerId - The ID of the practitioner
4450
+ * @returns List of procedures
4451
+ */
4452
+ getProceduresByPractitioner(practitionerId: string): Promise<Procedure[]>;
4453
+ /**
4454
+ * Updates a procedure
4455
+ * @param id - The ID of the procedure to update
4456
+ * @param data - The data to update
4457
+ * @returns The updated procedure
4458
+ */
4459
+ updateProcedure(id: string, data: UpdateProcedureData): Promise<Procedure>;
4460
+ /**
4461
+ * Deactivates a procedure
4462
+ * @param id - The ID of the procedure to deactivate
4463
+ */
4464
+ deactivateProcedure(id: string): Promise<void>;
4465
+ /**
4466
+ * Gets a category by ID
4467
+ * @private
4468
+ */
4469
+ private getCategory;
4470
+ /**
4471
+ * Gets a subcategory by ID
4472
+ * @private
4473
+ */
4474
+ private getSubcategory;
4475
+ /**
4476
+ * Gets a technology by ID
4477
+ * @private
4478
+ */
4479
+ private getTechnology;
4480
+ /**
4481
+ * Gets a product by ID
4482
+ * @private
4483
+ */
4484
+ private getProduct;
4485
+ }
4486
+
4339
4487
  /**
4340
4488
  * Service for managing documentation templates
4341
4489
  */
@@ -14463,6 +14611,7 @@ declare const createCalendarEventSchema: z.ZodObject<{
14463
14611
  description?: string | undefined;
14464
14612
  createdAt?: any;
14465
14613
  appointmentId?: string | null | undefined;
14614
+ clinicBranchId?: string | null | undefined;
14466
14615
  procedureId?: string | null | undefined;
14467
14616
  eventLocation?: {
14468
14617
  latitude: number;
@@ -14473,7 +14622,6 @@ declare const createCalendarEventSchema: z.ZodObject<{
14473
14622
  postalCode: string;
14474
14623
  geohash?: string | null | undefined;
14475
14624
  } | undefined;
14476
- clinicBranchId?: string | null | undefined;
14477
14625
  clinicBranchInfo?: any;
14478
14626
  practitionerProfileId?: string | null | undefined;
14479
14627
  practitionerProfileInfo?: {
@@ -14520,6 +14668,7 @@ declare const createCalendarEventSchema: z.ZodObject<{
14520
14668
  description?: string | undefined;
14521
14669
  createdAt?: any;
14522
14670
  appointmentId?: string | null | undefined;
14671
+ clinicBranchId?: string | null | undefined;
14523
14672
  procedureId?: string | null | undefined;
14524
14673
  eventLocation?: {
14525
14674
  latitude: number;
@@ -14530,7 +14679,6 @@ declare const createCalendarEventSchema: z.ZodObject<{
14530
14679
  postalCode: string;
14531
14680
  geohash?: string | null | undefined;
14532
14681
  } | undefined;
14533
- clinicBranchId?: string | null | undefined;
14534
14682
  clinicBranchInfo?: any;
14535
14683
  practitionerProfileId?: string | null | undefined;
14536
14684
  practitionerProfileInfo?: {
@@ -14859,6 +15007,7 @@ declare const calendarEventSchema: z.ZodObject<{
14859
15007
  eventType: CalendarEventType;
14860
15008
  description?: string | undefined;
14861
15009
  appointmentId?: string | null | undefined;
15010
+ clinicBranchId?: string | null | undefined;
14862
15011
  procedureId?: string | null | undefined;
14863
15012
  eventLocation?: {
14864
15013
  latitude: number;
@@ -14869,7 +15018,6 @@ declare const calendarEventSchema: z.ZodObject<{
14869
15018
  postalCode: string;
14870
15019
  geohash?: string | null | undefined;
14871
15020
  } | undefined;
14872
- clinicBranchId?: string | null | undefined;
14873
15021
  clinicBranchInfo?: any;
14874
15022
  practitionerProfileId?: string | null | undefined;
14875
15023
  practitionerProfileInfo?: {
@@ -14930,6 +15078,7 @@ declare const calendarEventSchema: z.ZodObject<{
14930
15078
  eventType: CalendarEventType;
14931
15079
  description?: string | undefined;
14932
15080
  appointmentId?: string | null | undefined;
15081
+ clinicBranchId?: string | null | undefined;
14933
15082
  procedureId?: string | null | undefined;
14934
15083
  eventLocation?: {
14935
15084
  latitude: number;
@@ -14940,7 +15089,6 @@ declare const calendarEventSchema: z.ZodObject<{
14940
15089
  postalCode: string;
14941
15090
  geohash?: string | null | undefined;
14942
15091
  } | undefined;
14943
- clinicBranchId?: string | null | undefined;
14944
15092
  clinicBranchInfo?: any;
14945
15093
  practitionerProfileId?: string | null | undefined;
14946
15094
  practitionerProfileInfo?: {
@@ -15118,4 +15266,4 @@ declare enum FirebaseErrorCode {
15118
15266
  POPUP_ALREADY_OPEN = "auth/cancelled-popup-request"
15119
15267
  }
15120
15268
 
15121
- export { AUTH_ERRORS, type AddAllergyData, type AddBlockingConditionData, type AddContraindicationData, type AddMedicationData, type AddressData, type AdminInfo, type AdminToken, AdminTokenStatus, type Allergy, type AllergySubtype, AllergyType, type AllergyTypeWithSubtype, type AppointmentNotification, type AppointmentReminderNotification, AuthError, AuthService, type BaseNotification, BlockingCondition, type Brand, CALENDAR_COLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarSyncStatus, type Category, CertificationLevel, CertificationSpecialty, type Clinic, type ClinicAdmin, ClinicAdminService, type ClinicAdminSignupData, type ClinicBranchSetupData, type ClinicContactInfo, type ClinicGroup, ClinicGroupService, type ClinicGroupSetupData, type ClinicInfo, type ClinicLocation, ClinicPhotoTag, type ClinicReview, ClinicService, ClinicTag, type ClinicTags, type ContactPerson, Contraindication, CosmeticAllergySubtype, type CreateAdminTokenData, type CreateAppointmentParams, type CreateCalendarEventData, type CreateClinicAdminData, type CreateClinicData, type CreateClinicGroupData, type CreateDefaultClinicGroupData, type CreateDocumentTemplateData, type CreateDraftPractitionerData, type CreatePatientLocationInfoData, type CreatePatientMedicalInfoData, type CreatePatientProfileData, type CreatePatientSensitiveInfoData, type CreatePractitionerData, type CreatePractitionerTokenData, type CreateSyncedCalendarData, type CreateUserData, Currency, DOCUMENTATION_TEMPLATES_COLLECTION, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, DynamicVariable, type EmergencyContact, EnvironmentalAllergySubtype, FILLED_DOCUMENTS_COLLECTION, type FilledDocument, FilledDocumentService, FilledDocumentStatus, FirebaseErrorCode, type FirebaseUser, FoodAllergySubtype, type GamificationInfo, Gender, HeadingLevel, Language, ListType, type LocationData, MedicationAllergySubtype, type Notification, NotificationService, NotificationStatus, NotificationType, PATIENTS_COLLECTION, PATIENT_APPOINTMENTS_COLLECTION, PATIENT_LOCATION_INFO_COLLECTION, PATIENT_MEDICAL_HISTORY_COLLECTION, PATIENT_MEDICAL_INFO_COLLECTION, PATIENT_SENSITIVE_INFO_COLLECTION, PRACTITIONERS_COLLECTION, type PatientClinic, type PatientDoctor, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileInfo, type PatientSensitiveInfo, PatientService, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerClinicWorkingHours, type PractitionerProfileInfo, type PractitionerReview, PractitionerService, PractitionerStatus, type PractitionerToken, PractitionerTokenStatus, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, type ProcedureCategorization, ProcedureFamily, type ProcedureInfo, type Product, REGISTER_TOKENS_COLLECTION, type Requirement, type ReviewInfo, SYNCED_CALENDARS_COLLECTION, type ServiceInfo, type Subcategory, SubscriptionModel, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, SyncedCalendarsService, type Technology, type TimeSlot, TreatmentBenefit, USER_ERRORS, type UpdateAllergyData, type UpdateAppointmentParams, type UpdateBlockingConditionData, 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 UpdateSyncedCalendarData, type UpdateVitalStatsData, type User, UserRole, UserService, type ValidationSchema, type VitalStats, type WorkingHours, addAllergySchema, addBlockingConditionSchema, addContraindicationSchema, addMedicationSchema, addressDataSchema, adminInfoSchema, adminTokenSchema, allergySchema, allergySubtypeSchema, appointmentNotificationSchema, appointmentReminderNotificationSchema, baseNotificationSchema, blockingConditionSchema, calendarEventSchema, calendarEventTimeSchema, clinicAdminOptionsSchema, clinicAdminSchema, clinicAdminSignupSchema, clinicBranchSetupSchema, clinicContactInfoSchema, clinicGroupSchema, clinicGroupSetupSchema, clinicInfoSchema, clinicLocationSchema, clinicReviewSchema, clinicSchema, clinicTagsSchema, contactPersonSchema, contraindicationSchema, createAdminTokenSchema, createAppointmentSchema, createCalendarEventSchema, createClinicAdminSchema, createClinicGroupSchema, createClinicSchema, createDefaultClinicGroupSchema, createDocumentTemplateSchema, createDraftPractitionerSchema, createPatientLocationInfoSchema, createPatientMedicalInfoSchema, createPatientProfileSchema, createPatientSensitiveInfoSchema, createPractitionerSchema, createPractitionerTokenSchema, createUserOptionsSchema, doctorInfoSchema, documentElementSchema, documentElementWithoutIdSchema, documentTemplateSchema, emailSchema, emergencyContactSchema, gamificationSchema, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseInstance, initializeFirebase, locationDataSchema, medicationSchema, notificationSchema, passwordSchema, patientClinicSchema, patientDoctorSchema, patientLocationInfoSchema, patientMedicalInfoSchema, patientProfileInfoSchema, patientProfileSchema, patientSensitiveInfoSchema, postRequirementNotificationSchema, practitionerBasicInfoSchema, practitionerCertificationSchema, practitionerClinicProceduresSchema, practitionerClinicWorkingHoursSchema, practitionerProfileInfoSchema, practitionerReviewSchema, practitionerSchema, practitionerTokenSchema, practitionerWorkingHoursSchema, preRequirementNotificationSchema, procedureCategorizationSchema, procedureInfoSchema, reviewInfoSchema, serviceInfoSchema, syncedCalendarEventSchema, timeSlotSchema, timestampSchema, updateAllergySchema, updateAppointmentSchema, updateBlockingConditionSchema, updateCalendarEventSchema, updateClinicAdminSchema, updateClinicGroupSchema, updateClinicSchema, updateContraindicationSchema, updateDocumentTemplateSchema, updateMedicationSchema, updatePatientMedicalInfoSchema, updateVitalStatsSchema, userRoleSchema, userRolesSchema, userSchema, vitalStatsSchema, workingHoursSchema };
15269
+ export { AUTH_ERRORS, type AddAllergyData, type AddBlockingConditionData, type AddContraindicationData, type AddMedicationData, type AddressData, type AdminInfo, type AdminToken, AdminTokenStatus, type Allergy, type AllergySubtype, AllergyType, type AllergyTypeWithSubtype, type AppointmentNotification, type AppointmentReminderNotification, AuthError, AuthService, type BaseNotification, BlockingCondition, type Brand, CALENDAR_COLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarSyncStatus, type Category, CertificationLevel, CertificationSpecialty, type Clinic, type ClinicAdmin, ClinicAdminService, type ClinicAdminSignupData, type ClinicBranchSetupData, type ClinicContactInfo, type ClinicGroup, ClinicGroupService, type ClinicGroupSetupData, type ClinicInfo, type ClinicLocation, ClinicPhotoTag, type ClinicReview, ClinicService, ClinicTag, type ClinicTags, type ContactPerson, Contraindication, CosmeticAllergySubtype, type CreateAdminTokenData, type CreateAppointmentParams, type CreateCalendarEventData, type CreateClinicAdminData, type CreateClinicData, type CreateClinicGroupData, type CreateDefaultClinicGroupData, type CreateDocumentTemplateData, type CreateDraftPractitionerData, type CreatePatientLocationInfoData, type CreatePatientMedicalInfoData, type CreatePatientProfileData, type CreatePatientSensitiveInfoData, type CreatePractitionerData, type CreatePractitionerTokenData, type CreateSyncedCalendarData, type CreateUserData, Currency, DOCUMENTATION_TEMPLATES_COLLECTION, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, DynamicVariable, type EmergencyContact, EnvironmentalAllergySubtype, FILLED_DOCUMENTS_COLLECTION, type FilledDocument, FilledDocumentService, FilledDocumentStatus, FirebaseErrorCode, type FirebaseUser, FoodAllergySubtype, type GamificationInfo, Gender, HeadingLevel, Language, ListType, type LocationData, MedicationAllergySubtype, type Notification, NotificationService, NotificationStatus, NotificationType, PATIENTS_COLLECTION, PATIENT_APPOINTMENTS_COLLECTION, PATIENT_LOCATION_INFO_COLLECTION, PATIENT_MEDICAL_HISTORY_COLLECTION, PATIENT_MEDICAL_INFO_COLLECTION, PATIENT_SENSITIVE_INFO_COLLECTION, PRACTITIONERS_COLLECTION, type PatientClinic, type PatientDoctor, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileInfo, type PatientSensitiveInfo, PatientService, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerClinicWorkingHours, type PractitionerProfileInfo, type PractitionerReview, PractitionerService, PractitionerStatus, type PractitionerToken, PractitionerTokenStatus, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, type ProcedureCategorization, ProcedureFamily, type ProcedureInfo, ProcedureService, type Product, REGISTER_TOKENS_COLLECTION, type Requirement, type ReviewInfo, SYNCED_CALENDARS_COLLECTION, type ServiceInfo, type Subcategory, SubscriptionModel, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, SyncedCalendarsService, type Technology, type TimeSlot, TreatmentBenefit, USER_ERRORS, type UpdateAllergyData, type UpdateAppointmentParams, type UpdateBlockingConditionData, 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 UpdateSyncedCalendarData, type UpdateVitalStatsData, type User, UserRole, UserService, type ValidationSchema, type VitalStats, type WorkingHours, addAllergySchema, addBlockingConditionSchema, addContraindicationSchema, addMedicationSchema, addressDataSchema, adminInfoSchema, adminTokenSchema, allergySchema, allergySubtypeSchema, appointmentNotificationSchema, appointmentReminderNotificationSchema, baseNotificationSchema, blockingConditionSchema, calendarEventSchema, calendarEventTimeSchema, clinicAdminOptionsSchema, clinicAdminSchema, clinicAdminSignupSchema, clinicBranchSetupSchema, clinicContactInfoSchema, clinicGroupSchema, clinicGroupSetupSchema, clinicInfoSchema, clinicLocationSchema, clinicReviewSchema, clinicSchema, clinicTagsSchema, contactPersonSchema, contraindicationSchema, createAdminTokenSchema, createAppointmentSchema, createCalendarEventSchema, createClinicAdminSchema, createClinicGroupSchema, createClinicSchema, createDefaultClinicGroupSchema, createDocumentTemplateSchema, createDraftPractitionerSchema, createPatientLocationInfoSchema, createPatientMedicalInfoSchema, createPatientProfileSchema, createPatientSensitiveInfoSchema, createPractitionerSchema, createPractitionerTokenSchema, createUserOptionsSchema, doctorInfoSchema, documentElementSchema, documentElementWithoutIdSchema, documentTemplateSchema, emailSchema, emergencyContactSchema, gamificationSchema, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseInstance, initializeFirebase, locationDataSchema, medicationSchema, notificationSchema, passwordSchema, patientClinicSchema, patientDoctorSchema, patientLocationInfoSchema, patientMedicalInfoSchema, patientProfileInfoSchema, patientProfileSchema, patientSensitiveInfoSchema, postRequirementNotificationSchema, practitionerBasicInfoSchema, practitionerCertificationSchema, practitionerClinicProceduresSchema, practitionerClinicWorkingHoursSchema, practitionerProfileInfoSchema, practitionerReviewSchema, practitionerSchema, practitionerTokenSchema, practitionerWorkingHoursSchema, preRequirementNotificationSchema, procedureCategorizationSchema, procedureInfoSchema, reviewInfoSchema, serviceInfoSchema, syncedCalendarEventSchema, timeSlotSchema, timestampSchema, updateAllergySchema, updateAppointmentSchema, updateBlockingConditionSchema, updateCalendarEventSchema, updateClinicAdminSchema, updateClinicGroupSchema, updateClinicSchema, updateContraindicationSchema, updateDocumentTemplateSchema, updateMedicationSchema, updatePatientMedicalInfoSchema, updateVitalStatsSchema, userRoleSchema, userRolesSchema, userSchema, vitalStatsSchema, workingHoursSchema };