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.

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] field | Usage |
|---|---|
valueQuantity | Displayed as {valueQuantity.value}{valueQuantity.unit} if valueQuantity.unit is provided, {valueQuantity.value} if not. |
valueCodeableConcept | Displayed as {valueCodeableConcept.text}. |
valueString | Displayed as-is. |
valueBoolean | Displayed as True if true, False if false. |
valueInteger | Displayed as a formatted number. |
valueRange | Displayed as {valueRange.low.value} - {valueRange.high.value} {valueRange.high.unit} if valueRange.high.unit is provided, {valueRange.low.value} - {valueRange.high.value} if not. |
valueRatio | Displayed as {valueRatio.numerator.value}:{valueRatio.denominator.value}. |
valueSampledData | Displayed as {valueSampledData.data}. |
valueTime | Displayed as-is. |
valueDateTime | Displayed as-is. |
valuePeriod | Displayed 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"
}
}
Related Measurements
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
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"
}
}
]
}
ImagingStudy
FHIR ImagingStudy resources are updated based on the currently open report.
Example Message
For a comprehensive DiagnosticReport-update event, see below.
This event contains:
- An
ImagingStudyresource - An
Observationresource with a single measurement - An
Observationresource with a related measurements - An
ImagingSelectionresource
{
"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"
}
}
]
}
}
]
}
}
]
}
}