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

연구 데이터 API

참고: 이 문서에 설명된 모든 API는 dta-wir-medi-api 애플리케이션에 구현되어 있습니다. (Go)

개요​

연구 데이터 API는 임상 연구 환자 관리, 데이터 조회 및 분석을 위한 기능을 제공합니다.

주요기능​

  • 환자 관리: 연구 환자 등록, 조회, 제거
  • 데이터 조회: 환자 목록, 수면 데이터, 설문 데이터 조회
  • 정보 수정: 메모, 무작위번호 수정
  • 액세스 코드: 연구 환자용 액세스 코드 생성 및 발송
  • 검증: 무작위번호 검증, 비밀번호 검증
  • 사이트 관리: 연구 사이트 목록 조회
  • 불성실 관리: 불성실 환자 등록 및 관리
[GET] /v1/research/users - 연구 환자 목록 조회

연구 환자 목록 조회

[클라이언트 수정 필요]
asis: /v1/research/patients
tobe: /v1/research/users

임상 연구에 참여 중인 환자 목록을 조회합니다. 환자의 기본 정보, 치료 진행 상황, 수면 데이터, 설문 데이터 등을 포함합니다.

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

Headers​

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

Query Parameters​

필드타입설명RequiredDefault
limitnumber한 페이지당 항목 수✗50
pagenumber페이지 번호 (1부터 시작)✗1
sortBystring정렬 기준 필드✗startAt
sortOrderstring정렬 순서 (asc, desc)✗desc
noncomplianceboolean불성실 환자만 조회✗false
siteIdnumber사이트 ID (특정 사이트 필터링)✗-
searchKeystring검색어 (이름, 슬립큐코드, 무작위번호)✗-

Request 예시​

GET /v1/research/users?limit=20&page=1&sortBy=startAt&sortOrder=desc&siteId=1

Responses​

Http Status Code설명Error Code(s)
200 OK조회 성공-
401 Unauthorized인증 실패UNAUTHORIZED (40100)
500 Internal Server Error서버 내부 오류INTERNAL_SERVER_ERROR (50000)
200 OK - 성공
{
"total": 100,
"count": 20,
"data": [
{
"userCycleId": 12345,
"status": 2,
"user": {
"id": 1001,
"name": "홍길동",
"birthDate": "1990-01-15"
},
"account": {
"id": 501,
"name": "김의사"
},
"randomizationCode": "RND-001",
"memo": "특이사항 없음",
"accesscode": {
"code": "ABC123XYZ",
"createdAt": "2024-01-10T09:00:00Z"
},
"activityTimeline": {
"startedAt": "2024-01-10T09:00:00Z",
"lastLogin": "2024-03-15T14:30:00Z",
"appUsageDays": 45
},
"day": 50,
"learningStatus": {
"done": 8,
"total": 12
},
"completedQuestionnaireCount": 3,
"finalQuestionnaireNonCompliance": false,
"sleepRecordCount": 48,
"sleepRecordCountNonCompliance": false,
"pillAdherenceCount": 30,
"aetConsistencyRate": 85,
"lotConsistencyRate": 90,
"weeklySleepData": [
{
"weekNumber": 1,
"isOnTargetWeek": true,
"SE": 75.5,
"WASO": 45.2,
"TST": 360.0,
"SOL": 25.3
},
{
"weekNumber": 6,
"isOnTargetWeek": true,
"SE": 85.2,
"WASO": 30.1,
"TST": 420.0,
"SOL": 15.5
}
],
"noncompliance": false,
"site": {
"id": 1,
"name": "서울대학교병원"
}
}
]
}
필드타입설명
totalnumber전체 항목 수
countnumber현재 페이지 항목 수
dataarray연구 환자 목록

data 배열의 각 항목:

필드타입설명
userCycleIdnumber사용자 사이클 ID
statusnumber환자 상태 (1: 대기, 2: 활성, 3: 완료 필요, 4: 완료, 5: 중단)
userobject사용자 정보
user.idnumber사용자 ID
user.namestring사용자 이름
user.birthDatestring생년월일 (YYYY-MM-DD)
accountobject담당의 정보
account.idnumber담당의 ID
account.namestring담당의 이름
randomizationCodestring무작위번호 (연구 참가자 할당용)
memostring메모 (연구 관련 특이사항)
accesscodeobject액세스 코드 정보
accesscode.codestring슬립큐 코드
accesscode.createdAtstring처방일 (ISO 8601 형식)
activityTimelineobject활동 타임라인
activityTimeline.startedAtstring등록일 (ISO 8601 형식)
activityTimeline.lastLoginstring마지막 앱 사용 (ISO 8601 형식)
activityTimeline.appUsageDaysnumber앱 접속 일 수
daynumber치료 일차
learningStatusobject학습 진행 상태 (선택)
learningStatus.donenumber완료한 학습 수
learningStatus.totalnumber전체 학습 수
completedQuestionnaireCountnumber완료한 설문 횟수
finalQuestionnaireNonComplianceboolean마지막 설문 불성실 여부
sleepRecordCountnumber수면 기록 횟수
sleepRecordCountNonComplianceboolean수면 기록 불성실 여부
pillAdherenceCountnumber수면제 복용 횟수
aetConsistencyRatenumber기상시각 준수율 (%)
lotConsistencyRatenumber취침시각 준수율 (%)
weeklySleepDataarray주차별 수면 데이터 (1주차, 6주차 등)
noncomplianceboolean전체 불성실 여부 (수면 기록 또는 설문 불성실)
siteobject사이트 정보 (STUDY_ADMIN Position인 경우에만 표시)

weeklySleepData 배열의 각 항목:

필드타입설명
weekNumbernumber주차 번호
isOnTargetWeekboolean목표 주차 여부
SEnumber수면 효율 (%) (선택)
WASOnumber입면 후 각성 시간 (분) (선택)
TSTnumber총 수면 시간 (분) (선택)
SOLnumber입면 잠복기 (분) (선택)

참고사항:

  • 일반 연구자는 자신이 속한 사이트의 환자만 조회 가능
  • STUDY_ADMIN Position을 가진 경우 모든 사이트 조회 가능 및 site 정보 표시
  • status가 Active(2)이고 endAt을 지난 경우 자동으로 CompletionRequired(3)로 변경됨
401 Unauthorized - 인증 실패
{
"status": 401,
"code": 40100,
"message": "UNAUTHORIZED"
}
500 Internal Server Error - 서버 내부 오류
{
"status": 500,
"code": 50000,
"message": "INTERNAL_SERVER_ERROR"
}
[GET] /v1/research/users/options - 환자 옵션 조회

환자 옵션 조회

[클라이언트 수정 필요]
asis: /v1/research/patients/options
tobe: /v1/research/users/options

드롭다운 또는 선택 목록을 위한 간단한 환자 정보를 조회합니다.

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

Headers​

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

Query Parameters​

필드타입설명Required
siteIdnumber사이트 ID✔
searchKeystring검색어 (이름, 슬립큐코드, 무작위번호)✗

Request 예시​

GET /v1/research/patients/options?siteId=1&searchKey=홍길동

Responses​

Http Status Code설명Error Code(s)
200 OK조회 성공-
401 Unauthorized인증 실패UNAUTHORIZED (40100)
500 Internal Server Error서버 내부 오류INTERNAL_SERVER_ERROR (50000)
200 OK - 성공
{
"data": [
{
"userCycleId": 12345,
"userName": "홍길동",
"userBirthDate": "1990-01-15"
},
{
"userCycleId": 12346,
"userName": "김영희",
"userBirthDate": "1985-05-20"
}
]
}
필드타입설명
dataarray환자 옵션 목록

data 배열의 각 항목:

필드타입설명
userCycleIdnumber사용자 사이클 ID
userNamestring사용자 이름
userBirthDatestring생년월일 (YYYY-MM-DD)
401 Unauthorized - 인증 실패
{
"status": 401,
"code": 40100,
"message": "UNAUTHORIZED"
}
500 Internal Server Error - 서버 내부 오류
{
"status": 500,
"code": 50000,
"message": "INTERNAL_SERVER_ERROR"
}
[POST] /v1/research/users - 연구 환자 등록

연구 환자 등록

[클라이언트 수정 필요]
asis: /v1/research/patients
tobe: /v1/research/users

기존 userCycleId를 가진 사용자를 연구 환자로 등록합니다.

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

Headers​

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

Request Body​

필드타입설명Required
userCycleIdnumber사용자 사이클 ID✔
randomizationCodestring무작위번호✔

Request Body 예시​

{
"userCycleId": 12345,
"randomizationCode": "RND-001"
}

Responses​

Http Status Code설명Error Code(s)
200 OK연구 환자 등록 성공-
400 Bad Request잘못된 요청BAD_REQUEST (40000)
401 Unauthorized인증 실패UNAUTHORIZED (40100)
500 Internal Server Error서버 내부 오류INTERNAL_SERVER_ERROR (50000)
200 OK - 성공
{
"success": true
}
필드타입설명
successboolean성공 여부 (true)
400 Bad Request - 잘못된 요청
{
"status": 400,
"code": 40000,
"message": "유효하지 않은 무작위번호 입니다."
}

발생 가능한 에러 메시지:

  • "유효하지 않은 무작위번호 입니다." - randomizationCode가 비어있거나 유효하지 않음
401 Unauthorized - 인증 실패
{
"status": 401,
"code": 40100,
"message": "UNAUTHORIZED"
}
500 Internal Server Error - 서버 내부 오류
{
"status": 500,
"code": 50000,
"message": "INTERNAL_SERVER_ERROR"
}
[POST] /v1/research/users/{userId} - userId 연구 환자 생성

userId로 연구 환자 생성

[클라이언트 수정 필요]
asis: /v1/research/patients/users/{userCycleId}
tobe: /v1/research/users/{userId}

특정 userCycleId를 가진 사용자를 연구 환자로 생성합니다.

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

Headers​

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

Path Parameters​

필드타입설명Required
userIdnumber사용자 ID✔

Request 예시​

POST /v1/research/users/12345

Responses​

Http Status Code설명Error Code(s)
200 OK생성 성공-
401 Unauthorized인증 실패UNAUTHORIZED (40100)
500 Internal Server Error서버 내부 오류INTERNAL_SERVER_ERROR (50000)
200 OK - 성공
{}

빈 객체가 반환됩니다.

401 Unauthorized - 인증 실패
{
"status": 401,
"code": 40100,
"message": "UNAUTHORIZED"
}
500 Internal Server Error - 서버 내부 오류
{
"status": 500,
"code": 50000,
"message": "INTERNAL_SERVER_ERROR"
}
[DELETE] /v1/research/users/{userId} - 연구 환자 제거

연구 환자 제거

[클라이언트 수정 필요]
asis: /v1/research/patients/{userCycleId}
tobe: /v1/research/users/{userId}

연구 환자를 제거합니다. 제거하기 전에 비밀번호 검증이 필요합니다.

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

Headers​

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

Path Parameters​

필드타입설명Required
userIdnumber사용자 ID✔

Query Parameters​

필드타입설명Required
tokenstring비밀번호 검증 후 발급받은 제거 인증 토큰✔

Request 예시​

DELETE /v1/research/patients/12345?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Responses​

Http Status Code설명Error Code(s)
200 OK제거 성공-
400 Bad Request잘못된 요청BAD_REQUEST (40000)
401 Unauthorized인증 실패UNAUTHORIZED (40100)
500 Internal Server Error서버 내부 오류INTERNAL_SERVER_ERROR (50000)
200 OK - 성공
{
"success": true
}
필드타입설명
successboolean성공 여부 (true)
400 Bad Request - 잘못된 요청
{
"status": 400,
"code": 40000,
"message": "유효하지 않은 토큰입니다."
}

