NAV
Ruby Shell

Prime Data Ingestion API v1

The Prime Data Ingestion (PDI) service offers APIs designed specifically for the ingestion and processing of a stream of data records that represent clinical and financial resources. Given that the PDI service’s record type schemas closely align with the HealtheIntent core resource data models, little to no structural transformation is required during processing of the contributed data. Data contributors must be able to produce records that conform to the JSON schemas supported by the PDI service.

The PDI service’s processing consumes contributed records as inputs and produces partition records as outputs. Each partition record contains a core resource data model (for example, Condition, Immunization, Observation). The Longitudinal Record service and other HealtheIntent products and services then consume these partition records.

Contribute Data

Complete the following steps to create and configure a PDI data source to contribute data records:
  1. Create Data Source: First create a data source. A data source is used to organize the contributed data records in the PDI service and generally represents the source from which records originate.
  2. Create Record Stream: In addition to a data source, create record streams in the data source. A record stream is used to further organize the contributed data records in the data source, as well as define what type of records are allowed to be contributed into the stream. A data source may have multiple record streams.
  3. Identify Record Type Schema: Identify a specific record type schema, which the contributed resource records must conform to. The available JSON schemas for each record type (the resources) can be retrieved from the PDI service. When contributing a data record, the specified record type schema must align with the record type defined on the specified record stream.
  4. Contribute Records: A data source, record stream, and record type schema must be specified to upload a data source. Note that data records can be contributed without a processing stream being configured and started in the PDI service.

Process Data

Complete the following steps to create and configure a PDI data partition and processing stream to process contributed data records:
  1. Create Data Partition: First create a target data partition. A data partition is used to organize the output data records, or partition records, produced by the PDI service’s processing. A data source may have multiple child data partitions, supporting a use case where live and validation environments are wanted. Note that consuming services and products (for example, the Longitudinal Record service) specify a data partition to identify the partition records to extract and consume.
  2. Create Data Set: Create a data set in the data partition. A data set is used to organize the partition records produced by the PDI service’s processing. Additionally, most processing configuration is defined at the data set level, including the following examples:
    • The record stream that contains the input contributed records to be processed
    • How processing is to build related resource references
    • Whether to perform Clinical Document Architecture (CDA) resource extractions
  3. Configure Data Partition Processing: Currently, you cannot perform this step using the API. A Cerner associate completes this step.

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

Processing Streams

Operations about Processing Streams

Create a Processing Stream

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/prime-data-ingestion/v1/data-sources/107f7f77-4870-5f63-b162-6b563ec20e9d/data-partitions/6c7f71a6-2134-570a-a632-dd01bf78bc65/processing-streams', headers: headers, body: {"description":"The processing steam for patient encounters.","configuration":{"proprietaryToStandardCodeMappingConfiguration":{"consumerId":"51c0ac09-0dfe-4e6d-ac5f-0f372226d668","version":"12345"},"dataSetConfigurations":[{"dataSetId":"b2569893-4601-4487-8239-067168e0d286","recordStreamId":"89343e-ec28-4694-8b93-31ba18b2a90f","resourceReferenceConfigurations":[{"partitionRecordTypeId":"PATIENT","dataPartitionId":"adf83a92-f21c-4103-9bc7-4f7e9deef720","dataSetId":"4021305e-54e7-4e31-a7fb-1bfd368d5bbb"},{"partitionRecordTypeId":"PATIENT_ENCOUNTER","dataPartitionId":"adf83a92-f21c-4103-9bc7-4f7e9deef720","dataSetId":"de3ca31f-d2ac-4143-8f12-dfe87a712683"}]},{"dataSetId":"aa5c0209-3aa3-4d1e-89b5-08455892a2fa","recordStreamId":"33c0b1f7-8c06-435d-9535-d85576371d1e","resourceReferenceConfigurations":[{"partitionRecordTypeId":"PATIENT","dataPartitionId":"adf83a92-f21c-4103-9bc7-4f7e9deef720","dataSetId":"4021305e-54e7-4e31-a7fb-1bfd368d5bbb"}],"cdaResourceExtraction":"true"}]}}.to_json )

print JSON.pretty_generate(result)




# You can also use wget
curl -X POST https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/107f7f77-4870-5f63-b162-6b563ec20e9d/data-partitions/6c7f71a6-2134-570a-a632-dd01bf78bc65/processing-streams \
-H 'Authorization: {auth_header}' \
-H 'Content-Type: application/json' \ \
-H 'Accept: application/json' \
-d {"description":"The processing steam for patient encounters.","configuration":{"proprietaryToStandardCodeMappingConfiguration":{"consumerId":"51c0ac09-0dfe-4e6d-ac5f-0f372226d668","version":"12345"},"dataSetConfigurations":[{"dataSetId":"b2569893-4601-4487-8239-067168e0d286","recordStreamId":"89343e-ec28-4694-8b93-31ba18b2a90f","resourceReferenceConfigurations":[{"partitionRecordTypeId":"PATIENT","dataPartitionId":"adf83a92-f21c-4103-9bc7-4f7e9deef720","dataSetId":"4021305e-54e7-4e31-a7fb-1bfd368d5bbb"},{"partitionRecordTypeId":"PATIENT_ENCOUNTER","dataPartitionId":"adf83a92-f21c-4103-9bc7-4f7e9deef720","dataSetId":"de3ca31f-d2ac-4143-8f12-dfe87a712683"}]},{"dataSetId":"aa5c0209-3aa3-4d1e-89b5-08455892a2fa","recordStreamId":"33c0b1f7-8c06-435d-9535-d85576371d1e","resourceReferenceConfigurations":[{"partitionRecordTypeId":"PATIENT","dataPartitionId":"adf83a92-f21c-4103-9bc7-4f7e9deef720","dataSetId":"4021305e-54e7-4e31-a7fb-1bfd368d5bbb"}],"cdaResourceExtraction":"true"}]}}

Example response

{
  "id": "2fb52376-cadd-3a98-8181-61cb77fdc3a3",
  "description": "The processing steam for patient encounters.",
  "status": "PURGED",
  "createdAt": "2020-05-03T11:32:57.041Z",
  "startedAt": "2020-05-04T10:12:34.025Z",
  "stoppedAt": "2020-05-05T09:23:57.041Z",
  "purgedAt": "2020-05-06T11:31:56.042Z",
  "configuration": {
    "updatedAt": "2020-05-03T11:32:57.041Z",
    "proprietaryToStandardCodeMappingConfiguration": {
      "consumerId": "04cd4afa-4fad-581a-a604-6d2640b9cfd5",
      "version": "04cd4afa-4fad-581a-a604-6d2640b9cfd5"
    },
    "dataSetConfigurations": [
      {
        "resourceReferences": [
          {}
        ]
      }
    ]
  }
}

POST /data-sources/{dataSourceId}/data-partitions/{dataPartitionId}/processing-streams

This endpoint creates a processing stream for a data partition.

Parameters

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

Response Statuses

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

Retrieve a List of Processing Streams

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/prime-data-ingestion/v1/data-sources/{dataSourceId}/data-partitions/{dataPartitionId}/processing-streams', headers: headers)

print JSON.pretty_generate(result)


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

Example response

