API ProcedureLogs

See API Specification

ProcedureLogs GET

Version Added: 21.1

Get a list of procedurelogs that meet a set of search criteria.

Parameters:

PatNum: All procedures for a single patient.
DateTStamp: Only useful if not supplying a PatNum. Only include procedurelogs with a DateTStamp altered on or after the specified date and time. This provides a good way for you to keep a synchronized copy of procedurelogs. Store serverDateTime that gets returned and use it to run the next GET.

Example Requests:
GET /procedurelogs?PatNum=261
GET /procedurelogs?DateTStamp=2020-07-30&Offset=400

Example Response:
{
"ProcNum": 1,
"PatNum": 1,
"AptNum": "0",
"ProcDate": "2021-04-01",
"ProcFee": "255.00",
"Surf": "MODL",
"ToothNum": "4",
"ToothRange": "",
"Priority": 0,
"priority": "",
"ProcStatus": "C",
"ProvNum": 1,
"provAbbr": "DOC1",
"Dx": "",
"dxName": "",
"PlannedAptNum": "0",
"ClinicNum": 0,
"CodeNum": 2,
"procCode": "D0120",
"descript": "periodic oral evaluation - established patient",
"DateTStamp":"2021-11-03 05:30:06",
"serverDateTime":"2021-11-03 09:32:45"
}

ProcedureLogs POST (create)

Version Added: 21.4

Creates a new procedure for a given patient. The following fields cannot be set as part of a POST: ProcNum, provAbbr, CodeNum, and descript. Attempts to set them will be silently ignored. Furthermore, the following pairs of fields may only have one of the two passed in at once: Priority and priority, Dx and dxName. Not all procedure codes support Surfs, ToothNums, and ToothRanges.

PatNum: Required.
ProcDate: Required. String in "yyyy-MM-dd" format.
ProcStatus: Required. Either Treatment Planned (TP) or Complete (C).
procCode: Required. This should be a valid D code, example: D0120. CodeNum is set automatically.
AptNum: Optional.
ProcFee: Optional. If none is given this will default to the procedurecodes default, with consideration of the patient's insurance.
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).
ToothNum: Required by procCodes with a Surf or Tooth treatment area.
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.
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.
priority: Optional. String version of Priority. If priority is used, then Priority will be set automatically.
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.
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.
dxName: Optional. String version of Dx. If dxName is used, then Dx will be set automatically.
PlannedAptNum: Optional. Only set if this procedure is on a planned appointment, otherwise it will be 0.
ClinicNum: Optional. Defaults to the patient's clinic.

Example Requests:
POST /procedurelogs

{
"PatNum": 31,
"ProcDate": "2021-04-28",
"ToothRange": "2,3, 13-15",
"Priority": 149,
"ProcStatus": "TP",
"dxName": "Defect (or miss fill)",
"procCode": "D1206"
}

{
"PatNum": 29,
"AptNum": 0,
"ProcDate": "2021-04-25",
"ProcFee": "125.95",
"Surf": "MO",
"ToothNum": "4",
"priority": "Low",
"ProcStatus": "TP",
"ProvNum": 1,
"Dx": 126,
"PlannedAptNum": 0,
"ClinicNum": 0,
"procCode": "D2331"
}

Example Responses:
{
"ProcNum": 301,
"PatNum": 29,
"AptNum": 0,
"ProcDate": "2021-04-25",
"ProcFee": "125.95",
"Surf": "MO",
"ToothNum": "4",
"ToothRange": "",
"Priority": 148,
"priority": "Low",
"ProcStatus": "TP",
"ProvNum": 1,
"provAbbr": "DOC 1",
"Dx": 126,
"dxName": "Cracked Tooth",
"PlannedAptNum": 0,
"ClinicNum": "0",
"CodeNum": 187,
"procCode": "D2331",
"descript": "resin-based composite - two surfaces, anterior",
"DateTStamp": "",
"serverDateTime": ""
}

400 BadRequest (Missing or invalid fields)
404 NotFound "Patient not found", "Appointment not found", "procCode not found", "Priority not found", "Dx not found"
201 Created
Header "location": https://api.opendental.com/api/v1/procedurelogs/345

ProcedureLogs POST GroupNote

Version Added: 22.2

Creates a Group Note for a set of procedures. These procedures must have the same procdate, clinic, and provider. Any repeated ProcNums will be silently ignored.

Some dental offices choose to include an aggregate of the individual procedures' notes into their Group Notes, with the new Note text appended. For more information about Group Notes see Procedure Group Note. To create a Note for a single procedure see API ProcNotes.

