@rinse-dental/open-dental 2.1.4 → 2.2.0
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.
- package/dist/api/chartModules.d.ts +15 -1
- package/dist/api/chartModules.d.ts.map +1 -1
- package/dist/api/chartModules.js +26 -2
- package/dist/api/procTPs.d.ts +55 -0
- package/dist/api/procTPs.d.ts.map +1 -0
- package/dist/api/procTPs.js +82 -0
- package/dist/api/procedureLog.d.ts +63 -32
- package/dist/api/procedureLog.d.ts.map +1 -1
- package/dist/api/procedureLog.js +102 -44
- package/dist/types/chartModuleTypes.d.ts +38 -4
- package/dist/types/chartModuleTypes.d.ts.map +1 -1
- package/dist/types/procTPTypes.d.ts +71 -0
- package/dist/types/procTPTypes.d.ts.map +1 -0
- package/dist/types/procTPTypes.js +3 -0
- package/dist/types/procedurelogTypes.d.ts +62 -12
- package/dist/types/procedurelogTypes.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/api/chartModules.ts +30 -2
- package/src/api/procTPs.ts +112 -0
- package/src/api/procedureLog.ts +135 -48
- package/src/types/chartModuleTypes.ts +41 -5
- package/src/types/procTPTypes.ts +79 -0
- package/src/types/procedurelogTypes.ts +90 -39
|
@@ -1,7 +1,41 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
|
|
2
|
+
* Gets the Progress Notes for a patient, similarly to how it shows in the Chart Module. Use another API method or a query to get specific details about each object.
|
|
3
|
+
* @see https://www.opendental.com/site/apichartmodules.html
|
|
4
|
+
*/
|
|
5
|
+
export interface ProgNote {
|
|
6
|
+
ObjectType?: "Appointment" | "Commlog" | "Task" | "Email" | "LabCase" | "Rx" | "Sheet";
|
|
7
|
+
PrimaryKey?: number;
|
|
8
|
+
Date?: string;
|
|
9
|
+
Time?: string;
|
|
10
|
+
DateTime?: string;
|
|
11
|
+
Th?: string;
|
|
12
|
+
Surf?: string;
|
|
13
|
+
Dx?: string;
|
|
14
|
+
Description?: string;
|
|
15
|
+
Note?: string;
|
|
16
|
+
Stat?: string;
|
|
17
|
+
Prov?: string;
|
|
18
|
+
ProvNum?: string;
|
|
19
|
+
Amount?: string;
|
|
20
|
+
ProcCode?: string;
|
|
21
|
+
User?: string;
|
|
22
|
+
Signed?: string;
|
|
23
|
+
Length?: string;
|
|
24
|
+
Abbr?: string;
|
|
25
|
+
Clinic?: string;
|
|
26
|
+
ClinicNum?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Gets Patient Info for a patient, similarly to how it shows in the Chart Module. Use another API method or a query to get specific details about returned elements.
|
|
30
|
+
* @see https://www.opendental.com/site/apichartmodules.html
|
|
31
|
+
*/
|
|
32
|
+
export interface PatientInfo {
|
|
33
|
+
Field?: string;
|
|
34
|
+
Content?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Gets Planned Appointments for a patient, similarly to how it shows in the Chart Module's Planned Appointments tab.
|
|
38
|
+
* @see https://www.opendental.com/site/apichartmodules.html
|
|
5
39
|
*/
|
|
6
40
|
export interface PlannedAppointment {
|
|
7
41
|
AptNum?: number;
|
|
@@ -15,7 +49,7 @@ export interface PlannedAppointment {
|
|
|
15
49
|
}
|
|
16
50
|
/**
|
|
17
51
|
* Appointment status options.
|
|
18
|
-
* @see https://www.opendental.com/site/
|
|
52
|
+
* @see https://www.opendental.com/site/apichartmodules.html
|
|
19
53
|
*/
|
|
20
54
|
export type AptStatus = "Scheduled" | "Complete" | "UnschedList" | "ASAP" | "Broken" | "Planned" | "PtNote" | "PtNoteCompleted";
|
|
21
55
|
//# sourceMappingURL=chartModuleTypes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chartModuleTypes.d.ts","sourceRoot":"","sources":["../../src/types/chartModuleTypes.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"chartModuleTypes.d.ts","sourceRoot":"","sources":["../../src/types/chartModuleTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACrB,UAAU,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAI,IAAI,GAAG,OAAO,CAAC;IACxF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,GACnB,WAAW,GACX,UAAU,GACV,aAAa,GACb,MAAM,GACN,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ProcTPs are copies of procedures that are attached to Saved treatment plans.
|
|
3
|
+
* The ProcNumOrig points to the actual procedurelog row.
|
|
4
|
+
* For Active and Inactive treatment plans, use TreatPlanAttaches.
|
|
5
|
+
* See Treatment Plans for more information.
|
|
6
|
+
* @see https://www.opendental.com/site/apiproctps.html
|
|
7
|
+
*/
|
|
8
|
+
export interface ProcTP {
|
|
9
|
+
ProcTPNum?: number;
|
|
10
|
+
TreatPlanNum?: number;
|
|
11
|
+
PatNum?: number;
|
|
12
|
+
ProcNumOrig?: number;
|
|
13
|
+
ItemOrder?: number;
|
|
14
|
+
Priority?: number;
|
|
15
|
+
priority?: string;
|
|
16
|
+
ToothNumTP?: string;
|
|
17
|
+
Surf?: Surf;
|
|
18
|
+
ProcCode?: string;
|
|
19
|
+
Descript?: string;
|
|
20
|
+
FeeAmt?: number;
|
|
21
|
+
PriInsAmt?: number;
|
|
22
|
+
SecInsAmt?: number;
|
|
23
|
+
PatAmt?: number;
|
|
24
|
+
Discount?: number;
|
|
25
|
+
Prognosis?: string;
|
|
26
|
+
Dx?: string;
|
|
27
|
+
ProcAbbr?: string;
|
|
28
|
+
SecUserNumEntry?: number;
|
|
29
|
+
SecDateEntry?: string;
|
|
30
|
+
FeeAllowed?: number;
|
|
31
|
+
TaxAmt?: number;
|
|
32
|
+
ProvNum?: number;
|
|
33
|
+
DateTP?: string;
|
|
34
|
+
ClinicNum?: number;
|
|
35
|
+
CatPercUCR?: number;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Parameters for GET Multiple ProcTPs.
|
|
39
|
+
* @see https://www.opendental.com/site/apiproctps.html
|
|
40
|
+
*/
|
|
41
|
+
export interface GetProcTPsParams {
|
|
42
|
+
TreatPlanNum?: number;
|
|
43
|
+
Offset?: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Updates a ProcTp. Only ProcTPs associated with an unsigned treatment plan can be updated.
|
|
47
|
+
* @see https://www.opendental.com/site/apiproctps.html
|
|
48
|
+
*/
|
|
49
|
+
export interface updateProcTPParams {
|
|
50
|
+
ProcTPNum: number;
|
|
51
|
+
Priority?: number;
|
|
52
|
+
ToothNumTP?: string;
|
|
53
|
+
Surf?: Surf;
|
|
54
|
+
ProcCode?: string;
|
|
55
|
+
Descript?: string;
|
|
56
|
+
FeeAmt?: number;
|
|
57
|
+
PriInsAmt?: number;
|
|
58
|
+
SecInsAmt?: number;
|
|
59
|
+
PatAmt?: number;
|
|
60
|
+
Discount?: number;
|
|
61
|
+
Prognosis?: string;
|
|
62
|
+
Dx?: string;
|
|
63
|
+
ProcAbbr?: string;
|
|
64
|
+
FeeAllowed?: number;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Surf: Required for the treatment areas of some procCodes. Can be tooth Surfaces (B/F,V,M,O/I,D,L), mouth Quadrants (UL,UR,LR,LL), Sextants (1,2,3,4,5,6), or Arches (U or L).
|
|
68
|
+
* @see https://www.opendental.com/site/apiproctps.html
|
|
69
|
+
*/
|
|
70
|
+
export type Surf = "B/F" | "V" | "M" | "O/I" | "D" | "L" | "UL" | "UR" | "LR" | "LL" | "1" | "2" | "3" | "4" | "5" | "6" | "U" | "L";
|
|
71
|
+
//# sourceMappingURL=procTPTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"procTPTypes.d.ts","sourceRoot":"","sources":["../../src/types/procTPTypes.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,WAAW,MAAM;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;KAGK;AACL,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAEH;;;GAGG;AACD,MAAM,MAAM,IAAI,GAChB,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GACrC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACzB,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GACjC,GAAG,GAAG,GAAG,CAAC"}
|
|
@@ -19,16 +19,30 @@ export interface ProcedureLog {
|
|
|
19
19
|
Dx?: string;
|
|
20
20
|
dxName?: string;
|
|
21
21
|
PlannedAptNum?: number;
|
|
22
|
-
|
|
22
|
+
PlaceService?: "Office" | "PatientsHome" | "InpatHospital" | "OutpatHospital" | "SkilledNursFac" | "CustodialCareFacility" | "OtherLocation" | "MobileUnit" | "School" | "MilitaryTreatFac" | "FederalHealthCenter" | "PublicHealthClinic" | "RuralHealthClinic" | "EmergencyRoomHospital" | "AmbulatorySurgicalCenter" | "TelehealthOutsideHome" | "TelehealthInHome" | "OutreachSiteOrStreet";
|
|
23
|
+
Prosthesis?: "" | "I" | "R";
|
|
23
24
|
DateOriginalProsth?: string;
|
|
25
|
+
ClaimNote?: string;
|
|
26
|
+
DateEntryC?: string;
|
|
24
27
|
ClinicNum?: number;
|
|
25
28
|
CodeNum?: number;
|
|
26
29
|
procCode?: string;
|
|
27
30
|
descript?: string;
|
|
28
|
-
ProcTime?: string;
|
|
29
31
|
UnitQty?: number;
|
|
32
|
+
BaseUnits?: number;
|
|
33
|
+
DateTP?: string;
|
|
34
|
+
SiteNum?: number;
|
|
35
|
+
HideGraphics?: 'true' | 'false';
|
|
36
|
+
CanadianTypeCodes?: string;
|
|
37
|
+
ProcTime?: string;
|
|
38
|
+
ProcTimeEnd?: string;
|
|
30
39
|
DateTStamp?: string;
|
|
40
|
+
Prognosis?: number;
|
|
41
|
+
IsLocked?: 'true' | 'false';
|
|
42
|
+
BillingNote?: string;
|
|
43
|
+
Discount?: number;
|
|
31
44
|
IsDateProsthEst?: 'true' | 'false';
|
|
45
|
+
SecDateEntry?: string;
|
|
32
46
|
serverDateTime?: string;
|
|
33
47
|
}
|
|
34
48
|
/**
|
|
@@ -38,52 +52,88 @@ export interface ProcedureLog {
|
|
|
38
52
|
export interface GetProcedureLogParams {
|
|
39
53
|
PatNum?: number;
|
|
40
54
|
AptNum?: number;
|
|
55
|
+
ProcStatus?: 'TP' | 'C' | 'EC' | 'EO' | 'R' | 'D' | 'Cn' | 'TPi';
|
|
41
56
|
PlannedAptNum?: number;
|
|
42
57
|
ClinicNum?: number;
|
|
58
|
+
CodeNum?: number;
|
|
43
59
|
DateTStamp?: string;
|
|
44
60
|
Offset?: number;
|
|
45
61
|
}
|
|
46
62
|
/**
|
|
47
|
-
*
|
|
63
|
+
* Creates a new procedure for a given patient. Attempts to set them will be silently ignored.
|
|
64
|
+
* Furthermore, the following pairs of fields may only have one of the two passed in at once: Priority and priority, Dx and dxName.
|
|
65
|
+
* Not all procedure codes support Surfs, ToothNums, and ToothRanges. Procedure code default notes will not be used.
|
|
48
66
|
* @see https://www.opendental.com/site/apiprocedurelogs.html
|
|
49
67
|
*/
|
|
50
68
|
export interface createProcedureLogParams {
|
|
51
69
|
PatNum: number;
|
|
52
70
|
ProcDate: string;
|
|
53
|
-
ProcStatus: 'TP' | 'C' | 'EO';
|
|
54
|
-
|
|
71
|
+
ProcStatus: 'TP' | 'C' | 'EO' | 'EC' | 'R' | 'Cn';
|
|
72
|
+
CodeNum?: number;
|
|
73
|
+
procCode?: string;
|
|
55
74
|
AptNum?: number;
|
|
56
75
|
ProcFee?: number;
|
|
57
|
-
Surf?: Surf;
|
|
58
|
-
ToothNum?: string;
|
|
59
|
-
ToothRange?: string;
|
|
60
76
|
Priority?: number;
|
|
61
77
|
priority?: string;
|
|
62
78
|
ProvNum?: number;
|
|
63
79
|
Dx?: string;
|
|
64
80
|
dxName?: string;
|
|
65
81
|
PlannedAptNum?: number;
|
|
82
|
+
PlaceService?: "Office" | "PatientsHome" | "InpatHospital" | "OutpatHospital" | "SkilledNursFac" | "CustodialCareFacility" | "OtherLocation" | "MobileUnit" | "School" | "MilitaryTreatFac" | "FederalHealthCenter" | "PublicHealthClinic" | "RuralHealthClinic" | "EmergencyRoomHospital" | "AmbulatorySurgicalCenter" | "TelehealthOutsideHome" | "TelehealthInHome" | "OutreachSiteOrStreet";
|
|
83
|
+
Prosthesis?: "" | "I" | "R";
|
|
84
|
+
DateOriginalProsth?: string;
|
|
85
|
+
ClaimNote?: string;
|
|
66
86
|
ClinicNum?: number;
|
|
87
|
+
DateTP?: string;
|
|
88
|
+
SiteNum?: number;
|
|
89
|
+
ProcTime?: string;
|
|
90
|
+
ProcTimeEnd?: string;
|
|
91
|
+
Prognosis?: number;
|
|
92
|
+
ToothNum?: string;
|
|
93
|
+
Surf?: Surf;
|
|
94
|
+
ToothRange?: string;
|
|
95
|
+
BillingNote?: string;
|
|
96
|
+
Discount?: number;
|
|
97
|
+
IsDateProsthEst?: "true" | "false";
|
|
67
98
|
}
|
|
68
99
|
/**
|
|
69
|
-
*
|
|
100
|
+
* Updates an existing procedure. When changing procCode, the treatment area of the current and passed in procedure codes must match.
|
|
101
|
+
* Attempting to pass in empty strings for ToothNum, Surf, and ToothRange will be silently ignored.
|
|
102
|
+
* The CodeNum, procCode, Discount, ToothNum, Surf, and ToothRange fields cannot be updated on procedures with a ProcStatus of C.
|
|
103
|
+
* If the procedurelog is associated with certain appointments, claims, or orthocases, then some fields cannot be updated.
|
|
104
|
+
* Procedure code default notes will not be used.
|
|
105
|
+
*
|
|
106
|
+
* ProcedureLogs associated with adjustments, appointments, payments, payplancharges, or paysplits are updated exactly as in Open Dental.
|
|
70
107
|
* @see https://www.opendental.com/site/apiprocedurelogs.html
|
|
71
108
|
*/
|
|
72
109
|
export interface updateProcedureLogParams {
|
|
73
110
|
ProcNum: number;
|
|
74
111
|
AptNum?: number;
|
|
75
|
-
ProcDate
|
|
112
|
+
ProcDate: string;
|
|
76
113
|
ProcFee?: number;
|
|
77
114
|
Priority?: number;
|
|
78
|
-
ProcStatus
|
|
115
|
+
ProcStatus: 'TP' | 'C' | 'EO' | 'EC' | 'R' | 'Cn';
|
|
79
116
|
ProvNum?: number;
|
|
80
117
|
Dx?: string;
|
|
81
118
|
PlannedAptNum?: number;
|
|
119
|
+
PlaceService?: "Office" | "PatientsHome" | "InpatHospital" | "OutpatHospital" | "SkilledNursFac" | "CustodialCareFacility" | "OtherLocation" | "MobileUnit" | "School" | "MilitaryTreatFac" | "FederalHealthCenter" | "PublicHealthClinic" | "RuralHealthClinic" | "EmergencyRoomHospital" | "AmbulatorySurgicalCenter" | "TelehealthOutsideHome" | "TelehealthInHome" | "OutreachSiteOrStreet";
|
|
120
|
+
Prosthesis?: "" | "I" | "R";
|
|
121
|
+
DateOriginalProsth?: string;
|
|
122
|
+
ClaimNote?: string;
|
|
82
123
|
ClinicNum?: number;
|
|
124
|
+
CodeNum?: number;
|
|
83
125
|
procCode?: string;
|
|
126
|
+
DateTP?: string;
|
|
127
|
+
SiteNum?: number;
|
|
128
|
+
ProcTime?: string;
|
|
129
|
+
ProcTimeEnd?: string;
|
|
130
|
+
Prognosis?: number;
|
|
84
131
|
ToothNum?: string;
|
|
85
132
|
Surf?: Surf;
|
|
86
133
|
ToothRange?: string;
|
|
134
|
+
BillingNote?: string;
|
|
135
|
+
Discount?: number;
|
|
136
|
+
IsDateProsthEst?: "true" | "false";
|
|
87
137
|
}
|
|
88
138
|
/**
|
|
89
139
|
* Insurance History object in Open Dental.
|
|
@@ -114,7 +164,7 @@ export interface postInsuranceHistoryParams {
|
|
|
114
164
|
}
|
|
115
165
|
/**
|
|
116
166
|
* Surf: Required for the treatment areas of some procCodes. Can be tooth Surfaces (B/F,V,M,O/I,D,L), mouth Quadrants (UL,UR,LR,LL), Sextants (1,2,3,4,5,6), or Arches (U or L).
|
|
117
|
-
* @see https://www.opendental.com/site/
|
|
167
|
+
* @see https://www.opendental.com/site/apiprocedurelogs.html
|
|
118
168
|
*/
|
|
119
169
|
export type Surf = "B/F" | "V" | "M" | "O/I" | "D" | "L" | "UL" | "UR" | "LR" | "LL" | "1" | "2" | "3" | "4" | "5" | "6" | "U" | "L";
|
|
120
170
|
//# sourceMappingURL=procedurelogTypes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"procedurelogTypes.d.ts","sourceRoot":"","sources":["../../src/types/procedurelogTypes.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"procedurelogTypes.d.ts","sourceRoot":"","sources":["../../src/types/procedurelogTypes.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/api/chartModules.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import HttpClient from "../utils/httpClient";
|
|
2
2
|
import {
|
|
3
|
+
ProgNote,
|
|
4
|
+
PatientInfo,
|
|
3
5
|
PlannedAppointment,
|
|
4
6
|
} from "../types/chartModuleTypes"
|
|
5
7
|
|
|
@@ -10,6 +12,32 @@ export default class ChartModules {
|
|
|
10
12
|
this.httpClient = httpClient;
|
|
11
13
|
}
|
|
12
14
|
|
|
15
|
+
/**
|
|
16
|
+
* Gets the Progress Notes for a patient, similarly to how it shows in the Chart Module. Use another API method or a query to get specific details about each object.
|
|
17
|
+
* @param {number} PatNum - The unique identifier for the patient.
|
|
18
|
+
* @returns {Promise<ProgNote>} - The ProgNote object.
|
|
19
|
+
* @throws {Error} - If `PatNum` is not provided.
|
|
20
|
+
*/
|
|
21
|
+
public async getProgNotes(PatNum: number): Promise<ProgNote> {
|
|
22
|
+
if (!PatNum || typeof PatNum !== "number") {
|
|
23
|
+
throw new Error("PatNum must be an integer.");
|
|
24
|
+
}
|
|
25
|
+
return this.httpClient.get<ProgNote>(`/chartmodules/${PatNum}/ProgNotes`);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Gets Patient Info for a patient, similarly to how it shows in the Chart Module. Use another API method or a query to get specific details about returned elements.
|
|
30
|
+
* @param {number} PatNum - The unique identifier for the patient.
|
|
31
|
+
* @returns {Promise<PatientInfo>} - The PatientInfo object.
|
|
32
|
+
* @throws {Error} - If `PatNum` is not provided.
|
|
33
|
+
*/
|
|
34
|
+
public async PatientInfo(PatNum: number): Promise<PatientInfo> {
|
|
35
|
+
if (!PatNum || typeof PatNum !== "number") {
|
|
36
|
+
throw new Error("PatNum must be an integer.");
|
|
37
|
+
}
|
|
38
|
+
return this.httpClient.get<PatientInfo>(`/chartmodules/${PatNum}/PatientInfo`);
|
|
39
|
+
}
|
|
40
|
+
|
|
13
41
|
/**
|
|
14
42
|
* Gets Planned Appointments for a patient, similarly to how it shows in the Chart Module's Planned Appointments tab.
|
|
15
43
|
* @param {number} PatNum - The unique identifier for the patient.
|
|
@@ -17,8 +45,8 @@ export default class ChartModules {
|
|
|
17
45
|
* @throws {Error} - If `PatNum` is not provided.
|
|
18
46
|
*/
|
|
19
47
|
public async getPlannedAppts(PatNum: number): Promise<PlannedAppointment> {
|
|
20
|
-
if (!PatNum) {
|
|
21
|
-
throw new Error("PatNum
|
|
48
|
+
if (!PatNum || typeof PatNum !== "number") {
|
|
49
|
+
throw new Error("PatNum must be an integer.");
|
|
22
50
|
}
|
|
23
51
|
return this.httpClient.get<PlannedAppointment>(`/chartmodules/${PatNum}/PlannedAppts`);
|
|
24
52
|
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import HttpClient from "../utils/httpClient";
|
|
2
|
+
import {
|
|
3
|
+
ProcTP,
|
|
4
|
+
GetProcTPsParams,
|
|
5
|
+
updateProcTPParams,
|
|
6
|
+
} from "../types/procTPTypes";
|
|
7
|
+
|
|
8
|
+
export default class procTPs {
|
|
9
|
+
private httpClient: HttpClient;
|
|
10
|
+
|
|
11
|
+
constructor(httpClient: HttpClient) {
|
|
12
|
+
this.httpClient = httpClient;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Get a list of ProcTPs by the TreatPlanNum. Before calling this method, use TreatPlans GET to find the TreatPlanNum of an existing TreatPlan.
|
|
17
|
+
* @param {Object} params - The parameters for filtering and pagination.
|
|
18
|
+
* @param {number} params.TreatPlanNum - Required. FK to TreatPlan.TreatPlanNum.
|
|
19
|
+
* @param {number} [params.Offset] - Optional. Pagination offset for results.
|
|
20
|
+
* @returns {Promise<ProcTP[]>} - A list of procTPs.
|
|
21
|
+
*/
|
|
22
|
+
public async getProcTPs({
|
|
23
|
+
TreatPlanNum,
|
|
24
|
+
Offset,
|
|
25
|
+
}: GetProcTPsParams = {}): Promise<ProcTP[]> {
|
|
26
|
+
const params = {
|
|
27
|
+
TreatPlanNum,
|
|
28
|
+
Offset,
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
return this.httpClient.get<ProcTP[]>("/proctps", params);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Update an existing procedure log entry.
|
|
36
|
+
* @param {Object} data - The updated details of the ProcTP.
|
|
37
|
+
* @param {number} data.ProcTPNum - Required: The unique identifier of the procTP to update.
|
|
38
|
+
* @param {number} [data.Priority] - Optional: definition.DefNum where definition.Category=20.
|
|
39
|
+
* @param {string} [data.ToothNumTP] - Optional: Updated tooth number.
|
|
40
|
+
* @param {Surf} [data.Surf] - Optional: Tooth surface or treatment area. Options include:
|
|
41
|
+
* - "B/F" (Buccal/Facial)
|
|
42
|
+
* - "V" (Vestibular)
|
|
43
|
+
* - "M" (Mesial)
|
|
44
|
+
* - "O/I" (Occlusal/Incisal)
|
|
45
|
+
* - "D" (Distal)
|
|
46
|
+
* - "L" (Lingual)
|
|
47
|
+
* - "UL" (Upper Left Quadrant)
|
|
48
|
+
* - "UR" (Upper Right Quadrant)
|
|
49
|
+
* - "LR" (Lower Right Quadrant)
|
|
50
|
+
* - "LL" (Lower Left Quadrant)
|
|
51
|
+
* - "1" (Sextant 1)
|
|
52
|
+
* - "2" (Sextant 2)
|
|
53
|
+
* - "3" (Sextant 3)
|
|
54
|
+
* - "4" (Sextant 4)
|
|
55
|
+
* - "5" (Sextant 5)
|
|
56
|
+
* - "6" (Sextant 6)
|
|
57
|
+
* - "U" (Upper Arch)
|
|
58
|
+
* - "L" (Lower Arch)
|
|
59
|
+
* @param {string} [data.ProcCode] - Optional: Updated procedure code (D code).
|
|
60
|
+
* @param {string} [data.Descript] - Optional: Description of procedure.
|
|
61
|
+
* @param {number} [data.FeeAmt] - Optional: The fee charged to the patient.
|
|
62
|
+
* @param {number} [data.PriInsAmt] - Optional: The amount primary insurance is expected to pay.
|
|
63
|
+
* @param {number} [data.SecInsAmt] - Optional: The amount secondary insurance is expected to pay.
|
|
64
|
+
* @param {number} [data.PatAmt] - Optional: The amount the patient is expected to pay.
|
|
65
|
+
* @param {number} [data.Discount] - Optional: The amount of discount. Used for PPOs and procedure level discounts.
|
|
66
|
+
* @param {string} [data.Prognosis] - Optional: Text for prognosis definition.
|
|
67
|
+
* @param {string} [data.Dx] - Optional: Updated diagnosis code.
|
|
68
|
+
* @param {string} [data.ProcAbbr] - Optional: The procedure code abbreviation.
|
|
69
|
+
* @param {number} [data.FeeAllowed] - Optional: Description of procedure.
|
|
70
|
+
* @returns {Promise<ProcTP>} - The updated ProcTP.
|
|
71
|
+
* @throws {Error} - If required fields are missing or the API returns an error.
|
|
72
|
+
*/
|
|
73
|
+
public async updateProcTP(
|
|
74
|
+
{
|
|
75
|
+
ProcTPNum,
|
|
76
|
+
Priority,
|
|
77
|
+
ToothNumTP,
|
|
78
|
+
Surf,
|
|
79
|
+
ProcCode,
|
|
80
|
+
Descript,
|
|
81
|
+
FeeAmt,
|
|
82
|
+
PriInsAmt,
|
|
83
|
+
SecInsAmt,
|
|
84
|
+
PatAmt,
|
|
85
|
+
Discount,
|
|
86
|
+
Prognosis,
|
|
87
|
+
Dx,
|
|
88
|
+
ProcAbbr,
|
|
89
|
+
}: updateProcTPParams
|
|
90
|
+
): Promise<ProcTP> {
|
|
91
|
+
if (!ProcTPNum || typeof ProcTPNum !== "number") {
|
|
92
|
+
throw new Error("Invalid parameter: ProcTPNum must be a valid number.");
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return this.httpClient.put<ProcTP>(`/proctps/${ProcTPNum}`, {
|
|
96
|
+
Priority,
|
|
97
|
+
ToothNumTP,
|
|
98
|
+
Surf,
|
|
99
|
+
ProcCode,
|
|
100
|
+
Descript,
|
|
101
|
+
FeeAmt,
|
|
102
|
+
PriInsAmt,
|
|
103
|
+
SecInsAmt,
|
|
104
|
+
PatAmt,
|
|
105
|
+
Discount,
|
|
106
|
+
Prognosis,
|
|
107
|
+
Dx,
|
|
108
|
+
ProcAbbr,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
}
|