NAV Navbar
Logo cerner
Ruby Shell

Data Ingestion API v1

The HealtheIntent platform has multiple, specialized data ingestion services that provide features that enable managing the ingestion of data from external data sources. Each specialized data ingestion service targets different data ingestion use cases. Though each specialized data ingestion service has its own API, some resources such as data sources and data partitions are commonly shared. The Data Ingestion API provides limited and mainly read-only access to these shared resources.

URL: https://cernerdemo.api.us-1.healtheintent.com/data-ingestion/v1

Data Sources

A data source is a contributor of data to the HealtheIntent platform. Each contributor must be created as a data source on the platform before it can send data to the platform.

Retrieve a List of Data Sources

Example Request:


require 'httparty' # Using HTTParty 0.16.2
require 'json'

headers = {
  'Authorization' => '<auth_header>',
  'Accept' => 'application/json'
} 

result = HTTParty.get('https://cernerdemo.api.us-1.healtheintent.com/data-ingestion/v1/data-sources', headers: headers)

print JSON.pretty_generate(result)


# You can also use wget
curl -X GET https://cernerdemo.api.us-1.healtheintent.com/data-ingestion/v1/data-sources \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json'

Example response

{
  "items": [
    {
      "id": "c5d5f79c-72b3-43c6-91ec-b8692700311c",
      "name": "Cerner Demo",
      "description": "Cerner - Demo EMR",
      "tags": [
        {
          "key": "Use",
          "value": "Production"
        }
      ],
      "createdAt": "2020-05-03T11:32:57.041Z",
      "updatedAt": "2020-05-06T10:01:21.025Z"
    }
  ],
  "totalResults": 1,
  "firstLink": "https://cernerdemo.api.us-1.healtheintent.com/example/v1/examples?offset=0&limit=20",
  "lastLink": "https://cernerdemo.api.us-1.healtheintent.com/example/v1/examples?offset=0&limit=20"
}

GET /data-sources

Retrieves a list of data sources sorted in descending order by their updatedAt values.

Parameters

Parameter In Type Required Default Description Accepted Values
name query string false N/A Filters the returned data sources to only those that match this name. Case insensitive and partial string matching are used, which means that any data source with a name that contains this name is returned regardless of case. For example, a parameter value of cross matches both Blue Cross Blue Shield and Rivercross Health EHR. -
id query array[string] false N/A Filters the returned data sources to those that match any of the specified IDs. A maximum of 20 IDs can be specified in a single request. -
offset query integer(int32) false 0 The number of results to skip from the beginning of the list of results (typically for the purpose of paging). The minimum offset is 0. There is no maximum offset. -
limit query integer(int32) false 20 The maximum number of results to display per page. The minimum limit is 1. The maximum limit is 100. -

Response Statuses

Status Meaning Description Schema
200 OK OK DataSources
400 Bad Request Bad Request BadRequestError
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError

Retrieve a Single Data Source

Example Request:


require 'httparty' # Using HTTParty 0.16.2
require 'json'

headers = {
  'Authorization' => '<auth_header>',
  'Accept' => 'application/json'
} 

result = HTTParty.get('https://cernerdemo.api.us-1.healtheintent.com/data-ingestion/v1/data-sources/c5d5f79c-72b3-43c6-91ec-b8692700311c', headers: headers)

print JSON.pretty_generate(result)


# You can also use wget
curl -X GET https://cernerdemo.api.us-1.healtheintent.com/data-ingestion/v1/data-sources/c5d5f79c-72b3-43c6-91ec-b8692700311c \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json'

Example response

{
  "id": "c5d5f79c-72b3-43c6-91ec-b8692700311c",
  "name": "Cerner Demo",
  "description": "Cerner - Demo EMR",
  "tags": [
    {
      "key": "Use",
      "value": "Production"
    }
  ],
  "createdAt": "2020-05-03T11:32:57.041Z",
  "updatedAt": "2020-05-06T10:01:21.025Z"
}

GET /data-sources/{dataSourceId}

Retrieves a single data source.

Parameters

