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"
}
}
]
}
Example Message
For a comprehensive DiagnosticReport-update
event, see below.
This event contains:
- An
ImagingStudy
resource - An
Observation
resource with a single measurement - An
Observation
resource with a related measurements - An
ImagingSelection
resource
{
"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"
}
}
]
}
}
]
}
}
]
}
}