ohctechv3/.svn/pristine/d7/d7488715e0b8110778bdf637674d2fc65a4157e1.svn-base
2024-10-28 15:03:36 +05:30

75 lines
2.9 KiB
Plaintext

package com.healthcare.ohctech.service.impl;
import com.healthcare.ohctech.dto.CheckupFormDto;
import com.healthcare.ohctech.entity.CheckupForm;
import com.healthcare.ohctech.entity.Patient;
import com.healthcare.ohctech.repository.CheckupFormRepo;
import com.healthcare.ohctech.repository.PatientRepo;
import com.healthcare.ohctech.service.CheckupFormService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
@Service
public class CheckupFormServiceImpl implements CheckupFormService {
private final CheckupFormRepo checkupFormRepo;
private final PatientRepo patientRepo;
public CheckupFormServiceImpl(CheckupFormRepo checkupFormRepo, PatientRepo patientRepo) {
this.checkupFormRepo = checkupFormRepo;
this.patientRepo = patientRepo;
}
@Override
public CheckupForm getCheckupFormById(Long checkupFormId) {
return checkupFormRepo.findById(checkupFormId)
.orElseThrow(() -> new RuntimeException("CheckupForm not found for ID: " + checkupFormId));
}
@Override
public CheckupForm getLatestCheckupForm(Long empId) {
return checkupFormRepo.findFirstByPatient_IdOrderByCheckupDateDesc(empId);
}
@Override
public Page<CheckupForm> getAllCheckupForms(Pageable pageable) {
return checkupFormRepo.findAll(pageable);
}
@Override
public void addCheckupForm(CheckupFormDto checkupFormDto, Long userId) {
CheckupForm checkupForm = convertToEntity(new CheckupForm(), checkupFormDto);
checkupForm.setModifiedBy(userId);
checkupFormRepo.save(checkupForm);
}
@Override
public void updateCheckupForm(CheckupFormDto checkupFormDto, Long userId) {
Long checkupFormId = checkupFormDto.id();
CheckupForm checkupForm = checkupFormRepo.findById(checkupFormId)
.orElseThrow(() -> new RuntimeException("CheckupForm not found for ID: " + checkupFormId));
checkupForm.setModifiedBy(userId);
convertToEntity(checkupForm, checkupFormDto);
checkupFormRepo.save(checkupForm);
}
@Override
public void deleteCheckupForm(Long checkupFormId) {
CheckupForm checkupForm = checkupFormRepo.findById(checkupFormId)
.orElseThrow(() -> new RuntimeException("CheckupForm not found for ID: " + checkupFormId));
checkupFormRepo.delete(checkupForm);
}
private CheckupForm convertToEntity(CheckupForm checkupForm, CheckupFormDto checkupFormDto) {
checkupForm.setCheckupDate(checkupFormDto.checkupDate());
Patient patient = patientRepo.findById(checkupFormDto.patientId())
.orElseThrow(() -> new RuntimeException("Patient not found for ID: " + checkupFormDto.patientId()));
checkupForm.setPatient(patient);
checkupForm.setHealthIndex(checkupFormDto.healthIndex());
checkupForm.setBmi(checkupFormDto.bmi());
return checkupForm;
}
}