Introduction
The Nextech IntelleChartPRO APIs provide secure access to patient data through a RESTful implementation based on the R4 (4.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:
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, and must use TLS 1.2. 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 for authorization. These credentials will be provided to you by your Nextech representative, and vary depending on how you wish to integrate with the Nextech API. There are two different authorization models available for accessing the Nextech API: SMART App authorization, and partner authorization. See each linked authorization section for more information on each, including how to register your application with the Nextech API and acquire the necessary credentials.
Base API Endpoint
https://api.intellechart.net/icp-fhir-api/
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
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.
Using Postman
You can use Postman to make a simple request to the metadata endpoint:
GET https://api.intellechart.net/icp-fhir-api/metadata
Each rest.resource member in the metadata response contains information about all FHIR resources that are supported, along with the supported interactions and search parameters for each resource.
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://api.intellechart.net/icp-fhir-api/[type]?[field1][:modifier1]=[value1]&[field2][:modifier2]=[value2]...
where [type] refers to a resource such as Patient or Immunization 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://api.intellechart.net/icp-fhir-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: Search for encounters for the patient with the id '9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192' that took place between and including 1/1/2022 through 11/14/2022
GET https://api.intellechart.net/icp-fhir-api/Encounter?patient=patient/9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192&date=ge2022-01-01&date=lt2022-11-14
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://api.intellechart.net/icp-fhir-api/Patient?family:exact=Smith
Example: Get all patients whose last name contains the text "mit"
GET https://api.intellechart.net/icp-fhir-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://api.intellechart.net/icp-fhir-api/api/Patient/r4?identifier=ge100&identifier=le200
Example: Search for immunizations for the patient with the id '9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192' administered between and including 1/1/2022 through 11/14/2022
GET https://api.intellechart.net/icp-fhir-api/Immunization?patient=patient/9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192&date=ge2022-01-01&date=lt2022-11-14
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://api.intellechart.net/icp-fhir-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://api.intellechart.net/icp-fhir-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 immunizations for the month of October 2022
GET https://api.intellechart.net/icp-fhir-api/Immunization?date=ge2022-10-01&date=lt2022-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://api.intellechart.net/icp-fhir-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://api.intellechart.net/icp-fhir-api/Patient?address=1500
Writing
Currently, no write calls are supported.
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 https://api.intellechart.net/icp-fhir-api/Patient?_count=25
Response Codes
The Nextech IntelleChartPRO 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 |
| 401 | Unauthorized - The request lacks valid authentication credentials |
| 403 | Forbidden - The request is valid, but the server is refusing action |
| 404 | Not Found - The requested resource cannot be found |
| 408 | Request Timeout - Client did not send a request in the time the server was expecting |
| 422 | Unprocessable Entity - Unable to process the contained instructions |
| 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 |
| 501 | Not Implemented Error - Requested implementation is not available |
| 502 | Bad Gateway - Communication has been disrupted |
| 523 | Authentication Fault - Unexpected exception in regards to authentication |
Exception Handling
- Exceptions are logged and monitored by the Nextech staff.
- Any request related exceptions will be returned to the user with the appropriate 4xx/5xx code as noted above.
- Any unexpected exceptions will result in a 500 error response and indicate there is an issue with the API and/or connected services.
Remarks
Some resources contain a Remarks section at the end of its documentation page, which contains details on common questions and solutions for that resource.
SMART App Authorization
SMART on FHIR Technology Overview
SMART on FHIR Authorization Overview
SMART apps are able to access through SMART on FHIR authorization standards.
- For an individual patient or practitioner's data, the app can follow the SMART App Launch 1.0.0 specification.
- For the information from an entire practice via background system apps, authorization is granted via the SMART Backend Services Authorization (STU 1.0.1) specification.
- Additionally, if a System-level app needs to access Bulk FHIR export functionality, follow the client-specific guidance in the FHIR Bulk Data Access (Flat FHIR, STU 1.0.1) specification specification and the System apps section of this page's documentation for guidance.
Registration
In order to create a SMART app that can access FHIR resources from the Nextech API, the app must first be registered with Nextech, and issued required authentication information. Visit the app registration form to submit your request. There are a few different pieces of information that will need to be provided to Nextech upon app registration, which vary depending on the SMART app's use case:
- The name of the application
- If the app is a public or confidential client.
- A list of Redirect URIs the user is allowed to be redirected back to following authentication.
- This is not required for SMART Backend Services.
- Which of the following types of apps is being registered
- A patient app
- A practitioner app operating solely in a practitioner context
- A practitioner app operating solely in a patient context
- A practitioner app operating in both a practitioner and a patient context
- A secure SMART Backend Service with no user interaction
- The app must be confidential if it is a SMART Backend Service
- If the app is a practitioner app the following must also be provided:
- A "Launch URL" (see the SMART App Launch Framework documentation for more details)
- An EHR Launch Description that will be displayed in the Nextech EHR UI for practice staff use.
- If the app is browser-based the following must also be provided:
- The allowed origin address that the app will make calls to the Nextech API from for CORS
- If the app is a backend service the following must also be provided:
- A TLS 1.2 protected URL to the public JWK Set utilized by the app for JWT (JSON Web Key) credential signing must be provided. See the SMART Backend Services: Authorization Guide documentation for more details.
- The Portal Practice ID of the practice the client will communicate with.
Public and Confidential Clients
If the app is capable of securely storing a secret, it is considered to be a confidential client, and will be issued a client secret, along with a client ID, after the Nextech app registration process has completed. Both of these must be used to authenticate with the Nextech authorization server. NOTE: This secret value will only be received once: Make sure the Client Secret is securely stored and maintained; Nextech will not be able to provide this secret value again once registration has completed.
If the app is not capable of securely storing a secret, then it is considered to be a public client, and will only be issued a client ID after the Nextech app registration process has completed. NOTE: Because Nextech requires the use of PKCE (see the "PKCE" section of this documentation below for more details), native apps may store refresh tokens, despite being "public" clients. Such apps must properly secure such refresh tokens.
Examples of confidential clients include:
- Web apps where a secure backend server exists, and this server is what is used handle the code exchange with the Nextech authorization server
- Mobile apps where a secure backend server exists, and this server is what is used handle the code exchange with the Nextech authorization server
Examples of public clients include:
- Native mobile apps where the app is installed on a user's device and does not have a separate secure backend server (aside from the FHIR server that it calls into). If a client secret were stored on a device like this, a malicious user could theoretically decompile the app and retrieve it
- Single page web apps. Users have access to the source code of such an app, so a client secret cannot be securely stored
Supported SMART on FHIR app types
There are three different types of SMART apps that Nextech supports for communicating with the Nextech API:
Patient-facing apps
SMART apps of this type are intended for use by a single patient, and require that the patient (and their associated practice) be setup with a myPatientVisit patient portal user account. Once setup, patient apps must follow the standlone launch (1.0.0) sequence, as defined by the SMART app framework specification, which uses the authorization code flow (described further below).
Patient-facing apps must request, at a minimum, the below scopes in their authentication request to the Nextech authorization server, in addition to whatever other access scopes are required by the application:
openidlaunch/patient
Practitioner-facing apps
SMART apps of this type are for use by a practitioner within a practice, and can be allowed to access all patient information in the practice, or can instead be focused on a single patient at a time. The practice that the practitioner is associated with must be setup with myPatientVisit. Once setup, practitioner apps may follow either the standlone launch sequence (1.0.0) or the EHR launch sequence (1.0.0) as defined by the SMART app framework specification, both of which use the authorization code flow (described further below).
For practitioner apps following the EHR launch sequence, the app that resides at the launch URL provided to Nextech upon client registration must use the provided iss URL parameter, which should always point to the Nextech API URL ( https://api.intellechart.net/icp-fhir-api) to query either the Nextech API 's metadata endpoint (https://api.intellechart.net/icp-fhir-api/metadata) or SMART configuration endpoint (https://api.intellechart.net/icp-fhir-api/.well-known/smart-configuration), both of which contain in their responses OAuth authorize and token endpoint URLs for use in requesting authorization to access the Nextech API via the Nextech authorization server.
Practitioner-facing apps must request, at a minimum, the below scopes in their authorization request to the Nextech authorization server, in addition to whatever other access scopes are required by the application:
openidlaunch/patient(if doing a standalone launch that requires patient context)launch(if doing an EHR launch with patient context already provided as a URL parameter to the app's registered launch URL)
Authorization code flow
The authorization code workflow, which must be used by both patient- and practitioner-facing SMART apps, follows the below steps, and must use PKCE with a SHA-256 code challenge hashing scheme :
Step 1. The SMART app redirects the user to the Authorization Server (or in the case of a native application, opens a web browser) at a URL similar to the following:
https://sts.mypatientvisit.com/connect/authorize?aud=https://api.intellechart.net/icp-fhir-api&response_type=code&client_id={appClientID}&scope=openid%20offline_access%20fhirUser%20launch%2Fpatient%20patient%2FAllergyIntolerance.read&redirect_uri=https%3A%2F%2FmySmartApp.com%2Fcallback&code_challenge={sha256HashOfRandomString}0&code_challenge_method=S256&state={someUnpredictableValue}
URL parameter notes:
| Name | Description |
|---|---|
| aud | This is the base URL to the Nextech API that the app is requesting access to pull FHIR resources from, and will always be https://api.intellechart.net/icp-fhir-api |
| response_type | This is always set to code for the authorization flow |
| client_id | This is the unique identifier for the SMART application, issued by Nextech |
| scope | indicates the space-delimited set of scopes that the SMART app is requesting |
| redirect_uri | This is the URI that belongs to the SMART application, which the app user will be redirected to, once the authorization flow completes |
| code_challenge | This is the Base64-encoded SHA-256 hash of the random string generated for the request (as part of PKCE) |
| code_challenge_method | This should always be S256, to indicate the hashing method of the code_challenge value that is supplied, for use with PKCE |
| state | An unpredictable value with at least 122 bits of entropy (e.g., a properly configured random UUID is suitable) that is tied to the user's current session, and can be verified at the end of the authorization code flow to make sure that no replay attacks have occurred |
Step 2: The Nextech authorization server presents the user with a login screen. For patient-facing SMART applications, patients will need to sign in using their myPatientVisit user account, select a patient, and then consent to the scopes that they want to allow the app to use to request information on their behalf. For practitioner-facing SMART applications, the practitioner will be prompted to log in using their Nextech software's user credentials (and, if the launch/patient scope is requested for a standalone launch sequence, select a patient context to use for the application), and then consent to the scopes that they want to allow the app to use to request information on their behalf.
Step 3: The Nextech authorization server redirects the user back the the redirect_uri that was provided in step 1, and adds a code parameter onto the URL, which is a temporary authorization code provided by the Nextech authorization server that the SMART app now must exchange in order to get a back an access token that can be used to access the Nextech API's FHIR resources. Additionally, the state parameter should be verified to be the same state token provided in the request in step 1. Example:
https://mySmartApp.com/callback?code=aded553gr3g7dggakG&state={someUnpredictableValue}
Step 4: The SMART app now must call the Nextech authorization server to exchange its authorization code for an access token, which it must do via a request like below:
POST /connect/token Content-Type: application/x-www-form-urlencoded Authorization: Basic [client ID and secret]client_id={appClientID}&grant_type=authorization_code&code=aded553gr3g7dggakG&redirect_uri=https://mySmartApp.com/callback&scope=openid%20offline_access%20fhirUser%20launch%2Fpatient%20patient%2FAllergyIntolerance.read&aud=https://api.intellechart.net/icp-fhir-api&code_verifier={someRandomString}
Header notes:
| Name | Description |
|---|---|
| Content-Type | must be set to application/x-www-form-urlencoded |
| Authorization | This header is optional, and must only be used if the SMART app client is a confidential client (i.e. it has a client secret configured that it is capable of securely storing). This header uses Basic auth, which will have the string Basic, followed by a space, followed by the Base-64 encoding of the string in the form [client ID]:[client secret]. |
Parameter notes:
| Name | Description |
|---|---|
| client_id | This is the same Nextech-issued client ID that was used in step 1 above |
| grant_type | This is always set to authorization_code |
| code | This is code received from the Nextech authorization server in step 3 above |
| redirect_uri | This must match the URI used in step 1 above |
| scope | This must match the scopes used in step 1 above |
| code_verifier | This is the original (unhashed) random string that was provided in a hashed format in the code_challenge parameter in step 1 above |
The Nextech authorization server will then respond to with a response similar to below, which includes an access token that can now be used by the SMART app to access FHIR resources within the Nextech API:
{
"access_token":"eyJraWQiOiJ1.eyJhenAiOiJteS1jbGllb.Bv42OB0f",
"id_token":"eyJra33ed8dofh.doh3ohfeisgdOiJteS1jbGllb.u44hdhB0p",
"token_type":"bearer",
"expires_in":900,
"scope":"openid fhirUser launch/patient patient/AllergyIntolerance.read",
"patient":"123",
"encounter":null,
"smart_style_url":"https://sts.mypatientvisit.com/css/smart-style.json?v=133092895520000000",
"need_patient_banner": false
}
Response body notes:
| Name | Description |
|---|---|
| id_token | returned if the openid and/or fhirUser scopes are approved by the SMART app user. Contains information about the user. The fhirUser claim within this token can be used to retrieve information about the user via a FHIR resource endpoint |
| patient | Patient ID indicating that the app launched in the context of a patient with this ID. Any patient-level scopes will be scoped to this particular patient |
| encounter | Encounter ID, indicating that the app launched in the context of a particular encounter. Currently returned, but not supported |
| need_patient_banner | Used in EHR launches for practitioner apps. Indicates whether or not the app was launched in a context that requires a patient banner be displayed |
| smart_style_url | Used in EHR launches for practitioner apps. URL where styling information can be found, for apps that support styling |
Additionally, if the offline_access scope is requested by the app (recommended, or else the app will have to frequently re-authenticate with the Nextech authorization server), and consented to by the SMART app user, then the response body will contain a refresh_token member containing a refresh token that can be used to acquire a new access_token once the one received in the response expires (in the amount of time, in seconds, indicated by the expires_in response body member).
PKCE
PKCE, using a SHA-256 hashing method for its code challenge values, must be used with all SMART apps following the authorization code flow (so any apps that require user interaction), so that potential interception attacks can be mitigated. PKCE requires that the SMART app add an additional token to the initial authorization request, and then requires the SMART app to submit a verifier during the code exchange step that can be used as additional proof that no "man in the middle" has intercepted the authorization code and is trying to maliciously redeem it.
In order to use PKCE, the SMART app must first generate a random string to use as a challenge value. This should be a new random string each time PKCE is used. Once the random string is generated, create a SHA-256 hash of the random string and Base64-encode it for use as the code_challenge URL parameter in authorize request. This is the first step of the authorization code flow.
System apps
SMART apps of this type have no need for user interaction, can run autonomously (or semi-autonomously), and are capable of protecting a private key. System apps must follow the SMART Backend Services Authorization (STU 1.0.1) specification for authentication/authorization, which requires that SMART apps follow the client credentials flow, with JWT credentials, which is described below. The practice that the system app wishes to access must be setup with myPatientVisit, and established at app registration time.
Client credentials flow with JWT credentials
System apps follow a variation of the client credentials flow, one that uses a cryptographically secure, signed JWT (JSON Web Token) that it presents to the Nextech authorization server, instead of a client secret. This flow is fully defined in RFC 7526.
In order to authenticate, the SMART app must first create a JWT resembling the following, and digitally sign it using the SMART app's private key (which must be either an RS384 or ES384 signature):
{
"jti":"random-non-reusable-jwt-id-12",
"sub":"my-client-id",
"iss":"my-client-id",
"aud":"http:\/\/example.com\/issuer\/oauth\/token",
"kid":"some-key-id",
"exp":1623019405,
"iat":1623019345
}
Important to note:
- The
subandissclaims within the JWT must be the Nextech-issued client ID of the application, and must be exactly the same - The
audclaim is the token endpoint of the Nextech authorization server
After the JWT is digitally signed, it must be sent to the Nextech authorization server with a request like below:
POST /connect/token Accept: application/json Content-Type: application/x-www-form-urlencodedgrant_type=client_credentials &client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer &client_assertion=[signed JWT] &scope=[spaceDelimitedDesiredScopes]
The Nextech authorization server will then respond with a response like below, containing an access token that the system app can use to access FHIR resources from the Nextech API:
{
"access_token":"eyJraWQiOiJ1bml0dG.eyJhenAiOiJteS1j.THbNnfuX7Ly4g",
"token_type":"bearer",
"expires_in":900,
"scope":"[spaceDelimitedDesiredScopes]"
}
Scopes
Nextech currently only supports scopes that adhere to the format defined in version 1.0.0 of the SMART app specification, as indicated here. The full list of scopes supported by the Nextech API for SMART apps (depending on the type of SMART app) are as follows:
For patient or practitioner-facing apps:
openidfhirUseroffline_access(needed in order to receive a refresh token)
For patient-facing apps (standalone patient apps, or practitioner apps acting in a patient context):
launch/patientpatient/*.readpatient/Account.readpatient/AllergyIntolerance.readpatient/CarePlan.readpatient/CareTeam.readpatient/Condition.readpatient/Device.readpatient/Binary.readpatient/DiagnosticReport.readpatient/DocumentReference.readpatient/Encounter.readpatient/Goal.readpatient/Immunization.readpatient/Location.readpatient/MedicationRequest.readpatient/Observation.readpatient/Organization.readpatient/Patient.readpatient/Practitioner.readpatient/Procedure.readpatient/Provenance.read
For practitioner-facing apps:
launchuser/*.readuser/Account.readuser/AllergyIntolerance.readuser/CarePlan.readuser/CareTeam.readuser/Condition.readuser/Device.readuser/Binary.readuser/DiagnosticReport.readuser/DocumentReference.readuser/Encounter.readuser/Goal.readuser/Immunization.readuser/Location.readuser/MedicationRequest.readuser/Observation.readuser/Organization.readuser/Patient.readuser/Practitioner.readuser/Procedure.readuser/Provenance.read
For secure, system apps that require no user interaction:
system/*.readsystem/Account.readsystem/AllergyIntolerance.readsystem/CarePlan.readsystem/CareTeam.readsystem/Condition.readsystem/Device.readsystem/Binary.readsystem/DiagnosticReport.readsystem/DocumentReference.readsystem/Encounter.readsystem/Goal.readsystem/Immunization.readsystem/Location.readsystem/MedicationRequest.readsystem/Observation.readsystem/Organization.readsystem/Patient.readsystem/Practitioner.readsystem/Procedure.readsystem/Provenance.read
All scope names map to the FHIR resource endpoint that they can be used against. For example, a SMART app using an access token that has been granted the patient/Encounter.read, user/Encounter.read, or system/Encounter.read scopes can use that token against the GET https://api.intellechart.net/icp-fhir-api/Encounter/{someEncounterID} endpoint to grab information about a particular encounter.
Important note: Writing-related scopes are currently not supported. Additionally, SMART apps must only request the bare minimum scopes that are required for their app to function.
Example of SMART App Authorization With Postman
Once you have been issued a client ID (and client secret, if capable of securing one) from Nextech, you can use Postman to test grabbing an access token using your app credentials:
1. For a given Postman collection go to the Authorization tab
1. Set Authorization to Oauth 2.0. This should give you additional fields to fill out
1. Header Prefix should be set to Bearer
1. Grant type ahould be set to Authorization Code (With PKCE)
1. Auth URL should be set to https://sts.mypatientvisit.com/connect/authorize?aud=https://api.intellechart.net/icp-fhir-api
1. Access Token URL should be set to https://sts.mypatientvisit.com/connect/token
1. Client ID should be set to the value given to you by Nextech
1. Secret should be set to the value given to you by Nextech, if any
1. Code Challenge Method should be SHA-256
1. Scopes should contain all needed scopes, space-delimited. At a minimum this should be launch/patient openid
Once these fields are filled out and the authorization request is made, your browser should open up to the Nextech authorization server's login screen. MyPatientVisit user credentials, for patient-facing apps, or Nextech software user credentials, for practitioner-facing apps, will have to be used to log in. After logging in, the user will select which practice and patient they are granting access to, and then they will consent (or not) to the requested scopes. Once this is done, there will be a callback to Postman (check browser pop-up settings and try changing your default browser if that fails). When Postman receives this callback, it will pop up a dialog containing the response information from the Nextech authorization server, including the access token.
Using the Access Token
Once the app has gone through the above steps to acquire an access token, that access token needs to be placed in an Authorization header, using the Bearer scheme:Bearer {token} where {token} represents the access token, for all requests made from the app to the Nextech API's FHIR resource endpoints.
Refresh Access Token
Refresh tokens are used to renew an expired access token without providing user credentials. An access_token and refresh_token pair is issued when requesting an access token using the authorization code flow (see above) for patient or practitioner-facing SMART apps (system apps are not issued refresh tokens, and so must always request a new access token upon previous access token expiration), as long as the SMART app requests the offline_access scope, and the user consents to that scope. When the access_token expires, the SMART app can call into the Nextech authorization server's connect/token endpoint to be issued a new access token (and refresh token), as shown below:
POST /connect/token
Content-Type: application/x-www-form-urlencoded
Authorization: Basic [client ID and secret]
grant_type=refresh_token&refresh_token=<{refreshToken}
Header notes:
| Name | Description |
|---|---|
| Content-Type | must be set to application/x-www-form-urlencoded |
| Authorization | This header is optional, and must only be used if the SMART app client is a confidential client (i.e. it has a client secret configured that it is capable of securely storing). This header uses Basic auth, which will have the string Basic, followed by a space, followed by the Base-64 encoding of the string in the form [client ID]:[client secret]. |
Parameter notes:
| Name | Description |
|---|---|
| grant_type | This is always set to refresh_token |
| refresh_token | This is the refresh token that was returned alongside the access_token in the previous response from the Nextech authorization server, when the SMART app first acquired an access token |
Revoking Refresh Tokens
If a SMART app wishes to revoke a refresh token that it has been issued, then it can do so by making a call like below to the Nextech authorization server:
POST /connect/revocation
Content-Type: application/x-www-form-urlencoded
Authorization: Basic [client ID and secret]
token={refreshToken}
Header notes:
| Name | Description |
|---|---|
| Content-Type | must be set to application/x-www-form-urlencoded |
| Authorization | This header is optional, and must only be used if the SMART app client is a confidential client (i.e. it has a client secret configured that it is capable of securely storing). This header uses Basic auth, which will have the string Basic, followed by a space, followed by the Base-64 encoding of the string in the form [client ID]:[client secret]. |
Parameter notes:
token- This is the refresh token that was returned alongside theaccess_tokenin the previous response from the Nextech authorization server, when the SMART app first acquired an access token
Revoking the refresh token will make it so that the SMART app will need to have the user re-authorize the SMART application's required scopes, once the access token that accompanied the refresh token expires.
Nextech Authorization Server Metadata Endpoint
SMART apps can call the Nextech authorization server's OpenID Connect metadata endpoint in order to find out information about the available endpoints, scopes, and response types supported by the Nextech authorization server, for use by SMART applications:
GET .well-known/openid-configuration
This endpoint requires no authentication.
Nextech Authorization Server UserInfo Endpoint
SMART apps can call the Nextech authorization server's UserInfo endpoint to learn more about the user associated with a given access token:
GET connect/userinfo Authorization: Bearer [access token]
Header notes:
Authorization- This header must contain theaccess_tokenprevously acquired from the Nextech authorization server in the previous response from the Nextech authorization server, when the SMART first acquired an access token, following theBearertext in the header value
Nextech Authorization Server Session Lifetime
All browser sessions that a SMART app opens with the Nextech authorization server are only good for the lifetime of the browser window/tab. No persisted web authorization session is kept between a given SMART app and the Nextech authorization server after the app has successfully been authorized (or just exited the Nextech authorization server web page), so, if a SMART app redirects to the Nextech authorization server not long after being issued an access and/or refresh token then the Nextech authorization server will once more prompt the user of the app to log in again, no matter how much time has passed since the SMART app's previous authorization request. Since there is no persistent authorization web session maintained between the SMART app and the Nextech authorization server, there is no need for the SMART app to logout of the Nextech authorization server session: once the refresh token (if any was obtained, otherwise just the access token) expires the SMART app will need to re-authorize with the Nextech authorization server.
Metadata
Overview
Information about supported server functionality and the server's SMART on FHIR configuration.
Capability Statement
Fields
| Name | Description | Type |
|---|---|---|
| resourceType | The declaration of the type of resource this is. | string |
| status | The status of this capability statement. | code |
| date | The date (and optionally time) when the capability statement was published. | dateTime |
| kind | The way that this statement is intended to be used, to describe an actual running instance of software, a particular product or a class of implementation. | code |
| implementation.description | Information about the specific installation that this capability statement relates to. | string |
| implementation.url | An absolute base URL for the implementation. | url |
| fhirVersion | The version of the FHIR specification that this CapabilityStatement describes. | code |
| format | A list of the formats supported by this implementation using their content types. | code |
| implementationGuide | A list of implementation guides that the server does (or should) support in their entirety. | canonical(Implementation Guide) |
| instantiates | Reference to a canonical URL of another CapabilityStatement that this software implements. | canonical(Capabiliy Statement) |
| rest.mode | Identifies whether this portion of the statement is describing the ability to initiate or receive restful operations. | code |
| rest.security.extension | The oauth uris for this server ('authorize' and 'token' endpoints). | Extension |
| rest.security.service | Types of security services that are supported by the system. | CodeableConcept |
| rest.resource.type | A type of resource exposed via the restful interface. | code |
| rest.resource.supportedProfile | A list of profiles that represent different use cases supported by the system. | canonical(StructureDefinition) |
| rest.resource.interaction.code | Coded identifier of the operation, supported by the system resource. | code |
| rest.resource.searchRevInclude | A list of _revinclude (reverse include) values supported by the server. | string |
| rest.resource.searchParam.name | The name of the search parameter used in the interface. | string |
| rest.resource.searchParam.type | The type of value a search parameter refers to, and how the content is interpreted. | code |
| rest.resource.operation.name | The name of the operation or query. | string |
Get
Retrieves the Capability Statement which holds information about supported server functionality.
HTTP Request
GET /metadata
Example: Get Capability Statement
GET https://api.intellechart.net/icp-fhir-api/metadata
SMART Configuration
Fields
| Name | Description | Type |
|---|---|---|
| capabilities | Array of strings representing SMART capabilities | string |
| authorization_endpoint | URL to the OAuth2 authorization endpoint | url |
| token_endpoint | URL to the OAuth2 token endpoint | url |
| token_endpoint_auth_methods_supported | Array of client authentication methods supported by the token endpoint | string |
| token_endpoint_auth_signing_alg_values_supported | Array containing a list of the JWS signing algorithms supported by the token endpoint. | string |
Get
Retrieves server's SMART on FHIR configuration
HTTP Request
GET /.well-known/smart-configuration
Example: Get SMART on FHIR configuration
GET https://api.intellechart.net/icp-fhir-api/.well-known/smart-configuration
Patient
Overview
The patient resource contains information about the demographics of a patient.
Fields
| Name | Description | Type | Initial Version |
|---|---|---|---|
| id | The unique identifier of the patient | string | 1.0 |
| 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 | Identifier | 1.0 |
| extension:race | The race of the patient | Extension (US Core Race Extension) | 1.0 |
| extension:ethnicity | The ethnicity of the patient | Extension (US Core Ethnicity Extension) | 1.0 |
| extension:birthsex | The patient's sex assigned at birth | Extension (US Core Birth Sex Extension) | 1.0 |
| name | Names of the patient | HumanName | 1.0 |
| telecom | Contact details for the patient, fax, preferred contact, and other phone | ContactPoint | 1.0 |
| gender | The gender of the patient | code | 1.0 |
| birthDate | The date of birth of the patient | date | 1.0 |
| address | Addresses associated with the patient | Address | 1.0 |
| communication | A list of Languages which may be used to communicate with the patient about his or her health | BackboneElement | 1.0 |
Example
{
"resourceType": "Patient",
"id": "b664fd37-ff5f-4022-9d71-2e476d42f316",
"extension": [
{
"extension": [
{
"url": "ombCategory",
"valueCoding": {
"system": "urn:oid:2.16.840.1.113883.6.238",
"code": "2054-5",
"display": "Black or African American"
}
},
{
"url": "text",
"valueString": "Black or African American"
}
],
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race"
},
{
"extension": [
{
"url": "detailed",
"valueCoding": {
"system": "urn:oid:2.16.840.1.113883.6.238",
"code": "2072-7",
"display": "Jamaican"
}
},
{
"url": "text",
"valueString": "Jamaican"
}
],
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race"
},
{
"extension": [
{
"url": "ombCategory",
"valueCoding": {
"system": "urn:oid:2.16.840.1.113883.6.238",
"code": "2186-5",
"display": "Not Hispanic or Latino"
}
},
{
"url": "text",
"valueString": "Not Hispanic or Latino"
}
],
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity"
},
{
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex",
"valueCode": "M"
}
],
"identifier": [
{
"use": "official",
"system": "",
"value": "b664fd37-ff5f-4022-9d71-2e476d42f316"
},
{
"use": "usual",
"system": "",
"value": "112334"
}
],
"name": [
{
"use": "official",
"text": "John Jacob Smith",
"family": "Smith",
"given": [
"John",
"Jacob"
],
"suffix": [
""
]
}
],
"telecom": [
{
"system": "email",
"value": "example@nextech.com"
},
{
"system": "phone",
"value": "(763) 560-8033",
"use": "home"
}
],
"gender": "male",
"birthDate": "1952-06-13",
"address": [
{
"use": "home",
"type": "both",
"line": [
"4807 89th Ave N"
],
"city": "Brooklyn Park",
"state": "MN",
"postalCode": "55443",
"country": "USA"
}
],
"communication": [
{
"language": {
"coding": [
{
"system": "urn:ietf:bcp:47",
"code": "en",
"display": "English"
}
],
"text": "English"
},
"preferred": true
}
]
}
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.
Get
Returns a single Patient result based on the patient ID.
HTTP Request
GET /Patient/{patientId}
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| patientId | path | The unique identifier for the patient | Yes | 1.0 |
Example: Get the patient with an ID of 'c27e5be0-4b44-4ec5-a284-4308d6ac2b1a'
GET https://api.intellechart.net/icp-fhir-api/Patient/c27e5be0-4b44-4ec5-a284-4308d6ac2b1a
Search
Searches for all patients matching the given search criteria. See https://www.hl7.org/fhir/R4/search.html for instructions on formatting search criteria.
HTTP Request
GET /Patient?{parameters}POST /Patient/_search?{parameters}- application/x-www-form-urlencoded body:
{parameters}
- application/x-www-form-urlencoded body:
Note: For POST based searches the parameters can be provided in either the URL, the body, or both.
Parameters
| Name | Located in | Description | Required | Type | Initial Version |
|---|---|---|---|---|---|
| birthdate | query or body | The patient's date of birth formatted as YYYY-MM-DD | No | dateTime | 1.0 |
| name | query or body | The given(first) name, middle name, family(last) name, prefix or title of the patient | No | string | 1.0 |
| identifier | query or body | 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 | 1.0 |
| _id | query or body | 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 | 1.0 |
| gender | query or body | The gender of the patient | No | string | 1.0 |
| group-id | query or body | The letter writing group of the patient | No | string | 1.0 |
| _revinclude | query or body | Must be Provenance:target. This enables requesting additional Provenance resources that relate to each patient |
No | string | 1.0 |
Note: The possible filter values for the _lastUpdated parameter are: eq, ne, le, lt, ge and gt.
Retrieve Provenance with patients
The _revinclude parameter allows support for including Provenance references that match the returned patient.
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 patient.
Example: Get a patient with an identifier '9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192' with provenance
GET https://api.intellechart.net/icp-fhir-api/Patient?identifier=9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/Patient/_search body: identifier=9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192&_revinclude=Provenance:target
GET https://api.intellechart.net/icp-fhir-api/Patient?_id=9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/Patient/_search body: _id=9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192&_revinclude=Provenance:target
Example: Get the patient of a specific chart number
GET https://api.intellechart.net/icp-fhir-api/Patient/12345
Example: Get all patients
GET https://api.intellechart.net/icp-fhir-api/Patient
Example: Get all patients with identifier '9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192'
GET https://api.intellechart.net/icp-fhir-api/Patient?identifier=9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192
POST https://api.intellechart.net/icp-fhir-api/Patient/_search body: identifier=9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192
GET https://api.intellechart.net/icp-fhir-api/Patient?_id=9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192
POST https://api.intellechart.net/icp-fhir-api/Patient/_search body: _id=9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192
Example: Get all patients who live within '12345' zip code
GET https://api.intellechart.net/icp-fhir-api/Patient?address-postalcode=12345
POST https://api.intellechart.net/icp-fhir-api/Patient/_search body: address-postalcode=12345
Example: Get all patients with birth dates between and including 1/1/1981 through 5/31/1981
GET https://api.intellechart.net/icp-fhir-api/Patient?birthdate=ge1981-01-01&birthdate=lt1981-05-31
POST https://api.intellechart.net/icp-fhir-api/Patient/_search body: birthdate=ge1981-01-01&birthdate=lt1981-05-31
Patient ID Search
Attempts to find patient IDs that match the given search criteria and, if successful, returns those patients' unique identifiers.
HTTP Request
GET /Patient/ID?{parameters}
Parameters
| Name | Located in | Description | Required | Type | Initial Version |
|---|---|---|---|---|---|
| group-id | query | The letter writing group of the patient | No | string | 1.0 |
Example: Get the unique identifiers of all patients that are in a letter writing group with an ID of 20
GET https://api.intellechart.net/icp-fhir-api/Patient/ID?group-id=20
Allergy Intolerance
Overview
The allergy intolerance resource describes the risk of undesirable responses of exposure to a substance.
Fields
| Name | Description | Type | Initial Version |
|---|---|---|---|
| id | The logical id of the resource, as used in the URL for the resource. | string | 1.0 |
| identifier | The unique value assigned to each allergy intolerance record which discerns them from all others. | Identifier | 1.0 |
| clinicalStatus | Describes whether the allergy or intolerance is active, inactive or resolved | CodeableConcept | 1.0 |
| verificationStatus | Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified substance (including pharmaceutical product). | CodeableConcept | 1.0 |
| code | The clinical code that identifies the allergy or intolerance | CodeableConcept | 1.0 |
| patient | The patient who the allergy or intolerance is for | Reference (US Core Patient Profile) | 1.0 |
| reaction | Details about each adverse reaction event linked to exposure to the identified substance. | BackboneElement | 1.0 |
| reaction.manifestation | Clinical symptoms and/or signs that are observed or associated with the adverse reaction event. | CodeableConcept | 1.0 |
Example
{
"resourceType": "AllergyIntolerance",
"id": "21",
"identifier": [
{
"use": "official",
"value": "21"
}
],
"clinicalStatus": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical",
"code": "active"
}
]
},
"verificationStatus": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-verification",
"code": "unconfirmed"
}
]
},
"code": {
"coding": [
{
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
"code": "852519",
"display": "house dust"
}
],
"text": "house dust"
},
"patient": {
"reference": "Patient/b664fd37-ff5f-4022-9d71-2e476d42f316",
"display": "Smith, John Jacob"
},
"reaction": [
{
"manifestation": [
{
"coding": [
{
"system": "http://snomed.info/sct",
"code": "25064002",
"display": "Headache"
}
],
"text": "Headache"
}
]
}
]
}
Get
Returns a single AllergyIntolerance result based on the allergy intolerance ID.
HTTP Request
GET /AllergyIntolerance/{allergyId}
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| allergyId | path | The unique identifier for the allergy intolerance | Yes | 1.0 |
Example: Get the allergy intolerance with an ID of '123'
GET https://api.intellechart.net/icp-fhir-api/AllergyIntolerance/123
Search
Searches for allergy intolerances for a single patient
HTTP Requests
GET /AllergyIntolerance?{parameters}POST /AllergyIntolerance/_search?{parameters}- application/x-www-form-urlencoded body:
{parameters}
- application/x-www-form-urlencoded body:
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| identifier | query or body | The unique identifier of the allergy intolerance | No | 1.0 |
| _id | query or body | The unique identifier of the allergy intolerance | No | 1.0 |
| patient | query or body | The patient who the allergy or intolerance is for | No | 1.0 |
| _lastUpdated | query or body | The date the allergy intolerance was last modified, formatted as OOXXXXX where OO is an operator and XXXXX is a date in the form YYYY-MM-DD | No | 1.0 |
| _revinclude | query or body | Must be Provenance:target. This enables requesting additional Provenance resources that relate to each allergy intolerance |
No | 1.0 |
Note: The possible filter values for the _lastUpdated parameter are: eq, ne, le, lt, ge and gt.
Retrieve Provenance with allergy intolerances
The _revinclude parameter allows support for including Provenance references that match the returned allergy intolerance.
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 allergy intolerance.
Example: Get an allergy intolerance with an identifier '123' with provenance
GET https://api.intellechart.net/icp-fhir-api/AllergyIntolerance?identifier=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/AllergyIntolerance/_search body: identifier=123&_revinclude=Provenance:target
GET https://api.intellechart.net/icp-fhir-api/AllergyIntolerance?_id=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/AllergyIntolerance/_search body: _id=123&_revinclude=Provenance:target
Examples:
GET https://api.intellechart.net/icp-fhir-api/AllergyIntolerance?patient=b664fd37-ff5f-4022-9d71-2e476d42f316
GET https://api.intellechart.net/icp-fhir-api/AllergyIntolerance?patient=Patient/b664fd37-ff5f-4022-9d71-2e476d42f316
POST https://api.intellechart.net/icp-fhir-api/AllergyIntolerance/_search body: patient=b664fd37-ff5f-4022-9d71-2e476d42f316
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 |
|---|---|---|---|
| id | The unique value assigned to each care plan which discerns them from all others. | string | 1.0 |
| subject | The patient pertaining to the care plan. | Reference(US Core Patient Profile) | 1.0 |
| text | A human-readable narrative that contains a summary of the resource. | Narrative | 1.0 |
| text.div | The actual narrative content of the patient care plan. | xhtml | 1.0 |
| text.status | The text status for the resource narrative. | code | 1.0 |
| category | The type of the care plan. | CodeableConcept | 1.0 |
| status | Indicates whether the plan is currently being acted upon, represents future intentions or is now a historical record. | code | 1.0 |
| intent | Indicates the level of intentionality associated with the care plan (proposal, plan, order, option). | code | 1.0 |
Example
{
"resourceType": "CarePlan",
"id": "674",
"text": {
"status": "additional",
"div": "Get a Chest X-ray done on 6/23/2015 showing the Lower Respiratory Tract Structure."
},
"status": "active",
"intent": "plan",
"category": [
{
"coding": [
{
"system": "http://hl7.org/fhir/us/core/CodeSystem/careplan-category",
"code": "assess-plan"
}
]
}
],
"subject": {
"reference": "Patient/c27e5be0-4b44-4ec5-a284-4308d6ac2b1a",
"display": "Newman, Alice Jones"
}
}
Get
Returns a single Care Plan result based on the Care Plan ID.
HTTP Request
GET /CarePlan/{carePlanId}
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| carePlanId | path | The unique identifier for the care plan | Yes | 1.0 |
Example: Get the care plan with an ID of '676'
GET https://api.intellechart.net/icp-fhir-api/CarePlan/676
Search
Searches for care plans for a single patient
HTTP Requests
GET /CarePlan?{parameters}POST /CarePlan/_search?{parameters}- application/x-www-form-urlencoded body:
{parameters}
- application/x-www-form-urlencoded body:
Note: For POST based searches the parameters can be provided in either the URL, the body, or both.
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| patient | query or body | The official patient identifier acquired from a patient search | No | 1.0 |
| _id | query or body | The unique identifier for the care plan | No | 1.0 |
| identifier | query or body | The unique identifier for the care plan | No | 1.0 |
| category | query or body | The type of the care plan. Ex.: 'assess-plan' | No | 1.0 |
| _lastUpdated | query or body | The date the care plan was last modified, formatted as OOXXXXX where OO is an operator and XXXXX is a date in the form YYYY-MM-DD. | No | 1.0 |
| _revinclude | query or body | Must be Provenance:target. This enables requesting additional Provenance resources that relate to each care plan |
No | 1.0 |
Note: The possible filter values for the _lastUpdated parameter are: eq, ne, le, lt, ge and gt.
Retrieve Provenance with care plans
The _revinclude parameter allows support for including Provenance references that match the returned care plans.
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 care plan.
Example: Get a care plan with an identifier '123' with provenance
GET https://api.intellechart.net/icp-fhir-api/CarePlan?identifier=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/CarePlan/_search body: identifier=123&_revinclude=Provenance:target
GET https://api.intellechart.net/icp-fhir-api/CarePlan?_id=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/CarePlan/_search body: _id=123&_revinclude=Provenance:target
Example: Get all care plans for a single patient with id 'c27e5be0-4b44-4ec5-a284-4308d6ac2b1a' and category 'assess-plan'
GET https://api.intellechart.net/icp-fhir-api/CarePlan?patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&category=assess-plan
GET https://api.intellechart.net/icp-fhir-api/CarePlan?patient=Patient/c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&category=assess-plan
GET https://api.intellechart.net/icp-fhir-api/CarePlan?patient=Patient/c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&category=http://hl7.org/fhir/us/core/CodeSystem/careplan-category|assess-plan
POST https://api.intellechart.net/icp-fhir-api/CarePlan/_search body: patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&category=assess-plan
POST https://api.intellechart.net/icp-fhir-api/CarePlan/_search body: patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&category=http://hl7.org/fhir/us/core/CodeSystem/careplan-category|assess-plan
Example: Get all care plans for a single patient that were modified as of 5/5/2022
GET https://api.intellechart.net/icp-fhir-api/CarePlan?patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&_lastUpdated=ge2022-05-05
Example: Get all care plans that were modified by 5/5/2022
GET https://api.intellechart.net/icp-fhir-api/CarePlan?_lastUpdated=le2022-05-05
Care Team
Oveview
The CareTeam resource includes all the people and organizations who plan to participate in the coordination and delivery of care for a patient.
Fields
| Name | Description | Type | Initial Version |
|---|---|---|---|
| id | The unique value assigned to each care team which discerns them from all others. | string | 1.0 |
| status | Indicates the current state of the care team. | code | 1.0 |
| subject | Identifies the patient or group whose intended care is handled by the team. | Reference(US Core Patient Profile) | 1.0 |
| participant.role | Indicates specific responsibility of an individual within the care team, such as "Primary care physician", "Caregiver", etc. | CodeableConcept | 1.0 |
| participant.member | The specific person or organization who is participating/expected to participate in the care team. | Reference (US Core Patient Profile or US Core Practitioner Profile or US Core Organization Profile) | 1.0 |
Example
{
"resourceType": "CareTeam",
"id": "3",
"status": "active",
"subject": {
"reference": "Patient/3",
"display": "Newman, Alice Jones"
},
"participant": [
{
"role": [
{
"coding": [
{
"system": "http://nucc.org/provider-taxonomy",
"code": "2086S0122X"
}
]
}
],
"member": {
"reference": "Practitioner/5",
"display": "Davis, Albert"
}
},
{
"role": [
{
"coding": [
{
"system": "http://hl7.org/fhir/r4/StructureDefinition/data-absent-reason",
"code": "unknown"
}
]
}
],
"member": {
"reference": "Practitioner/77",
"display": "Davis, Tracy"
}
},
{
"role": [
{
"coding": [
{
"system": "http://snomed.info/sct",
"code": "116154003"
}
]
}
],
"member": {
"reference": "Patient/3",
"display": "Newman, Alice Jones"
}
}
]
}
Get
Returns a single Care Team result based on the Care Team ID.
HTTP Request
GET /CareTeam/{careTeamId}
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| careTeamId | path | The unique identifier for the care team | Yes | 1.0 |
Example: Get the care team with an ID of '3'
GET https://api.intellechart.net/icp-fhir-api/CareTeam/3
Search
Searches for care teams for a single patient
HTTP Requests
GET /CareTeam?{parameters}POST /CareTeam/_search?{parameters}- application/x-www-form-urlencoded body:
{parameters}
- application/x-www-form-urlencoded body:
Note: For POST based searches the parameters can be provided in either the URL, the body, or both.
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| patient | query or body | The official patient identifier acquired from a patient search | No | 1.0 |
| _id | query or body | The unique identifier for the care team | No | 1.0 |
| identifier | query or body | The unique identifier for the care team | No | 1.0 |
| status | query or body | Indicates the current state of the care team. Ex.: 'active' | No | 1.0 |
| _lastUpdated | query or body | The date the care team was last modified, formatted as OOXXXXX where OO is an operator and XXXXX is a date in the form YYYY-MM-DD. | No | 1.0 |
| _revinclude | query or body | Must be Provenance:target. This enables requesting additional Provenance resources that relate to each care team |
No | 1.0 |
Note: The possible filter values for the _lastUpdated parameter are: eq, ne, le, lt, ge and gt.
Retrieve Provenance with care teams
The _revinclude parameter allows support for including Provenance references that match the returned care teams.
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 care team.
Example: Get a care team with an identifier '123' with provenance
GET https://api.intellechart.net/icp-fhir-api/CareTeam?identifier=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/CareTeam/_search body: identifier=123&_revinclude=Provenance:target
GET https://api.intellechart.net/icp-fhir-api/CareTeam?_id=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/CareTeam/_search body: _id=123&_revinclude=Provenance:target
Example: Get all care teams for a single patient with id 'c27e5be0-4b44-4ec5-a284-4308d6ac2b1a' and status 'active'
GET https://api.intellechart.net/icp-fhir-api/CareTeam?patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&status=active
GET https://api.intellechart.net/icp-fhir-api/CareTeam?patient=Patient/c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&status=active
GET https://api.intellechart.net/icp-fhir-api/CareTeam?patient=Patient/c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&status=http://hl7.org/fhir/r4/ValueSet/care-team-status|active
POST https://api.intellechart.net/icp-fhir-api/CareTeam/_search body: patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&status=active
POST https://api.intellechart.net/icp-fhir-api/CareTeam/_search body: patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&status=http://hl7.org/fhir/r4/ValueSet/care-team-status|active
Example: Get all care teams for a single patient that were modified as of 5/5/2022
GET https://api.intellechart.net/icp-fhir-api/CareTeam?patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&_lastUpdated=ge2022-05-05
Example: Get all care teams that were modified by 5/5/2022
GET https://api.intellechart.net/icp-fhir-api/CareTeam?_lastUpdated=le2022-05-05
Condition
Overview
The condition (an encounter diagnosis, a health concern or a problem) resource describes a certain state of health of a patient.
Fields
| Name | Description | Type | Initial Version |
|---|---|---|---|
| id | The unique value assigned to each condition record which discerns them from all others. | Identifier | 1.0 |
| clinicalStatus | The condition status | Condition Clinical Status Code | 1.0 |
| verificationStatus | The condition verification status | Condition Verification Status | 1.0 |
| category | A category assigned to the condition | Condition Category Code | 1.0 |
| code | Identification of the condition, problem or diagnosis | Condition/Problem/Diagnosis Code | 1.0 |
| subject | The patient pertaining to the condition | Reference(US Core Patient Profile) | 1.0 |
Example
{
"resourceType": "Condition",
"id": "prb-12",
"clinicalStatus": {
"coding": [
{
"system": "http://hl7.org/fhir/r4/ValueSet/condition-clinical",
"code": "resolved",
"display": "Resolved"
}
],
"text": "Resolved"
},
"verificationStatus": {
"coding": [
{
"system": "http://hl7.org/fhir/r4/ValueSet/condition-ver-status",
"code": "confirmed",
"display": "Confirmed"
}
],
"text": "Confirmed"
},
"category": [
{
"coding": [
{
"system": "http://hl7.org/fhir/r4/ValueSet/us-core-condition-category",
"code": "problem-list-item",
"display": "Problem List Item"
}
],
"text": "Problem List Item"
}
],
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "238131007",
"display": "Overweight"
}
],
"text": "Overweight"
},
"subject": {
"reference": "Patient/c27e5be0-4b44-4ec5-a284-4308d6ac2b1a",
"display": "Newman, Alice Jones"
}
}
Get
Returns a single Condition result based on the Condition ID.
HTTP Request
GET /Condition/{conditionId}
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| conditionId | path | The unique identifier for the condition | Yes | 1.0 |
Example: Get a condition problem with an ID of '12'
GET https://api.intellechart.net/icp-fhir-api/Condition/prb-12
Search
Searches for conditions for a single patient
HTTP Requests
GET /Condition?{parameters}POST /Condition/_search?{parameters}- application/x-www-form-urlencoded body:
{parameters}
- application/x-www-form-urlencoded body:
Note: For POST based searches the parameters can be provided in either the URL, the body, or both.
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| patient | query or body | The official patient identifier acquired from a patient search | Yes | 1.0 |
| _id | query or body | The unique identifier for the condition | No | 1.0 |
| identifier | query or body | The unique identifier for the condition | No | 1.0 |
| category | query or body | TODO | No | 1.0 |
| code | query or body | TODO | No | 1.0 |
| clinical-status | query or body | TODO | No | 1.0 |
| onset-date | query or body | TODO | No | 1.0 |
| _lastUpdated | query or body | 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 | 1.0 |
| _revinclude | query or body | Must be Provenance:target. This enables requesting additional Provenance resources that relate to each condition |
No | 1.0 |
Note: The possible filter values for the _lastUpdated parameter are: eq, ne, le, lt, ge and gt.
Retrieve Provenance with conditions
The _revinclude parameter allows support for including Provenance references that match the returned condition.
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 a condition problem with an identifier '12' with provenance
GET https://api.intellechart.net/icp-fhir-api/Condition?identifier=prb-12&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/Condition/_search body: identifier=prb-12&_revinclude=Provenance:target
GET https://api.intellechart.net/icp-fhir-api/Condition?_id=prb-12&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/Condition/_search body: _id=prb-12&_revinclude=Provenance:target
Example: Get all conditions for a single patient
GET https://api.intellechart.net/icp-fhir-api/Condition?patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a
POST https://api.intellechart.net/icp-fhir-api/Condition/_search body: patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a
Example: Get the condition problem with id of 'prb-12'
GET https://api.intellechart.net/icp-fhir-api/Condition?_id=prb-12
GET https://api.intellechart.net/icp-fhir-api/Condition?identifier=prb-12
POST https://api.intellechart.net/icp-fhir-api/Condition/_search body: _id=prb-12
POST https://api.intellechart.net/icp-fhir-api/Condition/_search body: identifier=prb-12
Example: Get all conditions for a single patient that were modified as of 5/5/2022
GET https://api.intellechart.net/icp-fhir-api/Condition?patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&_lastUpdated=ge2022-05-05
POST https://api.intellechart.net/icp-fhir-api/Condition/_search body: patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&_lastUpdated=ge2022-05-05
Device
Overview
The implantable device resource identifies an instance or type of manufactured item used in the provision of healthcare.
Fields
| Name | Description | Type | Initial Version |
|---|---|---|---|
| id | The unique identifier for the device | string | 1.0 |
| udiCarrier | Unique Device Identifier (UDI) Barcode string | BackboneElement | 1.0 |
| distinctIdentifier | The distinct identification string | string | 1.0 |
| lotNumber | Lot number of manufacturer | string | 1.0 |
| serialNumber | Serial number assigned by the manufacturer | string | 1.0 |
| manufactureDate | Date when the device was made | dateTime | 1.0 |
| expirationDate | Date and time of expiry of this device | dateTime | 1.0 |
| type | The kind or type of device | CodeableConcept | 1.0 |
| patient | The patient pertaining to the device | Reference(US Core Patient Profile) | 1.0 |
Example
{
"resourceType": "Device",
"id": "123",
"udiCarrier": [
{
"deviceIdentifier": "43069338026389",
"carrierHRF": "(01)43069338026389(11)000302(17)250317(10)1134(21)842026117977"
}
],
"distinctIdentifier": "A9971312345600",
"lotNumber": "000000000000XYZ123",
"serialNumber": "842026117977"
"manufactureDate": "2013-02-01T00:00:00Z",
"expirationDate": "2014-02-01T00:00:00Z",
"type": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "714549006",
"display": "Synthetic bone graft (physical object)"
}
],
"text": "Synthetic bone graft (physical object)"
},
"patient": {
"reference": "Patient/ad2085b5-b974-401d-bfcb-3b865109fd35",
"display": "Smith, John"
}
}
Get
Returns a single Device result based on the Device ID.
HTTP Request
GET /Device/{deviceId}
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| deviceId | path | The unique identifier for the device | Yes | 1.0 |
Example: Get the device with an ID of '123'
GET https://api.intellechart.net/icp-fhir-api/Device/123
Search
Searches for devices for a single patient
HTTP Request
GET /Device?{parameters}POST /Device/_search?{parameters}- application/x-www-form-urlencoded body:
{parameters}
- application/x-www-form-urlencoded body:
Note: For POST based searches the parameters can be provided in either the URL, the body, or both.
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| _lastUpdated | query or body | The date the device 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 | 1.0 |
| patient | query or body | The official patient identifier acquired from a patient search | No | 1.0 |
| _id | query or body | The unique identifier for the device | No | 1.0 |
| _revinclude | query or body | Must be Provenance:target. This enables requesting additional Provenance resources that relate to each device |
No | 1.0 |
Note: The possible filter values for the date or _lastUpdated parameters are: eq, ne, le, lt, ge and gt.
Retrieve Provenance with devices
The _revinclude parameter allows support for including Provenance references that match the returned device.
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 device.
Example: Get a device with an identifier '123' with provenance
GET https://api.intellechart.net/icp-fhir-api/Device?identifier=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/Device/_search body: identifier=123&_revinclude=Provenance:target
GET https://api.intellechart.net/icp-fhir-api/Device?_id=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/Device/_search body: _id=123&_revinclude=Provenance:target
Example: Get all devices for a single patient with id 'ad2085b5-b974-401d-bfcb-3b865109fd35'
GET https://api.intellechart.net/icp-fhir-api/Device?patient=ad2085b5-b974-401d-bfcb-3b865109fd35
GET https://api.intellechart.net/icp-fhir-api/Device?patient=Patient/ad2085b5-b974-401d-bfcb-3b865109fd35
POST https://api.intellechart.net/icp-fhir-api/Device/_search body: patient=ad2085b5-b974-401d-bfcb-3b865109fd35
Example: Get all devices for a single patient with id 'ad2085b5-b974-401d-bfcb-3b865109fd35' that were recorded as of 1/1/2017
GET https://api.intellechart.net/icp-fhir-api/Device?patient=ad2085b5-b974-401d-bfcb-3b865109fd35&_lastUpdated=ge2017-01-01
POST https://api.intellechart.net/icp-fhir-api/Device/_search body: patient=ad2085b5-b974-401d-bfcb-3b865109fd35&_lastUpdated=ge2017-01-01
Search for a device with the id '123'
GET https://api.intellechart.net/icp-fhir-api/Device?identifier=123
POST https://api.intellechart.net/icp-fhir-api/Device/_search body: identifier=123
GET https://api.intellechart.net/icp-fhir-api/Device?_id=123
POST https://api.intellechart.net/icp-fhir-api/Device/_search body: _id=123
Diagnostic Report
Overview
A diagnostic report resource describes the findings and interpretation of diagnostic tests performed on patients and/or specimens derived from these. There are two types of diagnostic reports that can be returned:
- Diagnostic reports for laboratory specimens
- Diagnostic reports containing result documents for laboratory specimens
These types of laboratory reports are denoted by their category. Diagnostic reports for laboratory specimens will always have a category of "LAB", while reports containing result documents will have a the document's assigned LOINC code as their category. For example, "LP29684-5" would be the category for a radiology document report.
Fields
| Name | Description | Type | Initial Version |
|---|---|---|---|
| id | The logical id of the resource, as used in the URL for the resource. | string | 1.0 |
| identifier | The unique value assigned to each diagnostic report which discerns them from all others. | Identifier | 1.0 |
| status | The status of the diagnostic report | code with DiagnosticReportStatus | 1.0 |
| category | Classification of type of diagnostic report | Category using Diagnostic Service Section Codes | 1.0 |
| code | A code that describes the diagnostic report | LOINC Diagnostic Report Codes | 1.0 |
| subject | The patient pertaining to the diagnostic report | Reference (US Core Patient Profile) | 1.0 |
| effectiveTime | The date and time of specimen collection | dateTime | 1.0 |
| issued | The date and time that this version of the report was made available to providers | dateTime | 1.0 |
| performer | The provider who is responsible for issuing the report | Reference (US Core Practitioner Profile) | 1.0 |
| encounter | The healthcare event which this diagnostic report is about | Reference(US Core Encounter Profile) | 1.0 |
| result | A reference to the related lab result observations | Reference (US Core Observation Lab Profile) | 1.0 |
| presentedForm | A document attachment containing lab result data for the report | Attachment | 1.0 |
| presentedForm.url | The url to retrieve the data from the binary endpoint | url | 1.0 |
Example
{
"resourceType":"DiagnosticReport",
"id":"244",
"identifier":[
{
"use":"official",
"value":"244"
},
{
"use":"usual",
"value":"XY202200011 - A"
}
],
"status":"registered",
"category":[
{
"coding":[
{
"system":"http://terminology.hl7.org/CodeSystem/v2-0074",
"code":"LAB"
}
]
}
],
"code":{
"coding":[
{
"system":"http://loinc.org",
"code":"11268-0",
"display":"S pyog Throat Ql Cult"
}
],
"text":"S pyog Throat Ql Cult"
},
"subject":{
"reference":"Patient/C56936DF-FED7-4EFA-8998-2A9848C99631"
},
"effectiveDateTime":"2022-06-24T00:00:00-04:00",
"issued":"2022-06-24T00:00:00-04:00",
"performer":[
{
"reference":"Practitioner/9149",
"display":"Smith, Susan"
}
],
"result":[
{
"reference":"Observation/442",
"display":""
}
]
}
Get
Returns a single DiagnosticReport result based on the DiagnosticReport ID.
HTTP Request
GET /DiagnosticReport/{diagnosticReportID}
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| diagnosticReportID | path | The diagnostic report unique identifier | Yes | 1.0 |
Example: Get a diagnostic report with an ID of '123'
GET https://api.intellechart.net/icp-fhir-api/DiagnosticReport/123
Search
Returns diagnostic reports based on the provided search parameters
HTTP Request
GET /DiagnosticReport?{parameters}POST /DiagnosticReport/_search?{parameters}- application/x-www-form-urlencoded body:
{parameters}
- application/x-www-form-urlencoded body:
Note: For POST based searches the parameters can be provided in either the URL, the body, or both.
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| identifier | query or body or path | The diagnostic report identifier | No | 1.0 |
| _id | query or body or path | The diagnostic report identifier | No | 1.0 |
| patient | query or body | The official patient identifier acquired from a patient search | No | 1.0 |
| category | query or body | The category of the diagnostic report by either "LAB" or code ie. category=LP29684-5 or by token ie. category=http://terminology.hl7.org/CodeSystem/v2-0074|LP29684-5 | No | 1.0 |
| date | query or body | The diagnostic report date in the form YYYY-MM-DD | No | 1.0 |
| code | query or body | The loinc code of the diagnostic report by code ie. code=49765-1 or token ie. code=http://loinc.org|49765-1 | No | 1.0 |
| _revinclude | query or body | Must be Provenance:target. This enables requesting additional Provenance resources that relate to each diagnostic report |
No | 1.0 |
Note: The possible filter values for the date parameter are: eq, ne, le, lt, ge and gt.
Retrieve Provenance with diagnostic reports
The _revinclude parameter allows support for including Provenance references that match the returned diagnostic reports.
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 diagnostic report.
Example: Get a diagnostic report with an identifier '123' with provenance
GET https://api.intellechart.net/icp-fhir-api/DiagnosticReport?identifier=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/DiagnosticReport/_search body: identifier=123&_revinclude=Provenance:target
GET https://api.intellechart.net/icp-fhir-api/DiagnosticReport?_id=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/DiagnosticReport/_search body: _id=123&_revinclude=Provenance:target
Example: Get all lab-type diagnostic reports on or after 5/1/2017
GET https://api.intellechart.net/icp-fhir-api/DiagnosticReport?category=LAB&date=ge2017-05-01
POST https://api.intellechart.net/icp-fhir-api/DiagnosticReport/_search body: category=LAB&date=ge2017-05-01
DocumentReference
Overview
A reference to a document of any kind for any purpose. Provides metadata about the document so that the document can be discovered and managed. The scope of a document is any seralized object with a mime-type, so includes formal patient centric documents (CDA), clinical notes, scanned paper, and non-patient specific documents like policy text.
Fields
| Name | Description | Type | Initial Version |
|---|---|---|---|
| id | The unique id string assigned to each documentreference | string | 1.0 |
| identifier | The unique identifier assigned to each documentreference | Identifier | 1.0 |
| status | Specifies the status of the document reference | Code | 1.0 |
| type | Specifies the particular kind of document referenced (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the document referenced. LOINC Code if possible | CodeableConcept | 1.0 |
| category | The categorization for the document reference | CodeableConcept | 1.0 |
| subject | The patient pertaining to the documentreference | Reference (US Core Patient Profile) | 1.0 |
| date | document creation time (in UTC) | dateTime | 1.0 |
| author | Identifies who is responsible for the information in the document reference | Reference (US Core Practitioner Profile) | 1.0 |
| description | The description of the documentreference | string | 1.0 |
| content.format | An identifier of the document encoding, structure, and template that the document conforms to | Coding | 1.0 |
| content.attachment.contentType | The mimetype of the content. | Code | 1.0 |
| content.attachment.data | The base64 encoded data of the attachment. | base64Binary | 1.0 |
| content.attachment.url | The url to retrieve the data from the binary endpoint | url | 1.0 |
| content.attachment.title | The title of the document | string | 1.0 |
| extension: note-category | Contains the category of the document | string | 1.0 |
| extension: document-publish-portal | Contains whether the document is published to myPatientVisit | boolean | 1.0 |
| context.encounter | The clinical context in which the document was prepared. | Reference (US Core Encounter Profile) | 1.0 |
| context.period | The time period over which the service that is described by the document was provided | Period | 1.0 |
| custodian | Identifies the organization or group who is responsible for ongoing maintenance of and access to the document. | Reference (US Core Organization Profile) | 1.0 |
Example
{
"resourceType": "DocumentReference",
"id": "history-2262",
"identifier": [
{
"use": "official",
"value": "history-2262"
}
],
"status": "current",
"type": {
"coding": [
{
"system": "http://loinc.org",
"code": "18842-5",
"display": "Discharge Summary"
}
],
"text": "Discharge Summary"
},
"category": [
{
"coding": [
{
"system": "https://api.intellechart.net/icp-fhir-api/api/structuredefinition/note-category",
"code": "Prescriptions",
"display": "Prescriptions"
}
],
"text": "Prescriptions"
}
],
"subject": {
"reference": "Patient/c21ab936-3a2a-4c5a-81b8-76b120194053",
"display": "White, Nicole Francis"
},
"date": "2022-06-02T17:11:23.943+00:00",
"author": [
{
"reference": "Organization/22",
"display": "Clinic One"
}
],
"custodian": {
"reference": "Organization/22",
"display": "Clinic One"
},
"content": [
{
"attachment": {
"contentType": "text/plain",
"url": "Binary/history-125369",
"title": "small text doc.txt"
},
"format": {
"system": "urn:oid:1.3.6.1.4.1.19376.1.2.3",
"code": "urn:ihe:iti:xds:2017:mimeTypeSufficient",
"display": "mimeType Sufficient"
}
}
],
"context": {
"encounter": [
{
"reference": "Encounter/6",
"display": "Encounter Name"
}
],
"period": {
"start": "2022-06-02T17:11:23.943+00:00",
"end": "2022-06-02T17:11:23.943+00:00"
}
}
}
Get By ID
Finds a single document based on the ID
HTTP Request
GET /DocumentReference/{documentTypeId}
Parameters
| Name | Description | Required | Initial Version |
|---|---|---|---|
| documentType-id | Unique ID of the document | Yes | 1.0 |
Example: Get the history document with ID 2262 which is a text file with a content of "Hello!"
GET https://api.intellechart.net/icp-fhir-api/DocumentReference/2262
Search
Finds a bundle of documents based on the search parameters
HTTP Request
GET /DocumentReference?{parameters}POST /DocumentReference/_search?{parameters}- application/x-www-form-urlencoded body:
{parameters}
- application/x-www-form-urlencoded body:
Note: For POST based searches the parameters can be provided in either the URL, the body, or both.
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| _id | query or body | Unique ID of the document | No | 1.0 |
| identifier | query or body | Unique ID of the document | No | 1.0 |
| _revinclude | query or body | Must be Provenance:target. This enables requesting additional Provenance resources that relate to each document reference |
No | 1.0 |
| patient | query or body | The ID of the patient associated with the document | No | 1.0 |
| category | query or body | The category of the document | No | 1.0 |
| date | query or body | This searches based on the created date of the document, either a specific date or a range depending on search modifiers | No | 1.0 |
| type | query or body | The type of the document | No | 1.0 |
Note: The possible filter values for the date parameter are: eq, ne, le, lt, ge and gt.
Retrieve Provenance with document references
The _revinclude parameter allows support for including Provenance references that match the returned document references.
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 document reference
Example: Get a history document reference with an identifier '123' with provenance
GET https://api.intellechart.net/icp-fhir-api/DocumentReference?identifier=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/DocumentReference/_search body: identifier=123&_revinclude=Provenance:target
GET https://api.intellechart.net/icp-fhir-api/DocumentReference?_id=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/DocumentReference/_search body: _id=123&_revinclude=Provenance:target
Example: Get the history document with ID 7741
GET https://api.intellechart.net/icp-fhir-api/DocumentReference?_id=history-7741
Example: Searching for all documents that have a type of 11488-4, category of Unknown, created on 2022-06-03 for the specific patient
GET https://api.intellechart.net/icp-fhir-api/DocumentReference?type=11488-4&category=Unknown&date=2022-06-03&patient=c21ab936-3a2a-4c5a-81b8-76b120194053
Example: Search for all documents that were created between 2020-06-03 and 2022-06-01
GET https://api.intellechart.net/icp-fhir-api/DocumentReference?date=gt2020-06-03&date=lt2022-06-01
Example Search by _id in POST Body
POST https://api.intellechart.net/icp-fhir-api/DocumentReference/_search body: _id:history-2262
Example Searching for all documents that have a type of 11488-4, category of Clinical, created before 2022-06-03 for the specific patient
POST https://api.intellechart.net/icp-fhir-api/DocumentReference/_search body: type:11488-4 category:Clinical date:lt2022-06-03 patient:c21ab936-3a2a-4c5a-81b8-76b120194053
Encounter
Overview
The Encounter resource describes an interaction between a patient and healthcare provider.
Fields
| Name | Description | Type | Initial Version |
|---|---|---|---|
| id | The unique value assigned to each encounter which discerns them from all others | string | 1.0 |
| identifier | The unique value assigned to each encounter which discerns them from all others | Identifier | 1.0 |
| status | The current state of the encounter (either in-progress, finished, or unknown) |
code with encounter status value set | 1.0 |
| class | The classification of the encounter | Coding | 1.0 |
| type | The specific type of the encounter | CodeableConcept | 1.0 |
| subject | The patient pertaining to the encounter | Reference(US Core Patient Profile) | 1.0 |
| participant | The medical professionals involved in the encounter | BackboneElement | 1.0 |
| period | The start and end date of the encounter in the form YYYY-MM-DD | period | 1.0 |
| reasonCode | The coded reason the encounter took place | CodeableConcept | 1.0 |
| hospitalization.dischargeDisposition | Category or kind of location after discharge | CodeableConcept | 1.0 |
| location.location | Location the encounter took place at | Reference(US Core Location Profile) | 1.0 |
| meta.lastUpdated | The last time the encounter was updated | instant | 1.0 |
Example
{
"resourceType": "Encounter",
"id": "19632",
"meta": {
"lastUpdated": "2022-07-20T09:41:50.82-04:00"
},
"identifier": [
{
"use": "official",
"system": "https://api.intellechart.net/icp-fhir-api/api/structuredefinition/encounter-id",
"value": "19632"
}
],
"status": "in-progress",
"class": {
"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
"code": "AMB",
"display": "ambulatory"
},
"type": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/data-absent-reason",
"code": "unknown",
"display": "Unknown"
}
],
"text": "Unknown"
}
],
"subject": {
"reference": "Patient/2ab530e0-9606-4f7a-8b67-e2de253ba80b",
"display": "Smith, John"
},
"participant": [
{
"type": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
"code": "PRF",
"display": "performer"
}
],
"text": "performer"
}
],
"period": {
"start": "2022-04-22",
"end": "2022-04-22"
},
"individual": {
"reference": "Practitioner/123",
"display": "1, Doctor"
}
},
{
"type": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
"code": "PRF",
"display": "performer"
}
],
"text": "performer"
}
],
"period": {
"start": "2022-04-22",
"end": "2022-04-22"
},
"individual": {
"reference": "Practitioner/124",
"display": "2, Doctor"
}
},
{
"type": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
"code": "PRF",
"display": "performer"
}
],
"text": "performer"
}
],
"period": {
"start": "2022-04-22",
"end": "2022-04-22"
},
"individual": {
"reference": "Practitioner/125",
"display": "3, Doctor"
}
},
{
"type": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
"code": "PRF",
"display": "performer"
}
],
"text": "performer"
}
],
"period": {
"start": "2022-04-22",
"end": "2022-04-22"
},
"individual": {
"reference": "Practitioner/126",
"display": "4, Doctor"
}
}
],
"period": {
"start": "2022-04-22",
"end": "2022-04-22"
},
"reasonCode": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/data-absent-reason",
"code": "unknown",
"display": "Unknown"
}
],
"text": "Unknown"
}
],
"hospitalization": {
"dischargeDisposition": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/data-absent-reason",
"code": "unknown",
"display": "Unknown"
}
],
"text": "Unknown"
}
},
"location": [
{
"location": {
"reference": "Location/1",
"display": "Pawtucket Plastic Surgeons"
}
}
]
}
Get
Returns a single Encounter result based on the Encounter ID.
HTTP Request
GET /Encounter/{encounterID}
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| encounterID | path | The encounter unique identifier | Yes | 1.0 |
Example: Get an encounter with an ID of '123'
GET https://api.intellechart.net/icp-fhir-api/Encounter/123
Search
Returns encounters based on the provided search parameters.
HTTP Requests
GET /Encounter?{parameters}POST /Encounter/_search?{parameters}- application/x-www-form-urlencoded body:
{parameters}
- application/x-www-form-urlencoded body:
Note: For POST based searches the parameters can be provided in either the URL, the body, or both.
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| _lastUpdated | query or body | The date the encounter 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 | 1.0 |
| patient | query or body | The official patient identifier acquired from a patient search | No | 1.0 |
| date | query or body | The date the encounter took place in the form YYYY-MM-DD | No | 1.0 |
| identifier | query or body | The encounter unique identifier | No | 1.0 |
| _id | query or body | The encounter unique identifier | No | 1.0 |
| _revinclude | query or body | Must be Provenance:target. This enables requesting additional Provenance resources that relate to each encounter |
No | 1.0 |
Note: The possible filter values for the date or _lastUpdated parameters are: eq, ne, le, lt, ge and gt.
Retrieve Provenance with encounters
The _revinclude parameter allows support for including Provenance resources that match the returned encounters.
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 encounter.
Example: Get an encounter with an identifier '123' with provenance
GET https://api.intellechart.net/icp-fhir-api/Encounter?identifier=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/Encounter/_search body: identifier=123&_revinclude=Provenance:target
GET https://api.intellechart.net/icp-fhir-api/Encounter?_id=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/Encounter/_search body: _id=123&_revinclude=Provenance:target
Examples:
Get all encounters
GET https://api.intellechart.net/icp-fhir-api/Encounter
Search for encounters for the patient with the id '9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192'
GET https://api.intellechart.net/icp-fhir-api/Encounter?patient=9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192
POST https://api.intellechart.net/icp-fhir-api/Encounter/_search body: patient=9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192
Search for encounters for the patient with the id '9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192' that took place between and including 1/1/2022 through 11/14/2022
GET https://api.intellechart.net/icp-fhir-api/Encounter?patient=patient/9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192&date=ge2022-01-01&date=lt2022-11-14
POST https://api.intellechart.net/icp-fhir-api/Encounter/_search body: patient=patient/9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192&date=ge2022-01-01&date=lt2022-11-14
Search for an Encounter with the id '123'
GET https://api.intellechart.net/icp-fhir-api/Encounter?identifier=123
POST https://api.intellechart.net/icp-fhir-api/Encounter/_search body: identifier=123
GET https://api.intellechart.net/icp-fhir-api/Encounter?_id=123
POST https://api.intellechart.net/icp-fhir-api/Encounter/_search body: _id=123
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 | 1.0 |
| id | The unique value assigned to each goal which discerns them from all others. | string | 1.0 |
| lifeCycleStatus | The intended objective(s) for a patient | code using Goal Lifecycle Status value set | 1.0 |
| description | Code or text describing the goal | CodeableConcept | 1.0 |
| subject | The patient pertaining to the goal | Reference(US Core Patient Profile) | 1.0 |
| target | The target outcome of the goal | BackboneElement | 1.0 |
| target.dueDate | The date to reach the goal on or before | date | 1.0 |
| meta.lastUpdated | The last time the goal was modified | instant | 1.0 |
Example
{
"resourceType": "Goal",
"id": "goalemn-2284code-559215",
"meta": {
"lastUpdated": "2022-08-05T14:29:08.217-04:00"
},
"identifier": [
{
"use": "official",
"value": "goalemn-2284code-559215"
}
],
"lifecycleStatus": "active",
"description": {
"coding": [
{
"system": "http://loinc.org",
"code": "386661006",
"display": "Fever"
}
],
"text": "In case of high fever, take Tylenol as needed"
},
"subject": {
"reference": "Patient/F15FB185-5E63-485E-B025-D113103DCEC3",
"display": "Smith, Jane"
},
"target": {
"measure": {
"coding": [
{
"system": "http://loinc.org",
"code": "LA7435-6"
}
],
"text": "Fever"
}
}
}
Get
Returns a single Goal based on the goal's ID.
HTTP Request
GET /Goal/{GoalID}
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| GoalID | path | The official goal identifier acquired from a goal search | Yes | 1.0 |
Example: Get a goal with ID 'goalemn-2284code-559215'
GET https://api.intellechart.net/icp-fhir-api/Goal/goalemn-2284code-559215
Search
Searches for goals for a single patient
HTTP Requests
GET /Goal?{parameters}POST /Goal/_search?{parameters}- application/x-www-form-urlencoded body:
{parameters}
- application/x-www-form-urlencoded body:
Note: For POST based searches the parameters can be provided in either the URL, the body, or both.
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| identifier | query or body | The goal identifier | No | 1.0 |
| _id | query or body | The goal identifier | No | 1.0 |
| patient | query or body | The official patient identifier acquired from a patient search | No | 1.0 |
| _revinclude | query or body | Must be Provenance:target. This enables requesting additional Provenance resources that relate to each goal |
No | 1.0 |
| _lastUpdated | query or body | The date a goal was last modified | No | 1.0 |
Note: The possible filter values for the _lastUpdated parameter are: eq, ne, le, lt, ge and gt.
Retrieve Provenance with goals
The _revinclude parameter allows support for including Provenance references that match the returned goal.
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 goal.
Example: Get a goal with an identifier 'goalemn-2284code-559215' with provenance
GET https://api.intellechart.net/icp-fhir-api/Goal?identifier=goalemn-2284code-559215&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/Goal/_search body: identifier=goalemn-2284code-559215&_revinclude=Provenance:target
GET https://api.intellechart.net/icp-fhir-api/Goal?_id=goalemn-2284code-559215&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/Goal/_search body: _id=goalemn-2284code-559215&_revinclude=Provenance:target
Example: Get all goals for a single patient
GET https://api.intellechart.net/icp-fhir-api/Goal?patient=29D5AA40-6E3E-4683-B17F-2FBFECACF9BC
Example: Get all goals for a single patient, using a Patient/ reference prefix
GET https://api.intellechart.net/icp-fhir-api/Goal?patient=Patient/29D5AA40-6E3E-4683-B17F-2FBFECACF9BC
Example: Get all goals for a patient on a date
GET https://api.intellechart.net/icp-fhir-api/Goal?patient=29D5AA40-6E3E-4683-B17F-2FBFECACF9BC&date=2017-01-01
Example: Get all goals for a patient on a date
POST https://api.intellechart.net/icp-fhir-api/Goal/_search?patient=29D5AA40-6E3E-4683-B17F-2FBFECACF9BC&date=2017-01-01
Immunization
Overview
The Immunization resource describes an administered vaccine.
Fields
| Name | Description | Type | Initial Version |
|---|---|---|---|
| id | The logical id of the resource, as used in the URL for the resource. | string | 1.0 |
| identifier | The unique value assigned to each immunization which discerns them from all others. | Identifier | 1.0 |
| status | Either completed or not-done |
code with immunization status value set | 1.0 |
| statusReason | Reason that an immunization event was not performed, if any | CodeableConcept using Substance Refusal Reason (NIP) value set | 1.0 |
| vaccineCode | Vaccine product administered | CodeableConcept using vaccine administered value set | 1.0 |
| patient | The immunized patient | Reference (US Core Patient Profile) | 1.0 |
| occurrenceDateTime | The vaccination administration date in the form YYYY-MM-DD | dateTime | 1.0 |
| primarySource | Whether or not the information is from the person who administered the vaccine | boolean | 1.0 |
| meta.lastUpdated | The last time the immunization was updated | instant | 1.0 |
Example
{
"resourceType": "Immunization",
"id": "123",
"meta":
{
"lastUpdated": "2022-04-02T14:04:35.9+00:00"
},
"identifier": [
{
"use": "official",
"value": "123"
}
],
"status": "completed",
"vaccineCode": {
"coding": [
{
"system": "http://hl7.org/fhir/r4/sid/cvx",
"code": "05",
"display": "measles virus vaccine"
}
],
"text": "measles virus vaccine"
},
"patient": {
"reference": "Patient/4AAE9E3C-B1E4-46EA-93C2-CF3B36747D1A",
"display": "Tinsley, Carol F"
},
"occurrenceDateTime": "2013-08-17",
"primarySource" : true
}
Get
Returns a single Immunization result based on the Immunization ID.
HTTP Request
GET /Immunization/{immunizationID}
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| immunizationID | path | The immunization unique identifier | Yes | 1.0 |
Example: Get an immunization with an ID of '123'
GET https://api.intellechart.net/icp-fhir-api/Immunization/123
Search
Returns immunizations based on the provided search parameters.
HTTP Requests
GET /Immunization?{parameters}POST /Immunization/_search?{parameters}- application/x-www-form-urlencoded body:
{parameters}
- application/x-www-form-urlencoded body:
Note: For POST based searches the parameters can be provided in either the URL, the body, or both.
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| _lastUpdated | query or body | The date the patient 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 | 1.0 |
| patient | query or body | The official patient identifier acquired from a patient search | No | 1.0 |
| identifier | query or body | The immunization unique identifier | No | 1.0 |
| _id | query or body | The immunization unique identifier | No | 1.0 |
| _revinclude | query or body | Must be Provenance:target. This enables requesting additional Provenance resources that relate to each immunization |
No | 1.0 |
Note: The possible filter values for the date or _lastUpdated parameters are: eq, ne, le, lt, ge and gt.
Retrieve Provenance with immunizations
The _revinclude parameter allows support for including Provenance references that match the returned immunizations.
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 immunization.
Example: Get an immunization with an identifier '123' with provenance
GET https://api.intellechart.net/icp-fhir-api/Immunization?identifier=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/Immunization/_search body: identifier=123&_revinclude=Provenance:target
GET https://api.intellechart.net/icp-fhir-api/Immunization?_id=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/Immunization/_search body: _id=123&_revinclude=Provenance:target
Examples:
Get all immunizations
GET https://api.intellechart.net/icp-fhir-api/Immunization
Search for immunizations for the patient with the id '9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192'
GET https://api.intellechart.net/icp-fhir-api/Immunization?patient=9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192
POST https://api.intellechart.net/icp-fhir-api/Immunization/_search body: patient=9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192
Search for an immunization with the id '123'
GET https://api.intellechart.net/icp-fhir-api/Immunization?identifier=123
POST https://api.intellechart.net/icp-fhir-api/Immunization/_search body: identifier=123
GET https://api.intellechart.net/icp-fhir-api/Immunization?_id=123
POST https://api.intellechart.net/icp-fhir-api/Immunization/_search body: _id=123
Medication
Overview
The Medication resource can be used to record a patient's medication prescription or order.
Fields
| Name | Description | Type | Initial Version |
|---|---|---|---|
| id | The logical id of the resource, as used in the URL for the resource | string | 1.0 |
| status | A code specifying the current state of the medication | MedicationRequestStatus | 1.0 |
| code | The supplied medication | CodeableConcept | 1.0 |
Example
{
"resourceType": "Medication",
"id": "71705",
"code": {
"coding": [
{
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
"code": "670000",
"display": "Zyvox 400 MG Oral Tablet"
}
],
"text": "Zyvox 400 MG Oral Tablet"
},
"status": "active"
}
Get
Returns a single Medication result based on the Medication ID.
HTTP Request
GET /Medication/{medicationId}
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| medicationId | path | The unique identifier for the medication | Yes | 1.0 |
Example: Get the medication with an ID of '12'
GET https://api.intellechart.net/icp-fhir-api/Medication/12
Search
Searches for medications.
HTTP Requests
GET /MedicationRequest?{parameters}POST /MedicationRequest/_search?{parameters}- application/x-www-form-urlencoded body:
{parameters}
- application/x-www-form-urlencoded body:
Note: For POST based searches the parameters can be provided in either the URL, the body, or both.
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| _id | query or body | The unique identifier for the medication request | No | 1.0 |
| identifier | query or body | The unique identifier for the medication request | No | 1.0 |
| _lastUpdated | query or body | The date the medication request was last modified, formatted as OOXXXXX where OO is an operator and XXXXX is a date in the form YYYY-MM-DD. | No | 1.0 |
| _include | query or body | TODO | No | 1.0 |
| _revinclude | query or body | Must be Provenance:target. This enables requesting additional Provenance resources that relate to each medication request |
No | 1.0 |
Note: The possible filter values for the _lastUpdated parameter are: eq, ne, le, lt, ge and gt.
Retrieve Provenance with medication
The _revinclude parameter allows support for including Provenance resources that match the returned medications.
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 medication.
Example: Get a medication with an identifier '123' with provenance
GET https://api.intellechart.net/icp-fhir-api/Medication?identifier=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/Medication/_search body: identifier=123&_revinclude=Provenance:target
GET https://api.intellechart.net/icp-fhir-api/Medication?_id=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/Medication/_search body: _id=123&_revinclude=Provenance:target
Example: Get the medication with an ID of '12'
GET https://api.intellechart.net/icp-fhir-api/Medication?identifier=12
POST https://api.intellechart.net/icp-fhir-api/Medication/_search body: identifier=12
GET https://api.intellechart.net/icp-fhir-api/Medication?_id=12
POST https://api.intellechart.net/icp-fhir-api/Medication/_search body: _id=12
Medication Request
Overview
The Medication Request resource can be used to record a patient's medication prescription or order.
Fields
| Name | Description | Type | Initial Version |
|---|---|---|---|
| id | The logical id of the resource, as used in the URL for the resource | string | 1.0 |
| status | A code specifying the current state of the medication request | MedicationRequestStatus | 1.0 |
| intent | Whether the request is a proposal, plan, or an original order | MedicationRequestIntent | 1.0 |
| reported | Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record | boolean | 1.0 |
| medication | The supplied medication | CodeableConcept | 1.0 |
| authoredOn | The date and time when the prescription was initially written or authored on | dateTime | 1.0 |
| subject | The patient pertaining to the medication request | Reference (US Core Patient Profile) | 1.0 |
| requester | The individual, organization, or device that initiated the request and has responsibility for its activation | Reference (US Core Practitioner Profile) | 1.0 |
| encounter | The Encounter during which the medication request was created or to which the creation of this record is tightly associated | Reference (US Core Encounter Profile) | 1.0 |
| dosageInstruction | Indicates how the medication is to be used by the patient | Dosage | 1.0 |
Example
{
"resourceType": "MedicationRequest",
"id": "1",
"status": "active",
"intent": "original-order",
"reportedBoolean": false,
"medicationCodeableConcept": {
"coding": [
{
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
"code": "310964",
"display": "ibuprofen"
}
],
"text": "ibuprofen"
},
"subject": {
"reference": "Patient/c27e5be0-4b44-4ec5-a284-4308d6ac2b1a",
"display": "Newman, Alice Jones"
},
"encounter": {
"reference": "Encounter/1"
},
"authoredOn": "2022-07-06T18:20:39+02:00",
"requester": {
"reference": "Practitioner/84",
"display": "Davis, Albert"
},
"dosageInstruction": [
{
"text": "1 capsule by mouth twice a day"
}
]
}
Get
Returns a single Medication Request result based on the Medication Request ID.
HTTP Request
GET /MedicationRequest/{medicationRequestId}
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| medicationRequestId | path | The unique identifier for the medication request | Yes | 1.0 |
Example: Get the medication request with an ID of '12'
GET https://api.intellechart.net/icp-fhir-api/MedicationRequest/12
Search
Searches for medication requests for a single patient
HTTP Requests
GET /MedicationRequest?{parameters}POST /MedicationRequest/_search?{parameters}- application/x-www-form-urlencoded body:
{parameters}
- application/x-www-form-urlencoded body:
Note: For POST based searches the parameters can be provided in either the URL, the body, or both.
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| patient | query or body | The official patient identifier acquired from a patient search | No | 1.0 |
| _id | query or body | The unique identifier for the medication request | No | 1.0 |
| identifier | query or body | The unique identifier for the medication request | No | 1.0 |
| intent | query or body | The intent of the medication request. Ex.: 'original-order' | No | 1.0 |
| status | query or body | The status of the medication request. Ex.: 'active' | No | 1.0 |
| _lastUpdated | query or body | The date the medication request was last modified, formatted as OOXXXXX where OO is an operator and XXXXX is a date in the form YYYY-MM-DD. | No | 1.0 |
| _include | query or body | TODO | No | 1.0 |
| _revinclude | query or body | Must be Provenance:target. This enables requesting additional Provenance resources that relate to each medication request |
No | 1.0 |
Note: The possible filter values for the _lastUpdated parameter are: eq, ne, le, lt, ge and gt.
Retrieve Provenance with medication requests
The _revinclude parameter allows support for including Provenance resources that match the returned medication requests.
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 medication request.
Example: Get a medication request with an identifier '123' with provenance
GET https://api.intellechart.net/icp-fhir-api/MedicationRequest?identifier=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/MedicationRequest/_search body: identifier=123&_revinclude=Provenance:target
GET https://api.intellechart.net/icp-fhir-api/MedicationRequest?_id=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/MedicationRequest/_search body: _id=123&_revinclude=Provenance:target
Example: Get the medication request with an ID of '12'
GET https://api.intellechart.net/icp-fhir-api/MedicationRequest?identifier=12
POST https://api.intellechart.net/icp-fhir-api/MedicationRequest/_search body: identifier=12
GET https://api.intellechart.net/icp-fhir-api/MedicationRequest?_id=12
POST https://api.intellechart.net/icp-fhir-api/MedicationRequest/_search body: _id=12
Example: Get all medication requests for a single patient with id 'c27e5be0-4b44-4ec5-a284-4308d6ac2b1a'
GET https://api.intellechart.net/icp-fhir-api/MedicationRequest?patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a
GET https://api.intellechart.net/icp-fhir-api/MedicationRequest?patient=Patient/c27e5be0-4b44-4ec5-a284-4308d6ac2b1a
POST https://api.intellechart.net/icp-fhir-api/MedicationRequest/_search body: patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a
Example: Get all medication requests for a single patient with id 'c27e5be0-4b44-4ec5-a284-4308d6ac2b1a' and intent 'original-order'
GET https://api.intellechart.net/icp-fhir-api/MedicationRequest?patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&intent=original-order
GET https://api.intellechart.net/icp-fhir-api/MedicationRequest?patient=Patient/c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&intent=http://hl7.org/fhir/r4/CodeSystem/medicationrequest-intent|original-order
POST https://api.intellechart.net/icp-fhir-api/MedicationRequest/_search body: patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&intent=original-order
POST https://api.intellechart.net/icp-fhir-api/MedicationRequest/_search body: patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&intent=http://hl7.org/fhir/r4/CodeSystem/medicationrequest-intent|original-order
Example: Get all medication requests for a single patient with id 'c27e5be0-4b44-4ec5-a284-4308d6ac2b1a', intent 'original-order' and status 'active'
GET https://api.intellechart.net/icp-fhir-api/MedicationRequest?patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&intent=original-order&status=active
GET https://api.intellechart.net/icp-fhir-api/MedicationRequest?patient=Patient/c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&intent=original-order&status=http://hl7.org/fhir/r4/CodeSystem/medicationrequest-status|active
POST https://api.intellechart.net/icp-fhir-api/MedicationRequest/_search body: patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&intent=original-order&status=active
POST https://api.intellechart.net/icp-fhir-api/MedicationRequest/_search body: patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&intent=original-order&status=http://hl7.org/fhir/r4/CodeSystem/medicationrequest-status|active
Example: Get all medication requests for a single patient that were modified as of 5/5/2022
GET https://api.intellechart.net/icp-fhir-api/MedicationRequest?patient=c27e5be0-4b44-4ec5-a284-4308d6ac2b1a&_lastUpdated=ge2022-05-05
Example: Get all medication requests that were modified by 5/5/2022
GET https://api.intellechart.net/icp-fhir-api/MedicationRequest?_lastUpdated=le2022-05-05
Observation
Overview
An observation resource describes a measurement or an assertion made about a patient. 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 | 1.0 |
| subject | The patient pertaining to the observation | Reference(US Core Patient Profile) | 1.0 |
| status | The observation status | Observation Status | 1.0 |
| category | Classification of type of observation | Category | 1.0 |
| code | Type of observation | LOINC Code | 1.0 |
| effectiveDate | Clinically relevant time/time-period for observation | dateTime | 1.0 |
| value | Observation result | CodeableConcept | 1.0 |
| issued | The date and time this version of the observation was made available to providers | instant | 1.0 |
| value | Observation result | CodeableConcept | 1.0 |
| bodySite | Indicates the site on the subject's body where the observation was made (i.e. the target site) | CodeableConcept | 1.0 |
| method | Indicates the mechanism used to perform the observation | CodeableConcept | 1.0 |
| hasMember | Used when reporting vital signs panel components | Reference(US Core Observation Lab Profile) | 1.0 |
| component | Used when reporting systolic and diastolic blood pressure | BackboneElement | 1.0 |
| meta.lastUpdated | The last time the observation was updated | instant | 1.0 |
Example
{
"resource":{
"resourceType":"Observation",
"id":"lab-452",
"identifier":[
{
"use":"official",
"value":"lab-452"
},
{
"use":"usual",
"value":"XY202200016 - A"
}
],
"status":"registered",
"category":[
{
"coding":[
{
"system":"http://terminology.hl7.org/CodeSystem/observation-category",
"code":"laboratory",
"display":"laboratory"
}
],
"text":"Laboratory"
}
],
"code":{
"coding":[
{
"system":"http://loinc.org",
"code":"11065-0"
}
],
"text":"HPV Cervix"
},
"subject":{
"reference":"Patient/4CC272B3-0842-4D9E-A4AD-9535FA1AD01E",
"display":"Underwood, Jane"
},
"effectiveDate":"2022-06-30",
"issued":"2022-06-01T11:39:12+47:11",
"bodySite":{
"text":"right anterior 1st finger"
},
"method":{
"text":"Excision"
}
}
}
Get
Returns a single Observation result based on the Observation ID.
HTTP Request
GET /Observation/{observationId}
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| observationId | path | The unique identifier for the observation | Yes | 1.0 |
Example: Get a lab observation with an ID of '12'
GET https://api.intellechart.net/icp-fhir-api/Observation/lab-12
Search
Returns observations based on the provided search parameters
HTTP Request
GET /Observation?{parameters}POST /Observation/_search?{parameters}- application/x-www-form-urlencoded body:
{parameters}
- application/x-www-form-urlencoded body:
Note: For POST based searches the parameters can be provided in either the URL, the body, or both.
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| identifier | query or body | The observation identifier | No | 1.0 |
| _id | query or body | The observation identifier | No | 1.0 |
| patient | query or body | The official patient identifier acquired from a patient search | No | 1.0 |
| category | query or body | The category of observation by code ie. category=laboratory or by token ie. category=http://terminology.hl7.org/CodeSystem/observation-category|laboratory | No | 1.0 |
| date | query or body | The observation date in the form YYYY-MM-DD | No | 1.0 |
| code | query or body | The loinc code of observation by code ie. code=49765-1 or token ie. code=http://loinc.org|49765-1 | No | 1.0 |
| _revinclude | query or body | Must be Provenance:target. This enables requesting additional Provenance resources that relate to each observation |
No | 1.0 |
| _lastUpdated | query or body | The date the observation 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) (Note: Currently this search parameter will not filter the results for laboratory type observations) |
No | 1.0 |
Note: The possible filter values for the date or _lastUpdated parameters are: eq, ne, le, lt, ge and gt.
Retrieve Provenance with observations
The _revinclude parameter allows support for including Provenance resources that match the returned observations.
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 observation.
Example: Get a lab observation with an identifier '123' with provenance
GET https://api.intellechart.net/icp-fhir-api/Observation?identifier=lab-123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/Observation/_search body: identifier=lab-123&_revinclude=Provenance:target
GET https://api.intellechart.net/icp-fhir-api/Observation?_id=lab-123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/Observation/_search body: _id=lab-123&_revinclude=Provenance:target
Example: Get all laboratory requisitions and lab results 5/1/2017
GET https://api.intellechart.net/icp-fhir-api/Observation?category=laboratory&date=ge2017-05-01
POST https://api.intellechart.net/icp-fhir-api/Observation/_search body: category=laboratory&date=ge2017-05-01
Example: Get the social histories charted in encounters as of 5/1/2017
GET https://api.intellechart.net/icp-fhir-api/Observation?category=social-history&date=ge2017-05-01
POST https://api.intellechart.net/icp-fhir-api/Observation/_search body: category=social-history&date=ge2017-05-01
Example: Get the vital signs charted in encounters as of 5/1/2017
GET https://api.intellechart.net/icp-fhir-api/Observation?category=vital-signs&date=ge2017-05-01
POST https://api.intellechart.net/icp-fhir-api/Observation/_search body: category=vital-signs&date=ge2017-05-01
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 |
|---|---|---|---|
| id | The logical id of the resource, as used in the URL for the resource. | string | 1.0 |
| identifier | The unique value assigned to each procedure which discerns them from all others. | Identifier | 1.0 |
| status | The status of the procedure | EventStatus | 1.0 |
| subject | Who the procedure was performed on | Reference (US Core Patient Profile) | 1.0 |
| performedDateTime | Date the procedure was performed | DateTime | 1.0 |
Example
{
"resourceType": "Procedure",
"id": "2053",
"identifier": [
{
"use": "official",
"value": "2053"
}
],
"status": "completed",
"code": {
"coding": [
{
"system": "CPT4",
"code": "54601",
"display": "Microdermabrasion"
}
],
"text": "Microdermabrasion"
},
"subject": {
"reference": "Patient/5F37E582-FD96-48C5-9EE3-02E26D96CB72",
"display": "Smith, John"
},
"performedDateTime": "2011-10-05"
}
Get
Returns a single Procedure result based on the Procedure ID.
HTTP Request
GET /Procedure/{procedureID}
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| procedureID | path | The procedure unique identifier | Yes | 1.0 |
Example: Get an procedure with an ID of '123'
GET https://api.intellechart.net/icp-fhir-api/Procedure/123
Search
Returns procedures based on the provided search parameters.
HTTP Requests
GET /Procedure?{parameters}POST /Procedure/_search?{parameters}- application/x-www-form-urlencoded body:
{parameters}
- application/x-www-form-urlencoded body:
Note: For POST based searches the parameters can be provided in either the URL, the body, or both.
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| _lastUpdated | query or body | The date the procedure 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 | 1.0 |
| patient | query or body | The official patient identifier acquired from a patient search | No | 1.0 |
| date | query or body | The date the procedure was performed in the form YYYY-MM-DD | No | 1.0 |
| _id | query or body | The procedure unique identifier | No | 1.0 |
| identifier | query or body | The procedure unique identifier | No | 1.0 |
| _revinclude | query or body | Must be Provenance:target. This enables requesting additional Provenance resources that relate to each procedure |
No | 1.0 |
Note: The possible filter values for the date or _lastUpdated parameters are: eq, ne, le, lt, ge and gt.
Retrieve Provenance with procedures
The _revinclude parameter allows support for including Provenance references that match the returned procedures.
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 procedure.
Example: Get a procedure with an identifier '123' with provenance
GET https://api.intellechart.net/icp-fhir-api/Procedure?identifier=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/Procedure/_search body: identifier=123&_revinclude=Provenance:target
GET https://api.intellechart.net/icp-fhir-api/Procedure?_id=123&_revinclude=Provenance:target
POST https://api.intellechart.net/icp-fhir-api/Procedure/_search body: _id=123&_revinclude=Provenance:target
Examples:
Get all procedures
GET https://api.intellechart.net/icp-fhir-api/Procedure
Search for procedures for the patient with the id '9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192'
GET https://api.intellechart.net/icp-fhir-api/Procedure?patient=9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192
POST https://api.intellechart.net/icp-fhir-api/Procedure/_search body: patient=9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192
Search for procedures for the patient with the id '9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192' performed between and including 1/1/2022 through 11/14/2022
GET https://api.intellechart.net/icp-fhir-api/Procedure?patient=patient/9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192&date=ge2022-01-01&date=lt2022-11-14
POST https://api.intellechart.net/icp-fhir-api/Procedure/_search body: patient=patient/9D0B7ADE-4B5B-41DD-8AC4-88DB4C93B192&date=ge2022-01-01&date=lt2022-11-14
Search for an procedure with the id '123'
GET https://api.intellechart.net/icp-fhir-api/Procedure?_id=123
POST https://api.intellechart.net/icp-fhir-api/Procedure/_search body: _id=123
Location
Overview
A Location resource represents a physical location where services are provided. This may or may not be under the practice's management.
Fields
| Name | Description | Type | Initial Version |
|---|---|---|---|
| id | The unique value assigned to each location which discerns it from all others | string | 1.0 |
| identifier | The unique value assigned to each location which discerns it from all others | Identifier | 1.0 |
| meta.lastUpdated | The last time the location was modified | instant | 1.0 |
| status | The status of the location (ie. active, inactive) | code | 1.0 |
| 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 | 1.0 |
| name | The name of the location | string | 1.0 |
| telecom | The contact details of communication at the location | ContactPoint | 1.0 |
| address | The address of the location | Address | 1.0 |
| managingOrganization | The reference to the associated organization | Reference (US Core Organization Profile) | 1.0 |
Example
{
"resourceType": "Location",
"id": "2",
"meta":
{
"lastUpdated": "2022-04-02T14:04:35.9+00:00"
},
"extension": [
{
"url": "https://api.intellechart.net/icp-fhir-api/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"
},
"managingOrganization": {
"reference": "Organization/1",
"display": "Tampa Dermatology"
}
}
Get
Returns a single Location result based on the Location ID.
HTTP Request
GET /Location/{LocationID}
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| locationID | path | The location unique identifier | Yes | 1.0 |
Example: Get an location with an ID of '123'
GET https://api.intellechart.net/icp-fhir-api/Location/123
Search
Searches for all locations based on the given search criteria.
HTTP Requests
GET /Location?{parameters}POST /Location/_search?{parameters}- application/x-www-form-urlencoded body:
{parameters}
- application/x-www-form-urlencoded body:
Note: For POST based searches the parameters can be provided in either the URL, the body, or both.
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| identifier | query or body | The unique value assigned to each location which discerns it from all others | No | 1.0 |
| name | query or body | The name of the location | No | 1.0 |
| address | query or body | A (part of the) address of the location | No | 1.0 |
| _id | query or body | The location unique identifier | No | 1.0 |
| _lastUpdated | query or body | The last time the location was modified | No | 1.0 |
Note: The possible filter values for the _lastUpdated parameter are: eq, ne, le, lt, ge and gt.
Example: Get all active locations
Example: Get all locations, including managed and non-managed locations
POST https://api.intellechart.net/icp-fhir-api/Location/_search?includeAll=true
Example: Get all locations whose name contains 'dermatology'
POST https://api.intellechart.net/icp-fhir-api/Location/_search?name:contains=dermatology
Example: Get a specific location based on identifier
POST https://api.intellechart.net/icp-fhir-api/Location/_search?identifier=123
Example: Get all locations whose name contains 'dermatology'
GET https://api.intellechart.net/icp-fhir-api/Location?name:contains=dermatology
Example: Get a specific location based on identifier
GET https://api.intellechart.net/icp-fhir-api/Location?identifier=123
Practitioner
Overview
A Practitioner resource represents an 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 | 1.0 |
| active | Whether this practitioner's record is in active use. | boolean | 1.0 |
| name | The name(s) associated with the practitioner | HumanName | 1.0 |
| telecom | Contact detail(s) for the practitioner (that apply to all roles) | ContactPoint | 1.0 |
| address | Address(es) of the practitioner that are not role specific | Address | 1.0 |
| gender | Gender of the practitioner | Code | 1.0 |
| birthDate | The date of birth of the practitioner | date | 1.0 |
Example
{
"resourceType": "Practitioner",
"identifier": [
{
"use": "official",
"system": "https://api.intellechart.net/icp-fhir-api/api/structuredefinition/practitioner-id"
"value": "9219"
},
{
"system": "http://hl7.org/fhir/r4/sid/us-npi",
"value": "1245319599"
}
],
"active": true,
"name": [
{
"text": "Davis, Albert Edward",
"family": "Davis",
"given": [
"Albert",
"Edward"
]
}
],
"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": "male",
"birthDate": "1970-09-27"
Get
Returns a single Practitioner result based on the Practitioner ID.
HTTP Request
GET /Practitioner/{practitionerID}
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| practitionerID | path | The unique identifier for the practitioner | Yes | 1.0 |
Example: Get a specific Practitioner based on identifier
GET https://api.intellechart.net/icp-fhir-api/Practitioner/12
Search
Searches for all based on the given search criteria.
HTTP Request
GET /Practitioner?{parameters}POST /Practitioner/_search?{parameters}- application/x-www-form-urlencoded body:
{parameters}
- application/x-www-form-urlencoded body:
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 | 1.0 |
| name | query | The name of the Practitioner | No | 1.0 |
Example: Get all Practitioners
GET https://api.intellechart.net/icp-fhir-api/Practitioner
Example: Get a specific Practitioner based on identifier
GET https://api.intellechart.net/icp-fhir-api/Practitioner?identifier=12
Example: Get a specific Practitioner based on National Provider Identifier (NPI)
GET https://api.intellechart.net/icp-fhir-api/Practitioner?identifier=http://hl7.org/fhir/r4/sid/us-npi|1245319599
Example: Get all Practitioners whose name contains 'smith'
GET https://api.intellechart.net/icp-fhir-api/Practitioner?name:contains=smith
Remarks
- To get a specific Practitioner by the National Provider Identifier (NPI), the system (http://hl7.org/fhir/r4/sid/us-npi) must be included in the query.
- 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.
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 identifier for the coverage | Identifier | 1.0 |
| status | The status of the coverage | code | 1.0 |
| type | The type of coverage (ie. Medical, Vision, Dental, Auto, Workers' Comp). See Coverage Type Codes | CodeableConcept | 1.0 |
| subscriber | The subscriber to the policy | Reference(Patient or RelatedPerson) | 1.0 |
| subscriberId | The identifier assigned to the subscriber | string | 1.0 |
| beneficiary | The patient who benefits from the coverage | Reference(Patient) | 1.0 |
| relationship | The beneficiary (or patient) relationship to the subscriber. See Policyholder Relationship Codes | CodeableConcept | 1.0 |
| period | The coverage effective and expiry dates (if available) | Period | 1.0 |
| payor | The reference to the insurance company providing the insurance coverage | Reference(Organization) | 1.0 |
| order | The relative order of the coverage | positiveInt | 1.0 |
Example
{
"resourceType": "Coverage",
"id": "12345",
"identifier": [
{
"use": "official",
"value": "12345"
}
],
"status": "active",
"type": {
"coding": [
{
"system": "http://hl7.org/fhir/v3/ActCode",
"code": "EHCPOL",
"display": "extended healthcare"
}
]
},
"subscriber": {
"reference": "Patient/67890",
"display": "Smith, John"
},
"subscriberId": "ABC123456",
"beneficiary": {
"reference": "Patient/12345",
"display": "Doe, Jane"
},
"relationship": {
"coding": [
{
"system": "http://hl7.org/fhir/policyholder-relationship",
"code": "self",
"display": "Self"
}
]
},
"period": {
"start": "2025-01-01",
"end": "2025-12-31"
},
"payor": [
{
"reference": "Organization/100",
"display": "Sample Insurance Company"
}
],
"order": 1
}
Search
Searches for active coverages based on the given search criteria.
HTTP Request
GET /Coverage?{parameters}
POST /Coverage/_search
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| _id | query/form | The coverage identifier | N | 1.0 |
| patient | query/form | Search coverages by patient identifier | N | 1.0 |
| beneficiary | query/form | Search coverages by beneficiary (patient) identifier | N | 1.0 |
| status | query/form | The status of the coverage (e.g., active, cancelled) | N | 1.0 |
| type | query/form | The type of coverage | N | 1.0 |
| payor | query/form | The payor (insurance company) reference | N | 1.0 |
| period | query/form | The coverage period. Supports prefixes: gt, lt, ge, le, eq | N | 1.0 |
| _lastUpdate | query/form | Filter by last update timestamp. Supports prefixes: gt, lt, ge, le, eq | N | 1.0 |
| _since | query/form | Filter by resources updated since the given timestamp | N | 1.0 |
| _count | query/form | The maximum number of results to return | N | 1.0 |
| _getPagesOffset | query/form | The page offset for pagination | N | 1.0 |
| _revInclude | query/form | Reverse include related resources. Supported value: Provenance:target |
N | 1.0 |
Response
| HTTP Code | Description | Resource |
|---|---|---|
| 200 | OK | Bundle |
| 400 | Bad Request | OperationOutcome |
| 401 | Unauthorized | OperationOutcome |
| 404 | Not Found | OperationOutcome |
| 500 | Internal Server Error | OperationOutcome |
Example: Get coverages for a single patient (GET)
GET https://api.intellechart.net/icp-fhir-api/Coverage?patient=ce2a5ae0-3514-4f63-8609-911da841e72e
Organization
Overview
An Organization resource represents a physical location where services are provided. This may or may not be under the practice's management.
Fields
| Name | Description | Type | Initial Version |
|---|---|---|---|
| id | The unique value assigned to each location which discerns it from all others | string | 1.0 |
| identifier | The unique value assigned to each location which discerns it from all others | Identifier | 1.0 |
| identifier:NPI | NPI identifier for the organization that is used to identify the organization across multiple disparate systems | Identifier | 1.0 |
| meta.lastUpdated | The last time the organization was modified | instant | 1.0 |
| name | The name of the location | string | 1.0 |
| telecom | The contact details of communication at the location | ContactPoint | 1.0 |
| address | The address of the location | Address | 1.0 |
| address.country | The country of the location address | string | 1.0 |
| active | Whether the organization's record is still in active use | boolean | 1.0 |
Example
{
"resourceType": "Organization",
"id": "2",
"meta":
{
"lastUpdated": "2022-04-02T14:04:35.9+00:00"
},
"identifier": [
{
"use": "official",
"value": "2"
},
{
"system": "http://hl7.org/fhir/r4/sid/us-npi",
"value": "ABCDE1234"
}
],
"active": true,
"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",
"country": "US"
}]
}
Get
Returns a single Organization result based on the Organization ID.
HTTP Request
GET /Organization/{OrganizationID}
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| OrganizationID | path | The organization unique identifier | Yes | 1.0 |
Example: Get an organization with an ID of '123'
GET https://api.intellechart.net/icp-fhir-api/Organization/123
Search
Searches for all organizations based on the given search criteria.
HTTP Requests
GET /Organization?{parameters}POST /Organization/_search?{parameters}- application/x-www-form-urlencoded body:
{parameters}
- application/x-www-form-urlencoded body:
Note: For POST based searches the parameters can be provided in either the URL, the body, or both.
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| identifier | query or body | The unique value assigned to each organization which discerns it from all others | No | 1.0 |
| name | query or body | The name of the organization | No | 1.0 |
| address | query or body | A (part of the) address of the organization | No | 1.0 |
| _id | query or body | The organization unique identifier | No | 1.0 |
| _lastUpdated | query or body | The last time the organization was modified | No | 1.0 |
Note: The possible filter values for the _lastUpdated parameter are: eq, ne, le, lt, ge and gt.
Example: Get all organizations whose name contains 'dermatology'
POST https://api.intellechart.net/icp-fhir-api/Organization/_search?name:contains=dermatology
Example: Get a specific organization based on identifier
POST https://api.intellechart.net/icp-fhir-api/Organization/_search?identifier=123
Example: Get all organizations whose name contains 'dermatology'
GET https://api.intellechart.net/icp-fhir-api/Organization?name:contains=dermatology
Example: Get a specific organization based on identifier
GET https://api.intellechart.net/icp-fhir-api/Organization?identifier=123
Provenance
Overview
The provenance of a resource is a record that describes entities and processes involved in producing and delivering or otherwise influencing that resource.
Fields
| Name | Description | Type | Initial Version |
|---|---|---|---|
| id | The unique value assigned to each provenance which discerns it from all others | string | 1.0 |
| meta.lastUpdated | The last time the provenance was modified | instant | 1.0 |
| target | The resource(s) the provenance supports | Reference (Resource) | 1.0 |
| recorded | Timestamp of when the activity was recorded | instant | 1.0 |
| agent | Actor involved | slice | 1.0 |
| agent.type | How the agent participated | CodeableConcept | 1.0 |
| agent.who | Who participated | Reference (US Core Practitioner Profile or US Core Organization Profile or US Core Patient Profile) | 1.0 |
| agent.onBehalfOf | Who the agent is representing | Reference (US Core Organization Profile) | 1.0 |
Example
{
"resourceType": "Provenance",
"id": "4",
"meta": {
"lastUpdated": "2022-08-05T14:29:08.217-04:00"
},
"target": [
{
"reference": "Immunization/145"
},
{
"reference": "DocumentReference/history-131816"
}
],
"recorded": "2022-08-05T14:29:08.217-04:00",
"agent": [
{
"type": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/provenance-participant-type",
"code": "author",
"display": "Author"
}
],
"text": "Author"
},
"who": {
"reference": "Practitioner/26546",
"display": "PortalProvider, PortalProvider"
},
"onBehalfOf": {
"reference": "Organization/47",
"display": "Pawtucket Plastic Surgeons"
}
},
{
"type": {
"coding": [
{
"system": "http://hl7.org/fhir/r4/us/core/CodeSystem/us-core-provenance-participant-type",
"code": "transmitter",
"display": "Transmitter"
}
],
"text": "Transmitter"
},
"who": {
"reference": "Practitioner/26546",
"display": "PortalProvider, PortalProvider"
},
"onBehalfOf": {
"reference": "Organization/47",
"display": "Pawtucket Plastic Surgeons"
}
}
]
}
Get
Returns a single Provenance result based on the Provenance ID.
HTTP Request
GET /Provenance/{ProvenanceID}
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| ProvenanceID | path | The provenance unique identifier | Yes | 1.0 |
Example: Get a specific provenance based on identifier
GET https://api.intellechart.net/icp-fhir-api/Provenance/123
Bulk Export
Bulk FHIR Export (Documentation)
Overview
This functionality provides the ability for asynchronous generation of potentially large amounts of bulk data - whether that be all patients, a subset (defined group) of patients, or all available data contained in the FHIR server.
Bulk Data Kick-off request
Allows for the generation of bulk data in one of three different formats: all patients, a subset of patients within a defined group, or all available data contained in the FHIR server.
All Patients
HTTP Request
GET /Patient/$export?{parameters}
HTTP Headers
| Name | Value | Description | Required |
|---|---|---|---|
| Accept | application/fhir+json |
Specifies the format of the optional OperationOutcome resource response to the kick-off request | Yes |
| Prefer | respond-async |
Specifies whether the response is immediate or asynchronous | Yes |
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| _outputFormat | query | The format for the requested bulk data files to be generated as per the FHIR Asynchronous Request Pattern. Defaults to application/fhir+ndjson, but also supports application/ndjson and ndjson abbreviated representations |
No | 1.0 |
| _since | query | Resources will be included in the response if their state has changed after the supplied time (e.g. if Resource.meta.lastUpdated is later than the supplied _since time) |
No | 1.0 |
| _type | query | String of comma-delimited FHIR R4 resource types (example: Patient,MedicationRequest). All supported resources are returned if this parameter is not provided |
No | 1.0 |
HTTP Response
A successful kick-off request will return a response with a 202 Accepted HTTP status code, along with a Content-Location reponse header containing the absolute URL of the endpoint that must be used for subsequent status requests (polling location), which will be located at https://api.intellechart.net/icp-fhir-api/Export/{ExportJobID}. See below for the usage of this polling endpoint.
A failed kick-off request will return a response with either a 4XX or 5XX range status code, along with a JSON response body containing a FHIR OperationOutCome resource describing the error that occurred.
Example: Start an export of all patients
GET https://api.intellechart.net/icp-fhir-api/Patient/$export
All Patients within a group
HTTP Request
GET /Group/{GroupID}/$export?{parameters}
HTTP Headers
| Name | Value | Description | Required |
|---|---|---|---|
| Accept | application/fhir+json |
Specifies the format of the optional OperationOutcome resource response to the kick-off request | Yes |
| Prefer | respond-async |
Specifies whether the response is immediate or asynchronous | Yes |
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| GroupID | path | ID of the group of patients to export | Yes | 1.0 |
| _outputFormat | query | The format for the requested bulk data files to be generated as per the FHIR Asynchronous Request Pattern. Defaults to application/fhir+ndjson, but also supports application/ndjson and ndjson abbreviated representations |
No | 1.0 |
| _since | query | Resources will be included in the response if their state has changed after the supplied time (e.g. if Resource.meta.lastUpdated is later than the supplied _since time) |
No | 1.0 |
| _type | query | String of comma-delimited FHIR R4 resource types (example: Patient,MedicationRequest). All supported resources are returned if this parameter is not provided |
No | 1.0 |
HTTP Response
A successful kick-off request will return a response with a 202 Accepted HTTP status code, along with a Content-Location reponse header containing the absolute URL of the endpoint that must be used for subsequent status requests (polling location), which will be located at https://api.intellechart.net/icp-fhir-api/Export/{ExportJobID}. See below for the usage of this polling endpoint.
A failed kick-off request will return a response with either a 4XX or 5XX range status code, along with a JSON response body containing a FHIR OperationOutCome resource describing the error that occurred.
Example: Start an export of all patients within the group with an ID of "1"
GET https://api.intellechart.net/icp-fhir-api/Group/1/$export
System level export
HTTP Request
GET /$export?{parameters}
HTTP Headers
| Name | Value | Description | Required |
|---|---|---|---|
| Accept | application/fhir+json |
Specifies the format of the optional OperationOutcome resource response to the kick-off request | Yes |
| Prefer | respond-async |
Specifies whether the response is immediate or asynchronous | Yes |
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| _outputFormat | query | The format for the requested bulk data files to be generated as per the FHIR Asynchronous Request Pattern. Defaults to application/fhir+ndjson, but also supports application/ndjson and ndjson abbreviated representations |
No | 1.0 |
| _since | query | Resources will be included in the response if their state has changed after the supplied time (e.g. if Resource.meta.lastUpdated is later than the supplied _since time) |
No | 1.0 |
| _type | query | String of comma-delimited FHIR R4 resource types (example: Patient,MedicationRequest). All supported resources are returned if this parameter is not provided |
No | 1.0 |
HTTP Response
A successful kick-off request will return a response with a 202 Accepted HTTP status code, along with a Content-Location reponse header containing the absolute URL of the endpoint that must be used for subsequent status requests (polling location), which will be located at https://api.intellechart.net/icp-fhir-api/Export/{ExportJobID}. See below for the usage of this polling endpoint.
A failed kick-off request will return a response with either a 4XX or 5XX range status code, along with a JSON response body containing a FHIR OperationOutCome resource describing the error that occurred.
Example: Start an export of all allowed FHIR resources
GET https://api.intellechart.net/icp-fhir-api/$export
Poll export content location
HTTP Request
GET /Export/{ExportJobID}
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| ExportJobID | path | ID of the export job to poll the status of. Returned in the Content-Location HTTP header in the HTTP response to the kick-off request |
Yes | 1.0 |
HTTP Response
An export job can be in one of three states: In-Progress, Error, and Complete, and has the following types of responses for those states:
In-Progress
Returned by the server while it is processing the $export request.
The X-Progress HTTP response header gives an indication of how far along the export is, as a percentage.
The Retry-After HTTP response header gives a delay time in seconds indicating the amount of time to wait before making another polling request to this endpoint.
Status: 202 Accepted X-Progress: “50% complete” Retry-After: 120
Error
Returned by the server if the export operation fails.
A description of the error is in the OperationOutcome.Text member of the FHIR JSON response. The below is an example of a timeout error.
Status: 500 Internal Server Error
Content-Type: application/json
{
"resourceType": "OperationOutcome",
"id": "1",
"issue": [
{
"severity": "error",
"code": "processing",
"details": {
"text": "An internal timeout has occurred"
}
}
]
}
Complete
Returned by the server when the export operation has completed. Below is an example response for when this endpoint is polled and the requested export job (filtered to the Patient and Observation FHIR resources, in this example) has completed.
The Expires HTTP response header indicates when the files in the response will no longer be available for access.
The transactionTime member in the JSON response body indicates the server's time when the query is run.
The request member in the JSON response body is the full URL of the original bulk data kick-off request.
The requiresAccessToken member in the JSON response body indicates whether an OAuth 2.0 bearer token is required to access the indicated export files.
The output array member in the JSON response body indicates both each exported FHIR resource type and the url containing the exported .ndjson file for that resource.
The error array member in the JSON response body indicates each error file detailing error(s) that were encountered during the export.
Status: 200 OK
Expires: Mon, 22 Jul 2019 23:59:59 GMT
Content-Type: application/json
{
"transactionTime": "2021-01-01T00:00:00Z",
"request" : "https://api.intellechart.net/icp-fhir-api/Patient/$export?_type=Patient,Observation",
"requiresAccessToken" : false,
"output" : [{
"type" : "Patient",
"url" : "https://storagesample.blob.core.windows.net/sampleoutput/patient_file_1.ndjson"
},{
"type" : "Patient",
"url" : "https://storagesample.blob.core.windows.net/sampleoutput/patient_file_2.ndjson"
},{
"type" : "Observation",
"url" : "https://storagesample.blob.core.windows.net/sampleoutput/observation_file_1.ndjson"
}],
"error" : [{
"type" : "OperationOutcome",
"url" : "https://storagesample.blob.core.windows.net/sampleoutput/err_file_1.ndjson"
}]
}
Example: Poll the status of an export job with an ID of "61b05fbe-6b5f-4b68-aec4-c03d09f51e82"
GET https://api.intellechart.net/icp-fhir-api/Export/61b05fbe-6b5f-4b68-aec4-c03d09f51e82
Cancel export job
HTTP Request
DELETE /Export/{ExportJobID}
Parameters
| Name | Located in | Description | Required | Initial Version |
|---|---|---|---|---|
| ExportJobID | path | ID of the export job to cancel. Returned in the Content-Location HTTP header in the HTTP response to the kick-off request |
Yes | 1.0 |
Example: Cancel an export job with an ID of "61b05fbe-6b5f-4b68-aec4-c03d09f51e82"
DELETE https://api.intellechart.net/icp-fhir-api/Export/61b05fbe-6b5f-4b68-aec4-c03d09f51e82
Frequently Asked Questions
Resetting Expired Partner Credentials
If your partner 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.