{
  "items": [
    {
      "id": "2fb52376-cadd-3a98-8181-61cb77fdc3a3",
      "description": "The processing steam for patient encounters.",
      "status": "PURGED",
      "createdAt": "2020-05-03T11:32:57.041Z",
      "startedAt": "2020-05-04T10:12:34.025Z",
      "stoppedAt": "2020-05-05T09:23:57.041Z",
      "purgedAt": "2020-05-06T11:31:56.042Z",
      "configuration": {
        "updatedAt": "2020-05-03T11:32:57.041Z",
        "proprietaryToStandardCodeMappingConfiguration": {
          "consumerId": "04cd4afa-4fad-581a-a604-6d2640b9cfd5",
          "version": "04cd4afa-4fad-581a-a604-6d2640b9cfd5"
        },
        "dataSetConfigurations": [
          {
            "resourceReferences": [
              {}
            ]
          }
        ]
      }
    }
  ],
  "totalResults": 1,
  "firstLink": "https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/data-partitions/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/processing-streams?offset=0&limit=20",
  "lastLink": "https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/data-partitions/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/processing-streams?offset=0&limit=20"
}

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

This endpoint retrieves a list of all of the available processing streams for a data partition.

Parameters

Parameter In Type Required Default Description Accepted Values
dataSourceId path string true N/A The unique ID of the data source. -
dataPartitionId path string true N/A The unique ID of the data partition. -
status query array[string] false N/A The current status of the processing stream. NOT_STARTED, STARTED, STOPPED, RUNNING, PURGED
orderBy query array[string] false N/A The parameter by which processing streams are ordered. createdAt, -createdAt, startedAt, -startedAt, stoppedAt, -stoppedAt
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 The list of processing streams. ProcessingStreams
400 Bad Request Bad Request BadRequestError
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError

Retrieve a Processing Stream

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/prime-data-ingestion/v1/data-sources/107f7f77-4870-5f63-b162-6b563ec20e9d/data-partitions/6c7f71a6-2134-570a-a632-dd01bf78bc65/processing-streams/2fb52376-cadd-3a98-8181-61cb77fdc3a3', headers: headers)

print JSON.pretty_generate(result)


# You can also use wget
curl -X GET https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/107f7f77-4870-5f63-b162-6b563ec20e9d/data-partitions/6c7f71a6-2134-570a-a632-dd01bf78bc65/processing-streams/2fb52376-cadd-3a98-8181-61cb77fdc3a3 \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json'

Example response

{
  "id": "2fb52376-cadd-3a98-8181-61cb77fdc3a3",
  "description": "The processing steam for patient encounters.",
  "status": "PURGED",
  "createdAt": "2020-05-03T11:32:57.041Z",
  "startedAt": "2020-05-04T10:12:34.025Z",
  "stoppedAt": "2020-05-05T09:23:57.041Z",
  "purgedAt": "2020-05-06T11:31:56.042Z",
  "configuration": {
    "updatedAt": "2020-05-03T11:32:57.041Z",
    "proprietaryToStandardCodeMappingConfiguration": {
      "consumerId": "04cd4afa-4fad-581a-a604-6d2640b9cfd5",
      "version": "04cd4afa-4fad-581a-a604-6d2640b9cfd5"
    },
    "dataSetConfigurations": [
      {
        "resourceReferences": [
          {}
        ]
      }
    ]
  }
}

GET /data-sources/{dataSourceId}/data-partitions/{dataPartitionId}/processing-streams/{processingStreamId}

This endpoint retrieves a processing stream for a data partition.

Parameters

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

Response Statuses

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

Update a Processing Stream

Example Request:




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

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

result = HTTParty.put('https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/{dataSourceId}/data-partitions/{dataPartitionId}/processing-streams/a426149a-c19c-413a-8d9f-d7988aec4a91', headers: headers, body: {"description":"The processing steam for patient encounters.","configuration":{"proprietaryToStandardCodeMappingConfiguration":{"consumerId":"51c0ac09-0dfe-4e6d-ac5f-0f372226d668","version":"12345"},"dataSetConfigurations":[{"dataSetId":"b2569893-4601-4487-8239-067168e0d286","recordStreamId":"89343e-ec28-4694-8b93-31ba18b2a90f","resourceReferenceConfigurations":[{"partitionRecordTypeId":"PATIENT","dataPartitionId":"adf83a92-f21c-4103-9bc7-4f7e9deef720","dataSetId":"4021305e-54e7-4e31-a7fb-1bfd368d5bbb"},{"partitionRecordTypeId":"PATIENT_ENCOUNTER","dataPartitionId":"adf83a92-f21c-4103-9bc7-4f7e9deef720","dataSetId":"de3ca31f-d2ac-4143-8f12-dfe87a712683"}]},{"dataSetId":"aa5c0209-3aa3-4d1e-89b5-08455892a2fa","recordStreamId":"33c0b1f7-8c06-435d-9535-d85576371d1e","resourceReferenceConfigurations":[{"partitionRecordTypeId":"PATIENT","dataPartitionId":"adf83a92-f21c-4103-9bc7-4f7e9deef720","dataSetId":"4021305e-54e7-4e31-a7fb-1bfd368d5bbb"}],"cdaResourceExtraction":"true"}]}}.to_json )

print JSON.pretty_generate(result)




# You can also use wget
curl -X PUT https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/{dataSourceId}/data-partitions/{dataPartitionId}/processing-streams/a426149a-c19c-413a-8d9f-d7988aec4a91 \
-H 'Authorization: {auth_header}' \
-H 'Content-Type: application/json' \ \
-H 'Accept: application/json' \
-d {"description":"The processing steam for patient encounters.","configuration":{"proprietaryToStandardCodeMappingConfiguration":{"consumerId":"51c0ac09-0dfe-4e6d-ac5f-0f372226d668","version":"12345"},"dataSetConfigurations":[{"dataSetId":"b2569893-4601-4487-8239-067168e0d286","recordStreamId":"89343e-ec28-4694-8b93-31ba18b2a90f","resourceReferenceConfigurations":[{"partitionRecordTypeId":"PATIENT","dataPartitionId":"adf83a92-f21c-4103-9bc7-4f7e9deef720","dataSetId":"4021305e-54e7-4e31-a7fb-1bfd368d5bbb"},{"partitionRecordTypeId":"PATIENT_ENCOUNTER","dataPartitionId":"adf83a92-f21c-4103-9bc7-4f7e9deef720","dataSetId":"de3ca31f-d2ac-4143-8f12-dfe87a712683"}]},{"dataSetId":"aa5c0209-3aa3-4d1e-89b5-08455892a2fa","recordStreamId":"33c0b1f7-8c06-435d-9535-d85576371d1e","resourceReferenceConfigurations":[{"partitionRecordTypeId":"PATIENT","dataPartitionId":"adf83a92-f21c-4103-9bc7-4f7e9deef720","dataSetId":"4021305e-54e7-4e31-a7fb-1bfd368d5bbb"}],"cdaResourceExtraction":"true"}]}}

PUT /data-sources/{dataSourceId}/data-partitions/{dataPartitionId}/processing-streams/{processingStreamId}

This endpoint updates a processing stream for a data partition.

Parameters

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

Response Statuses

Status Meaning Description Schema
204 No Content No Content None
400 Bad Request Bad Request BadRequestError
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError
404 Not Found Not Found NotFoundError

Record Types

A record type represents a resource (for example, Condition, Immunization, or Encounter) supported by the PDI service. Each data record contributed to the PDI service is tagged with the record type it represents. The PDI service’s record types closely align with HealtheIntent core resource data models.

Retrieve a List of Record Types

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/prime-data-ingestion/v1/record-types', headers: headers)

print JSON.pretty_generate(result)


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

Example response

{
  "items": [
    {
      "id": "PATIENT_DOCUMENT_REFERENCE",
      "name": "Patient Document Reference"
    }
  ],
  "totalResults": 1,
  "firstLink": "https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/record-types?offset=0&limit=20",
  "lastLink": "https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/record-types?offset=0&limit=20"
}

GET /record-types

Retrieves the list of supported record types.

