Skip to main content

DiagnosticReport-update

Rad AI Reporting interprets the DiagnosticReport-update event as a set of resources that provide additional context to the open report. These resources will appear in the Measurements panel in Rad AI Reporting.

Workflow

The DiagnosticReport-update event signals Rad AI Reporting to make related resources accessible to the current report. If a report isn't currently open, this event is ignored.

Rad AI Reporting responds to DiagnosticReport-update event successfully

Data Format

The event object will look like this. Please note that any number of FHIR resources may be provided in the entry parameter. For each FHIR resource, you'll need a separate object in the entry array.

{
"id": "155cc6e5-0e85-41f9-b94a-a409d4769073",
"timestamp": "2024-01-01T00:00:00.000Z",
"event": {
"hub.topic": "test-topic",
"hub.event": "DiagnosticReport-update",
"context": [
{
"key": "updates",
"resource": {
"resourceType": "Bundle",
"type": "transaction",
"entry": [
{
"request": {
"method": "POST"
},
"resource": {fhir-resource}
}
]
}
}
]
}
}

Using the above format, the event should contain one or more of the following resources.

Observation

FHIR Observation resources can be used to provide measurements or annotations to Rad AI Reporting.

code Field

The code field is used for both Observation.code (for single measurements) and Observation.component.code (for related measurements).

Display

When displayed in Rad AI Reporting, the first Observation.code.coding.[...].display field is prefixed to the value display. See Single Measurement for an example of this.

Formula Fields

Observation resources shared via FHIRcast can be automatically inserted into a Rad AI Reporting template in the Report Editor. Formula fields can reference Observation resources through the first Observation.code.coding.[...].code.

Formula fields are only supported for Observation resources. They aren't currently supported for Observation.component resources.

While you can reference an Observation resource that contains related measurements through Observation.component, all of the related measurements will be inserted through the formula field.

value[x] Field

The value[x] field is used for both Observation.value[x] (for single measurements) and Observation.component.value[x] (for related measurements).

Use the table below as a guide for what value[x] field to use.

value[x] fieldUsage
valueQuantityDisplayed as {valueQuantity.value}{valueQuantity.unit} if valueQuantity.unit is provided, {valueQuantity.value} if not.
valueCodeableConceptDisplayed as {valueCodeableConcept.text}.
valueStringDisplayed as-is.
valueBooleanDisplayed as True if true, False if false.
valueIntegerDisplayed as a formatted number.
valueRangeDisplayed as {valueRange.low.value} - {valueRange.high.value} {valueRange.high.unit} if valueRange.high.unit is provided, {valueRange.low.value} - {valueRange.high.value} if not.
valueRatioDisplayed as {valueRatio.numerator.value}:{valueRatio.denominator.value}.
valueSampledDataDisplayed as {valueSampledData.data}.
valueTimeDisplayed as-is.
valueDateTimeDisplayed as-is.
valuePeriodDisplayed as {valuePeriod.start} - {valuePeriod.end}.

Single Measurement

If you are providing a single measurement, use the Observation.value[x] field.

Here's a simplified example of a single measurement in an Observation resource. In this example, the Observation would be displayed as "Circumference: 12.0cm".

{
"resourceType": "Observation",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "42405-0",
"display": "Circumference"
}
]
},
"valueQuantity": {
"value": 12.0,
"unit": "cm",
"system": "http://unitsofmeasure.org",
"code": "cm"
}
}

If you are providing related measurements, use the Observation.component field, where each component has an Observation.component.value[x] field.

Here's an simplified example of related measurements in an Observation resource. In this example, the Observation would be displayed as a list of measurements:

  • "Circumference: 12.0cm"
  • "Diameter: 6.0cm"
  • "Area: 6.75cm²"
{
"resourceType": "Observation",
"component": [
{
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "42405-0",
"display": "Circumference"
}
]
},
"valueQuantity": {
"value": 12.0,
"unit": "cm",
"system": "http://unitsofmeasure.org",
"code": "cm"
}
},
{
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "42406-8",
"display": "Diameter"
}
]
},
"valueQuantity": {
"value": 6.0,
"unit": "cm",
"system": "http://unitsofmeasure.org",
"code": "cm"
}
},
{
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "42798000",
"display": "Area"
}
]
},
"valueQuantity": {
"value": 6.75,
"unit": "cm²",
"system": "http://unitsofmeasure.org",
"code": "cm-2"
}
}
]
}

ImagingSelection

warning

The ImagingSelection resource is not part of the FHIR R4B specification.

