Access Procedure Codes

🚧

Supported EHRs

Currently, procedure codes are supported for Open Dental, Dentrix Ascend, Dentrix Enterprise, Eaglesoft, Denticon, and Dentrix.

In this guide we'll cover how to read and write procedure codes. Procedure codes are used by practices to describe what service was provided they are either CDT codes for dental or CPT codes for medical.

This guide is written with the assumption that you already have a sandbox environment set up and bearer token ready. If you don't have access request a sandbox here and if you don't have a bearer token check out our doc on authentication here.

Reading Procedure Codes

Reading procedure codes can help you more accurately understand what services were provided in a given appointment to show the value of appointments you book for the practice, or evaluate and recommend patient care options.

Procedure codes are available via our API at the location or appointment level. You can access all procedure codes available in a location with a Get request to /locations/{id}/appointment_descriptors as shown below.

Make sure to fill in your location and bearer token.

curl --request GET \
     --url https://nexhealth.info/locations/YOUR_LOCATION/appointment_descriptors \
     --header 'Accept: application/vnd.Nexhealth+json;version=2' \
     --header 'Authorization: Bearer YOUR_BEARER_TOKEN'

You should get a response similar to the one below. You can see the CDT code under code and a more display friendly name above that.

{
    "code": true,
    "description": [],
    "error": [],
    "data": [
        {
            "id": 2581,
            "descriptor_type": "Procedure Codes",
            "name": "Composite-2 Surf, Posterior",
            "code": "T5833",
            "location_id": 405,
            "foreign_id": "10:1",
            "foreign_id_type": "msg-opendental-DataSource-156",
            "data": {
                "AbbrDesc": "C2(P)",
                "ProcTime": "/X/",
                "PaintType": 6,
                "TreatArea": 1
            },
            "active": true,
            "last_sync_time": null,
            "created_at": "2022-04-19T22:57:22.860Z",
            "updated_at": "2022-04-19T22:57:22.860Z"
        },
        {
            "id": 2572,
            "descriptor_type": "Procedure Codes",
            "name": "Amalgam-1 Surf",
            "code": "T4528",
            "location_id": 405,
            "foreign_id": "1:1",
            "foreign_id_type": "msg-opendental-DataSource-156",
            "data": {
                "AbbrDesc": "A1",
                "ProcTime": "/X/",
                "PaintType": 5,
                "TreatArea": 1
            },
            "active": true,
            "last_sync_time": null,
            "created_at": "2022-04-19T22:57:22.860Z",
            "updated_at": "2022-04-19T22:57:22.860Z"
        }
      ]
}

If instead you want to see the specific procedure attached to an appointment and patient you can do that by adding "include[]=descriptors" to a Get request to /appointments as shown below.

Make sure to fill in your subdomain, appointment ID, and bearer token.

curl --request GET \
     --url 'https://nexhealth.info/appointments/YOUR_APPOINTMENT_ID?subdomain=YOUR_SUBDOMAIN&include\[\]=descriptors' \
     --header 'Accept: application/vnd.Nexhealth+json;version=2' \
     --header 'Authorization: Bearer YOUR_BEARER_TOKEN'

The appointment object you get in response will have a descriptors property with the procedures that were performed during the appointment.

"descriptors": [
      {
            "id": 2581,
            "descriptor_type": "Procedure Codes",
            "name": "Composite-2 Surf, Posterior",
            "code": "T5833",
            "location_id": 405,
            "foreign_id": "10:1",
            "foreign_id_type": "msg-opendental-DataSource-156",
            "data": {
                "AbbrDesc": "C2(P)",
                "ProcTime": "/X/",
                "PaintType": 6,
                "TreatArea": 1
            },
            "active": true,
            "last_sync_time": null,
            "created_at": "2022-04-19T22:57:22.860Z",
            "updated_at": "2022-04-19T22:57:22.860Z"
        }
    ]

Writing Procedure Codes

Writing procedure codes allows you to ensure that your booked appointments have all the information a practice needs to easily understand what services they should provide and bill insurance appropriately.

This is done by setting up an appointment type that is associated with the procedure code(s) you would like to input. Appointment types are are things like a cleaning or extraction, and can be thought of as a logical bundling of procedure codes that represent a specific kind of appointment.

To create an appointment type you make a Post request to /appointment_types as shown below. There you can declare which procedure codes should be attached to this type of appointments with the field emr_appt_descriptor_ids.

Make sure to fill in your subdomain, bearer token, and the details of your appointment type and its associated procedure code IDs in the body.

curl --request POST \
     --url 'https://nexhealth.info/appointment_types?subdomain=YOUR_SUBDOMAIN' \
     --header 'Accept: application/vnd.Nexhealth+json;version=2' \
     --header 'Authorization: Bearer YOUR_BEARER_TOKEN' \
     --header 'Content-Type: application/json' \
     --data '
{
     "appointment_type": {
          "emr_appt_descriptor_ids": [
               123456,
               123457,
               123458
          ],
          "name": "Cleaning",
          "minutes": 60,
          "parent_type": "Institution"
     }
}
'

If you already have an appointment type, you can edit it to include the associated procedure codes with the request below.

Make sure to fill in your subdomain, appointment type, bearer token, and the IDs of the procedure codes you would like attached.

curl --request PATCH \
     --url 'https://nexhealth.info/appointment_types/YOUR_TYPE?subdomain=YOUR_SUBDOMAIN' \
     --header 'Accept: application/vnd.Nexhealth+json;version=2' \
     --header 'Authorization: Bearer YOUR_BEARER_TOKEN' \
     --header 'Content-Type: application/json' \
     --data '
{
     "appointment_type": {
          "emr_appt_descriptor_ids": [
               1234545,
               123453
          ]
     }
}
'

Once you've created an appointment type all you have to do is specify the type when you create an appointment and the procedure codes will be attached to the appointment.

You do this via the appointment_type_id property.

Make sure to fill in subdomain, location, bearer token, patient, provider, operatory, and start time. If you are confused on how to create an appointment, check out our guide.

curl --request POST \
     --url 'https://nexhealth.info/appointments?subdomain=YOUR_SUBDOMAIN&location_id=YOUR_LOCATION' \
     --header 'Accept: application/vnd.Nexhealth+json;version=2' \
     --header 'Authorization: Bearer YOUR_BEARER_TOKEN' \
     --header 'Content-Type: application/json' \
     --data '
{
     "appt": {
          "patient_id": "YOUR_PATIENT",
          "provider_id": "YOUR_PROVIDER",
          "operatory_id": "YOUR_OPERATORY",
          "start_time": "YOUR_STARTTIME"
          "appointment_type_id": 12345
     }
}
'