Parameters

Parameter In Type Required Default Description Accepted Values
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 The list of record types. RecordTypes
400 Bad Request Bad Request BadRequestError
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError

Retrieve a Single Record Type

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/prime-data-ingestion/v1/record-types/PATIENT_DOCUMENT_REFERENCE', headers: headers)

print JSON.pretty_generate(result)


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

Example response

{
  "id": "PATIENT_DOCUMENT_REFERENCE",
  "name": "Patient Document Reference"
}

GET /record-types/{recordTypeId}

Retrieves a specific record type by ID.

Parameters

Parameter In Type Required Default Description Accepted Values
recordTypeId path string true N/A The unique ID of the record type. -

Response Statuses

Status Meaning Description Schema
200 OK The record type. PrimeDataIngestionPublicApi_Entities_V1_RecordType
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError
404 Not Found Not Found NotFoundError

Record Type Schemas

Each record type has one to many schema versions supported by the PDI service. A record type schema represents the structure to which a contributed data record must conform. Currently, the PDI service supports only JSON contributed records; therefore, schemas are represented as JSON schemas. A record type schema must be specified when a data record is uploaded to the PDI service.

Retrieve a List of Record Type Schemas

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/prime-data-ingestion/v1/record-types/PATIENT_DOCUMENT_REFERENCE/schemas', headers: headers)

print JSON.pretty_generate(result)


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

Example response

{
  "items": [
    {
      "id": "1.0"
    }
  ],
  "totalResults": 1,
  "firstLink": "https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/record-types-schemas/PATIENT_DOCUMENT_REFERENCE/schemas?offset=0&limit=20",
  "lastLink": "https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/record-types-schemas/PATIENT_DOCUMENT_REFERENCE/schemas?offset=0&limit=20"
}

GET /record-types/{recordTypeId}/schemas

Retrieves the collection of schemas for a specific record type.

Parameters

Parameter In Type Required Default Description Accepted Values
recordTypeId path string true N/A The unique ID of the record type. -
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 The collection of schemas. RecordTypeSchemaItems
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError
404 Not Found Not Found NotFoundError

Retrieve a Single Record Type Schema

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/prime-data-ingestion/v1/record-types/PATIENT_DOCUMENT_REFERENCE/schemas/1.0', headers: headers)

print JSON.pretty_generate(result)


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

Example response

{
  "id": "1.0",
  "schema": "<Base64-Encoded String>"
}

GET /record-types/{recordTypeId}/schemas/{schemaId}

Retrieves a specific record type schema instance.

Parameters

Parameter In Type Required Default Description Accepted Values
schemaId path string true N/A The ID of a specific schema of a record type. -
recordTypeId path string true N/A The unique ID of the record type. -

Response Statuses

Status Meaning Description Schema
200 OK The schema instance. PrimeDataIngestionPublicApi_Entities_V1_RecordTypeSchema
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError
404 Not Found Not Found NotFoundError

Data Sources

A data source represents a bucket in the PDI service into which contributed data records are loaded. Each data source is owned by the tenant that creates it. A data source must be specified when a data record is uploaded to the PDI service. This means that a data source must first be created in the PDI service before any data records can be uploaded. Typically, a data source represents a source system that contributes records, for example, an electronic health record (EHR), payer, or billing system.

Create a Data Source

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/prime-data-ingestion/v1/data-sources', headers: headers, body: {"name":"data_source_1","description":"Data source description","multiContributor":"FALSE","tags":[{"key":"tags","value":"EMR"}]}.to_json )

print JSON.pretty_generate(result)




# You can also use wget
curl -X POST https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources \
-H 'Authorization: {auth_header}' \
-H 'Content-Type: application/json' \ \
-H 'Accept: application/json' \
-d {"name":"data_source_1","description":"Data source description","multiContributor":"FALSE","tags":[{"key":"tags","value":"EMR"}]}

POST /data-sources

Creates a prime data source that is owned by the tenant. A data source’s multiContributor settings cannot be modified after it is created.

Parameters

Parameter In Type Required Default Description Accepted Values
body body postDataSources true N/A No description -

Response Statuses

Status Meaning Description Schema
201 Created Create a Data Source PrimeDataIngestionPublicApi_Entities_V1_DataSource
400 Bad Request Bad Request BadRequestError
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError
404 Not Found Not Found NotFoundError

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/prime-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/prime-data-ingestion/v1/data-sources \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json'

Example response

{
  "items": [
    {
      "id": "f3bc39e9-3efc-4709-95f3-5c153fa8bec4",
      "name": "Cerner Demo",
      "multiContributor": "FALSE",
      "description": "Cerner - Demo EMR",
      "tags": {
        "key": "tags",
        "value": "EMR"
      },
      "createdAt": "2020-01-20T02:00:00.000Z",
      "updatedAt": "2020-01-20T02:00:00.000Z"
    }
  ],
  "totalResults": 1,
  "firstLink": "https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources?offset=0&limit=20",
  "lastLink": "https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources?offset=0&limit=20"
}

GET /data-sources

Retrieves a list of all the data sources that the tenant owns and can contribute data records using the PDI service.

Parameters

Parameter In Type Required Default Description Accepted Values
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. -
name query string false N/A The name of the data source. -

Response Statuses

Status Meaning Description Schema
200 OK The list of data sources. 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/prime-data-ingestion/v1/data-sources/0f6e6e66-376f-4e52-a051-5a452db1fd8c', headers: headers)

print JSON.pretty_generate(result)


# You can also use wget
curl -X GET https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/0f6e6e66-376f-4e52-a051-5a452db1fd8c \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json'

GET /data-sources/{dataSourceId}

Retrieves a single prime data source that the tenant owns.

Parameters

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

Response Statuses

Status Meaning Description Schema
200 OK Single Prime Data Source PrimeDataIngestionPublicApi_Entities_V1_DataSource
400 Bad Request Bad Request BadRequestError
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError
404 Not Found Not Found NotFoundError

Update a Data Source

Example Request:




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

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

result = HTTParty.patch('https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/0f6e6e66-376f-4e52-a051-5a452db1fd8c', headers: headers, body: {"tags":[{"key":"tags","value":"EMR"}]}.to_json )

print JSON.pretty_generate(result)




# You can also use wget
curl -X PATCH https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/0f6e6e66-376f-4e52-a051-5a452db1fd8c \
-H 'Authorization: {auth_header}' \
-H 'Content-Type: application/json' \ \
-H 'Accept: application/json' \
-d {"tags":[{"key":"tags","value":"EMR"}]}

PATCH /data-sources/{dataSourceId}

Updates a prime data source that the tenant owns.

Parameters

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

Response Statuses

Status Meaning Description Schema
204 No Content No Content PrimeDataIngestionPublicApi_Entities_V1_DataSource
400 Bad Request Bad Request BadRequestError
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError
404 Not Found Not Found NotFoundError

Record Streams

A record stream represents a stream of data records that are received in a data source from a data contributor. A record stream is a child resource of a data source, and therefore is owned by the same tenant that owns the data source. A record stream is used to organize contributed records in a data source. For example, a tenant may want to organize vital signs, measurements, and laboratory result data records into separate record streams. This enables better insight using contributed record volume metrics and more versatility when configuring PDI processing. A record stream must be specified when a data record is uploaded to the PDI service. This means that a record stream must first be created in the PDI service before any data records can be uploaded. When a record stream is created, a single record type must be specified that represents the type of record (for example, Condition or Observation) that is allowed in the record stream.