발생 가능한 에러 메시지:

  • "유효하지 않은 토큰입니다." - token이 유효하지 않거나 만료됨
401 Unauthorized - 인증 실패
{
"status": 401,
"code": 40100,
"message": "UNAUTHORIZED"
}
500 Internal Server Error - 서버 내부 오류
{
"status": 500,
"code": 50000,
"message": "INTERNAL_SERVER_ERROR"
}
[PATCH] /v1/research/users/{userId}/memo - 환자 메모 수정

환자 메모 수정

[클라이언트 수정 필요]
asis: /v1/research/patients/{userCycleId}/memo
tobe: /v1/research/users/{userId}/memo

연구 환자의 메모를 수정합니다. 메모는 연구 관련 특이사항이나 중요한 정보를 기록하는 용도로 사용됩니다.

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

Headers​

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

Path Parameters​

필드타입설명Required
userIdnumber사용자 ID✔

Request Body​

필드타입설명Required
memostring메모✔

Request Body 예시​

{
"memo": "환자 상태 양호. 다음 주 추가 상담 필요."
}

Responses​

Http Status Code설명Error Code(s)
200 OK수정 성공-
401 Unauthorized인증 실패UNAUTHORIZED (40100)
500 Internal Server Error서버 내부 오류INTERNAL_SERVER_ERROR (50000)
200 OK - 성공
{
"success": true
}
필드타입설명
successboolean성공 여부 (true)
401 Unauthorized - 인증 실패
{
"status": 401,
"code": 40100,
"message": "UNAUTHORIZED"
}
500 Internal Server Error - 서버 내부 오류
{
"status": 500,
"code": 50000,
"message": "INTERNAL_SERVER_ERROR"
}
[PATCH] /v1/research/patients/{userCycleId}/randomization-code - 무작위번호 수정

무작위번호 수정

[클라이언트 수정 필요]
asis: /v1/research/patients/{userCycleId}/randomization-code
tobe: /v1/research/users/{userId}/randomization-code

연구 환자의 무작위번호를 수정합니다. 무작위번호는 연구 참가자를 무작위로 할당하기 위해 사용됩니다.

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

Headers​

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

Path Parameters​

필드타입설명Required
userIdnumber사용자 ID✔

Request Body​

필드타입설명Required
randomizationCodestring무작위번호✔

Request Body 예시​

{
"randomizationCode": "RND-002"
}

Responses​

Http Status Code설명Error Code(s)
200 OK수정 성공-
400 Bad Request잘못된 요청BAD_REQUEST (40000)
401 Unauthorized인증 실패UNAUTHORIZED (40100)
500 Internal Server Error서버 내부 오류INTERNAL_SERVER_ERROR (50000)
200 OK - 성공
{
"success": true
}
필드타입설명
successboolean성공 여부 (true)
400 Bad Request - 잘못된 요청
{
"status": 400,
"code": 40000,
"message": "유효하지 않은 무작위번호 입니다."
}

발생 가능한 에러 메시지:

  • "유효하지 않은 무작위번호 입니다." - randomizationCode가 비어있거나 이미 사용 중
401 Unauthorized - 인증 실패
{
"status": 401,
"code": 40100,
"message": "UNAUTHORIZED"
}
500 Internal Server Error - 서버 내부 오류
{
"status": 500,
"code": 50000,
"message": "INTERNAL_SERVER_ERROR"
}
[POST] /v1/research/accesscodes - 액세스 코드 생성 및 알림 전송

액세스 코드 생성 및 알림 전송

연구 환자용 액세스 코드(슬립큐 코드)를 생성하고 이메일 또는 SMS로 전송합니다.

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

Headers​

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

Request Body​

