CareXM Home

CXM - REST APIs

We can provide simple, seamless integration tools to help your developers link your EMR or PBM (pharmacy solution) to the CXM platform. 

Using REST-like APIs, you can complete your integration in two steps:

  • Push your current patient demographics and medication profiles to CXM
  • Pull CXM charting notes back into your EMR

Our REST API examples below are formatted using JSON; however, you may also use XML if needed.

You will need an API Key for your organization in order to authenticate. Please contact your CareXM account manager to acquire one.

These APIs can be contacted up to once every 5 minutes, as needed.


Synchronize Your Patients' Demographics

Patient Care Team Upload

IMPORTANT: The PatientUpload endpoint has been replaced by PatientCareTeamUpload as of 05/13/2021 and will be deprecated later this year. End of Life date is still TBD – we will be reaching out to all clients using our REST API to assist with this transition

POST your active patient demographics using the following message template to https://webapitest01.carexm.com/PatientCareTeamUpload/{YOUR_API_KEY}

NOTE: we ask for all ACTIVE patients (those currently on service) in the initial "historical load" to synchronize our systems.  Once that has been completed, depending on the reporting capabilities of your system, you will schedule/automate the ongoing reports according to one of the following options:

    1. Scheduled BATCH messages, including all Active patients and any recently-Discharged patients (Discharge date within past 48 hours), or

    2. Scheduled BATCH messages, including newly-Active/Admitted patients, all recently-Discharged patients (Discharge date within past 48 hours), AND all recently-modified patient records, or

    3. Real-time patient/ADT message updates.

[

  { /***All fields are REQUIRED unless otherwise specified****/

   "Organization_Id": null, 

    /* OPTIONAL - Integer. This is the uniqueID for the organization within CXM. It is     only needed when one interface channel is built to cover multiple offices/sites;             message(s) need only include nomenclature or unique identifier for each office/site that     can be used to map to the appropriate organization(s) within CXM.*/

   "Internal_Id": null, 

    /* OPTIONAL - Integer. This is the CXM unique patientidentifier - new patients         added to our database will have ID created on insertion.  For existing clients of CareXM (where patients are already in CXM), patients will need to be mapped to         existing records, most likely using the patient MRN value.*/

   "EMR_Id": "", 

    /* Local EMR unique identifier (from yourEMR). If you don’t have one, you can reuse the     MRN value in this field.*/

   "MRN": "", // Medical Record Number

   "First_Name": "",

   "Last_Name": "",

   "DOB": "", // DateTime

   "SOC_Date": "", // Admit Date - DateTime

   "Discharge_Date": "", // OPTIONAL - DateTime

   "Diagnosis": "", 

    /* Icd10Code format.  Do not include diagnosis description, only the code. */

   "CodeStatus": "", // OPTIONAL - Possible Values:"None", "DNR", "Full Code"

   "Gender": "", // "M", "F","U"

   "Status": "", 

    /* Possible Values: "Admitted", "Deceased", "Discharged", "Pending", "Not on Service",       "Referral" */

   "Active": 1, 

    /* Whether the patient is archived or not. Possible Values: 1 (active; not archived), 0     (archived).  (NOTE: We ask our clients to wait to archive patients until at least 1-2        months after their discharge date, as it is extremely helpful for our nurses to              view the discharge date and any important activity history stored for that patient           should a call come in after they are discharged.)*/

   "Service_Area": "", 

    /* Possible Values: "Hospice Care", "Home Health Care", "Palliative Care / MCCM",           "Clinic / Primary Care", "Other Service", "Pediatric Hospice", "Pediatric Care",              "Unspecified"*/

   "Area_Name": "", 

    /* OPTIONAL - Text.  This is used to identify patients’ associated areas/teams, as it        relates internally to the client, if the client uses such identifiers (i.e. North            Team, South Team)*/

   "Allergies": "", // OPTIONAL

   "Notes": "", // OPTIONAL

   "Alerts": "", 

    /* OPTIONAL - Text.  Anything important regarding the patient CareXM nurses should     be aware of.*/

   "DME": "", // OPTIONAL

   "DME_phone": "", // OPTIONAL

"Contact":{

"Facility_Name": "", // OPTIONAL (if available)
"Street": "",
"City": "",
"State": "", // 2-character abbreviation
"Zip_Code": "",
"Phone": "",
"Primary_Contact_Name": "",
"Primary_Contact_Phone": "",
"Physician_Name": "",
"Physician_Phone": "",
"Pharmacy_Name": "", // OPTIONAL
"Pharmacy_Phone": "" // OPTIONAL

}, 

   /* *NOTE: The Entire CareTeamMembers Array Object is optional and can be omitted if no       case manager or other care team data is needed.*/

   "CareTeamMembers": [

       {

           "IsCaseManager": "", //Possible Values: "true", "false"

           "First_Name": "",

           "Last_Name": "",

           "Phone": "",

            /* OPTIONAL - DO NOT INCLUDE COUNTRY CODE. Special Characters OK, e.g.,                     2223334444, 222 333 4444, (222)333-4444, 222-333-4444 will all work.*/

           "Email": "", // OPTIONAL, but recommended

           "Provider_Type": "",

            /* OPTIONAL - will default to Registered Nurse if not provided. See Possible                 Provider Types below */

           "Provider_Type_Abbreviation": "", // OPTIONAL

           "NPI": "", // OPTIONAL - National Provider Identifier

           "CareTeamMemberType": ""

            /* OPTIONAL - Will default to Case Manager if not provided. See Possible                     Provider Types section for possible values. */

       }

     ]

   }

 ]

 