Add a Record Stream

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/prime-data-ingestion/v1/data-sources/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/record-streams', headers: headers, body: {"name":"Vital Measurements","recordTypeId":"0b8edc65-c9e1-4035-9040-9568442ff6b4","description":"Vital Measurements for Record Stream"}.to_json )

print JSON.pretty_generate(result)




# You can also use wget
curl -X POST https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/record-streams \
-H 'Authorization: {auth_header}' \
-H 'Content-Type: application/json' \ \
-H 'Accept: application/json' \
-d {"name":"Vital Measurements","recordTypeId":"0b8edc65-c9e1-4035-9040-9568442ff6b4","description":"Vital Measurements for Record Stream"}

Example response

{
  "id": "0b8edc65-c9e1-4035-9040-9568442ff6b4",
  "name": "Vital Measurements",
  "recordType": {
    "id": "0b8edc65-c9e1-4035-9040-9568442ff6b4"
  },
  "description": "Vital Measurements for Record Stream",
  "createdAt": "2020-02-14T07:14:27.000Z",
  "updatedAt": "2020-02-14T07:15:46.000Z"
}

POST /data-sources/{dataSourceId}/record-streams

Adds a record stream to a data source.

Parameters

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

Response Statuses

Status Meaning Description Schema
201 Created Created PrimeDataIngestionPublicApi_Entities_V1_RecordStream
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 Record Streams

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/prime-data-ingestion/v1/data-sources/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/record-streams', headers: headers)

print JSON.pretty_generate(result)


# You can also use wget
curl -X GET https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/record-streams \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json'

Example response

{
  "items": [
    {
      "id": "0b8edc65-c9e1-4035-9040-9568442ff6b4",
      "name": "Vital Measurements",
      "recordType": {
        "id": "0b8edc65-c9e1-4035-9040-9568442ff6b4"
      },
      "description": "Vital Measurements for Record Stream",
      "createdAt": "2020-02-14T07:14:27.000Z",
      "updatedAt": "2020-02-14T07:15:46.000Z"
    }
  ],
  "totalResults": 1,
  "firstLink": "https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/record-streams?offset=0&limit=20",
  "lastLink": "https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/record-streams?offset=0&limit=20"
}

GET /data-sources/{dataSourceId}/record-streams

Retrieves a list of the defined record streams for a specific data source.

Parameters

Parameter In Type Required Default Description Accepted Values
dataSourceId path string true N/A The ID of the data source. -
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. -
recordTypeId query string false N/A The type of record that the record stream contains. A record stream can contain only a single record type. -
name query string false N/A The displayable name of the record stream. -

Response Statuses

Status Meaning Description Schema
200 OK The collection of record streams. RecordStreams
400 Bad Request Bad Request BadRequestError
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError
404 Not Found Not Found NotFoundError

Update a Record Stream

Example Request:




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

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

result = HTTParty.patch('https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/record-streams/0b8edc65-c9e1-4035-9040-9568442ff6b4', headers: headers)

print JSON.pretty_generate(result)




# You can also use wget
curl -X PATCH https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/record-streams/0b8edc65-c9e1-4035-9040-9568442ff6b4 \
-H 'Authorization: {auth_header}' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'

PATCH /data-sources/{dataSourceId}/record-streams/{id}

Updates the name, description, or name and description of a record stream.

Parameters

Parameter In Type Required Default Description Accepted Values
dataSourceId path string true N/A The ID of the data source. -
id path string true N/A The ID of the record stream, provided by the data contributor, that uniquely identifies the record stream in a data source. The record stream ID can contain only alphanumeric characters, underscores, and dashes. -
body body patchDataSourcesDatasourceidRecordStreams true N/A No description -

Response Statuses

Status Meaning Description Schema
204 No Content No Content. None
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 Single Record Stream

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/prime-data-ingestion/v1/data-sources/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/record-streams/0b8edc65-c9e1-4035-9040-9568442ff6b4', headers: headers)

print JSON.pretty_generate(result)


# You can also use wget
curl -X GET https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/record-streams/0b8edc65-c9e1-4035-9040-9568442ff6b4 \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json'

Example response

{
  "id": "0b8edc65-c9e1-4035-9040-9568442ff6b4",
  "name": "Vital Measurements",
  "recordType": {
    "id": "0b8edc65-c9e1-4035-9040-9568442ff6b4"
  },
  "description": "Vital Measurements for Record Stream",
  "createdAt": "2020-02-14T07:14:27.000Z",
  "updatedAt": "2020-02-14T07:15:46.000Z"
}

GET /data-sources/{dataSourceId}/record-streams/{id}

Retrieves a single record stream.

Parameters

Parameter In Type Required Default Description Accepted Values
dataSourceId path string true N/A The ID of the data source. -
id path string true N/A The ID of the record stream, provided by the data contributor, that uniquely identifies the record stream in a data source. The record stream ID can contain only alphanumeric characters, underscores, and dashes. -

Response Statuses

Status Meaning Description Schema
200 OK The record stream for the specified dataSourceId and id values is returned. PrimeDataIngestionPublicApi_Entities_V1_RecordStream
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError
404 Not Found Not Found NotFoundError

Data Partitions

A data partition represents a bucket in the PDI service into which the PDI service loads the partition records produced as outputs of processing. A data partition is a child resource of a data source, and therefore is owned by the same tenant that owns the data source. While a data partition is owned by a single tenant, it can be shared with other tenants using an authorization process. While most use cases require only a single data partition, the PDI service allows a data source to have multiple child data partitions. For example, a tenant may need to separate the produced partition records into different data partitions so that only a portion of the processed data is shared with another tenant and not all of the data. For another example, a tenant may want to have both active and validation data partitions so that changes (such as a different record stream or different processing configuration) can be validated in a separate data partition. Because of the latter use case, a data partition can be thought of as a means to represent different processing environments. A data partition is not required to upload a data record to the PDI service; however, a data partition is required to process contributed data. PDI processing is configured per data partition, which means that each data partition has its own processing configuration.

Create a Single Data Partition

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/prime-data-ingestion/v1/data-sources/0f6e6e66-376f-4e52-a051-5a452db1fd8c/data-partitions', headers: headers, body: {"name":"DEMO:EMR","description":"Cerner - Demo EMR"}.to_json )

print JSON.pretty_generate(result)




# You can also use wget
curl -X POST https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/0f6e6e66-376f-4e52-a051-5a452db1fd8c/data-partitions \
-H 'Authorization: {auth_header}' \
-H 'Content-Type: application/json' \ \
-H 'Accept: application/json' \
-d {"name":"DEMO:EMR","description":"Cerner - Demo EMR"}

Example response

{
  "id": "f3bc39e9-3efc-4709-95f3-5c153fa8bec4",
  "name": "DEMO:EMR",
  "description": "Cerner - Demo EMR",
  "conceptMappingConsumerId": "f81d8106-94b5-4a20-847e-4259b3616b02",
  "createdAt": "2020-01-20T02:00:00.000Z",
  "updatedAt": "2020-01-20T02:00:00.000Z"
}

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

Adds a data partition or create a data partition to be connected to the service.

Parameters

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

Response Statuses

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

Retrieve a List of Prime 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/prime-data-ingestion/v1/data-sources/0f6e6e66-376f-4e52-a051-5a452db1fd8c/data-partitions', headers: headers)

print JSON.pretty_generate(result)


# You can also use wget
curl -X GET https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/0f6e6e66-376f-4e52-a051-5a452db1fd8c/data-partitions \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json'

Example response

