Skip to content

통계 뷰어 컴포넌트 작성하기 #238

@BEOKS

Description

@BEOKS

Description

주어지는 데이터는 환자의 정보를 다루고 있는 메타데이터입니다. 이 데이터를 영상의학과 선생님들과 머신러닝 엔지니어들이 쉽게 확인하기 위해서는 시각화가 필요합니다. 주어진 메타데이터를 props로 입력받아 시각화 자료를 보여주는 Component를 생성해주세요.

Json Data

사용해야 할 데이터는 레포지토리에 저장되어 있습니다.
Json 데이터는 아래와 같이 한 명의 메타데이터가 리스트 형태로 주어져 있습니다.
내부의 데이터는 크게 Number,String형태로 나뉘어 있습니다. 이 중, String 데이터의 경우 카테고리화가 적용되어 있습니다.
또 한, 각각의 메타데이터는 동일한 key를 보유하고 있습니다. value의 경우 데이터가 존재하지 않는 경우가 존재합니다.

카테고리화는 전체 데이터가 몇 개의 분류로 나뉘어 있는 것을 의미합니다.

[
  {
   "stored_dicom_id": 145125,
    "anonymized_id": 1028011,
    "age": 53,
    "modality": "MG",
    "manufacturer": "HOLOGIC, Inc.",
    "manufacturerModelName": "Lorad Selenia",
    "class\nnon-pCR: 0 pCR: 1": 0,
    "left: 0\nright: 1": 1,
    "ER": 1,
    "PR": 1,
    "HER2": 1,
    "non-IDC: 0\nIDC: 1": 1,
    "compressionForce": 173.5019
  },
  {
   "stored_dicom_id": 145135,
    "anonymized_id": 1106526,
    "age": 56,
    "modality": "MG",
    "manufacturer": "HOLOGIC, Inc.",
    "manufacturerModelName": "Lorad Selenia",
    "class\nnon-pCR: 0 pCR: 1": 1,
    "left: 0\nright: 1": 0,
    "ER": 0,
    "PR": 0,
    "HER2": 0,
    "non-IDC: 0\nIDC: 1": 1,
    "compressionForce": 115.6019
  },
...
...

Result

아래는 다른 툴을 통해서 만든 시각화 예시입니다. 더 유용하거나 적절한 표현방식이 있다면 이를 적용해도 됩니다.

  1. Number 시각화 예시
    Json에서 숫자 형태로 데이터가 존재하는 경우 아래와 같이 히스토그램을 작성하도록 합니다.
    image
  2. String 시각화 예시
    위에서 언급했든, String 형태의 데이터는 카테고리화가 적용되어 있습니다. 비율이 어느정도인지 파악하기 위한 그래프를 작성하도록 합시다.
    image

Condition

  1. 작성할 컴포넌트는 json 데이터를 props로 받아서 처리해야 합니다.
<VisualTable data={metadataJson}/>
  1. 컴포넌트와 관련된 코드는 src/VisualTable 폴더를 만들어 내부에 작성합니다.
  2. 컴포넌트 코드는 VisualTable.js를 만들어 작성합니다.
  3. 작성된 컴포넌트는 다른 사용자가 쉽게 import 할 수 있어야 합니다.
//example in App.js
import VisualTable  from './VisualTable/VisualTable'
function(metadataJson){
    return <VisualTable data={metadataJson}/>
}

After

코드 작성을 모두 마친 후에는 카톡으로 연락해주세요

Tip

이미 React에는 좋은 디자인으로 구현된 라이브러리들이 많습니다. 구글링을 통해서 유용한 라이브러리들을 참고하는 것을 추천합니다. 아래는 참고하기 좋은 링크를 일부 첨부합니다.

  1. https://devexpress.github.io/devextreme-reactive/react/chart/docs/guides/zoom-and-pan/
  2. https://www.chartjs.org/docs/latest/getting-started/usage.html

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions