# FHIR OBSERVATION for Image Finding ###### tags: `FHIR` `FHIR_Observation` ###### Background: ![](https://i.imgur.com/4mG2Rza.jpg) <center>Figure 1. Image annotation</center> `Situation:` > Doctors sometimes diagnose and treat diseases based on the patient's medical imaging. > The Radiologist is the doctor who supervises these exams, reads, interprets the images, and writes a report to the main doctor. > When a radiologist wants to make a report of a medical image (CT, MRI, X-Ray, etc). Doctor need to display medical imaging, then annotate the abnormality occurence on the image, once there is an annotation, the doctor can write a image finding report based on the annotation. > * ==From the perspective of FHIR Resource==, FHIR ImagingStudy must be established before FHIR Observation for record anotation be established, and FHIR Observation for image finding can be established only after FHIR Observation for annotation is established > * FHIR Observation (annotation) will refer to FHIR ImagingStudy and FHIR Observation (image finding) will refer to FHIR Observation (annotation) ([Figure 1.](https://hackmd.io/zd9YYcQuTfSm3-HX9WF0ug?both#Background)) `You need to know...` ![](https://i.imgur.com/jFWpRM1.png) ## :memo: FHIR OBSERVATION INTRODUCTION ### What is FHIR Observation? * A resource used for ==capturing measurements== and subjective point-in-time assessments which can support <ins>diagnosis and monitor progress</ins> * ==FHIR Observation== can be use to record: + Vital signs such as body weight, blood pressure, and temperature + Laboratory Data like blood glucose, or an estimated GFR + Imaging results like bone density or fetal measurements + Clinical Findings* such as abdominal tenderness + Device measurements such as EKG data or Pulse Oximetry data + Clinical assessment tools such as APGAR or a Glasgow Coma Score + Personal characteristics: such as eye-color + Social history like tobacco use, family support, or cognitive status + Core characteristics like pregnancy status, or a death assertion * FHIR Observation is ==XML/JSON formated== * FHIR Observation is ==not intended== to be used for those specific contexts and use cases already covered by other FHIR resources, such as patient allergies ([AllergyIntolerance](https://www.hl7.org/fhir/allergyintolerance.html)), patient medications ([MedicationStatement](https://www.hl7.org/fhir/medicationstatement.html)), patient's family history ([FamilyMemberHistory](https://build.fhir.org/familymemberhistory.html)), procedure ([Procedure](https://www.hl7.org/fhir/procedure.html)), set of answers to a set of questions([QuestionnaireResponse](https://www.hl7.org/fhir/questionnaireresponse.html)), patient condition ([Condition](https://www.hl7.org/fhir/condition.html)) * FHIR Observation is ==often referenced== by the ([Condition](https://www.hl7.org/fhir/condition.html)) and [DiagnosticReport](https://www.hl7.org/fhir/diagnosticreport.html) resource for record specific subjective and objective data to support its assertions [FHIR Observation 參考](https://www.hl7.org/fhir/observation.html) ### When do we use FHIR Document? * When you want to ==collect information== from a ==measurement or observation== Example: body weight, blood pressure ## :memo: Other Resources and Element used by FHIR Observation (for Image Finding Report) ### [FHIR Observation](https://www.hl7.org/fhir/observation.html) Main Element (for image finding report) | Element Name | Definition | Value | Necessary | |:------------------------------------------------------ | ------------------------------------------------------------------------------------------- |:----------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | | resourceType | Resource type | Observation | R | | [identifier](https://hackmd.io/@w7Qw2wVXT6-Smrvv3RWxEQ/S1YbQmwzY?both#Bundle-required-to-have-identifier-contain-system-amp-value) | digital certificate number | Measurement ID number| R | | identifier[0].system | Before the government decide to unified and standardized, it is recommended to obtain the website of the institute who create the observation | http://127.0.0.1:5500/MedicalImagingExamWorkflow-main/findingReport/MammoMass.html | R | | identifier[0].value | Global ==unique identification code==, suggestion: Indonesia.MedicalInstitutionCode. IssueDate.Year.Month.Day.Hour.Minute.Second.Millisecond.SerialNumber, or custom unique identification code | IDN.0617060018.20210722143000888.001, mass | R | | status | The status of the result value | registered, preliminary, final, amended + | R | | code | Type of observation (code / type) | | R | | code.coding[0].system | Website url of the code system that identify the code | http://hl7.org/fhir/STU3/valueset-observation-codes.html | R | | code.coding[0].code | The code of observation type | RID39055 | R | | code.coding[0].display | The display name of the observation type | Physical findings of Breasts Narrative | R | | subject | The subject of the observation | Other resources : Group, Patient, Devive, Location (Ex: Patient/7405) | R | | derivedFrom[0].reference | Related annotation the observation report is made from | Observation/7411 | R | | component | To record multi measurment result | | O | #### FHIR Observation additional element for **Mammo Mass** Image Finding report ![](https://i.imgur.com/sk18Oq3.png) | Element Name | Definition | Value | Necessary | |:------------------------------------------------------ | ------------------------------------------------------------------------------------------- |:----------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | |... (Observation for image finding report) | | | | | component[0].code.coding[0].system | Website url of codesystem/valueset used to define Bodysite literality value | http://hl7.org/fhir/valueset-bodysite-laterality.html | R | | component[0].code.coding[0].code | Bodysite literality code value | MB | R | | component[0].code.coding[0].display | The display name of the bodysite laterality value | Bilateral | R | | component[1].code.fhir_comments | Fhir comment used to describe the component | Location | R | | component[1].code.coding[0].system | Website url of codesystem/valueset used to define Location value | http://203.64.84.218/mammoDicomWebviewer/newCodeSystem/LocationCS.html | R | | component[1].code.coding[0].code | Location code value | breast.left.uoq | R | | component[1].code.coding[0].display | The display name of the location value | Upper outer quadrant of left breast | R | | component[2].code.coding[1].fhir_coments | Fhir comment used to describe the component | One view Only | R | | component[2].code.coding[1].system | Website url of codesystem/valueset used to define location value | HemisphereCS | R | | component[2].code.coding[1].code | Hemisphere code value | UH | R | | component[2].code.coding[1].display | The display name of the hemisphere value | Upper_hemisphere | R | | component[3].code.coding[0].system | Website url of codesystem/valueset used to define size value | SizeCS | R | | component[3].code.coding[0].code | Size code value | 3-4 cm | R | | component[3].code.coding[0].display | The display name of the size value | 3-4 cm | R | | component[4].code.coding[0].system | Website url of codesystem/valueset used to define shape value | http://hl7.org/fhir/us/breast-radiology/2019Sep/ValueSet-breastrad-ShapeVS.html | R | | component[4].code.coding[0].code | Shape code value | IrregularShape | R | | component[4].code.coding[0].display | The display name of the shape value | Neither round nor oval | R | | component[5].code.coding[0].system | Website url of codesystem/valueset used to define margin value | http://hl7.org/fhir/us/breast-radiology/2019Sep/ValueSet-breastrad-MarginVS.html | R | | component[5].code.coding[0].code | Margin code value | ObscuredMargin | R | | component[5].code.coding[0].display | The display name of the margin value | ObscuredMargin | R | | component[6].code.coding[0].system | Website url of codesystem/valueset used to define density value | http://hl7.org/fhir/us/breast-radiology/2019Sep/ValueSet-breastrad-AbnormalityDensityVS.html | R | | component[6].code.coding[0].code | Density code value | FatContaining | R | | component[6].code.coding[0].display | The display name of the density value | Includes all masses containing fat, such as oil cyst, lipoma, or galactocele as well as mixeddensity lesions such as hamartoma. | R | Click here to look up [FHIR Observation (Image Finding Report) example](http://203.64.84.213:8080/fhir//Observation/7412). ### [FHIR Observation](https://www.hl7.org/fhir/observation.html) Main Element (for annotation) ![](https://i.imgur.com/jGYfoOu.png =400x400) | Element Name | Definition | Value | Necessary | |:------------------------------------------------------ | ------------------------------------------------------------------------------------------- |:----------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | | resourceType | Resource type | Observation | R | | [identifier](https://hackmd.io/@w7Qw2wVXT6-Smrvv3RWxEQ/S1YbQmwzY?both#Bundle-required-to-have-identifier-contain-system-amp-value) | digital certificate number | Measurement ID number| R | | identifier[0].system | Before the government decide to unified and standardized, it is recommended to obtain the website of the institute who create the observation | http://127.0.0.1:5500/MedicalImagingExamWorkflow/systemA.html | R | | identifier[0].value | Global ==unique identification code==, suggestion: Indonesia.MedicalInstitutionCode. IssueDate.Year.Month.Day.Hour.Minute.Second.Millisecond.SerialNumber, or custom unique identification code | IDN.0617060018.20210722143000888.001, 1.3.6.1.4.1.5962.99.1.392793638.85272995.1542286085670.3.0 | R | | basedOn | The reason for doing measurement (fulfills plan, proposal or order) | Other resources : CarePlan, MedicalRequest, DeviceRequest, etc | R | | status | The status of the result value | registered, preliminary, final, amended + | R | | category | Classification of type of observation | https://www.hl7.org/fhir/valueset-observation-category.html | R | | category[0].coding[0].system | Website url of the code system that identify the code | https://www.dicom.org.tw/cs/imaging | R | | category[0].coding[0].code | The code of observation type | imaging | R | | code | Type of observation (code / type) | | R | | code.coding[0].system | Website url of the code system that identify the code | https://www.dicom.org.tw/cs/imaging | R | | code.coding[0].code | The code of observation type | MR | R | | subject | The subject of the observation | Other resources : Group, Patient, Devive, Location (Ex: Patient/7405) | R | | derivedFrom[0].reference | Related annotation the observation report is made from | ImagingStudy/757 | R | | component | To record multi measurment result | | O | #### FHIR Observation additional element for **Annotation** | Element Name | Definition | Value | Necessary | |:------------------------------------------------------ | ------------------------------------------------------------------------------------------- |:----------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | |... (Observation for annotation) | | | | | component[0].code.coding[0].system | Website url of codesystem/valueset used to define SVG value | https://www.dicom.org.tw/SVG | R | | component[0].code.coding[0].code | SVG code value | SVG.Annotation | R | | component[0].code.coding[0].display | The display name of the SVG value | SVG Annotation | R | | component[0].valueString | SVG string value | PHN2ZyB3aWR0aD0iMTkxNCIgaGVpZ2h0PSI2MDAiPjxsaW5lIHgxPSIxMjE3IiB5MT0iNzc5IiB4Mj0iMTQxNiIgeTI9IjEzODQiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg== | R | | component[1].code.coding[0].system | Website url of codesystem/valueset used to define columns value | https://www.dicom.org.tw/Columns | R | | component[1].code.coding[0].code | Columns code value | Columns | R | | component[1].code.coding[0].display | The display name of the columns value | viewPort.sx | R | | component[1].valueString | Viewport.sx string value | 1914 | R | | component[2].code.coding[1].system | Website url of codesystem/valueset used to define rows value | https://www.dicom.org.tw/Rows | R | | component[2].code.coding[1].code | Rows code value | Rows | R | | component[2].code.coding[1].display | The display name of the rows value | viewPort.sy | R | | component[2].valueString | Viewport.sy string value | 2294 | R | | component[3].code.coding[0].system | Website url of codesystem/valueset used to define window level value | https://www.dicom.org.tw/WindowLevel | R | | component[3].code.coding[0].code | Window level code value | WindowCenter | R | | component[3].code.coding[0].display | The display name of the window level value | WindowCenter | R | | component[3].valueString | Window center string value | 2587 | R | | component[4].code.coding[0].system | Website url of codesystem/valueset used to define window level value | https://www.dicom.org.tw/WindowLevel | R | | component[4].code.coding[0].code | Window level code value | WindowWidth | R | | component[4].code.coding[0].display | The display name of the window level value | WindowWidth | R | | component[4].valueString | Window width string value | 900 | R | | component[5].code.coding[0].system | Website url of codesystem/valueset used to define OffsetOfPixelData value | "https://www.dicom.org.tw/OffsetOfPixelData | R | | component[5].code.coding[0].code | OffsetOfPixelData code value | OffsetOfPixelData | R | | component[5].valueString | OffsetOfPixelData string value | 29247 | R | | component[6].code.coding[0].system | Website url of codesystem/valueset used to define Dicom file value | https://www.dicom.org.tw/DCM_File | R | | component[6].code.coding[0].code | Dicom file code value | DCM File | R | | component[6].code.coding[0].display | The display name of the Dicom file value | DCM File | R | | component[6].valueString | Dicom file string value | http://203.64.84.218:8080/orthanc/dicom-web/studies/1.3.6.1.4.1.5962.99.1.392793638.85272995.1542286085670.4.0/series/1.3.6.1.4.1.5962.99.1.392793638.85272995.1542286085670.5.0/instances/1.3.6.1.4.1.5962.99.1.392793638.85272995.1542286085670.3.0 | R | Click here to look up [FHIR Observation for annotation example](http://203.64.84.213:8080/fhir//Observation/7411). ### [FHIR ImagingStudy](https://www.hl7.org/fhir/imagingstudy.html) Main Element | Element Name | Definition| Value | Necessary | |:------------------------------------------------------ | ------------------------------------------------------------------------------------------- |:----------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | | resourceType | Resource type | ImagingStudy | R | | [identifier](https://hackmd.io/@w7Qw2wVXT6-Smrvv3RWxEQ/S1YbQmwzY?both#Bundle-required-to-have-identifier-contain-system-amp-value) | Identifiers for the whole study | Dicom study UID| R | | identifier[0].system | Before the government decide to unified and standardized, it is recommended to obtain the website of the institute who create the Dicom UID | urn:dicom:uid | R | | identifier[0].value | Dicom UID value| urn:oid:1.3.6.1.4.1.5962.99.1.392793638.85272995.1542286085670.4.0 | R | | status | The [status](https://www.hl7.org/fhir/valueset-imagingstudy-status.html) of the imaging study | registered, available, cancelled, entered-in-error, unknown | R | | subject | The subject of the study | Other resources : Group, Patient, Devive (Ex: Patient/TCUMI106.2714178950844984) | R | | started | Study started time | 2010-04-06T16:39:39+00:00 | R | | numberOfSeries | Number of study related series | 1 | R | | numberOfInstances | Number of study related instances | 4 | R | | series | Study series and instances detailed information | | R | Click here to look up [FHIR ImagingStudy example](http://203.64.84.213:8080/fhir/ImagingStudy/757). ### [FHIR PATIENT](https://www.hl7.org/fhir/patient.html) 主要欄位 | 欄位 | 定義 | 資料值 |採用必要 | |:-------------------------------------------------- | -------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | | resourceType | Resource 種類 | Patient | R | | name[0] | Name | Currently in Taiwan, Chinese name is used. Family, given name (when able to distinguish), text for full name | R | | name[1] | English name | 若出國使用需求由民眾提供護照姓名 | O | | identifier[0] | Domestic identification ID | Temporarily use MI-TW or ID card number | R | | identifier[1] | Foreign identification ID | Temporarily use MI-TW, or Passport | O | | gender | gender | male, female, other, unknown | R | | address.country | 國籍 | TW (ISO 3166) 暫時先簡化實作 | R | | birthDate | 出生年月日 | 2000-09-09 | R | Click here to look up [FHIR PATIENT example](http://203.64.84.213:8080/fhir//Patient/7405). ### FHIR Observation for Image Finding Report structure [FHIR Obserfation (Image Finding Report) JSON format example](http://203.64.84.213:8080/fhir//Observation/7412) #### FHIR Observation (Image Finding Report & annotation) **resourceType** is =="Observation"== ```json=17 "resourceType": "Observation", ``` #### FHIR Observation (Image Finding Report & annotation) & FHIR ImagingStudy reference to **its patient** ```json=18 ... "subject": { "reference": "Patient/7405" }, ... ``` #### FHIR Observation (Image Finding Report) reference to **its annotation** ```json=59 ... { "derivedFrom": [ { "reference": "Observation/7411" } ], ... ``` #### FHIR Observation (Image Finding Report) record multiple measurment result value in **component** elements ```json=59 ... "component": [ { "code": { "coding": [ { "system": "http://hl7.org/fhir/valueset-bodysite-laterality.html", "code": "MB", "display": "Bilateral" } ] } }, ... ``` #### FHIR Observation (Annotation) reference to **its image study** ```json=59 ... { "derivedFrom": [ { "reference": "ImagingStudy/757" } ], ... ``` #### FHIR Observation (Annotation) record annotation detailed information in **component** elements ```json=9 "component": [ { "code": { "coding": [ { "system": "https://www.dicom.org.tw/SVG", "code": "SVG.Annotation", "display": "SVG Annotation" } ] }, "valueString": "PHN2ZyB3aWR0aD0iMTkxNCIgaGVpZ2h0PSI2MDAiPjxsaW5lIHgxPSIxMjE3IiB5MT0iNzc5IiB4Mj0iMTQxNiIgeTI9IjEzODQiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==" }, ... ``` ## :memo: FHIR Resource Relation - 1-2-3-4 Represents the sequence of creating resources (Resources) ==FHIR Patient Resource== is created first to store patient data, after that, ==FHIR ImagingStudy Resource== is established to store image study information carried out by patients of a hospital. Once the FHIR ImagingStudy Resource created, the ==FHIR Observation (Annotation) Resource== can be generate to record the annotation information occurs on the single image. Once the ==FHIR Observation (Annotation)== Resource created, the ==FHIR Observation (Image Finding Report) Resource== can be generate to record the finding report information correspond to the annotation - This article describes the establishment of the ==FHIR Resource Obserfation (Image Finding Report) for Mammo Mass Report==. However, FHIR Observation can also be used to record other measurment report, such as Mammo Calcification, Mammo Focal assymmetry report, etc. ![](https://i.imgur.com/m65IMCQ.png) - Example url - Patient: http://203.64.84.213:8080/fhir//Patient/7405 - ImagingStudy: http://203.64.84.213:8080/fhir/ImagingStudy/757 - Observation (Annotation): http://203.64.84.213:8080/fhir//Observation/7411 - Observation (Image Finding Report): http://203.64.84.213:8080/fhir//Observation/7412 ## :memo: FHIR Observation REST API FHIR Observation search parameter,[this](https://www.hl7.org/fhir/observation.htmll)。 | Http Operation | <font color="blue">Service Base</font><font color="green">/Resource</font><font color="orange">/ID</font> | <font color="purple">Method</font> | |:-------------------------------------------------- | -------------------- | --------------------------------------------------------------------------------------------------------------- | | Post | <font color="blue">http://fhir.base.root</font><font color="green">/Observation</font> | <font color="red">C</font><font color="purple">reate</font> | | Get |<font color="blue">http://fhir.base.root</font><font color="green">/Observation</font><font color="orange">/ID</font>, <font color="blue">http://fhir.base.root</font><font color="green">/Observation</font><font color="orange">?condition=parameter</font>| <font color="red">R</font><font color="purple">ead</font> | ## :memo: DEMO & 練習 Please click on the link, [this](https://hackmd.io/@PrkKZKbZRXeOb7-0A7TqNg/BylORIrL9). ![](https://i.imgur.com/QkV4H4t.png)