feat: add Lab RX feature with template management and auto-seed defaults

- New lab_rx_template table with sortOrder and Prisma migrations
- Backend CRUD + reorder routes at /api/lab-rx/templates
- Auto-seeds 3 Highland Dental Studio defaults on first use per user
- LabRxModal: template picker, inline rename, up/down reorder, full
  template form with sections (Template Name / Lab Info / Case Details)
- RX popup: Tooth Number, Shade, Due Date, Doctor (from NPI providers),
  Instructions pre-filled with "Please make / Thank you!", print output
- lab-rx-templates.ts config file for future git-managed additions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-07-02 23:20:44 -04:00
co-authored by Claude Sonnet 4.6
parent ac4d8c4c74
commit abb2a0ac96
908 changed files with 4858 additions and 14271 deletions
@@ -1907,6 +1907,49 @@ export * from './JsonNullableFilter.schema';
export * from './JsonNullableWithAggregatesFilter.schema.d';
export * from './JsonNullableWithAggregatesFilter.schema';
export * from './JsonWithAggregatesFilter.schema';
export * from './LabRxTemplateArgs.schema';
export * from './LabRxTemplateAvgAggregateInput.schema';
export * from './LabRxTemplateAvgOrderByAggregateInput.schema';
export * from './LabRxTemplateCountAggregateInput.schema';
export * from './LabRxTemplateCountOrderByAggregateInput.schema';
export * from './LabRxTemplateCreateInput.schema';
export * from './LabRxTemplateCreateManyInput.schema';
export * from './LabRxTemplateCreateManyUserInput.schema';
export * from './LabRxTemplateCreateManyUserInputEnvelope.schema';
export * from './LabRxTemplateCreateNestedManyWithoutUserInput.schema';
export * from './LabRxTemplateCreateOrConnectWithoutUserInput.schema';
export * from './LabRxTemplateCreateWithoutUserInput.schema';
export * from './LabRxTemplateInclude.schema';
export * from './LabRxTemplateListRelationFilter.schema';
export * from './LabRxTemplateMaxAggregateInput.schema';
export * from './LabRxTemplateMaxOrderByAggregateInput.schema';
export * from './LabRxTemplateMinAggregateInput.schema';
export * from './LabRxTemplateMinOrderByAggregateInput.schema';
export * from './LabRxTemplateOrderByRelationAggregateInput.schema';
export * from './LabRxTemplateOrderByWithAggregationInput.schema';
export * from './LabRxTemplateOrderByWithRelationInput.schema';
export * from './LabRxTemplateScalarWhereInput.schema';
export * from './LabRxTemplateScalarWhereWithAggregatesInput.schema';
export * from './LabRxTemplateSelect.schema';
export * from './LabRxTemplateSumAggregateInput.schema';
export * from './LabRxTemplateSumOrderByAggregateInput.schema';
export * from './LabRxTemplateUncheckedCreateInput.schema';
export * from './LabRxTemplateUncheckedCreateNestedManyWithoutUserInput.schema';
export * from './LabRxTemplateUncheckedCreateWithoutUserInput.schema';
export * from './LabRxTemplateUncheckedUpdateInput.schema';
export * from './LabRxTemplateUncheckedUpdateManyInput.schema';
export * from './LabRxTemplateUncheckedUpdateManyWithoutUserInput.schema';
export * from './LabRxTemplateUncheckedUpdateManyWithoutUserNestedInput.schema';
export * from './LabRxTemplateUncheckedUpdateWithoutUserInput.schema';
export * from './LabRxTemplateUpdateInput.schema';
export * from './LabRxTemplateUpdateManyMutationInput.schema';
export * from './LabRxTemplateUpdateManyWithWhereWithoutUserInput.schema';
export * from './LabRxTemplateUpdateManyWithoutUserNestedInput.schema';
export * from './LabRxTemplateUpdateWithWhereUniqueWithoutUserInput.schema';
export * from './LabRxTemplateUpdateWithoutUserInput.schema';
export * from './LabRxTemplateUpsertWithWhereUniqueWithoutUserInput.schema';
export * from './LabRxTemplateWhereInput.schema';
export * from './LabRxTemplateWhereUniqueInput.schema';
export * from './NestedBigIntFilter.schema.d';
export * from './NestedBigIntFilter.schema';
export * from './NestedBigIntWithAggregatesFilter.schema.d';
@@ -3679,6 +3722,7 @@ export * from './UserCountOutputTypeCountCommunicationsArgs.schema';
export * from './UserCountOutputTypeCountInsuranceContactsArgs.schema';
export * from './UserCountOutputTypeCountInsuranceCredentialsArgs.schema.d';
export * from './UserCountOutputTypeCountInsuranceCredentialsArgs.schema';
export * from './UserCountOutputTypeCountLabRxTemplatesArgs.schema';
export * from './UserCountOutputTypeCountNotificationsArgs.schema.d';
export * from './UserCountOutputTypeCountNotificationsArgs.schema';
export * from './UserCountOutputTypeCountNpiProvidersArgs.schema.d';
@@ -3715,6 +3759,7 @@ export * from './UserCreateNestedOneWithoutCommunicationsInput.schema';
export * from './UserCreateNestedOneWithoutInsuranceContactsInput.schema';
export * from './UserCreateNestedOneWithoutInsuranceCredentialsInput.schema.d';
export * from './UserCreateNestedOneWithoutInsuranceCredentialsInput.schema';
export * from './UserCreateNestedOneWithoutLabRxTemplatesInput.schema';
export * from './UserCreateNestedOneWithoutNotificationsInput.schema.d';
export * from './UserCreateNestedOneWithoutNotificationsInput.schema';
export * from './UserCreateNestedOneWithoutNpiProvidersInput.schema.d';
@@ -3749,6 +3794,7 @@ export * from './UserCreateOrConnectWithoutCommunicationsInput.schema';
export * from './UserCreateOrConnectWithoutInsuranceContactsInput.schema';
export * from './UserCreateOrConnectWithoutInsuranceCredentialsInput.schema.d';
export * from './UserCreateOrConnectWithoutInsuranceCredentialsInput.schema';
export * from './UserCreateOrConnectWithoutLabRxTemplatesInput.schema';
export * from './UserCreateOrConnectWithoutNotificationsInput.schema.d';
export * from './UserCreateOrConnectWithoutNotificationsInput.schema';
export * from './UserCreateOrConnectWithoutNpiProvidersInput.schema.d';
@@ -3783,6 +3829,7 @@ export * from './UserCreateWithoutCommunicationsInput.schema';
export * from './UserCreateWithoutInsuranceContactsInput.schema';
export * from './UserCreateWithoutInsuranceCredentialsInput.schema.d';
export * from './UserCreateWithoutInsuranceCredentialsInput.schema';
export * from './UserCreateWithoutLabRxTemplatesInput.schema';
export * from './UserCreateWithoutNotificationsInput.schema.d';
export * from './UserCreateWithoutNotificationsInput.schema';
export * from './UserCreateWithoutNpiProvidersInput.schema.d';
@@ -3845,6 +3892,7 @@ export * from './UserUncheckedCreateWithoutCommunicationsInput.schema';
export * from './UserUncheckedCreateWithoutInsuranceContactsInput.schema';
export * from './UserUncheckedCreateWithoutInsuranceCredentialsInput.schema.d';
export * from './UserUncheckedCreateWithoutInsuranceCredentialsInput.schema';
export * from './UserUncheckedCreateWithoutLabRxTemplatesInput.schema';
export * from './UserUncheckedCreateWithoutNotificationsInput.schema.d';
export * from './UserUncheckedCreateWithoutNotificationsInput.schema';
export * from './UserUncheckedCreateWithoutNpiProvidersInput.schema.d';
@@ -3883,6 +3931,7 @@ export * from './UserUncheckedUpdateWithoutCommunicationsInput.schema';
export * from './UserUncheckedUpdateWithoutInsuranceContactsInput.schema';
export * from './UserUncheckedUpdateWithoutInsuranceCredentialsInput.schema.d';
export * from './UserUncheckedUpdateWithoutInsuranceCredentialsInput.schema';
export * from './UserUncheckedUpdateWithoutLabRxTemplatesInput.schema';
export * from './UserUncheckedUpdateWithoutNotificationsInput.schema.d';
export * from './UserUncheckedUpdateWithoutNotificationsInput.schema';
export * from './UserUncheckedUpdateWithoutNpiProvidersInput.schema.d';
@@ -3917,6 +3966,7 @@ export * from './UserUpdateOneRequiredWithoutCloudFoldersNestedInput.schema';
export * from './UserUpdateOneRequiredWithoutInsuranceContactsNestedInput.schema';
export * from './UserUpdateOneRequiredWithoutInsuranceCredentialsNestedInput.schema.d';
export * from './UserUpdateOneRequiredWithoutInsuranceCredentialsNestedInput.schema';
export * from './UserUpdateOneRequiredWithoutLabRxTemplatesNestedInput.schema';
export * from './UserUpdateOneRequiredWithoutNotificationsNestedInput.schema.d';
export * from './UserUpdateOneRequiredWithoutNotificationsNestedInput.schema';
export * from './UserUpdateOneRequiredWithoutNpiProvidersNestedInput.schema.d';
@@ -3955,6 +4005,7 @@ export * from './UserUpdateToOneWithWhereWithoutCommunicationsInput.schema';
export * from './UserUpdateToOneWithWhereWithoutInsuranceContactsInput.schema';
export * from './UserUpdateToOneWithWhereWithoutInsuranceCredentialsInput.schema.d';
export * from './UserUpdateToOneWithWhereWithoutInsuranceCredentialsInput.schema';
export * from './UserUpdateToOneWithWhereWithoutLabRxTemplatesInput.schema';
export * from './UserUpdateToOneWithWhereWithoutNotificationsInput.schema.d';
export * from './UserUpdateToOneWithWhereWithoutNotificationsInput.schema';
export * from './UserUpdateToOneWithWhereWithoutNpiProvidersInput.schema.d';
@@ -3989,6 +4040,7 @@ export * from './UserUpdateWithoutCommunicationsInput.schema';
export * from './UserUpdateWithoutInsuranceContactsInput.schema';
export * from './UserUpdateWithoutInsuranceCredentialsInput.schema.d';
export * from './UserUpdateWithoutInsuranceCredentialsInput.schema';
export * from './UserUpdateWithoutLabRxTemplatesInput.schema';
export * from './UserUpdateWithoutNotificationsInput.schema.d';
export * from './UserUpdateWithoutNotificationsInput.schema';
export * from './UserUpdateWithoutNpiProvidersInput.schema.d';
@@ -4023,6 +4075,7 @@ export * from './UserUpsertWithoutCommunicationsInput.schema';
export * from './UserUpsertWithoutInsuranceContactsInput.schema';
export * from './UserUpsertWithoutInsuranceCredentialsInput.schema.d';
export * from './UserUpsertWithoutInsuranceCredentialsInput.schema';
export * from './UserUpsertWithoutLabRxTemplatesInput.schema';
export * from './UserUpsertWithoutNotificationsInput.schema.d';
export * from './UserUpsertWithoutNotificationsInput.schema';
export * from './UserUpsertWithoutNpiProvidersInput.schema.d';