@rinse-dental/open-dental 2.4.7 → 2.4.9

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.
@@ -55,9 +55,11 @@ export type Appendix = {
55
55
  date_formats?: Date_Formats;
56
56
  };
57
57
  export type Date_Formats = {
58
- date_display?: string;
58
+ date_MMM_D?: string;
59
+ month_M?: string;
59
60
  month_MMM?: string;
60
61
  month_MMMM?: string;
62
+ day_D?: string;
61
63
  day_ddd?: string;
62
64
  day_dddd?: string;
63
65
  year_YY?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"visitTypes.d.ts","sourceRoot":"","sources":["../../src/transformerTypes/visitTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"visitTypes.d.ts","sourceRoot":"","sources":["../../src/transformerTypes/visitTypes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"visit.d.ts","sourceRoot":"","sources":["../../src/transformers/visit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAKvD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG,KAAK,CA+C1D"}
1
+ {"version":3,"file":"visit.d.ts","sourceRoot":"","sources":["../../src/transformers/visit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAKvD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG,KAAK,CAkD1D"}
@@ -20,6 +20,7 @@ function appointmentToVisit(apt) {
20
20
  const duration = (apt.Pattern?.length || 0) * 5;
21
21
  const location = 'NF6YVFAXyRVXGi5nItqV';
22
22
  const display_ProvNum = apt.IsHygiene == 'true' ? apt.ProvHyg : apt.ProvNum;
23
+ const AptTypeNum = apt.AppointmentTypeNum == 0 ? updateAptTypeNum(apt.ProcDescript ?? '') : apt.AppointmentTypeNum;
23
24
  return {
24
25
  docRef: db.doc(`/patients/${apt.PatNum}/patientVisits/${apt.AptNum}`),
25
26
  ...apt,
@@ -31,15 +32,17 @@ function appointmentToVisit(apt) {
31
32
  duration: duration,
32
33
  ProvNum: display_ProvNum,
33
34
  ProviderDocRef: display_ProvNum != 0 ? db.doc(`/providers/${display_ProvNum}`) : undefined,
34
- VisitTypeDocRef: apt.AppointmentTypeNum != 0 ? db.doc(`/lookups/lookup_definitions/lookup_visitType/${apt.AppointmentTypeNum}`) : undefined,
35
+ VisitTypeDocRef: db.doc(`/lookups/lookup_definitions/lookup_visitType/${AptTypeNum}`),
35
36
  OpDocRef: apt.Op != 0 ? db.doc(`/locations/${location}/locationOperatories/${apt.Op}`) : undefined,
36
37
  date: moment_aptDateTime.format('YYYY-MM-DD'),
37
38
  dateTime: moment_aptDateTime.format(),
38
39
  firestoreTimestamp: firestoreTimestamp,
39
40
  date_formats: {
40
- date_display: moment_aptDateTime.format('MMM D, YYYY'),
41
+ date_MMM_D: moment_aptDateTime.format('MMM D'),
42
+ month_M: moment_aptDateTime.format('M'),
41
43
  month_MMM: moment_aptDateTime.format('MMM'),
42
44
  month_MMMM: moment_aptDateTime.format('MMMM'),
45
+ day_D: moment_aptDateTime.format('D'),
43
46
  day_ddd: moment_aptDateTime.format('ddd'),
44
47
  day_dddd: moment_aptDateTime.format('dddd'),
45
48
  year_YY: moment_aptDateTime.format('YY'),
@@ -72,3 +75,25 @@ function normalizeStatus(status) {
72
75
  return 'Scheduled';
73
76
  return status;
74
77
  }
78
+ function updateAptTypeNum(ProcDescript) {
79
+ let aptTypeNum = 11; // Default: Treatment
80
+ if (ProcDescript.includes('PeriodicX') && ProcDescript.includes('Free White')) {
81
+ aptTypeNum = 23;
82
+ }
83
+ else if (ProcDescript.includes('PeriodicX')) {
84
+ aptTypeNum = 12;
85
+ }
86
+ else if ((ProcDescript.includes('Prophy') || ProcDescript.includes('ProChild')) && ProcDescript.includes('Free White')) {
87
+ aptTypeNum = 13;
88
+ }
89
+ else if ((ProcDescript.includes('Prophy') || ProcDescript.includes('ProChild'))) {
90
+ aptTypeNum = 3;
91
+ }
92
+ else if (ProcDescript.includes('SPT') && ProcDescript.includes('Free White')) {
93
+ aptTypeNum = 24;
94
+ }
95
+ else if (ProcDescript.includes('SPT')) {
96
+ aptTypeNum = 14;
97
+ }
98
+ return aptTypeNum;
99
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rinse-dental/open-dental",
3
- "version": "2.4.7",
3
+ "version": "2.4.9",
4
4
  "description": "A TypeScript library for easily accessing Open Dental APIs.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -58,9 +58,11 @@ export interface Visit {
58
58
  }
59
59
 
60
60
  export type Date_Formats = {
61
- date_display?: string; //
61
+ date_MMM_D?: string; //
62
+ month_M?: string; //
62
63
  month_MMM?: string; //
63
64
  month_MMMM?: string;
65
+ day_D?: string; //
64
66
  day_ddd?: string; //
65
67
  day_dddd?: string; //
66
68
  year_YY?: string; //
@@ -19,7 +19,8 @@ export function appointmentToVisit(apt: Appointment): Visit {
19
19
  const duration = (apt.Pattern?.length || 0) * 5;
20
20
  const location = 'NF6YVFAXyRVXGi5nItqV';
21
21
  const display_ProvNum = apt.IsHygiene == 'true' ? apt.ProvHyg : apt.ProvNum;
22
-
22
+ const AptTypeNum = apt.AppointmentTypeNum == 0 ? updateAptTypeNum(apt.ProcDescript ?? '') : apt.AppointmentTypeNum;
23
+
23
24
  return {
24
25
  docRef: db.doc(`/patients/${apt.PatNum}/patientVisits/${apt.AptNum}`),
25
26
  ...apt,
@@ -31,15 +32,17 @@ export function appointmentToVisit(apt: Appointment): Visit {
31
32
  duration: duration,
32
33
  ProvNum: display_ProvNum,
33
34
  ProviderDocRef: display_ProvNum != 0 ? db.doc(`/providers/${display_ProvNum}`) : undefined,
34
- VisitTypeDocRef: apt.AppointmentTypeNum != 0 ? db.doc(`/lookups/lookup_definitions/lookup_visitType/${apt.AppointmentTypeNum}`) : undefined,
35
+ VisitTypeDocRef: db.doc(`/lookups/lookup_definitions/lookup_visitType/${AptTypeNum}`),
35
36
  OpDocRef: apt.Op != 0 ? db.doc(`/locations/${location}/locationOperatories/${apt.Op}`) : undefined,
36
37
  date: moment_aptDateTime.format('YYYY-MM-DD'),
37
38
  dateTime: moment_aptDateTime.format(),
38
39
  firestoreTimestamp: firestoreTimestamp,
39
40
  date_formats: {
40
- date_display: moment_aptDateTime.format('MMM D, YYYY'),
41
+ date_MMM_D: moment_aptDateTime.format('MMM D'),
42
+ month_M: moment_aptDateTime.format('M'),
41
43
  month_MMM: moment_aptDateTime.format('MMM'),
42
44
  month_MMMM: moment_aptDateTime.format('MMMM'),
45
+ day_D: moment_aptDateTime.format('D'),
43
46
  day_ddd: moment_aptDateTime.format('ddd'),
44
47
  day_dddd: moment_aptDateTime.format('dddd'),
45
48
  year_YY: moment_aptDateTime.format('YY'),
@@ -70,4 +73,25 @@ function normalizeStatus(status: string): string {
70
73
  if (['UnschedList', 'Broken'].includes(status)) return 'Canceled';
71
74
  if (['Scheduled', 'ASAP'].includes(status)) return 'Scheduled';
72
75
  return status;
76
+ }
77
+
78
+ function updateAptTypeNum(ProcDescript: string): number {
79
+
80
+ let aptTypeNum = 11 // Default: Treatment
81
+
82
+ if (ProcDescript.includes('PeriodicX') && ProcDescript.includes('Free White')) {
83
+ aptTypeNum = 23;
84
+ } else if (ProcDescript.includes('PeriodicX')) {
85
+ aptTypeNum = 12;
86
+ } else if ((ProcDescript.includes('Prophy') || ProcDescript.includes('ProChild')) && ProcDescript.includes('Free White')) {
87
+ aptTypeNum = 13;
88
+ } else if ((ProcDescript.includes('Prophy') || ProcDescript.includes('ProChild'))) {
89
+ aptTypeNum = 3;
90
+ } else if (ProcDescript.includes('SPT') && ProcDescript.includes('Free White')) {
91
+ aptTypeNum = 24;
92
+ } else if (ProcDescript.includes('SPT')) {
93
+ aptTypeNum = 14;
94
+ }
95
+
96
+ return aptTypeNum;
73
97
  }