필드타입설명RequiredDefault
emailstring이메일 주소✗-
phonestring전화번호✗-
accountIdnumber담당의 계정 ID✔-
siteIdnumber사이트 ID✔-
groupIdnumber그룹 ID✔-
registrationChannelIdnumber등록 채널 ID✗6 (SleepQ Dashboard)
saveAccountIdboolean담당의 저장 여부✗-
notificationMethodstring알림 방법 (EMAIL, SMS, IN_APP, MANUAL, Unknown)✗EMAIL
randomizationCodestring무작위번호✔-
validDaysnumber유효 기간 (일)✗-

참고:

  • email 또는 phone 중 하나는 필수입니다.
  • notificationMethod가 Unknown인 경우 EMAIL로 설정됩니다.

Request Body 예시​

{
"email": "patient@example.com",
"accountId": 501,
"siteId": 1,
"groupId": 10,
"registrationChannelId": 6,
"saveAccountId": true,
"notificationMethod": "EMAIL",
"randomizationCode": "RND-001",
"validDays": 90
}

Responses​

Http Status Code설명Error Code(s)
200 OK생성 성공-
400 Bad Request잘못된 요청BAD_REQUEST (40000)
401 Unauthorized인증 실패UNAUTHORIZED (40100)
500 Internal Server Error서버 내부 오류INTERNAL_SERVER_ERROR (50000)
200 OK - 성공
{
"accesscode": "ABC123XYZ",
"accesscodeCreatedAt": "2024-03-15T10:00:00Z",
"accesscodeExpiresAt": "2024-06-13T10:00:00Z",
"sent": true
}
필드타입설명
accesscodestring생성된 액세스 코드
accesscodeCreatedAtstring생성 일시 (ISO 8601 형식)
accesscodeExpiresAtstring만료 일시 (ISO 8601 형식)
sentboolean알림 전송 성공 여부
400 Bad Request - 잘못된 요청
{
"status": 400,
"code": 40000,
"message": "잘못된 무작위번호 입니다."
}

발생 가능한 에러 메시지:

  • "잘못된 무작위번호 입니다." - randomizationCode가 비어있음
401 Unauthorized - 인증 실패
{
"status": 401,
"code": 40100,
"message": "UNAUTHORIZED"
}
500 Internal Server Error - 서버 내부 오류
{
"status": 500,
"code": 50000,
"message": "INTERNAL_SERVER_ERROR"
}
[POST] /v1/research/patients/randomization-code/validate - 무작위번호 검증

무작위번호 검증

무작위번호의 사용 가능 여부를 검증합니다.

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

Headers​

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

Request Body​

필드타입설명Required
randomizationCodestring무작위번호✔

Request Body 예시​

{
"randomizationCode": "RND-001"
}

Responses​

Http Status Code설명Error Code(s)
200 OK검증 완료-
401 Unauthorized인증 실패UNAUTHORIZED (40100)
500 Internal Server Error서버 내부 오류INTERNAL_SERVER_ERROR (50000)
200 OK - 성공
{
"available": true,
"reason": null
}

또는

{
"available": false,
"reason": "이미 사용 중인 무작위번호입니다."
}
필드타입설명
availableboolean사용 가능 여부
reasonstring사용 불가능한 경우 이유 (선택)
401 Unauthorized - 인증 실패
{
"status": 401,
"code": 40100,
"message": "UNAUTHORIZED"
}
500 Internal Server Error - 서버 내부 오류
{
"status": 500,
"code": 50000,
"message": "INTERNAL_SERVER_ERROR"
}
[POST] /v1/research/patients/remove/verify-password - 환자 제거를 위한 비밀번호 검증

환자 제거를 위한 비밀번호 검증

[클라이언트 수정 필요]
asis: Request Body의 userCycleId (사용자 사이클 ID)
tobe: Request Body의 userId (사용자 ID)

연구 환자를 제거하기 전에 담당자의 비밀번호를 검증하고 제거 인증 토큰을 발급합니다.

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

Headers​

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

Request Body​

필드타입설명Required
passwordstring담당자 비밀번호✔
userIdnumber사용자 ID✔

