지난 번 UCLA 병원에 갔을 때 공개용 DB에서는 날짜를 shift 한다고 했다. 생년월일을 변동 주는 것은 좀 고민해 봐야할 것 같다. 일단 날짜에 집중하기로 했다. 아직 완전하게 구현한 것은 아니지만, 원래 OMOP CDM에 들어가는 날짜는 date 속성으로 지정을 했으면, 덧셈과 뺄샘이 된다. 특정인에 따른 shift 값을 지정할 수 있으면 일일이 더해주거나 빼주는 방법을 이용하면 될 것 같다. 그래서 -180~180일 변동을 줄 수 있도록 코드를 작성해 보았다. 이 경우에는 361개를 만든 후에 181을 빼주면 편하게 할 수 있다. +1을 빼면 180을 빼도 될 것 같다.
CREATE TABLE mapping.person_anonymous_day_shift AS (SELECT trunc(random() * 361 + 1) - 181 AS day_shift FROM generate_series(1, (SELECT COUNT(*) FROM mapping.person_anonymous)));
생각해보니 person 테이블이 연도는 -5~5정도로 변동을 주고 월과 날짜는 그냥 1~12와 1~28 정도로 임의로 할당해도 전혀 문제가 없을 것 같다.