Possible Provider Types, Abbreviations, and Roles in a Patient's Care Team

*NOTE: Some provider types have industry accepted abbreviations that can be provided in the Provider_Type_Abbreviation instead of sending the Provider_Type field. Those are listed below. In addition, there are constraints for which Care Team Member Types a given Provider can be assigned to based on their Provider Type. ANY PROVIDER CAN BE ASSIGNED TO THE VOLUNTEER OR PRIVATE CAREGIVER ROLE.

Provider Type Abbreviation Possible Care Team Member Types
ANY PROVIDER TYPE   Volunteer, Private Caregiver
Administrative Assistant    
Administrator    
Bereavement Coordinator   Bereavement Counselor
Chaplain CHAP Spiritual Care Coordinator
Clinical Technician    
Certified Nursing Assistant CNA CNA/HHA
Dentist    
Dental Assistant    
Dental Hygienist    
Fellow    
Home Health Aide HHA CNA/HHA
IT Specialist    
LPN/LVN LPN, LVN Skilled Nurse
Medical Assistant    
Medical Director   Attending Physician, Referring Physician
Certified Nurse Midwife    
Registered Nurse (RN) RN Case Manager, Skilled Nurse
Nurse Practitioner NP Attending Physician, Referring Physician
Occupational Therapist OT Case Manager, Occupational Therapist
Office Manager    
Office Staff    
Patient Care Representative    
Pharmacist    
Physical Therapist PT Case Manager, Physical Therapist
Physician MD, DO Attending Physician, Referring Physician, Primary Care Physician
Physician Assistant PA Attending Physician, Referring Physician
Intake Specialist    
Resident    
Respiratory Therapist RT, CRT Case Manager, Respiratory Therapist
Social Worker LCSW Social Worker, Spiritual Care Coordinator
Speech Therapist   Case Manager, Speech Therapist
Spiritual Care Coordinator SCC Spiritual Care Coordinator
Technician    
Volunteer Coordninator    
Registered Dietician   Case Manager, Dietician
Volunteer    
Support Staff   Case Manager

 

*DEPRECATED* Patient Care Team Upload

NOTE: The following PatientUpload endpoint is deprecated. Please use the PatientCareTeamUpload documented above**

POST your active patient demographics using the following message template to https://webapitest01.carexm.com/patientupload/{YOUR_API_KEY}

