제임스딘딘의
Tech & Life

수행 프로젝트 이력/Smart Doctor (AndroidApp)[2010.06~09月]

[결과물] 스마트닥터

제임스-딘딘 2011. 10. 27. 00:19

2010년 7월 ~ 10월 수행.
안드로이드, 자바를 배우면서 수행한 프로젝트.

수행인원
 5명 (디자인 1.5명, 기능구현 3.5명) 

맡았던 부분
 - 질병정보 데이터베이스 설계 및 App에서의 구현
 - 건강뉴스 XML 파싱 및 뉴스 스크랩 기능 구현
 - 병원 정보 XML 파싱 결과에 구글 지도 연동 (병원 별 마커 표시 등)

 

- 메인메뉴



- 자가진단
본 프로젝트에 내가 맡은 파트중 가장 첫번째로 구현한 부분이다.
안드로이드도 처음, 자바도 처음, 데이터베이스도 실제 구현해본 경험이 없는 상태였기에 구현에 많은 고생을했다.

우선 자가진단 DB는 4개의 테이블로 되어있다.


위 4개의 테이블이 기능 flow에 따라 아래와 같이 보여지며 진행된다.
 


자신의 몸에 이상증상이 나타날 경우, 의심되는 질병을 진단하도록 한다.

머리가 아플경우, 배가 아플경우, 무릎이 아플경우, 등등 이상증상이 발생한경우

머리, 배, 무릎 등의 신체의 부위를 입력받고, 그 부위에서 발생한 증상을 입력받는다.

입력 정보를 기초로 하여, 예 ‧ 아니오 로 답할 수 있는 몇가지 질문을 통해 사용자의 대답을 입력받는다.

최종적으로는 이러한 정보를 종합하여 의심되는 질환/질병을 사용자에게 알려준다.

추가적으로 진단결과를 기반으로 가까운 병원을 검색할 수 있다.




 - 병원찾기
 >>> 현재 위치 기반 :
안드로이드폰의 GPS, WiFi, 3G 등을 통해 현재 사용자의 위치정보를 파악한다.
이 정보를 기반으로 주변에 있는 병원을 찾아서 목록으로 보여준다.

이 기능은 자가진단의 결과와 현재위치를 조합하여 병원을 검색하기때문에 자가진단 결과화면에서만 수행할 수 있다.

검색된 병원 목록에서 선택을 하면 메뉴를 통해 여러 기능을 수행한다.
- 선택된 병원의 위치를 시각정보(지도)로 보여준다.
- 선택된 병원의 상세정보(전화번호, 주소, 원장 이름, 진료 과목 등)를 보여준다.
- 선택된 병원을 나중에 검색하지 않고도 정보를 볼 수 있도록 스크랩할 수있다.
- 선택된 병원에 바로 전화를 걸 수 있다.

 >>> 주소지정 :
 시/도, 구/시/군, 읍/면/동 으로 나누어 주소를 입력받는다.
사용자가 입력한 주소를 기반으로 주변 병원을 검색한다.

검색된 병원 목록에서 선택을 하면 메뉴를 통해 여러 기능을 수행한다.
- 선택된 병원의 위치를 시각정보(지도)로 보여준다.
- 선택된 병원의 상세정보(전화번호, 주소, 원장 이름, 진료 과목 등)를 보여준다.
- 선택된 병원을 나중에 검색하지 않고도 정보를 볼 수 있도록 스크랩할 수있다.
- 선택된 병원에 바로 전화를 걸 수 있다.

 
 


진료과목, 시/도, 구/군, 읍/면/동 을 선택하여 병원을 검색할 수 있다.
병원 검색결과에서, 특정병원을 선택하면 팝업메뉴가 생성되고 원하는 동작을 수행할 수 있도록 사용자의 선택을 기다린다.
 

지도로보기, 병원 상세 정보 보기 두가지 동작 화면이다.


 - 건강뉴스 및 스크랩북 기능
건강뉴스기능은 www.kormedi.com 에서 제공하는 건강뉴스를 수신한다.
사용자에게 업데이트메뉴를 제공해 원하는 시점에 최신의 뉴스를 받아볼수 있다.
수신한 뉴스를 읽고 유용해서 주변인들과 공유하고 싶다면, SMS로 전송할 수 있다.
따로 스크랩을 통해 저장해 놓을 수 있다.

스크랩북 기능은 병원검색결과와 건강뉴스를 스크랩 해둘 수 있게 한다.
어떤 특정 병원의 정보를 자주 조회해야 할 경우, 스크랩 해두면 매번 검색해야 하는 불편함을 덜 수 있다.
건강뉴스의 경우는, 업데이트를 하면 오래된 뉴스는 목록에서 삭제되는데, 보관하고 싶은 뉴스는 따로 스크랩을 해두면 업데이트를 해도 삭제되지 않는다.
 


건강뉴스 초기화면에서 ‘메뉴’키를 누르면 하단에서 메뉴가 올라온다.
메뉴를 통해 업데이트를 하거나, 이미 수신된 뉴스르 비우거나, 설정을 통해 한번에 수신할 뉴스의 건수를 설정할수 있다.
뉴스 수신을 위해 사용자에게 확인창을 띄우고, ‘예’를 누를경우 뉴스수신을 진행한다.
백그라운드 스레드에서 XML파싱이 이루어지며, 메인스레드는 사용자에게 수신중이라는 다이얼로그를 보여주다가, 백그라운드 스레드가 완료메세지를 핸들러로 보내오면, 수신결과를 리스트화하여 보여준다.


뉴스를 조회하는 화면에서 메뉴키를 누르면 스크랩, 문자로보내기 등의 기능을 수행할 수 있다.
마이메뉴는 자가진단 결과, 병원검색결과, 건강뉴스를 로컬데이터베이스에 스크랩해두고 조회할수 있는 기능이다.