Presentations

This commit is contained in:
Paweł Dyda 2023-01-21 23:13:31 +01:00
parent 722a71d1af
commit 17789f2c51
13 changed files with 0 additions and 200 deletions

View File

@ -1,43 +0,0 @@
package edu.amu.pl.demo;
import edu.amu.pl.demo.risk.entity.Client;
import edu.amu.pl.demo.risk.entity.Illness;
import edu.amu.pl.demo.risk.repository.ClientRepository;
import edu.amu.pl.demo.risk.repository.IllnessRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import java.util.Set;
@SpringBootApplication
public class DemoJakartaApplication {
public static void main(String[] args) {
SpringApplication.run(DemoJakartaApplication.class, args);
}
@Bean
public CommandLineRunner populate(
@Autowired IllnessRepository illnessRepository, @Autowired ClientRepository repository) {
return (args) -> {
// Hypothetical conditions with corresponding risk factors
var hypertension = illnessRepository.save(new Illness(null, "Nadciśnienie", 0.7d));
var liverCancer = illnessRepository.save(new Illness(null, "Rak wątroby", 0.95d));
var obesity = illnessRepository.save(new Illness(null, "Otyłość", 0.6d));
var stupidity = illnessRepository.save(new Illness(null, "Głupota", 0.8d));
// Clients with their conditions
repository.save(new Client(null, Set.of(hypertension, obesity, stupidity)));
repository.save(new Client(null, Set.of(liverCancer, obesity)));
repository.save(new Client(null, Set.of()));
};
}
}

View File

@ -1,15 +0,0 @@
package edu.amu.pl.demo.risk.dto;
import lombok.*;
@NoArgsConstructor
@AllArgsConstructor
@Setter
@Getter
@ToString
public class RiskFactorDTO {
Long clientId;
Double riskFactor;
}

View File

@ -1,30 +0,0 @@
package edu.amu.pl.demo.risk.entity;
import jakarta.persistence.*;
import lombok.*;
import java.util.Set;
@Entity(name = "client")
@Table(name = "client")
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@ToString
public class Client {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "client_id")
private Long id;
@ManyToMany
@JoinTable(
name = "client_illness",
joinColumns = @JoinColumn(name = "client_id"),
inverseJoinColumns = @JoinColumn(name = "illness_id")
)
private Set<Illness> conditions;
}

View File

@ -1,27 +0,0 @@
package edu.amu.pl.demo.risk.entity;
import jakarta.persistence.*;
import lombok.*;
@Entity(name = "illness")
@Table(name = "illness")
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@EqualsAndHashCode
@ToString
public class Illness {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "illness_id")
private Long id;
@Column(name = "illness_name", nullable = false, unique = true)
private String name;
@Column(name = "illness_risk_factor", nullable = false)
private Double riskFactor;
}

View File

@ -1,9 +0,0 @@
package edu.amu.pl.demo.risk.repository;
import edu.amu.pl.demo.risk.entity.Client;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface ClientRepository extends CrudRepository<Client, Long> {
}

View File

@ -1,9 +0,0 @@
package edu.amu.pl.demo.risk.repository;
import edu.amu.pl.demo.risk.entity.Illness;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface IllnessRepository extends CrudRepository<Illness, Long> {
}

View File

@ -1,32 +0,0 @@
package edu.amu.pl.demo.risk.service;
import edu.amu.pl.demo.risk.dto.RiskFactorDTO;
import edu.amu.pl.demo.risk.entity.Illness;
import edu.amu.pl.demo.risk.repository.ClientRepository;
import lombok.val;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class RiskService {
@Autowired
private ClientRepository repository;
public RiskFactorDTO calculateRiskFactor(Long clientId) {
if (!repository.existsById(clientId)) {
return new RiskFactorDTO(clientId, -1.0d);
}
val client = repository.findById(clientId).orElseThrow();
if (client.getConditions().size() == 0) {
return new RiskFactorDTO(clientId, 0d);
} else {
val maxRisk = client.getConditions().stream()
.map(Illness::getRiskFactor)
.max(Double::compare)
.orElseThrow();
return new RiskFactorDTO(clientId, maxRisk);
}
}
}

View File

@ -1,21 +0,0 @@
package edu.amu.pl.demo.risk.web;
import edu.amu.pl.demo.risk.dto.RiskFactorDTO;
import edu.amu.pl.demo.risk.service.RiskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
@RestController("/risk")
public class RiskController {
@Autowired
private RiskService service;
@GetMapping("/risk/{clientId}")
public RiskFactorDTO getRiskForClient(@PathVariable Long clientId) {
return service.calculateRiskFactor(clientId);
}
}

View File

@ -1 +0,0 @@
server.port=8088

View File

@ -1,13 +0,0 @@
package edu.amu.pl.demo;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class DemojakartaApplicationTests {
@Test
void contextLoads() {
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.