@rippling/rippling-sdk 0.2.0-alpha.53 → 0.2.0-alpha.55

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.
Files changed (105) hide show
  1. package/client.d.mts +24 -0
  2. package/client.d.mts.map +1 -1
  3. package/client.d.ts +24 -0
  4. package/client.d.ts.map +1 -1
  5. package/client.js +24 -0
  6. package/client.js.map +1 -1
  7. package/client.mjs +24 -0
  8. package/client.mjs.map +1 -1
  9. package/examples/functions/durable.ts +6 -6
  10. package/examples/manifest/custom-object-creation-workflow/custom-object-creation-workflow.ts +85 -0
  11. package/lib/manifest/index.d.mts +1 -0
  12. package/lib/manifest/index.d.mts.map +1 -1
  13. package/lib/manifest/index.d.ts +1 -0
  14. package/lib/manifest/index.d.ts.map +1 -1
  15. package/lib/manifest/index.js +3 -1
  16. package/lib/manifest/index.js.map +1 -1
  17. package/lib/manifest/index.mjs +1 -0
  18. package/lib/manifest/index.mjs.map +1 -1
  19. package/lib/manifest/manifest-builder.d.mts +1 -1
  20. package/lib/manifest/manifest-builder.d.mts.map +1 -1
  21. package/lib/manifest/manifest-builder.d.ts +1 -1
  22. package/lib/manifest/manifest-builder.d.ts.map +1 -1
  23. package/lib/manifest/manifest-builder.js.map +1 -1
  24. package/lib/manifest/manifest-builder.mjs.map +1 -1
  25. package/lib/manifest/workflow.d.mts +155 -0
  26. package/lib/manifest/workflow.d.mts.map +1 -0
  27. package/lib/manifest/workflow.d.ts +155 -0
  28. package/lib/manifest/workflow.d.ts.map +1 -0
  29. package/lib/manifest/workflow.js +51 -0
  30. package/lib/manifest/workflow.js.map +1 -0
  31. package/lib/manifest/workflow.mjs +47 -0
  32. package/lib/manifest/workflow.mjs.map +1 -0
  33. package/package.json +1 -1
  34. package/resources/break-types.d.mts +85 -0
  35. package/resources/break-types.d.mts.map +1 -0
  36. package/resources/break-types.d.ts +85 -0
  37. package/resources/break-types.d.ts.map +1 -0
  38. package/resources/break-types.js +32 -0
  39. package/resources/break-types.js.map +1 -0
  40. package/resources/break-types.mjs +28 -0
  41. package/resources/break-types.mjs.map +1 -0
  42. package/resources/earnings-inputs.d.mts +33 -0
  43. package/resources/earnings-inputs.d.mts.map +1 -1
  44. package/resources/earnings-inputs.d.ts +33 -0
  45. package/resources/earnings-inputs.d.ts.map +1 -1
  46. package/resources/index.d.mts +4 -0
  47. package/resources/index.d.mts.map +1 -1
  48. package/resources/index.d.ts +4 -0
  49. package/resources/index.d.ts.map +1 -1
  50. package/resources/index.js +10 -2
  51. package/resources/index.js.map +1 -1
  52. package/resources/index.mjs +4 -0
  53. package/resources/index.mjs.map +1 -1
  54. package/resources/scheduled-job-assignments.d.mts +156 -0
  55. package/resources/scheduled-job-assignments.d.mts.map +1 -0
  56. package/resources/scheduled-job-assignments.d.ts +156 -0
  57. package/resources/scheduled-job-assignments.d.ts.map +1 -0
  58. package/resources/scheduled-job-assignments.js +39 -0
  59. package/resources/scheduled-job-assignments.js.map +1 -0
  60. package/resources/scheduled-job-assignments.mjs +35 -0
  61. package/resources/scheduled-job-assignments.mjs.map +1 -0
  62. package/resources/software-deployments.d.mts +468 -0
  63. package/resources/software-deployments.d.mts.map +1 -0
  64. package/resources/software-deployments.d.ts +468 -0
  65. package/resources/software-deployments.d.ts.map +1 -0
  66. package/resources/software-deployments.js +56 -0
  67. package/resources/software-deployments.js.map +1 -0
  68. package/resources/software-deployments.mjs +52 -0
  69. package/resources/software-deployments.mjs.map +1 -0
  70. package/resources/worker-time-splits.d.mts +371 -0
  71. package/resources/worker-time-splits.d.mts.map +1 -0
  72. package/resources/worker-time-splits.d.ts +371 -0
  73. package/resources/worker-time-splits.d.ts.map +1 -0
  74. package/resources/worker-time-splits.js +56 -0
  75. package/resources/worker-time-splits.js.map +1 -0
  76. package/resources/worker-time-splits.mjs +52 -0
  77. package/resources/worker-time-splits.mjs.map +1 -0
  78. package/resources/workers.d.mts +1 -1
  79. package/resources/workers.d.ts +1 -1
  80. package/resources/workers.js +1 -1
  81. package/resources/workers.mjs +1 -1
  82. package/resources/workflow-action-executions.d.mts +1483 -1263
  83. package/resources/workflow-action-executions.d.mts.map +1 -1
  84. package/resources/workflow-action-executions.d.ts +1483 -1263
  85. package/resources/workflow-action-executions.d.ts.map +1 -1
  86. package/src/client.ts +100 -0
  87. package/src/lib/manifest/index.ts +26 -0
  88. package/src/lib/manifest/manifest-builder.ts +2 -1
  89. package/src/lib/manifest/workflow.ts +244 -0
  90. package/src/resources/break-types.ts +120 -0
  91. package/src/resources/earnings-inputs.ts +39 -0
  92. package/src/resources/index.ts +38 -0
  93. package/src/resources/scheduled-job-assignments.ts +216 -0
  94. package/src/resources/software-deployments.ts +607 -0
  95. package/src/resources/worker-time-splits.ts +480 -0
  96. package/src/resources/workers.ts +1 -1
  97. package/src/resources/workflow-action-executions.ts +1730 -1445
  98. package/src/version.ts +1 -1
  99. package/version.d.mts +1 -1
  100. package/version.d.ts +1 -1
  101. package/version.js +1 -1
  102. package/version.mjs +1 -1
  103. package/examples/manifest/dental-practice-management/manifest.json +0 -1912
  104. package/examples/manifest/gym-membership-management/manifest.json +0 -1991
  105. package/examples/manifest/simple-todo-app/manifest.json +0 -429