Parameter In Type Required Default Description Accepted Values
dataSourceId path string true N/A The ID of the data source. -

Response Statuses

Status Meaning Description Schema
200 OK OK DataSource
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError
404 Not Found Not Found NotFoundError

Data Partitions

Data partitions are the logical partitions of data in HealtheIntent for a data source. Most data that is ingested onto the platform is transformed until its shape is normalized and its terminology is standardized. After the data is transformed, it is published in data partitions and ready to be used by other platform services, solutions, and applications.

Retrieve a List of Data Partitions By Data Source

Example Request:


require 'httparty' # Using HTTParty 0.16.2
require 'json'

headers = {
  'Authorization' => '<auth_header>',
  'Accept' => 'application/json'
} 

result = HTTParty.get('https://cernerdemo.api.us-1.healtheintent.com/data-ingestion/v1/data-sources/c5d5f79c-72b3-43c6-91ec-b8692700311c/data-partitions', headers: headers)

print JSON.pretty_generate(result)


# You can also use wget
curl -X GET https://cernerdemo.api.us-1.healtheintent.com/data-ingestion/v1/data-sources/c5d5f79c-72b3-43c6-91ec-b8692700311c/data-partitions \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json'

Example response

{
  "items": [
    {
      "id": "c5d5f79c-72b3-43c6-91ec-b8692700311c",
      "name": "Cerner Demo",
      "description": "Cerner - Demo EMR",
      "tags": [
        {
          "key": "Use",
          "value": "Production"
        }
      ],
      "createdAt": "2020-05-03T11:32:57.041Z",
      "updatedAt": "2020-05-06T10:01:21.025Z"
    }
  ],
  "totalResults": 1,
  "firstLink": "https://cernerdemo.api.us-1.healtheintent.com/example/v1/examples?offset=0&limit=20",
  "lastLink": "https://cernerdemo.api.us-1.healtheintent.com/example/v1/examples?offset=0&limit=20"
}

GET /data-sources/{dataSourceId}/data-partitions

Retrieves a list of child data partitions for a data source sorted in descending order by their updatedAt values.

Parameters

Parameter In Type Required Default Description Accepted Values
dataSourceId path string true N/A The ID of the data source. -
name query string false N/A Filters the returned data partitions to only those that match this name. Case insensitive and partial string matching are used, which means that any data partition with a name that contains this name is returned regardless of case. For example, a parameter value of cross matches both Blue Cross Blue Shield and Rivercross Health EHR. -
id query array[string] false N/A Filters the returned data partitions to those that match any of the specified IDs. A maximum of 20 IDs can be specified in a single request. -
offset query integer(int32) false 0 The number of results to skip from the beginning of the list of results (typically for the purpose of paging). The minimum offset is 0. There is no maximum offset. -
limit query integer(int32) false 20 The maximum number of results to display per page. The minimum limit is 1. The maximum limit is 100. -

Response Statuses

Status Meaning Description Schema
200 OK OK DataSourceDataPartitions
400 Bad Request Bad Request BadRequestError
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError

Retrieve a Single Data Partition By Data Source

Example Request:


require 'httparty' # Using HTTParty 0.16.2
require 'json'

headers = {
  'Authorization' => '<auth_header>',
  'Accept' => 'application/json'
} 

result = HTTParty.get('https://cernerdemo.api.us-1.healtheintent.com/data-ingestion/v1/data-sources/c5d5f79c-72b3-43c6-91ec-b8692700311c/data-partitions/877307a0-b5f5-4a01-9d4b-9fead6bcf788', headers: headers)

print JSON.pretty_generate(result)


# You can also use wget
curl -X GET https://cernerdemo.api.us-1.healtheintent.com/data-ingestion/v1/data-sources/c5d5f79c-72b3-43c6-91ec-b8692700311c/data-partitions/877307a0-b5f5-4a01-9d4b-9fead6bcf788 \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json'

Example response