NOTE: we ask for all ACTIVE patients (those currently on service) in the initial "historical load" to synchronize our systems.  Once that has been completed, depending on the reporting capabilities of your system, you will schedule/automate the ongoing reports according to one of the following options:

    1. Scheduled BATCH messages, including all Active patients and any recently-Discharged patients (Discharge date within past 48 hours), or

    2. Scheduled BATCH messages, including newly-Active/Admitted patients, all recently-Discharged patients (Discharge date within past 48 hours), AND all recently-modified patient records, or

    3. Real-time patient/ADT message updates.

 

[

  { /***All fields are REQUIRED unless otherwise specified****/

   "Organization_Id": null, ////OPTIONAL - Integer. This is the uniqueID for the organization within CXM . It is only needed when one interface channel is built to cover multiple offices/sites; message(s) need only include nomenclature or unique identifier for each office/site that can be used to map to the appropriate organization(s) within CXM.

   "Internal_Id": null, //Integer. This is the CXM unique patientidentifier - new patients added to our database will have ID created on insertion.  For existing clients of CareXM (where patients are already in CXM), patients will need to be mapped to existing records, most likely using the patient MRN value.

   "EMR_Id": "", //Local EMR unique identifier (from yourEMR). If you don’t have one, you can reuse the MRN value in this field.

   "MRN": "",

   "First_Name": "",

   "Last_Name": "",

   "DOB": "", //DateTime

   "SOC_Date": "", //Admit Date - DateTime

   "Discharge_Date": "", ////OPTIONAL - DateTime

   "Diagnosis": "", //Icd10Code format.  Do not include diagnosis description, only the code.

   "CodeStatus": "", ////OPTIONAL - Possible Values:"None", "DNR", "Full Code"

   "Gender": "", // "M", "F","U"

   "Status": "", //Possible Values: "Admitted", "Deceased", "Discharged", "Pending", "Not on Service", "Referral"

   "Active": 1, //Whether the patient is archived or not. Possible Values: 1 (active; not archived), 0 (archived).  (NOTE: We ask our clients to wait to archive patients until at least 1-2 months after their discharge date, as it is extremely helpful for our nurses to view the discharge date and any important activity history stored for that patient should a call come in after they are discharged.)

   "Service_Area": "", //Possible Values: "Hospice Care", "Home Health Care", "Palliative Care / MCCM", "Clinic / Primary Care", "Other Service", "Pediatric Hospice", "Pediatric Care", "Unspecified"

   "Area_Name": "" ////OPTIONAL - Text.  This is used to identify patients’ associated areas/teams, as it relates internally to the client, if the client uses such identifiers (i.e. North Team, South Team)

   "Allergies": "", ////OPTIONAL

   "Notes": "", ////OPTIONAL

   "Alerts": "", ////OPTIONAL - Text.  Anything important regarding the patient CareXM nurses should be aware of.

"Contact":{

"Facility_Name": "", ////OPTIONAL (if available)
"Street": "",
"City": "",
"State": "", //2-character abbreviation
"Zip_Code": "",
"Phone": "",
"Primary_Contact_Name": "",
"Primary_Contact_Phone": "",
"Physician_Name": "",
"Physician_Phone": "",
"Pharmacy_Name": "", ////OPTIONAL
"Pharmacy_Phone": "" ////OPTIONAL

}, 

   "DME": "", ////OPTIONAL

   "DME_phone": "", ////OPTIONAL

   "Case_Manager_First_Name": "",

   "Case_Manager_Last_Name": "",

   "Case_Manager_Phone": "", ////OPTIONAL

   "Case_Manager_Phone2": "", ////OPTIONAL

   "Case_Manager_Email": "" ////OPTIONAL

   }

 ]


Synchronize Your Patients' Medications

POST your patients' medications using the following template to 

https://webapitest01.carexm.com/MedicationsUpload/{PATIENT_EMR_ID}/{YOUR_API_KEY}/{FALSE or TRUE}

NOTE: Patient_EMR_ID (in the API link) is the value listed as patient's EMR_ID in patient message (used for mapping to appropriate patient record in our system)