{
  "items": [
    {
      "id": "f3bc39e9-3efc-4709-95f3-5c153fa8bec4",
      "name": "DEMO:EMR",
      "description": "Cerner - Demo EMR",
      "conceptMappingConsumerId": "f81d8106-94b5-4a20-847e-4259b3616b02",
      "createdAt": "2020-01-20T02:00:00.000Z",
      "updatedAt": "2020-01-20T02:00:00.000Z"
    }
  ],
  "totalResults": 1,
  "firstLink": "https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/data-partitions?offset=0&limit=20",
  "lastLink": "https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/data-partitions?offset=0&limit=20"
}

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

Retrieves a list of all the data partitions that the tenant owns and can contribute data records using the PDI service.

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 The displayable name 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 The list of data partitions. DataPartitions
400 Bad Request Bad Request BadRequestError
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError

Update a Single Data Partition

Example Request:




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

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

result = HTTParty.patch('https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/0f6e6e66-376f-4e52-a051-5a452db1fd8c/data-partitions/5b6e6095-1023-46f9-9521-ccf0ae68ab54', headers: headers)

print JSON.pretty_generate(result)




# You can also use wget
curl -X PATCH https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/0f6e6e66-376f-4e52-a051-5a452db1fd8c/data-partitions/5b6e6095-1023-46f9-9521-ccf0ae68ab54 \
-H 'Authorization: {auth_header}' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'

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

Adds a data partition or create a data partition to be connected to the service.

Parameters

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

Response Statuses

Status Meaning Description Schema
204 No Content No Content PrimeDataIngestionPublicApi_Entities_V1_DataPartition
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError
404 Not Found Not Found NotFoundError

Retrieve a Single 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/prime-data-ingestion/v1/data-sources/0f6e6e66-376f-4e52-a051-5a452db1fd8c/data-partitions/5b6e6095-1023-46f9-9521-ccf0ae68ab54', headers: headers)

print JSON.pretty_generate(result)


# You can also use wget
curl -X GET https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/0f6e6e66-376f-4e52-a051-5a452db1fd8c/data-partitions/5b6e6095-1023-46f9-9521-ccf0ae68ab54 \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json'

Example response

{
  "id": "f3bc39e9-3efc-4709-95f3-5c153fa8bec4",
  "name": "DEMO:EMR",
  "description": "Cerner - Demo EMR",
  "conceptMappingConsumerId": "f81d8106-94b5-4a20-847e-4259b3616b02",
  "createdAt": "2020-01-20T02:00:00.000Z",
  "updatedAt": "2020-01-20T02:00:00.000Z"
}

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

Retrieves a single data partition that is connected to the service.

Parameters

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

Response Statuses

Status Meaning Description Schema
200 OK A single data partition PrimeDataIngestionPublicApi_Entities_V1_DataPartition
400 Bad Request Bad Request BadRequestError
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError
404 Not Found Not Found NotFoundError

Data Sets

A data set represents a unit of processing work that the PDI service performs. A data set is a child resource of a data partition. Data sets enable organizing the PDI processing of contributed data from a data source into the target data partition. Data sets also enable slicing the partition record metrics that provide macro-level insights about the outputs of PDI processing. One or more data sets are required to configure a data partition for processing by the PDI service. When a data set is configured in the context of a data partition, a record stream must be specified to indicate which contributed records are to be processed into the data set. This means that a data set must exist for each record stream that a tenant wants to be processed into the data partition. Typically, the combination of a record stream and a data set represents a clinical or financial data concept. Examples include inpatient encounters, allergies, vital signs, laboratory results, institutional claims, or professional claims.

Create a Single PDI Data Set

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/prime-data-ingestion/v1/data-sources/107f7f77-4870-5f63-b162-6b563ec20e9d/data-partitions/6c7f71a6-2134-570a-a632-dd01bf78bc65/data-sets', headers: headers, body: {"name":"IMMUNIZATIONS","description":"A data set containing immunizations for a population."}.to_json )

print JSON.pretty_generate(result)




# You can also use wget
curl -X POST https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/107f7f77-4870-5f63-b162-6b563ec20e9d/data-partitions/6c7f71a6-2134-570a-a632-dd01bf78bc65/data-sets \
-H 'Authorization: {auth_header}' \
-H 'Content-Type: application/json' \ \
-H 'Accept: application/json' \
-d {"name":"IMMUNIZATIONS","description":"A data set containing immunizations for a population."}

Example response

{
  "id": "04cd4afa-4fad-581a-a604-6d2640b9cfd5",
  "name": "IMMUNIZATIONS",
  "description": "A data set containing immunizations for a population.",
  "createdAt": "2020-01-20T02:00:00.000Z",
  "updatedAt": "2020-01-20T02:00:00.000Z"
}

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

Creates a single PDI data set for a given data source and data partition.

Parameters

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

Response Statuses

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

Retrieve a list of Prime Data Sets

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/prime-data-ingestion/v1/data-sources/{dataSourceId}/data-partitions/{dataPartitionId}/data-sets', headers: headers)

print JSON.pretty_generate(result)


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

Example response

{
  "items": [
    {
      "id": "04cd4afa-4fad-581a-a604-6d2640b9cfd5",
      "name": "IMMUNIZATIONS",
      "description": "A data set containing immunizations for a population.",
      "createdAt": "2020-01-20T02:00:00.000Z",
      "updatedAt": "2020-01-20T02:00:00.000Z"
    }
  ],
  "totalResults": 1,
  "firstLink": "https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/data-partitions/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/data-sets?offset=0&limit=20",
  "lastLink": "https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/data-partitions/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/data-sets?offset=0&limit=20"
}

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

Retrieves a list of all the data sets that belong to a data partition in the PDI service.

Parameters

Parameter In Type Required Default Description Accepted Values
dataSourceId path string true N/A The unique ID of the data source. -
dataPartitionId path string true N/A The unique ID of the data partition. -
name query string false N/A The human-readable name of the data set. -
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 The list of data sets. DataSets
400 Bad Request Bad Request BadRequestError
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError

Update a Single Data Set

Example Request:




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

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

result = HTTParty.patch('https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/4ef0e5a3-b41e-4a72-912a-4e42d330660e/data-partitions/dbb9be4c-2883-4034-b734-73a577a06af0/data-sets/ec04be5b-c763-48fe-ae7c-b47018b8bbc9', headers: headers)

print JSON.pretty_generate(result)




# You can also use wget
curl -X PATCH https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/4ef0e5a3-b41e-4a72-912a-4e42d330660e/data-partitions/dbb9be4c-2883-4034-b734-73a577a06af0/data-sets/ec04be5b-c763-48fe-ae7c-b47018b8bbc9 \
-H 'Authorization: {auth_header}' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'

PATCH /data-sources/{dataSourceId}/data-partitions/{dataPartitionId}/data-sets/{dataSetId}

Update a single data set that is configured in the service.

Parameters

Parameter In Type Required Default Description Accepted Values
dataSourceId path string true N/A The unique ID of the data source. -
dataPartitionId path string true N/A The unique ID of the data partition. -
dataSetId path string true N/A The unique ID of the data set (not the name). -
body body patchDataSourcesDatasourceidDataPartitionsDatapartitionidDataSets true N/A No description -

Response Statuses

Status Meaning Description Schema
204 No Content No Content PrimeDataIngestionPublicApi_Entities_V1_DataSet
400 Bad Request Bad Request BadRequestError
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError
404 Not Found Not Found NotFoundError

Retrieve a Single Data Set

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/prime-data-ingestion/v1/data-sources/107f7f77-4870-5f63-b162-6b563ec20e9d/data-partitions/6c7f71a6-2134-570a-a632-dd01bf78bc65/data-sets/27fbdeb0-3108-4f74-9e18-48a5105c05ce', headers: headers)

print JSON.pretty_generate(result)