{
  "id": "c5d5f79c-72b3-43c6-91ec-b8692700311c",
  "name": "Cerner Demo",
  "description": "Cerner - Demo EMR",
  "tags": [
    {
      "key": "Use",
      "value": "Production"
    }
  ],
  "createdAt": "2020-05-03T11:32:57.041Z",
  "updatedAt": "2020-05-06T10:01:21.025Z"
}

GET /data-sources/{dataSourceId}/data-partitions/{dataPartitionId}

Retrieves a single child data partition for a data source.

Parameters

Parameter In Type Required Default Description Accepted Values
dataSourceId path string true N/A The ID of the data source. -
dataPartitionId path string true N/A The ID of the data partition. -

Response Statuses

Status Meaning Description Schema
200 OK OK DataSourceDataPartition
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError
404 Not Found Not Found NotFoundError

Retrieve a List of Authorized Data Partitions

Example Request:


require 'httparty' # Using HTTParty 0.16.2
require 'json'

headers = {
  'Authorization' => '<auth_header>',
  'Accept' => 'application/json'
} 

result = HTTParty.get('https://cernerdemo.api.us-1.healtheintent.com/data-ingestion/v1/data-partitions', headers: headers)

print JSON.pretty_generate(result)


# You can also use wget
curl -X GET https://cernerdemo.api.us-1.healtheintent.com/data-ingestion/v1/data-partitions \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json'

Example response

{
  "items": [
    {
      "id": "c5d5f79c-72b3-43c6-91ec-b8692700311c",
      "name": "Cerner Demo",
      "description": "Cerner - Demo EMR",
      "dataSource": {
        "id": "4fd3ce2f-2897-405d-9418-f31d49040de5",
        "tenant": {
          "id": "4fd3ce2f-2897-405d-9418-f31d49040de5"
        }
      },
      "tags": [
        {
          "key": "Use",
          "value": "Production"
        }
      ],
      "createdAt": "2020-05-03T11:32:57.041Z",
      "updatedAt": "2020-05-06T10:01:21.025Z"
    }
  ],
  "totalResults": 1,
  "firstLink": "https://cernerdemo.api.us-1.healtheintent.com/example/v1/examples?offset=0&limit=20",
  "lastLink": "https://cernerdemo.api.us-1.healtheintent.com/example/v1/examples?offset=0&limit=20"
}

GET /data-partitions

Retrieves a list of all data partitions that the tenant has authorization to consume. This includes all data partitions owned by the tenant and those owned by other tenants that are shared with the tenant.

Parameters

Parameter In Type Required Default Description Accepted Values
name query string false N/A Filters the returned data partitions to only those that match this name. Case insensitive and partial string matching are used, which means that any data partition with a name that contains this name is returned regardless of case. For example, a parameter value of cross matches both Blue Cross Blue Shield and Rivercross Health EHR. -
id query array[string] false N/A Filters the returned data partitions to those that match any of the specified IDs. A maximum of 20 IDs can be specified in a single request. -
offset query integer(int32) false 0 The number of results to skip from the beginning of the list of results (typically for the purpose of paging). The minimum offset is 0. There is no maximum offset. -
limit query integer(int32) false 20 The maximum number of results to display per page. The minimum limit is 1. The maximum limit is 100. -

Response Statuses

Status Meaning Description Schema
200 OK OK DataPartitions
400 Bad Request Bad Request BadRequestError
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError

Retrieve a Single Authorized Data Partition

Example Request:


require 'httparty' # Using HTTParty 0.16.2
require 'json'

headers = {
  'Authorization' => '<auth_header>',
  'Accept' => 'application/json'
} 

result = HTTParty.get('https://cernerdemo.api.us-1.healtheintent.com/data-ingestion/v1/data-partitions/877307a0-b5f5-4a01-9d4b-9fead6bcf788', headers: headers)

print JSON.pretty_generate(result)


# You can also use wget
curl -X GET https://cernerdemo.api.us-1.healtheintent.com/data-ingestion/v1/data-partitions/877307a0-b5f5-4a01-9d4b-9fead6bcf788 \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json'

Example response

