Enrichment
The Enrichment data model can be used to send data to third-party vendors for processing. Different enrichment vendors support different event types.
This event type is used for natural language processing (NLP). You can send text to a third-party vendor with this query so that they can extract specific data from the text. Since NLP can take some time to complete, the response includes a Task ID so that you can check the status and eventual results.
Fields
Meta
Meta.DataModel
String
ReliableRequiredEnrichment
Meta.EventType
String
ReliableRequiredNaturalLanguageProcessingQuery
Meta.EventDateTime
DateTime
ReliableDisplays the UTC date and time that an outgoing request is delivered or an incoming request is received.
ISO 8601 Format
Meta.Test
Boolean
ReliableIndicates whether the request is a test or not.
Meta.Source
String
ReliableContains the information for the system initiating the message, including the source ID and name.
Included in messages from Redox
Meta.Source.ID
String
ReliableIdentifies the system initiating the message. If you have multiple OAuth API keys per environment type, this value is required. If you have only one OAuth API key per environment type, or you're using legacy API keys, this value is optional.
UUID
Meta.Source.Name
String
ReliableDisplays the name of the system initiating the message.
Meta.Destinations[]
Array of Objects
ReliableContains the information for the endpoint(s) receiving the request. A request must contain at least one destination, but asynchronous requests can have more than one destination. Synchronous requests like queries can only support one destination.
Required when sending data to Redox.
Meta.Destinations[].ID
String
ReliableIdentifies the endpoint that the request is directed to.
UUID
Meta.Destinations[].Name
String
ReliableDisplays the name of the endpoint that the request is directed to.
Meta.Logs[]
Array of Objects
ReliableContains the log identifier(s) for the request.
Meta.Logs[].ID
String
ReliableIdentifies the request log(s) that correspond to this request. You can use this value to locate the relevant log in the Redox dashboard for support and reference.
UUID
Meta.Logs[].AttemptID
String
ReliableIdentifies the request log attempt value, which is useful when retries are possible.
UUID
Meta.FacilityCode
String
PossibleCode for the facility related to the message.
Only use this field if a health system indicates you should. The code is specific to the health system's EHR and might not be unique across health systems. In general, the facility fields within the data models (e.g. OrderingFacility) are more reliable and informative.
Text
Text.Contents
String
ReliableThe natural-language text to be processed for extracted data points; You may include up to 10,000 characters.
This field isn't required if you're checking the status or results of a previously sent query with the corresponding Task ID.
Task
Task.ID
String
ReliableThe returned identifier of a previous natural-language processing query. Use this field when you're checking the status or results of a query you sent previously. Don't populate this field if you're initiating a new query.
Do not send a identifier value here when initiating a new query.
{
"Meta": {
"DataModel": "Enrichment",
"EventType": "NaturalLanguageProcessingQuery",
"EventDateTime": "2023-05-23T13:49:48.036Z",
"Test": true,
"Source": {
"ID": "7ce6f387-c33c-417d-8682-81e83628cbd9",
"Name": "Redox Dev Tools"
},
"Destinations": [
{
"ID": "af394f14-b34a-464f-8d24-895f370af4c9",
"Name": "Redox EMR"
}
],
"Logs": [
{
"ID": "d9f5d293-7110-461e-a875-3beb089e79f3",
"AttemptID": "925d1617-2fe0-468c-a14c-f8c04b572c54"
}
],
"FacilityCode": null
},
"Text": {
"Contents": null
},
"Task": {
"ID": null
}
}
The NaturalLanguageProcessingQueryResponse event type returns the extracted data attributes and annotations that were found in the submitted natural-language text. Each returned data point includes a confidence score denoting the certainty of the data extracted from the source material.
Fields
Meta
Meta.DataModel
String
ReliableRequiredEnrichment
Meta.EventType
String
ReliableRequiredNaturalLanguageProcessingQueryResponse
Meta.EventDateTime
DateTime
ReliableDisplays the UTC date and time that an outgoing request is delivered or an incoming request is received.
ISO 8601 Format
Meta.Test
Boolean
ReliableIndicates whether the request is a test or not.
Meta.Source
String
ReliableContains the information for the system initiating the message, including the source ID and name.
Included in messages from Redox
Meta.Source.ID
String
ReliableIdentifies the system initiating the message. If you have multiple OAuth API keys per environment type, this value is required. If you have only one OAuth API key per environment type, or you're using legacy API keys, this value is optional.
UUID
Meta.Source.Name
String
ReliableDisplays the name of the system initiating the message.
Meta.Destinations[]
Array of Objects
ReliableContains the information for the endpoint(s) receiving the request. A request must contain at least one destination, but asynchronous requests can have more than one destination. Synchronous requests like queries can only support one destination.
Required when sending data to Redox.
Meta.Destinations[].ID
String
ReliableIdentifies the endpoint that the request is directed to.
UUID
Meta.Destinations[].Name
String
ReliableDisplays the name of the endpoint that the request is directed to.
Meta.Logs[]
Array of Objects
ReliableContains the log identifier(s) for the request.
Meta.Logs[].ID
String
ReliableIdentifies the request log(s) that correspond to this request. You can use this value to locate the relevant log in the Redox dashboard for support and reference.
UUID
Meta.Logs[].AttemptID
String
ReliableIdentifies the request log attempt value, which is useful when retries are possible.
UUID
Meta.FacilityCode
String
PossibleCode for the facility related to the message.
Only use this field if a health system indicates you should. The code is specific to the health system's EHR and might not be unique across health systems. In general, the facility fields within the data models (e.g. OrderingFacility) are more reliable and informative.
Transaction
Transaction
Object
ReliableContains details about the vendor that performed the enrichment.
Transaction.VendorID
String
ReliableRequiredThe identifier of the third-party vendor that processed the enrichment request.
Transaction.ID
String
ReliableRequiredThe identifier of the specific enrichment transaction, which is generated by the third-party vendor. You can use this identifier to reconcile transactions (e.g., for billing review). Note that multiple entries might have the same transaction identifier if a vendor supports batch enrichment.
Transaction.Task
Object
ReliableVendor-specific details about the task created to fulfill your enrichment transaction.
Transaction.Task.ID
String
ReliableRequiredYou can use this identifier to check the status or results of the enrichment task later.
Note that this value may be the same as the Transaction.ID, depending on the vendor.
Transaction.Task.Status
String
ReliableRequiredThe status of the enrichment task your query created. If the status value is Success, the results of the enrichment are populated in the Entries fields.
Values can be one of the following: Pending, Success
Transaction.Task.Message
String
ProbableDescribes the current status of the enrichment task your query created.
Entries
Entries[]
Array of Objects
ReliableA list of data entries extracted from the natural-language content submitted in your query.
Entries[].Text
Object
ReliableContains details about the text you submitted for enrichment.
Entries[].Text.Contents
String
ReliableRequiredThe text snippet from your submitted content that resulted in this specific data extract.
Entries[].Text.Position
Object
ReliableDetails about where in your submitted content this text snippet was located.
Entries[].Text.Position.BeginOffset
Numeric
ReliableRequiredThe first character position of this snippet, which is measured from the start of your submitted content.
For example: if the three-letter word "hat" was extracted from your text starting at character 10, it would have a BeginOffset of 10.
Entries[].Text.Position.EndOffset
Numeric
ReliableRequiredThe character position of the next character immediately after the end of this snippet, which is measured from the start of your submitted content.
For example: if the three-letter word "hat" was extracted from your text starting at character 10, it would have a BeginOffset of 10 and an EndOffset of 13, because the "t" in "hat" is at character 12.
Entries[].Category
Array of Object
ReliableA list of all categories of data that were extracted from the text contents for the entry.
Entries[].Category.Name
String
ReliableRequiredThe name of the category of data extracted from the text.
Entries[].Category.CertaintyScore
Numeric
ReliableRequiredThe confidence score that the matched category is accurate: 0 is low confidence, and 1 is high confidence.
Entries[].Concept.Code
String
ProbableCode for the concept matched by the enrichment vendor.
Entries[].Concept.Codeset
String
ProbableCode set used to identify the concept matched by the enrichment vendor.
Entries[].Concept.Description
String
ProbableDescription of the concept matched by the enrichment vendor.
Entries[].Concept.CertaintyScore
Numeric
ReliableRequiredThe confidence score that the matched concept is accurate: 0 is low confidence, and 1 is high confidence.
{
"Meta": {
"DataModel": "Enrichment",
"EventType": "NaturalLanguageProcessingQueryResponse",
"EventDateTime": "2023-05-23T13:49:48.036Z",
"Test": true,
"Source": {
"ID": "7ce6f387-c33c-417d-8682-81e83628cbd9",
"Name": "Redox Dev Tools"
},
"Destinations": [
{
"ID": "af394f14-b34a-464f-8d24-895f370af4c9",
"Name": "Redox EMR"
}
],
"Logs": [
{
"ID": "d9f5d293-7110-461e-a875-3beb089e79f3",
"AttemptID": "925d1617-2fe0-468c-a14c-f8c04b572c54"
}
],
"FacilityCode": null
},
"Transaction": {
"VendorID": "VendorID",
"ID": "74d07628-adb1-474b-a2f2-e48f57e65e8e",
"Task": {
"ID": "74d07628-adb1-474b-a2f2-e48f57e65e8e",
"Status": "Success",
"Message": null
}
},
"Entries": [
{
"Text": {
"Contents": "itching",
"Position": {
"BeginOffset": 16,
"EndOffset": 23
}
},
"Category": {
"Name": "Medical Conditions",
"CertaintyScore": 0.9998
},
"Concept": {
"Code": "C0033774",
"Codeset": "https://www.nlm.nih.gov/research/umls",
"Description": "Pruritus",
"CertaintyScore": 1
}
},
{
"Text": {
"Contents": "toes",
"Position": {
"BeginOffset": 27,
"EndOffset": 31
}
},
"Category": {
"Name": "Anatomy & Physiology",
"CertaintyScore": 0.9963
},
"Concept": {
"Code": "C0040357",
"Codeset": "https://www.nlm.nih.gov/research/umls",
"Description": "Toes",
"CertaintyScore": 0.9998
}
}
]
}
The NormalizationQuery event type submits code entries (each in a given category) to a third-party vendor for normalization, or processing.
Fields
Meta
Meta.DataModel
String
ReliableRequiredEnrichment
Meta.EventType
String
ReliableRequiredNormalizationQuery
Meta.EventDateTime
DateTime
ReliableDisplays the UTC date and time that an outgoing request is delivered or an incoming request is received.
ISO 8601 Format
Meta.Test
Boolean
ReliableIndicates whether the request is a test or not.
Meta.Source
String
ReliableContains the information for the system initiating the message, including the source ID and name.
Included in messages from Redox
Meta.Source.ID
String
ReliableIdentifies the system initiating the message. If you have multiple OAuth API keys per environment type, this value is required. If you have only one OAuth API key per environment type, or you're using legacy API keys, this value is optional.
UUID
Meta.Source.Name
String
ReliableDisplays the name of the system initiating the message.
Meta.Destinations[]
Array of Objects
ReliableContains the information for the endpoint(s) receiving the request. A request must contain at least one destination, but asynchronous requests can have more than one destination. Synchronous requests like queries can only support one destination.
Required when sending data to Redox.
Meta.Destinations[].ID
String
ReliableIdentifies the endpoint that the request is directed to.
UUID
Meta.Destinations[].Name
String
ReliableDisplays the name of the endpoint that the request is directed to.
Meta.Logs[]
Array of Objects
ReliableContains the log identifier(s) for the request.
Meta.Logs[].ID
String
ReliableIdentifies the request log(s) that correspond to this request. You can use this value to locate the relevant log in the Redox dashboard for support and reference.
UUID
Meta.Logs[].AttemptID
String
ReliableIdentifies the request log attempt value, which is useful when retries are possible.
UUID
Meta.FacilityCode
String
PossibleCode for the facility related to the message.
Only use this field if a health system indicates you should. The code is specific to the health system's EHR and might not be unique across health systems. In general, the facility fields within the data models (e.g. OrderingFacility) are more reliable and informative.
Entries
Entries[]
Array of Objects
ReliableA list of entries to be normalized. The maximum number of entries that can be included is 100.
Entries[].Category
String
ReliableRequiredThe category of values in which to find this normalization entry.
Categories currently supported: Problem.
Entries[].EntryID
String
PossibleThe identifier of the specific entry to be normalized. If not provided, Redox generates an identifier to populate this field in the NormalizationQueryResponse so that you can match the normalized entry to the submitted entry.
Entries[].Code
String
ProbableCode for the value to be normalized by the third-party vendor.
You must include either code value or description, or you can provide both.
Entries[].Codeset
String
ProbableValueSetCode set used to identify the value to be normalized by the third-party vendor.
-
Additional values may be added by Redox in the future.
-
Entries[].Description
String
ProbableDescription of the value to be normalized by the third-party vendor.
You must include either code value or description, or you can provide both.
{
"Meta": {
"DataModel": "Enrichment",
"EventType": "NormalizationQuery",
"EventDateTime": "2023-05-23T13:49:48.036Z",
"Test": true,
"Source": {
"ID": "7ce6f387-c33c-417d-8682-81e83628cbd9",
"Name": "Redox Dev Tools"
},
"Destinations": [
{
"ID": "af394f14-b34a-464f-8d24-895f370af4c9",
"Name": "Redox EMR"
}
],
"Logs": [
{
"ID": "d9f5d293-7110-461e-a875-3beb089e79f3",
"AttemptID": "925d1617-2fe0-468c-a14c-f8c04b572c54"
}
],
"FacilityCode": null
},
"Entries": [
{
"Category": "Problem",
"EntryID": "Diagnosis-0000000001-0",
"Code": "R07.0",
"Codeset": "ICD-10",
"Description": "Pain in throat"
}
]
}
The NormalizationQueryResponse returns the submitted code entries with the matching code values from related code sets. Each returned match includes a confidence score denoting the certainty of the match.
Fields
Meta
Meta.DataModel
String
ReliableRequiredEnrichment
Meta.EventType
String
ReliableRequiredNormalizationQueryResponse
Meta.EventDateTime
DateTime
ReliableDisplays the UTC date and time that an outgoing request is delivered or an incoming request is received.
ISO 8601 Format
Meta.Test
Boolean
ReliableIndicates whether the request is a test or not.
Meta.Source
String
ReliableContains the information for the system initiating the message, including the source ID and name.
Included in messages from Redox
Meta.Source.ID
String
ReliableIdentifies the system initiating the message. If you have multiple OAuth API keys per environment type, this value is required. If you have only one OAuth API key per environment type, or you're using legacy API keys, this value is optional.
UUID
Meta.Source.Name
String
ReliableDisplays the name of the system initiating the message.
Meta.Destinations[]
Array of Objects
ReliableContains the information for the endpoint(s) receiving the request. A request must contain at least one destination, but asynchronous requests can have more than one destination. Synchronous requests like queries can only support one destination.
Required when sending data to Redox.
Meta.Destinations[].ID
String
ReliableIdentifies the endpoint that the request is directed to.
UUID
Meta.Destinations[].Name
String
ReliableDisplays the name of the endpoint that the request is directed to.
Meta.Logs[]
Array of Objects
ReliableContains the log identifier(s) for the request.
Meta.Logs[].ID
String
ReliableIdentifies the request log(s) that correspond to this request. You can use this value to locate the relevant log in the Redox dashboard for support and reference.
UUID
Meta.Logs[].AttemptID
String
ReliableIdentifies the request log attempt value, which is useful when retries are possible.
UUID
Meta.FacilityCode
String
PossibleCode for the facility related to the message.
Only use this field if a health system indicates you should. The code is specific to the health system's EHR and might not be unique across health systems. In general, the facility fields within the data models (e.g. OrderingFacility) are more reliable and informative.
Entries
Entries[]
Array of Objects
ReliableA list of normalized entries that were submitted with the NormalizationQuery.
Entries[].Category
String
ReliableRequiredThe category of values for this normalization entry.
One of the following: Problem
Entries[].Status
String
ReliableRequiredThe outcome of this specific entry's normalization.
One of the following: Success, Error
Entries[].Transaction
Object
ReliableContains details about the vendor that performed the enrichment.
Entries[].Transaction.VendorID
String
ReliableRequiredThe identifier of the third-party vendor that processed the enrichment request.
Entries[].Transaction.ID
String
ReliableRequiredThe identifier of the specific enrichment transaction, which is generated by the third-party vendor. You can use this identifier to reconcile transactions (e.g., for billing review). Note that multiple entries might have the same transaction identifier if a vendor supports batch enrichment.
Entries[].Submitted
Object
ReliableA copy of the entry input data provided in your Normalization Query.
Entries[].Submitted.Category
String
ReliableRequiredThe category of values in which to find this normalization entry.
Categories currently supported: Problem. This is an unmodified copy of the value submitted in your Normalization Query.
Entries[].Submitted.EntryID
String
PossibleThis is an unmodified copy of the value submitted in the NormalizationQuery. If you didn't provide an ID, Redox generates one for you.
- This is an unmodified copy of the value submitted in your Normalization Query.*
Entries[].Submitted.Code
String
ProbableCode for the value to be normalized by the third-party vendor.
You must include either code value or description, or you can provide both. This is an unmodified copy of the value submitted in your Normalization Query.
Entries[].Submitted.Codeset
String
ProbableValueSetCode set used to identify the value to be normalized by the third-party vendor.
-
Additional values may be added by Redox in the future.
-
Entries[].Submitted.Description
String
ProbableDescription of the value to be normalized by the third-party vendor.
You must include either code value or description, or you can provide both. This is an unmodified copy of the value submitted in your Normalization Query.
Entries[].Normalization[]
Array of Objects
ProbableThe output of the normalization transaction. If normalization results in an error, this array contains the error information. If normalization results in a success, this array contains the normalized entry data.
Entries[].Normalization[].LexicalReference
Object
ReliableThe principal code value that was matched with the input data provided for this entry.
Entries[].Normalization[].LexicalReference.Code
String
ReliableThe value of the normalized match for the submitted code value.
Entries[].Normalization[].LexicalReference.Name
String
ReliableThe name of the normalized match of the submitted code value.
Entries[].Normalization[].LexicalReference.DefaultCode
String
ProbableThe value of the default variant of the normalized match for the submitted code value.
Entries[].Normalization[].LexicalReference.DefaultName
String
ProbableThe name or of the default variant of the normalized match for the submitted code value.
Entries[].Normalization[].Score
Object
ReliableThe quantified confidence that the Lexical Reference value matches the input data provided for this entry.
Entries[].Normalization[].Score.Value
Numeric
ReliableThe quality/certainty score for the Lexical Reference match, between
0
and1
: an exact match has a score value of1
.
Entries[].Normalization[].Score.Description
String
ReliableThe description of the confidence score for the normalization. A score of 1 will have a description of Exact.
Entries[].Normalization[].Matches[]
Array of Objects
ReliableAny related coded values associated with the matched Lexical Reference value, collected by code system.
Entries[].Normalization[].Matches[].Codeset
String
ReliableCoding system to which the related codes belong (e.g. ICD-10-CM, ICD-9-CM, SNOMED CT)
Entries[].Normalization[].Matches[].Status
String
ReliableThe outcome of matching the lexical reference code to this specific Code Set.
One of the following: Success, Not Codeable, Insufficient Data
Entries[].Normalization[].Matches[].Codes[]
Array of Objects
ReliableThe collection of related coded values within this Match's code set, if matching was successful.
Entries[].Normalization[].Matches[].Codes[].Code
String
ReliableThe code value in the indicated code set in the normalization category.
Entries[].Normalization[].Matches[].Codes[].MatchPriority
String
ReliableIndicates the priority for this match (e.g. Preferred Primary or Preferred).
Entries[].Normalization[].Matches[].Codes[].Variants[]
String
ReliableA collection of variants for the code value; for example, multiple titles might apply to the same code.
Entries[].Normalization[].Matches[].Codes[].Variants[].Title
String
ReliableA specific title of the code value variant.
Entries[].Normalization[].Matches[].Codes[].Variants[].TitleStatus
String
ProbableThe status of this title for the code value variant, if a status is applicable.
Entries[].Normalization[].Matches[].Codes[].Variants[].TitleType
String
ProbableIf the title of this variant can be categorized, this is the type description.
Entries[].Normalization[].Matches[].Codes[].Variants[].ExtendedProperties[]
Array of Objects
ProbableThe collection of any metadata properties about this specific code variant.
Entries[].Normalization[].Matches[].Codes[].Variants[].ExtendedProperties[].Category
String
ProbableThe category name of this set of extended properties of this variant.
Entries[].Normalization[].Matches[].Codes[].Variants[].ExtendedProperties[].Properties[]
Array of Objects
ProbableThe collection of extended properties within the given category.
Entries[].Normalization[].Matches[].Codes[].Variants[].ExtendedProperties[].Properties[].Property
String
ProbableThe extended property name or code within the given category.
Entries[].Normalization[].Matches[].Codes[].Variants[].ExtendedProperties[].Properties[].Value
String
ProbableThe value of the extended property within the given category.
Entries[].Error
Object
ProbableIf enrichment operation results in an error, this object contains the error details. If the operation results in a success, this object is null. Note that it's possible for some operations in a request to succeed while others fail.
Entries[].Error.Code
String
ProbableContains the error code as defined by the third-party vendor.
Entries[].Error.Message
String
ProbableDescribes the error that disrupted the enrichment operation.
{
"Meta": {
"DataModel": "Enrichment",
"EventType": "NormalizationQueryResponse",
"EventDateTime": "2023-05-23T13:49:48.036Z",
"Test": true,
"Source": {
"ID": "7ce6f387-c33c-417d-8682-81e83628cbd9",
"Name": "Redox Dev Tools"
},
"Destinations": [
{
"ID": "af394f14-b34a-464f-8d24-895f370af4c9",
"Name": "Redox EMR"
}
],
"Logs": [
{
"ID": "d9f5d293-7110-461e-a875-3beb089e79f3",
"AttemptID": "925d1617-2fe0-468c-a14c-f8c04b572c54"
}
],
"FacilityCode": null
},
"Entries": [
{
"Category": "Problem",
"Status": "Success",
"Transaction": {
"VendorID": "IMO",
"ID": "db0f0712-b051-43b8-89ff-9353edd22797"
},
"Submitted": {
"Category": "Problem",
"EntryID": "My-Normalization-c2a0f9fe-a017-467b-94ba-b24b8eba0515",
"Code": "E11.29",
"Codeset": "ICD-10-CM",
"Description": null
},
"Normalization": [
{
"LexicalReference": {
"Code": "E11.29",
"Name": "Uncontrolled type 2 diabetes with renal manifestation",
"DefaultCode": "E11.65",
"DefaultName": "Type 2 diabetes mellitus with hyperglycemia"
},
"Score": {
"Value": 1,
"Description": "Exact"
},
"Matches": [
{
"Codeset": "ICD-10-CM",
"Status": "Success",
"Codes": [
{
"Code": "E11.65",
"MatchPriority": "Preferred primary",
"Variants": [
{
"Title": "Type 2 diabetes mellitus with hyperglycemia",
"TitleStatus": null,
"TitleType": null,
"ExtendedProperties": [
{
"Category": "CCSR",
"Properties": [
{
"Property": "END",
"Value": "Endocrine, nutritional and metabolic diseases"
}
]
},
{
"Category": "HCC",
"Properties": [
{
"Property": "HCC Model Category",
"Value": "18"
},
{
"Property": "Community, Non-Dual-Aged",
"Value": "0.302"
},
{
"Property": "Community, Non-Dual-Disabled",
"Value": "0.351"
},
{
"Property": "Community, Full Benefit, Dual Aged",
"Value": "0.340"
},
{
"Property": "CCommunity, Full Benefit, Dual-Disabled",
"Value": "0.423"
},
{
"Property": "Community, Partial Benefit, Dual Aged",
"Value": "0.087"
},
{
"Property": "Community, Partial Benefit, Dual-Disabled",
"Value": "0.373"
},
{
"Property": "Institutional",
"Value": "0.440"
}
]
}
]
}
]
}
]
},
{
"Codeset": "SNOMED CT",
"Status": "Success",
"Codes": [
{
"Code": "420279001",
"MatchPriority": "Preferred",
"Variants": [
{
"Title": "Renal disorder due to type 2 diabetes mellitus",
"TitleStatus": null,
"TitleType": null,
"ExtendedProperties": []
}
]
},
{
"Code": "44054006",
"MatchPriority": "Preferred",
"Variants": [
{
"Title": "Diabetes mellitus type 2 (disorder)",
"TitleStatus": null,
"TitleType": null,
"ExtendedProperties": []
}
]
}
]
},
{
"Codeset": "ICD-9-CM",
"Status": "Success",
"Codes": [
{
"Code": "250.00",
"MatchPriority": "Preferred",
"Variants": [
{
"Title": "Diabetes mellitus without mention of complication, type ii ",
"TitleStatus": null,
"TitleType": null,
"ExtendedProperties": []
}
]
}
]
}
]
}
],
"Error": {
"Code": null,
"Message": null
}
}
]
}