Rad AI Reporting instead uses the FHIR R5 specification for the ImagingSelection resource.

FHIR ImagingSelection resources can be used to specify series and imaging information from the PACS. When providing measurements, this can be used to specify which series/image(s) the measurements originated from.

Here's an simplified example of an ImagingSelection resource.

{
"resourceType": "ImagingSelection",
"seriesNumber": 1,
"instance": [
{
"uid": "2.16.840.1.113669.632.21.1650549011.2966824467.36921496302286845",
"number": 2,
"sopClass": {
"system": "urn:ietf:rfc:3986",
"code": "urn:oid:1.2.840.10008.5.1.4.1.1.2"
}
}
]
}

Example Message

For a comprehensive DiagnosticReport-update event, see below. This event contains:

{
"id": "155cc6e5-0e85-41f9-b94a-a409d4769073",
"timestamp": "2024-01-01T00:00:00.000Z",
"event": {
"hub.topic": "test-topic",
"hub.event": "DiagnosticReport-update",
"context": [
{
"key": "updates",
"resource": {
"resourceType": "Bundle",
"type": "transaction",
"entry": [
{
"request": {
"method": "POST"
},
"resource": {
"resourceType": "ImagingStudy",
"id": "43212b29-7d26-4874-87ca-9ae6b18af765",
"identifier": [
{
"system": "https://example.com",
"value": "123456"
}
],
"started": "2024-01-01T00:00:00.000Z"
}
},
{
"request": {
"method": "POST"
},
"resource": {
"resourceType": "Observation",
"id": "f408aa75-04ca-431e-ac9c-7cb6b33c8a27",
"partOf": {
"reference": "ImagingStudy/43212b29-7d26-4874-87ca-9ae6b18af765"
},
"status": "preliminary",
"category": {
"system": "http://terminology.hl7.org/CodeSystem/observation-category",
"code": "imaging",
"display": "Imaging"
},
"valueQuantity": {
"value": 123.456,
"unit": "mm",
"system": "http://unitsofmeasure.org",
"code": "mm"
},
"started": "2024-01-01T00:00:00.000Z"
}
},
{
"request": {
"method": "PUT"
},
"resource": {
"resourceType": "Observation",
"id": "f408aa75-04ca-431e-ac9c-7cb6b33c8a27",
"partOf": {
"reference": "ImagingStudy/1a84d5b0-2f71-486d-913b-79ae4034666c"
},
"status": "preliminary",
"category": {
"system": "http://terminology.hl7.org/CodeSystem/observation-category",
"code": "imaging",
"display": "Imaging"
},
"code": {
"coding": [
{
"system": "http://app.radai.com",
"code": "Annotation"
}
]
},
"component": [
{
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "42405-0",
"display": "Circumference"
}
]
},
"valueQuantity": {
"value": 12.0,
"unit": "cm",
"system": "http://unitsofmeasure.org",
"code": "cm"
}
},
{
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "42406-8",
"display": "Diameter"
}
]
},
"valueQuantity": {
"value": 6.0,
"unit": "cm",
"system": "http://unitsofmeasure.org",
"code": "cm"
}
},
{
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "42798000",
"display": "Area"
}
]
},
"valueQuantity": {
"value": 6.75,
"unit": "cm²",
"system": "http://unitsofmeasure.org",
"code": "cm-2"
}
}
],
"started": "2024-01-01T00:00:00.000Z"
}
},
{
"request": {
"method": "POST"
},
"resource": {
"resourceType": "ImagingSelection",
"id": "3287df10-7d51-472f-9d62-7cbb36056df1",
"status": "available",
"subject": {
"type": "Patient",
"identifier": {
"value": "f143a238-7dd0-4f80-bd7e-051480662a7a"
}
},
"studyUid": "2.16.840.1.113669.632.21.1650549011.2966824467.75719194720573882",
"derivedFrom": [
{
"type": "ImagingStudy",
"identifier": {
"system": "urn:dicom:uid",
"value": "urn:oid:1.2.840.113747.20080222.35738358372924306270412538783781"
}
}
],
"seriesUid": "2.16.840.1.113669.632.21.1650549011.2966824467.37498213102206685",
"seriesNumber": 1,
"instance": [
{
"uid": "2.16.840.1.113669.632.21.1650549011.2966824467.36921496302286845",
"number": 2,
"sopClass": {
"system": "urn:ietf:rfc:3986",
"code": "urn:oid:1.2.840.10008.5.1.4.1.1.2"
}
}
]
}
}
]
}
}
]
}
}