PSA Nadir 개념
PSA nadir 는 전립선비대증이나 전립선암 치료(수술이나 RT)후에 측정한 PSA 수치중 최저값을 의미합니다.
개념은 단순한 것 같지만, SQL 개발을 위한 엄밀한 정의는 복잡해집니다.
최저값 산출의 대상이 되는 범위 결정이 필요합니다.
치료 이후부터 언제까지를 대상으로 할지가 문제입니다.
치료 이후 결과가 좋아서 0.3 최저 찍고 치료를 종료하였는데 몇 년이 지나 재발하여 다시 증가해서 치료받고 예전 최저치보다 더 낮은 수치인 0.1로 떨어졌다고 가정해보죠.
여기에서 구하고자 하는 최저치는 0.1 이 아닌 0.3 입니다.
PSA 수치도 검사 장비의 성능에 따라 정밀도가 달라지므로, 어느 정도 수준으로 판단할지도 정리가 필요할 수 있습니다.
0.01 수준으로 측정되는 장비를 사용하는 경우 실제로는 0.003 일 수 있는데 0.01로 측정되었고,
일주일 후 0.001 로 측정되는 고성능의 장비로 측정하여 0.009 가 나왔다고 가졍해보죠.
형식적으로는 0.01 다음 0.009 이므로 0.009 가 최소값이지만 실제로는 0.01 이 PSA nadir 입니다.
참고를 위해 PSA nadir 와 관련된 글 몇 개를 링크합니다.
https://www.goldjournal.net/article/S0090-4295(17)30742-2/fulltext
https://blog.naver.com/urobyun/222138778201
데이터 개발 요건 정의
PSA Nadir 는 수술이후부터 추가적인 치료 이전까지의 기간에 측정된 PSA 수치중 가장 작은 값으로 한다.
다만, PSA 가 0.01 이하이면 최초 수치를 Nadir 로 간주한다.
INPUT_DATA
1,2 두 환자(ID) 모두 2022년 01월 04일 수술을 받았다. 수술직후를 포함하여 4~5회의 검사를 했다.
목표 결과
1번 환자는 2월5일 0.3
2번 환자는 2월6일 0.009 이다.
SQL 구현
WITH INPUT_DATA AS(
SELECT 1 AS ID,'20220104' AS DD, 0.5 AS PSA FROM DUAL
UNION ALL SELECT 1 AS ID,'20220205' AS DD, 0.3 AS PSA FROM DUAL
UNION ALL SELECT 1 AS ID,'20220510' AS DD, 0.4 AS PSA FROM DUAL
UNION ALL SELECT 1 AS ID,'20220515' AS DD, NULL AS PSA FROM DUAL
UNION ALL SELECT 1 AS ID,'20220720' AS DD, 0.35 AS PSA FROM DUAL
UNION ALL SELECT 2 AS ID,'20220105' AS DD, 0.05 AS PSA FROM DUAL
UNION ALL SELECT 2 AS ID,'20220206' AS DD, 0.009 AS PSA FROM DUAL
UNION ALL SELECT 2 AS ID,'20220207' AS DD, 0.008 AS PSA FROM DUAL
UNION ALL SELECT 2 AS ID,'20220511' AS DD, 0.005 AS PSA FROM DUAL
UNION ALL SELECT 2 AS ID,'20220721' AS DD, 0.02 AS PSA FROM DUAL
)
--select * from INPUT_DATA
, STEP1 AS (
SELECT ID,DD,PSA
,CASE WHEN PSA < 0.01 THEN 0.01 ELSE PSA END AS ADJ_PSA -- 0.01 이하는 0.01 로 본다. 조정된(ADJusted) PSA
FROM INPUT_DATA
)
--select * from STEP1
,STEP2 AS (
SELECT ID,DD,PSA,ADJ_PSA
-- (조정된)PSA 기준으로 가장 낮은 값일 때의 첫번째 일자
,FIRST_VALUE(DD) OVER (PARTITION BY ID ORDER BY ADJ_PSA) AS NADIR_DATE
FROM STEP1
)
--select * from STEP2
SELECT
ID
--,MIN(ADJ_PSA) AS NADIR_PSA
,MIN(PSA) AS NADIR_PSA
,MIN(NADIR_DATE) AS NDIR_DATE
FROM STEP2
WHERE DD = NADIR_DATE
GROUP BY ID
'프리랜서 > CDW' 카테고리의 다른 글
데이터개발(저반향병변) 이야기 (2) (1) | 2023.02.01 |
---|---|
데이터개발(저반향병변) 이야기 (1) (0) | 2023.01.30 |
NCCN Risk stratification (0) | 2022.08.11 |
전립선비대증 진단 IPSS (0) | 2022.08.09 |
전립선암 분자진단/암유전자 검사를 받는 것이 좋을까요? (0) | 2022.08.02 |