# You can also use wget
curl -X GET https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/107f7f77-4870-5f63-b162-6b563ec20e9d/data-partitions/6c7f71a6-2134-570a-a632-dd01bf78bc65/data-sets/27fbdeb0-3108-4f74-9e18-48a5105c05ce \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json'

Example response

{
  "id": "04cd4afa-4fad-581a-a604-6d2640b9cfd5",
  "name": "IMMUNIZATIONS",
  "description": "A data set containing immunizations for a population.",
  "createdAt": "2020-01-20T02:00:00.000Z",
  "updatedAt": "2020-01-20T02:00:00.000Z"
}

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

Retrieves a single data set that is configured in the service.

Parameters

Parameter In Type Required Default Description Accepted Values
dataSourceId path string true N/A The unique ID of the data source. -
dataPartitionId path string true N/A The unique ID of the data partition. -
dataSetId path string true N/A The unique ID of the data set (not the name). -

Response Statuses

Status Meaning Description Schema
200 OK A single data set PrimeDataIngestionPublicApi_Entities_V1_DataSet
400 Bad Request Bad Request BadRequestError
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError
404 Not Found Not Found NotFoundError

Contributed Records

A contributed record represents a data record that was uploaded, validated, and stored in the PDI service. Each received data record is first validated against the specified record type schema for conformance. Each validated contributed record is then stored in the specified data source and the specified record stream in that data source. Therefore, when data records are uploaded, a data source, record stream, and record type schema all must be specified. Contributed records are the inputs into PDI processing.

Upload Records

Example Request:




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

headers = {
  'Authorization' => '<auth_header>',
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'PDI-RecordStreamId' => {
  "type": "string"
},
  'PDI-RecordTypeSchemaId' => {
  "type": "string"
},
  'PDI-EnableTracking' => {
  "type": "string"
}
} 

result = HTTParty.post('https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/contributed-records', headers: headers, body: {"records":[{"value":"<Base64-Encoded String>"}]}.to_json )

print JSON.pretty_generate(result)




# You can also use wget
curl -X POST https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/contributed-records \
-H 'Authorization: {auth_header}' \
-H 'Content-Type: application/json' \ \
-H 'Accept: application/json' \ \
-H 'PDI-RecordStreamId: [object Object]' \ \
-H 'PDI-RecordTypeSchemaId: [object Object]' \ \
-H 'PDI-EnableTracking: [object Object]' \
-d {"records":[{"value":"<Base64-Encoded String>"}]}

Example response

{
  "contributedRecords": [
    {
      "trackingTicketId": "f3bc39e9-3efc-4709-95f3-5c153fa8bec4"
    }
  ],
  "contributedRecordCount": "1"
}

POST /data-sources/{dataSourceId}/contributed-records

Uploads one or more records to the specified data source and record stream. The value field of each individual record in the records array of the request must contain a Base64-encoded JSON representation of the resource and conform to the record type schema specified in the PDI-RecordTypeSchemaId header parameter. The specified record type schema must be related to the record type defined for the record stream specified in the PDI-RecordStreamId header parameter.

Parameters

Parameter In Type Required Default Description Accepted Values
PDI-RecordStreamId header string true N/A The ID of the record stream in which the service is to store the record. The record stream must be associated with the specified data source. -
PDI-RecordTypeSchemaId header string true N/A The ID of the record type schema to which the record structure conforms. The schema must be related to the record type configured for the specified record stream. -
PDI-EnableTracking header string false N/A If this field is specified with a value of true (case-insensitive), a trackingTicketId value is assigned to each contributed record and returned in the response. The order in the response corresponds to the order of contributed records in the POST request. If this field is not specified, tracking is disabled. -
dataSourceId path string true N/A The ID of the data source. -
body body postDataSourcesDatasourceidContributedRecords true N/A No description -

Response Statuses

Status Meaning Description Schema
200 OK Indicates that the service successfully received, validated, and stored all records. PrimeDataIngestionPublicApi_Entities_V1_ContributedRecordsResponse
400 Bad Request Indicates that one or more of the records failed validation or were not stored by the service due to an issue with the request.
Most failures have an enumerated failure reason in the errors.reason field in the response. An indication as to which record in the records element of the request failed can be found in the errors.location field of the response, for example, records[0]. Additionally, a detailed failure message is provided in the errors.message field of the response.
The following values are possible for the errors.reason field:
  • failedRecordValidation: The decoded JSON representation of the resource in the records.value field did not conform to the specified record type schema.
  • invalidRecordJson: The decoded JSON representation of the resource in the records.value field is malformed and could not be parsed.
  • invalidOperation: The specified records.operation value was not WRITE or DELETE.
  • invalidOperation: A write operation was specified for a record, but the records.value field was empty or not provided.
BadRequestError
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError
404 Not Found Not Found NotFoundError
413 Payload Too Large Payload Too Large PayloadTooLargeError

Upload Record With an Attachment

Example Request:


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

headers = {
  'Authorization' => '<auth_header>',
  'Accept' => 'application/json',
  'PDI-RecordStreamId' => {
  "type": "string"
},
  'PDI-RecordTypeSchemaId' => {
  "type": "string"
},
  'PDI-EnableTracking' => {
  "type": "string"
}
} 

result = HTTParty.post('https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/contributed-records-with-attachments', headers: headers)

print JSON.pretty_generate(result)


# You can also use wget
curl -X POST https://cernerdemo.api.us-1.healtheintent.com/prime-data-ingestion/v1/data-sources/f3bc39e9-3efc-4709-95f3-5c153fa8bec4/contributed-records-with-attachments \
-H 'Authorization: {auth_header}' \
-H 'Accept: application/json' \
-H 'PDI-RecordStreamId: [object Object]' \
-H 'PDI-RecordTypeSchemaId: [object Object]' \
-H 'PDI-EnableTracking: [object Object]'

Example response

{
  "contributedRecords": [
    {
      "trackingTicketId": "f3bc39e9-3efc-4709-95f3-5c153fa8bec4"
    }
  ],
  "contributedRecordCount": "1"
}

POST /data-sources/{dataSourceId}/contributed-records-with-attachments

Uploads a single record with one or more content attachments to the specified data source and record stream. The request must use a Multipart/Related content type. The first part object must contain the record and include the following elements:


The subsequent part objects should contain the content attachments referenced in the resource contained in the value element of the first part object. Content attachments can be of any valid MIME type, though common types are application/pdf, application/rtf and text/plain. The specified record type schema must be related to the record type defined for the record stream specified in the PDI-RecordStreamId header parameter. See the RTF 2387 page on the Internet Engineering Task Force (IETF) website for more information about the Multipart/Related content type requests.

Parameters

Parameter In Type Required Default Description Accepted Values
PDI-RecordStreamId header string true N/A The ID of the record stream in which the service is to store the record. The record stream must be associated with the specified data source. -
PDI-RecordTypeSchemaId header string true N/A The ID of the record type schema to which the record structure conforms. The schema must be related to the record type configured for the specified record stream. -
PDI-EnableTracking header string false N/A If this field is specified with a value of true (case-insensitive), a trackingTicketId value is assigned to each contributed record and returned in the response. The order in the response corresponds to the order of contributed records in the POST request. If this field is not specified, tracking is disabled. -
dataSourceId path string true N/A The ID of the data source. -

Response Statuses

