diff options
| author | Paul-Christian Volkmer | 2024-01-15 10:26:56 +0100 |
|---|---|---|
| committer | GitHub | 2024-01-15 10:26:56 +0100 |
| commit | c4eb4d0fe2b2950987b672131d88d1aaa55aac53 (patch) | |
| tree | 47d384ca81ef01eddd96ddec2e63c179f0ccdb7b /src/main/kotlin/dev/dnpm/etl/processor | |
| parent | 4bc69a353c5bc758de4979120f611875eb0051de (diff) | |
feat #25: add link to requests related to patient pseudonyme (#27)
Diffstat (limited to 'src/main/kotlin/dev/dnpm/etl/processor')
| -rw-r--r-- | src/main/kotlin/dev/dnpm/etl/processor/monitoring/Request.kt | 4 | ||||
| -rw-r--r-- | src/main/kotlin/dev/dnpm/etl/processor/web/HomeController.kt | 18 |
2 files changed, 21 insertions, 1 deletions
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/monitoring/Request.kt b/src/main/kotlin/dev/dnpm/etl/processor/monitoring/Request.kt index 0738650..028b4a3 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/monitoring/Request.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/monitoring/Request.kt @@ -20,6 +20,8 @@ package dev.dnpm.etl.processor.monitoring import org.springframework.data.annotation.Id +import org.springframework.data.domain.Page +import org.springframework.data.domain.Pageable import org.springframework.data.jdbc.repository.query.Query import org.springframework.data.relational.core.mapping.Embedded import org.springframework.data.relational.core.mapping.Table @@ -59,6 +61,8 @@ interface RequestRepository : CrudRepository<Request, Long>, PagingAndSortingRep fun findByUuidEquals(uuid: String): Optional<Request> + fun findRequestByPatientId(patientId: String, pageable: Pageable): Page<Request> + @Query("SELECT count(*) AS count, status FROM request WHERE type = 'MTB_FILE' GROUP BY status ORDER BY status, count DESC;") fun countStates(): List<CountedState> diff --git a/src/main/kotlin/dev/dnpm/etl/processor/web/HomeController.kt b/src/main/kotlin/dev/dnpm/etl/processor/web/HomeController.kt index 99b9972..6a256aa 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/web/HomeController.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/web/HomeController.kt @@ -40,13 +40,29 @@ class HomeController( ) { @GetMapping - fun index(@PageableDefault(page = 0, size = 20, sort = ["processedAt"], direction = Sort.Direction.DESC) pageable: Pageable, model: Model): String { + fun index( + @PageableDefault(page = 0, size = 20, sort = ["processedAt"], direction = Sort.Direction.DESC) pageable: Pageable, + model: Model + ): String { val requests = requestRepository.findAll(pageable) model.addAttribute("requests", requests) return "index" } + @GetMapping(path = ["patient/{patientId}"]) + fun byPatient( + @PathVariable patientId: String, + @PageableDefault(page = 0, size = 20, sort = ["processedAt"], direction = Sort.Direction.DESC) pageable: Pageable, + model: Model + ): String { + val requests = requestRepository.findRequestByPatientId(patientId, pageable) + model.addAttribute("patientId", patientId) + model.addAttribute("requests", requests) + + return "index" + } + @GetMapping(path = ["/report/{id}"]) fun report(@PathVariable id: RequestId, model: Model): String { val request = requestRepository.findByUuidEquals(id.toString()).orElse(null) ?: throw NotFoundException() |
