@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.
@@ -1,8 +1,22 @@
1
1
  import HttpClient from "../utils/httpClient";
2
- import { PlannedAppointment } from "../types/chartModuleTypes";
2
+ import { ProgNote, PatientInfo, PlannedAppointment } from "../types/chartModuleTypes";
3
3
  export default class ChartModules {
4
4
  private httpClient;
5
5
  constructor(httpClient: HttpClient);
6
+ /**
7
+ * 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.
8
+ * @param {number} PatNum - The unique identifier for the patient.
9
+ * @returns {Promise<ProgNote>} - The ProgNote object.
10
+ * @throws {Error} - If `PatNum` is not provided.
11
+ */
12
+ getProgNotes(PatNum: number): Promise<ProgNote>;
13
+ /**
14
+ * 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.
15
+ * @param {number} PatNum - The unique identifier for the patient.
16
+ * @returns {Promise<PatientInfo>} - The PatientInfo object.
17
+ * @throws {Error} - If `PatNum` is not provided.
18
+ */
19
+ PatientInfo(PatNum: number): Promise<PatientInfo>;
6
20
  /**
7
21
  * Gets Planned Appointments for a patient, similarly to how it shows in the Chart Module's Planned Appointments tab.
8
22
  * @param {number} PatNum - The unique identifier for the patient.
@@ -1 +1 @@
1
- {"version":3,"file":"chartModules.d.ts","sourceRoot":"","sources":["../../src/api/chartModules.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,kBAAkB,EACnB,MAAM,2BAA2B,CAAA;AAElC,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,OAAO,CAAC,UAAU,CAAa;gBAEnB,UAAU,EAAE,UAAU;IAIlC;;;;;OAKG;IACU,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAM1E"}
1
+ {"version":3,"file":"chartModules.d.ts","sourceRoot":"","sources":["../../src/api/chartModules.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,QAAQ,EACR,WAAW,EACX,kBAAkB,EACnB,MAAM,2BAA2B,CAAA;AAElC,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,OAAO,CAAC,UAAU,CAAa;gBAEnB,UAAU,EAAE,UAAU;IAIlC;;;;;OAKG;IACU,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAO5D;;;;;OAKG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAO9D;;;;;OAKG;IACU,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAM1E"}
@@ -5,6 +5,30 @@ class ChartModules {
5
5
  constructor(httpClient) {
6
6
  this.httpClient = httpClient;
7
7
  }
8
+ /**
9
+ * 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.
10
+ * @param {number} PatNum - The unique identifier for the patient.
11
+ * @returns {Promise<ProgNote>} - The ProgNote object.
12
+ * @throws {Error} - If `PatNum` is not provided.
13
+ */
14
+ async getProgNotes(PatNum) {
15
+ if (!PatNum || typeof PatNum !== "number") {
16
+ throw new Error("PatNum must be an integer.");
17
+ }
18
+ return this.httpClient.get(`/chartmodules/${PatNum}/ProgNotes`);
19
+ }
20
+ /**
21
+ * 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.
22
+ * @param {number} PatNum - The unique identifier for the patient.
23
+ * @returns {Promise<PatientInfo>} - The PatientInfo object.
24
+ * @throws {Error} - If `PatNum` is not provided.
25
+ */
26
+ async PatientInfo(PatNum) {
27
+ if (!PatNum || typeof PatNum !== "number") {
28
+ throw new Error("PatNum must be an integer.");
29
+ }
30
+ return this.httpClient.get(`/chartmodules/${PatNum}/PatientInfo`);
31
+ }
8
32
  /**
9
33
  * Gets Planned Appointments for a patient, similarly to how it shows in the Chart Module's Planned Appointments tab.
10
34
  * @param {number} PatNum - The unique identifier for the patient.
@@ -12,8 +36,8 @@ class ChartModules {
12
36
  * @throws {Error} - If `PatNum` is not provided.
13
37
  */
14
38
  async getPlannedAppts(PatNum) {
15
- if (!PatNum) {
16
- throw new Error("PatNum is required.");
39
+ if (!PatNum || typeof PatNum !== "number") {
40
+ throw new Error("PatNum must be an integer.");
17
41
  }
18
42
  return this.httpClient.get(`/chartmodules/${PatNum}/PlannedAppts`);
19
43
  }
@@ -0,0 +1,55 @@
1
+ import HttpClient from "../utils/httpClient";
2
+ import { ProcTP, GetProcTPsParams, updateProcTPParams } from "../types/procTPTypes";
3
+ export default class procTPs {
4
+ private httpClient;
5
+ constructor(httpClient: HttpClient);
6
+ /**
7
+ * Get a list of ProcTPs by the TreatPlanNum. Before calling this method, use TreatPlans GET to find the TreatPlanNum of an existing TreatPlan.
8
+ * @param {Object} params - The parameters for filtering and pagination.
9
+ * @param {number} params.TreatPlanNum - Required. FK to TreatPlan.TreatPlanNum.
10
+ * @param {number} [params.Offset] - Optional. Pagination offset for results.
11
+ * @returns {Promise<ProcTP[]>} - A list of procTPs.
12
+ */
13
+ getProcTPs({ TreatPlanNum, Offset, }?: GetProcTPsParams): Promise<ProcTP[]>;
14
+ /**
15
+ * Update an existing procedure log entry.
16
+ * @param {Object} data - The updated details of the ProcTP.
17
+ * @param {number} data.ProcTPNum - Required: The unique identifier of the procTP to update.
18
+ * @param {number} [data.Priority] - Optional: definition.DefNum where definition.Category=20.
19
+ * @param {string} [data.ToothNumTP] - Optional: Updated tooth number.
20
+ * @param {Surf} [data.Surf] - Optional: Tooth surface or treatment area. Options include:
21
+ * - "B/F" (Buccal/Facial)
22
+ * - "V" (Vestibular)
23
+ * - "M" (Mesial)
24
+ * - "O/I" (Occlusal/Incisal)
25
+ * - "D" (Distal)
26
+ * - "L" (Lingual)
27
+ * - "UL" (Upper Left Quadrant)
28
+ * - "UR" (Upper Right Quadrant)
29
+ * - "LR" (Lower Right Quadrant)
30
+ * - "LL" (Lower Left Quadrant)
31
+ * - "1" (Sextant 1)
32
+ * - "2" (Sextant 2)
33
+ * - "3" (Sextant 3)
34
+ * - "4" (Sextant 4)
35
+ * - "5" (Sextant 5)
36
+ * - "6" (Sextant 6)
37
+ * - "U" (Upper Arch)
38
+ * - "L" (Lower Arch)
39
+ * @param {string} [data.ProcCode] - Optional: Updated procedure code (D code).
40
+ * @param {string} [data.Descript] - Optional: Description of procedure.
41
+ * @param {number} [data.FeeAmt] - Optional: The fee charged to the patient.
42
+ * @param {number} [data.PriInsAmt] - Optional: The amount primary insurance is expected to pay.
43
+ * @param {number} [data.SecInsAmt] - Optional: The amount secondary insurance is expected to pay.
44
+ * @param {number} [data.PatAmt] - Optional: The amount the patient is expected to pay.
45
+ * @param {number} [data.Discount] - Optional: The amount of discount. Used for PPOs and procedure level discounts.
46
+ * @param {string} [data.Prognosis] - Optional: Text for prognosis definition.
47
+ * @param {string} [data.Dx] - Optional: Updated diagnosis code.
48
+ * @param {string} [data.ProcAbbr] - Optional: The procedure code abbreviation.
49
+ * @param {number} [data.FeeAllowed] - Optional: Description of procedure.
50
+ * @returns {Promise<ProcTP>} - The updated ProcTP.
51
+ * @throws {Error} - If required fields are missing or the API returns an error.
52
+ */
53
+ updateProcTP({ ProcTPNum, Priority, ToothNumTP, Surf, ProcCode, Descript, FeeAmt, PriInsAmt, SecInsAmt, PatAmt, Discount, Prognosis, Dx, ProcAbbr, }: updateProcTPParams): Promise<ProcTP>;
54
+ }
55
+ //# sourceMappingURL=procTPs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"procTPs.d.ts","sourceRoot":"","sources":["../../src/api/procTPs.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,CAAC,OAAO,OAAO,OAAO;IAC1B,OAAO,CAAC,UAAU,CAAa;gBAEnB,UAAU,EAAE,UAAU;IAIpC;;;;;;OAMG;IACU,UAAU,CAAC,EACpB,YAAY,EACZ,MAAM,GACP,GAAE,gBAAqB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAS9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAsCE;IACW,YAAY,CACvB,EACE,SAAS,EACT,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,SAAS,EACT,SAAS,EACT,MAAM,EACN,QAAQ,EACR,SAAS,EACT,EAAE,EACF,QAAQ,GACT,EAAE,kBAAkB,GAClB,OAAO,CAAC,MAAM,CAAC;CAsBnB"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class procTPs {
4
+ httpClient;
5
+ constructor(httpClient) {
6
+ this.httpClient = httpClient;
7
+ }
8
+ /**
9
+ * Get a list of ProcTPs by the TreatPlanNum. Before calling this method, use TreatPlans GET to find the TreatPlanNum of an existing TreatPlan.
10
+ * @param {Object} params - The parameters for filtering and pagination.
11
+ * @param {number} params.TreatPlanNum - Required. FK to TreatPlan.TreatPlanNum.
12
+ * @param {number} [params.Offset] - Optional. Pagination offset for results.
13
+ * @returns {Promise<ProcTP[]>} - A list of procTPs.
14
+ */
15
+ async getProcTPs({ TreatPlanNum, Offset, } = {}) {
16
+ const params = {
17
+ TreatPlanNum,
18
+ Offset,
19
+ };
20
+ return this.httpClient.get("/proctps", params);
21
+ }
22
+ /**
23
+ * Update an existing procedure log entry.
24
+ * @param {Object} data - The updated details of the ProcTP.
25
+ * @param {number} data.ProcTPNum - Required: The unique identifier of the procTP to update.
26
+ * @param {number} [data.Priority] - Optional: definition.DefNum where definition.Category=20.
27
+ * @param {string} [data.ToothNumTP] - Optional: Updated tooth number.
28
+ * @param {Surf} [data.Surf] - Optional: Tooth surface or treatment area. Options include:
29
+ * - "B/F" (Buccal/Facial)
30
+ * - "V" (Vestibular)
31
+ * - "M" (Mesial)
32
+ * - "O/I" (Occlusal/Incisal)
33
+ * - "D" (Distal)
34
+ * - "L" (Lingual)
35
+ * - "UL" (Upper Left Quadrant)
36
+ * - "UR" (Upper Right Quadrant)
37
+ * - "LR" (Lower Right Quadrant)
38
+ * - "LL" (Lower Left Quadrant)
39
+ * - "1" (Sextant 1)
40
+ * - "2" (Sextant 2)
41
+ * - "3" (Sextant 3)
42
+ * - "4" (Sextant 4)
43
+ * - "5" (Sextant 5)
44
+ * - "6" (Sextant 6)
45
+ * - "U" (Upper Arch)
46
+ * - "L" (Lower Arch)
47
+ * @param {string} [data.ProcCode] - Optional: Updated procedure code (D code).
48
+ * @param {string} [data.Descript] - Optional: Description of procedure.
49
+ * @param {number} [data.FeeAmt] - Optional: The fee charged to the patient.
50
+ * @param {number} [data.PriInsAmt] - Optional: The amount primary insurance is expected to pay.
51
+ * @param {number} [data.SecInsAmt] - Optional: The amount secondary insurance is expected to pay.
52
+ * @param {number} [data.PatAmt] - Optional: The amount the patient is expected to pay.
53
+ * @param {number} [data.Discount] - Optional: The amount of discount. Used for PPOs and procedure level discounts.
54
+ * @param {string} [data.Prognosis] - Optional: Text for prognosis definition.
55
+ * @param {string} [data.Dx] - Optional: Updated diagnosis code.
56
+ * @param {string} [data.ProcAbbr] - Optional: The procedure code abbreviation.
57
+ * @param {number} [data.FeeAllowed] - Optional: Description of procedure.
58
+ * @returns {Promise<ProcTP>} - The updated ProcTP.
59
+ * @throws {Error} - If required fields are missing or the API returns an error.
60
+ */
61
+ async updateProcTP({ ProcTPNum, Priority, ToothNumTP, Surf, ProcCode, Descript, FeeAmt, PriInsAmt, SecInsAmt, PatAmt, Discount, Prognosis, Dx, ProcAbbr, }) {
62
+ if (!ProcTPNum || typeof ProcTPNum !== "number") {
63
+ throw new Error("Invalid parameter: ProcTPNum must be a valid number.");
64
+ }
65
+ return this.httpClient.put(`/proctps/${ProcTPNum}`, {
66
+ Priority,
67
+ ToothNumTP,
68
+ Surf,
69
+ ProcCode,
70
+ Descript,
71
+ FeeAmt,
72
+ PriInsAmt,
73
+ SecInsAmt,
74
+ PatAmt,
75
+ Discount,
76
+ Prognosis,
77
+ Dx,
78
+ ProcAbbr,
79
+ });
80
+ }
81
+ }
82
+ exports.default = procTPs;
@@ -15,24 +15,43 @@ export default class ProcedureLogs {
15
15
  * @param {Object} params - Filtering and pagination parameters.
16
16
  * @param {number} [params.PatNum] - Get procedurelogs by PatNum
17
17
  * @param {number} [params.AptNum] - Get procedurelogs by AptNum
18
- * @param {number} [params.PlannedAptNum] - Get procedurelogs by PlannedAptNum
19
- * @param {number} [params.ClinicNum] - Get procedurelogs by ClinicNum
20
- * @param {string} [params.DateTStamp] - Get procedurelogs altered after the specified date and time
18
+ * @param {'TP' | 'C' | 'EC' | 'EO' | 'R' | 'D' | 'Cn' | 'TPi'} [params.ProcStatus] - // Either "TP" (Treatment Plan), "C" (Complete), "EC" (Existing Current Provider), "EO" (Existing Other Provider), "R" (Referred Out), "D" (Deleted), "Cn" (Condition), or "TPi" (Treatment Plan inactive).
19
+ * @param {number} [params.PlannedAptNum] - FK to appointment.AptNum where appointment.AptStatus=Planned.
20
+ * @param {number} [params.ClinicNum] - FK to clinic.ClinicNum.
21
+ * @param {number} [params.CodeNum] - FK to procedurecode.CodeNum.
22
+ * @param {string} [params.DateTStamp] - Gets procedurelogs created on or after the specified date and time. String in "yyyy-MM-dd HH:mm:ss" format.
21
23
  * @param {string} [params.Offset] - Pagination
22
24
  * @returns {Promise<ProcedureLog[]>} - A list of procedurelogs.
23
25
  * @throws {Error} - If the API returns an error.
24
26
  */
25
- getProcedureLogs({ PatNum, AptNum, PlannedAptNum, ClinicNum, DateTStamp, Offset, }?: GetProcedureLogParams): Promise<ProcedureLog[]>;
27
+ getProcedureLogs({ PatNum, AptNum, ProcStatus, PlannedAptNum, ClinicNum, CodeNum, DateTStamp, Offset, }?: GetProcedureLogParams): Promise<ProcedureLog[]>;
26
28
  /**
27
29
  * Create a new procedure log entry.
28
30
  * @param {Object} data - The details of the procedure log to create.
29
31
  * @param {number} data.PatNum - Required: Patient number.
30
32
  * @param {string} data.ProcDate - Required: Procedure date in "yyyy-MM-dd" format.
31
- * @param {'TP' | 'C' | 'EO'} data.ProcStatus - Required: Procedure status.
32
- * @param {string} data.procCode - Required: Procedure code (D code).
33
- * @param {number} [data.AptNum] - Optional: Associated appointment number.
34
- * @param {number} [data.ProcFee] - Optional: Fee for the procedure.
35
- * @param {Surf} [data.Surf] - Optional: Tooth surface or treatment area. Options include:
33
+ * @param {'TP' | 'C' | 'EO' | 'EC' | 'R' | 'Cn'} data.ProcStatus - Required: Either "TP" (Treatment Plan), "C" (Complete), "EC" (Existing Current Provider), "EO" (Existing Other Provider), "R" (Referred Out), "D" (Deleted), or "Cn" (Condition).
34
+ * @param {number} [data.CodeNum] - This or procCode is Required. FK to procedurecode.CodeNum.
35
+ * @param {string} [data.procCode] - This or CodeNum is Required. This should be a valid D code, example: D0120. CodeNum is set automatically.
36
+ * @param {number} [data.AptNum] - Optional. FK to appointment.PatNum.
37
+ * @param {number} [data.ProcFee] - Optional. If none is given this will default to the procedurecodes default, with consideration of the patient's insurance.
38
+ * @param {number} [data.Priority] - Optional. Definition.DefNum where definition.Category=20. Default is the first definition in that Category. If Priority is used, then priority will be set automatically.
39
+ * @param {number} [data.priority] - Optional. String version of Priority. If priority is used, then Priority will be set automatically.
40
+ * @param {number} [data.ProvNum] - Optional. Defaults to the PriProv of the appointment if given, otherwise it will check the patient's default provider. Failing either of the previous options, it will be set to the dental office's default provider. If ProvNum is used, then provAbbr will be set automatically.
41
+ * @param {number} [data.Dx] - Optional. Definition.DefNum where definition.Category=16. Default is the first definition in that Category. If Dx is used, then dxName will be set automatically.
42
+ * @param {string} [data.dxName] - Optional. String version of Dx. If dxName is used, then Dx will be set automatically.
43
+ * @param {number} [data.PlannedAptNum] - Optional. Only set if this procedure is on a planned appointment, otherwise it will be 0.
44
+ * @param {"Office" | "PatientsHome" | "InpatHospital" | "OutpatHospital" | "SkilledNursFac" | "CustodialCareFacility" | "OtherLocation" | "MobileUnit" | "School" | "MilitaryTreatFac" | "FederalHealthCenter" | "PublicHealthClinic" | "RuralHealthClinic" | "EmergencyRoomHospital" | "AmbulatorySurgicalCenter" | "TelehealthOutsideHome" | "TelehealthInHome" | "OutreachSiteOrStreet"} [data.PlaceService] - // Optional. Either "Office", "PatientsHome", "InpatHospital", "OutpatHospital", "SkilledNursFac", "CustodialCareFacility", "OtherLocation", "MobileUnit", "School", "MilitaryTreatFac", "FederalHealthCenter", "PublicHealthClinic", "RuralHealthClinic", "EmergencyRoomHospital", "AmbulatorySurgicalCenter", "TelehealthOutsideHome", "TelehealthInHome", or "OutreachSiteOrStreet". Public Health feature must be enabled. Defaults to DefaultProcedurePlaceService preference or clinic.DefaultPlaceService.
45
+ * @param {"" | "I" | "R"} [data.Prosthesis] - Optional. Either "No" (shows as ""), Initial "I", or Replacement "R". Cannot be set if procedurecode.IsProsth is false. Default is "No".
46
+ * @param {string} [data.DateOriginalProsth] - Optional. String in "yyyy-MM-dd" format. Cannot be set if procedurecode.IsProsth is false. Default is "0001-01-01"
47
+ * @param {string} [data.ClaimNote] - Optional. Note that goes out on e-claims. Default empty string.
48
+ * @param {number} [data.ClinicNum] - Optional. Defaults to the patient's clinic.
49
+ * @param {string} [data.DateTP] - Optional. The date the procedure was originally treatment planned. String in "yyyy-MM-dd" format.
50
+ * @param {string} [data.SiteNum] - Optional. FK to site.SiteNum. Public Health feature must be enabled.
51
+ * @param {string} [data.ProcTime] - Optional. Time of day the procedure started. String in "HH:mm:ss" format.
52
+ * @param {string} [data.ProcTimeEnd] - Optional. Time of day the procedure ended. Medical Insurance feature must be enabled. String in "HH:mm:ss" format.
53
+ * @param {string} [data.Prognosis] - Optional. FK to definition.DefNum where definition.Category=30.
54
+ * @param {Surf} [data.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).
36
55
  * - "B/F" (Buccal/Facial)
37
56
  * - "V" (Vestibular)
38
57
  * - "M" (Mesial)
@@ -51,28 +70,41 @@ export default class ProcedureLogs {
51
70
  * - "6" (Sextant 6)
52
71
  * - "U" (Upper Arch)
53
72
  * - "L" (Lower Arch)
54
- * @param {string} [data.ToothNum] - Optional: Tooth number.
55
- * @param {string} [data.ToothRange] - Optional: Tooth range.
56
- * @param {number} [data.Priority] - Optional: Priority code.
57
- * @param {number} [data.ProvNum] - Optional: Provider number.
58
- * @param {string} [data.Dx] - Optional: Diagnosis code.
59
- * @param {number} [data.PlannedAptNum] - Optional: Planned appointment number.
60
- * @param {number} [data.ClinicNum] - Optional: Clinic number.
73
+ * @param {string} [data.ToothNum] - Required by procCodes with a Surf or Tooth treatment area.
74
+ * @param {string} [data.ToothRange] - Required by procCodes with a ToothRange treatment area, or for Quadrants and Arches when AreaAlsoToothRange is true. A string of numbers separated by commas and/or hyphen separated ranges.
75
+ * @param {string} [data.BillingNote] - Optional. Note that shows in the Account Module. Default empty string.
76
+ * @param {number} [data.Discount] - Optional. The dollar amount of the discount. Default 0.0.
77
+ * @param {"true" | "false"} [data.IsDateProsthEst] - Optional. Either "true" or "false". Default "false".
61
78
  * @returns {Promise<ProcedureLog>} - The created procedure log.
62
79
  * @throws {Error} - If required fields are missing or the API returns an error.
63
80
  */
64
- createProcedureLog({ PatNum, ProcDate, ProcStatus, procCode, AptNum, ProcFee, Surf, ToothNum, ToothRange, Priority, priority, ProvNum, Dx, dxName, PlannedAptNum, ClinicNum, }: createProcedureLogParams): Promise<ProcedureLog>;
81
+ createProcedureLog({ PatNum, ProcDate, ProcStatus, CodeNum, procCode, AptNum, ProcFee, Priority, priority, ProvNum, Dx, dxName, PlannedAptNum, PlaceService, Prosthesis, DateOriginalProsth, ClaimNote, ClinicNum, DateTP, SiteNum, ProcTime, ProcTimeEnd, Prognosis, ToothNum, Surf, ToothRange, BillingNote, Discount, IsDateProsthEst, }: createProcedureLogParams): Promise<ProcedureLog>;
65
82
  /**
66
- * Update an existing procedure log entry.
83
+ * Updates an existing procedure. When changing procCode, the treatment area of the current and passed in procedure codes must match. Attempting to pass in empty strings for ToothNum, Surf, and ToothRange will be silently ignored. The CodeNum, procCode, Discount, ToothNum, Surf, and ToothRange fields cannot be updated on procedures with a ProcStatus of C. If the procedurelog is associated with certain appointments, claims, or orthocases, then some fields cannot be updated. Procedure code default notes will not be used.
84
+ * ProcedureLogs associated with adjustments, appointments, payments, payplancharges, or paysplits are updated exactly as in Open Dental.
67
85
  * @param {Object} data - The updated details of the procedure log.
68
86
  * @param {number} data.ProcNum - Required: The unique identifier of the procedure log to update.
69
- * @param {string} [data.ProcDate] - Optional: Updated procedure date in "yyyy-MM-dd" format.
70
- * @param {number} [data.AptNum] - Optional: Updated associated appointment number.
71
- * @param {number} [data.ProcFee] - Optional: Updated fee for the procedure.
72
- * @param {number} [data.Priority] - Optional: Updated priority code.
73
- * @param {'TP' | 'C' | 'EO'} [data.ProcStatus] - Optional: Updated procedure status.
74
- * @param {string} [data.procCode] - Optional: Updated procedure code (D code).
75
- * @param {Surf} [data.Surf] - Optional: Tooth surface or treatment area. Options include:
87
+ * @param {string} data.ProcDate - Required: Procedure date in "yyyy-MM-dd" format.
88
+ * @param {'TP' | 'C' | 'EO' | 'EC' | 'R' | 'Cn'} data.ProcStatus - Required: Either "TP" (Treatment Plan), "C" (Complete), "EC" (Existing Current Provider), "EO" (Existing Other Provider), "R" (Referred Out), "D" (Deleted), or "Cn" (Condition).
89
+ * @param {number} [data.CodeNum] - This or procCode is Required. FK to procedurecode.CodeNum.
90
+ * @param {string} [data.procCode] - This or CodeNum is Required. This should be a valid D code, example: D0120. CodeNum is set automatically.
91
+ * @param {number} [data.AptNum] - Optional. FK to appointment.PatNum.
92
+ * @param {number} [data.ProcFee] - Optional. If none is given this will default to the procedurecodes default, with consideration of the patient's insurance.
93
+ * @param {number} [data.Priority] - Optional. Definition.DefNum where definition.Category=20. Default is the first definition in that Category. If Priority is used, then priority will be set automatically.
94
+ * @param {number} [data.ProvNum] - Optional. Defaults to the PriProv of the appointment if given, otherwise it will check the patient's default provider. Failing either of the previous options, it will be set to the dental office's default provider. If ProvNum is used, then provAbbr will be set automatically.
95
+ * @param {number} [data.Dx] - Optional. Definition.DefNum where definition.Category=16. Default is the first definition in that Category. If Dx is used, then dxName will be set automatically.
96
+ * @param {number} [data.PlannedAptNum] - Optional. Only set if this procedure is on a planned appointment, otherwise it will be 0.
97
+ * @param {"Office" | "PatientsHome" | "InpatHospital" | "OutpatHospital" | "SkilledNursFac" | "CustodialCareFacility" | "OtherLocation" | "MobileUnit" | "School" | "MilitaryTreatFac" | "FederalHealthCenter" | "PublicHealthClinic" | "RuralHealthClinic" | "EmergencyRoomHospital" | "AmbulatorySurgicalCenter" | "TelehealthOutsideHome" | "TelehealthInHome" | "OutreachSiteOrStreet"} [data.PlaceService] - // Optional. Either "Office", "PatientsHome", "InpatHospital", "OutpatHospital", "SkilledNursFac", "CustodialCareFacility", "OtherLocation", "MobileUnit", "School", "MilitaryTreatFac", "FederalHealthCenter", "PublicHealthClinic", "RuralHealthClinic", "EmergencyRoomHospital", "AmbulatorySurgicalCenter", "TelehealthOutsideHome", "TelehealthInHome", or "OutreachSiteOrStreet". Public Health feature must be enabled. Defaults to DefaultProcedurePlaceService preference or clinic.DefaultPlaceService.
98
+ * @param {"" | "I" | "R"} [data.Prosthesis] - Optional. Either "No" (shows as ""), Initial "I", or Replacement "R". Cannot be set if procedurecode.IsProsth is false. Default is "No".
99
+ * @param {string} [data.DateOriginalProsth] - Optional. String in "yyyy-MM-dd" format. Cannot be set if procedurecode.IsProsth is false. Default is "0001-01-01"
100
+ * @param {string} [data.ClaimNote] - Optional. Note that goes out on e-claims. Default empty string.
101
+ * @param {number} [data.ClinicNum] - Optional. Defaults to the patient's clinic.
102
+ * @param {string} [data.DateTP] - Optional. The date the procedure was originally treatment planned. String in "yyyy-MM-dd" format.
103
+ * @param {string} [data.SiteNum] - Optional. FK to site.SiteNum. Public Health feature must be enabled.
104
+ * @param {string} [data.ProcTime] - Optional. Time of day the procedure started. String in "HH:mm:ss" format.
105
+ * @param {string} [data.ProcTimeEnd] - Optional. Time of day the procedure ended. Medical Insurance feature must be enabled. String in "HH:mm:ss" format.
106
+ * @param {string} [data.Prognosis] - Optional. FK to definition.DefNum where definition.Category=30.
107
+ * @param {Surf} [data.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).
76
108
  * - "B/F" (Buccal/Facial)
77
109
  * - "V" (Vestibular)
78
110
  * - "M" (Mesial)
@@ -91,16 +123,15 @@ export default class ProcedureLogs {
91
123
  * - "6" (Sextant 6)
92
124
  * - "U" (Upper Arch)
93
125
  * - "L" (Lower Arch)
94
- * @param {string} [data.ToothNum] - Optional: Updated tooth number.
95
- * @param {string} [data.ToothRange] - Optional: Updated tooth range.
96
- * @param {number} [data.ProvNum] - Optional: Updated provider number.
97
- * @param {string} [data.Dx] - Optional: Updated diagnosis code.
98
- * @param {number} [data.PlannedAptNum] - Optional: Updated planned appointment number.
99
- * @param {number} [data.ClinicNum] - Optional: Updated clinic number.
126
+ * @param {string} [data.ToothNum] - Required by procCodes with a Surf or Tooth treatment area.
127
+ * @param {string} [data.ToothRange] - Required by procCodes with a ToothRange treatment area, or for Quadrants and Arches when AreaAlsoToothRange is true. A string of numbers separated by commas and/or hyphen separated ranges.
128
+ * @param {string} [data.BillingNote] - Optional. Note that shows in the Account Module. Default empty string.
129
+ * @param {number} [data.Discount] - Optional. The dollar amount of the discount. Default 0.0.
130
+ * @param {"true" | "false"} [data.IsDateProsthEst] - Optional. Either "true" or "false". Default "false".
100
131
  * @returns {Promise<ProcedureLog>} - The updated procedure log.
101
132
  * @throws {Error} - If required fields are missing or the API returns an error.
102
133
  */
103
- updateProcedureLog({ ProcNum, ProcDate, AptNum, ProcFee, Priority, ProcStatus, procCode, Surf, ToothNum, ToothRange, ProvNum, Dx, PlannedAptNum, ClinicNum, }: updateProcedureLogParams): Promise<ProcedureLog>;
134
+ updateProcedureLog({ ProcNum, ProcDate, ProcStatus, CodeNum, procCode, AptNum, ProcFee, Priority, ProvNum, Dx, PlannedAptNum, PlaceService, Prosthesis, DateOriginalProsth, ClaimNote, ClinicNum, DateTP, SiteNum, ProcTime, ProcTimeEnd, Prognosis, ToothNum, Surf, ToothRange, BillingNote, Discount, IsDateProsthEst, }: updateProcedureLogParams): Promise<ProcedureLog>;
104
135
  /**
105
136
  * Delete a procedure log entry.
106
137
  * @param {number} ProcNum - Required: The unique identifier of the procedure log to delete.
@@ -1 +1 @@
1
- {"version":3,"file":"procedureLog.d.ts","sourceRoot":"","sources":["../../src/api/procedureLog.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC3B,MAAM,4BAA4B,CAAC;AAEpC,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,OAAO,CAAC,UAAU,CAAa;gBAEnB,UAAU,EAAE,UAAU;IAIlC;;;;;OAKG;IACU,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAQpE;;;;;;;;;;;QAWI;IACW,gBAAgB,CAAC,EAC5B,MAAM,EACN,MAAM,EACN,aAAa,EACb,SAAS,EACT,UAAU,EACV,MAAM,GACP,GAAE,qBAA0B,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAYzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACU,kBAAkB,CAAC,EAC9B,MAAM,EACN,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,MAAM,EACN,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,EAAE,EACF,MAAM,EACN,aAAa,EACb,SAAS,GAEV,EAAE,wBAAwB,GAAG,OAAO,CAAC,YAAY,CAAC;IAyBnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACU,kBAAkB,CAC7B,EACE,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,EACP,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,OAAO,EACP,EAAE,EACF,aAAa,EACb,SAAS,GACV,EAAE,wBAAwB,GAC1B,OAAO,CAAC,YAAY,CAAC;IAsBxB;;;;;OAKG;IACU,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/D;;;;;;;OAOG;IACU,mBAAmB,CAAC,EAC/B,MAAM,EACN,SAAS,GACV,EAAE,yBAAyB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAW1D;;;;;;;;;OASG;IACU,oBAAoB,CAAC,EAChC,MAAM,EACN,SAAS,EACT,eAAe,EACf,QAAQ,GACT,EAAE,0BAA0B,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAc1D"}
1
+ {"version":3,"file":"procedureLog.d.ts","sourceRoot":"","sources":["../../src/api/procedureLog.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC3B,MAAM,4BAA4B,CAAC;AAEpC,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,OAAO,CAAC,UAAU,CAAa;gBAEnB,UAAU,EAAE,UAAU;IAIlC;;;;;OAKG;IACU,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAQpE;;;;;;;;;;;;;QAaI;IACW,gBAAgB,CAAC,EAC5B,MAAM,EACN,MAAM,EACN,UAAU,EACV,aAAa,EACb,SAAS,EACT,OAAO,EACP,UAAU,EACV,MAAM,GACP,GAAE,qBAA0B,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAczD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACU,kBAAkB,CAAC,EAC9B,MAAM,EACN,QAAQ,EACR,UAAU,EACV,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,EAAE,EACF,MAAM,EACN,aAAa,EACb,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,MAAM,EACN,OAAO,EACP,QAAQ,EACR,WAAW,EACX,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,WAAW,EACX,QAAQ,EACR,eAAe,GAChB,EAAE,wBAAwB,GAAG,OAAO,CAAC,YAAY,CAAC;IAsCnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmDG;IACU,kBAAkB,CAC7B,EACE,OAAO,EACP,QAAQ,EACR,UAAU,EACV,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,EACP,QAAQ,EACR,OAAO,EACP,EAAE,EACF,aAAa,EACb,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,MAAM,EACN,OAAO,EACP,QAAQ,EACR,WAAW,EACX,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,WAAW,EACX,QAAQ,EACR,eAAe,GAChB,EAAE,wBAAwB,GAC1B,OAAO,CAAC,YAAY,CAAC;IAoCxB;;;;;OAKG;IACU,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/D;;;;;;;OAOG;IACU,mBAAmB,CAAC,EAC/B,MAAM,EACN,SAAS,GACV,EAAE,yBAAyB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAW1D;;;;;;;;;OASG;IACU,oBAAoB,CAAC,EAChC,MAAM,EACN,SAAS,EACT,eAAe,EACf,QAAQ,GACT,EAAE,0BAA0B,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAc1D"}
@@ -22,19 +22,23 @@ class ProcedureLogs {
22
22
  * @param {Object} params - Filtering and pagination parameters.
23
23
  * @param {number} [params.PatNum] - Get procedurelogs by PatNum
24
24
  * @param {number} [params.AptNum] - Get procedurelogs by AptNum
25
- * @param {number} [params.PlannedAptNum] - Get procedurelogs by PlannedAptNum
26
- * @param {number} [params.ClinicNum] - Get procedurelogs by ClinicNum
27
- * @param {string} [params.DateTStamp] - Get procedurelogs altered after the specified date and time
25
+ * @param {'TP' | 'C' | 'EC' | 'EO' | 'R' | 'D' | 'Cn' | 'TPi'} [params.ProcStatus] - // Either "TP" (Treatment Plan), "C" (Complete), "EC" (Existing Current Provider), "EO" (Existing Other Provider), "R" (Referred Out), "D" (Deleted), "Cn" (Condition), or "TPi" (Treatment Plan inactive).
26
+ * @param {number} [params.PlannedAptNum] - FK to appointment.AptNum where appointment.AptStatus=Planned.
27
+ * @param {number} [params.ClinicNum] - FK to clinic.ClinicNum.
28
+ * @param {number} [params.CodeNum] - FK to procedurecode.CodeNum.
29
+ * @param {string} [params.DateTStamp] - Gets procedurelogs created on or after the specified date and time. String in "yyyy-MM-dd HH:mm:ss" format.
28
30
  * @param {string} [params.Offset] - Pagination
29
31
  * @returns {Promise<ProcedureLog[]>} - A list of procedurelogs.
30
32
  * @throws {Error} - If the API returns an error.
31
33
  */
32
- async getProcedureLogs({ PatNum, AptNum, PlannedAptNum, ClinicNum, DateTStamp, Offset, } = {}) {
34
+ async getProcedureLogs({ PatNum, AptNum, ProcStatus, PlannedAptNum, ClinicNum, CodeNum, DateTStamp, Offset, } = {}) {
33
35
  return await this.httpClient.get("/procedurelogs", {
34
36
  PatNum,
35
37
  AptNum,
38
+ ProcStatus,
36
39
  PlannedAptNum,
37
40
  ClinicNum,
41
+ CodeNum,
38
42
  DateTStamp,
39
43
  Offset,
40
44
  });
@@ -44,11 +48,28 @@ class ProcedureLogs {
44
48
  * @param {Object} data - The details of the procedure log to create.
45
49
  * @param {number} data.PatNum - Required: Patient number.
46
50
  * @param {string} data.ProcDate - Required: Procedure date in "yyyy-MM-dd" format.
47
- * @param {'TP' | 'C' | 'EO'} data.ProcStatus - Required: Procedure status.
48
- * @param {string} data.procCode - Required: Procedure code (D code).
49
- * @param {number} [data.AptNum] - Optional: Associated appointment number.
50
- * @param {number} [data.ProcFee] - Optional: Fee for the procedure.
51
- * @param {Surf} [data.Surf] - Optional: Tooth surface or treatment area. Options include:
51
+ * @param {'TP' | 'C' | 'EO' | 'EC' | 'R' | 'Cn'} data.ProcStatus - Required: Either "TP" (Treatment Plan), "C" (Complete), "EC" (Existing Current Provider), "EO" (Existing Other Provider), "R" (Referred Out), "D" (Deleted), or "Cn" (Condition).
52
+ * @param {number} [data.CodeNum] - This or procCode is Required. FK to procedurecode.CodeNum.
53
+ * @param {string} [data.procCode] - This or CodeNum is Required. This should be a valid D code, example: D0120. CodeNum is set automatically.
54
+ * @param {number} [data.AptNum] - Optional. FK to appointment.PatNum.
55
+ * @param {number} [data.ProcFee] - Optional. If none is given this will default to the procedurecodes default, with consideration of the patient's insurance.
56
+ * @param {number} [data.Priority] - Optional. Definition.DefNum where definition.Category=20. Default is the first definition in that Category. If Priority is used, then priority will be set automatically.
57
+ * @param {number} [data.priority] - Optional. String version of Priority. If priority is used, then Priority will be set automatically.
58
+ * @param {number} [data.ProvNum] - Optional. Defaults to the PriProv of the appointment if given, otherwise it will check the patient's default provider. Failing either of the previous options, it will be set to the dental office's default provider. If ProvNum is used, then provAbbr will be set automatically.
59
+ * @param {number} [data.Dx] - Optional. Definition.DefNum where definition.Category=16. Default is the first definition in that Category. If Dx is used, then dxName will be set automatically.
60
+ * @param {string} [data.dxName] - Optional. String version of Dx. If dxName is used, then Dx will be set automatically.
61
+ * @param {number} [data.PlannedAptNum] - Optional. Only set if this procedure is on a planned appointment, otherwise it will be 0.
62
+ * @param {"Office" | "PatientsHome" | "InpatHospital" | "OutpatHospital" | "SkilledNursFac" | "CustodialCareFacility" | "OtherLocation" | "MobileUnit" | "School" | "MilitaryTreatFac" | "FederalHealthCenter" | "PublicHealthClinic" | "RuralHealthClinic" | "EmergencyRoomHospital" | "AmbulatorySurgicalCenter" | "TelehealthOutsideHome" | "TelehealthInHome" | "OutreachSiteOrStreet"} [data.PlaceService] - // Optional. Either "Office", "PatientsHome", "InpatHospital", "OutpatHospital", "SkilledNursFac", "CustodialCareFacility", "OtherLocation", "MobileUnit", "School", "MilitaryTreatFac", "FederalHealthCenter", "PublicHealthClinic", "RuralHealthClinic", "EmergencyRoomHospital", "AmbulatorySurgicalCenter", "TelehealthOutsideHome", "TelehealthInHome", or "OutreachSiteOrStreet". Public Health feature must be enabled. Defaults to DefaultProcedurePlaceService preference or clinic.DefaultPlaceService.
63
+ * @param {"" | "I" | "R"} [data.Prosthesis] - Optional. Either "No" (shows as ""), Initial "I", or Replacement "R". Cannot be set if procedurecode.IsProsth is false. Default is "No".
64
+ * @param {string} [data.DateOriginalProsth] - Optional. String in "yyyy-MM-dd" format. Cannot be set if procedurecode.IsProsth is false. Default is "0001-01-01"
65
+ * @param {string} [data.ClaimNote] - Optional. Note that goes out on e-claims. Default empty string.
66
+ * @param {number} [data.ClinicNum] - Optional. Defaults to the patient's clinic.
67
+ * @param {string} [data.DateTP] - Optional. The date the procedure was originally treatment planned. String in "yyyy-MM-dd" format.
68
+ * @param {string} [data.SiteNum] - Optional. FK to site.SiteNum. Public Health feature must be enabled.
69
+ * @param {string} [data.ProcTime] - Optional. Time of day the procedure started. String in "HH:mm:ss" format.
70
+ * @param {string} [data.ProcTimeEnd] - Optional. Time of day the procedure ended. Medical Insurance feature must be enabled. String in "HH:mm:ss" format.
71
+ * @param {string} [data.Prognosis] - Optional. FK to definition.DefNum where definition.Category=30.
72
+ * @param {Surf} [data.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).
52
73
  * - "B/F" (Buccal/Facial)
53
74
  * - "V" (Vestibular)
54
75
  * - "M" (Mesial)
@@ -67,52 +88,76 @@ class ProcedureLogs {
67
88
  * - "6" (Sextant 6)
68
89
  * - "U" (Upper Arch)
69
90
  * - "L" (Lower Arch)
70
- * @param {string} [data.ToothNum] - Optional: Tooth number.
71
- * @param {string} [data.ToothRange] - Optional: Tooth range.
72
- * @param {number} [data.Priority] - Optional: Priority code.
73
- * @param {number} [data.ProvNum] - Optional: Provider number.
74
- * @param {string} [data.Dx] - Optional: Diagnosis code.
75
- * @param {number} [data.PlannedAptNum] - Optional: Planned appointment number.
76
- * @param {number} [data.ClinicNum] - Optional: Clinic number.
91
+ * @param {string} [data.ToothNum] - Required by procCodes with a Surf or Tooth treatment area.
92
+ * @param {string} [data.ToothRange] - Required by procCodes with a ToothRange treatment area, or for Quadrants and Arches when AreaAlsoToothRange is true. A string of numbers separated by commas and/or hyphen separated ranges.
93
+ * @param {string} [data.BillingNote] - Optional. Note that shows in the Account Module. Default empty string.
94
+ * @param {number} [data.Discount] - Optional. The dollar amount of the discount. Default 0.0.
95
+ * @param {"true" | "false"} [data.IsDateProsthEst] - Optional. Either "true" or "false". Default "false".
77
96
  * @returns {Promise<ProcedureLog>} - The created procedure log.
78
97
  * @throws {Error} - If required fields are missing or the API returns an error.
79
98
  */
80
- async createProcedureLog({ PatNum, ProcDate, ProcStatus, procCode, AptNum, ProcFee, Surf, ToothNum, ToothRange, Priority, priority, ProvNum, Dx, dxName, PlannedAptNum, ClinicNum,
81
- //...optionalData
82
- }) {
83
- if (!PatNum || !ProcDate || !ProcStatus || !procCode) {
84
- throw new Error("Invalid data: PatNum, ProcDate, ProcStatus, and procCode are required.");
99
+ async createProcedureLog({ PatNum, ProcDate, ProcStatus, CodeNum, procCode, AptNum, ProcFee, Priority, priority, ProvNum, Dx, dxName, PlannedAptNum, PlaceService, Prosthesis, DateOriginalProsth, ClaimNote, ClinicNum, DateTP, SiteNum, ProcTime, ProcTimeEnd, Prognosis, ToothNum, Surf, ToothRange, BillingNote, Discount, IsDateProsthEst, }) {
100
+ if (!PatNum || !ProcDate || !ProcStatus || (!procCode && !CodeNum)) {
101
+ throw new Error("Invalid data: PatNum, ProcDate, ProcStatus, and either procCode or CodeNum are required.");
85
102
  }
86
103
  return this.httpClient.post("/procedurelogs", {
87
104
  PatNum,
88
105
  ProcDate,
89
106
  ProcStatus,
107
+ CodeNum,
90
108
  procCode,
91
109
  AptNum,
92
110
  ProcFee,
93
- Surf,
94
- ToothNum,
95
- ToothRange,
96
111
  Priority,
97
112
  priority,
98
113
  ProvNum,
99
114
  Dx,
100
115
  dxName,
101
116
  PlannedAptNum,
117
+ PlaceService,
118
+ Prosthesis,
119
+ DateOriginalProsth,
120
+ ClaimNote,
102
121
  ClinicNum,
122
+ DateTP,
123
+ SiteNum,
124
+ ProcTime,
125
+ ProcTimeEnd,
126
+ Prognosis,
127
+ ToothNum,
128
+ Surf,
129
+ ToothRange,
130
+ BillingNote,
131
+ Discount,
132
+ IsDateProsthEst,
103
133
  });
104
134
  }
105
135
  /**
106
- * Update an existing procedure log entry.
136
+ * Updates an existing procedure. When changing procCode, the treatment area of the current and passed in procedure codes must match. Attempting to pass in empty strings for ToothNum, Surf, and ToothRange will be silently ignored. The CodeNum, procCode, Discount, ToothNum, Surf, and ToothRange fields cannot be updated on procedures with a ProcStatus of C. If the procedurelog is associated with certain appointments, claims, or orthocases, then some fields cannot be updated. Procedure code default notes will not be used.
137
+ * ProcedureLogs associated with adjustments, appointments, payments, payplancharges, or paysplits are updated exactly as in Open Dental.
107
138
  * @param {Object} data - The updated details of the procedure log.
108
139
  * @param {number} data.ProcNum - Required: The unique identifier of the procedure log to update.
109
- * @param {string} [data.ProcDate] - Optional: Updated procedure date in "yyyy-MM-dd" format.
110
- * @param {number} [data.AptNum] - Optional: Updated associated appointment number.
111
- * @param {number} [data.ProcFee] - Optional: Updated fee for the procedure.
112
- * @param {number} [data.Priority] - Optional: Updated priority code.
113
- * @param {'TP' | 'C' | 'EO'} [data.ProcStatus] - Optional: Updated procedure status.
114
- * @param {string} [data.procCode] - Optional: Updated procedure code (D code).
115
- * @param {Surf} [data.Surf] - Optional: Tooth surface or treatment area. Options include:
140
+ * @param {string} data.ProcDate - Required: Procedure date in "yyyy-MM-dd" format.
141
+ * @param {'TP' | 'C' | 'EO' | 'EC' | 'R' | 'Cn'} data.ProcStatus - Required: Either "TP" (Treatment Plan), "C" (Complete), "EC" (Existing Current Provider), "EO" (Existing Other Provider), "R" (Referred Out), "D" (Deleted), or "Cn" (Condition).
142
+ * @param {number} [data.CodeNum] - This or procCode is Required. FK to procedurecode.CodeNum.
143
+ * @param {string} [data.procCode] - This or CodeNum is Required. This should be a valid D code, example: D0120. CodeNum is set automatically.
144
+ * @param {number} [data.AptNum] - Optional. FK to appointment.PatNum.
145
+ * @param {number} [data.ProcFee] - Optional. If none is given this will default to the procedurecodes default, with consideration of the patient's insurance.
146
+ * @param {number} [data.Priority] - Optional. Definition.DefNum where definition.Category=20. Default is the first definition in that Category. If Priority is used, then priority will be set automatically.
147
+ * @param {number} [data.ProvNum] - Optional. Defaults to the PriProv of the appointment if given, otherwise it will check the patient's default provider. Failing either of the previous options, it will be set to the dental office's default provider. If ProvNum is used, then provAbbr will be set automatically.
148
+ * @param {number} [data.Dx] - Optional. Definition.DefNum where definition.Category=16. Default is the first definition in that Category. If Dx is used, then dxName will be set automatically.
149
+ * @param {number} [data.PlannedAptNum] - Optional. Only set if this procedure is on a planned appointment, otherwise it will be 0.
150
+ * @param {"Office" | "PatientsHome" | "InpatHospital" | "OutpatHospital" | "SkilledNursFac" | "CustodialCareFacility" | "OtherLocation" | "MobileUnit" | "School" | "MilitaryTreatFac" | "FederalHealthCenter" | "PublicHealthClinic" | "RuralHealthClinic" | "EmergencyRoomHospital" | "AmbulatorySurgicalCenter" | "TelehealthOutsideHome" | "TelehealthInHome" | "OutreachSiteOrStreet"} [data.PlaceService] - // Optional. Either "Office", "PatientsHome", "InpatHospital", "OutpatHospital", "SkilledNursFac", "CustodialCareFacility", "OtherLocation", "MobileUnit", "School", "MilitaryTreatFac", "FederalHealthCenter", "PublicHealthClinic", "RuralHealthClinic", "EmergencyRoomHospital", "AmbulatorySurgicalCenter", "TelehealthOutsideHome", "TelehealthInHome", or "OutreachSiteOrStreet". Public Health feature must be enabled. Defaults to DefaultProcedurePlaceService preference or clinic.DefaultPlaceService.
151
+ * @param {"" | "I" | "R"} [data.Prosthesis] - Optional. Either "No" (shows as ""), Initial "I", or Replacement "R". Cannot be set if procedurecode.IsProsth is false. Default is "No".
152
+ * @param {string} [data.DateOriginalProsth] - Optional. String in "yyyy-MM-dd" format. Cannot be set if procedurecode.IsProsth is false. Default is "0001-01-01"
153
+ * @param {string} [data.ClaimNote] - Optional. Note that goes out on e-claims. Default empty string.
154
+ * @param {number} [data.ClinicNum] - Optional. Defaults to the patient's clinic.
155
+ * @param {string} [data.DateTP] - Optional. The date the procedure was originally treatment planned. String in "yyyy-MM-dd" format.
156
+ * @param {string} [data.SiteNum] - Optional. FK to site.SiteNum. Public Health feature must be enabled.
157
+ * @param {string} [data.ProcTime] - Optional. Time of day the procedure started. String in "HH:mm:ss" format.
158
+ * @param {string} [data.ProcTimeEnd] - Optional. Time of day the procedure ended. Medical Insurance feature must be enabled. String in "HH:mm:ss" format.
159
+ * @param {string} [data.Prognosis] - Optional. FK to definition.DefNum where definition.Category=30.
160
+ * @param {Surf} [data.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).
116
161
  * - "B/F" (Buccal/Facial)
117
162
  * - "V" (Vestibular)
118
163
  * - "M" (Mesial)
@@ -131,33 +176,46 @@ class ProcedureLogs {
131
176
  * - "6" (Sextant 6)
132
177
  * - "U" (Upper Arch)
133
178
  * - "L" (Lower Arch)
134
- * @param {string} [data.ToothNum] - Optional: Updated tooth number.
135
- * @param {string} [data.ToothRange] - Optional: Updated tooth range.
136
- * @param {number} [data.ProvNum] - Optional: Updated provider number.
137
- * @param {string} [data.Dx] - Optional: Updated diagnosis code.
138
- * @param {number} [data.PlannedAptNum] - Optional: Updated planned appointment number.
139
- * @param {number} [data.ClinicNum] - Optional: Updated clinic number.
179
+ * @param {string} [data.ToothNum] - Required by procCodes with a Surf or Tooth treatment area.
180
+ * @param {string} [data.ToothRange] - Required by procCodes with a ToothRange treatment area, or for Quadrants and Arches when AreaAlsoToothRange is true. A string of numbers separated by commas and/or hyphen separated ranges.
181
+ * @param {string} [data.BillingNote] - Optional. Note that shows in the Account Module. Default empty string.
182
+ * @param {number} [data.Discount] - Optional. The dollar amount of the discount. Default 0.0.
183
+ * @param {"true" | "false"} [data.IsDateProsthEst] - Optional. Either "true" or "false". Default "false".
140
184
  * @returns {Promise<ProcedureLog>} - The updated procedure log.
141
185
  * @throws {Error} - If required fields are missing or the API returns an error.
142
186
  */
143
- async updateProcedureLog({ ProcNum, ProcDate, AptNum, ProcFee, Priority, ProcStatus, procCode, Surf, ToothNum, ToothRange, ProvNum, Dx, PlannedAptNum, ClinicNum, }) {
187
+ async updateProcedureLog({ ProcNum, ProcDate, ProcStatus, CodeNum, procCode, AptNum, ProcFee, Priority, ProvNum, Dx, PlannedAptNum, PlaceService, Prosthesis, DateOriginalProsth, ClaimNote, ClinicNum, DateTP, SiteNum, ProcTime, ProcTimeEnd, Prognosis, ToothNum, Surf, ToothRange, BillingNote, Discount, IsDateProsthEst, }) {
144
188
  if (!ProcNum || typeof ProcNum !== "number") {
145
189
  throw new Error("Invalid parameter: ProcNum must be a valid number.");
146
190
  }
147
191
  return this.httpClient.put(`/procedurelogs/${ProcNum}`, {
192
+ ProcNum,
148
193
  ProcDate,
194
+ ProcStatus,
195
+ CodeNum,
196
+ procCode,
149
197
  AptNum,
150
198
  ProcFee,
151
199
  Priority,
152
- ProcStatus,
153
- procCode,
154
- Surf,
155
- ToothNum,
156
- ToothRange,
157
200
  ProvNum,
158
201
  Dx,
159
202
  PlannedAptNum,
203
+ PlaceService,
204
+ Prosthesis,
205
+ DateOriginalProsth,
206
+ ClaimNote,
160
207
  ClinicNum,
208
+ DateTP,
209
+ SiteNum,
210
+ ProcTime,
211
+ ProcTimeEnd,
212
+ Prognosis,
213
+ ToothNum,
214
+ Surf,
215
+ ToothRange,
216
+ BillingNote,
217
+ Discount,
218
+ IsDateProsthEst,
161
219
  });
162
220
  }
163
221
  /**