Parameters in blue are optional. If nothing is provided, TRUE is assumed, as it is the least-common denominator option.

  • If FALSE is provided at the end of the above API endpoint, records will be merged if possible based on medication ID. Existing patient medications will not be removed (if no Medication_EMR_Id is provided) or discontinued (if Medication_EMR_Id is provided), unless the medication associated with that ID is updated with an appropriate 'End_Date.'
  • If TRUE is provided, records will be discontinued (with an assumed end_date) and replaced. New medication messages sent will be viewed as the "current" active medication list, and any existing medication orders listed in the system that are not included in the new message will be marked as Discontinued with TODAY() as the medication 'End_Date.'  This is recommended where no Medication_EMR_Id is provided.

[

    {

"ahtPatientID": 0 //Unique patient identifier from your EMR, must be same value used in the patient message (which may be patient's MRN); this will be used to map the medication order to the appropriate patient record in our system.

"Medication_EMR_Id": 0 ////OPTIONAL but strongly recommended; Integer - Unique medication identifier from your EMR for the medication record. If provided, a record update will be attempted with each message sent.

"Name": "",

"Dose": "",

"Route": "",

"Frequency": "",

"Indication": "",

"Start_Date": null, //Datetime field

"End_Date": null, ////OPTIONAL - Datetime field

"Covered": "", ////OPTIONAL - specific to Hospice Care; identifies if medication is covered by Hospice (i.e. Y or N)

"Ordering_MD_Name": "",

"Notes": "", ////OPTIONAL

"Generic_Name": "", ////OPTIONAL

"Special_Instructions": "" ////OPTIONAL

}

]

 

-----------------Upon successful upload, you should get a response like this:

 

"responseData": [

{

"status": 201,

"entityType": "Medication",

"message": "Successfully saved medication record",

"errorDetails": null,

"resource": {

"batchId": 1,

"externalPatientId": "88528",

"entityId": 5948583,

"name": "08/24/2021 - V4 | Airtouch F20 Mask Medium / 63001-DSA",

"isError": false

}

}

],

"metaData": {

"totalCount": 1,

"failedCount": 0,

"successCount": 1

}

}

 


Pull CXM clinical 'Nursing Notes' back into your EMR

Get charting notes from https://webapitest01.carexm.com/ActivitiesDownload/{YOUR_API_KEY}/{LeavePending}/{StartDate}/{EndDate}

Parameters in blue are optional.

  • If TRUE is provided foLeavePending, pending activities will be left on the server as pending (this is primarily for testing). You should exclude this parameter, or set it to FALSE, when used in production as this will guarantee that activities are only downloaded once.
  • If a StartDate is provided, the endpoint will return all activities (through the EndDate, if included, or through TODAY() if omitted) regardless of the notes' new/pending status.

 

[

{
"internal_Id": 0, //CXM internal activity ID
"nurse_Id": 0, //Internal CXM nurse ID
"nurse_Name": "",
"nurser_Credentials": "",
"patient_Id": 0, //CXM internal patient ID
"patient_EMR_Id": "", //Identifier for patient in your EMR (based on the patient ID that is present in your patient roster)
"patient_MRN": "", //MRN
"patient_DOB": "", //Date
"patient_First_Name": "",
"patient_Last_Name": "",
"activity_Id": 0, //CXM internal activity ID
"activity_Action_Id": 0, //CXM internal action ID
"activity_Action": "",
"call_Code": "",
"call_Code_Id": 0,
"diagnosis": "", //Icd10Code
"service_Name": "",
"formatted_Notes": "", //All charting notes
"activity_Messages": "",
"digital_Signature": "Electronically Signed By Stephanie Allen, RN",
"activity_Time": "", //DateTime
"activity_Time_String": "", //String-formatted DateTIme
"processed_Date": null, //Date that the charting notes were made available for download
"aht_Input_Date": "", //DateTime that the charting notes were input by CareXM staff
"hps_Number": "", //An optional Identifier in our system

"area_Name": ""
}

]