Status Meaning Description Schema
200 OK The tracking information for contributed records with attachments. PrimeDataIngestionPublicApi_Entities_V1_ContributedRecordsResponse
400 Bad Request Indicates that the record failed validation or was not stored by the service due to an issue with the request.
Most failures have an enumerated failure reason in the errors.reason field in the response. Additionally, a detailed failure message is provided in the errors.message field of the response.
The following values are possible for the errors.reason field:
  • failedRecordValidation: The decoded JSON representation of the resource in the value field in the first part of the request did not conform to the specified record type schema.
  • invalidRecordJson: The decoded JSON representation of the resource in the value field in the first part of the request is malformed and could not be parsed.
  • invalidOperation: The specified operation of the record in the first part of the request was not WRITE or DELETE.
  • invalidOperation: A write operation was specified for the record in the first part of the request, but the value field was empty or not provided.
  • missingMimePart: The multipart related to one or more requests did not include either the first part that represents the resource record or the referenced content attachments that are expected in subsequent parts of the request.
  • invalidMimePart: The multipart/related request is not correctly formed.
BadRequestError
401 Unauthorized Unauthorized UnauthorizedError
403 Forbidden Forbidden ForbiddenError
404 Not Found Not Found NotFoundError
413 Payload Too Large Payload Too Large PayloadTooLargeError

Schema Definitions

PrimeDataIngestionPublicApi_Entities_V1_ContributedRecord

Name Type Required Description Accepted Values
operation string false The operation to apply to the record in the service. The supported operations are WRITE and DELETE. If this field is omitted, the service uses WRITE by default. A write operation requires the value field to be specified. For a delete operation, the value field is ignored. -
version integer(int64) true A numeric value that represents the version of the resource. The version is used by the service to determine the order of multiple updates received for the same resource as identified by the resourceId field. The service sorts the versions numerically and only guarantees that the latest version is maintained. -
resourceId string true The ID of the resource that uniquely identifies the resource in the specified record stream. Generally, a resource ID is a monotonically increasing integer or a universally unique identifier (UUID). Ensure that the resource ID is URL-friendly. -
value string true The Base64-encoded JSON representation of the resource, which conforms to the specified record type schema. The value field is required for write operations and ignored for delete operations. -

postDataSourcesDatasourceidContributedRecords

Name Type Required Description Accepted Values
records PrimeDataIngestionPublicApi_Entities_V1_ContributedRecord true An array of one or more records. -

PrimeDataIngestionPublicApi_Entities_V1_ContributedRecordsResponse

Name Type Required Description Accepted Values
contributedRecords [PrimeDataIngestionPublicApi_Entities_V1_ContributedRecordsResponseItem] false No description -
contributedRecordCount string true The number of contributed records that the service successfully received. -

PrimeDataIngestionPublicApi_Entities_V1_ContributedRecordsResponseItem

Name Type Required Description Accepted Values
trackingTicketId string false The ID of the ticket that can be used for tracking the uploaded contributed record. Present if tracking is enabled. -

UnauthorizedError

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 true A human-readable description of the 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. -
code integer(int32) true The HTTP response status code that represents the error. -
errorDetails [UnauthorizedErrorErrorDetail] false 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. -
domain string false A subsystem or context where an error occurred. -

ForbiddenError

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 true A human-readable description of the 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. -
code integer(int32) true The HTTP response status code that represents the error. -
errorDetails [ForbiddenErrorDetail] false 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. -
domain string false A subsystem or context where an error occurred. -

NotFoundError

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 true A human-readable description of the 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. -
code integer(int32) true The HTTP response status code that represents the error. -
errorDetails [NotFoundErrorDetail] false 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. -
domain string false A subsystem or context where an error occurred. -

PayloadTooLargeError

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 true A human-readable description of the 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. -
code integer(int32) true The HTTP response status code that represents the error. -
errorDetails [PayloadTooLargeErrorErrorDetail] false A list of additional error details. -

PayloadTooLargeErrorErrorDetail

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. -
domain string false A subsystem or context where an error occurred. -

BadRequestError

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 true A human-readable description of the 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. -
code integer(int32) true The HTTP response status code that represents the error. -
errorDetails [BadRequestErrorDetail] false A list of additional error details. -

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. -
domain string false A subsystem or context where an error occurred. -

postDataSources

Name Type Required Description Accepted Values
name string true The name of the data source. -
description string false The description of the data source. -
multiContributor boolean false Indicates whether the contributed records from this data source originate from a single or multiple contributors. The default is false. -
tags [object] false Tags can be used to group related data sources. -
» key string true The key of the tag. -
» value string false The value of the tag. -

PrimeDataIngestionPublicApi_Entities_V1_DataSource

Name Type Required Description Accepted Values
id string true The ID of the data source. -
name string false The name of the data source. -
multiContributor boolean false Indicates whether the contributed records from this data source originate from a single or multiple contributors. The default is false. -
description string false The description of the data source. -
tags [PrimeDataIngestionPublicApi_Entities_V1_Tags] false Tags can be used to group related data sources. -
createdAt string false The date and time when the data source was created. -
updatedAt string false The date and time when the data source was updated. -

PrimeDataIngestionPublicApi_Entities_V1_Tags

Name Type Required Description Accepted Values
key string true The key of the tag. -
value string false The value of the tag. -

DataSources

