homedoc
- HomeDoc은 만성질환 환자들이 자신의 건강 측정 정보를 입력하고 측정 기록 및 통계를 열람할 수 있는 건강관리 서비스입니다.
- 병원 측에서도 자신에게 배정된 환자의 건강정보를 열람하고 실제 진료에 참고할 수 있습니다.
- 환자는 모바일 앱, 병원은 웹을 통해 접근하는 것을 가정하고 개발되었습니다.
1. 프로젝트 개요
- 프로젝트 이름 : HomeDoc
- 프로젝트 요약 : 만성질환 환자 건강관리 서비스 백엔드용 API
- 주요 기능
- 환자 : 회원가입 기능, 건강 측정 정보 CRUD, 조회 및 페이징, 통계 기능
- 병원 : 환자 등록 및 삭제 기능, 환자 및 환자의 건강정보 열람 및 코멘트 기능
- 관리자 : 회원(환자) 관리 기능(환자의 개인정보 및 건강정보는 열람할 수 없음), 제휴 병원 등록 및 관리 기능
- 개발 언어 : JAVA 11
- 개발 환경 : Spring boot 2.7.x, gradle 8, Spring Data JPA, Git
- API 스펙: OAS 3.0, JSON reponse
2. 서비스 설명
- 만성질환 환자들이 자신의 건강 측정 정보를 입력하고 측정 기록 및 통계를 열람할 수 있는 건강관리 서비스
- 병원 측에서도 자신에게 배정된 환자의 건강정보를 열람하고 실제 진료에 참고할 수 있음
- 환자는 모바일 앱, 병원은 웹을 통해 접근하는 것을 가정하고 개발
3. 요구사항 분석
앱(환자)용 API
- 회원가입
- 이메일을 통해 회원 구분
- 가입 직후 사용자명 자동 생성됨. 이후 수정 가능
- 가입 후 건강정보 선택 입력
- 나이, 성별, 키/몸무게 등의 신체정보
- 가족력 등의 질병위험요소
- 해당 정보를 바탕으로 추천 건강정보 및 측정정보 가이드라인 등을 제공
- 일반 회원가입은 이메일 형식의 아이디를 요구
- 비밀번호는 8~20자 이내, 숫자와 영문자, 특수문자 사용 필수
- 건강알리미 기능 (미구현)
- 각 측정 정보별로 정상범위를 설정하면 해당 범위를 벗어나는 측정 데이터가 있을 때 정상범위 초과 여부를 기록
- 회원가입시 입력받은 건강정보가 존재할 경우, 측정정보에 대한 평균적인 정상범위를 계산하여 자동 설정
- 입력된 건강정보가 없거나, 데이터가 부족하거나, 회원이 직접 입력하기를 원하면 직접 정상범위를 설정 가능
- 측정정보 조회
- 파라미터로 입력받은 기간에 따라 회원의 건강 측정 데이터 통계 제공
- 측정 기록에 대한 단순 목록 형식의 조회 가능
- 필터링 기능
- 입력 방식 : 수기입력 여부로 필터링
- 측정 조건 : 건강정보 별로 측정 조건이 있는 경우 해당 조건으로 필터링(예: 공복혈당만 표시 등)
- 측정정보 입력 및 삭제
- 혈당, 혈압 데이터 입력
- 기기를 통한 자동 측정인지, 수기 입력 데이터인지 입력
- 측정 시 설정된 측정 정상범위가 존재할 경우 정상범위 여부를 함께 체크하여 입력
- 측정 조건이 있을 경우(예: 혈당 측정 시 공복여부/끼니) 측정 시에 조건 선택
- 측정 시 메모 입력 가능
- 측정정보 수정/삭제 가능(측정값 수정은 수기입력을 제외하고 불가)
- 병원 연결 기능
- 서비스 제휴 중인 병원의 해시코드를 입력해 해당 병원의 관리 환자로 등록 가능
- 측정 기록에 작성된 병원측 코멘트 열람 가능
- 관리 중단을 원할 시 병원등록 해제 가능
API 간단 명세
환자용
Name |
Method |
Path |
Description |
로그인 |
POST |
/signin |
|
토큰 리프레시 |
POST |
/refresh |
|
회원가입 |
POST |
/member |
|
개인정보조회 |
GET |
/myinfo |
|
개인정보수정 |
PATCH |
/myinfo |
|
회원탈퇴 |
DELETE |
/resign |
|
Name |
Method |
Path |
Description |
건강정보조회 |
GET |
/healthprofile/my |
|
건강정보수정 |
PUT |
/healthprofile/my |
|
Name |
Method |
Path |
Description |
혈당측정 |
POST |
/measure/glucose |
|
혈당 목록조회 |
GET |
/measure/glucose |
|
혈당 통계조회 |
GET |
/measure/glucose/statistic |
qureyParam required |
혈당 개별조회 |
GET |
/measure/glucose/{id} |
|
혈당수정 |
PATCH |
/measure/glucose/{id} |
|
혈당삭제 |
DELETE |
/measure/glucose/{id} |
|
Name |
Method |
Path |
Description |
혈압측정 |
POST |
/measure/pressure |
|
혈압 목록조회 |
GET |
/measure/pressure |
|
혈압 통계조회 |
GET |
/measure/pressure/statistic |
|
혈압 개별조회 |
GET |
/measure/pressure/{id} |
|
혈압수정 |
PATCH |
/measure/pressure/{id} |
|
혈압삭제 |
DELETE |
/measure/pressure/{id} |
|
Name |
Method |
Path |
Description |
병원 연결 |
POST |
/hospital |
qureyParam required |
병원해제 |
DELETE |
/hospital/{id} |
|
등록병원 목록조회 |
GET |
/hospital |
|
관리자용
Name |
Method |
Path |
Description |
회원 리스트 |
GET |
/member |
|
특정 회원 조회 |
GET |
/member/{id} |
|
회원정보 수정 |
PATCH |
/member/{id} |
|
특정 회원 삭제 |
DELETE |
/member/{id} |
|
Name |
Method |
Path |
Description |
제휴병원 등록 |
POST |
/hospital |
|
제휴병원 수정 |
PUT |
/hospital/{id} |
|
제휴병원 삭제 |
DELETE |
/hospital/{id} |
|
제휴병원 목록조회 |
GET |
/hospital |
|
권한관리용
Name |
Method |
Path |
Description |
권한 추가 |
POST |
/memberAuthority/{id} |
|
권한 삭제 |
DELETE |
/memberAuthority/{id} |
|
애플리케이션 설계
- 계층형 패키지 설계 : Controller, Service, Repository, Domain
도메인 설계
ERD, UML


댓글남기기