FluidTrack / MOA_garden

Fluid Track Unity Application
MIT License
0 stars 0 forks source link

[Question] 환자가 치료를 연장하게 되면 정원 확장은 어떻게 되나요? #108

Closed junhyungmoon closed 3 years ago

junhyungmoon commented 3 years ago

환자들은 28일(4주)을 딱 맞추고 29일째 되는날 즉시 병원에 와서 진료를 받지 않습니다. 대략 3~5주차 정도에 시간이 되는 날 약속을 잡고 옵니다.

그래서 환자 부모님께 28일째 되는날 안내하여 6주 view 로 바로 변경해 놓아야 할 것 같습니다. 질문1) 이렇게 하려면 APK 를 새로 배포하는 식으로 해야할까요? 이 것도 미리 연습해봐야 합니다.

그리고 이걸 보기위해 제가 파일럿 참가자(ID: 110) 세트를 초기화 하지 않았는데, 문제는 1.0.13 버전입니다. 1.0.14버전에서 앱을 지워야만 업데이트가 가능했는데, 이러면 다시 초기화를 해야해서 위 상황을 볼 수 없게됩니다.

질문2) 위와 같이 앱을 초기화 했을때, DB에서 기존 데이터를 연동시킬 방법이 없을까요?

KimYC1223 commented 3 years ago

답변


1 . 이렇게 하려면 APK 를 새로 배포하는 식으로 해야할까요?

아닙니다.

image

DB페이지에서 period를 수정한 뒤, 앱을 켜면 해당 주차로 반영됩니다. (4,6,8)


2 . 위와 같이 앱을 초기화 했을때, DB에서 기존 데이터를 연동시킬 방법이 없을까요?

앱을 삭제 했을때, 기존 데이터와 연동시키는 방법은... 현재로서는 없습니다.

이럴 경우 새로 기능을 만들어야 합니다.

만들어야 할까요?

junhyungmoon commented 3 years ago

직접 해봤다가 복구가 안되면 4주치 데이터는 엄청난 양이라서 질문을 먼저 합니다.

태블릿A(1.0.13버전, 밴드A)과 태블릿B(1.0.16버전, 밴드B)이 있습니다. 제가 DB의 user table 에서 밴드B를 밴드A로 수정하고나서 태블릿B를 켜면 밴드A의 데이터가 보이지 않을까요?

기능을 구현하는 것은 별로인것 같고, DB연동이 안되면 연구원들이 나눠서 4주치 데이터를 직접 생성하게 할 생각입니다.

junhyungmoon commented 3 years ago

제가 바로 윗 댓글에서 말한건 집에 있는 개인 태블릿으로 해봤는데 안되네요

KimYC1223 commented 3 years ago

DB의 user table에서 밴드를 바꾼다 한들, 이미 기록된 데이터는 변경되지 않습니다.

대신 밴드 B를 A로 수정한다면 태블릿 B는 자동으로 밴드를 연결 하려고 할 때, 밴드 A를 찾게 될겁니다.

image

user_table이 아닌 다른 로그들을 보면,

log_id와 id가 있는 것을 볼 수 있습니다. log_id는 각 로그를 식별 할 수 있는 고유한 번호이고,

id는 해당 로그의 주인 id를 나타냅니다. (user table의 id)

따라서 로그의 id값을 변경하지 않으면, 의미 없습니다.


단, 이렇게 로그마다 일일히 주인을 바꿔 줄 경우, 시간도 복잡하고 어려울 수 있습니다.

대신, 다른 방법이 하나 있는데요,

현재 앱이 동작하는 모습은 이렇습니다.

image

그런데, 1번 과정에서 userData.dat 파일이 없으면,

이는 회원가입이 진행된 적 없는, 새로 설치 또는 삭제 후 설치한 다음 실행한 경우 이므로,

이때에는 서버로 요청을 보내지않고 회원가입 페이지를 출력하게 됩니다.

따라서, 회원가입 화면을 출력할 때, 유저 id를 입력 할 수 있는 UI를 만들고,

해당 유저 id가 실제 서버에 있으면, 회원가입을 중단하고 입력한 id를 userData.dat에 기록하는 방법으로

이전 데이터를 가져올 수 있습니다.


애초에 https://github.com/FluidTrack/MOA_garden/issues/19#issuecomment-877822398에서도 만드려고 했던 기능이니,

그냥 제가 한번 기능을 추가해보도록 하겠습니다.

junhyungmoon commented 3 years ago

데이터를 이전시키려면 water, pee, poo, drink 테이블의 id 와 user table 에서 시작날짜를 바꿔주면 되네요

예시: 태블릿A(id=1, 9월 1일 시작)과 태블릿B(id=2, 9월 5일 시작)

태블릿A에서 밤 10시에 기록한 water log 한개를 DB상에서 id 를 2로 바꿔주고, 태블릿B의 시작일자를 DB상에서 9월 4일로 바꾼 후에 태블릿B를 켜니까 데이터가 옮겨집니다.

water, pee, poo, drink 테이블의 id 를 일괄 변경시킬 수 있는 콘솔 및 명령어가 있을까요?

junhyungmoon commented 3 years ago

영찬학생이 말한 방식은 앱 자체를 많이 건드리게 될 것 같아서 좀 조심스러운데, 혹시 제가 이전 댓글에 말한것처럼 특정 상황에서만 보고 싶을때 명령어로 id 변경하는 식으로는 보기 어려울까요?

KimYC1223 commented 3 years ago

해당 기능은 앱과 무관하므로,

일단 17버전 릴리즈 진행 후 마무리하겠습니다.

KimYC1223 commented 3 years ago

문제 해결

image

이제 DB 웹의 user tableData Transfer 이라는 버튼이 생겼습니다.

image

이제 데이터를 옮길 수 있습니다. 실제로 더미 데이터를 만들어 확인해보시면 됩니다.

이를 통해 질문 2번 위와 같이 앱을 초기화 했을때, DB에서 기존 데이터를 연동시킬 방법이 없을까요?를 해결 할 수 있습니다.

junhyungmoon commented 3 years ago

Transfer 기능중 한가지가 누락되어서 알려드립니다. 데이터들은 이전이 되는데, DB 의 user table 의 creation date 은 변경되지 않습니다. 처음엔 이전 자체가 안되나 싶었는데, DB 에서 creation date 만 맞게 수동으로 변경하니까 이전은 잘 되네요^^