DEV Community

Cover image for If this is your first time integrating a dental PMS, start here
CAmador
CAmador

Posted on

If this is your first time integrating a dental PMS, start here

If you’re inheriting a messy dental-PMS stack (multiple offices, multiple record systems, no unified scheduling), this is how to set a clean foundation. This helped our clinic save months on the project due to the multi-timezone, multi-location situation.

I see a lot of clinics build this themselves and have issues when a simple update is pushed out. So I took the fast lane to just bringing everything together.

You might be working with a single dental PMS like Dentrix, Open Dental, Eaglesoft or be at the crossroads of multiples.

Create a Developer Portal Account and generate your test API key.

Once onboarded, you can start building by making requests to https://nexhealth.infoin test environment.

After creating your test API key , make a POST request to /authenticates, passing your key in the Authorization header.

The response will include a bearer token valid for one hour. Use this token to access all other API routes.

All unauthenticated requests will return a 401 status code.

curl --request POST \
     --url https://nexhealth.info/authenticates \
     --header 'Accept: application/vnd.Nexhealth+json;version=2' \
     --header 'Authorization: YOUR_API_KEY'
Enter fullscreen mode Exit fullscreen mode

Successful authentication will result in a response containing a bearer token provided in the response body:

{
    "code": true,
    "data": {
        "token": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIiwic2NwIjoiYXBpX3VzZXIiLCJpYXQiOjE2Mjg3NDMyNzksImV4cCI6MTYyODc0Njg3OSwianRpIjoiNjYxNjY4YWYtMTZkYS00OWFhLTljM2ItNmI0MDNiOTQxZWExIn0.hzbAv-Bx8vhEMXM1sGmAa9tO3WzUyvgBN8aw4tdOrG0"
    },
    "description": "Authenticated",
    "error": []
}
Enter fullscreen mode Exit fullscreen mode

Once you've received your bearer token, make sure you add the string "Bearer" to your authentication headers, as shown below.

--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIiwic2NwIjoiYXBpX3VzZXIiLCJpYXQiOjE2Mjg3NDMyNzksImV4cCI6MTYyODc0Njg3OSwianRpIjoiNjYxNjY4YWYtMTZkYS00OWFhLTljM2ItNmI0MDNiOTQxZWExIn0.hzbAv-Bx8vhEMXM1sGmAa9tO3WzUyvgBN8aw4tdOrG0'
Enter fullscreen mode Exit fullscreen mode

Below is a sample request with versioning and authorization code.

curl --request GET \
     --url 'https://nexhealth.info/patients?subdomain=YOUR_SUBDOMAIN&location_id=YOUR_LOCATION&new_patient=false&include_upcoming_appts=false&location_strict=false&page=1&per_page=1' \
     --header 'Accept: application/vnd.Nexhealth+json;version=2' \
     --header 'Authorization: Bearer YOUR_BEARER_TOKEN'
Enter fullscreen mode Exit fullscreen mode

This is the JSON response to the above request.

{
    "code": true,
    "data": {
        "patients": [{
            "id": 143776,
            "email": null,
            "first_name": "John",
            "last_name": "Smith",
            "created_at": "2020-08-12T19:17:22.575Z",
            "updated_at": "2020-08-12T19:25:17.591Z",
            "account_activated": false,
            "middle_name": null,
            "foreign_id": "19",
            "foreign_id_type": "msg-opendental-DataSource-35",
            "requested_access": false,
            "waitlisted_at": {},
            "inst_ids": [],
            "prov_ids": [],
            "config": {},
            "unsubscribe_emails": false,
            "last_import_id": "e872caee-8e2a-40dd-a403-ca7099040b8d",
            "invalid_email": [],
            "inactive": true,
            "last_sync": null,
            "last_sync_time": "2020-08-12T19:25:17.591Z",
            "unsubscribe_sms": false,
        }]
    },
    "description": [],
    "count": 35,
    "error": []
}
Enter fullscreen mode Exit fullscreen mode

Book an appointment will show you how to create appointments and start driving revenue for practices.

I built our scheduling, financial, and patient-experience tools without dealing with PMS-specific logic. If you have an AI receptionist like Dentina (a dev + dentist), this will help with call routing, chat, auto reminders and more.

Once your environment is set up, you can explore deeper workflows like booking appointments or accessing ledger data to power more advanced apps.

Ask me anything, happy to help. I do not work at NexHealth but I do know how they've helped us and feel like there are a lot folks building their own AI receptionist or duct taping things together.

If you did this as well via Synchronizer API or something else, let's hear it.

Top comments (0)