지난 포스트에서 데이터개발 이야기에 앞서 레지스트리와 저반향병변의 개념을 소개했습니다.
이번 데이터개발은 기존에 이미 개발이 상당 부분 진행되어 있었기에, 해당 부분을 파악하고 필요한 추가작업을 진행하는 업무입니다. 기존에 진행되어 있는 부분에 대해서는 sql 소스만 있을 뿐 더 이상의 산출물이 없는 관계로 sql 을 보고 일일이 살펴보아야 했습니다.
1. 분석 대상 샘플 (예시)
영상검사 결과 영상을 전문의가 판독하여 텍스트로 작성한 판독지가 파싱의 대상입니다.
예컨대, 아래와 같은 내용이 포함되어 있습니다.
Hx. : high PSA (terminal dribbling - )
* prostate size : 21.7 g
* transition zone : 12.3 g
* prostatic calculi : (-)
* hypoechoic lesion : (-)
* median lobe : no protruding
* seminal vesicle : no dilatation
2. 목표 결과 (예시)
hypoechoic lesion : (-) 이므로 음성 즉 Negative 라는 결과로 추출하면 됩니다.
3. 개발된 소스 코드(일부분)
hypoechoic lesion 을 추출하기 위해 regular expression 을 사용하여 로직이 진행되고 있습니다.
아래 스샷은 빙산의 일각이 되겠습니다.
머리가 아프네요.
소스코드의 일부분에 대해 그 의도를 추정해보죠.
hypo|low
정규표현식으로서 hypo 또는 low 라는 의미입니다. 일반적으로는 hypoechoic 이지만 lowechoic 이라고 작성한 판독지가 있나 봅니다.
echoic|ehcoic|echogenic|cehoic
echoic 이 올바른 단어이지만 판독지에 오타가 많이 있나 봅니다. 사람이 작성하는 것이라 오류가 종종 있습니다. ehcoic 에서 hc 는 co 순서를 잘못 쓴 오타입니다. echogenic 은 오타는 아니지만 echoic 과 같은 말입니다.
hyper|hypo
정규표현식으로서 hyper 또는 hypo 라는 의미입니다.
hyper는 높다의 접두사로 정반대의 의미가 되지만 hypo 의 의도로 작성된 human error 에 해당하겠네요
anechoic
사전을 찾아보니 저-반향보다 한수 더 뜬 무-반향이라고 합니다.
저반향이 문제가 있다면 무반향도 당연히 저반향에 준해서 처리가 필요합니다.
사람이 손으로 작성한 텍스트에 대한 파싱이다 보니, 동일한 의미의 다양한 표현 들 및 오타까지 감안하여 특정 항목(여기에서는 저반향병변) 값을 추출하려다 보니 대단히 번거롭고 복잡한 코드가 되고 있습니다.
이번 포스팅에서는 기존 개발 내용의 분석 과정에 대한 대략적인 내용을 살펴보았고, 다음 포스팅에서는 좀 더 구체적으로 살펴보겠습니다.
'프리랜서 > CDW' 카테고리의 다른 글
데이터개발(저반향병변) 이야기 (4) (0) | 2023.02.14 |
---|---|
데이터개발(저반향병변) 이야기 (2) (1) | 2023.02.01 |
데이터개발(저반향병변) 이야기 (1) (0) | 2023.01.30 |
[데이터 개발] PSA nadir 구현 방법 (0) | 2022.09.26 |
NCCN Risk stratification (0) | 2022.08.11 |