PointClickCare agent
The PointClickCare agent securely connects to your PointClickCare instance and retrieves clinical and operational data for reporting and analysis. Organizations that use PointClickCare as their clinical and operational system of record can pull facility, patient, episode, and financial data directly from their PointClickCare instance into a Prophix staging destination using Data Integration (DI)
Prophix handles authentication server-side. You never enter PointClickCare credentials in the user interface.
Note: PointClickCare is a source-only agent. You can use it only on the source side of a task; you cannot use it as a destination. Pair it with a separate destination agent, typically a staging database, to store the data.
Like all agents in Data Integration, the PointClickCare agent follows the standard three-level resource hierarchy: an Agent, a Connection, and at least one Query before you can use PointClickCare as a source in a job.
Prerequisites
Before you begin, confirm the following:
-
Your DI tenant is provisioned with a PointClickCare connection by Prophix. This is set up during onboarding.
If provisioning is outstanding, connections save successfully, but jobs fail with an authentication error. Contact Prophix Support.
-
You have access to Admin Setup in DI .
-
A staging destination agent and connection already exist in DI to serve as the job destination.
Add an agent
Adding an agent is done the same way for all agent types. For instructions, see Add an agent.
Note: Agent Type is fixed at creation. Once saved, it cannot be changed
Add a connection
To add a connection for a PointClickCare agent:
-
In the navigation panel, select Admin Setup.
-
Select the PointClickCare agent, and click > Add Connection.
-
Connection Name must be unique. Up to 40 characters.
-
Version: the integration bundle to use. Currently the only available option is Clinical & Operational, which is auto-selected when a single version is available.
Clinical & Operational provides access to facilities, patients, admissions/discharges/transfers (ADT), episode records, journal entries, and other PointClickCare REST API resources.
-
PointClickCare URL: the URL for your PointClickCare instance. Default: is https://connect2.pointclickcare.com. Change this only if your organization uses a different PointClickCare environment.
-
Click Save.
Add a query
-
Select the PointClickCare connection, and click > Add Query.
-
Query Name must be unique. Up to 40 characters.
-
Select a Query Type. Your selection determines the parameters available in the Filters table.
-
In the Filters table, complete the following:
-
Name: The parameter name. Up to 50 characters.
-
Type: The parameter's data type (text or numeric). For date values, choose text.
-
Default value: What the user sees in the Data Integration process and can edit. Up to 50 characters.
-
Sample value: What the user sees when hovering over the cell in the Data Integration process. Use it to show the expected input or format. Up to 50 characters.
-
Hide: Turn on if you want to keep users of the Data Integration process from seeing the parameter, while still using its Default value in the query.
-
-
Click Save.
Note: Changing the Query Type after filters have been set prompts a confirmation. Existing filter values are cleared and replaced with the new type's defaults.
Query types
| Query type | What it does |
|---|---|
| Generic Endpoint Call | Calls a single PointClickCare REST endpoint and pages through all results. Use for any endpoint that does not require looping by facility or patient. |
| Loop by Facility | Calls a PointClickCare REST endpoint once per facility ID in the Facility IDs filter, and accumulates results across all facilities. Use for endpoints that require a facility ID as a query parameter. |
| Loop by Patients | Calls a PointClickCare REST endpoint once per patient ID supplied at run time, and accumulates results. Use for patient-scoped endpoints. |
Generic Endpoint Call
Use the Generic Endpoint Call to call a single PointClickCare endpoint and retrieve every page of results automatically
| Filter | Required | Description |
|---|---|---|
|
path |
Yes |
The API path to call, relative to your PointClickCare instance. Enter only the path segment, for example /facs or /patients?facId=13. You can paste a full PointClickCare API URL, and the agent strips the base URL and org prefix automatically. |
| Goal | path value |
|---|---|
|
All facilities |
/facs |
|
Patients in a facility |
/patients?facId=13 |
|
GL journal entries for a facility |
/journal-entries-summary?facId=13 |
|
ADT records |
/admissions?facId=13 |
Output: Results are flattened from nested JSON to tabular rows. Nested keys become underscore-joined column names, for example address_city. Each row includes requestPath (the path used) and extractedAt (the extraction timestamp).
Tip: Run a Generic Endpoint Call with path = /facs first to retrieve your organization's full facility list and facility IDs before you build Loop by Facility queries.
Loop by Facility
Use Loop by Facility to call the same PointClickCare endpoint once per facility ID and combine the results from all facilities into a single output.
| Filter | Required | Description |
|---|---|---|
|
path |
Yes |
Same path rules as Generic Endpoint Call. Omit the ?facId=... parameter; the agent appends it automatically for each iteration. |
|
facIds |
Yes |
Comma-separated list of PointClickCare facility IDs to loop over. Example: 1,5,22 makes three separate API calls and combines all rows. To find your facility IDs, use a Generic Endpoint Call with path = /facs. |
Output: Each row includes requestPath and requestFacId (the facility ID that produced the row).
Loop by Patients
Use Loop by Patients to call the same PointClickCare endpoint once per patient ID and combine the results across all patients.
| Filter | Required | Description |
|---|---|---|
|
path |
Yes |
Same path rules as Generic Endpoint Call. The agent appends the patient ID for each patient automatically. |
Patient IDs at run time: Patient IDs are not stored in the query filter. They are read at job execution time from a shared key populated by an earlier task in the same job. If no patient IDs are available at run time, the query produces no rows.
Output: Each row includes requestPath and requestPatientId.
Use the PointClickCare source in a job
After you create the connection and query as described above, use PointClickCare (a source-only connection) as the source side of a task, paired with a staging destination.
-
In the navigation panel, select Job Definitions.
-
Configure the task:
-
Under Source, from Connection: select the PointClickCare connection that you defined.
-
From Query and Filters select the PointClickCare resources that you defined.
-
Under Destination, from Connection select the Destination connection (a staging database connection), and Destination DB Table (the target table name; that you defined in the setup phase). Choose Recreate to drop and recreate on each run, or Append to add rows to an existing table.
-
-
Click Save.
-
You can now run the job from the toolbar, or schedule it using Process Manager in your Prophix application.
Common PointClickCare API paths
| Data | path value | Type |
|---|---|---|
|
All facilities |
/facs |
Non-financial |
|
Patients in a facility |
/patients?facId=<id> |
Non-financial |
|
Active patients |
/patients?facId=<id>&status=current |
Non-financial |
|
ADT records |
/admissions?facId=<id> |
Non-financial |
|
Diagnoses |
/patients/diagnoses?facId=<id> |
Non-financial |
|
GL journal entries |
/journal-entries-summary?facId=<id> |
Financial |
|
Progress notes |
/progressNotes?facId=<id> |
Non-financial |
Note: For Loop by Facility queries, omit the ?facId=... parameter; the agent appends it automatically for each iteration. Replace <id> with the numeric facId from your PointClickCare facility list.
Scheduling non-financial data pulls:
Clinical and operational data, such as facility lists, patient records, ADT records, diagnoses, and progress notes, rarely changes from day to day. For this type of data, schedule jobs to run weekly rather than daily. This reduces unnecessary API calls and keeps run times efficient.