Skip to content

Commit e7443a6

Browse files
authored
Merge pull request #35 from PU-Track/main
merge for deployment
2 parents 0aab4e0 + c77a1c3 commit e7443a6

File tree

12 files changed

+199
-71
lines changed

12 files changed

+199
-71
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package putrack.server.controller;
2+
3+
import io.swagger.v3.oas.annotations.Operation;
4+
import io.swagger.v3.oas.annotations.Parameter;
5+
import io.swagger.v3.oas.annotations.tags.Tag;
6+
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.web.bind.annotation.*;
8+
import putrack.server.dto.PatientStatusDto;
9+
import putrack.server.dto.PredictedDateTimeDto;
10+
import putrack.server.service.PatientService;
11+
12+
@RestController
13+
@RequestMapping("/patient")
14+
@Tag(name = "Patient", description = "Patient API")
15+
public class PatientController {
16+
@Autowired
17+
private PatientService patientService;
18+
19+
@Operation(summary = "다음 체위 변경 시기", description = "다음 체위를 변경하는 시각을 반환합니다. (status가 sleeping일 시 알림 발송)")
20+
@PostMapping("/{patientId}/changeTime")
21+
public PredictedDateTimeDto predictChangeTime(@PathVariable("patientId") Integer patientId, @RequestBody PatientStatusDto dto) {
22+
return patientService.predictChangeTime(patientId, dto);
23+
}
24+
}

src/main/java/putrack/server/controller/UserController.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,22 @@
55
import org.springframework.http.ResponseEntity;
66
import org.springframework.web.bind.annotation.*;
77
import putrack.server.dto.CaregiverRegisterDto;
8-
import putrack.server.dto.PatientRegisterDto;
8+
import putrack.server.dto.PatientDto;
99
import putrack.server.dto.PushTokenRequestDto;
1010
import putrack.server.entity.Caregiver;
11-
import putrack.server.entity.Patient;
1211
import putrack.server.service.UserService;
1312
import io.swagger.v3.oas.annotations.Operation;
1413
import io.swagger.v3.oas.annotations.tags.Tag;
14+
import java.util.List;
1515

