@rippling/rippling-sdk 0.2.0-alpha.68 → 0.2.0-alpha.69
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.
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* with status, treatment plans, rollups, and an SDUI ObjectListView tab for appointments.
|
|
4
4
|
*
|
|
5
5
|
* dental_patient__c ← chart: demographics, allergies, notes
|
|
6
|
+
* dental_provider__c ← providers selectable for appointments
|
|
6
7
|
* dental_operatory__c ← chair / room (parent for same-day board rollups)
|
|
7
8
|
* dental_appointment__c ← child of operatory; patient lookup, time, status, visit type
|
|
8
9
|
* dental_treatment_plan__c ← child of patient; plan status, procedures, estimates
|
|
@@ -146,6 +147,50 @@ const patientLabelField = new FormulaField(patientObj, {
|
|
|
146
147
|
section: patientIdentitySection,
|
|
147
148
|
});
|
|
148
149
|
|
|
150
|
+
// ── Provider ────────────────────────────────────────────────────────────────
|
|
151
|
+
const providerObj = new CustomObject(manifest, {
|
|
152
|
+
apiName: 'dental_provider__c',
|
|
153
|
+
name: 'Provider',
|
|
154
|
+
pluralLabel: 'Providers',
|
|
155
|
+
category: dentalCategory,
|
|
156
|
+
description: 'Clinicians who can be assigned to appointment blocks',
|
|
157
|
+
icon: { emoji: '🧑⚕️' },
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
const providerSection = new CustomObjectFieldSection(providerObj, {
|
|
161
|
+
name: 'Provider',
|
|
162
|
+
sectionId: 'sec_provider_info',
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
const providerNameField = providerObj.standardFields.name;
|
|
166
|
+
|
|
167
|
+
const providerStatusField = new SelectField(providerObj, {
|
|
168
|
+
apiName: 'provider_status__c',
|
|
169
|
+
displayName: 'Status',
|
|
170
|
+
description: 'Whether this provider is active in the practice',
|
|
171
|
+
options: ['Active', 'On leave', 'Inactive'],
|
|
172
|
+
required: true,
|
|
173
|
+
section: providerSection,
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
const providerBookingStatusField = new SelectField(providerObj, {
|
|
177
|
+
apiName: 'booking_status__c',
|
|
178
|
+
displayName: 'Booking status',
|
|
179
|
+
description: 'Whether scheduling should offer this provider for new appointments',
|
|
180
|
+
options: ['Open', 'Limited', 'Closed'],
|
|
181
|
+
required: true,
|
|
182
|
+
section: providerSection,
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
const providerNextAvailableDaysField = new NumberField(providerObj, {
|
|
186
|
+
apiName: 'next_available_days__c',
|
|
187
|
+
displayName: 'Next available (days)',
|
|
188
|
+
description: 'Estimated days until this provider has an open appointment slot',
|
|
189
|
+
decimalPlaces: 0,
|
|
190
|
+
required: true,
|
|
191
|
+
section: providerSection,
|
|
192
|
+
});
|
|
193
|
+
|
|
149
194
|
// ── Operatory (chair) ─────────────────────────────────────────────────────────
|
|
150
195
|
const operatoryObj = new CustomObject(manifest, {
|
|
151
196
|
apiName: 'dental_operatory__c',
|
|
@@ -230,6 +275,18 @@ const apptPatientRef = new LookupField(apptObj, {
|
|
|
230
275
|
section: apptPatientSection,
|
|
231
276
|
});
|
|
232
277
|
|
|
278
|
+
const apptProviderRef = new LookupField(apptObj, {
|
|
279
|
+
apiName: 'provider_ref__c',
|
|
280
|
+
displayName: 'Provider',
|
|
281
|
+
target: providerObj,
|
|
282
|
+
relatedDataLabel: 'Appointments',
|
|
283
|
+
required: true,
|
|
284
|
+
lookup_filter_rql_condition:
|
|
285
|
+
"((provider_status__c == 'Active') AND (next_available_days__c <= 14) AND (booking_status__c != 'Closed'))",
|
|
286
|
+
description: 'Provider assigned to this visit (active and bookable within two weeks)',
|
|
287
|
+
section: apptPatientSection,
|
|
288
|
+
});
|
|
289
|
+
|
|
233
290
|
const apptVisitTypeField = new SelectField(apptObj, {
|
|
234
291
|
apiName: 'visit_type__c',
|
|
235
292
|
displayName: 'Visit type',
|
|
@@ -402,6 +459,22 @@ new ListViewDef(patientObj, {
|
|
|
402
459
|
objectScope: 'all',
|
|
403
460
|
});
|
|
404
461
|
|
|
462
|
+
new ListViewDef(providerObj, {
|
|
463
|
+
viewId: 'view_dental_providers',
|
|
464
|
+
name: 'All providers',
|
|
465
|
+
description: 'Provider directory with appointment booking fields',
|
|
466
|
+
fields: [
|
|
467
|
+
providerNameField,
|
|
468
|
+
providerStatusField,
|
|
469
|
+
providerBookingStatusField,
|
|
470
|
+
providerNextAvailableDaysField,
|
|
471
|
+
],
|
|
472
|
+
orderBy: 'name',
|
|
473
|
+
sortOrder: 'ASC',
|
|
474
|
+
isPublic: true,
|
|
475
|
+
objectScope: 'all',
|
|
476
|
+
});
|
|
477
|
+
|
|
405
478
|
new ListViewDef(operatoryObj, {
|
|
406
479
|
viewId: 'view_dental_all_operatories',
|
|
407
480
|
name: 'All operatories',
|
|
@@ -423,6 +496,7 @@ new ListViewDef(apptObj, {
|
|
|
423
496
|
apptStartField,
|
|
424
497
|
apptDurationMins,
|
|
425
498
|
apptPatientRef,
|
|
499
|
+
apptProviderRef,
|
|
426
500
|
apptVisitTypeField,
|
|
427
501
|
apptStatusField,
|
|
428
502
|
apptBoardLabel,
|
|
@@ -490,6 +564,37 @@ new CustomObjectPageLayout(patientObj, {
|
|
|
490
564
|
visibilityConditions: {},
|
|
491
565
|
});
|
|
492
566
|
|
|
567
|
+
new CustomObjectPageLayout(providerObj, {
|
|
568
|
+
apiName: 'default',
|
|
569
|
+
name: 'Provider',
|
|
570
|
+
layoutId: 'layout_dental_provider',
|
|
571
|
+
tabEdits: {
|
|
572
|
+
newTabs: [
|
|
573
|
+
{
|
|
574
|
+
key: 'provider',
|
|
575
|
+
name: 'Provider',
|
|
576
|
+
type: 'tab_with_sections',
|
|
577
|
+
sections: [
|
|
578
|
+
{
|
|
579
|
+
name: 'Booking',
|
|
580
|
+
type: 'fields_section',
|
|
581
|
+
section: providerSection,
|
|
582
|
+
fields: [
|
|
583
|
+
{ field: providerNameField, editable: true },
|
|
584
|
+
providerStatusField,
|
|
585
|
+
providerBookingStatusField,
|
|
586
|
+
providerNextAvailableDaysField,
|
|
587
|
+
],
|
|
588
|
+
},
|
|
589
|
+
],
|
|
590
|
+
},
|
|
591
|
+
],
|
|
592
|
+
systemTabEdits: {},
|
|
593
|
+
tabsOrder: ['provider'],
|
|
594
|
+
},
|
|
595
|
+
visibilityConditions: {},
|
|
596
|
+
});
|
|
597
|
+
|
|
493
598
|
new CustomObjectPageLayout(operatoryObj, {
|
|
494
599
|
apiName: 'default',
|
|
495
600
|
name: 'Operatory',
|
|
@@ -537,7 +642,14 @@ new CustomObjectPageLayout(apptObj, {
|
|
|
537
642
|
name: 'Patient & status',
|
|
538
643
|
type: 'fields_section',
|
|
539
644
|
section: apptPatientSection,
|
|
540
|
-
fields: [
|
|
645
|
+
fields: [
|
|
646
|
+
apptPatientRef,
|
|
647
|
+
apptProviderRef,
|
|
648
|
+
apptVisitTypeField,
|
|
649
|
+
apptStatusField,
|
|
650
|
+
apptBoardLabel,
|
|
651
|
+
apptClinicalNotes,
|
|
652
|
+
],
|
|
541
653
|
},
|
|
542
654
|
],
|
|
543
655
|
},
|
package/package.json
CHANGED
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = '0.2.0-alpha.
|
|
1
|
+
export const VERSION = '0.2.0-alpha.69'; // x-release-please-version
|
package/version.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.2.0-alpha.
|
|
1
|
+
export declare const VERSION = "0.2.0-alpha.69";
|
|
2
2
|
//# sourceMappingURL=version.d.mts.map
|
package/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.2.0-alpha.
|
|
1
|
+
export declare const VERSION = "0.2.0-alpha.69";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/version.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.VERSION = void 0;
|
|
4
|
-
exports.VERSION = '0.2.0-alpha.
|
|
4
|
+
exports.VERSION = '0.2.0-alpha.69'; // x-release-please-version
|
|
5
5
|
//# sourceMappingURL=version.js.map
|
package/version.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '0.2.0-alpha.
|
|
1
|
+
export const VERSION = '0.2.0-alpha.69'; // x-release-please-version
|
|
2
2
|
//# sourceMappingURL=version.mjs.map
|