@@ -1,1912 +0,0 @@
1
- {
2
- "metadata": {
3
- "key": "dental_practice_management",
4
- "name": "Dental Practice Management",
5
- "description": "Patient charts, chair schedule, appointments with status, and treatment plans for a dental office"
6
- },
7
- "components": [
8
- {
9
- "type": "CUSTOM_CATEGORY",
10
- "api_name": "dental__c",
11
- "name": "Dental",
12
- "description": "Patients, chairs, visits, and treatment plans"
13
- },
14
- {
15
- "type": "CUSTOM_OBJECT",
16
- "api_name": "dental_patient__c",
17
- "name": "Patient",
18
- "description": "Clinical chart, demographics, and care preferences",
19
- "category_api_name": "dental__c",
20
- "icon": {
21
- "emoji": "🦷"
22
- },
23
- "plural_label": "Patients"
24
- },
25
- {
26
- "type": "CUSTOM_OBJECT_FIELD",
27
- "custom_object_api_name": "dental_patient__c",
28
- "field_api_name": "id",
29
- "field_display_name": "ID",
30
- "data_type": {
31
- "options_list": [],
32
- "supported_types": [],
33
- "field_type": "TEXT"
34
- },
35
- "description": "The Rippling ID of a record",
36
- "is_required": true,
37
- "is_unique": true,
38
- "is_indexed": null,
39
- "rql_formula": null,
40
- "formula_attr_metas": null,
41
- "is_standard": true,
42
- "derived_aggregated_field": null,
43
- "derived_field_formula": null,
44
- "section": null
45
- },
46
- {
47
- "type": "CUSTOM_OBJECT_FIELD",
48
- "custom_object_api_name": "dental_patient__c",
49
- "field_api_name": "created_at",
50
- "field_display_name": "Created Date",
51
- "data_type": {
52
- "options_list": [],
53
- "supported_types": [],
54
- "field_type": "DATETIME"
55
- },
56
- "description": "The date and time a record was created",
57
- "is_required": false,
58
- "is_unique": false,
59
- "is_indexed": null,
60
- "rql_formula": null,
61
- "formula_attr_metas": null,
62
- "is_standard": true,
63
- "derived_aggregated_field": null,
64
- "derived_field_formula": null,
65
- "section": null
66
- },
67
- {
68
- "type": "CUSTOM_OBJECT_FIELD",
69
- "custom_object_api_name": "dental_patient__c",
70
- "field_api_name": "updated_at",
71
- "field_display_name": "Last Modified Date",
72
- "data_type": {
73
- "options_list": [],
74
- "supported_types": [],
75
- "field_type": "DATETIME"
76
- },
77
- "description": "The date and time a record was last updated",
78
- "is_required": false,
79
- "is_unique": false,
80
- "is_indexed": null,
81
- "rql_formula": null,
82
- "formula_attr_metas": null,
83
- "is_standard": true,
84
- "derived_aggregated_field": null,
85
- "derived_field_formula": null,
86
- "section": null
87
- },
88
- {
89
- "type": "CUSTOM_OBJECT_FIELD",
90
- "custom_object_api_name": "dental_patient__c",
91
- "field_api_name": "system_updated_at",
92
- "field_display_name": "System Modified At",
93
- "data_type": {
94
- "options_list": [],
95
- "supported_types": [],
96
- "field_type": "DATETIME"
97
- },
98
- "description": "The date and time a record was last updated by the system",
99
- "is_required": false,
100
- "is_unique": false,
101
- "is_indexed": null,
102
- "rql_formula": null,
103
- "formula_attr_metas": null,
104
- "is_standard": true,
105
- "derived_aggregated_field": null,
106
- "derived_field_formula": null,
107
- "section": null
108
- },
109
- {
110
- "type": "CUSTOM_OBJECT_FIELD",
111
- "custom_object_api_name": "dental_patient__c",
112
- "field_api_name": "external_id",
113
- "field_display_name": "External ID",
114
- "data_type": {
115
- "options_list": [],
116
- "supported_types": [],
117
- "field_type": "TEXT"
118
- },
119
- "description": "The external identifier for a record used in third party integrations",
120
- "is_required": false,
121
- "is_unique": true,
122
- "is_indexed": null,
123
- "rql_formula": null,
124
- "formula_attr_metas": null,
125
- "is_standard": true,
126
- "derived_aggregated_field": null,
127
- "derived_field_formula": null,
128
- "section": null
129
- },
130
- {
131
- "type": "CUSTOM_OBJECT_FIELD",
132
- "custom_object_api_name": "dental_patient__c",
133
- "field_api_name": "name",
134
- "field_display_name": "Name",
135
- "data_type": {
136
- "options_list": [],
137
- "supported_types": [],
138
- "field_type": "TEXT"
139
- },
140
- "description": "A string used to describe a record. This is used for display purposes as well as search",
141
- "is_required": true,
142
- "is_unique": false,
143
- "is_indexed": null,
144
- "rql_formula": null,
145
- "formula_attr_metas": null,
146
- "is_standard": true,
147
- "derived_aggregated_field": null,
148
- "derived_field_formula": null,
149
- "section": null
150
- },
151
- {
152
- "type": "CUSTOM_OBJECT_FIELD",
153
- "custom_object_api_name": "dental_patient__c",
154
- "field_api_name": "owner_role",
155
- "field_display_name": "Owner",
156
- "data_type": {
157
- "options_list": [],
158
- "supported_types": [],
159
- "field_type": "NATIVE_EDGE",
160
- "og_model_rql_name": "Employee",
161
- "db_model_name": "RoleWithCompany",
162
- "reference_column_storage_type": "STRING"
163
- },
164
- "description": "The Employee responsible for the record. This is used by Permissions to determine who has ability to view, edit, and delete data",
165
- "is_required": false,
166
- "is_unique": false,
167
- "is_indexed": null,
168
- "rql_formula": null,
169
- "formula_attr_metas": null,
170
- "is_standard": true,
171
- "derived_aggregated_field": null,
172
- "derived_field_formula": null,
173
- "section": null
174
- },
175
- {
176
- "type": "CUSTOM_OBJECT_FIELD",
177
- "custom_object_api_name": "dental_patient__c",
178
- "field_api_name": "last_modified_by",
179
- "field_display_name": "Last Modified by",
180
- "data_type": {
181
- "options_list": [],
182
- "supported_types": [],
183
- "field_type": "NATIVE_EDGE",
184
- "og_model_rql_name": "Employee",
185
- "db_model_name": "RoleWithCompany",
186
- "reference_column_storage_type": "STRING"
187
- },
188
- "description": "The Employee who made the latest change.",
189
- "is_required": false,
190
- "is_unique": false,
191
- "is_indexed": null,
192
- "rql_formula": null,
193
- "formula_attr_metas": null,
194
- "is_standard": true,
195
- "derived_aggregated_field": null,
196
- "derived_field_formula": null,
197
- "section": null
198
- },
199
- {
200
- "type": "CUSTOM_OBJECT_FIELD",
201
- "custom_object_api_name": "dental_patient__c",
202
- "field_api_name": "created_by",
203
- "field_display_name": "Created by",
204
- "data_type": {
205
- "options_list": [],
206
- "supported_types": [],
207
- "field_type": "NATIVE_EDGE",
208
- "og_model_rql_name": "Employee",
209
- "db_model_name": "RoleWithCompany",
210
- "reference_column_storage_type": "STRING"
211
- },
212
- "description": "The Employee who created the record",
213
- "is_required": false,
214
- "is_unique": false,
215
- "is_indexed": null,
216
- "rql_formula": null,
217
- "formula_attr_metas": null,
218
- "is_standard": true,
219
- "derived_aggregated_field": null,
220
- "derived_field_formula": null,
221
- "section": null
222
- },
223
- {
224
- "type": "CUSTOM_OBJECT_FIELD_SECTION",
225
- "section_id": "sec_pt_identity",
226
- "model_name": "dental_patient__c",
227
- "name": "Demographics"
228
- },
229
- {
230
- "type": "CUSTOM_OBJECT_FIELD_SECTION",
231
- "section_id": "sec_pt_clinical",
232
- "model_name": "dental_patient__c",
233
- "name": "Clinical"
234
- },
235
- {
236
- "type": "CUSTOM_OBJECT_FIELD",
237
- "custom_object_api_name": "dental_patient__c",
238
- "field_api_name": "legal_name__c",
239
- "field_display_name": "Full legal name",
240
- "data_type": {
241
- "options_list": [],
242
- "supported_types": [],
243
- "field_type": "TEXT",
244
- "max_length": 160
245
- },
246
- "description": null,
247
- "is_required": true,
248
- "is_unique": null,
249
- "is_indexed": null,
250
- "rql_formula": null,
251
- "formula_attr_metas": null,
252
- "is_standard": false,
253
- "derived_aggregated_field": null,
254
- "derived_field_formula": null,
255
- "section": "sec_pt_identity"
256
- },
257
- {
258
- "type": "CUSTOM_OBJECT_FIELD",
259
- "custom_object_api_name": "dental_patient__c",
260
- "field_api_name": "date_of_birth__c",
261
- "field_display_name": "Date of birth",
262
- "data_type": {
263
- "options_list": [],
264
- "supported_types": [],
265
- "field_type": "DATE"
266
- },
267
- "description": null,
268
- "is_required": null,
269
- "is_unique": null,
270
- "is_indexed": null,
271
- "rql_formula": null,
272
- "formula_attr_metas": null,
273
- "is_standard": false,
274
- "derived_aggregated_field": null,
275
- "derived_field_formula": null,
276
- "section": "sec_pt_identity"
277
- },
278
- {
279
- "type": "CUSTOM_OBJECT_FIELD",
280
- "custom_object_api_name": "dental_patient__c",
281
- "field_api_name": "phone__c",
282
- "field_display_name": "Phone",
283
- "data_type": {
284
- "options_list": [],
285
- "supported_types": [],
286
- "field_type": "PHONE_NUMBER"
287
- },
288
- "description": null,
289
- "is_required": null,
290
- "is_unique": null,
291
- "is_indexed": null,
292
- "rql_formula": null,
293
- "formula_attr_metas": null,
294
- "is_standard": false,
295
- "derived_aggregated_field": null,
296
- "derived_field_formula": null,
297
- "section": "sec_pt_identity"
298
- },
299
- {
300
- "type": "CUSTOM_OBJECT_FIELD",
301
- "custom_object_api_name": "dental_patient__c",
302
- "field_api_name": "email__c",
303
- "field_display_name": "Email",
304
- "data_type": {
305
- "options_list": [],
306
- "supported_types": [],
307
- "field_type": "EMAIL"
308
- },
309
- "description": null,
310
- "is_required": null,
311
- "is_unique": true,
312
- "is_indexed": null,
313
- "rql_formula": null,
314
- "formula_attr_metas": null,
315
- "is_standard": false,
316
- "derived_aggregated_field": null,
317
- "derived_field_formula": null,
318
- "section": "sec_pt_identity"
319
- },
320
- {
321
- "type": "CUSTOM_OBJECT_FIELD",
322
- "custom_object_api_name": "dental_patient__c",
323
- "field_api_name": "allergies_and_alerts__c",
324
- "field_display_name": "Allergies & medical alerts",
325
- "data_type": {
326
- "options_list": [],
327
- "supported_types": [],
328
- "field_type": "LONG_TEXT",
329
- "max_length": 2000
330
- },
331
- "description": "Drug allergies, bisphosphonates, anticoagulants, latex, etc.",
332
- "is_required": null,
333
- "is_unique": null,
334
- "is_indexed": null,
335
- "rql_formula": null,
336
- "formula_attr_metas": null,
337
- "is_standard": false,
338
- "derived_aggregated_field": null,
339
- "derived_field_formula": null,
340
- "section": "sec_pt_clinical"
341
- },
342
- {
343
- "type": "CUSTOM_OBJECT_FIELD",
344
- "custom_object_api_name": "dental_patient__c",
345
- "field_api_name": "insurance_plan__c",
346
- "field_display_name": "Insurance / payer",
347
- "data_type": {
348
- "options_list": [],
349
- "supported_types": [],
350
- "field_type": "TEXT",
351
- "max_length": 120
352
- },
353
- "description": null,
354
- "is_required": null,
355
- "is_unique": null,
356
- "is_indexed": null,
357
- "rql_formula": null,
358
- "formula_attr_metas": null,
359
- "is_standard": false,
360
- "derived_aggregated_field": null,
361
- "derived_field_formula": null,
362
- "section": "sec_pt_clinical"
363
- },
364
- {
365
- "type": "CUSTOM_OBJECT_FIELD",
366
- "custom_object_api_name": "dental_patient__c",
367
- "field_api_name": "chart_summary__c",
368
- "field_display_name": "Chart summary & preferences",
369
- "data_type": {
370
- "options_list": [],
371
- "supported_types": [],
372
- "field_type": "LONG_TEXT",
373
- "max_length": 4000
374
- },
375
- "description": "Narrative, anxiety notes, perio class, last prophy, family history",
376
- "is_required": null,
377
- "is_unique": null,
378
- "is_indexed": null,
379
- "rql_formula": null,
380
- "formula_attr_metas": null,
381
- "is_standard": false,
382
- "derived_aggregated_field": null,
383
- "derived_field_formula": null,
384
- "section": "sec_pt_clinical"
385
- },
386
- {
387
- "type": "CUSTOM_OBJECT_FIELD",
388
- "custom_object_api_name": "dental_patient__c",
389
- "field_api_name": "patient_label__c",
390
- "field_display_name": "Chart label",
391
- "data_type": {
392
- "options_list": [],
393
- "supported_types": [],
394
- "field_type": "TEXT",
395
- "max_length": 220
396
- },
397
- "description": "Quick list label (name and birth year)",
398
- "is_required": null,
399
- "is_unique": null,
400
- "is_indexed": null,
401
- "rql_formula": null,
402
- "formula_attr_metas": null,
403
- "is_standard": false,
404
- "derived_aggregated_field": null,
405
- "derived_field_formula": "CONCATENATE(legal_name__c, ' (b. ', YEAR(date_of_birth__c), ')')",
406
- "section": "sec_pt_identity"
407
- },
408
- {
409
- "type": "CUSTOM_OBJECT",
410
- "api_name": "dental_operatory__c",
411
- "name": "Operatory",
412
- "description": "A chair, bay, or room you book on the daily board",
413
- "category_api_name": "dental__c",
414
- "icon": {
415
- "emoji": "🪥"
416
- },
417
- "plural_label": "Operatories"
418
- },
419
- {
420
- "type": "CUSTOM_OBJECT_FIELD",
421
- "custom_object_api_name": "dental_operatory__c",
422
- "field_api_name": "id",
423
- "field_display_name": "ID",
424
- "data_type": {
425
- "options_list": [],
426
- "supported_types": [],
427
- "field_type": "TEXT"
428
- },
429
- "description": "The Rippling ID of a record",
430
- "is_required": true,
431
- "is_unique": true,
432
- "is_indexed": null,
433
- "rql_formula": null,
434
- "formula_attr_metas": null,
435
- "is_standard": true,
436
- "derived_aggregated_field": null,
437
- "derived_field_formula": null,
438
- "section": null
439
- },
440
- {
441
- "type": "CUSTOM_OBJECT_FIELD",
442
- "custom_object_api_name": "dental_operatory__c",
443
- "field_api_name": "created_at",
444
- "field_display_name": "Created Date",
445
- "data_type": {
446
- "options_list": [],
447
- "supported_types": [],
448
- "field_type": "DATETIME"
449
- },
450
- "description": "The date and time a record was created",
451
- "is_required": false,
452
- "is_unique": false,
453
- "is_indexed": null,
454
- "rql_formula": null,
455
- "formula_attr_metas": null,
456
- "is_standard": true,
457
- "derived_aggregated_field": null,
458
- "derived_field_formula": null,
459
- "section": null
460
- },
461
- {
462
- "type": "CUSTOM_OBJECT_FIELD",
463
- "custom_object_api_name": "dental_operatory__c",
464
- "field_api_name": "updated_at",
465
- "field_display_name": "Last Modified Date",
466
- "data_type": {
467
- "options_list": [],
468
- "supported_types": [],
469
- "field_type": "DATETIME"
470
- },
471
- "description": "The date and time a record was last updated",
472
- "is_required": false,
473
- "is_unique": false,
474
- "is_indexed": null,
475
- "rql_formula": null,
476
- "formula_attr_metas": null,
477
- "is_standard": true,
478
- "derived_aggregated_field": null,
479
- "derived_field_formula": null,
480
- "section": null
481
- },
482
- {
483
- "type": "CUSTOM_OBJECT_FIELD",
484
- "custom_object_api_name": "dental_operatory__c",
485
- "field_api_name": "system_updated_at",
486
- "field_display_name": "System Modified At",
487
- "data_type": {
488
- "options_list": [],
489
- "supported_types": [],
490
- "field_type": "DATETIME"
491
- },
492
- "description": "The date and time a record was last updated by the system",
493
- "is_required": false,
494
- "is_unique": false,
495
- "is_indexed": null,
496
- "rql_formula": null,
497
- "formula_attr_metas": null,
498
- "is_standard": true,
499
- "derived_aggregated_field": null,
500
- "derived_field_formula": null,
501
- "section": null
502
- },
503
- {
504
- "type": "CUSTOM_OBJECT_FIELD",
505
- "custom_object_api_name": "dental_operatory__c",
506
- "field_api_name": "external_id",
507
- "field_display_name": "External ID",
508
- "data_type": {
509
- "options_list": [],
510
- "supported_types": [],
511
- "field_type": "TEXT"
512
- },
513
- "description": "The external identifier for a record used in third party integrations",
514
- "is_required": false,
515
- "is_unique": true,
516
- "is_indexed": null,
517
- "rql_formula": null,
518
- "formula_attr_metas": null,
519
- "is_standard": true,
520
- "derived_aggregated_field": null,
521
- "derived_field_formula": null,
522
- "section": null
523
- },
524
- {
525
- "type": "CUSTOM_OBJECT_FIELD",
526
- "custom_object_api_name": "dental_operatory__c",
527
- "field_api_name": "name",
528
- "field_display_name": "Name",
529
- "data_type": {
530
- "options_list": [],
531
- "supported_types": [],
532
- "field_type": "TEXT"
533
- },
534
- "description": "A string used to describe a record. This is used for display purposes as well as search",
535
- "is_required": true,
536
- "is_unique": false,
537
- "is_indexed": null,
538
- "rql_formula": null,
539
- "formula_attr_metas": null,
540
- "is_standard": true,
541
- "derived_aggregated_field": null,
542
- "derived_field_formula": null,
543
- "section": null
544
- },
545
- {
546
- "type": "CUSTOM_OBJECT_FIELD",
547
- "custom_object_api_name": "dental_operatory__c",
548
- "field_api_name": "owner_role",
549
- "field_display_name": "Owner",
550
- "data_type": {
551
- "options_list": [],
552
- "supported_types": [],
553
- "field_type": "NATIVE_EDGE",
554
- "og_model_rql_name": "Employee",
555
- "db_model_name": "RoleWithCompany",
556
- "reference_column_storage_type": "STRING"
557
- },
558
- "description": "The Employee responsible for the record. This is used by Permissions to determine who has ability to view, edit, and delete data",
559
- "is_required": false,
560
- "is_unique": false,
561
- "is_indexed": null,
562
- "rql_formula": null,
563
- "formula_attr_metas": null,
564
- "is_standard": true,
565
- "derived_aggregated_field": null,
566
- "derived_field_formula": null,
567
- "section": null
568
- },
569
- {
570
- "type": "CUSTOM_OBJECT_FIELD",
571
- "custom_object_api_name": "dental_operatory__c",
572
- "field_api_name": "last_modified_by",
573
- "field_display_name": "Last Modified by",
574
- "data_type": {
575
- "options_list": [],
576
- "supported_types": [],
577
- "field_type": "NATIVE_EDGE",
578
- "og_model_rql_name": "Employee",
579
- "db_model_name": "RoleWithCompany",
580
- "reference_column_storage_type": "STRING"
581
- },
582
- "description": "The Employee who made the latest change.",
583
- "is_required": false,
584
- "is_unique": false,
585
- "is_indexed": null,
586
- "rql_formula": null,
587
- "formula_attr_metas": null,
588
- "is_standard": true,
589
- "derived_aggregated_field": null,
590
- "derived_field_formula": null,
591
- "section": null
592
- },
593
- {
594
- "type": "CUSTOM_OBJECT_FIELD",
595
- "custom_object_api_name": "dental_operatory__c",
596
- "field_api_name": "created_by",
597
- "field_display_name": "Created by",
598
- "data_type": {
599
- "options_list": [],
600
- "supported_types": [],
601
- "field_type": "NATIVE_EDGE",
602
- "og_model_rql_name": "Employee",
603
- "db_model_name": "RoleWithCompany",
604
- "reference_column_storage_type": "STRING"
605
- },
606
- "description": "The Employee who created the record",
607
- "is_required": false,
608
- "is_unique": false,
609
- "is_indexed": null,
610
- "rql_formula": null,
611
- "formula_attr_metas": null,
612
- "is_standard": true,
613
- "derived_aggregated_field": null,
614
- "derived_field_formula": null,
615
- "section": null
616
- },
617
- {
618
- "type": "CUSTOM_OBJECT_FIELD_SECTION",
619
- "section_id": "sec_op_info",
620
- "model_name": "dental_operatory__c",
621
- "name": "Operatory"
622
- },
623
- {
624
- "type": "CUSTOM_OBJECT_FIELD",
625
- "custom_object_api_name": "dental_operatory__c",
626
- "field_api_name": "operatory_name__c",
627
- "field_display_name": "Name / label",
628
- "data_type": {
629
- "options_list": [],
630
- "supported_types": [],
631
- "field_type": "TEXT",
632
- "max_length": 80
633
- },
634
- "description": "E.g. \"Hyg 1\", \"DDS-2\", \"Surg A\"",
635
- "is_required": true,
636
- "is_unique": null,
637
- "is_indexed": null,
638
- "rql_formula": null,
639
- "formula_attr_metas": null,
640
- "is_standard": false,
641
- "derived_aggregated_field": null,
642
- "derived_field_formula": null,
643
- "section": "sec_op_info"
644
- },
645
- {
646
- "type": "CUSTOM_OBJECT_FIELD",
647
- "custom_object_api_name": "dental_operatory__c",
648
- "field_api_name": "room_code__c",
649
- "field_display_name": "Room code",
650
- "data_type": {
651
- "options_list": [],
652
- "supported_types": [],
653
- "field_type": "TEXT",
654
- "max_length": 20
655
- },
656
- "description": "Short code for whiteboards and schedules",
657
- "is_required": null,
658
- "is_unique": null,
659
- "is_indexed": null,
660
- "rql_formula": null,
661
- "formula_attr_metas": null,
662
- "is_standard": false,
663
- "derived_aggregated_field": null,
664
- "derived_field_formula": null,
665
- "section": "sec_op_info"
666
- },
667
- {
668
- "type": "CUSTOM_OBJECT",
669
- "api_name": "dental_appointment__c",
670
- "name": "Appointment",
671
- "description": "Chair booking with visit type and real-time visit status",
672
- "category_api_name": "dental__c",
673
- "icon": {
674
- "emoji": "📅"
675
- },
676
- "plural_label": "Appointments"
677
- },
678
- {
679
- "type": "CUSTOM_OBJECT_FIELD",
680
- "custom_object_api_name": "dental_appointment__c",
681
- "field_api_name": "id",
682
- "field_display_name": "ID",
683
- "data_type": {
684
- "options_list": [],
685
- "supported_types": [],
686
- "field_type": "TEXT"
687
- },
688
- "description": "The Rippling ID of a record",
689
- "is_required": true,
690
- "is_unique": true,
691
- "is_indexed": null,
692
- "rql_formula": null,
693
- "formula_attr_metas": null,
694
- "is_standard": true,
695
- "derived_aggregated_field": null,
696
- "derived_field_formula": null,
697
- "section": null
698
- },
699
- {
700
- "type": "CUSTOM_OBJECT_FIELD",
701
- "custom_object_api_name": "dental_appointment__c",
702
- "field_api_name": "created_at",
703
- "field_display_name": "Created Date",
704
- "data_type": {
705
- "options_list": [],
706
- "supported_types": [],
707
- "field_type": "DATETIME"
708
- },
709
- "description": "The date and time a record was created",
710
- "is_required": false,
711
- "is_unique": false,
712
- "is_indexed": null,
713
- "rql_formula": null,
714
- "formula_attr_metas": null,
715
- "is_standard": true,
716
- "derived_aggregated_field": null,
717
- "derived_field_formula": null,
718
- "section": null
719
- },
720
- {
721
- "type": "CUSTOM_OBJECT_FIELD",
722
- "custom_object_api_name": "dental_appointment__c",
723
- "field_api_name": "updated_at",
724
- "field_display_name": "Last Modified Date",
725
- "data_type": {
726
- "options_list": [],
727
- "supported_types": [],
728
- "field_type": "DATETIME"
729
- },
730
- "description": "The date and time a record was last updated",
731
- "is_required": false,
732
- "is_unique": false,
733
- "is_indexed": null,
734
- "rql_formula": null,
735
- "formula_attr_metas": null,
736
- "is_standard": true,
737
- "derived_aggregated_field": null,
738
- "derived_field_formula": null,
739
- "section": null
740
- },
741
- {
742
- "type": "CUSTOM_OBJECT_FIELD",
743
- "custom_object_api_name": "dental_appointment__c",
744
- "field_api_name": "system_updated_at",
745
- "field_display_name": "System Modified At",
746
- "data_type": {
747
- "options_list": [],
748
- "supported_types": [],
749
- "field_type": "DATETIME"
750
- },
751
- "description": "The date and time a record was last updated by the system",
752
- "is_required": false,
753
- "is_unique": false,
754
- "is_indexed": null,
755
- "rql_formula": null,
756
- "formula_attr_metas": null,
757
- "is_standard": true,
758
- "derived_aggregated_field": null,
759
- "derived_field_formula": null,
760
- "section": null
761
- },
762
- {
763
- "type": "CUSTOM_OBJECT_FIELD",
764
- "custom_object_api_name": "dental_appointment__c",
765
- "field_api_name": "external_id",
766
- "field_display_name": "External ID",
767
- "data_type": {
768
- "options_list": [],
769
- "supported_types": [],
770
- "field_type": "TEXT"
771
- },
772
- "description": "The external identifier for a record used in third party integrations",
773
- "is_required": false,
774
- "is_unique": true,
775
- "is_indexed": null,
776
- "rql_formula": null,
777
- "formula_attr_metas": null,
778
- "is_standard": true,
779
- "derived_aggregated_field": null,
780
- "derived_field_formula": null,
781
- "section": null
782
- },
783
- {
784
- "type": "CUSTOM_OBJECT_FIELD",
785
- "custom_object_api_name": "dental_appointment__c",
786
- "field_api_name": "name",
787
- "field_display_name": "Name",
788
- "data_type": {
789
- "options_list": [],
790
- "supported_types": [],
791
- "field_type": "TEXT"
792
- },
793
- "description": "A string used to describe a record. This is used for display purposes as well as search",
794
- "is_required": true,
795
- "is_unique": false,
796
- "is_indexed": null,
797
- "rql_formula": null,
798
- "formula_attr_metas": null,
799
- "is_standard": true,
800
- "derived_aggregated_field": null,
801
- "derived_field_formula": null,
802
- "section": null
803
- },
804
- {
805
- "type": "CUSTOM_OBJECT_FIELD",
806
- "custom_object_api_name": "dental_appointment__c",
807
- "field_api_name": "owner_role",
808
- "field_display_name": "Owner",
809
- "data_type": {
810
- "options_list": [],
811
- "supported_types": [],
812
- "field_type": "NATIVE_EDGE",
813
- "og_model_rql_name": "Employee",
814
- "db_model_name": "RoleWithCompany",
815
- "reference_column_storage_type": "STRING"
816
- },
817
- "description": "The Employee responsible for the record. This is used by Permissions to determine who has ability to view, edit, and delete data",
818
- "is_required": false,
819
- "is_unique": false,
820
- "is_indexed": null,
821
- "rql_formula": null,
822
- "formula_attr_metas": null,
823
- "is_standard": true,
824
- "derived_aggregated_field": null,
825
- "derived_field_formula": null,
826
- "section": null
827
- },
828
- {
829
- "type": "CUSTOM_OBJECT_FIELD",
830
- "custom_object_api_name": "dental_appointment__c",
831
- "field_api_name": "last_modified_by",
832
- "field_display_name": "Last Modified by",
833
- "data_type": {
834
- "options_list": [],
835
- "supported_types": [],
836
- "field_type": "NATIVE_EDGE",
837
- "og_model_rql_name": "Employee",
838
- "db_model_name": "RoleWithCompany",
839
- "reference_column_storage_type": "STRING"
840
- },
841
- "description": "The Employee who made the latest change.",
842
- "is_required": false,
843
- "is_unique": false,
844
- "is_indexed": null,
845
- "rql_formula": null,
846
- "formula_attr_metas": null,
847
- "is_standard": true,
848
- "derived_aggregated_field": null,
849
- "derived_field_formula": null,
850
- "section": null
851
- },
852
- {
853
- "type": "CUSTOM_OBJECT_FIELD",
854
- "custom_object_api_name": "dental_appointment__c",
855
- "field_api_name": "created_by",
856
- "field_display_name": "Created by",
857
- "data_type": {
858
- "options_list": [],
859
- "supported_types": [],
860
- "field_type": "NATIVE_EDGE",
861
- "og_model_rql_name": "Employee",
862
- "db_model_name": "RoleWithCompany",
863
- "reference_column_storage_type": "STRING"
864
- },
865
- "description": "The Employee who created the record",
866
- "is_required": false,
867
- "is_unique": false,
868
- "is_indexed": null,
869
- "rql_formula": null,
870
- "formula_attr_metas": null,
871
- "is_standard": true,
872
- "derived_aggregated_field": null,
873
- "derived_field_formula": null,
874
- "section": null
875
- },
876
- {
877
- "type": "CUSTOM_OBJECT_FIELD_SECTION",
878
- "section_id": "sec_appt_op",
879
- "model_name": "dental_appointment__c",
880
- "name": "Operatory & time"
881
- },
882
- {
883
- "type": "CUSTOM_OBJECT_FIELD_SECTION",
884
- "section_id": "sec_appt_patient",
885
- "model_name": "dental_appointment__c",
886
- "name": "Patient & visit"
887
- },
888
- {
889
- "type": "CUSTOM_OBJECT_FIELD",
890
- "custom_object_api_name": "dental_appointment__c",
891
- "field_api_name": "operatory_ref__c",
892
- "field_display_name": "Operatory (chair)",
893
- "data_type": {
894
- "options_list": [],
895
- "supported_types": [],
896
- "field_type": "OG_REFERENCE_FIELD",
897
- "og_model_rql_name": "dental_operatory__c",
898
- "edge_type": "PARENT_CHILD",
899
- "related_data_label": "Appointments",
900
- "parent_child_type": "PRIMARY",
901
- "enable_parent_owner_inheritance": false
902
- },
903
- "description": "Which chair or bay this visit is booked on",
904
- "is_required": true,
905
- "is_unique": null,
906
- "is_indexed": null,
907
- "rql_formula": null,
908
- "formula_attr_metas": null,
909
- "is_standard": false,
910
- "derived_aggregated_field": null,
911
- "derived_field_formula": null,
912
- "section": "sec_appt_op"
913
- },
914
- {
915
- "type": "CUSTOM_OBJECT_FIELD",
916
- "custom_object_api_name": "dental_appointment__c",
917
- "field_api_name": "start_time__c",
918
- "field_display_name": "Start (local)",
919
- "data_type": {
920
- "options_list": [],
921
- "supported_types": [],
922
- "field_type": "DATETIME"
923
- },
924
- "description": "Planned or actual start; board sorts by this",
925
- "is_required": true,
926
- "is_unique": null,
927
- "is_indexed": null,
928
- "rql_formula": null,
929
- "formula_attr_metas": null,
930
- "is_standard": false,
931
- "derived_aggregated_field": null,
932
- "derived_field_formula": null,
933
- "section": "sec_appt_op"
934
- },
935
- {
936
- "type": "CUSTOM_OBJECT_FIELD",
937
- "custom_object_api_name": "dental_appointment__c",
938
- "field_api_name": "duration_minutes__c",
939
- "field_display_name": "Duration (minutes)",
940
- "data_type": {
941
- "options_list": [],
942
- "supported_types": [],
943
- "field_type": "NUMBER",
944
- "num_of_decimal_places": 0
945
- },
946
- "description": "Expected chair time for the procedure block",
947
- "is_required": true,
948
- "is_unique": null,
949
- "is_indexed": null,
950
- "rql_formula": null,
951
- "formula_attr_metas": null,
952
- "is_standard": false,
953
- "derived_aggregated_field": null,
954
- "derived_field_formula": null,
955
- "section": "sec_appt_op"
956
- },
957
- {
958
- "type": "CUSTOM_OBJECT_FIELD",
959
- "custom_object_api_name": "dental_appointment__c",
960
- "field_api_name": "patient_ref__c",
961
- "field_display_name": "Patient",
962
- "data_type": {
963
- "options_list": [],
964
- "supported_types": [],
965
- "field_type": "OG_REFERENCE_FIELD",
966
- "og_model_rql_name": "dental_patient__c",
967
- "edge_type": "LOOKUP",
968
- "related_data_label": "Appointments"
969
- },
970
- "description": "Chart to open for this visit",
971
- "is_required": true,
972
- "is_unique": null,
973
- "is_indexed": null,
974
- "rql_formula": null,
975
- "formula_attr_metas": null,
976
- "is_standard": false,
977
- "derived_aggregated_field": null,
978
- "derived_field_formula": null,
979
- "section": "sec_appt_patient"
980
- },
981
- {
982
- "type": "CUSTOM_OBJECT_FIELD",
983
- "custom_object_api_name": "dental_appointment__c",
984
- "field_api_name": "visit_type__c",
985
- "field_display_name": "Visit type",
986
- "data_type": {
987
- "options_list": [
988
- "New patient exam",
989
- "Periodic / recall exam",
990
- "Prophy / cleaning",
991
- "Restorative",
992
- "Endodontic",
993
- "Perio / SRP",
994
- "Oral surgery / extraction",
995
- "Orthodontic",
996
- "Emergency / pain",
997
- "Other"
998
- ],
999
- "supported_types": [],
1000
- "field_type": "SELECT"
1001
- },
1002
- "description": null,
1003
- "is_required": true,
1004
- "is_unique": null,
1005
- "is_indexed": null,
1006
- "rql_formula": null,
1007
- "formula_attr_metas": null,
1008
- "is_standard": false,
1009
- "derived_aggregated_field": null,
1010
- "derived_field_formula": null,
1011
- "section": "sec_appt_patient"
1012
- },
1013
- {
1014
- "type": "CUSTOM_OBJECT_FIELD",
1015
- "custom_object_api_name": "dental_appointment__c",
1016
- "field_api_name": "appointment_status__c",
1017
- "field_display_name": "Visit status",
1018
- "data_type": {
1019
- "options_list": ["Scheduled", "Checked in", "In treatment", "Completed", "Cancelled", "No-show"],
1020
- "supported_types": [],
1021
- "field_type": "SELECT"
1022
- },
1023
- "description": "Front-desk and clinical workflow status",
1024
- "is_required": true,
1025
- "is_unique": null,
1026
- "is_indexed": null,
1027
- "rql_formula": null,
1028
- "formula_attr_metas": null,
1029
- "is_standard": false,
1030
- "derived_aggregated_field": null,
1031
- "derived_field_formula": null,
1032
- "section": "sec_appt_patient"
1033
- },
1034
- {
1035
- "type": "CUSTOM_OBJECT_FIELD",
1036
- "custom_object_api_name": "dental_appointment__c",
1037
- "field_api_name": "visit_notes__c",
1038
- "field_display_name": "Visit notes",
1039
- "data_type": {
1040
- "options_list": [],
1041
- "supported_types": [],
1042
- "field_type": "LONG_TEXT",
1043
- "max_length": 4000
1044
- },
1045
- "description": "Chairside notes for this block (sync with EDR as needed)",
1046
- "is_required": null,
1047
- "is_unique": null,
1048
- "is_indexed": null,
1049
- "rql_formula": null,
1050
- "formula_attr_metas": null,
1051
- "is_standard": false,
1052
- "derived_aggregated_field": null,
1053
- "derived_field_formula": null,
1054
- "section": "sec_appt_patient"
1055
- },
1056
- {
1057
- "type": "CUSTOM_OBJECT_FIELD",
1058
- "custom_object_api_name": "dental_appointment__c",
1059
- "field_api_name": "board_label__c",
1060
- "field_display_name": "Board label",
1061
- "data_type": {
1062
- "options_list": [],
1063
- "supported_types": [],
1064
- "field_type": "TEXT",
1065
- "max_length": 260
1066
- },
1067
- "description": null,
1068
- "is_required": null,
1069
- "is_unique": null,
1070
- "is_indexed": null,
1071
- "rql_formula": null,
1072
- "formula_attr_metas": null,
1073
- "is_standard": false,
1074
- "derived_aggregated_field": null,
1075
- "derived_field_formula": "CONCATENATE(visit_type__c, ' · ', appointment_status__c)",
1076
- "section": "sec_appt_patient"
1077
- },
1078
- {
1079
- "type": "CUSTOM_OBJECT",
1080
- "api_name": "dental_treatment_plan__c",
1081
- "name": "Treatment plan",
1082
- "description": "Staged work sequenced for a patient",
1083
- "category_api_name": "dental__c",
1084
- "icon": {
1085
- "emoji": "📋"
1086
- },
1087
- "plural_label": "Treatment plans"
1088
- },
1089
- {
1090
- "type": "CUSTOM_OBJECT_FIELD",
1091
- "custom_object_api_name": "dental_treatment_plan__c",
1092
- "field_api_name": "id",
1093
- "field_display_name": "ID",
1094
- "data_type": {
1095
- "options_list": [],
1096
- "supported_types": [],
1097
- "field_type": "TEXT"
1098
- },
1099
- "description": "The Rippling ID of a record",
1100
- "is_required": true,
1101
- "is_unique": true,
1102
- "is_indexed": null,
1103
- "rql_formula": null,
1104
- "formula_attr_metas": null,
1105
- "is_standard": true,
1106
- "derived_aggregated_field": null,
1107
- "derived_field_formula": null,
1108
- "section": null
1109
- },
1110
- {
1111
- "type": "CUSTOM_OBJECT_FIELD",
1112
- "custom_object_api_name": "dental_treatment_plan__c",
1113
- "field_api_name": "created_at",
1114
- "field_display_name": "Created Date",
1115
- "data_type": {
1116
- "options_list": [],
1117
- "supported_types": [],
1118
- "field_type": "DATETIME"
1119
- },
1120
- "description": "The date and time a record was created",
1121
- "is_required": false,
1122
- "is_unique": false,
1123
- "is_indexed": null,
1124
- "rql_formula": null,
1125
- "formula_attr_metas": null,
1126
- "is_standard": true,
1127
- "derived_aggregated_field": null,
1128
- "derived_field_formula": null,
1129
- "section": null
1130
- },
1131
- {
1132
- "type": "CUSTOM_OBJECT_FIELD",
1133
- "custom_object_api_name": "dental_treatment_plan__c",
1134
- "field_api_name": "updated_at",
1135
- "field_display_name": "Last Modified Date",
1136
- "data_type": {
1137
- "options_list": [],
1138
- "supported_types": [],
1139
- "field_type": "DATETIME"
1140
- },
1141
- "description": "The date and time a record was last updated",
1142
- "is_required": false,
1143
- "is_unique": false,
1144
- "is_indexed": null,
1145
- "rql_formula": null,
1146
- "formula_attr_metas": null,
1147
- "is_standard": true,
1148
- "derived_aggregated_field": null,
1149
- "derived_field_formula": null,
1150
- "section": null
1151
- },
1152
- {
1153
- "type": "CUSTOM_OBJECT_FIELD",
1154
- "custom_object_api_name": "dental_treatment_plan__c",
1155
- "field_api_name": "system_updated_at",
1156
- "field_display_name": "System Modified At",
1157
- "data_type": {
1158
- "options_list": [],
1159
- "supported_types": [],
1160
- "field_type": "DATETIME"
1161
- },
1162
- "description": "The date and time a record was last updated by the system",
1163
- "is_required": false,
1164
- "is_unique": false,
1165
- "is_indexed": null,
1166
- "rql_formula": null,
1167
- "formula_attr_metas": null,
1168
- "is_standard": true,
1169
- "derived_aggregated_field": null,
1170
- "derived_field_formula": null,
1171
- "section": null
1172
- },
1173
- {
1174
- "type": "CUSTOM_OBJECT_FIELD",
1175
- "custom_object_api_name": "dental_treatment_plan__c",
1176
- "field_api_name": "external_id",
1177
- "field_display_name": "External ID",
1178
- "data_type": {
1179
- "options_list": [],
1180
- "supported_types": [],
1181
- "field_type": "TEXT"
1182
- },
1183
- "description": "The external identifier for a record used in third party integrations",
1184
- "is_required": false,
1185
- "is_unique": true,
1186
- "is_indexed": null,
1187
- "rql_formula": null,
1188
- "formula_attr_metas": null,
1189
- "is_standard": true,
1190
- "derived_aggregated_field": null,
1191
- "derived_field_formula": null,
1192
- "section": null
1193
- },
1194
- {
1195
- "type": "CUSTOM_OBJECT_FIELD",
1196
- "custom_object_api_name": "dental_treatment_plan__c",
1197
- "field_api_name": "name",
1198
- "field_display_name": "Name",
1199
- "data_type": {
1200
- "options_list": [],
1201
- "supported_types": [],
1202
- "field_type": "TEXT"
1203
- },
1204
- "description": "A string used to describe a record. This is used for display purposes as well as search",
1205
- "is_required": true,
1206
- "is_unique": false,
1207
- "is_indexed": null,
1208
- "rql_formula": null,
1209
- "formula_attr_metas": null,
1210
- "is_standard": true,
1211
- "derived_aggregated_field": null,
1212
- "derived_field_formula": null,
1213
- "section": null
1214
- },
1215
- {
1216
- "type": "CUSTOM_OBJECT_FIELD",
1217
- "custom_object_api_name": "dental_treatment_plan__c",
1218
- "field_api_name": "owner_role",
1219
- "field_display_name": "Owner",
1220
- "data_type": {
1221
- "options_list": [],
1222
- "supported_types": [],
1223
- "field_type": "NATIVE_EDGE",
1224
- "og_model_rql_name": "Employee",
1225
- "db_model_name": "RoleWithCompany",
1226
- "reference_column_storage_type": "STRING"
1227
- },
1228
- "description": "The Employee responsible for the record. This is used by Permissions to determine who has ability to view, edit, and delete data",
1229
- "is_required": false,
1230
- "is_unique": false,
1231
- "is_indexed": null,
1232
- "rql_formula": null,
1233
- "formula_attr_metas": null,
1234
- "is_standard": true,
1235
- "derived_aggregated_field": null,
1236
- "derived_field_formula": null,
1237
- "section": null
1238
- },
1239
- {
1240
- "type": "CUSTOM_OBJECT_FIELD",
1241
- "custom_object_api_name": "dental_treatment_plan__c",
1242
- "field_api_name": "last_modified_by",
1243
- "field_display_name": "Last Modified by",
1244
- "data_type": {
1245
- "options_list": [],
1246
- "supported_types": [],
1247
- "field_type": "NATIVE_EDGE",
1248
- "og_model_rql_name": "Employee",
1249
- "db_model_name": "RoleWithCompany",
1250
- "reference_column_storage_type": "STRING"
1251
- },
1252
- "description": "The Employee who made the latest change.",
1253
- "is_required": false,
1254
- "is_unique": false,
1255
- "is_indexed": null,
1256
- "rql_formula": null,
1257
- "formula_attr_metas": null,
1258
- "is_standard": true,
1259
- "derived_aggregated_field": null,
1260
- "derived_field_formula": null,
1261
- "section": null
1262
- },
1263
- {
1264
- "type": "CUSTOM_OBJECT_FIELD",
1265
- "custom_object_api_name": "dental_treatment_plan__c",
1266
- "field_api_name": "created_by",
1267
- "field_display_name": "Created by",
1268
- "data_type": {
1269
- "options_list": [],
1270
- "supported_types": [],
1271
- "field_type": "NATIVE_EDGE",
1272
- "og_model_rql_name": "Employee",
1273
- "db_model_name": "RoleWithCompany",
1274
- "reference_column_storage_type": "STRING"
1275
- },
1276
- "description": "The Employee who created the record",
1277
- "is_required": false,
1278
- "is_unique": false,
1279
- "is_indexed": null,
1280
- "rql_formula": null,
1281
- "formula_attr_metas": null,
1282
- "is_standard": true,
1283
- "derived_aggregated_field": null,
1284
- "derived_field_formula": null,
1285
- "section": null
1286
- },
1287
- {
1288
- "type": "CUSTOM_OBJECT_FIELD_SECTION",
1289
- "section_id": "sec_plan_link",
1290
- "model_name": "dental_treatment_plan__c",
1291
- "name": "Link"
1292
- },
1293
- {
1294
- "type": "CUSTOM_OBJECT_FIELD_SECTION",
1295
- "section_id": "sec_plan_body",
1296
- "model_name": "dental_treatment_plan__c",
1297
- "name": "Plan"
1298
- },
1299
- {
1300
- "type": "CUSTOM_OBJECT_FIELD",
1301
- "custom_object_api_name": "dental_treatment_plan__c",
1302
- "field_api_name": "plan_patient_ref__c",
1303
- "field_display_name": "Patient",
1304
- "data_type": {
1305
- "options_list": [],
1306
- "supported_types": [],
1307
- "field_type": "OG_REFERENCE_FIELD",
1308
- "og_model_rql_name": "dental_patient__c",
1309
- "edge_type": "PARENT_CHILD",
1310
- "related_data_label": "Treatment plans",
1311
- "parent_child_type": "PRIMARY",
1312
- "enable_parent_owner_inheritance": false
1313
- },
1314
- "description": "Which chart owns this plan",
1315
- "is_required": true,
1316
- "is_unique": null,
1317
- "is_indexed": null,
1318
- "rql_formula": null,
1319
- "formula_attr_metas": null,
1320
- "is_standard": false,
1321
- "derived_aggregated_field": null,
1322
- "derived_field_formula": null,
1323
- "section": "sec_plan_link"
1324
- },
1325
- {
1326
- "type": "CUSTOM_OBJECT_FIELD",
1327
- "custom_object_api_name": "dental_treatment_plan__c",
1328
- "field_api_name": "plan_name__c",
1329
- "field_display_name": "Plan name",
1330
- "data_type": {
1331
- "options_list": [],
1332
- "supported_types": [],
1333
- "field_type": "TEXT",
1334
- "max_length": 200
1335
- },
1336
- "description": "E.g. \"Full mouth rehab - phase 1\", \"Crown 14 DO\"",
1337
- "is_required": true,
1338
- "is_unique": null,
1339
- "is_indexed": null,
1340
- "rql_formula": null,
1341
- "formula_attr_metas": null,
1342
- "is_standard": false,
1343
- "derived_aggregated_field": null,
1344
- "derived_field_formula": null,
1345
- "section": "sec_plan_body"
1346
- },
1347
- {
1348
- "type": "CUSTOM_OBJECT_FIELD",
1349
- "custom_object_api_name": "dental_treatment_plan__c",
1350
- "field_api_name": "plan_status__c",
1351
- "field_display_name": "Status",
1352
- "data_type": {
1353
- "options_list": ["Draft", "Presented", "Accepted", "In progress", "Completed", "Declined / on hold"],
1354
- "supported_types": [],
1355
- "field_type": "SELECT"
1356
- },
1357
- "description": null,
1358
- "is_required": true,
1359
- "is_unique": null,
1360
- "is_indexed": null,
1361
- "rql_formula": null,
1362
- "formula_attr_metas": null,
1363
- "is_standard": false,
1364
- "derived_aggregated_field": null,
1365
- "derived_field_formula": null,
1366
- "section": "sec_plan_body"
1367
- },
1368
- {
1369
- "type": "CUSTOM_OBJECT_FIELD",
1370
- "custom_object_api_name": "dental_treatment_plan__c",
1371
- "field_api_name": "target_completion__c",
1372
- "field_display_name": "Target completion",
1373
- "data_type": {
1374
- "options_list": [],
1375
- "supported_types": [],
1376
- "field_type": "DATE"
1377
- },
1378
- "description": "Goal to finish or next review",
1379
- "is_required": null,
1380
- "is_unique": null,
1381
- "is_indexed": null,
1382
- "rql_formula": null,
1383
- "formula_attr_metas": null,
1384
- "is_standard": false,
1385
- "derived_aggregated_field": null,
1386
- "derived_field_formula": null,
1387
- "section": "sec_plan_body"
1388
- },
1389
- {
1390
- "type": "CUSTOM_OBJECT_FIELD",
1391
- "custom_object_api_name": "dental_treatment_plan__c",
1392
- "field_api_name": "procedures_summary__c",
1393
- "field_display_name": "Procedures & sequence",
1394
- "data_type": {
1395
- "options_list": [],
1396
- "supported_types": [],
1397
- "field_type": "LONG_TEXT",
1398
- "max_length": 8000
1399
- },
1400
- "description": "Tooth numbers, codes, and staging",
1401
- "is_required": null,
1402
- "is_unique": null,
1403
- "is_indexed": null,
1404
- "rql_formula": null,
1405
- "formula_attr_metas": null,
1406
- "is_standard": false,
1407
- "derived_aggregated_field": null,
1408
- "derived_field_formula": null,
1409
- "section": "sec_plan_body"
1410
- },
1411
- {
1412
- "type": "CUSTOM_OBJECT_FIELD",
1413
- "custom_object_api_name": "dental_treatment_plan__c",
1414
- "field_api_name": "fee_estimate_cents__c",
1415
- "field_display_name": "Fee estimate (cents)",
1416
- "data_type": {
1417
- "options_list": [],
1418
- "supported_types": [],
1419
- "field_type": "NUMBER",
1420
- "num_of_decimal_places": 0
1421
- },
1422
- "description": "Rough office fee total for planning; adjust per office policy",
1423
- "is_required": null,
1424
- "is_unique": null,
1425
- "is_indexed": null,
1426
- "rql_formula": null,
1427
- "formula_attr_metas": null,
1428
- "is_standard": false,
1429
- "derived_aggregated_field": null,
1430
- "derived_field_formula": null,
1431
- "section": "sec_plan_body"
1432
- },
1433
- {
1434
- "type": "CUSTOM_OBJECT_FIELD",
1435
- "custom_object_api_name": "dental_operatory__c",
1436
- "field_api_name": "appointment_count__c",
1437
- "field_display_name": "Appointments (count)",
1438
- "data_type": {
1439
- "options_list": [],
1440
- "supported_types": [],
1441
- "field_type": "NUMBER"
1442
- },
1443
- "description": "Rows in this operatory (filter by day in the chair board function)",
1444
- "is_required": null,
1445
- "is_unique": null,
1446
- "is_indexed": null,
1447
- "rql_formula": null,
1448
- "formula_attr_metas": null,
1449
- "is_standard": false,
1450
- "derived_aggregated_field": {
1451
- "aggregation_function": "COUNT",
1452
- "child_model_name": "dental_appointment__c",
1453
- "currency_code": null,
1454
- "field_to_aggregate": "patient_ref__c",
1455
- "filters": [],
1456
- "lookup_field_api_name": "operatory_ref__c"
1457
- },
1458
- "derived_field_formula": null,
1459
- "section": "sec_op_info"
1460
- },
1461
- {
1462
- "type": "CUSTOM_OBJECT_FIELD",
1463
- "custom_object_api_name": "dental_patient__c",
1464
- "field_api_name": "treatment_plan_count__c",
1465
- "field_display_name": "Treatment plans",
1466
- "data_type": {
1467
- "options_list": [],
1468
- "supported_types": [],
1469
- "field_type": "NUMBER"
1470
- },
1471
- "description": "Active plans tied to the chart",
1472
- "is_required": null,
1473
- "is_unique": null,
1474
- "is_indexed": null,
1475
- "rql_formula": null,
1476
- "formula_attr_metas": null,
1477
- "is_standard": false,
1478
- "derived_aggregated_field": {
1479
- "aggregation_function": "COUNT",
1480
- "child_model_name": "dental_treatment_plan__c",
1481
- "currency_code": null,
1482
- "field_to_aggregate": "plan_name__c",
1483
- "filters": [],
1484
- "lookup_field_api_name": "plan_patient_ref__c"
1485
- },
1486
- "derived_field_formula": null,
1487
- "section": "sec_pt_clinical"
1488
- },
1489
- {
1490
- "type": "CUSTOM_OBJECT_VALIDATION_RULE",
1491
- "model_rql_name": "dental_appointment__c",
1492
- "rule_id": "dental_appt_duration_positive",
1493
- "state": "ACTIVE",
1494
- "level": "FIELD",
1495
- "display_name": "Duration must be positive",
1496
- "rule_description": "Blocks empty or zero chair blocks",
1497
- "custom_error_message": "Duration must be at least 1 minute.",
1498
- "rql_formula": "(duration_minutes__c <= 0)",
1499
- "field_rql_name": "duration_minutes__c"
1500
- },
1501
- {
1502
- "type": "CUSTOM_OBJECT_RECORD_TRIGGERED_FLOW",
1503
- "model_rql_name": "dental_appointment__c",
1504
- "flow_id": "dental_default_appt_status",
1505
- "flow_name": "Default visit status to Scheduled",
1506
- "trigger_type": "CREATE",
1507
- "description": "New bookings start as Scheduled unless the team changes it",
1508
- "actions": [
1509
- {
1510
- "target_field": "appointment_status__c",
1511
- "fixed_value": ["Scheduled"]
1512
- }
1513
- ]
1514
- },
1515
- {
1516
- "type": "CUSTOM_OBJECT_LIST_VIEW",
1517
- "object_rql_name": "dental_patient__c",
1518
- "view_id": "view_dental_all_patients",
1519
- "name": "All patients",
1520
- "public": true,
1521
- "fields": [
1522
- "legal_name__c",
1523
- "date_of_birth__c",
1524
- "phone__c",
1525
- "patient_label__c",
1526
- "treatment_plan_count__c"
1527
- ],
1528
- "description": "Full chart list with plan counts",
1529
- "object_scope": "all",
1530
- "sort_order": "ASC",
1531
- "order_by": "legal_name__c"
1532
- },
1533
- {
1534
- "type": "CUSTOM_OBJECT_LIST_VIEW",
1535
- "object_rql_name": "dental_operatory__c",
1536
- "view_id": "view_dental_all_operatories",
1537
- "name": "All operatories",
1538
- "public": true,
1539
- "fields": ["operatory_name__c", "room_code__c", "appointment_count__c"],
1540
- "description": "Chairs and daily volume rollups",
1541
- "object_scope": "all",
1542
- "sort_order": "ASC",
1543
- "order_by": "operatory_name__c"
1544
- },
1545
- {
1546
- "type": "CUSTOM_OBJECT_LIST_VIEW",
1547
- "object_rql_name": "dental_appointment__c",
1548
- "view_id": "view_dental_appointments_all",
1549
- "name": "All appointments",
1550
- "public": true,
1551
- "fields": [
1552
- "operatory_ref__c",
1553
- "start_time__c",
1554
- "duration_minutes__c",
1555
- "patient_ref__c",
1556
- "visit_type__c",
1557
- "appointment_status__c",
1558
- "board_label__c"
1559
- ],
1560
- "description": "Chronological board with chair and status",
1561
- "object_scope": "all",
1562
- "sort_order": "ASC",
1563
- "order_by": "start_time__c"
1564
- },
1565
- {
1566
- "type": "CUSTOM_OBJECT_LIST_VIEW",
1567
- "object_rql_name": "dental_treatment_plan__c",
1568
- "view_id": "view_dental_treatment_plans",
1569
- "name": "All treatment plans",
1570
- "public": true,
1571
- "fields": [
1572
- "plan_patient_ref__c",
1573
- "plan_name__c",
1574
- "plan_status__c",
1575
- "target_completion__c",
1576
- "fee_estimate_cents__c"
1577
- ],
1578
- "description": "Case tracking by status",
1579
- "object_scope": "all",
1580
- "sort_order": "ASC",
1581
- "order_by": "target_completion__c"
1582
- },
1583
- {
1584
- "type": "CUSTOM_OBJECT_PAGE_LAYOUT",
1585
- "layout_id": "layout_dental_patient",
1586
- "api_name": "default",
1587
- "object_rql_name": "dental_patient__c",
1588
- "name": "Patient chart",
1589
- "system_created": false,
1590
- "tab_edits": {
1591
- "tabsOrder": ["chart"],
1592
- "newTabs": [
1593
- {
1594
- "key": "chart",
1595
- "name": "Chart",
1596
- "type": "tab_with_sections",
1597
- "sections": [
1598
- {
1599
- "name": "Profile",
1600
- "type": "fields_section",
1601
- "fields": [
1602
- {
1603
- "fieldRqlName": "legal_name__c"
1604
- },
1605
- {
1606
- "fieldRqlName": "date_of_birth__c"
1607
- },
1608
- {
1609
- "fieldRqlName": "phone__c"
1610
- },
1611
- {
1612
- "fieldRqlName": "email__c"
1613
- },
1614
- {
1615
- "fieldRqlName": "patient_label__c"
1616
- }
1617
- ],
1618
- "key": "sec_pt_identity"
1619
- },
1620
- {
1621
- "name": "Clinical & billing",
1622
- "type": "fields_section",
1623
- "fields": [
1624
- {
1625
- "fieldRqlName": "allergies_and_alerts__c"
1626
- },
1627
- {
1628
- "fieldRqlName": "insurance_plan__c"
1629
- },
1630
- {
1631
- "fieldRqlName": "chart_summary__c"
1632
- },
1633
- {
1634
- "fieldRqlName": "treatment_plan_count__c"
1635
- }
1636
- ],
1637
- "key": "sec_pt_clinical"
1638
- }
1639
- ]
1640
- }
1641
- ],
1642
- "systemTabEdits": {}
1643
- },
1644
- "header_edits": {
1645
- "newTitleField": "legal_name__c"
1646
- },
1647
- "visibility_conditions": {},
1648
- "blueprint_key": "dental_patient__c"
1649
- },
1650
- {
1651
- "type": "CUSTOM_OBJECT_PAGE_LAYOUT",
1652
- "layout_id": "layout_dental_operatory",
1653
- "api_name": "default",
1654
- "object_rql_name": "dental_operatory__c",
1655
- "name": "Operatory",
1656
- "system_created": false,
1657
- "tab_edits": {
1658
- "tabsOrder": ["overview"],
1659
- "newTabs": [
1660
- {
1661
- "key": "overview",
1662
- "name": "Overview",
1663
- "type": "tab_with_sections",
1664
- "sections": [
1665
- {
1666
- "name": "Room",
1667
- "type": "fields_section",
1668
- "fields": [
1669
- {
1670
- "fieldRqlName": "operatory_name__c"
1671
- },
1672
- {
1673
- "fieldRqlName": "room_code__c"
1674
- },
1675
- {
1676
- "fieldRqlName": "appointment_count__c"
1677
- }
1678
- ],
1679
- "key": "sec_op_info"
1680
- }
1681
- ]
1682
- }
1683
- ],
1684
- "systemTabEdits": {}
1685
- },
1686
- "header_edits": {
1687
- "newTitleField": "operatory_name__c"
1688
- },
1689
- "visibility_conditions": {},
1690
- "blueprint_key": "dental_operatory__c"
1691
- },
1692
- {
1693
- "type": "CUSTOM_OBJECT_PAGE_LAYOUT",
1694
- "layout_id": "layout_dental_appointment",
1695
- "api_name": "default",
1696
- "object_rql_name": "dental_appointment__c",
1697
- "name": "Appointment",
1698
- "system_created": false,
1699
- "tab_edits": {
1700
- "tabsOrder": ["visit"],
1701
- "newTabs": [
1702
- {
1703
- "key": "visit",
1704
- "name": "Visit",
1705
- "type": "tab_with_sections",
1706
- "sections": [
1707
- {
1708
- "name": "Chair & schedule",
1709
- "type": "fields_section",
1710
- "fields": [
1711
- {
1712
- "fieldRqlName": "operatory_ref__c"
1713
- },
1714
- {
1715
- "fieldRqlName": "start_time__c"
1716
- },
1717
- {
1718
- "fieldRqlName": "duration_minutes__c"
1719
- }
1720
- ],
1721
- "key": "sec_appt_op"
1722
- },
1723
- {
1724
- "name": "Patient & status",
1725
- "type": "fields_section",
1726
- "fields": [
1727
- {
1728
- "fieldRqlName": "patient_ref__c"
1729
- },
1730
- {
1731
- "fieldRqlName": "visit_type__c"
1732
- },
1733
- {
1734
- "fieldRqlName": "appointment_status__c"
1735
- },
1736
- {
1737
- "fieldRqlName": "board_label__c"
1738
- },
1739
- {
1740
- "fieldRqlName": "visit_notes__c"
1741
- }
1742
- ],
1743
- "key": "sec_appt_patient"
1744
- }
1745
- ]
1746
- }
1747
- ],
1748
- "systemTabEdits": {}
1749
- },
1750
- "header_edits": {
1751
- "newTitleField": "board_label__c"
1752
- },
1753
- "visibility_conditions": {},
1754
- "blueprint_key": "dental_appointment__c"
1755
- },
1756
- {
1757
- "type": "CUSTOM_OBJECT_PAGE_LAYOUT",
1758
- "layout_id": "layout_dental_treatment_plan",
1759
- "api_name": "default",
1760
- "object_rql_name": "dental_treatment_plan__c",
1761
- "name": "Treatment plan",
1762
- "system_created": false,
1763
- "tab_edits": {
1764
- "tabsOrder": ["plan"],
1765
- "newTabs": [
1766
- {
1767
- "key": "plan",
1768
- "name": "Plan",
1769
- "type": "tab_with_sections",
1770
- "sections": [
1771
- {
1772
- "name": "Patient",
1773
- "type": "fields_section",
1774
- "fields": [
1775
- {
1776
- "fieldRqlName": "plan_patient_ref__c"
1777
- }
1778
- ],
1779
- "key": "sec_plan_link"
1780
- },
1781
- {
1782
- "name": "Planned work",
1783
- "type": "fields_section",
1784
- "fields": [
1785
- {
1786
- "fieldRqlName": "plan_name__c"
1787
- },
1788
- {
1789
- "fieldRqlName": "plan_status__c"
1790
- },
1791
- {
1792
- "fieldRqlName": "target_completion__c"
1793
- },
1794
- {
1795
- "fieldRqlName": "procedures_summary__c"
1796
- },
1797
- {
1798
- "fieldRqlName": "fee_estimate_cents__c"
1799
- }
1800
- ],
1801
- "key": "sec_plan_body"
1802
- }
1803
- ]
1804
- }
1805
- ],
1806
- "systemTabEdits": {}
1807
- },
1808
- "header_edits": {
1809
- "newTitleField": "plan_name__c"
1810
- },
1811
- "visibility_conditions": {},
1812
- "blueprint_key": "dental_treatment_plan__c"
1813
- },
1814
- {
1815
- "type": "FUNCTION",
1816
- "name": "Patients (SDUI)",
1817
- "api_name": "dental_patient_list_fn",
1818
- "description": "SDUI ObjectListView for patient records",
1819
- "code_draft": "import { FunctionContext, FunctionEvent, FunctionResponse } from '@rippling/rippling-sdk';\nimport SDUI from '@rippling/rippling-sdk/lib/sdui';\n\nconst OBJECT = 'dental_patient__c';\n\nexport async function onRipplingEvent(\n event: FunctionEvent,\n context: FunctionContext,\n): Promise<FunctionResponse> {\n const action = event['parameters']?.action;\n\n if (!action || action === 'init') {\n const s = SDUI.createState({});\n const root = SDUI.components.VStack({\n children: [\n SDUI.components.ObjectListView({\n objectApiName: OBJECT,\n canSearchInGrid: true,\n }),\n ],\n });\n return new FunctionResponse({\n body: { spec: JSON.stringify(SDUI.render(s, root)) },\n statusCode: 200,\n headers: {},\n message: '',\n });\n }\n\n return new FunctionResponse({ body: {}, statusCode: 200, headers: {}, message: '' });\n}\n",
1820
- "dependencies": {
1821
- "@rippling/rippling-sdk": "^0.2.0-alpha.33"
1822
- }
1823
- },
1824
- {
1825
- "type": "SDUI_PAGE",
1826
- "name": "Patients",
1827
- "sdui_page_id": "dental_patients",
1828
- "function_api_name": "dental_patient_list_fn",
1829
- "description": "SDUI ObjectListView for patient records"
1830
- },
1831
- {
1832
- "type": "FUNCTION",
1833
- "name": "Operatories (SDUI)",
1834
- "api_name": "dental_operatory_list_fn",
1835
- "description": "SDUI ObjectListView for operatory records",
1836
- "code_draft": "import { FunctionContext, FunctionEvent, FunctionResponse } from '@rippling/rippling-sdk';\nimport SDUI from '@rippling/rippling-sdk/lib/sdui';\n\nconst OBJECT = 'dental_operatory__c';\n\nexport async function onRipplingEvent(\n event: FunctionEvent,\n context: FunctionContext,\n): Promise<FunctionResponse> {\n const action = event['parameters']?.action;\n\n if (!action || action === 'init') {\n const s = SDUI.createState({});\n const root = SDUI.components.VStack({\n children: [\n SDUI.components.ObjectListView({\n objectApiName: OBJECT,\n canSearchInGrid: true,\n }),\n ],\n });\n return new FunctionResponse({\n body: { spec: JSON.stringify(SDUI.render(s, root)) },\n statusCode: 200,\n headers: {},\n message: '',\n });\n }\n\n return new FunctionResponse({ body: {}, statusCode: 200, headers: {}, message: '' });\n}\n",
1837
- "dependencies": {
1838
- "@rippling/rippling-sdk": "^0.2.0-alpha.33"
1839
- }
1840
- },
1841
- {
1842
- "type": "SDUI_PAGE",
1843
- "name": "Operatories",
1844
- "sdui_page_id": "dental_operatories",
1845
- "function_api_name": "dental_operatory_list_fn",
1846
- "description": "SDUI ObjectListView for operatory records"
1847
- },
1848
- {
1849
- "type": "FUNCTION",
1850
- "name": "Daily chair board (SDUI)",
1851
- "api_name": "dental_chair_schedule_fn",
1852
- "description": "SDUI ObjectListView for appointments (init + spec render)",
1853
- "code_draft": "import { FunctionContext, FunctionEvent, FunctionResponse } from '@rippling/rippling-sdk';\nimport SDUI from '@rippling/rippling-sdk/lib/sdui';\n\nconst OBJECT = 'dental_appointment__c';\n\nexport async function onRipplingEvent(\n event: FunctionEvent,\n context: FunctionContext,\n): Promise<FunctionResponse> {\n const action = event['parameters']?.action;\n\n if (!action || action === 'init') {\n const s = SDUI.createState({});\n const root = SDUI.components.VStack({\n children: [\n SDUI.components.ObjectListView({\n objectApiName: OBJECT,\n canSearchInGrid: true,\n }),\n ],\n });\n return new FunctionResponse({\n body: { spec: JSON.stringify(SDUI.render(s, root)) },\n statusCode: 200,\n headers: {},\n message: '',\n });\n }\n\n return new FunctionResponse({ body: {}, statusCode: 200, headers: {}, message: '' });\n}\n",
1854
- "dependencies": {
1855
- "@rippling/rippling-sdk": "^0.2.0-alpha.33"
1856
- }
1857
- },
1858
- {
1859
- "type": "SDUI_PAGE",
1860
- "name": "Chair schedule",
1861
- "sdui_page_id": "dental_chair_schedule",
1862
- "function_api_name": "dental_chair_schedule_fn",
1863
- "description": "SDUI list of appointments (searchable grid); use object records for status edits"
1864
- },
1865
- {
1866
- "type": "FUNCTION",
1867
- "name": "Treatment plans (SDUI)",
1868
- "api_name": "dental_treatment_plan_list_fn",
1869
- "description": "SDUI ObjectListView for treatment plan records",
1870
- "code_draft": "import { FunctionContext, FunctionEvent, FunctionResponse } from '@rippling/rippling-sdk';\nimport SDUI from '@rippling/rippling-sdk/lib/sdui';\n\nconst OBJECT = 'dental_treatment_plan__c';\n\nexport async function onRipplingEvent(\n event: FunctionEvent,\n context: FunctionContext,\n): Promise<FunctionResponse> {\n const action = event['parameters']?.action;\n\n if (!action || action === 'init') {\n const s = SDUI.createState({});\n const root = SDUI.components.VStack({\n children: [\n SDUI.components.ObjectListView({\n objectApiName: OBJECT,\n canSearchInGrid: true,\n }),\n ],\n });\n return new FunctionResponse({\n body: { spec: JSON.stringify(SDUI.render(s, root)) },\n statusCode: 200,\n headers: {},\n message: '',\n });\n }\n\n return new FunctionResponse({ body: {}, statusCode: 200, headers: {}, message: '' });\n}\n",
1871
- "dependencies": {
1872
- "@rippling/rippling-sdk": "^0.2.0-alpha.33"
1873
- }
1874
- },
1875
- {
1876
- "type": "SDUI_PAGE",
1877
- "name": "Treatment plans",
1878
- "sdui_page_id": "dental_treatment_plans",
1879
- "function_api_name": "dental_treatment_plan_list_fn",
1880
- "description": "SDUI ObjectListView for treatment plan records"
1881
- },
1882
- {
1883
- "type": "CUSTOM_APP",
1884
- "api_name": "dental_practice_management_app",
1885
- "name": "Dental Practice Management",
1886
- "description": "Patient charts, operatories, treatment plans, and SDUI object-list tabs",
1887
- "app_type": "custom",
1888
- "pages": [
1889
- {
1890
- "api_name": "dental_patients",
1891
- "page_type": "sdui_page",
1892
- "sdui_page_id": "dental_patients"
1893
- },
1894
- {
1895
- "api_name": "dental_operatories",
1896
- "page_type": "sdui_page",
1897
- "sdui_page_id": "dental_operatories"
1898
- },
1899
- {
1900
- "api_name": "dental_chair_schedule",
1901
- "page_type": "sdui_page",
1902
- "sdui_page_id": "dental_chair_schedule"
1903
- },
1904
- {
1905
- "api_name": "dental_treatment_plans",
1906
- "page_type": "sdui_page",
1907
- "sdui_page_id": "dental_treatment_plans"
1908
- }
1909
- ]
1910
- }
1911
- ]
1912
- }