{
  "id": "c5d5f79c-72b3-43c6-91ec-b8692700311c",
  "name": "Cerner Demo",
  "description": "Cerner - Demo EMR",
  "dataSource": {
    "id": "4fd3ce2f-2897-405d-9418-f31d49040de5",
    "tenant": {
      "id": "4fd3ce2f-2897-405d-9418-f31d49040de5"
    }
  },
  "tags": [
    {
      "key": "Use",
      "value": "Production"
    }
  ],
  "createdAt": "2020-05-03T11:32:57.041Z",
  "updatedAt": "2020-05-06T10:01:21.025Z"
}

GET /data-partitions/{dataPartitionId}

Retrieves a data partition by ID that the tenant has authorization to consume. This returns a data partition only if it is owned by the tenant or owned by other tenants who have shared the partition with the tenant.

Parameters

Parameter In Type Required Default Description Accepted Values
dataPartitionId path string true N/A The ID of the data partition. -

Response Statuses

Status Meaning Description Schema
200 OK OK DataPartition
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError
404 Not Found Not Found NotFoundError

Data Partition Authorizations

Data partition authorizations allow tenants to grant read-only access to data partitions to other tenants. Tenants who are authorized to access another tenant’s data partition can retrieve that data partition and a list of data partitions that includes the other tenant’s partition. For example, if two tenants have a data sharing agreement or if a tenant outsources work to a third party, the tenant can grant access to a data partition instead of the whole tenant.

Create a Data Partition Authorization

Example Request:




require 'httparty' # Using HTTParty 0.16.2
require 'json'

headers = {
  'Authorization' => '<auth_header>',
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
} 

result = HTTParty.post('https://cernerdemo.api.us-1.healtheintent.com/data-ingestion/v1/data-sources/c5d5f79c-72b3-43c6-91ec-b8692700311c/data-partitions/877307a0-b5f5-4a01-9d4b-9fead6bcf788/authorizations', headers: headers, body: {"tenant":{"mnemonic":"cernerdemo-validation"}}.to_json )

print JSON.pretty_generate(result)




# You can also use wget
curl -X POST https://cernerdemo.api.us-1.healtheintent.com/data-ingestion/v1/data-sources/c5d5f79c-72b3-43c6-91ec-b8692700311c/data-partitions/877307a0-b5f5-4a01-9d4b-9fead6bcf788/authorizations \
-H 'Authorization: {auth_header}' \
-H 'Content-Type: application/json' \ \
-H 'Accept: application/json' \
-d {"tenant":{"mnemonic":"cernerdemo-validation"}}

Example response

{
  "id": "34bedeec-28ee-4813-87fd-9971d552f52c",
  "tenant": {
    "mnemonic": "cernerdemo-validation"
  }
}

POST /data-sources/{dataSourceId}/data-partitions/{dataPartitionId}/authorizations

Authorizes a tenant to have read-only access for a data partition.

Parameters

Parameter In Type Required Default Description Accepted Values
dataSourceId path string true N/A The ID of the data source. -
dataPartitionId path string true N/A The ID of the data partition. -
body body postDataSourcesDatasourceidDataPartitionsDatapartitionidAuthorizations true N/A No description -

Response Statuses

Status Meaning Description Schema
201 Created Created DataPartitionAuthorization
400 Bad Request Bad Request BadRequestError
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError
404 Not Found Not Found NotFoundError
409 Conflict Conflict ConflictError

Retrieve a List of Data Partition Authorizations

Example Request:


require 'httparty' # Using HTTParty 0.16.2
require 'json'

headers = {
  'Authorization' => '<auth_header>',
  'Accept' => 'application/json'
} 

result = HTTParty.get('https://cernerdemo.api.us-1.healtheintent.com/data-ingestion/v1/data-sources/c5d5f79c-72b3-43c6-91ec-b8692700311c/data-partitions/877307a0-b5f5-4a01-9d4b-9fead6bcf788/authorizations', headers: headers)

print JSON.pretty_generate(result)


# You can also use wget
curl -X GET https://cernerdemo.api.us-1.healtheintent.com/data-ingestion/v1/data-sources/c5d5f79c-72b3-43c6-91ec-b8692700311c/data-partitions/877307a0-b5f5-4a01-9d4b-9fead6bcf788/authorizations \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json'

