Integration Overview
Our integration with NextGen Office (NGO) is accomplished using their bulk FHIR API endpoints. These endpoints are limited in nature, which impacts how data is fetched and processed:
Bulk jobs required: To retrieve data such as allergies, encounters, and medications, we must create a patient group and run a bulk job. Thinkitive then sends data for each patient individually.
No single-patient endpoints: Most data (e.g., recent med refills, allergies) cannot be fetched for a single patient; only demographics and bulk job management are supported.
Production workflow:
Create a group of all active patients with
EmrPatientAlternateId.Run a bulk job for that group.
Thinkitive forwards data once the job completes (job duration may vary).
Data Direction & Frequency
Type | Direction | Frequency/Notes |
Demographics | NGO → CCIQ | Every 15 minutes, for patients updated since the last fetch. Initial sync requires file import; only patients with EmrAlternatePatientId can be fetched. |
Single Patient Demographics | NGO → CCIQ | It can be fetched by the chart number when manually adding a patient. EMR ID = chart number, EmrAlternatePatientId = NGO internal ID. |
Medication List | NGO → CCIQ | Bulk job runs once a week overnight. |
Allergies | NGO → CCIQ | Bulk job runs once a week overnight. Clinical status “Active”; reaction severities not included. |
Diagnosis Codes | NGO → CCIQ | Can be fetched by the chart number when manually adding a patient. EMR ID = chart number, EmrAlternatePatientId = NGO internal ID. |
Bulk Job Data Points
Data Point | Notes |
Organization | Customer info |
Practitioner Role | Provider roles |
Practitioner | Provider info |
Location | Practice locations (billing not supported) |
Document Reference | Not needed |
Goal | Not needed |
Procedure | Limited info (performedDateTime, status, text) |
Med Request | Medication request category, status, intent |
DX Code | Encounter diagnosis codes |
Service Request | Orders: status, intent, DX code, billing code, practitioner, start/end dates |
Care Team | Related person data |
Encounter | ID, status, start/end, practitioner, reason code |
Device | Device info available if patient has device; Thinkitive may not return |
Condition | DX codes (SNOmed included; ICD-10 preferred) |
Care Plan | Not needed |
Immunization | Not needed |
Related Person | Emergency contact info not usable |
Observation | Vitals |
Patient | Demographics from feed |
Allergy Intolerance | Clinical Status, Verification Status, Code, Recorded Date, Reaction List (description, onset date, severity not included) |
Notes & Considerations
Bulk job limitations: NGO FHIR endpoints only return patient internal IDs, not chart numbers. Only patients with
EmrAlternatePatientIdcan be synced.Medications & allergies: Cannot fetch single-patient data; only included in bulk job.
Diagnosis codes: ICD-10 codes require formatting correction; SNOMED codes ignored.
Vitals & device info: Observations (vitals) can be fetched. Device info is only available if the patient has a device in NGO, but Thinkitive may not return it.
Implementation recommendation: For initial patient sync, use a file import to populate
EmrAlternatePatientId.