Request Body 예시​

{
"password": "mySecurePassword123!",
"userId": 12345
}

Responses​

Http Status Code설명Error Code(s)
200 OK검증 성공-
401 Unauthorized인증 실패UNAUTHORIZED (40100)
500 Internal Server Error서버 내부 오류INTERNAL_SERVER_ERROR (50000)
200 OK - 성공
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
필드타입설명
tokenstring제거 인증 토큰 (환자 제거 API에서 사용)

참고:

  • 발급받은 token은 제한된 시간 동안만 유효합니다.
  • token을 사용하여 DELETE /v1/research/users/{userId} API를 호출하면 환자를 제거할 수 있습니다.
401 Unauthorized - 인증 실패
{
"status": 401,
"code": 40100,
"message": "UNAUTHORIZED"
}

발생 가능한 경우:

  • 액세스 토큰이 유효하지 않음
  • 비밀번호가 일치하지 않음
500 Internal Server Error - 서버 내부 오류
{
"status": 500,
"code": 50000,
"message": "INTERNAL_SERVER_ERROR"
}
[GET] /v1/research/sites - 연구 사이트 목록 조회

연구 사이트 목록 조회

연구 관련 사이트 목록을 조회합니다.

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

Headers​

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

Request 예시​

GET /v1/research/sites

Responses​

Http Status Code설명Error Code(s)
200 OK조회 성공-
401 Unauthorized인증 실패UNAUTHORIZED (40100)
500 Internal Server Error서버 내부 오류INTERNAL_SERVER_ERROR (50000)
200 OK - 성공
{
"sites": [
{
"id": 1,
"name": "서울대학교병원",
"description": "서울특별시 종로구",
"code": "SNUH",
"clinicalResearch": true,
"managedByCrm": true,
"createdAt": "2024-01-10T08:00:00Z"
},
{
"id": 2,
"name": "연세대학교병원",
"code": "YUHS",
"clinicalResearch": true,
"managedByCrm": true,
"createdAt": "2024-01-11T09:30:00Z"
}
]
}
필드타입설명
sitesarray사이트 목록

sites 배열의 각 항목:

필드타입설명
idnumber사이트 ID
namestring사이트(병원) 이름
descriptionstring사이트 설명 (선택)
codestring사이트 코드 (선택)
clinicalResearchboolean임상 연구 사이트 여부
managedByCrmbooleanCRM 관리 여부
createdAtstring생성 일시 (ISO 8601 형식)
401 Unauthorized - 인증 실패
{
"status": 401,
"code": 40100,
"message": "UNAUTHORIZED"
}
500 Internal Server Error - 서버 내부 오류
{
"status": 500,
"code": 50000,
"message": "INTERNAL_SERVER_ERROR"
}
[POST] /v1/research/patients/non-compliance - 불성실 환자 등록/수정

불성실 환자 등록/수정

[클라이언트 수정 필요]
asis: Request Body의 userCycleId (사용자 사이클 ID)
tobe: Request Body의 userId (사용자 ID)

불성실 환자 정보를 등록하거나 수정합니다.

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

Headers​

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

Request Body​

필드타입설명Required
userIdnumber사용자 ID (선택)✗
contextIdnumber컨텍스트 ID✔

Request Body 예시​

{
"userId": 12345,
"contextId": 1001
}

Responses​

Http Status Code설명Error Code(s)
200 OK등록/수정 성공-
401 Unauthorized인증 실패UNAUTHORIZED (40100)
500 Internal Server Error서버 내부 오류INTERNAL_SERVER_ERROR (50000)
200 OK - 성공
{}

빈 객체가 반환됩니다.

401 Unauthorized - 인증 실패
{
"status": 401,
"code": 40100,
"message": "UNAUTHORIZED"
}
500 Internal Server Error - 서버 내부 오류
{
"status": 500,
"code": 50000,
"message": "INTERNAL_SERVER_ERROR"
}