Example response

{
  "items": [
    {
      "id": "34bedeec-28ee-4813-87fd-9971d552f52c",
      "tenant": {
        "mnemonic": "cernerdemo-validation"
      }
    }
  ],
  "totalResults": 1,
  "firstLink": "https://cernerdemo.api.us-1.healtheintent.com/example/v1/examples?offset=0&limit=20",
  "lastLink": "https://cernerdemo.api.us-1.healtheintent.com/example/v1/examples?offset=0&limit=20"
}

GET /data-sources/{dataSourceId}/data-partitions/{dataPartitionId}/authorizations

Retrieves the list of authorizations for a data partition.

Parameters

Parameter In Type Required Default Description Accepted Values
dataSourceId path string true N/A The ID of the data source. -
dataPartitionId path string true N/A The ID of the data partition. -
offset query integer(int32) false 0 The number of results to skip from the beginning of the list of results (typically for the purpose of paging). The minimum offset is 0. There is no maximum offset. -
limit query integer(int32) false 20 The maximum number of results to display per page. The minimum limit is 1. The maximum limit is 100. -

Response Statuses

Status Meaning Description Schema
200 OK OK DataPartitionAuthorizations
400 Bad Request Bad Request BadRequestError
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError
404 Not Found Not Found NotFoundError

Schema Definitions

DataSources

Name Type Required Description Accepted Values
items [DataSource] true An array containing the current page of results. -
totalResults integer(int32) false The total number of results for the specified parameters. -
firstLink string true The first page of results. -
lastLink string false The last page of results. -
prevLink string false The previous page of results. -
nextLink string false The next page of results. -

DataSource

Name Type Required Description Accepted Values
id string true The unique ID of the data source -
name string true The name of the data source. -
description string false The description of the data source. -
tags [Tag] false Tags can be used to group related data sources. -
createdAt string true The date and time when the data source was created, in ISO YYYY-MM-DDThh:mm:ss.SSSZ format. -
updatedAt string true The date and time when the data source was updated, in ISO YYYY-MM-DDThh:mm:ss.SSSZ format. -

Tag

Name Type Required Description Accepted Values
key string true The intended use of the tag. The tag key is unique in a given resource. -
value string false The specific instance of the use. The tag value is optional. -

BadRequestError

Name Type Required Description Accepted Values
code integer(int32) true The HTTP response status code that represents the error. -
message string true A human-readable description of the error. -
errorDetails [BadRequestErrorDetail] true A list of additional error details. -

ErrorDetail

Name Type Required Description Accepted Values
domain string false A subsystem or context where an error occurred. -
reason string false A codified value that represents the specific error that caused the current error status. -
message string false A human-readable description of an error. -
locationType string false The location or type of the field that caused an error. query, header, path, formData, body
location string false The name of the field that caused an error. -

BadRequestErrorDetail

Name Type Required Description Accepted Values
reason string false A codified value that represents the specific error that caused the current error status. -
message string false A human-readable description of an error. -
locationType string false The location or type of the field that caused an error. query, header, path, formData, body
location string false The name of the field that caused an error. -

UnauthorizedError

Name Type Required Description Accepted Values
code integer(int32) true The HTTP response status code that represents the error. -
message string true A human-readable description of the error. -
errorDetails [UnauthorizedErrorErrorDetail] true A list of additional error details. -

UnauthorizedErrorErrorDetail

Name Type Required Description Accepted Values
reason string false A codified value that represents the specific error that caused the current error status. -
message string false A human-readable description of an error. -
locationType string false The location or type of the field that caused an error. query, header, path, formData, body
location string false The name of the field that caused an error. -

ForbiddenError

Name Type Required Description Accepted Values
code integer(int32) true The HTTP response status code that represents the error. -
message string true A human-readable description of the error. -
errorDetails [ForbiddenErrorDetail] true A list of additional error details. -

ForbiddenErrorDetail