1616
@RestController
1717
@RequestMapping("/user")
18-
@Tag(name = "User", description = "User (환자, 보호자) 등록 API")
18+
@Tag(name = "User", description = "User API")
1919
public class UserController {
2020

2121
@Autowired
2222
private UserService userService;
2323

24-
// @Operation(summary = "환자 등록", description = "새로운 환자를 등록합니다.")
25-
// @PostMapping("/patient/register")
26-
// public ResponseEntity<Patient> registerPatient(@RequestBody PatientRegisterDto dto) {
27-
// Patient patient = userService.registerPatient(dto);
28-
// return ResponseEntity.ok(patient);
29-
// }
30-
3124
@Operation(summary = "간병인 등록", description = "새로운 간병인을 등록합니다. (role: CAREGIVER, DOCTOR, NURSE, NURSING_ASSISTANT, OTHER, gender: F, M)")
3225
@PostMapping("/caregiver/register")
3326
public ResponseEntity<Caregiver> registerCaregiver(@RequestBody CaregiverRegisterDto dto) {
@@ -43,4 +36,10 @@ public String registerCaregiverToken(
4336
userService.registerCaregiverPushToken(code, dto.getPushToken());
4437
return "FCM 토큰 등록 완료";
4538
}
39+
40+
@Operation(summary = "환자 정보 리스트", description = "간병인에 대한 환자 정보 리스트")
41+
@GetMapping("/caregiver/{code}/patients")
42+
public List<PatientDto> getPatientsByCaregiverCode(@PathVariable("code") String code) {
43+
return userService.getPatientsByCaregiverCode(code);
44+
}
4645
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package putrack.server.dto;
2+
3+
import lombok.Data;
4+
import putrack.server.entity.PatientStatus;
5+
6+
@Data
7+
public class PatientDto {
8+
private Integer patientId;
9+
private String name;
10+
private Integer age;
11+
private Double weight;
12+
private Double height;
13+
private String gender;
14+
private PatientStatus status;
15+
}

src/main/java/putrack/server/dto/PatientRegisterDto.java

Lines changed: 0 additions & 14 deletions
This file was deleted.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package putrack.server.dto;
2+
3+
import lombok.Data;
4+
import java.time.LocalDateTime;
5+
import putrack.server.entity.PatientStatus;
6+
7+
@Data
8+
public class PatientStatusDto {
9+
private PatientStatus status;
10+
private Double airTemp;
11+
private Double airHumid;
12+
private Double cushionTemp;
13+
private LocalDateTime postureStartTime;
14+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package putrack.server.dto;
2+
3+
import lombok.Data;
4+
5+
import java.time.LocalDateTime;
6+
7+
@Data
8+
public class PredictedDateTimeDto {
9+
private LocalDateTime currentDateTime;
10+
private LocalDateTime predictedDateTime;
11+
}

src/main/java/putrack/server/entity/Caregiver.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import lombok.Getter;
44
import lombok.Setter;
55

6+
import java.util.ArrayList;
67
import java.util.List;
78

89

@@ -30,9 +31,21 @@ public class Caregiver {
3031
@Column(length = 50)
3132
private String code;
3233

33-
@Column(length = 50)
34+
@Column(columnDefinition = "TEXT")
3435
private String pushToken;
3536

36-
@ManyToMany(mappedBy = "caregivers")
37+
@ManyToMany
38+
@JoinTable(
39+
name = "PatientCaregiver",
40+
joinColumns = @JoinColumn(name = "caregiver_id"),
41+
inverseJoinColumns = @JoinColumn(name = "patient_id")
42+
)
3743
private List<Patient> patients;
44+
45+
public void assignPatients(List<Patient> patients) {
46+
if (this.patients == null) {
47+
this.patients = new ArrayList<>();
48+
}
49+
this.patients.addAll(patients);
50+
}
3851
}

src/main/java/putrack/server/entity/Patient.java

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import lombok.Getter;
44
import lombok.Setter;
55

6+
import java.time.LocalTime;
67
import java.util.List;
78

89

@@ -13,12 +14,6 @@ public class Patient {
1314
@GeneratedValue(strategy = GenerationType.IDENTITY)
1415
private Integer patientId;
1516

16-
@Column(nullable = false, length = 50)
17-
private String username;
18-
19-
@Column(nullable = false, length = 100)
20-
private String password;
21-
2217
@Column(nullable = false, length = 50)
2318
private String name;
2419

@@ -29,10 +24,20 @@ public class Patient {
2924
private String gender;
3025

3126
@Column(nullable = false)
32-
private Integer weight;
27+
private Double weight;
3328

34-
@Column(nullable = false, length = 50)
35-
private String code;
29+
@Column(nullable = false)
30+
private Double height;
31+
32+
@Enumerated(EnumType.STRING)
33+
@Column
34+
private PatientStatus status;
35+
36+
@Column
37+
private Integer averageInterval;
38+
39+
@Column
40+
private LocalTime averageWakeUpTime;
3641

3742
@OneToOne(mappedBy = "patient")
3843
private Device devices;
@@ -43,14 +48,6 @@ public class Patient {
4348
@OneToMany(mappedBy = "patient")
4449
private List<Prediction> predictions;
4550

46-
@Column(nullable = false, length = 50)
47-
private String pushToken;
48-
49-
@ManyToMany
50-
@JoinTable(
51-
name = "PatientCaregiver",
52-
joinColumns = @JoinColumn(name = "patient_id"),
53-
inverseJoinColumns = @JoinColumn(name = "caregiver_id")
54-
)
51+
@ManyToMany(mappedBy = "patients")
5552
private List<Caregiver> caregivers;
5653
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package putrack.server.entity;
2+
3+
public enum PatientStatus {
4+
LYING,
5+
SITTING,
6+
SLEEPING
7+
}

src/main/java/putrack/server/repository/PatientRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
import putrack.server.entity.Patient;
55

66
public interface PatientRepository extends JpaRepository<Patient, Integer> {
7-
boolean existsByUsername(String username);
7+
88
}

0 commit comments

Comments
 (0)