---
title: FHIR Radiology-Image Finding form and Diagnostic Report Format
tags: fhir-module
---
FHIR Radiology-Image Finding form and Diagnostic Report Format
===
[TOC]
## Introduction
The Radiology report module covers the image finding form and diagnostic report format.
## Methods
### Pre-requisite
Before we start to define a finding form template, we must first specify these 3 items:
1. Body site (e.g. liver, breast, chest)
2. Finding type (e.g. mass, calcification, cyst)
3. Modality type (e.g. xray, CT, MRI)
As for the tutorial below, we are going to use ==Breast Mass (Mammography)== as the example.
### Step 1. Define finding form template
1.1 Find the source information related to Breast mass. Basically the purpose of this step is collect information about what kind of content usually shown in the finding form used by Radiologist. We can get the related information using this 2 options:
- Option 1: Website
e.g. [BI-RADS](https://radiologyassistant.nl/breast/bi-rads/bi-rads-for-mammography-and-ultrasound-2013)
- Option 2: Directly from the healthcare professional (e.g. Radiologist, Radiographer, etc.)
This is the quickest and clearest approach since those professional who works in radiology field are using the finding form in their daily activity.
1.2 Define the finding report template in excell table

### Step 2. Convert finding form template into FHIR Observation
2.1 Define the value set of each field
A value set is a list of specific values, terms, and their codes, used to describe clinical and administrative concepts in the quality measures. It's like the list of multiple choice answer, for example when the question is "Where is the location of the cancer?", the answer (or value set) might be on the left side, right side, center, and etc.
Value set example:
<table>
<tr><th colspan="2" style="text-align
:center">Location (src: http://MISAC.org/codeSystem/massLocation)</th></tr>
<tr>
<th style="text-align
:center">Code</th>
<th style="text-align
:center">Desc</th>
</tr>
<tr>
<td>breast.left.nipple</td>
<td>Left nipple</td>
</tr>
<tr>
<td>breast.right.nipple</td>
<td>Right nipple</td>
</tr>
<tr>
<td>breast.left.centralportion</td>
<td>left central portion</td>
</tr>
<tr>
<td>breast.left.uiq</td>
<td>left uiq</td>
</tr>
<tr>
<td>Other</td>
<td>Other (specify)</td>
</tr>
</table>
<table>
<tr><th colspan="2" style="text-align
:center">Margin (src: http://MISAC.org/codeSystem/massMargin)</th></tr>
<tr>
<th style="text-align
:center">Code</th>
<th style="text-align
:center">Desc</th>
</tr>
<tr>
<td>CircumscribedMargin</td>
<td>Circumscribed Margin</td>
</tr>
<tr>
<td>MicrolobulatedMargin</td>
<td>Microlobulated Margin</td>
</tr>
<tr>
<td>ObscuredMargin</td>
<td>Obscured Margin</td>
</tr>
<tr>
<td>IndistinctMargin</td>
<td>Indistinct Margin</td>
</tr>
<tr>
<td>SpiculatedMargin</td>
<td>Spiculated Margin</td>
</tr>
</table>
2.2 Convert finding template into FHIR Observation
```gherkin=
{
"resourceType": "Observation",
"status": "final",
"code": {
"coding": [ {
"system": "http://MISAC.org/codeSystem/ObservationCodes",
"code": "abnormalityMassObservation",
"display": "Abnormality Mass observation"
} ],
"text": "Mass"
},
"subject": {
"reference": "Patient/2"
},
/*LOCATION*/
"bodySite": {
"coding": [ {
"system": "http://MISAC.org/codeSystem/massLocation",
"code": "breast.left.nipple",
"display": "Left nipple"
} ],
"text": "Left Lobe"
},
/*END LOCATION*/
"derivedFrom": [ {
"reference": "Observation/20"
} ],
"component": [ {
/*SIZE*/
"code": {
"coding": [ {
"system": "http://MISAC.org/codeSystem/massSize",
"code": "mass.size",
"display": "mass.size"
} ]
},
"valueQuantity": {
"value": 3.5,
"unit": "cm",
"system": "http://unitsofmeasure.org",
"code": "cm"
}
/*END SIZE*/
}, {
/*SHAPE*/
"code": {
"coding": [ {
"system": "http://MISAC.org/codeSystem/massShape",
"code": "mass.shape",
"display": "mass.shape"
} ]
},
"valueCodeableConcept": {
"coding": [ {
"system": "http://snomed.info/sct",
"code": "IrregularShapedLesion",
"display": "Irregular shaped lesion"
} ]
}
/*END SHAPE*/
}, {
/*MARGIN*/
"code": {
"coding": [ {
"system": "http://MISAC.org/codeSystem/massMargin",
"code": "mass.margin",
"display": "mass.margin"
} ]
},
"valueCodeableConcept": {
"coding": [ {
"system": "http://MISAC.org/codeSystem/massMargin",
"code": "MicrolobulatedMargin",
"display": "Microlobulated Lobe"
} ]
}
/*END MARGIN*/
}, {
/*DENSITY*/
"code": {
"coding": [ {
"system": "http://MISAC.org/codeSystem/massDensity",
"code": "mass.density",
"display": "mass.density"
} ]
},
"valueCodeableConcept": {
"coding": [ {
"system": "http://MISAC.org/codeSystem/massDensity",
"code": "HighDensity",
"display": "High Density"
} ]
}
/*END DENSITY*/
} ]
}
```
src: https://hapi.fhir.org/baseR4/Observation/6948019
### Step 3: Design finding form in HTML table
3.1 Design breast image finding and diagnostic form into an HTML table. E.g. Mass finding form

3.2 Code with javascript to convert the form value into FHIR Observation JSON format and uploaded into FHIR Server after the radiologist click the submit button
### Step 4. Define diagnostic report template
This step works the same as step 1. The main difference is the report type, in step 1 we define the finding form. Meanwhile in step 4 we define the diagnostic report template.
### Step 5. Convert diagnostic report into [FHIR DiagnosticReport](https://www.hl7.org/fhir/diagnosticreport.html)
E.g. https://hapi.fhir.org/baseR4/DiagnosticReport/misac.report.radiology01
### Step 6: Design diagnostic report into HTML table
E.g. Diagnostic report form

## 💡 What's Next?
Let's join us in defining the specification of other structured report type!
* [[draft] FHIR SR - Bone Mineral Density (BMD)](https://hackmd.io/@victoriatjia/fhir-sr-bmd)
* [[draft] FHIR SR - Chest Xray](https://hackmd.io/@victoriatjia/fhir-sr-chest-xray)
* [[draft] FHIR SR - Liver](https://hackmd.io/@victoriatjia/fhir-sr-liver)