From 370ea87095bf6859b3d9623ab0f8252e10c1a9ee Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Mon, 15 Jul 2024 11:44:19 +0200 Subject: [PATCH] refactor: rename db column name to reflect content --- .../dnpm/etl/processor/monitoring/Request.kt | 18 +++++++++--------- .../etl/processor/services/RequestProcessor.kt | 2 +- .../etl/processor/services/RequestService.kt | 4 ++-- .../mariadb/V0_4_0__RenamePatientPseudonym.sql | 1 + .../V0_4_0__RenamePatientPseudonym.sql | 1 + src/main/resources/templates/index.html | 4 ++-- src/main/resources/templates/report.html | 2 +- .../processor/services/RequestServiceTest.kt | 6 +++--- 8 files changed, 20 insertions(+), 18 deletions(-) create mode 100644 src/main/resources/db/migration/mariadb/V0_4_0__RenamePatientPseudonym.sql create mode 100644 src/main/resources/db/migration/postgresql/V0_4_0__RenamePatientPseudonym.sql 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 d26d222..36c9705 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/monitoring/Request.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/monitoring/Request.kt @@ -36,7 +36,7 @@ import java.util.* data class Request( @Id val id: Long? = null, val uuid: RequestId = randomRequestId(), - val patientId: PatientPseudonym, + val patientPseudonym: PatientPseudonym, val pid: PatientId, @Column("fingerprint") val fingerprint: Fingerprint, @@ -47,24 +47,24 @@ data class Request( ) { constructor( uuid: RequestId, - patientId: PatientPseudonym, + patientPseudonym: PatientPseudonym, pid: PatientId, fingerprint: Fingerprint, type: RequestType, status: RequestStatus ) : - this(null, uuid, patientId, pid, fingerprint, type, status, Instant.now()) + this(null, uuid, patientPseudonym, pid, fingerprint, type, status, Instant.now()) constructor( uuid: RequestId, - patientId: PatientPseudonym, + patientPseudonym: PatientPseudonym, pid: PatientId, fingerprint: Fingerprint, type: RequestType, status: RequestStatus, processedAt: Instant ) : - this(null, uuid, patientId, pid, fingerprint, type, status, processedAt) + this(null, uuid, patientPseudonym, pid, fingerprint, type, status, processedAt) } @JvmRecord @@ -81,17 +81,17 @@ data class CountedState( interface RequestRepository : CrudRepository, PagingAndSortingRepository { - fun findAllByPatientIdOrderByProcessedAtDesc(patientId: PatientPseudonym): List + fun findAllByPatientPseudonymOrderByProcessedAtDesc(patientId: PatientPseudonym): List fun findByUuidEquals(uuid: RequestId): Optional - fun findRequestByPatientId(patientId: PatientPseudonym, pageable: Pageable): Page + fun findRequestByPatientPseudonym(patientPseudonym: PatientPseudonym, pageable: Pageable): Page @Query("SELECT count(*) AS count, status FROM request WHERE type = 'MTB_FILE' GROUP BY status ORDER BY status, count DESC;") fun countStates(): List @Query("SELECT count(*) AS count, status FROM (" + - "SELECT status, rank() OVER (PARTITION BY patient_id ORDER BY processed_at DESC) AS rank FROM request " + + "SELECT status, rank() OVER (PARTITION BY patient_pseudonym ORDER BY processed_at DESC) AS rank FROM request " + "WHERE type = 'MTB_FILE' AND status NOT IN ('DUPLICATION') " + ") rank WHERE rank = 1 GROUP BY status ORDER BY status, count DESC;") fun findPatientUniqueStates(): List @@ -100,7 +100,7 @@ interface RequestRepository : CrudRepository, PagingAndSortingRep fun countDeleteStates(): List @Query("SELECT count(*) AS count, status FROM (" + - "SELECT status, rank() OVER (PARTITION BY patient_id ORDER BY processed_at DESC) AS rank FROM request " + + "SELECT status, rank() OVER (PARTITION BY patient_pseudonym ORDER BY processed_at DESC) AS rank FROM request " + "WHERE type = 'DELETE'" + ") rank WHERE rank = 1 GROUP BY status ORDER BY status, count DESC;") fun findPatientUniqueDeleteStates(): List diff --git a/src/main/kotlin/dev/dnpm/etl/processor/services/RequestProcessor.kt b/src/main/kotlin/dev/dnpm/etl/processor/services/RequestProcessor.kt index 2cbfd2f..f4e6222 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/services/RequestProcessor.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/services/RequestProcessor.kt @@ -149,7 +149,7 @@ class RequestProcessor( requestService.save( Request( uuid = requestId, - patientId = emptyPatientPseudonym(), + patientPseudonym = emptyPatientPseudonym(), pid = patientId, fingerprint = Fingerprint.empty(), status = RequestStatus.ERROR, diff --git a/src/main/kotlin/dev/dnpm/etl/processor/services/RequestService.kt b/src/main/kotlin/dev/dnpm/etl/processor/services/RequestService.kt index 826b060..757b353 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/services/RequestService.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/services/RequestService.kt @@ -41,10 +41,10 @@ class RequestService( fun findByUuid(uuid: RequestId): Optional = requestRepository.findByUuidEquals(uuid) - fun findRequestByPatientId(patientId: PatientPseudonym, pageable: Pageable): Page = requestRepository.findRequestByPatientId(patientId, pageable) + fun findRequestByPatientId(patientPseudonym: PatientPseudonym, pageable: Pageable): Page = requestRepository.findRequestByPatientPseudonym(patientPseudonym, pageable) fun allRequestsByPatientPseudonym(patientPseudonym: PatientPseudonym) = requestRepository - .findAllByPatientIdOrderByProcessedAtDesc(patientPseudonym) + .findAllByPatientPseudonymOrderByProcessedAtDesc(patientPseudonym) fun lastMtbFileRequestForPatientPseudonym(patientPseudonym: PatientPseudonym) = Companion.lastMtbFileRequestForPatientPseudonym(allRequestsByPatientPseudonym(patientPseudonym)) diff --git a/src/main/resources/db/migration/mariadb/V0_4_0__RenamePatientPseudonym.sql b/src/main/resources/db/migration/mariadb/V0_4_0__RenamePatientPseudonym.sql new file mode 100644 index 0000000..bb2b0cc --- /dev/null +++ b/src/main/resources/db/migration/mariadb/V0_4_0__RenamePatientPseudonym.sql @@ -0,0 +1 @@ +ALTER TABLE request RENAME COLUMN patient_id TO patient_pseudonym; \ No newline at end of file diff --git a/src/main/resources/db/migration/postgresql/V0_4_0__RenamePatientPseudonym.sql b/src/main/resources/db/migration/postgresql/V0_4_0__RenamePatientPseudonym.sql new file mode 100644 index 0000000..bb2b0cc --- /dev/null +++ b/src/main/resources/db/migration/postgresql/V0_4_0__RenamePatientPseudonym.sql @@ -0,0 +1 @@ +ALTER TABLE request RENAME COLUMN patient_id TO patient_pseudonym; \ No newline at end of file diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 520efb6..568ba30 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -62,10 +62,10 @@ - [[ ${request.patientId} ]] + [[ ${request.patientPseudonym} ]] - [[ ${request.patientId} ]] + [[ ${request.patientPseudonym} ]] *** diff --git a/src/main/resources/templates/report.html b/src/main/resources/templates/report.html index 07f987c..21d1b48 100644 --- a/src/main/resources/templates/report.html +++ b/src/main/resources/templates/report.html @@ -31,7 +31,7 @@ [[ ${request.type} ]] [[ ${request.uuid} ]] - [[ ${request.patientId} ]] + [[ ${request.patientPseudonym} ]] *** diff --git a/src/test/kotlin/dev/dnpm/etl/processor/services/RequestServiceTest.kt b/src/test/kotlin/dev/dnpm/etl/processor/services/RequestServiceTest.kt index 470c048..2e289c5 100644 --- a/src/test/kotlin/dev/dnpm/etl/processor/services/RequestServiceTest.kt +++ b/src/test/kotlin/dev/dnpm/etl/processor/services/RequestServiceTest.kt @@ -206,21 +206,21 @@ class RequestServiceTest { fun allRequestsByPatientPseudonymShouldRequestAllRequestsForPatientPseudonym() { requestService.allRequestsByPatientPseudonym(PatientPseudonym("TEST_12345678901")) - verify(requestRepository, times(1)).findAllByPatientIdOrderByProcessedAtDesc(anyValueClass()) + verify(requestRepository, times(1)).findAllByPatientPseudonymOrderByProcessedAtDesc(anyValueClass()) } @Test fun lastMtbFileRequestForPatientPseudonymShouldRequestAllRequestsForPatientPseudonym() { requestService.lastMtbFileRequestForPatientPseudonym(PatientPseudonym("TEST_12345678901")) - verify(requestRepository, times(1)).findAllByPatientIdOrderByProcessedAtDesc(anyValueClass()) + verify(requestRepository, times(1)).findAllByPatientPseudonymOrderByProcessedAtDesc(anyValueClass()) } @Test fun isLastRequestDeletionShouldRequestAllRequestsForPatientPseudonym() { requestService.isLastRequestWithKnownStatusDeletion(PatientPseudonym("TEST_12345678901")) - verify(requestRepository, times(1)).findAllByPatientIdOrderByProcessedAtDesc(anyValueClass()) + verify(requestRepository, times(1)).findAllByPatientPseudonymOrderByProcessedAtDesc(anyValueClass()) } } \ No newline at end of file