본문으로 건너뛰기
버전: 0.68.0

관리자 계정 API

참고: 이 문서에 설명된 모든 API는 dta-wi-mono 모노레포의 dta-wi-medi-api 애플리케이션에 구현되어 있습니다.

개요

관리자 계정 API는 MD(의료진) 계정의 CRUD 기능을 제공합니다.

주요기능

  • MD 계정 목록 조회: 페이징, 정렬이 가능한 MD 계정 목록 조회
  • MD 계정 상세 조회: 특정 MD 계정의 상세 정보 조회
  • MD 계정 생성: 새로운 MD 계정 생성
  • MD 계정 수정: 기존 MD 계정 정보 수정
  • MD 계정 삭제: MD 계정 삭제 (소프트/하드 삭제 지원)
[GET] /v1/admin/accounts - MD 계정 목록 조회

MD 계정 목록 조회

특정 사이트(병원)의 MD 계정 목록을 조회합니다.

  • HTTP Method: GET
  • 인증: 액세스 토큰 (accessToken) 필요

Headers

HeaderTypeDescriptionRequired
AuthorizationBearer {accessToken}사용자 인증을 통해 발급받은 액세스 토큰 입니다.

Query Parameters

파라미터타입설명RequiredDefault
siteIdstring사이트 UUID-
limitnumber한 페이지당 조회할 계정 수 (최대 100)10
pagenumber조회할 페이지 번호1
orderBystring정렬 기준 (created_at, name, email, position_id, updated_at)created_at
orderDirectionstring정렬 방식 (asc, desc)desc

Responses

Http Status Code설명Error Code(s)
200 OK조회 성공-
401 Unauthorized인증 실패1080
500 Internal Server Error서버 내부 오류1092
200 OK - 성공
{
"pagination": {
"page": 1,
"limit": 10,
"totalCount": 100,
"totalPages": 10,
"next": "?page=2&limit=10",
},
"items": [
{
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"id": 1,
"name": "김철수",
"email": "doctor@weltcorp.com",
"phoneNumber": "010****5678",
"birthdate": "1980-01-01",
"position": "STUDY_ADMIN",
"authorizedToPrescribe": true,
"positionId": 2,
"createdAt": "2024-09-30 14:12:08 KST",
"updatedAt": "2024-09-30 14:12:08 KST"
}
]
}
필드타입설명
paginationobject페이지네이션 정보
pagination.pagenumber현재 페이지 번호
pagination.limitnumber페이지당 항목 수
pagination.totalCountnumber총 항목 수
pagination.totalPagesnumber총 페이지 수
pagination.nextstring | null다음 페이지 URL
pagination.previousstring | null이전 페이지 URL
itemsarrayMD 계정 데이터 배열
items[].uuidstringMD 계정 UUID
items[].idnumberMD 계정 ID
items[].namestringMD 이름
items[].emailstringMD 이메일
items[].phoneNumberstringMD 전화번호 (마스킹 처리)
items[].birthdatestringMD 생년월일 (YYYY-MM-DD)
items[].positionstringMD position
items[].authorizedToPrescribeboolean처방 권한 여부
items[].positionIdnumberposition ID
items[].createdAtstring생성일 (KST)
items[].updatedAtstring수정일 (KST)
401 Unauthorized - 인증 실패
{
"status": 401,
"code": 1080,
"message": "UNAUTHORIZED",
"detail": "{\"displayText\":\"No token found in Authorization header\"}"
}
[GET] /v1/admin/accounts/{accountId} - MD 계정 상세 조회

MD 계정 상세 조회

특정 MD 계정의 상세 정보를 조회합니다.

  • HTTP Method: GET
  • 인증: 액세스 토큰 (accessToken) 필요

Headers

HeaderTypeDescriptionRequired
AuthorizationBearer {accessToken}사용자 인증을 통해 발급받은 액세스 토큰 입니다.

Path Parameters

파라미터타입설명Required
accountIdstringMD 계정 UUID

Responses

Http Status Code설명Error Code(s)
200 OK조회 성공-
401 Unauthorized인증 실패1080
404 Not Found계정을 찾을 수 없음1071
500 Internal Server Error서버 내부 오류1092
200 OK - 성공
{
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"id": 1,
"name": "김철수",
"email": "doctor@weltcorp.com",
"phoneNumber": "01012345678",
"birthdate": "1980-01-01",
"position": "STUDY_ADMIN",
"authorizedToPrescribe": true,
"positionId": 2,
"createdAt": "2024-09-30 14:12:08 KST",
"updatedAt": "2024-09-30 14:12:08 KST"
}
필드타입설명
uuidstringMD 계정 UUID
idnumberMD 계정 ID
namestringMD 이름
emailstringMD 이메일
phoneNumberstringMD 전화번호
birthdatestringMD 생년월일 (YYYY-MM-DD)
positionstringMD position
authorizedToPrescribeboolean처방 권한 여부
positionIdnumberposition ID
createdAtstring생성일 (KST)
updatedAtstring수정일 (KST)
404 Not Found - 계정을 찾을 수 없음
{
"status": 404,
"code": 1071,
"message": "MD_ACCOUNT_NOT_FOUND",
"detail": "등록된 MD 계정을 찾을 수 없습니다."
}
[POST] /v1/admin/accounts - MD 계정 생성

