summaryrefslogtreecommitdiff
path: root/src/main/kotlin/dev
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/dev')
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/monitoring/Request.kt4
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/web/HomeController.kt18
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()