PatNum: Required.
ProcNums: Required. An array of ProcNums, in [1,2,3] format.
Note: Required. The text for the Group Note.

Example Request:
POST /procedurelogs/GroupNote

{
"PatNum": 52,
"ProcNums": [1470, 1472],
"Note": "Medical: no changes \r\nPt concerns: none"
}

Example Responses:
{
"PatNum": 52,
"ProcNums": [1470, 1472],
"Note": "Medical: no changes \r\nPt concerns: none"
}

201 Created
400 BadRequest (with explanation)
404 NotFound (with explanation)

ProcedureLogs PUT (update)

Version Added: 22.1

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 procCode, ToothNum, Surf, and ToothRange fields cannot be updated on procedures with a ProcStatus of C.

ProcNum: Required in URL.

AptNum: AptNum of the appointment to attach this procedure to.
ProcDate: String in "yyyy-MM-dd" format.
ProcFee: Procedure fee.
Priority: Definition.DefNum where definition.Category=20.
ProcStatus: Either Treatment Planned (TP) or Complete (C).
ProvNum: ProvNum for a provider.
Dx: Definition.DefNum where definition.Category=16.
PlannedAptNum: AptNum of a planned appointment this procedure is attached to.
ClinicNum: ClinicNum of a clinic.
procCode: ProcCode of a procedurecode entry. If passed in, the treatment area must be the same as the current procCode's.
ToothNum: Can only be updated if the treatment area of this procCode supports ToothNum.
Surf: Can only be updated if the treatment area of this procCode supports Surf.
ToothRange: Comma separated ToothNums and/or dash separated ranges of ToothNums. Can only be updated if the treatment area of this procCode supports ToothRange, whether the procCode's TreatArea is ToothRange or its 'AreaAlsoToothRange' field is true.

Example Requests:
PUT /procedurelogs/100

{
"AptNum": "1023",
"ProcDate": "2022-04-25",
"ProcFee": "250",
"Priority": "153",
"ProcStatus": "TP",
"ProvNum": "2",
"Dx": "139",
"PlannedAptNum": "0",
"ClinicNum": "2",
"ToothNum":"14",
"Surf":"MO",
"ToothRange": ""
}

{
"procCode": "D9972",
"Surf": "L",
"ToothRange":"31,30, 18-21"
}

Example Responses:
{
"ProcNum": 179,
"PatNum": 23,
"AptNum": "1023",
"ProcDate": "2022-04-25",
"ProcFee": "250.00",
"Surf": "MO",
"ToothNum": "14",
"ToothRange": "",
"Priority": 153,
"priority": "3",
"ProcStatus": "TP",
"ProvNum": 2,
"provAbbr": "HYG1",
"Dx": 139,
"dxName": "None",
"PlannedAptNum": "0",
"ClinicNum": "2",
"CodeNum": 193,
"procCode": "D2393",
"descript": "resin-based composite - three surfaces, posterior",
"DateTStamp": "2022-04-26 13:44:55",
"serverDateTime": ""
}

400 BadRequest (With explanation)
404 NotFound (With explanation)
200 OK

ProcedureLogs PUT GroupNote

Version Added: 22.2.29

Updates a specific Group Note procedure for a given patient.

For more information about Group Notes see Procedure Group Note. To update a Note for a single procedure see API ProcNotes.

PatNum: Required.
ProcNum: Required. Must be the ProcNum of a procedure with a procCode of "~GRP~".
Note: Required. The text for the Group Note.

Example Request:
PUT /procedurelogs/GroupNote

{
"PatNum": 30,
"ProcNum": 865,
"Note": "Dental exam"
}

Example Responses:
200 OK
400 BadRequest (with explanation)
404 NotFound (with explanation)

ProcedureLogs DELETE

Version Added: 22.1

Deletes a procedure. Can only delete procedures with a ProcStatus of TP or TPi. Procedures cannot be deleted if they are attached to a claim, insurance payment, patient payment, adjustment, prescription, payment plan, or dynamic payment plan. Also cannot delete a procedure if it has referrals attached, is linked to an ortho case, or if it's the last procedure from a preauthorization claim.

ProcNum: Required in the URL.

Example Request:
DELETE /procedurelogs/25

Example Responses:
200 OK
400 BadRequest (With explanation)
404 NotFound "Procedure not found."

ProcedureLogs DELETE GroupNote

Version Added: 22.3.8

Deletes a GroupNote procedure.

ProcNum: Required in the URL. Must be the ProcNum of a procedure with a procCode of "~GRP~".

Example Request:
DELETE /procedurelogs/144/GroupNote

Example Responses:
200 OK
400 BadRequest (With explanation)
404 NotFound "Procedure not found."