Introduction
The Nextech Select APIs provide secure access to patient data through a RESTful implementation based on the STU 3 (3.0.1) version of the FHIR® standard. All API requests are performed over HTTPS and are protected by the OAuth 2.0 standard.
Available API functionality:
- Patient demographics
- Patient clinical information
- Create patient
- Update patient
- Patient payment posting
- Appointment information
- Confirm appointments
- Book appointment
- Slot information
- Create non-clinical patient notes
- Attach patient documents
Before you can start using our APIs, you must go through our registration process. If you're interested in API access for your practice, please contact us here. Otherwise, if you've been provided with credentials to authenticate, then continue to the Getting Started section for more information.
Getting Started
All API requests are performed over HTTPS. Although the FHIR® standard supports both JSON and XML, this API currently only supports JSON. Therefore any type explicitly defined in the request's Accept
header will be ignored.
Before you can access the Nextech API you must have the proper credentials to authenticate. These credentials will be provided to you by your Nextech representative.
These credentials will expire on your first login and must be reset through Microsoft here.
API Limitations
- Users of the Nextech API are restricted to a rate limit of 20 requests per second per endpoint
- Nextech is not responsible for the development or maintenance of any third-party application
API Endpoint
https://select.nextech-api.com/api
The following values are required in the Header for every request...
Name | Description | Required? |
---|---|---|
Authorization | Every request requires a Bearer token Bearer {access_token} |
Yes |
nx-practice-id | The unique identifier for a practice | Yes |
Rate Limiting
Rate limiting of the API is primarily on a per-user, per-endpoint basis. The default rate limit of 20 requests per second per endpoint. When a user exceeds the rate limit for a given API endpoint, the API will reject the request and return a HTTP 429 “Too Many Requests” response code. The API rate limit is subjet to change.
Handling 429 response codes
If your API user exceeds the rate limit, you will receive a HTTP 429 response code. We advise to design to handle these requests with Exponential backoff.
Best practices to avoid Rate Limiting
- The API is intended for on-demand requests for user interaction in real-time, try to avoid synchronizing data.
- Requests should be staggered as much as possible to avoid bursts of high traffic volume.
- Cache your own data when you need to store specialized values or rapidly review very large data sets.
- Query with _lastUpdated search parameters to avoid re-querying unmodified data.
- If you need to synchronize data, it is best to do so during non-peak business hours. Which vary on a per practice basis.
Authentication
Nextech's implementation of the FHIR® standard is protected by the OAuth 2.0 standard for authenticating requests. All API requests are authenticated by passing a Bearer token in the Authorization Header.
Authorization: Bearer {access_token}
Request Access Token
Access tokens are used to make API requests on behalf of a user. These tokens are short-lived (1 hour by default) but should be kept confidential in transit and in storage. A access_token
and refresh_token
pair is issued when requesting an access token.
HTTP Request
POST https://login.microsoftonline.com/nextech-api.com/oauth2/token
Parameter | Description |
---|---|
grant_type | Use password (Resource owner credentials grant) |
client_id | Application ID |
username | Resource owner username |
password | Resource owner password |
resource | The app to consume the token |
Response Parameters
Parameter | Description |
---|---|
token_type | Always Bearer |
scope | Always user_impersonation |
expires_in | The lifetime of the access token, in seconds. Default 3600 |
access_token | The bearer token used in the Authorization header for subsquent requests |
refresh_token | A long-lived token (14 days) used to renew expired access tokens without providing user credentials |
Refresh Access Token
Refresh tokens are used to renew an expired access token without providing user credentials. A access_token
and refresh_token
pair is issued when requesting an access token using the resource owner credentials grant. A new pair is also generated when using the refresh_token
grant type.
HTTP Request
POST https://login.microsoftonline.com/nextech-api.com/oauth2/token
Parameter | Description |
---|---|
grant_type | Always refresh_token |
client_id | Application ID |
refresh_token | A valid refresh token |
Response Parameters
Parameter | Description |
---|---|
token_type | Always Bearer |
scope | Always user_impersonation |
expires_in | The lifetime of the access token, in seconds. Default 3600 |
access_token | The bearer token used in the Authorization header for subsquent requests |
refresh_token | A long-lived token (14 days) used to renew expired access tokens without providing user credentials |
Using Postman
To help you get started, here's a collection of sample API requests in Postman. You can find more information on making API requests using Postman here.
Authorization
Postman makes it easy to acquire OAuth 2.0 access tokens. Use the information listed below for obtaining a token via the authorization_code
grant type. When requesting a new token, you will be redirected to the Auth URL listed below where you can enter your user credentials to authenticate.
Field | Value |
---|---|
Auth URL | https://login.microsoftonline.com/nextech-api.com/oauth2/authorize?resource=https%3A%2F%2Fselect.nextech-api.com%2Fapi |
Access Token URL | https://login.microsoftonline.com/nextech-api.com/oauth2/token |
Callback URL | https://www.getpostman.com/oauth2/callback |
Client ID | Your application ID |
Grant Type | Authorization Code |
Client Authentication | Send client credentials in body |
Searching
Searches may be performed via HTTPS calls to the API where supported.
A search is executed by performing a GET
operation in the RESTful framework
GET https://select.nextech-api.com/api/[type]?[field1][:modifier1]=[value1]&[field2][:modifier2]=[value2]...
where [type] refers to a resource such as Patient or Appointment followed by one or more query filters and optional modifiers.
- Matching is always case-insensitive and always ignores whitespace before and after the data.
- The default search attempts to match with just the start of the data.
Multiple Values on One Field
To search for a field that meets at least one of several values, each value should be specified and separated by a comma.
Example: Get patients who live in several nearby cities
GET https://select.nextech-api.com/api/Patient?address-postalcode=33609,33625,33647
Multiple Fields
To search for multiple fields that all must meet certain criteria, each field should be specified and separated by an ampersand.
Example: Get booked appointments for one day
GET https://select.nextech-api.com/api/Appointment?date=2015-03-04&status=booked
Modifiers
A modifier defines how a search match should be performed for a field. A modifier must appear after the field name with a preceeding colon followed by the modifier name.
Modifier | Description |
---|---|
exact | The value must match the data exactly |
contains | The data must contain the value |
Example: Get all patients whose last name is Smith
GET https://select.nextech-api.com/api/Patient?family:exact=Smith
Example: Get all patients whose last name contains the text "mit"
GET https://select.nextech-api.com/api/Patient?family:contains=mit
Operators
Numeric and date values can be combined with operators to search on ranges of values. The following operators are supported:
Operator | Description |
---|---|
gt | Greater Than |
ge | Greater Than or Equal to |
lt | Less Than |
le | Less Than or Equal to |
eq | Equals |
ne | Not Equal to |
Example: Get the patients with chart numbers between and including 100 and 200
GET https://select.nextech-api.com/api/Patient?identifier=ge100&identifier=le200
Example: Get appointments for the month of March 2017
GET https://select.nextech-api.com/api/Appointment?date=ge2017-03-01&date=lt2017-04-01
Search Parameter Types
String
When matching a simple text string with data, the match is always case-insensitive and always ignores whitespace before and after the data. The default search attempts to match just the start of the data, and you may use a modifier to force an exact match or a match where the data contains the string.
Example: Get all patients whose last name begins with Smith
GET https://select.nextech-api.com/api/Patient?family=Smith
Number
By default, exact matches are performed in numeric searches. You may use operators to specify a numeric range.
Example: Get the patient with chart number 3442
GET https://select.nextech-api.com/api/Patient?identifier=3442
Date
By default, exact matches are performed in date searches. You may use operators to specify a date range.
Example: Get appointments for the month of October 2016
GET https://select.nextech-api.com/api/Appointment?date=ge2016-10-01&date=lt2017-11-01
Human Name
Some resources have abstract fields which contain a first name, last name, prefix and suffix. When searching on names, each of those fields are searched individually. The way those fields are matched are consistent with how String searches work, and modifiers may be used to change how the matching works.
Example: Get the patients whose first name, last name, prefix or suffix begins with Doe
GET https://select.nextech-api.com/api/Patient?name=doe
Address
Some resources have abstract fields which contain an Address 1, Address 2, City, State and Postal Code field. When searching on address, each of these fields are searched individually. The way those fields are matched are consistent with how String searches work, and modifiers may be used to change how the matching works.
Example: Get the patients whose Address 1, Address 2, City, State or Zip code begins with 1500
GET https://select.nextech-api.com/api/Patient?address=1500
Writing
Data writes may be performed via HTTPS calls to the API where supported.
A write is executed by performing a PUT
operation in the RESTful framework
PUT https://select.nextech-api.com/api/{resource}/{identifier}
where {resource}
refers to a resource such as Patient or Appointment, {identifier}
is the unique identifier of the resource and the body of the request describes a resource and which fields to add or change. This example request path and body would confirm an appointment with the ID 3384:
Example
PUT https://select.nextech-api.com/api/Appointment/3384
{
"status": "booked"
}
Pagination
When a search results in multiple matches, the first ten matches ordered by entered date are returned by default. Included in the result are links to the first set of matches, the following set of matches, the previous set of matches and the last set of matches.
You may overide the number of matches returned, up to fifty, by including _count={number}
in your search.
GET http://select.nextech-api.com/api/Appointment?_count=25
Response Codes
The Nextech Select APIs use the standard HTTP response codes to indicate success or failure of an API request.
Code | Description |
---|---|
200 | OK - Successful request |
400 | Bad Request - The request is missing information or is malformed |
403 | Forbidden - The request is valid, but the server is refusing action |
404 | Not Found - The requested resource cannot be found |
429 | Too Many Requests - The user has sent too many requests in a given amount of time |
500 | Internal Server Error - We had a problem with our server |
Remarks
Each resource has a Remarks section at the end of its documentation page, which contains details on common questions and solutions for that resource.
Patient
Patient
Overview
The patient resource contains information about the demographics of a patient.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | The unique value assigned to each patient which discerns them from all others. It can be the patient's unique identifier or the patient's Nextech chart number. As a convenience for some use cases, in version 14.1 and above, the patient's masked social security number (last four only) is also returned in this field if available. |
Identifier | 12.6 |
race | The race of the patient | Race | 12.6 |
ethnicity | The ethnicity of the patient | Ethnicity | 12.6 |
name | Names of the patient, additional information including prefix and nickname added in version 12.9.20 | HumanName | 12.6 |
telecom | Contact details for the patient, fax, preferred contact, and other phone added 12.9.20 | ContactPoint | 12.6 |
gender | The gender of the patient | AdministrativeGender | 12.6 |
birthDate | The date of birth of the patient | date | 12.6 |
address | Addresses associated with the patient | Address | 12.6 |
communication | A list of Languages which may be used to communicate with the patient about his or her health | BackboneElement | 12.6 |
maritalStatus | The marital status of the patient | Codeable Concept | 12.9.20 |
contact | The emergency contact and employer for the patient | BackboneElement | 12.9.20 |
generalPractitioner | The practitioner at this office who is responsible for the patient | Reference | 12.9.20 |
patient-note | The text of the General 1 note for the patient, contained in the extension | string | 12.9.20 |
referral-source | The primary referral source for the patient, contained in the extension | Reference | 12.9.20 |
referring-physician | The referring physician for the patient, contained in the extension | Reference | 12.9.20 |
referring-physician.HumanName | The referring physician name, contained in the extension | HumanName | 14.3 |
referring-patient | The unique identifier for the referring patient for the patient, contained in the extension | Reference | 12.9.20 |
primary-care-physician | The primary care physician for the patient, contained in the extension | Reference | 12.9.20 |
patient-location | The default location for patient, contained in the extension | Reference | 12.9.20 |
affiliate-physician | The affiliate physician for the patient, contained in the extension | Reference | 12.9.20 |
affiliate-physician-type | The affiliate physician type for the patient, contained in the extension | string | 12.9.20 |
patient-employment-status | The employment status for the patient, contained in the extension | string | 12.9.20 |
patients-referred | The number of patients this patient has referred, contained in the extension | integer | 14.1 |
prospects-referred | The number of prospects this patient has referred, contained in the extension | integer | 14.1 |
patient-type | The patient type for the patient, contained in the extension | Reference | 14.1 |
patient-status | The status for the patient (patient, prospect, or patientprospect), contained in the extension | string | 14.1 |
exclude-from-mailings | Whether this patient is excluded from mailings, contained in the extension | boolean | 14.1 |
meta.lastUpdated | The last time the patient was modified | instant | 14.3 |
Example
{ "resourceType": "Patient", "id": "45bb641e-44c5-49a8-a36f-9dd7a0a50828", "meta": { "lastUpdated": "2018-12-20T09:13:28.297+00:00" }, "extension": [ { "url": "http://hl7.org/fhir/v3/Race", "valueCodeableConcept": { "coding": [ { "system": "http://hl7.org/fhir/v3/Race", "code": "2106-3" } ], "text": "Caucasian" } }, { "url": "http://hl7.org/fhir/v3/Ethnicity", "valueCodeableConcept": { "coding": [ { "system": "http://hl7.org/fhir/v3/Ethnicity", "code": "2186-5" } ], "text": "Not Hispanic or Latino" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/referral-source", "valueReference": { "reference": "referral-source/9238", "display": "Website" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/referring-physician", "valueReference": { "reference": "referring-physician/23", "display": "Dole, Robert" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/primary-care-physician", "valueReference": { "reference": "primary-care-physician/43", "display": "Hogan, Terry " } }, { "url": "https://select.nextech-api.com/api/structuredefinition/referring-patient", "valueReference": { "reference": "patient/f5a46423-0071-4437-aa34-231419fe970f", "display": "Brown, Phyllis" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/affiliate-physician", "valueReference": { "reference": "affiliate-physician/6845", "display": "Allen, Joan" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/affiliate-physician-type", "valueString": "postop" }, { "url": "https://select.nextech-api.com/api/structuredefinition/patient-employment-status", "valueString": "full time" }, { "url": "https://select.nextech-api.com/api/structuredefinition/patient-note", "valueString": "note text" }, { "url": "https://select.nextech-api.com/api/structuredefinition/patient-location", "valueReference": { "reference": "location/1", "display": "NexTech Dermatology" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/patients-referred", "valueInteger": 2 }, { "url": "https://select.nextech-api.com/api/structuredefinition/prospects-referred", "valueInteger": 1 }, { "url": "https://select.nextech-api.com/api/structuredefinition/patient-status", "valueString": "prospect" }, { "url": "https://select.nextech-api.com/api/structuredefinition/exclude-from-mailings", "valueBoolean": true }, { "url": "https://select.nextech-api.com/api/structuredefinition/patient-type", "valueReference": { "reference": "patient-type/2", "display": "Insurance Patient" } } ], "identifier": [ { "use": "official", "value": "45bb641e-44c5-49a8-a36f-9dd7a0a50828" }, { "use": "usual", "value": "112711" }, { "system": "http://hl7.org/fhir/sid/us-ssn", "value": "###-##-1234" } ], "name": [ { "use": "official", "text": "Mr. Gregory Brinkley Jr.", "family": "Brinkley", "given": [ "Gregory", "" ], "prefix": [ "Mr." ], "suffix": [ "Jr." ] }, { "use": "nickname", "text": "Greg", "given": [ "Greg" ] } ], "telecom": [ { "system": "email", "value": "test@abc.com" }, { "system": "phone", "value": "(813) 555-5555", "use": "home", "rank": 1 }, { "system": "phone", "value": "(813) 555-5555", "use": "work" }, { "system": "other", "value": "(813) 555-5555" }, { "system": "fax", "value": "(813) 555-5555" }, { "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/method-privacy", "valueBoolean": true } ], "system": "sms" } ], "gender": "male", "birthDate": "1970-09-28", "address": [ { "use": "home", "type": "both", "line": [ "9801 Jetson Ave", "Apt A" ], "city": "Hyattsville", "state": "MD", "postalCode": "20787", "country": "USA" } ], "maritalStatus": { "coding": [ { "system": "http://hl7.org/fhir/ValueSet/marital-status", "code": "M" } ], "text": "Married" }, "contact": [ { "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/emergency-contact-relation", "valueString": "Wife" } ], "relationship": [ { "coding": [ { "system": "http://hl7.org/fhir/v2/0131", "code": "C" } ] } ], "name": { "text": "Jane Smith", "family": "Smith", "given": [ "Jane" ] }, "telecom": [ { "system": "phone", "value": "(999)888-9999", "use": "home" }, { "system": "phone", "value": "(111)222-3333", "use": "work" } ] }, { "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/patient-occupation", "valueString": "Principal" }, { "url": "https://select.nextech-api.com/api/structuredefinition/patient-company", "valueString": "Elementary School" }, { "url": "https://select.nextech-api.com/api/structuredefinition/patient-occupation-code", "valueString": "0230" }, { "url": "https://select.nextech-api.com/api/structuredefinition/patient-industry-code", "valueString": "7890" } ], "relationship": [ { "coding": [ { "system": "http://hl7.org/fhir/v2/0131", "code": "E" } ] } ], "name": { "text": "Grace G Johnson", "family": "Johnson", "given": [ "Grace", "G" ] }, "address": { "use": "work", "type": "both", "line": [ "9821 James Ave" ], "city": "Schenectady", "state": "NY", "postalCode": "12345" } } ], "communication": [ { "language": { "coding": [ { "system": "BCP-47", "code": "en" } ], "text": "English" }, "preferred": true } ], "generalPractitioner": [ { "reference": "practitioner/9219", "display": "Jones, Robert" } ] }
Contact Information and Privacy
The telecom section contains the contact information for the patient. The example above shows the complete response based on what information is on file and which privacy settings are set. If the Privacy setting is checked then the checked fields will not be sent over the API even though the contact information is on file.
i.e The patient's work number is on file, but marked private then the telecom section will not contain the work field.
The preferred contact is also available from the API. If a preferred contact is set then it will contain a "rank":1 member in the telecom object indicating it is the preferred method. In the above example this is the home contact.
Search
Searches for all patients matching the given search criteria. See https://www.hl7.org/fhir/search.html for instructions on formatting search criteria.
HTTP Request
GET /Patient?{parameters}
Parameters
Name | Located in | Description | Required | Type | Initial Version |
---|---|---|---|---|---|
_lastUpdated | query | The date the patient was last modified formatted as yyyy-MM-dd. As of version 14.3, we also support the format yyyy-MM-ddThh:mm:ss[Z|(+|-)hh:mm] | No | dateTime | 12.8 |
family | query | The family (last) name of the patient | No | string | 12.6 |
given | query | The given (first) name of the patient | No | string | 12.6 |
birthdate | query | The patient's date of birth formatted as YYYY-MM-DD | No | dateTime | 12.6 |
phone | query | The patient's phone number which will be matched against any phone number (home, cell, etc.) | No | string | 12.6 |
query | The patient's email address | No | string | 12.6 | |
address-city | query | The city of the patient's address | No | string | 12.6 |
address-state | query | The state of the patient's address | No | string | 12.6 |
address-postalcode | query | The postal (zip) code of the patient's address | No | string | 12.6 |
identifier | query | The unique value assigned to each patient which discerns them from all others. It can be the patient's unique identifier or the patient's Nextech chart number | No | string | 12.6 |
Example: Get the patient of a specific chart number
GET https://select.nextech-api.com/api/Patient/12345
Example: Get all patients who live within a specific zip code
GET https://select.nextech-api.com/api/Patient?address-postalcode=12345
Example: Get all patients with birth dates between and including 1/1/1981 through 5/31/1981
GET https://select.nextech-api.com/api/Patient?birthdate=ge1981-01-01&birthdate=lt1981-06-01
Patient ID Search
Attempts to find a single patient that matches the given search criteria and if successful returns only that patient's unique identifier.
At least one query parameter is required to perform a search.
HTTP Request
GET /Patient/ID?{parameters}
Parameters
Name | Located in | Description | Required | Type | Initial Version |
---|---|---|---|---|---|
_lastUpdated | query | The date the patient was last modified formatted as yyyy-MM-dd. As of version 14.3, we also support the format yyyy-MM-ddThh:mm:ss[Z|(+|-)hh:mm] . Note that the + character must be URL encoded. (i.e. %2B ) |
No | dateTime | 12.8 |
family | query | The family (last) name of the patient | No | string | 12.6 |
given | query | The given (first) name of the patient | No | string | 12.6 |
birthdate | query | The patient's date of birth formatted as YYYY-MM-DD | No | dateTime | 12.6 |
phone | query | The patient's phone number which will be matched against any phone number (home, cell, etc.) | No | string | 12.6 |
query | The patient's email address | No | string | 12.6 | |
address-city | query | The city of the patient's address | No | string | 12.6 |
address-state | query | The state of the patient's address | No | string | 12.6 |
address-postalcode | query | The postal (zip) code of the patient's address | No | string | 12.6 |
identifier | query | The unique value assigned to each patient which discerns them from all others. It can be the patient's unique identifier or the patient's Nextech chart number | No | string | 12.6 |
Example: Get the unique identifier of a patient given first name, last name, and birthdate
GET https://select.nextech-api.com/api/Patient/ID?family=Smith&given=John&birthdate=eq1972-04-21
Create Patient
Create a patient.
HTTP Request
POST /Patient/
Parameters
Name | Description | Notes | Required | Initial Version |
---|---|---|---|---|
identifier | Social Security number of the patient. | Social Security Number is not returned in the response until version 14.1 when it is returned masked. | No | 12.9.20 |
name | Names of the patient. | The family, given and use elements, are required. Only one use of "official" is supported and one use of "nickname" is supported |
Yes | 12.9.20 |
telecom | Contact details for the patient. | E-mail, and one phone contact is required. One each of home, work, mobile, other, fax, email address is supported. Preferred Contact is designated by setting a rank of 1 on a contact point. Privacy fields are designated by having an extension of method-privacy set to true. You may set Text messaging privacy and preferred contact by using SMS as a system without a value. When a contact detail is set to privacy, it is not returned in the response. |
Yes | 12.9.20 |
gender | The gender of the patient | - | No | 12.9.20 |
birthDate | The date of birth of the patient | - | Yes | 12.9.20 |
address | Address associated with the patient. | Postal code is required. Only one address is currently supported. For country, only an ISO-3166 3 character code is supported. | Yes | 12.9.20 |
communication | A list of Languages which may be used to communicate with the patient about his or her health | - | No | 12.9.20 |
maritalStatus | The marital status of the patient. | A code of 'M' (married) maps to Married status in Nextech, 'U' (unmarried) and 'S' (never married) map to Single in Nextech, all others map to Other in Nextech. | No | 12.9.20 |
contact | The emergency contact and/or employer for the patient. | Only a relationship code of C for emergency contact or E for employer is supported. | No | 12.9.20 |
generalPractitioner | The practitioner at this office who is responsible for the patient | Only one generalPractitioner is currently supported. | No | 12.9.20 |
race | The race of the patient | - | No | 12.9.20 |
ethnicity | The ethnicity of the patient | - | No | 12.9.20 |
patient-note | The text of the General 1 note for the patient | - | No | 12.9.20 |
referral-source | The primary referral source for the patient | - | No | 12.9.20 |
referring-physician | The referring physician for the patient | - | No | 12.9.20 |
referring-patient | The unique identifier for the referring patient for the patient | - | No | 12.9.20 |
primary-care-physician | The primary care physician for the patient | - | No | 12.9.20 |
affiliate-physician | The affiliate physician for the patient | - | No | 12.9.20 |
affiliate-physician-type | The affiliate physician type for the patient. | Must be a value of: "preop", "postop", "preandpostop" | No | 12.9.20 |
patient-location | The default location for the patient. | Must be an active, managed location of General type. | No | 12.9.20 |
patient-employment-status | The employment status for the patient. | Must be a value of: "full time","part time", "full time student", "part time student", "retired", "other" | No | 12.9.20 |
patient-status | The status for the new record. | Must be a value of: "patient","prospect", "patientprospect" | No | 14.1 |
patient-type | The patient type for the patient. | - | No | 14.1 |
exclude-from-mailings | Whether to exclude the patient from mailings. | Must be true or false | No | 14.1 |
Prior to version 14.1, whether the patient is created as a patient, or a prospect is controlled by the Default Status preference in Nextech found under Tools->Preferences->Patients Module->New Patients->Default Status Preference. As of version 14.1 the patient status may be specified in the patient-status extension. If not specified, the preference is used.
Before creating a patient, the system will check the required fields (first, last, email address, birthdate, zip code, and one of home, work, or mobile phone numbers, to see if they match existing patients. If a match is found, the patient will not be created and a 409 Conflict with a message indicating the patient already exists.
Example: Create a new patient with minimum information
{ "resourceType": "Patient", "name": [ { "use": "official", "family": "Brimley", "given": [ "Henry" ] } ], "telecom": [ { "system": "phone", "value": "(518)929-8978", "use": "home" }, { "system": "email", "value": "test@test.com" } ], "birthDate": "1970-09-28", "address": [ { "use": "home", "postalCode": "20787" } ] }
Example: Create a new patient with all currently supported options
{ "resourceType": "Patient", "extension": [ { "url": "http://hl7.org/fhir/v3/Race", "valueCodeableConcept": { "coding": [ { "system": "http://hl7.org/fhir/v3/Race", "code": "2106-3" } ] } }, { "url": "http://hl7.org/fhir/v3/Ethnicity", "valueCodeableConcept": { "coding": [ { "system": "http://hl7.org/fhir/v3/Ethnicity", "code": "2186-5" } ] } }, { "url": "https://select.nextech-api.com/api/structuredefinition/referral-source", "valueReference": { "reference": "referral-source/9238" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/referring-physician", "valueReference": { "reference": "referring-physician/23" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/primary-care-physician", "valueReference": { "reference": "primary-care-physician/123" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/referring-patient", "valueReference": { "reference": "patient/F4B46423-0071-4127-BD44-231419FE980F" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/patient-location", "valueReference": { "reference": "location/1" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/patient-note", "valueString": "note text" }, { "url": "https://select.nextech-api.com/api/structuredefinition/affiliate-physician", "valueReference": { "reference": "affiliate-physician/62345" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/affiliate-physician-type", "valueString": "postop" }, { "url": "https://select.nextech-api.com/api/structuredefinition/patient-employment-status", "valueString": "full time student" }, { "url": "https://select.nextech-api.com/api/structuredefinition/patient-status", "valueString": "prospect" }, { "url": "https://select.nextech-api.com/api/structuredefinition/exclude-from-mailings", "valueBoolean": true }, { "url": "https://select.nextech-api.com/api/structuredefinition/patient-type", "valueReference": { "reference": "patient-type/2" } } ], "name": [ { "family": "Brinkley", "use":"official", "given": [ "Gregory" ], "prefix" : [ "Mr." ], "suffix" : [ "Jr." ] }, { "use" : "nickname", "given": [ "Greg" ] } ], "telecom": [ { "system": "phone", "value": "(311)211-8888", "use": "home", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/method-privacy", "valueBoolean": "true" } ] }, { "system": "phone", "value": "(411)941-0786", "use": "mobile", "rank": "1" }, { "system": "phone", "value": "(111)332-1232", "use" : "work" }, { "system": "email", "value": "abcde@test.com" }, { "system": "other", "value": "(555)234-1233" }, { "system": "fax", "value": "(111)332-1232" }, { "system": "sms", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/method-privacy", "valueBoolean": "true" } ] } ], "identifier": [ { "type": { "coding": [ { "system": "http://hl7.org/fhir/v2/0203", "code": "SS" } ] }, "system": "http://hl7.org/fhir/sid/us-ssn", "value": "123456789" } ], "gender": "male", "maritalstatus": { "coding": [ { "system": "http://hl7.org/fhir/ValueSet/marital-status", "code": "M" } ], "text": "Married" }, "generalPractitioner" : { "reference": "practitioner/9219" }, "birthDate": "1970-09-28", "address": [ { "use": "home", "type": "both", "line": [ "9801 Jetson Ave", "Apt A" ], "city": "Hyattsville", "state": "MD", "postalCode": "20787", "country":"USA" } ], "communication": [ { "language": { "coding": [ { "system": "BCP-47", "code": "en" } ] }, "preferred": true } ], "contact": [ { "relationship": [ { "coding": [ { "system": "http://hl7.org/fhir/v2/0131", "code": "C" } ] } ], "name": [ { "text": "Sally Smith", "family": "Smith", "given": [ "Sally" ] } ], "telecom": [ { "system": "phone", "value": "(999)888-9999", "use": "home" }, { "system": "phone", "value": "(111)222-3333", "use": "work" } ], "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/emergency-contact-relation", "valueString": "Wife" } ] }, { "relationship": [ { "coding": [ { "system": "http://hl7.org/fhir/v2/0131", "code": "E" } ] } ], "name": [ { "family": "Jenkins", "given": [ "George", "G" ] } ], "address": [ { "use": "work", "type": "both", "line": [ "9821 James Ave" ], "city": "Schenectady", "state": "NY", "postalCode": "12345" } ], "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/patient-occupation", "valueString": "Teacher" }, { "url": "https://select.nextech-api.com/api/structuredefinition/patient-company", "valueString": "Williams High School" }, { "url": "https://select.nextech-api.com/api/structuredefinition/patient-occupation-code", "valueString": "0230" }, { "url": "https://select.nextech-api.com/api/structuredefinition/patient-industry-code", "valueString": "7890" } ] } ] }
Update Patient
Update a patient.
HTTP Request
PUT /Patient/
Parameters
Name | Description | Required | Initial Version |
---|---|---|---|
FHIR Patient object | The full patient FHIR object is accepted in the body. | Yes | 14.0 |
All patient related fields can be updated, except for the below exceptions. If a field is updated with an invalid value (e.g. updating the country with a country code of JGU) the result of the update will be a success but the field will not be updated.
Field Update Exceptions: * Patient Name cannot be updated and will be ignored. * Date of Birth cannot be updated and will be ignored. * Postal Code cannot be updated prior to version 14.1. On version 14.1 and after postal code can be updated, but it cannot be cleared. * Social Security Number cannot be updated prior to version 14.1. On version 14.1 and after social security number can be changed, but it cannot be cleared. * Patients Referred cannot be updated. * Prospects Referred cannot be updated. * Preferred Contact method can be updated but not cleared out.
For identifier fields, a use type is required. A use type of "official" must be used when including the patient's unique identifier. A use type of "usual" must be used when including the patient's chart number.
Example: Update a patient's home number
{ "resourceType": "Patient", "identifier": [ { "use": "official", "value": "f4a46423-0071-4127-bd34-231419fe970f" } ], "telecom": [ { "system": "phone", "value": "(813) 217-4571", "use": "home" } ] }
Remarks
- The generalPractitioner field will not be returned if the provider is not listed in the Practitioner resource. A provider is not returned as a Practitioner unless their Contacts module record has the Linked User setting configured.
- Prior to version 14.1, Practitioners could be returned more than once if multiple users are assigned to use the same provider in their Contacts module User properties. This would cause patients to be duplicated if their generalPractitioner is returned multiple times in the Practitioner resource.
Allergy Intolerance
Overview
The allergy intolerance resource describes the risk of undesirable responses of exposure to a substance.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | The unique value assigned to each allergy intolerance record which discerns them from all others. | Identifier | 12.6 |
clinicalStatus | Describes whether the allergy or intolerance is active, inactive or resolved | AllergyIntoleranceStatus | 12.6 |
code | The clinical code that identifies the allergy or intolerance | CodeableConcept | 12.6 |
patient | The patient who the allergy or intolerance is for | Reference(Patient) | 12.6 |
assertedDate | The date the record was believed to be accurate | dateTime | 12.6 |
Example
{ "resourceType": "Bundle", "entry": [ { "resource": { "resourceType": "AllergyIntolerance", "id": "438", "identifier": [ { "use": "official", "value": "438" } ], "clinicalStatus": "active", "code": { "coding": [ { "system": "http://www.nlm.nih.gov/research/umls/rxnorm", "code": "1191", "display": "Aspirin" } ], "text": "Aspirin" } } } ] }
Search
Searches for allergy intolerances for a single patient
HTTP Request
GET /Patient/{patientUid}/AllergyIntolerance?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
patientUid | path | The official patient identifier acquired from a patient search | Yes | 12.6 |
date | query | The date the record was believed accurate in the form YYYY-MM-DD | No | 12.6 |
Example: Get all allergies for a single patient that were believed to be accurate as of 1/1/2017
GET https://select.nextech-api.com/api/Patient/ad2085b5-b974-401d-bfcb-3b865109fd35/AllergyIntolerance?date=ge2017-01-01
Binary
Overview
Binary resources contain patient health information in a structured document or media form.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
contentType | MimeType of the binary content | MimeType | 12.6 |
content | The document content | base64Binary | 12.6 |
Generate CCDA
Generates a CCDA for a single patient
HTTP Request
GET /Patient/{patientUid}/Binary/$autogen-ccd-if?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
patientUid | path | The official patient identifier acquired from a patient search | Yes | 12.6 |
start | query | The start date in the form YYYY-MM-DD for which the CCD should be generated (if not specified then all records starting with the patient's first visit are included) | No | 12.6 |
end | query | The end date in the form YYYY-MM-DD for which the CCD should be generated (if not specified then all records through the patient's latest visit are included) | No | 12.6 |
Example: Get all CCDA's for a single patient corresponding to visits in 2007
GET https://select.nextech-api.com/api/Patient/ad2085b5-b974-401d-bfcb-3b865109fd35/Binary/$autogen-ccd-if?start=2017-01-01&end=2018-01-01
Care Plan
Overview
A Care Plan contains patient diet, procedure, lab work and counseling and other care information for a single patient.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | The unique value assigned to each care plan which discerns them from all others. | Identifier | 12.6 |
subject | The patient pertaining to the care plan | Reference(Patient) | 12.6 |
activity | The collection of coded care plan actions | BackboneElement | 12.6 |
Example
{ "resourceType": "Bundle", "entry": [ { "resource": { "resourceType": "CarePlan", "id": "3099", "identifier": [ { "use": "official", "value": "3099" } ], "subject": { "reference": "Patient/ad2085b5-b974-401d-bfcb-3b865109fd35" }, "activity": [ { "id": "pocinsemn-3099code-745799", "detail": { "code": { "coding": [ { "system": "2.16.840.1.113883.10.20.22.4.20", "code": "225323000" } ], "text": "Smoking cessation education" }, "description": "Patient to read literature on lung tissue damage" } } ] } } ] }
Search
Searches for care plans for a single patient
HTTP Request
GET /Patient/{patientUid}/CarePlan?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
patientUid | path | The official patient identifier acquired from a patient search | Yes | 12.6 |
date | query | The encounter visit date filter in the form YYYY-MM-DD | No | 12.6 |
Example: Get all care plans for a single patient charted on a visit on 5/1/2017
GET https://select.nextech-api.com/api/Patient/ad2085b5-b974-401d-bfcb-3b865109fd35/CarePlan?date=eq2017-05-01
Clinical Impression
Overview
The clinical impression resource contains information regarding what problem(s) may affect the patient by treatment.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | The unique value assigned to each clinical impression record which discerns them from all others. | Identifier | 12.6 |
subject | The patient pertaining to the clinical impression | Reference(Patient) | 12.6 |
date | When the assessment was documented | dateTime | 12.6 |
summary | Summary of the assessment | string | 12.6 |
Example
{ "resourceType": "Bundle", "entry": [ { "resource": { "resourceType": "ClinicalImpression", "id": "4567", "identifier": [ { "use": "official", "value": "4567" } ], "subject": { "reference": "Patient/ad2085b5-b974-401d-bfcb-3b865109fd35" }, "summary": "provisional diagnoses of laceration of head", "date": "2017-06-05" } } ] }
Search
Searches for clinical impressions for a patient
HTTP Request
GET /Patient/{patientUid}/ClinicalImpression?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
patientUid | path | The official patient identifier acquired from a patient search | Yes | 12.6 |
date | query | The collection of visit date filters | No | 12.6 |
Example: Get all clinical impressions for a single patient charted on a visit on 5/1/2017
GET https://select.nextech-api.com/api/Patient/ad2085b5-b974-401d-bfcb-3b865109fd35/ClinicalImpression?date=eq2017-05-01
Composition
Overview
The Composition resource defines a collection of healthcare-related information bundled together as a single document that provides meaning for a given patient.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | The unique identifier assigned to each composition | Identifier | 12.7 |
extension | See flag-priority extension | CodableConcept | 12.7 |
subject | The patient pertaining to the composition | Reference(Patient) | 12.7 |
date | The date of the composition (in UTC) | dateTime | 12.7 |
author | Identifies who is responsible for the information in the composition | Reference(Practitioner) | 12.7 |
section.title | The name of the Nextech note category | string | 12.7 |
section.text | The contents of the composition | Narrative | 12.7 |
Example
{ "resourceType": "Bundle", "type": "document", "total": 1, "entry": [ { "resource": { "resourceType": "Composition", "id": "218", "contained": [ { "resourceType": "Practitioner", "id": "6763", "identifier": [ { "use": "official", "value": "6763" } ], "name": [ { "text": "API User", "family": "API User", "given": [ "", "" ] } ] } ], "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/flag-priority", "valueCodeableConcept": { "coding": [ { "system": "http://hl7.org/fhir/flag-priority-code", "code": "PM", "display": "Medium priority" } ] } } ], "identifier": { "use": "official", "value": "218" }, "subject": { "reference": "Patient/05df1439-c610-4840-a569-8afbca008705", "display": "Smith, John" }, "date": "2017-10-16T20:32:28.97Z", "author": [ { "reference": "#6763", "display": "API User" } ], "section": [ { "title": "", "text": { "div": "API user - This is an example non-clinical patient note." } } ] } } ] }
Create
Creates a non-clinical note for a patient that is visible in the patient's Notes tab in the Nextech software.
HTTP Request
POST /Patient/{patientUid}/Composition
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
patientUid | path | The official patient identifier acquired from a patient search | Yes | 12.7 |
composition | body | Represents the Composition resource to create for the given patient |
Yes | 12.7 |
Body Fields
Name | Description | Required | Initial Version |
---|---|---|---|
resourceType | Must be Composition |
Yes | 12.7 |
extension | Must use http://hl7.org/fhir/StructureDefinition/flag-priority extension to specify the priority of the composition. See example below for specific format. Default priority code is PL |
No | 12.7 |
date | The date (in UTC) of the composition. ie. 2017-10-16T20:32:28.9692476Z |
No | 12.7 |
author.display | The name of the author. This will be appended to the beginning of the section.text.div value. |
No | 12.7 |
section.title | The name of the Nextech note category. This must match with an existing note category or is left blank. | No | 12.7 |
section.text.div | The non-clinical note associated with the subject. | No | 12.7 |
Example: Create a new non-clinical note for a patient
POST https://select.nextech-api.com/api/Patient/ad2085b5-b974-401d-bfcb-3b865109fd35/Composition
Body
{ "resourceType": "Composition", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/flag-priority", "valueCodeableConcept": { "coding": [ { "system": "http://hl7.org/fhir/flag-priority-code", "code": "PM" } ] } } ], "date": "2017-10-16T20:32:28.9692476Z", "author": [ { "display": "API user" } ], "section": [ { "title": "Follow Up", "text": { "div": "This is an example of a non-clinical patient note." } } ] }
Condition
Overview
The condition resource describes a certain state of health of a patient.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | The unique value assigned to each allergy intolerance record which discerns them from all others. | Identifier | 16.9 |
clinicalStatus | The condition status | Condition Clinical Status Code | 16.9 |
verificationStatus | The condition verification status | ConditionVerificationstatus | 16.9 |
code | Identification of the condition, problem or diagnosis | Condition/Problem/Diagnosis Code | 16.9 |
subject | The patient pertaining to the condition | Reference(Patient) | 16.9 |
onsetDate | Estimated or actual date | dateTime | 16.9 |
abatementDate | Resolution or remission date | dateTime | 16.9 |
Example
{ "resourceType": "Bundle", "entry": [ { "resource": { "resourceType": "Condition", "id": "54", "identifier": [ { "use": "official", "value": "54" } ], "clinicalStatus": "active", "verificationStatus": "confirmed", "code": { "coding": [ { "system": "SNOMED", "code": "11381005" } ], "text": "Acne" }, "subject": { "reference": "Patient/ad2085b5-b974-401d-bfcb-3b865109fd35" }, "onsetDate": "2015-06-05" } } ] }
Search
Searches for conditions for a single patient
HTTP Request
GET /Patient/{patientUid}/Condition?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
patientUid | path | The official patient identifier acquired from a patient search | Yes | 16.9 |
onset-date | query | The onset date in the form YYYY-MM-DD | No | 16.9 |
abatement-date | query | The abatement date in the form YYYY-MM-DD | No | 16.9 |
_lastUpdated | query or payload | The date the condition was last modified, formatted as OOXXXXX where OO is an operator and XXXXX is a date in the form YYYY-MM-DD. | No | 16.9 |
_revinclude | query or payload | Must be Provenance:target . This enables requesting additional Provenance resources that relate to each condition |
No | 16.9 |
Retrieve Provenance with conditions
The _revinclude
parameter allows support for including Provenance references that match the returned conditions.
This value must be Provenance:target
, otherwise the request will result in an error.
These will be in additional bundle entry components, which have a Provenance.Target
entry that identifies the relative link to the condition.
Example: Get all conditions for a single patient with an onset date as of 1/1/2017
GET https://select.nextech-api.com/api/Patient/ad2085b5-b974-401d-bfcb-3b865109fd35/Condition?onset-date=ge2017-01-01
Device
Overview
The device resource identifies an instance or type of manufactured item used in the provision of healthcare.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | Unique device serial number | Identifier | 12.6 |
meta | Contains the last updated date of the record | dateTime | 12.6 |
udi | Unique device barcode string | BackboneElement | 12.6 |
lotNumber | Lot number of manufacturer | string | 12.6 |
manufacturer | Manufacturer name | string | 12.6 |
manufactureDate | Device manufacture date | dateTime | 12.6 |
expirationDate | Device expiration date | dateTime | 12.6 |
version | Version number | string | 12.6 |
patient | The patient pertaining to the device | Reference(Patient) | 12.6 |
Example
{ "resourceType": "Bundle", "entry": [ { "resource": { "resourceType": "Device", "id": "2", "meta": { "lastUpdated": "2017-05-15T10:28:00+00:00" }, "identifier": [ { "type": { "coding": [ { "system": "http://hl7.org/fhir/identifier-type", "code": "SNO", "display": "Serial Number" } ], "text": "Serial Number" }, "value": "000025" } ], "udi": { "deviceIdentifier": "W4146EB0010T0475", "name": "Trabexus® EB" }, "type": { "text": "Cadaveric-donor/synthetic mineral bone graft" }, "lotNumber": "000000000000XYZ123", "manufacturer": "Vivorte, Inc", "manufactureDate": "2013-02-01T00:00:00Z", "expirationDate": "2014-02-01T00:00:00Z", "version": "10 cc", "patient": { "reference": "Patient/ad2085b5-b974-401d-bfcb-3b865109fd35", "display": "Smith, John" } } } ] }
Search
Searches for devices for a single patient
HTTP Request
GET /Patient/{patientUid}/Device?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
patientUid | path | The official patient identifier acquired from a patient search | Yes | 12.6 |
date | query | The device last update date in the form YYYY-MM-DD | No | 12.6 |
Example: Get all devices for a single patient that were recorded as of 1/1/2017
GET https://select.nextech-api.com/api/Patient/ad2085b5-b974-401d-bfcb-3b865109fd35/Device?date=ge2017-01-01
Document Reference
Overview
The DocumentReference resource is used to describe a document that is made available to a healthcare system. A document is some sequence of bytes that is identifiable, establishes its own context (e.g., what subject, author, etc. can be displayed to the user), and has defined update management. The DocumentReference resource can be used with any document format that has a recognized mime type and that conforms to this definition.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
masteridentifier | The unique identifier assigned to each documentreference | Identifier | 12.7 |
subject | The patient pertaining to the documentreference | Reference(Patient) | 12.7 |
created | document creation time (in UTC) | dateTime | 12.7 |
author | Identifies who is responsible for the information in the document reference | Reference(Practitioner) | 12.7 |
description | The description of the documentreference | string | 12.7 |
content.attachment.contentType | The mimetype of the content. | Code | 12.7 |
content.attachment.title | The title of the document | string | 12.7 |
extension: note-category | Contains the category of the document | string | 12.8 |
extension: document-publish-portal | Contains whether the document is published to myPatientVisit | boolean | 12.9.20 |
Example
{ "resourceType": "DocumentReference", "id": "8529", "masterIdentifier": { "use": "official", "value": "8529" }, "subject": { "reference": "Patient/22b51855-0fe2-47a3-8000-4344b4e8e69d", "display": "Dateline, Martha R" }, "created": "2017-10-24T20:10:36Z", "author": [ { "reference": "", "display": "nexweb" } ], "description": "Author: API user \r\n Note: A description of the document", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/note-category", "valueString": "Past Medical History" }, { "url": "https://select.nextech-api.com/api/structuredefinition/document-publish-portal", "valueBoolean": true } ], "content": [ { "attachment": { "contentType": "application/pdf", "title": "Document Title.pdf" } } ] }
Create
Creates the document in the content.attachment for a patient and attaches it to the patient's history tab in the Nextech software.
HTTP Request
POST /Patient/{patientUid}/DocumentReference
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
patientUid | path | The official patient identifier acquired from a patient search | Yes | 12.7 |
documentreference | body | Represents the DocumentReference resource to create for the given patient. The request length must not exceed 10 MB in size. |
Yes | 12.7 |
Body Fields
Name | Description | Required | Initial Version |
---|---|---|---|
resourceType | Must be DocumentReference |
Yes | |
created | The date (in UTC) of the composition. ie. 2017-10-16T20:32:28.9692476Z |
No | 12.7 |
author.display | The name of the author. This will be appended to the beginning of the description value. | No | 12.7 |
description | A description of the document | No | 12.7 |
content.attachment.contentType | The mimetype of the document. See Allowed Mimetypes below | Yes | 12.7 |
content.attachment.data | The base64 data of the document | Yes | 12.7 |
content.attachment.title | The title of the document, will be used as the filename | Yes | 12.7 |
extension: note-category | Allows setting category of the document | No | 12.8 |
extension: document-publish-portal | Allows setting whether or not to publish the document to myPatientVisit. Note: Must be licensed for myPatientVisit and have permission to publish EMNs to MPV to work | No | 12.9.20 |
Extension: note-category
This is a custom extension to allow the setting of the category on the document. This must match with an existing note category or is left blank. There can be only one note-category extension.
Url: https://select.nextech-api.com/api/structuredefinition/note-category valueString: Name of Nextech note category
Extension: document-publish-portal
This is a custom extension to allow publishing of a document to myPatientVisit. The client must be licensed for myPatientVisit and the caller must have permission to publish EMNs to MPV, otherwise the document will not be published. There can be only one document-publish-portal extension. If this extension is not included in the POST, the document is not published to myPatientVisit.
Url: https://select.nextech-api.com/api/structuredefinition/document-publish-portal valueBoolean: true or false
Example: Attach a new document for a patient
POST https://select.nextech-api.com/api/Patient/ad2085b5-b974-401d-bfcb-3b865109fd35/DocumentReference
Body
{ "resourceType": "DocumentReference", "author": [ { "display": "API user" } ], "created": "2017-10-16T20:32:28.9692476Z", "description": "A description of the document", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/note-category", "valueString": "Past Medical History" }, { "url": "https://select.nextech-api.com/api/structuredefinition/document-publish-portal", "valueBoolean": "true" } ], "content": [ { "attachment": { "contentType": "text/plain", "title": "Sample Document", "data": "c2FtcGxlIGRvY3VtZW50" } } ] }
Allowed Mimetypes
The following mimetypes are currently supported:
Document Type | MimeType |
---|---|
application/pdf | |
Microsoft Word | application/msword |
Microsoft Excel | application/vnd.ms-excel or application/vnd.ms-excel.12 |
Tif Image files | application/tif, application/tiff, or image/tiff |
HTML | text/html |
Text | text/plain |
XML | text/xml |
BMP Image | image/bmp |
GIF Image | image/gif |
JPG Image | image/jpeg |
PNG Image | image/png or image/x-png |
Encounter
Overview
The encounter resource describes an interaction between a patient and healthcare provider.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | The unique value assigned to each encounter which discerns them from all others. | Identifier | 12.6 |
subject | The patient pertaining to the encounter | Reference(Patient) | 12.6 |
participant | The medical professionals involved in the encounter | BackboneElement | 12.6 |
period | The start and end date of the encounter in the form YYYY-MM-DD | period | 12.6 |
Example
{ "resourceType": "Bundle", "entry": [ { "resource": { "resourceType": "Encounter", "id": "1294", "contained": [ { "resourceType": "Practitioner", "id": "9938", "identifier": [ { "use": "usual", "system": "http://hl7.org/fhir/sid/us-npi", "value": "11192383741" } ], "name": [ { "text": "Davison, Darren", "family": "Davison", "given": [ "Darren", "L" ] } ] } ], "identifier": [ { "use": "official", "value": "1294" } ], "subject": { "reference": "Patient/45822", "display": "Smith, John" }, "participant": [ { "type": [ { "coding": [ { "system": "http://hl7.org/fhir/v3/ParticipationType", "code": "PRF" } ] } ], "individual": { "reference": "Practitioner/9938" } } ], "period": { "start": "2015-05-03", "end": "2015-05-03" } } } ] }
Search
Searches for encounters for a single patient
HTTP Request
GET /Patient/{patientUid}/Encounter?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
patientUid | path | The official patient identifier acquired from a patient search | Yes | 12.6 |
date | query | The date of the encounter in the form YYYY-MM-DD | No | 12.6 |
Example: Get all encounters for a single patient as of 1/1/2017
GET https://select.nextech-api.com/api/Patient/ad2085b5-b974-401d-bfcb-3b865109fd35/Encounter?date=ge2017-01-01
Goal
Overview
The goal resource describes a desired state of health for a patient.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | The unique value assigned to each goal which discerns them from all others. | Identifier | 12.6 |
subject | The patient pertaining to the goal | Reference(Patient) | 12.6 |
target | The target outcome of the goal | CodeableConcept | 12.6 |
note | Comments about the goal | Annotation | 12.6 |
Example
{ "resourceType": "Bundle", "entry": [ { "resource": { "resourceType": "Goal", "id": "goalemn-2284code-559215", "identifier": [ { "use": "official", "value": "goalemn-2284code-559215" } ], "subject": { "reference": "Patient/F15FB185-5E63-485E-B025-D113103DCEC3", "display": "Smith, Jane" }, "target": { "measure": { "coding": [ { "system": "http://loinc.org", "code": "LA7435-6" } ], "text": "Fever" } }, "note": [ { "text": "Goal (Free Text): Take time off work, get bed rest" } ] } } ] }
Search
Searches for goals for a single patient
HTTP Request
GET /Patient/{patientUid}/Goal?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
patientUid | path | The official patient identifier acquired from a patient search | Yes | 12.6 |
date | query | The date of the encounter containing the goal in the form YYYY-MM-DD | No | 12.6 |
Example: Get all goals for a single patient charted on a visit on 5/1/2017
GET https://select.nextech-api.com/api/Patient/ad2085b5-b974-401d-bfcb-3b865109fd35/Goal?date=eq2017-05-01
Immunization
Overview
The immunization resource describes an administered vaccine.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | The unique value assigned to each immunization which discerns them from all others. | Identifier | 12.6 |
status | Either completed or entered in error | Immunization status Code | 12.6 |
vaccineCode | Vaccine product adminstered | Vaccine administered value set | 12.6 |
patient | The immunized patient | Reference(Patient) | 12.6 |
date | The vaccination administration date in the form YYYY-MM-DD | dateTime | 12.6 |
Example
{ "resourceType": "Bundle", "entry": [ { "resource": { "resourceType": "Immunization", "id": "immunization-1", "identifier": [ { "use": "official", "value": "immunization-1" } ], "status": "completed", "vaccineCode": { "coding": [ { "system": "http://hl7.org/fhir/sid/cvx", "code": "05", "display": "measles virus vaccine" } ], "text": "measles virus vaccine" }, "patient": { "reference": "Patient/4AAE9E3C-B1E4-46EA-93C2-CF3B36747D1A", "display": "Tinsley, Carol F" }, "date": "2013-08-17" } } ] }
Search
Searches for immunizations for a single patient
HTTP Request
GET /Patient/{patientUid}/Immunization?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
patientUid | path | The official patient identifier acquired from a patient search | Yes | 12.6 |
date | query | The immunization administration date in the form YYYY-MM-DD | No | 12.6 |
Example: Get all immunizations for a single patient as of 1/1/2017
GET https://select.nextech-api.com/api/Patient/ad2085b5-b974-401d-bfcb-3b865109fd35/Immunization?date=ge2017-01-01
Medication Dispensement
Overview
The medication dispersement resource describes the supply of medications by a health care provider to a patient.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | The unique value assigned to each dispensement which discerns them from all others. | Identifier | 12.6 |
medicationCodeableConcept | The supplied medication | SNOMED CT Medication Code | 12.6 |
subject | The patient pertaining to the dispensement | Reference(Patient) | 12.6 |
whenPrepared | When product was packaged and reviewed | dateTime | 12.6 |
Example
{ "resourceType": "Bundle", "entry": [ { "resource": { "resourceType": "MedicationDispense", "id": "5172", "identifier": [ { "use": "official", "value": "5172" } ], "medicationCodeableConcept": { "coding": [ { "system": "http://www.nlm.nih.gov/research/umls/rxnorm", "code": "977434", "display": "Zortress 0.5 mg tablet" } ], "text": "Zortress 0.5 mg tablet" }, "subject": { "reference": "Patient/Patient/56a784fa-4334-469d-dd12-a93248c74be3", "display": "Horus, Lana" }, "whenPrepared": "2015-08-14" } } ] }
Search
Searches for medication dispensements for a single patient
HTTP Request
GET /Patient/{patientUid}/MedicationDispense?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
patientUid | path | The official patient identifier acquired from a patient search | Yes | 12.6 |
whenPrepared | query | The preparation date in the form YYYY-MM-DD | No | 12.6 |
Example: Get all prescriptions for a single patient prepared as of 5/1/2017
GET https://select.nextech-api.com/api/Patient/ad2085b5-b974-401d-bfcb-3b865109fd35/MedicationDispense?whenPrepared=ge2017-05-01
Medication Statements
Overview
A medication statement resource describes a medication being consumed by a patient. This includes medications not prescribed by the health care provider.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | The unique value assigned to each medication statement which discerns them from all others. | Identifier | 12.6 |
status | The statement status | MedicationStatementStatus | 12.6 |
medication | The supplied medication | SNOMED CT Medication Code | 12.6 |
effective | The date/time when the medication was taken | dateTime | 12.6 |
subject | The patient pertaining to the medication statement | Reference(Patient) | 12.6 |
Example
{ "resourceType": "Bundle", "entry": [ { "resource": { "resourceType": "MedicationStatement", "id": "344", "identifier": [ { "use": "official", "value": "344" } ], "status": "active", "medicationCodeableConcept": { "coding": [ { "system": "http://www.nlm.nih.gov/research/umls/rxnorm", "code": "310964", "display": "Advil Liqui-Gel 200 mg capsule" } ], "text": "Advil Liqui-Gel 200 mg capsule" }, "effectiveDateTime": "2014-03-04", "subject": { "reference": "Patient/Patient/c27e5be0-4b44-4ec5-a284-4308d6ac2b1a", "display": "Clay, William" } } } ] }
Search
Searches for current medications for a single patient
HTTP Request
GET /Patient/{patientUid}/MedicationStatement?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
patientUid | path | The official patient identifier acquired from a patient search | Yes | 12.6 |
effective | query | Date when patient was taking the medication in the form YYYY-MM-DD | No | 12.6 |
Example: Get all current medications for a single patient effective 5/1/2017
GET https://select.nextech-api.com/api/Patient/ad2085b5-b974-401d-bfcb-3b865109fd35/MedicationStatement?date=ge2017-05-01
Observation
Overview
An observation resource describes a measurement or an assertion made about a patient. This request requires a category code to search on. The following category codes are supported:
- laboratory
- social-history
- vital-signs
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | The unique value assigned to each observation which discerns them from all others. | Identifier | 12.6 |
subject | The patient pertaining to the observation | Reference(Patient) | 12.6 |
status | The observation status | ObservationStatus | 12.6 |
category | Classification of type of observation | Category | 12.6 |
code | Type of observation | LOINC Code | 12.6 |
effective | Clinically relevant time/time-period for observation | dateTime | 12.6 |
value | Observation result | CodeableConcept | 12.6 |
Example
{ "resourceType": "Bundle", "entry": [ { "resource": { "resourceType": "Observation", "id": "smokestatemn-3093code-745770", "identifier": [ { "use": "official", "value": "smokestatemn-3093code-745770" } ], "status": "final", "category": [ { "coding": [ { "system": "observation-category", "code": "social-history" } ], "text": "Social History" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "72166-2" } ] }, "subject": { "reference": "Patient/F15FB185-5E63-485E-B025-D113103DCEC3", "display": "Morgan, Stanley" }, "effectivePeriod": { "start": "2009-03-02", "end": "2013-08-17" }, "valueCodeableConcept": { "coding": [ { "system": "2.16.840.1.113883.6.96", "code": "8517006" } ], "text": "Ex-smoker" } } } ] }
Search
Searches for observations for a single patient
HTTP Request
GET /Patient/{patientUid}/Observation?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
patientUid | path | The official patient identifier acquired from a patient search | Yes | 12.6 |
category | query | The category of observation to load | Yes | 12.6 |
date | query | The observation date in the form YYYY-MM-DD | No | 12.6 |
Example: Get all laboratory requisitions and results for a single patient as of 5/1/2017
GET https://select.nextech-api.com/api/Patient/ad2085b5-b974-401d-bfcb-3b865109fd35/Observation?category=laboratory&date=ge2017-05-01
Example: Get the social history of a single patient charted in encounters as of 5/1/2017
GET https://select.nextech-api.com/api/Patient/ad2085b5-b974-401d-bfcb-3b865109fd35/Observation?category=social-history&date=ge2017-05-01
Example: Get the vital signs of a single patient charted in encounters as of 5/1/2017
GET https://select.nextech-api.com/api/Patient/ad2085b5-b974-401d-bfcb-3b865109fd35/Observation?category=vital-signs&date=ge2017-05-01
Payment Reconciliation
Overview
The PaymentReconciliation resource is used in a POST command to post a single payment to an existing patient.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
requestProvider | The responsible practitioner | Reference(Practitioner) | 12.8 |
total | The payment amount | Money | 12.8 |
processNote | The payment description. If multiple processNotes are supplied, they will be joined together and separated by spaces. The description will be truncated to 255 characters. | string | 12.8 |
extension: location | The payment location reference | Reference(Location) | 12.8 |
extension: patient | The payment patient reference | Reference(Patient) | 12.8 |
extension: payment-method | The payment method. This may be one of the following values: Cash, Check, Charge | string | 12.8 |
extension: payment-date | The payment date (in UTC). This is a formatted date string in the form yyyy-MM-dd or yyyy-MM-ddTHH:mm:ss.fffZ | datetime | 12.8 |
extension: effective-date | The payment input date (in UTC). This is a formatted date string in the form yyyy-MM-dd or yyyy-MM-ddTHH:mm:ss.fffZ | datetime | 12.8 |
extension: deposited-date | The payment deposit date (in UTC). This is a formatted date string in the form yyyy-MM-dd or yyyy-MM-ddTHH:mm:ss.fffZ | datetime | 12.8 |
extension: payment-category | The payment category. This must match an option in the Category dropdown of the Payment window in Nextech Practice | string | 12.8 |
extension: creditcard-type | The payment credit card type. This must match an option in the Credit Card dropdown of the Payment window in Nextech Practice | string | 12.8 |
extension: check-number | The payment check number. The check number will be truncated to 50 characters. | string | 12.8 |
Example
{ "resourceType": "PaymentReconciliation", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/Patient", "valueResourceReference": { "reference": "Patient/02c5a6ed-6c01-40a7-a065-a0be4732d6b9", "display": "Archer, Billy" } }, { "url": "http://hl7.org/fhir/StructureDefinition/Location", "valueResourceReference": { "reference": "Location/1", "display": "NexTech Dermatology" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/payment-date", "valueDateTime": "2018-02-01T13:36:25.150Z" }, { "url": "https://select.nextech-api.com/api/structuredefinition/effective-date", "valueDateTime": "2018-02-02T05:00:00.000Z" }, { "url": "https://select.nextech-api.com/api/structuredefinition/deposited-date", "valueDateTime": "2018-02-08T05:00:00.000Z" }, { "url": "https://select.nextech-api.com/api/structuredefinition/payment-method", "valueString": "Charge" }, { "url": "https://select.nextech-api.com/api/structuredefinition/payment-category", "valueString": "PP - Patient Payment" }, { "url": "https://select.nextech-api.com/api/structuredefinition/creditcard-type", "valueString": "Visa" } ], "requestProvider": { "reference": "Practitioner/5", "display": "Davison, Darren" }, "total": { "value": 200 }, "processNote": [ { "type": { "coding": [ { "system": "NoteType", "code": "display" } ] }, "text": "Patient payment via check - Thank You" } ] }
Create
Creates a payment for an existing patient.
HTTP Request
POST /Patient/{patientUid}/PaymentReconciliation
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
patientUid | path | The official patient identifier acquired from a patient search | Y | 12.8 |
paymentReconciliation | body | Represents the PaymentReconciliation resource to create for the given patient |
Y | 12.8 |
Body Fields
Name | Description | Required | Initial Version |
---|---|---|---|
requestProvider | The responsible practitioner | Y | 12.8 |
total | The payment amount | Y | 12.8 |
processNote | The payment description | N | 12.8 |
extension: payment-method | The payment method. This may be one of the following values: Cash, Check, Charge | Y | 12.8 |
extension: payment-date | The payment date. This is a formatted date string in the form yyyy-MM-dd or yyyy-MM-ddTHH:mm:ss.fffZ | Y | 12.8 |
extension: effective-date | The payment input date. This is a formatted date string in the form yyyy-MM-dd or yyyy-MM-ddTHH:mm:ss.fffZ. This field defaults to the current date and time. | N | 12.8 |
extension: deposited-date | The payment deposit date. This is a formatted date string in the form yyyy-MM-dd or yyyy-MM-ddTHH:mm:ss.fffZ | N | 12.8 |
extension: payment-category | The payment category. This must match an option in the Category dropdown of the Payment window in Nextech Practice | Y | 12.8 |
extension: credit-cardtype | The payment credit card type. This must match an option in the Credit Card dropdown of the Payment window in Nextech Practice | N | 12.8 |
extension: check-number | The payment check number | N | 12.8 |
extension: location | The payment location reference. The practice must have at least one Location resource with this identifier. | Y | 12.8 |
extension: apply-payment | Value indicating whether the payment should be applied to patient's responsibility. The payment will be applied to patient responsiblity charges with a balance from oldest to newest. | N | 12.8 |
Extensions
Extensions are used to support required values not part of the FHIR standard.
Example: Post a $200 check for a patient
POST https://select.nextech-api.com/api/Patient/ad2085b5-b974-401d-bfcb-3b865109fd35/PaymentReconciliation
Body
{ "resourceType": "PaymentReconciliation", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/payment-date", "valueDate": "2018-01-02" }, { "url": "http://hl7.org/fhir/StructureDefinition/location", "valueReference": { "reference": "Location/1" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/effective-date", "valueDate": "2018-02-02" }, { "url": "https://select.nextech-api.com/api/structuredefinition/deposited-date", "valueDate": "2018-02-02" }, { "url": "https://select.nextech-api.com/api/structuredefinition/payment-method", "valueString": "Check" }, { "url": "https://select.nextech-api.com/api/structuredefinition/check-number", "valueString": "6751007623" }, { "url": "https://select.nextech-api.com/api/structuredefinition/payment-category", "valueString": "PP - Patient Payment" }, { "url": "https://select.nextech-api.com/api/structuredefinition/apply-payment", "valueBoolean": true } ], "requestProvider": { "reference": "Practitioner/9219" }, "total": { "value": 200 }, "processNote": [ { "type": { "coding": [ { "system": "NoteType", "code": "display" } ] }, "text": "Patient payment via check - Thank You" } ] }
Procedure
Overview
A procedure resource describes an activity performed with or on a patient as part of the provision of care.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | The unique value assigned to each goal which discerns them from all others. | Identifier | 12.6 |
code | Identification of the procedure | Procedure Codes (SNOMED CT) | 12.6 |
subject | Who the procedure was performed on | Reference(Patient) | 12.6 |
performed | Date/Period the procedure was performed | dateTime | 12.6 |
Example
{ "resourceType": "Bundle", "entry": [ { "resource": { "resourceType": "Procedure", "id": "2053", "identifier": [ { "use": "official", "value": "2053" } ], "code": { "coding": [ { "system": "CPT4", "code": "54601" } ], "text": "Microdermabrasion" }, "subject": { "reference": "Patient/5F37E582-FD96-48C5-9EE3-02E26D96CB72", "display": "Smith, John" } } } ] }
Search
Searches for procedures for a single patient
HTTP Request
GET /Patient/{patientUid}/Procedure?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
patientUid | path | The official patient identifier acquired from a patient search | Yes | 12.6 |
date | query | The date the procedure was performed in the form YYYY-MM-DD | No | 12.6 |
Example: Get all procedures for a single patient performed as of 5/1/2017
GET https://select.nextech-api.com/api/Patient/ad2085b5-b974-401d-bfcb-3b865109fd35/Procedure?date=ge2017-05-01
Patient-Type
Patient-Type
Overview
The patient type resource contains information about a patient and their relation to the practice. Examples include Deceased, Moved, Insurance Patient.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
resourcetype | The declaration of the type of resource this is. | string | 14.1 |
id | The unique value assigned to each patient type which discerns it from all others | string | 14.1 |
extension | The patient type values as a packaged extension. Contains definition url and value | extension | 14.1 |
Sample
{ "resourceType": "Bundle", "type": "searchset", "total": 3, "entry": [ { "resource": { "resourceType": "patient-type", "id": "1", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/patient-type#name", "valueString": "Cosmetic" } ] } }, { "resource": { "resourceType": "patient-type", "id": "2", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/patient-type#name", "valueString": "Insurance Patient" } ] } }, { "resource": { "resourceType": "patient-type", "id": "3", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/patient-type#name", "valueString": "Spa patient" } ] } } ] }
Search
Searches for all patient types matching the given search criteria. See https://www.hl7.org/fhir/search.html for instructions on formatting search criteria.
HTTP Request
GET /patient-type?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
identifier | query | The unique identifier for a single patient type | N | 14.1 |
name | query | The name of the patient type | N | 14.1 |
Example: Get all patient types
GET https://select.nextech-api.com/api/patient-type
Example: Get all types whose name contains 'Cosmetic'
GET https://select.nextech-api.com/api/patient-type?name:contains=cosmetic
Example: Get a specific patient type based on identifier
GET https://select.nextech-api.com/api/patient-type/5
Response
{ "resourceType": "patient-type", "id": "5", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/patient-type#name", "valueString": "Moved" } ] }
Appointment
Appointment
Overview
The appointment resource contains information about a planned meeting between a patient and medical provider. Examples include new patient encounters, scheduled surgeries and and follow-up visits.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | The unique value assigned to each appointment which discerns it from all others | Identifier | 12.6 |
status | Indicates whether the appointment is proposed (held), cancelled, booked (confirmed), pending, arrived, fulfilled or no show (this field is omitted if the appointment is in a status that doesn't correspond to any of the listed statuses) | AppointmentStatus | 12.6 |
description | The appointment summary that includes the type and a list of purposes and resources | string | 12.6 |
start | The date and time the appointment begins | instant | 12.6 |
end | The date and time the appointment ends | instant | 12.6 |
comment | The appointment notes | string | 12.6 |
participant | The collection of appointment participants which includes patient, provider and location. As of version 14.1, the patient reference will not be included for non-patient appointments | BackboneElement | 12.6 |
created | The date that this appointment was initially created | dateTime | 12.8 |
Extension | This is an extension of the class to provide more indepth objects like for appointment types(12.8), appointment purposes (12.9), and Select appointment status (15.9) | extension | 12.9 |
meta.lastUpdated | The last time the appointment was modified | instant | 14.3 |
Sample
{ "resourceType": "Bundle", "entry": [ { "resource": { "resourceType": "Appointment", "id": "12312", "meta": { "lastUpdated": "2018-01-25T13:23:00.55+00:00" }, "contained": [ { "resourceType": "Location", "id": "5", "identifier": [ { "use": "official", "value": "5" } ], "name": "South Dermatology" }, { "resourceType": "Practitioner", "id": "2", "identifier": [ { "use": "official", "value": "2" } ], "name": [ { "text": "Davison, Darren", "family": "Davison", "given": [ "Darren", "" ] } ] } ], "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-status", "valueReference": { "reference": "appointment-status/0", "display": "Pending" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-type", "valueReference": { "reference": "appointment-type/9", "display": "Surgery Cosmetic" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-purpose", "valueReference": { "reference": "appointment-purpose/161", "display": "Chemical Peel/Skin Treatments" } } ], "identifier": [ { "use": "official", "value": "12312" } ], "status": "booked", "description": "Consult - Insurance Est. - Skin Lesion/Tumor for Darren Davis, MD", "start": "2017-03-12T09:10:00-04:00", "end": "2017-03-12T09:40:00-04:00", "created": "2017-07-27T21:09:19.913Z", "comment": "This is a sample comment", "participant": [ { "actor": { "reference": "Patient/4AAE9E3C-B1E4-46EA-93C2-CF3B36747D1A", "display": "Brimley, Henry" } }, { "actor": { "reference": "Location/5", "display": "South Dermatology" } }, { "actor": { "reference": "Practitioner/2", "display": "Davison, Darren" } } ] } } ] }
Search
Searches for all appointments matching the given search criteria. See https://www.hl7.org/fhir/search.html for instructions on formatting search criteria.
HTTP Request
GET /Appointment?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
_lastUpdated | query | The date the appointment was last modified formatted as yyyy-MM-dd. As of version 14.3, we also support the format yyyy-MM-ddThh:mm:ss[Z|(+|-)hh:mm] . Note that the + character must be URL encoded. (i.e. %2B ) |
No | 12.8 |
identifier | query | The unique identifier for a single appointment | No | 12.6 |
patient | query | The unique identifier acquired from the patient search or a patient chart number | No | 12.6 |
date | query | The appointment start date. When searching for appointments within a date range, the following prefixes may be used: lt, gt, eq, le, ge | No | 12.6 |
location.id | query | The id of the appointment's location | No | 12.7 |
location.name | query | The name of the appointment's location. | No | 12.7 |
practitioner.id | query | The id of the appointment's practitioner | No | 12.7 |
practitioner.name | query | The first or last name of the appointment's practitioner | No | 12.7 |
status | query | The status of the appointment. Currently supported values are: cancelled, booked, noshow, arrived, fulfilled, and pending | No | 12.7 |
created | query | The date that this appointment was initially created | No | 12.8 |
Multiple Search Values
Multiple search values are supported for all fields except date. To use multiple values, a comma should be placed in between the values you would like to search for. This search results in the values being ORed together.
Example: Get all appointments for a patient by chart number
GET https://select.nextech-api.com/api/Appointment?patient=12345
Example: Get all appointments between and including 1/1/2017 through 5/31/2017
GET https://select.nextech-api.com/api/Appointment?date=ge2017-01-01&date=lt2017-06-01
Example: Get all appointments for Dr. Smith or Dr. Jones
GET https://select.nextech-api.com/api/Appointment?practitioner.name=smith,jones
Example: Get all appointments for a location by id
GET https://select.nextech-api.com/api/Appointment?location.id=1
Example: Get all appointments for either of 2 locations
GET https://select.nextech-api.com/api/Appointment?location.id=1,2
Example: Get all cancelled appointments
GET https://select.nextech-api.com/api/Appointment?status=cancelled
Example: Get all appointments created on 7/27/2017
GET https://select.nextech-api.com/api/Appointment?created=2017-07-27
Confirm Appointment
Confirm a scheduled appointment.
HTTP Request
PUT /Appointment/{identifier}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
identifier | path | The unique identifier of the appointment to be updated | Yes | 12.6 |
appointment | body | The appointment object representing the changes to be made | Yes | 12.6 |
The commit parameter should be in the form of an Appointment status field. See https://www.hl7.org/fhir/http.html#update for details on formatting PUT requests in RESTful API’s.
Example: Mark appointment 5453 as booked
PUT https://select.nextech-api.com/api/Appointment/5453
{ "resourceType": "Appointment", "status": "booked" }
Update Appointment Status
Updates the status of a given appointment
HTTP Request
PUT /Appointment/{identifier}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
identifier | path | The unique identifier of the appointment to be updated | Yes | 12.6 |
appointment | body | The appointment object representing the changes to be made | Yes | 12.6 |
appointment.status | body | The status to update the appointment to. As of 15.8 we'll now support "Booked", "Arrived", "Fulfilled" and "Pending" | Yes | 15.8 |
The below FHIR statuses will be mapped to the below system level statuses in Select
"Pending" -> "Pending" "Arrived" -> "In" "Fulfilled" -> "Out"
Remarks
In a normal workflow an appointment would go from -> Pending -> Arrived -> Fulfilled. Once an appointment is moved from the Arrived status to any other status, you can no longer set the status back to arrived from the API. You'll need to manually set the status from within Select.
The commit parameter should be in the form of an Appointment status field. See https://www.hl7.org/fhir/http.html#update for details on formatting PUT requests in RESTful API’s.
Example: Mark appointment 5453 as arrived
PUT https://select.nextech-api.com/api/Appointment/5453
{ "resourceType": "Appointment", "status": "arrived" }
Update Appointment With a Custom Status
Updates the status of a given appointment with a custom status
HTTP Request
PUT /Appointment/{identifier}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
identifier | path | The unique identifier of the appointment to be updated | Yes | 12.6 |
appointment | body | The appointment object representing the changes to be made | Yes | 12.6 |
extension | body | An extension with the status (as defined in Select) to set the appointment to | Yes | 15.9 |
Example: Set status of appointment 5453 to the status with ID 8
PUT https://select.nextech-api.com/api/Appointment/5453
{ "resourceType": "Appointment", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-status", "valueReference": { "reference": "appointment-status/8" } } ] }
Request Appointment Cancellation
Request a scheduled appointment to be cancelled.
HTTP Request
PUT /Appointment/{identifier}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
identifier | path | The unique identifier of the appointment to be updated | Yes | 14.6 |
appointment | body | The appointment object representing the appointment that is being requested to be cancelled | Yes | 14.6 |
The commit parameter should be in the form of an Appointment status field of cancelled
with a custom extension url of https://select.nextech-api.com/api/structuredefinition/request-type
and value of queue
. See https://www.hl7.org/fhir/http.html#update for details on formatting PUT requests in RESTful API’s.
Example: Request appointment 5453 to be cancelled
PUT https://select.nextech-api.com/api/Appointment/5453
{ "resourceType": "Appointment", "status": "cancelled", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/request-type", "valueString": "queue" } ] }
Cancel Appointment
Cancels a scheduled appointment.
HTTP Request
PUT /Appointment/{identifier}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
identifier | path | The unique identifier of the appointment to be cancelled | Yes | 15.9 |
appointment | body | The appointment object representing the appointment to cancel | Yes | 15.9 |
The commit parameter should be in the form of an Appointment status field of cancelled
with no custom extensions. See https://www.hl7.org/fhir/http.html#update for details on formatting PUT requests in RESTful API’s.
Example: Cancel appointment 5453
PUT https://select.nextech-api.com/api/Appointment/5453
{ "resourceType": "Appointment", "status": "cancelled" }
Remarks
- An appointment cancellation will fail for a number of reasons:
- The appointment does not exist (HTTP Status Code: 404)
- The appointment has already been cancelled (HTTP Status Code: 422)
- A request to cancel the appointment has already been placed (HTTP Status Code: 422)
- The appointment is tied to a room (HTTP Status Code: 422)
- The appointment is tied to a patient photo (HTTP Status Code: 422)
- The appointment is tied to a superbill (HTTP Status Code: 422)
- The appointment is tied to an inventory allocation (HTTP Status Code: 422)
- The appointment is linked to an order (HTTP Status Code: 422)
- The appointment is tied to a case history (HTTP Status Code: 422)
- The appointment is tied to a tracking procedure (HTTP Status Code: 422)
- The appointment is not tied to a patient (HTTP Status Code: 422)
- The appointment is linked to other appointments (HTTP Status Code: 422)
- The appointment is associated with a tracking ladder event (HTTP Status Code: 422)
- The practice has their
Require a cancellation reason
preference set to "Yes" (HTTP Status Code: 422)
Book Appointment
Create a scheduled appointment.
HTTP Request
POST /Appointment/
Parameters
Name | Description | Type | Required | Initial Version |
---|---|---|---|---|
status | The current status of the appointment - must be proposed | AppointmentStatus | Yes | 12.9.10 |
start | The start time of the appointment ie.2017-04-13T09:10:00-04:00 |
instant | Yes | 12.9.10 |
end | The end time of the appointment ie. 2017-04-13T09:40:00-04:00 |
instant | Yes | 12.9.10 |
Participant | Includes the patient reference (if existing patient), location for the appointment, and practitioner for the appointment | BackboneElement | Location and practitioner are required, patient is required unless a contained section is included | 12.9.10 |
Extension | Contains the appointment type and appointment purposes for this appointment | extension | Yes, for version 16.2 and below, preference-based for 16.3+ (see * below) | 12.9.10 |
Contained | Contains a patient resource if the patient does not already exist in Nextech | Patient Resource | Yes, unless a patient reference is included in the participant section | 12.9.10 |
When posting an appointment, there are multiple options to be considered: The first set of options is whether this appointment should be booked or held. A booked appointment is one which shows in the offices schedule as if the office created the appointment from inside Nextech. A held appointment is an appointment which has a different flag in Nextech to indicate that it is held and also appears in a list of appointments for the office to follow up with. In both situations the appointment shows on the office schedule in Nextech.
Whether to book or hold an appointment is controlled by the appointment-schedule extension. In order to hold an appointment, the extension would have "hold" as the value string. To book an appointment, the extension would have "book" as the value string. If no appointment-schedule extension is sent, the office's preference for booking or holding is used. See examples below.
The second set of options to choose from is whether the patient is existing, or if we are making an appointment for a unknown patient. 1. If you are scheduling an appointment for an existing patient, put the identifier for the patient in the participants section 2. If you are scheduling an appointment for a person that is not a patient, put the demographic information for the patient in the contained section. When the appointment is scheduled, the demographic information in the contained section will be used to create a prospect that is then linked to the appointment. The following information is required for the contained section: 1. Name, given and family must be filled in 2. At least one phone number, home, work, or cell as specified by the Use field in the telecom section 3. An email address specified in the telecom section
Additional fields that can be sent and are recommended, but are not required are:
1. Birth Date
2. Zip Code
*Prior to version 16.3, the appointment-purpose
and appointment-type
extension values are required in appointment creation requests. As of version 16.3, whether appointment types or appointment purposes are required is defined by the preferences in Nextech at Tools->Preferences->Scheduler Module->Appts. 1->Appointments must have Purposes
and Tools->Preferences->Scheduler Module->Appts. 1->Appointments must have Types
.
If the appointment creation succeeds, the appointment resource will be returned with a return status of Created (201).
If the appointment creation fails, an AppointmentResponse (https://www.hl7.org/fhir/appointmentresponse.html) resource will be returned with a status of Conflict (409). The reason for why the creation failed will be included in the AppointmentResponse Comment field.
If the appointment creation fails and a prospect was being created, the prospect will also be deleted.
Example: Create an appointment for an existing patient as a booked appointment
POST https://select.nextech-api.com/api/Appointment/
{ "resourceType": "Appointment", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-type", "valueReference": { "reference": "appointment-type/25", "display": "Skin Care Established" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-purpose", "valueReference": { "reference": "appointment-purpose/202", "display": "Glycolic Peel" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-schedule", "valueString": "book" } ], "status": "proposed", "start": "2017-04-13T09:10:00-04:00", "end": "2017-04-13T09:40:00-04:00", "comment": "test note", "participant": [ { "actor": { "reference": "patient/EEA9EC85-849E-4B88-9859-9F30CF309446", "display": "Jane Smith" } }, { "actor": { "reference": "location/1", "display": "Nextech Dermatology" } }, { "actor": { "reference": "practitioner/9323", "display": "Walters, Sherri" } } ] }
Example: Create an appointment for a new prospect as a held appointment
POST https://select.nextech-api.com/api/Appointment/
{ "resourceType": "Appointment", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-type", "valueReference": { "reference": "appointment-type/25", "display": "Skin Care Established" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-purpose", "valueReference": { "reference": "appointment-purpose/202", "display": "Glycolic Peel" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-schedule", "valueString": "hold" } ], "status": "proposed", "start": "2017-04-12T08:10:00-04:00", "end": "2017-04-12T08:40:00-04:00", "comment": "test note", "participant": [ { "actor": { "reference": "location/1", "display": "Nextech Dermatology" } }, { "actor": { "reference": "practitioner/9323", "display": "Walters, Sherri" } } ], "contained": [ { "resourceType": "Patient", "name": [ { "text": "Jane L Smith", "family": "Smith", "given": [ "Jane", "L" ] } ], "address": [ { "use": "home", "postalCode": "77014" } ], "telecom": [ { "system": "email", "value": "jsmith@email.com" }, { "system": "phone", "use" : "home", "value": "346-555-3682" } ], "birthDate": "1968-02-04", } ] }
Example: Create an appointment for a new prospect using the office's preference for booking or holding
POST https://select.nextech-api.com/api/Appointment/
{ "resourceType": "Appointment", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-type", "valueReference": { "reference": "appointment-type/25", "display": "Skin Care Established" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-purpose", "valueReference": { "reference": "appointment-purpose/202", "display": "Glycolic Peel" } } ], "status": "proposed", "start": "2017-04-12T08:10:00-04:00", "end": "2017-04-12T08:40:00-04:00", "comment": "test note", "participant": [ { "actor": { "reference": "location/1", "display": "Nextech Dermatology" } }, { "actor": { "reference": "practitioner/9323", "display": "Walters, Sherri" } } ], "contained": [ { "resourceType": "Patient", "name": [ { "text": "Jane L Smith", "family": "Smith", "given": [ "Jane", "L" ] } ], "address": [ { "use": "home", "postalCode": "77014" } ], "telecom": [ { "system": "email", "value": "jsmith@email.com" }, { "system": "phone", "use" : "home", "value": "346-555-3682" } ], "birthDate": "1968-02-04", } ] }
Remarks
- If an appointment is returned without a practitioner in the participants section, please check the following:
- Make sure the appointment's resource is linked to a provider in the Scheduler module's Resource Editor screen.
- Make sure the provider that the appointment resource is linked to is listed in the Practitioner API resource. A provider is not returned as a Practitioner unless their Contacts module record has the Linked User setting configured.
Slot
Slot
Overview
The slot resource contains information about available appointment slots.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
status | Indicates whether the slot is available. | SlotStatus | 12.9 |
schedule | The schedule that this slot belongs to | Reference | 12.9 |
start | The date and time the slot begins | instant | 12.9 |
end | The date and time the slot ends | instant | 12.9 |
appointment-type extension | The Nextech appointment type of the slot | custom extension | 12.9 |
appointment-purpose extension | The Nextech appointment purpose of the slot | custom extension | 12.9 |
contained section | Contains the Location and Practitioner resources associated to the slot | BackboneElement | 12.9.10 |
Sample
{ "resourceType": "Bundle", "entry": [ { "resource": { "resourceType": "Slot", "contained": [ { "resourceType": "Location", "id": "1", "identifier": [ { "use": "official", "value": "1" } ], "name": "NexTech Dermatology" }, { "resourceType": "Practitioner", "id": "9323", "identifier": [ { "use": "official", "value": "9323" } ], "name": [ { "text": "Walters, Sherri", "family": "Walters", "given": [ "Sherri", "" ] } ] } ], "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-type", "valueReference": { "reference": "appointment-type/9", "display": "Surgery Cosmetic" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-purpose", "valueReference": { "reference": "appointment-purpose/224", "display": "Skin Check" } } ], "schedule": { "reference": "schedule/location_1_practitioner_9323" }, "status": "free", "start": "2018-02-26T14:00:00-05:00", "end": "2018-02-26T15:00:00-05:00" } } ] }
Search
Searches for all slots matching the given search criteria. See https://www.hl7.org/fhir/search.html for instructions on formatting search criteria. Only free slots are currently returned from the search. A slot is returned for each practitioner/location combination.
The number of days searched is determined by the start date parameters passed it. If no less than operators are passed in, the search will default to 45 days. The maximum number of days in the search criteria cannot exceed 60 days.
HTTP Request
GET /Slot?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
start | query | The slot start date/time. When searching for slots within a date range, the following prefixes may be used: lt, gt, eq, le, ge. Note: the ne operator is not supported. | Yes | |
schedule.actor | query | The practitioners and/or locations of the slot you are searching for. At least one location actor is required. If no practitioner actor is specified, all practitioners for the location specified will be searched. A practitioner in practice is a schedule resource that is linked to a provider that is linked to a user in Nextech. | Yes | |
appointment-type | query | The appointment type the slot will be for. | No if slot-length is specified | |
appointment-purpose | query | The appointment purpose the slot will be for. | No | |
slot-length | query | The length of time the slot is needed for. If not specified, default duration will be used | No, if appointment-type is specified |
Multiple Search Values
Multiple search values are supported for all fields except date. To use multiple values, a comma should be placed in between the values you would like to search for. This search results in the values being ORed together.
If 2 practitioner schedule.actors are ORed together with a comma, any of those practitioners will be searched. If they are ANDed together, all of the practitioners will be searched for, with a slot returned for each. If you have both and AND and OR for practitioner scheduler.actors, they will all be ORed together.
Example: Get all available slots for consult type appointment in March 2018 at Pawtucket Plastic Surgery for any practitioner
GET https://select.nextech-api.com/api/slot?start=ge2018-03-01&start=lt2018-04-01&appointment-type=appointment-type/87&schedule.actor=location/5
Example: Get all available 15 minute slots for Dr. Smith at the West location in 2016
GET https://select.nextech-api.com/api/slot?start=ge2018-01-01&start=lt2019-01-01&schedule.actor=location/7&schedule.actor=practitioner/15&slot-length=15
Example: Get all 15 minute slots for Dr. Smith or Dr. Jones at the West location
GET https://select.nextech-api.com/api/slot?start=ge2018-01-01&start=lt2019-01-01&schedule.actor=location/7&schedule.actor=practitioner/15, practitioner/17&slot-length=15
Remarks
- Slots will not be returned for appointment resources without a provider configured. In addition, slots will not be returned if the linked provider is not listed in the Practitioner API resource. A provider is not returned as a Practitioner unless their Contacts module record has the Linked User setting configured.
- Slots will not return for an appointment-type that has a default slot duration of 0 minutes, unless a slot-length > 0 is specified.
- This endpoint is to be used during the act of scheduling an appointment.
- This call is used to find available appointment times for one patient appointment, based on the desired appointment type, purpose, and provider.
- This endpoint should not be used to generically find all open times on the schedule for display purposes, or data syncing.
Appointment-Type
Appointment-Type
Overview
The appointment type resource contains information about a planned meeting between a patient and medical provider. Examples include new patient encounters, scheduled surgeries and and follow-up visits.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
resourcetype | The declaration of the type of resource this is. | string | 12.8 |
id | The unique value assigned to each appointment type which discerns it from all others | string | 12.8 |
extension | The appointment type values as a packaged extension. Contains definition url and value | extension | 12.8 |
extension | The default duration in minutes for an appointment type packaged as an extension | extension | 14.8 |
Sample
{ "resourceType": "appointment-type", "id": "9", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-type#name", "valueString": "Surgery Cosmetic" }, { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-type#defaultDuration", "valueInteger": 0 } ] }
Search
Searches for all appointment types matching the given search criteria. See https://www.hl7.org/fhir/search.html for instructions on formatting search criteria.
HTTP Request
GET /appointment-type?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
identifier | query | The unique identifier for a single appointment type | N | 12.8 |
name | query | The name of the appointment type | N | 12.8 |
Appointment-Type ID Search
Attempts to find a single appointment type that matches based on the identifier given
GET /appointment-type/{identifier}
Appointment-Purpose
Appointment-Purpose
Overview
The appointment purpose resource provides specific reasons for a planned meeting between a patient and medical provider. Examples include laser skin resurfacing, chemical peel or microdermabrasion.
Purposes are assigned to meeting types for improved control over appointment availability and scheduling.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
resourcetype | The declaration of the type of resource this is. | string | 12.9 |
id | The unique value assigned to each appointment purpose which discerns it from all others | string | 12.9 |
extension | The appointment type values that can have this purpose come as a packaged extension. Contains definition url and value | extension | 12.9 |
Sample
{ "resourceType": "appointment-purpose", "id": "53", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-purpose", "valueString": "Laser Skin Resurfacing" }, { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-type", "valueReference": { "reference": "appointment-type/13", "display": "Follow Up" } } ] }
Search
Searches for all appointment purposes matching the given search criteria. See https://www.hl7.org/fhir/search.html for instructions on formatting search criteria.
HTTP Request
GET /appointment-purpose?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
identifier | query | The unique identifier for a single appointment purpose | No | 12.9 |
name | query | The name of the appointment purpose | No | 12.9 |
Appointment-Purpose ID Search
Attempts to find a single appointment purpose that matches based on the identifier given
GET /appointment-purpose/{identifier}
Appointment-Status
Appointment-Status
Overview
The appointment status resource contains information about a planned meeting between a patient and medical provider. Examples include new patient encounters, scheduled surgeries and and follow-up visits.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
resourcetype | The declaration of the type of resource this is. | string | 15.9 |
id | The unique value assigned to each appointment status which discerns it from all others | string | 15.9 |
extension | The appointment status values as a packaged extension. Contains definition url and value | extension | 15.9 |
Sample
{ "resourceType": "appointment-status", "id": "10", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-status#name", "valueString": "Online Book" } ] }
Search
Searches for all appointment statuses matching the given search criteria. See https://www.hl7.org/fhir/search.html for instructions on formatting search criteria.
HTTP Request
GET /appointment-status?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
identifier | query | The unique identifier for a single appointment status | N | 15.9 |
name | query | The name of the appointment status | N | 15.9 |
Example: Get a specific appointment status based on identifier
GET https://select.nextech-api.com/api/appointment-status/6
Reponse
{ "resourceType": "appointment-status", "id": "6", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-status#name", "valueString": "Online Book" } ] }
Example: Get all statuses whose name contains 'Online'
GET https://select.nextech-api.com/api/appointment-status?name:contains=Online
Response
{ "resourceType": "Bundle", "type": "searchset", "total": 2, "entry": [ { "resource": { "resourceType": "appointment-status", "id": "6", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-status#name", "valueString": "Online Book" } ] } }, { "resource": { "resourceType": "appointment-status", "id": "7", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/appointment-status#name", "valueString": "Online Hold" } ] } } ] }
Patient-Recall
Patient-Recall
Overview
The patient-recall resource contains information about when a patient is expected to return for an appointment with their provider.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | The unique value assigned to each recall which discerns it from all others | identifier | 14.2 |
created | The date this recall was created in the system | dateTime | 14.2 |
subject | A reference to the patient for whom this recall is for | reference | 14.2 |
extension:practitioner | A reference to the practitioner associated with this recall. Not included if there is no practitioner associated to the recall | reference | 14.2 |
extension:location | A reference to the location associated with this recall. Not included if there is no location associated to the recall | reference | 14.2 |
extension:recall-date | The recall date | date | 14.2 |
extension:recall-status-name | The status of this recall. Possible values include: Need to Schedule, Past Due, Scheduled, Complete, Discontinued | string | 14.2 |
extension:recall-appointment-date | The start time of the appointment that fulfills this recall, if exists | dateTime | 14.2 |
extension:recall-template-name | The name of the recall template this recall is for | string | 14.2 |
extension:recall-step-name | The name of the recall step this recall is for | string | 14.2 |
extension:recall-deleted | Indicates if the recall has been deleted | boolean | 14.4 |
extension:recall-last-updated | The last time the recall was updated | string | 14.4 |
Sample
{ "resourceType": "Bundle", "entry": [ { "resource": { "resourceType": "patient-recall", "identifier": [ { "use": "official", "value": "12312" } ], "created": "2017-07-27T21:09:19.913Z", "subject": { "reference": "Patient/5AAE9E3C-B1E4-46EA-93C2-CF3B36747D1A", "display": "Stephenson, Jim" }, "extension" : [ { "url" : "http://hl7.org/fhir/StructureDefinition/Practitioner", "valueResourceReference": { "reference": "Practitioner/9978", "display": "Davidson, Darren" } }, { "url" : "http://hl7.org/fhir/StructureDefinition/Location", "valueResourceReference": { "reference": "Location/5", "display": "South Dermatology" } }, { "url" : "https://select.nextech-api.com/api/structuredefinition/recall-date", "valueDate" : "2019-12-01" }, { "url" : "https://select.nextech-api.com/api/structuredefinition/recall-status-name", "valueString" : "Scheduled" }, { "url" : "https://select.nextech-api.com/api/structuredefinition/recall-appointment-date", "valueDateTime" : "2018-02-08T05:00:00.000Z" }, { "url" : "https://select.nextech-api.com/api/structuredefinition/recall-template-name", "valueString" : "Melanoma" }, { "url" : "https://select.nextech-api.com/api/structuredefinition/recall-step-name", "valueString" : "2 year follow-up" }, { "url": "https://select.nextech-api.com/api/structuredefinition/recall-deleted", "valueBoolean": false }, { "url": "https://select.nextech-api.com/api/structuredefinition/recall-last-updated", "valueDateTime": "2019-02-22T16:38:23.057Z" } ] } } ] }
Search
Searches for all recalls matching the given search criteria. See https://www.hl7.org/fhir/search.html for instructions on formatting search criteria. By default non-deleted recalls are returned. See deleted search parameter for details
HTTP Request
GET /patient-recall?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
identifier | query | The unique identifier for a single recall | No | 14.2 |
subject | query | The recall's patient reference | No | 14.2 |
created | query | The recall's created date. When searching for recalls within a date range, the following prefixes should be used: lt, gt, eq, le, ge | No | 14.2 |
location | query | The recall's location reference | No | 14.2 |
practitioner | query | The recall's practitioner reference | No | 14.2 |
recall-status-name | query | The status name of the recall. Currently supported values are: Need to Schedule, Past Due, Scheduled, Complete, and Discontinued | No | 14.2 |
recall-date | query | The recall date | No | 14.2 |
deleted | query | The recall's deleted status. Note: If parameter excluded deleted=false behavior is used. |
No | 14.4 |
last-updated | query | The last time the recall was updated Note: You must url encode the + in the UTC date (%2B) | No | 14.4 |
Multiple Search Values
Multiple search values are supported for all fields except dates. To use multiple values, a comma should be placed in between the values you would like to search for. This search results in the values being ORed together.
Example: Get a specific recall based on identifier
GET https://select.nextech-api.com/api/patient-recall/55
Example: Get recalls for a patient
GET https://select.nextech-api.com/api/patient-recall?subject=Patient/5AAE9E3C-B1E4-46EA-93C2-CF3B36747D1A
Example: Get recalls between and including 1/1/2019 through 5/31/2019
GET https://select.nextech-api.com/api/patient-recall?recall-date=ge2019-01-01&recall-date=lt2019-06-01
Example: Get recalls for Dr. Smith or Dr. Jones
GET https://select.nextech-api.com/api/patient-recall?practitioner=practitioner/9323,practitioner/7945
Example: Get recalls for a location by id
GET https://select.nextech-api.com/api/patient-recall?location=location/1
Example: Get recalls for either of 2 locations
GET https://select.nextech-api.com/api/patient-recall?location=location/1,location/2
Example: Get completed recalls
GET https://select.nextech-api.com/api/patient-recall?recall-status-name=complete
Example: Get recalls created on 7/27/2018
GET https://select.nextech-api.com/api/patient-recall?created=eq2018-07-27
Example: Get all non deleted recalls last updated after 07/27/2018
GET https://select.nextech-api.com/api/patient-recall?last-updated=ge2018-07-27T00:00:00.000%2B00:00&deleted=false or GET https://select.nextech-api.com/api/patient-recall?last-updated=ge2018-07-27T00:00:00.000%2B00:00
Example: Get deleted recalls after 07/27/2018
GET https://select.nextech-api.com/api/patient-recall?last-updated=ge2018-07-27T00:00:00.000%2B00:00&deleted=true
Example: Get All recalls after 07/27/2018
GET https://select.nextech-api.com/api/patient-recall?last-updated=ge2018-07-27T00:00:00.000%2B00:00&deleted=true,false
Remarks
- Prior to 14.4 only non-deleted recalls are available.
- By default non-deleted recalls are returned unless specified
Location
Location
Overview
A physical location where services are provided. This may or may not be under the practice's management.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | The unique value assigned to each location which discerns it from all others | Identifier | 12.8 |
status | The status of the location (ie. active, inactive) | code | 12.8 |
managed | True if this location is under practice management, for example the practice's primary office location. False if this location is not under practice management, but where services are provided, for example a hospital or clinic. | boolean | 14.4 |
name | The name of the location | string | 12.8 |
telecom | The contact details of communication at the location | ContactPoint | 12.8 |
address | The address of the location | Address | 12.8 |
Example
{ "resourceType": "Location", "id": "2", "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/managed", "valueBoolean": true } ], "identifier": [ { "use": "official", "value": "2" } ], "status": "active", "name": "South Dermatology", "telecom": [ { "system": "phone", "value": "(727) 623-6100", "use": "work" }, { "system": "other", "value": "(727) 718-9884", "use": "work" }, { "system": "fax", "value": "(727) 623-6187", "use": "work" } ], "address": { "use": "work", "type": "both", "line": [ "1234 Central Ave., Suite N" ], "city": "St. Petersburg", "state": "FL", "postalCode": "11598" } }
Search
Searches for all locations based on the given search criteria.
HTTP Request
GET /Location?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
identifier | query or uri | The unique value assigned to each location which discerns it from all others | No | 12.8 |
status | query | Searches for locations with a specific kind of status. See LocationStatus | No | 12.8 |
includeAll | query | By default, or if includeAll is false, then only managed locations are returned, for example the practice's primary office location. If includeAll is true, then all locations will be returned, whether they are under under practice management or not, but where services are provided, such as a hospital or a clinic. | No | 14.4 |
name | query | The name of the location | No | 12.8 |
address | query | A (part of the) address of the location | No | 12.8 |
address-city | query | A city specified in an address | No | 12.8 |
address-state | query | A state specified in an address | No | 12.8 |
address-postalcode | query | A postal code specified in an address | No | 12.8 |
phone | query | Searches for locations based on phone numbers and fax numbers | No | 12.8 |
Example: Get all active locations
GET https://select.nextech-api.com/api/Location?status=active
Example: Get all locations, including managed and non-managed locations
GET https://select.nextech-api.com/api/Location?includeAll=true
Example: Get all active locations whose city starts with 'Tampa'
GET https://select.nextech-api.com/api/Location?address-city=Tampa&status=active
Example: Get all locations whose name contains 'dermatology'
GET https://select.nextech-api.com/api/Location?name:contains=dermatology
Example: Get a specific location based on identifier
GET https://select.nextech-api.com/api/Location/12
Practitioner
Practitioner
Overview
A individual who is engaged in the healthcare process and healthcare-services. In the Nextech Software, these are providers who are linked to users.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | The unique value assigned to each Practitioner which discerns it from all others | Identifier | 12.8 |
active | Whether this practitioner's record is in active use. | boolean | 12.8 |
name | The name(s) associated with the practitioner | HumanName | 12.8 |
telecom | Contact detail(s) for the practitioner (that apply to all roles) | ContactPoint | 12.8 |
address | Address(es) of the practitioner that are not role specific | Address | 12.8 |
gender | Gender of the practitioner that are not role specific | Code | 12.8 |
birthDate | The date of birth of the practitioner | date | 12.8 |
Example
{ "resourceType": "Practitioner", "identifier": [ { "use": "official", "value": "9219" } ], "identifier": [ { "use": "http://hl7.org/fhir/sid/us-npi", "value": "1245319599" } ], "active": true, "name": [ { "text": "Provider, Test", "family": "Provider", "given": [ "Test", "" ] } ], "telecom": [ { "system": "phone", "value": "(813) 324-2391", "use": "work" }, { "system": "email", "value": "provider@nextech.com", "use": "work" } ], "address": [ { "use": "work", "type": "both", "line": [ "550 W N ST" ], "city": "Tampa", "state": "FL", "postalCode": "33609" } ], "gender": "female", "birthDate": "1970-09-27"
Search
Searches for all based on the given search criteria.
HTTP Request
GET /Practitioner?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
identifier | query or uri | The unique value assigned to each Practitioner which discerns it from all others | No | 12.8 |
active | query | Searches for Practitioners whose record is in active use. | No | 12.8 |
name | query | The name of the Practitioner | No | 12.8 |
family | query | The family (last) name of the practitioner | No | 12.8 |
given | query | The given (first) name of the practitioner | No | 12.8 |
address | query | A (part of the) address of the Practitioner | No | 12.8 |
address-city | query | A city specified in an address | No | 12.8 |
address-state | query | A state specified in an address | No | 12.8 |
address-postalcode | query | A postal code specified in an address | No | 12.8 |
phone | query | Searches for Practitioners based on phone numbers | No | 12.8 |
query | Searches for Practitioner based on email address | No | 12.8 |
Example: Get all active Practitioners
GET https://select.nextech-api.com/api/Practitioner?active=true
Example: Get all active Practitioners whose city starts with 'Tampa'
GET https://select.nextech-api.com/api/Practitioner?address-city=Tampa
Example: Get a specific Practitioner(s) based on gender
GET https://select.nextech-api.com/api/Practitioner?gender=male
Example: Get all Practitioners whose name contains 'smith'
GET https://select.nextech-api.com/api/Practitioner?name:contains=smith
Example: Get a specific Practitioner based on identifier
GET https://select.nextech-api.com/api/Practitioner/12
Remarks
- Providers will not show up as Practitioners unless their Contacts module record has the Linked User setting configured.
- Prior to version 14.1, Practitioners could be returned more than once if multiple users are assigned to use the same provider in their Contacts module User properties.
Account
Account
Overview
A financial tool for tracking value accrued for a particular purpose. In Nextech, it's used to track the patient's responsibility.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | Unique identifier used to reference the account. | Identifier | 12.9 |
name | The name associated with the Account. | string | 12.9 |
status | Indicates whether the account is presently used/usable or not. | CodeableConcept | 12.9 |
type | Categorizes the account for reporting and searching purposes. | CodeableConcept | 12.9 |
balance | Represents the sum of all credits less all debits associated with the account. Might be positive, zero or negative. | Money | 12.9 |
description | Provides additional information about what the account tracks and how it is used. | string | 12.9 |
subject | Identifies the patient or other object the account is associated with. | Reference | 12.9 |
guarantor | Party financially responsible for the account. | BackboneElement | 12.9 |
guarantor.party | The entity who is responsible. | Reference | 12.9 |
}
Example
{ "resourceType": "Account", "id": "3200", "identifier": [ { "use": "official", "value": "3200" } ], "status": "active", "type": { "coding": [ { "system": "https://www.hl7.org/fhir/valueset-account-type.html", "code": "PBILLACCT" } ], "text": "Patient" }, "name": "Test, John", "subject": { "reference": "Patient/59015300-e15b-474c-8314-7864712f6946" }, "balance": { "value": 21 }, "description": "Patient Responsibility", "guarantor": [ { "party": { "reference": "Patient/59015300-e15b-474c-8314-7864712f6946" } } ] }
Search
Searches for all based on the given search criteria.
HTTP Request
GET /Account?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
identifier | query or uri | The unique value assigned to each Account which discerns it from all others. | No | 12.9 |
status | query | Searches for Accounts whose record has the search status. | No | 12.9 |
name | query | The name of the Account. | No | 12.9 |
balance | query | The balance of the Account. | No | 12.9 |
patient | query | The patient the account is tied to. | No | 12.9 |
Example: Get all active Accounts
GET https://select.nextech-api.com/api/Account?status=active
Example: Get accounts with a balance greater than zero
GET https://select.nextech-api.com/api/Account?balance=gt0
Example: Get a specific Account attached to a patient
GET https://select.nextech-api.com/api/Account?patient=59015300-e15b-474c-8314-7864712f6946
Example: Get all Accounts whose name contains 'smith'
GET https://select.nextech-api.com/api/Account?name:contains=smith
Example: Get a specific Account based on identifier
GET https://select.nextech-api.com/api/Account/12
Coverage
Coverage
Overview
The Coverage resource provides patient insurance information which may be used to pay for the provision of health care products and services.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | The unique identifer for the coverage | Identifier | 12.9 |
status | The status of the coverage | code | 12.9 |
type | The type of coverage (ie. Medical, Vision, Dental, Auto, Workers' Comp). See Coverage Type Codes | CodeableConcept | 12.9 |
subscriber | The subscriber to the policy | Reference(Patient or RelatedPerson) | 12.9 |
subscriberId | The identifier assigned to the subscriber | string | 12.9 |
beneficiary | The patient who benefits from the coverage | Reference(Patient) | 12.9 |
relationship | The beneficiary (or patient) relationship to the subscriber. See Policyholder Relationship Codes | CodeableConcept | 12.9 |
period | The coverage effective and expiry dates (if available) | Period | 12.9 |
payor | The reference to the insurance company providing the insurance coverage | Reference(Organization) | 12.9 |
grouping.group | The policy group number for the coverage | string | 12.9 |
grouping.planDisplay | The insurance plan name and type | string | 12.9 |
order | The relative order of the coverage | positiveInt | 12.9 |
Extensions
Name | Description | Url | Type | Initial Version |
---|---|---|---|---|
copay-amount | The copay amount for the 'Copay' pay group | https://select.nextech-api.com/api/structuredefinition/copay-amount |
Money | 12.9 |
copay-percentage | The copay percentage for the 'Copay' pay group | https://select.nextech-api.com/api/structuredefinition/copay-percentage |
Integer | 12.9 |
Example
{ "resource": { "resourceType": "Coverage", "contained": [ { "resourceType": "RelatedPerson", "id": "6783", "identifier": [ { "use": "official", "value": "6783" } ], "name": [ { "text": "David M Aaron", "family": "Aaron", "given": [ "David", "M" ] } ], "gender": "male", "address": [ { "use": "home", "type": "both", "line": [ "123 Fake Street" ], "city": "Saint Petersburg", "state": "FL", "postalCode": "33716" } ] }, { "resourceType": "Organization", "id": "14", "identifier": [ { "use": "official", "value": "14" } ], "type": [ { "coding": [ { "system": "http://hl7.org/fhir/organization-type", "code": "ins", "display": "Insurance Company" } ] } ], "name": "Blue Cross/Blue Shield", "address": [ { "use": "home", "type": "both", "line": [ "123 Great Payment Way" ], "city": "Dallas", "state": "TX", "postalCode": "75201" } ] } ], "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/copay-amount", "valueMoney": { "value": 25 } } ], "status": "active", "type": { "coding": [ { "system": "http://hl7.org/fhir/v3/ActCode", "code": "EHCPOL", "display": "extended healthcare" } ] }, "subscriber": { "reference": "#6783", "display": "Aaron, David M" }, "subscriberId": "12345678", "beneficiary": { "reference": "Patient/ce2a5ae0-3514-4f63-8609-911da841e72e", "display": "Aaron, Jane M" }, "relationship": { "coding": [ { "system": "http://hl7.org/fhir/policyholder-relationship", "code": "spouse", "display": "Spouse" } ] }, "payor": [ { "reference": "#14", "display": "Blue Cross/Blue Shield" } ], "grouping": { "group": "abc123", "planDisplay": "Blue Cross/Blue Shield - Group Health Plan" }, "order": 2 } }
Search
Searches for all active coverages (insured parties) based on the given search criteria.
HTTP Request
GET /Coverage?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
patient | query | Search coverages by patient identifier | N | 12.9 |
beneficiary | query | Search coverages by patient identifier | N | 12.9 |
Example: Get coverages for a single patient
GET https://select.nextech-api.com/api/Coverage?patient=ce2a5ae0-3514-4f63-8609-911da841e72e
Claim
Claim
Overview
A list of services and products provided, or to be provided, to a patient.
Fields
Name | Description | Type | Initial Version |
---|---|---|---|
identifier | Unique identifier used to reference the Claim. | Identifier | 12.9.20 |
name | The name associated with the Claim. | string | 12.9.20 |
status | Indicates whether the Bill or Quote is presently active or cancelled. If a Bill is deleted or voided it will have a status of Cancelled. If a closed bill is corrected, the original bill will be voided with a status of Cancelled and a new bill will be created to replace it with an Active status. | CodeableConcept | 12.9.20 |
total | The total value of the claim. | Money | 12.9.20 |
use | Complete (Bill ), Exploratory (Quote). | Code | 12.9.20 |
billablePeriod | The billable period for which charges are being submitted. | Period | 12.9.20 |
created | The date when the enclosed suite of services were performed or completed. | dateTime | 12.9.20 |
patient | Identifies the patient the Claim is associated with. | Reference | 12.9.20 |
facility | Place of service where the services were provided. | Reference | 12.9.20 |
careTeam | The members of the team who provided the overall service. | Reference | 12.9.20 |
diagnosis | List of patient diagnosis for which care is sought. | Control | 12.9.20 |
diagnosis.sequence | Sequence of diagnosis. | positiveInt | 12.9.20 |
diagnosis.diagnosis | The diagnosis | CodeableConcept | 12.9.20 |
item | First tier of goods and services. | Control | 12.9.20 |
item.careTeamLinkId | CareTeam applicable for this service or product line. | positiveInt | 12.9.20 |
item.service | Code to indicate the Professional Service or Product supplied. | CodeableConcept | 12.9.20 |
item.modifier | Item typification or modifiers codes | CodeableConcept | 12.9.20 |
item.serviced | The date or dates when the enclosed suite of services were performed or completed. | date | 12.9.20 |
item.location | Place of service code. | CodeableConcept | 12.9.20 |
item.item.quantity | The number of repetitions of a service or product. | SimpleQuantity | 12.9.20 |
item.unitPrice | Fee for the product or service. | Money | 12.9.20 |
item.net | The quantity times the unit price for an additional service or product or charge. | Money | 12.9.20 |
meta.lastUpdated | The last time the claim was modified | instant | 14.3 |
Extensions
Name | Description | Url | Type | Initial Version |
---|---|---|---|---|
item-status | Indicates whether the Charge line is presently active or cancelled. If a Charge is deleted or voided it will have a status of Cancelled. If a closed charge is corrected, the original Charge will be voided with a status of Cancelled and a new Charge will be created to replace it with an Active status. | https://select.nextech-api.com/api/structuredefinition/item-status | CodeableConcept | 12.9.20 |
claim-item-identifier | Identifier for the claim item. | https://select.nextech-api.com/api/structuredefinition/claim-item-identifier | Identifier | 14.3 |
Example
{ "resourceType": "Claim", "id": "58179", "meta": { "lastUpdated": "2018-01-25T13:23:00.55+00:00" }, "identifier": [ { "use": "official", "value": "58179" } ], "status": "active", "use": "complete", "patient": { "reference": "Patient/9ad0f4a0-f407-4df8-9561-767e09d3e8df" }, "billablePeriod": { "start": "6/13/2018" }, "created": "6/13/2018", "facility": { "reference": "Location/1" }, "careTeam": [ { "sequence": 1, "provider": { "reference": "Practitioner/9323" } } ], "diagnosis": [ { "diagnosisCodeableConcept": { "coding": [ { "system": "ICD-10", "code": "M23.42" } ], "text": "Loose body in knee, left knee" } } ], "item": [ { "extension": [ { "url": "https://select.nextech-api.com/api/structuredefinition/item-status", "valueString": "active" } ], "careTeamLinkId": [ 1 ], "service": { "coding": [ { "system": "http://hl7.org/fhir/ValueSet/service-uscls", "code": "99244" } ], "text": "CONSULT LEVEL 4" }, "servicedDateTime": "6/13/2018", "locationCodeableConcept": { "coding": [ { "system": "http://hl7.org/fhir/ValueSet/service-place", "code": "11" } ], "text": "Office" }, "quantity": { "value": 1 }, "unitPrice": { "value": 125 }, "net": { "value": 125 } } ], "total": { "value": 125 } }
Search
Searches for all based on the given search criteria.
HTTP Request
GET /Claim?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
_lastUpdated | query | The date the claim was last modified formatted as yyyy-MM-dd. We also support the format yyyy-MM-ddThh:mm:ss[Z|(+|-)hh:mm] . Note that the + character must be URL encoded. (i.e. %2B ) |
No | 14.3 |
identifier | query or uri | The unique value assigned to each Claim which discerns it from all others. | No | 12.9.20 |
use | query | The use of the Claim. (exploratory for quote or complete for bill) | No | 12.9.20 |
facility | query | The place of service for the Claim. | No | 12.9.20 |
patient | query | The patient the Claim is tied to. | No | 12.9.20 |
created | query | The date the Claim was created. | No | 12.9.20 |
care-team | query | Member of the CareTeam. | No | 12.9.20 |
Example: Get Claims with a particular place of service
GET https://select.nextech-api.com/api/Claim?facility=1
Example: Get Claims with a use of complete
GET https://select.nextech-api.com/api/Claim?use=complete
Example: Get a specific Claims attached to a patient
GET https://select.nextech-api.com/api/Claim?patient=59015300-e15b-474c-8314-7864712f6946
Example: Get all Claims that were created on a certain date
GET https://select.nextech-api.com/api/Claim?created=2018-06-01
Example: Get a specific Claim based on identifier
GET https://select.nextech-api.com/api/Claim/12
PaymentReconciliation
PaymentReconciliation
Overview
A list of payments, adjustments, and refunds. Can be insurance or self-pay.
Body Fields
Name | Description | Type | Initial Version |
---|---|---|---|
requestProvider | The responsible practitioner. | Reference(Practitioner) | 14.2 |
total | The PaymentReconciliation amount total. | Money | 14.2 |
processNote | The PaymentReconciliation description. | BackboneElement | 14.2 |
created | The creation date. | dateTime | 14.2 |
status | The status of the PaymentReconciliation. This will be one of the following values active, cancelled ( voided ), entered-in-error ( deleted ) . • For purposes of calculating the current balance of a patient account, Cancelled transactions may be excluded. • For purposes of keeping a history of financial transactions that happened in a specific accounting period (by input date field/effective date extension) then the cancelled transactions should be included. • When a transaction is Voided in Nextech, the original transaction remains unchanged in the original accounting period, but has a status of ‘Cancelled’. A new transaction that is the exact opposite of the original is created with a current input date/effective date and also has a status of ‘Cancelled’. The net of these transactions are $0. • When a transaction is Voided & Corrected in Nextech, the original transaction remains unchanged in the the original accounting period, but has a status of ‘Cancelled’. A new transaction that is the exact opposite of the original is created with a current input date/effective date and also has a status of ‘Cancelled’. The net of these transactions are $0. A new “corrected” transaction is also created which is an copy of the original transaction, except for the input/effective date. The “corrected” transaction may be edited by the practice to change properties of the payment like the provider, location, amount, etc. |
code | 14.2 |
organization | The Insurer who is associated with the PaymentReconciliation. ( Insurance payments, adjustments and refunds only ). If there is no organization associated with a PaymentReconciliation, the PaymentReconciliation is in reference patient responsibility. | Reference(Organization) | 14.2 |
detail | List of individual settlement amounts and the corresponding transaction. | Control | 14.2 |
detail.request | The claim or financial resource. | Reference(Claim) | 14.2 |
detail.type | Code to indicate the nature of the payment or adjustment (refund is categorized as a payment with negative amount). See Payment Type Codes | Code | 14.2 |
detail.amount | Amount paid for this detail. ( payments, adjustments, or refund amount applied to claim ) | Money | 14.2 |
meta.lastUpdated | The last time the payment, adjustment, or refund was modified | instant | 14.3 |
Extensions
Name | Description | Url | Type | Initial Version |
---|---|---|---|---|
extension: claim-item | Reference to a claim item. | https://select.nextech-api.com/api/structuredefinition/claim-item |
Reference(Claim.item) | 14.3 |
extension: applied-amount | The amount applied to a claim item from the PaymentReconciliation. | https://select.nextech-api.com/api/structuredefinition/applied-amount |
Money | 14.3 |
extension: payment-method | The PaymentReconciliation method. | https://select.nextech-api.com/api/structuredefinition/payment-method |
string | 14.2 |
extension: payment-date | The PaymentReconciliation date. | https://select.nextech-api.com/api/structuredefinition/payment-date |
dateTime | 14.2 |
extension: effective-date | The PaymentReconciliation input date. | https://select.nextech-api.com/api/structuredefinition/effective-date |
dateTime | 14.2 |
extension: deposited-date | The PaymentReconciliation deposit date. | https://select.nextech-api.com/api/structuredefinition/deposit-date |
dateTime | 14.2 |
extension: payment-category | The PaymentReconciliation category. | https://select.nextech-api.com/api/structuredefinition/payment-category |
string | 14.2 |
extension: credit-cardtype | The PaymentReconciliation credit card type. | https://select.nextech-api.com/api/structuredefinition/credit-cardtype |
string | 14.2 |
extension: check-number | The PaymentReconciliation check number | https://select.nextech-api.com/api/structuredefinition/check-number |
string | 14.2 |
extension: location | The PaymentReconciliation location reference. The practice must have at least one Location resource with this identifier. | http://hl7.org/fhir/StructureDefinition/Location |
Reference(Location) | 14.2 |
Example
{ "resourceType": "PaymentReconciliation", "id": "126671", "contained": [ { "resourceType": "Organization", "id": "14", "meta": { "lastUpdated": "2018-12-13T09:39:30.827+00:00" }, "identifier": [ { "use": "official", "value": "14" } ], "type": [ { "coding": [ { "system": "http://hl7.org/fhir/organization-type", "code": "ins", "display": "Insurance Company" } ] } ], "name": "Blue Cross/Blue Shield", "address": [ { "use": "work", "type": "both", "line": [ "123 Great Payment Way" ], "city": "Dallas", "state": "TX", "postalCode": "75201" } ] } ], "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/Patient", "valueResourceReference": { "reference": "Patient/1ed5d91a-ce2d-4551-98d9-eecfc3b1ed2c", "display": "RevAPI, Test" } }, { "url": "http://hl7.org/fhir/StructureDefinition/Location", "valueResourceReference": { "reference": "Location/1", "display": "NexTech Dermatology" } }, { "url": "https://select.nextech-api.com/api/structuredefinition/payment-date", "valueDateTime": "2018-12-12T05:00:00.000Z" }, { "url": "https://select.nextech-api.com/api/structuredefinition/effective-date", "valueDateTime": "2018-12-12T15:13:24.690Z" }, { "url": "https://select.nextech-api.com/api/structuredefinition/payment-method", "valueString": "Check" }, { "url": "https://select.nextech-api.com/api/structuredefinition/payment-category", "valueString": "CO- Patient Co-Pay" } ], "identifier": [ { "use": "official", "value": "126671" } ], "status": "active", "created": "2018-12-12T15:13:24.690Z", "organization": { "reference": "#14", "display": "Blue Cross/Blue Shield" }, "detail": [ { "type": { "coding": [ { "system": "http://hl7.org/fhir/payment-type", "code": "payment" } ] }, "request": { "reference": "Claim/58195" }, "amount": { "value": 1000 } } ], "total": { "value": 1000 }, "processNote": [ { "type": { "coding": [ { "system": "NoteType", "code": "display" } ] }, "text": "Insurance Payment" } ] }
Search
Searches for all based on the given search criteria.
HTTP Request
GET /PaymentReconciliation?{parameters}
Parameters
Name | Located in | Description | Required | Initial Version |
---|---|---|---|---|
_lastUpdated | query | The date the payment was last modified formatted as yyyy-MM-dd. We also support the format yyyy-MM-ddThh:mm:ss[Z|(+|-)hh:mm] . Note that the + character must be URL encoded. (i.e. %2B ) |
No | 14.3 |
identifier | query or uri | The unique value assigned to each PaymentReconciliation. | No | 14.2 |
location.id | query | The location for the PaymentReconciliation. | No | 14.2 |
patient | query | The patient the PaymentReconciliation is tied to. | No | 14.2 |
created | query | The date the PaymentReconciliation was created. | No | 14.2 |
status | query | The status of the PaymentReconciliation. This must be one of the following active, cancelled ( voided ), entered-in-error ( deleted ). | No | 14.2 |
payment-date | query | The date of service for the PaymentReconciliation. | No | 14.2 |
request-provider | query | The provider associated with the PaymentReconciliation. This is a practitioner reference. | No | 14.2 |
Example: Get PaymentReconciliations with a particular place of service
GET https://select.nextech-api.com/api/PaymentReconciliation?location.id=1
Example: Get PaymentReconciliations with a status of active
GET https://select.nextech-api.com/api/PaymentReconciliation?status=active
Example: Get a specific PaymentReconciliations attached to a patient
GET https://select.nextech-api.com/api/PaymentReconciliation?patient=59015300-e15b-474c-8314-7864712f6946
Example: Get all PaymentReconciliations that were created on a certain date
GET https://select.nextech-api.com/api/PaymentReconciliation?created=2018-06-01
Example: Get all PaymentReconciliations on a certain date of service.
GET https://select.nextech-api.com/api/PaymentReconciliation?payment-date=2018-06-01
Example: Get all PaymentReconciliations for a certain practitioner.
GET https://select.nextech-api.com/api/PaymentReconciliation?request-provider=1
Example: Get a specific PaymentReconciliation based on identifier
GET https://select.nextech-api.com/api/PaymentReconciliation/12
Frequently Asked Questions
Resetting Expired Credentials
If your credentials expire you will have to reset them by:
- Going to Azure Active Directory by clicking here.
- Enter your expired credentials.
- Follow the prompts it gives you.
- Your password is now reset.
Missing Practitioners
If the practitioners endpoint is not showing all of the expected practitioners check this before opening a support case.
- Inside the Nextech application go to the Contacts module, select the provider that is not showing up.
- Confirm that the practitioner is not marked Inactive on the checkbox on the right hand side.
- Find the "Linked User" section and confirm that it is mapped to a unique account that is just for that practitioner.
Practitoners need their own user account to work with the practitoners endpoint. Additional documentation can be provided on request.