MD 계정 생성

새로운 MD 계정을 생성합니다.

  • HTTP Method: POST
  • 인증: 액세스 토큰 (accessToken) 필요

Headers

HeaderTypeDescriptionRequired
AuthorizationBearer {accessToken}사용자 인증을 통해 발급받은 액세스 토큰 입니다.
Content-Typeapplication/json요청 본문 형식

Request Body

필드타입설명Required
siteIdstring사이트 UUID
namestringMD 이름
emailstringMD 이메일
phoneNumberstringMD 전화번호
authorizedToPrescribeboolean처방 권한 여부
positionIdnumberposition ID

Request Body 예시

{
"siteId": "123e4567-e89b-12d3-a456-426614174000",
"name": "김철수",
"email": "doctor@weltcorp.com",
"phoneNumber": "01012345678",
"authorizedToPrescribe": true,
"positionId": 2
}

Responses

Http Status Code설명Error Code(s)
200 OK생성 성공-
401 Unauthorized인증 실패1080
500 Internal Server Error서버 내부 오류1092
200 OK - 성공
{
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"id": 1,
"name": "김철수",
"email": "doctor@weltcorp.com",
"phoneNumber": "01012345678",
"birthdate": null,
"position": "STUDY_ADMIN",
"authorizedToPrescribe": true,
"positionId": 2,
"createdAt": "2024-09-30 14:12:08 KST",
"updatedAt": "2024-09-30 14:12:08 KST"
}
[PATCH] /v1/admin/accounts/{accountId} - MD 계정 수정

MD 계정 수정

기존 MD 계정의 정보를 수정합니다.

  • HTTP Method: PATCH
  • 인증: 액세스 토큰 (accessToken) 필요

Headers

HeaderTypeDescriptionRequired
AuthorizationBearer {accessToken}사용자 인증을 통해 발급받은 액세스 토큰 입니다.
Content-Typeapplication/json요청 본문 형식

Path Parameters

파라미터타입설명Required
accountIdstringMD 계정 UUID

Request Body

필드타입설명Required
emailstringMD 이메일
namestringMD 이름
phoneNumberstringMD 전화번호
birthdatestringMD 생년월일 (YYYY-MM-DD)
positionIdnumberposition ID
authorizedToPrescribeboolean처방 권한 여부

Request Body 예시

{
"name": "김철수",
"email": "updated.email@example.com",
"phoneNumber": "01012345678",
"birthdate": "1980-01-01",
"positionId": 2,
"authorizedToPrescribe": true
}

Responses

Http Status Code설명Error Code(s)
200 OK수정 성공-
401 Unauthorized인증 실패1080
404 Not Found계정을 찾을 수 없음1071
500 Internal Server Error서버 내부 오류1092
200 OK - 성공
{
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"id": 1,
"name": "김철수",
"email": "updated.email@example.com",
"phoneNumber": "01012345678",
"birthdate": "1980-01-01",
"position": "STUDY_ADMIN",
"authorizedToPrescribe": true,
"positionId": 2,
"createdAt": "2024-09-30 14:12:08 KST",
"updatedAt": "2024-10-01 10:30:15 KST"
}
[DELETE] /v1/admin/accounts/{accountId} - MD 계정 삭제

MD 계정 삭제

MD 계정을 삭제합니다. 소프트 삭제 또는 하드 삭제를 선택할 수 있습니다.

  • HTTP Method: DELETE
  • 인증: 액세스 토큰 (accessToken) 필요

Headers

HeaderTypeDescriptionRequired
AuthorizationBearer {accessToken}사용자 인증을 통해 발급받은 액세스 토큰 입니다.

Path Parameters

파라미터타입설명Required
accountIdstringMD 계정 UUID

Query Parameters

파라미터타입설명RequiredDefault
hardboolean물리 삭제 여부 (true: hard delete, false: soft delete)false

Responses

Http Status Code설명Error Code(s)
200 OK삭제 성공-
401 Unauthorized인증 실패1080
404 Not Found계정을 찾을 수 없음1071
500 Internal Server Error서버 내부 오류1092
200 OK - 성공
{
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"id": 1,
"name": "이유민",
"email": "doctor@weltcorp.com",
"phoneNumber": "01012345678",
"birthdate": "1980-01-01",
"position": "STUDY_ADMIN",
"authorizedToPrescribe": true,
"positionId": 2,
"createdAt": "2024-09-30 14:12:08 KST",
"updatedAt": "2024-10-01 10:30:15 KST"
}