Name Type Required Description Accepted Values
reason string false A codified value that represents the specific error that caused the current error status. -
message string false A human-readable description of an error. -
locationType string false The location or type of the field that caused an error. query, header, path, formData, body
location string false The name of the field that caused an error. -

NotFoundError

Name Type Required Description Accepted Values
code integer(int32) true The HTTP response status code that represents the error. -
message string true A human-readable description of the error. -
errorDetails [NotFoundErrorDetail] true A list of additional error details. -

NotFoundErrorDetail

Name Type Required Description Accepted Values
reason string false A codified value that represents the specific error that caused the current error status. -
message string false A human-readable description of an error. -
locationType string false The location or type of the field that caused an error. query, header, path, formData, body
location string false The name of the field that caused an error. -

DataSourceDataPartitions

Name Type Required Description Accepted Values
items [DataSourceDataPartition] true An array containing the current page of results. -
totalResults integer(int32) false The total number of results for the specified parameters. -
firstLink string true The first page of results. -
lastLink string false The last page of results. -
prevLink string false The previous page of results. -
nextLink string false The next page of results. -

DataSourceDataPartition

Name Type Required Description Accepted Values
id string true The unique ID of the data partition -
name string true The name of the data partition. -
description string false The description of the data partition. -
tags [Tag] false Tags can be used to group related data sources. -
createdAt string true The date and time when the data partition was created, in ISO YYYY-MM-DDThh:mm:ss.SSSZ format. -
updatedAt string true The date and time when the data partition was updated, in ISO YYYY-MM-DDThh:mm:ss.SSSZ format. -

postDataSourcesDatasourceidDataPartitionsDatapartitionidAuthorizations

Name Type Required Description Accepted Values
tenant object true The reference to the tenant who is authorized to access the data partition. -
» mnemonic string true The mnemonic of the tenant. -

DataPartitionAuthorization

Name Type Required Description Accepted Values
id string true The unique ID of the data partition authorization. -
tenant DataPartitionAuthorizedTenantReference true The reference to the tenant who is authorized to access the data partition. -

DataPartitionAuthorizedTenantReference

Name Type Required Description Accepted Values
mnemonic string true The mnemonic of the tenant. -

ConflictError

Name Type Required Description Accepted Values
code integer(int32) true The HTTP response status code that represents the error. -
message string true A human-readable description of the error. -
errorDetails [ConflictErrorDetail] true A list of additional error details. -

ConflictErrorDetail

Name Type Required Description Accepted Values
reason string false A codified value that represents the specific error that caused the current error status. -
message string false A human-readable description of an error. -
locationType string false The location or type of the field that caused an error. query, header, path, formData, body
location string false The name of the field that caused an error. -

DataPartitionAuthorizations

Name Type Required Description Accepted Values
items [DataPartitionAuthorization] true An array containing the current page of results. -
totalResults integer(int32) false The total number of results for the specified parameters. -
firstLink string true The first page of results. -
lastLink string false The last page of results. -
prevLink string false The previous page of results. -
nextLink string false The next page of results. -

DataPartitions

Name Type Required Description Accepted Values
items [DataPartition] true An array containing the current page of results. -
totalResults integer(int32) false The total number of results for the specified parameters. -
firstLink string true The first page of results. -
lastLink string false The last page of results. -
prevLink string false The previous page of results. -
nextLink string false The next page of results. -

DataPartition

Name Type Required Description Accepted Values
id string true The unique ID of the data partition -
name string true The name of the data partition. -
description string false The description of the data partition. -
dataSource DataSourceReference true The data source reference to which the data partition is associated. -
tags [Tag] false Tags can be used to group related data sources. -
createdAt string true The date and time when the data partition was created, in ISO YYYY-MM-DDThh:mm:ss.SSSZ format. -
updatedAt string true The date and time when the data partition was updated, in ISO YYYY-MM-DDThh:mm:ss.SSSZ format. -

DataSourceReference

Name Type Required Description Accepted Values
id string true The unique ID of the data source. -
tenant TenantReference true The reference to the tenant who owns the data source. -

TenantReference

Name Type Required Description Accepted Values
id string true The unique ID of the tenant. -