Name Type Required Description Accepted Values
items [PrimeDataIngestionPublicApi_Entities_V1_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. -

patchDataSources

Name Type Required Description Accepted Values
name string false The name of the data source. -
description string false The description of the data source. -
tags [object] false Tags can be used to group related data sources. -
» key string true The key of the tag. -
» value string false The value of the tag. -

postDataSourcesDatasourceidRecordStreams

Name Type Required Description Accepted Values
name string true The displayable name of the record stream. -
recordTypeId string true The type of record that the record stream contains. A record stream can contain only a single record type. -
description string false The description of the record stream. -

PrimeDataIngestionPublicApi_Entities_V1_RecordStream

Name Type Required Description Accepted Values
id string true The ID of the record stream, provided by the data contributor, that uniquely identifies the record stream in a data source. The record stream ID can contain only alphanumeric characters, underscores, and dashes. -
name string true The displayable name of the record stream. -
recordType string true The type of record that the record stream contains. A record stream can contain only a single record type. -
description string false The description of the record stream. -
createdAt string(date-time) true The date and time when the record stream was created. -
updatedAt string(date-time) true The date and time when the record stream was most recently updated. -

ConflictError

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 true A human-readable description of the 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. -
code integer(int32) true The HTTP response status code that represents the error. -
errorDetails [ConflictErrorDetail] false 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. -
domain string false A subsystem or context where an error occurred. -

RecordStreams

Name Type Required Description Accepted Values
items [PrimeDataIngestionPublicApi_Entities_V1_RecordStream] 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. -

patchDataSourcesDatasourceidRecordStreams

Name Type Required Description Accepted Values
name string false The displayable name of the record stream. -
description string false The description of the record stream. -

postDataSourcesDatasourceidDataPartitions

Name Type Required Description Accepted Values
name string true The displayable name of the data partition. -
description string false The description of the data partition. -

PrimeDataIngestionPublicApi_Entities_V1_DataPartition

Name Type Required Description Accepted Values
id string true The ID of the data partition. -
name string true The displayable name of the data partition. -
description string false The description of the data partition. -
conceptMappingConsumerId string false The unique concept mapping ID of the consumer that is used to search for the mapping. -
createdAt string(date-time) true The date and time when the data partition was created. -
updatedAt string(date-time) true The date and time when the date partition was updated. -

DataPartitions

Name Type Required Description Accepted Values
items [PrimeDataIngestionPublicApi_Entities_V1_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. -

patchDataSourcesDatasourceidDataPartitions

Name Type Required Description Accepted Values
name string false The displayable name of the data partition. -
description string false The description of the data partition. -

postDataSourcesDatasourceidDataPartitionsDatapartitionidDataSets

Name Type Required Description Accepted Values
name string true The human-readable name of the data set. -
description string false A human-readable description of the data set. -

PrimeDataIngestionPublicApi_Entities_V1_DataSet

Name Type Required Description Accepted Values
id string true The unique ID of the data set. -
name string true The human-readable name of the data set. -
description string false A human-readable description of the data set. -
createdAt string(date-time) true The date and time when the data set was created. -
updatedAt string(date-time) true The date and time when the data set was updated. -

DataSets

Name Type Required Description Accepted Values
items [PrimeDataIngestionPublicApi_Entities_V1_DataSet] 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. -

patchDataSourcesDatasourceidDataPartitionsDatapartitionidDataSets

Name Type Required Description Accepted Values
name string true The human-readable name of the data set. -
description string false A human-readable description of the data set. -

postDataSourcesDatasourceidDataPartitionsDatapartitionidProcessingStreams

Name Type Required Description Accepted Values
description string true The description of the processing stream. -
configuration object true The PDI service requires configuration to start and run the processing stream. Configuration can be updated until the processing stream is started, after which the configuration becomes immutable. -
» proprietaryToStandardCodeMappingConfiguration object true The proprietary to standard code mappings configuration to be used by the processing stream. -
»» consumerId string true The PCST consumer containing the code mappings to be used during processing. -
»» version string false The version of the specified consumer’s coding mappings to be used during processing. If not specified, the most recent version is used. -
» dataSetConfigurations [object] true One or more data sets of the data partition that are processed by the processing stream, and the configuration required for each. -
»» dataSetId string true A data set of the data partition that is processed by the processing system. -
»» recordStreamId string true The record stream of the parent data source, which contains the contributed records that the processing stream uses as the inputs for processing the data set. -
»» resourceReferences [object] true The configuration required by processing to produce a PartitionRecordReference, which represents a literal reference to a related resource in the context of the data set. -
»»» partitionRecordTypeId string true The partition record type (such as PATIENT or PATIENT_ENCOUNTER) of the related resource. -
»»» dataPartitionId string true The data partition containing the related resource. Must be specified even if the related resource is in the same data partition as the referencing resource. -
»»» dataSetId string false The data set, in the data partition, containing the related resource. -

PrimeDataIngestionPublicApi_Entities_V1_ProcessingStream

Name Type Required Description Accepted Values
id string true The unique ID of the processing stream. -
description string true The description of the processing stream. -
status string true The current status of the processing stream. NOT_STARTED, STARTED, RUNNING, STOPPED, PURGED
createdAt string true The date the processing stream was created in International Organization for Standardization (ISO) YYYY-MM-DDThh:mm:ss.SSSZ format. -
startedAt string false The date the processing stream was started in ISO YYYY-MM-DDThh:mm:ss.SSSZ format. -
stoppedAt string false The date the processing stream was stopped in ISO YYYY-MM-DDThh:mm:ss.SSSZ format. -
purgedAt string false The date the processing stream was purged in ISO YYYY-MM-DDThh:mm:ss.SSSZ format. -
configuration PrimeDataIngestionPublicApi_Entities_V1_ProcessingStreamConfiguration false The configuration instructing how PDI is to run the processing stream. A processing stream’s configuration can only be modified before the processing stream is started. Once started, the stream’s configuration is immutable. -

PrimeDataIngestionPublicApi_Entities_V1_ProcessingStreamConfiguration

Name Type Required Description Accepted Values
updatedAt string true The date the processing stream was created, in International Organization for Standardization (ISO) YYYY-MM-DDThh:mm:ss.SSSZ format. -
proprietaryToStandardCodeMappingConfiguration PrimeDataIngestionPublicApi_Entities_V1_CodeMappingConfiguration false The proprietary to standard code mappings configuration to be used by the processing stream. -
dataSetConfigurations [PrimeDataIngestionPublicApi_Entities_V1_DataSetConfiguration] true The data sets to be processed by the stream, and their respective processing configuration. -

PrimeDataIngestionPublicApi_Entities_V1_CodeMappingConfiguration

Name Type Required Description Accepted Values
consumerId string true The PCST consumer containing the code mappings to be used during processing. -
version string true The version of the specified consumer’s coding mappings to be used during processing. If not specified, the most recent version is used. -

PrimeDataIngestionPublicApi_Entities_V1_DataSetConfiguration

Name Type Required Description Accepted Values
dataSetId string true A data set, of the data partition, that the stream processes. -
recordStreamId string true The record stream, of the parent data source, containing the contributed records that the stream processes for this data set. -
resourceReferences [PrimeDataIngestionPublicApi_Entities_V1_ResourceReferenceConfiguration] true The resources (such as Patient and Encounter), referenced by the resource being processed in this data set, and the configuration required to create the respective resource references. -
cdaResourceExtraction boolean false Indicates whether the CDA Resource Extraction processing should be performed for this data set. Only applicable to data sets configured to process record streams containing the PatientDocumentReference contributed records. -

PrimeDataIngestionPublicApi_Entities_V1_ResourceReferenceConfiguration

Name Type Required Description Accepted Values
partitionRecordTypeId string true The ID of the partition record type of the related resource. -
dataPartitionId string true The ID of the data partition containing the related resource. -
dataSetId string false The ID of the data set in the data partition that contains the related resource. -

ProcessingStreams

Name Type Required Description Accepted Values
items [PrimeDataIngestionPublicApi_Entities_V1_ProcessingStream] 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. -

putDataSourcesDatasourceidDataPartitionsDatapartitionidProcessingStreams

Name Type Required Description Accepted Values
description string true The description of the processing stream. -
configuration object true The PDI service requires configuration to start and run the processing stream. Configuration can be updated until the processing stream is started, after which the configuration becomes immutable. -
» proprietaryToStandardCodeMappingConfiguration object true The proprietary to standard code mappings configuration to be used by the processing stream. -
»» consumerId string true The PCST consumer containing the code mappings to be used during processing. -
»» version string false The version of the specified consumer’s coding mappings to be used during processing. If not specified, the most recent version is used. -
» dataSetConfigurations [object] true One or more data sets of the data partition that are processed by the processing stream, and the configuration required for each. -
»» dataSetId string true A data set of the data partition that is processed by the processing system. -
»» recordStreamId string true The record stream of the parent data source, which contains the contributed records that the processing stream uses as the inputs for processing the data set. -
»» resourceReferences [object] true The configuration required by processing to produce a PartitionRecordReference, which represents a literal reference to a related resource in the context of the data set. -
»»» partitionRecordTypeId string true The partition record type (such as PATIENT or PATIENT_ENCOUNTER) of the related resource. -
»»» dataPartitionId string true The data partition containing the related resource. Must be specified even if the related resource is in the same data partition as the referencing resource. -
»»» dataSetId string false The data set, in the data partition, containing the related resource. -

RecordTypes

Name Type Required Description Accepted Values
items [PrimeDataIngestionPublicApi_Entities_V1_RecordType] 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. -

PrimeDataIngestionPublicApi_Entities_V1_RecordType

Name Type Required Description Accepted Values
id string true The unique ID of the record type. -
name string true The human-readable name of the record type. -

RecordTypeSchemaItems

Name Type Required Description Accepted Values
items [PrimeDataIngestionPublicApi_Entities_V1_RecordTypeSchemaItem] 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. -

PrimeDataIngestionPublicApi_Entities_V1_RecordTypeSchemaItem

Name Type Required Description Accepted Values
id string true The ID of a specific schema of a record type. -

PrimeDataIngestionPublicApi_Entities_V1_RecordTypeSchema

Name Type Required Description Accepted Values
id string true The ID of a specific schema of a record type. -
schema string true A Base64-encoded JSON schema to which records of this type must adhere. -