mirror of
https://github.com/pcvolkmer/etl-processor.git
synced 2025-04-20 01:36:50 +00:00
feat: add page that shows transformation configuration
This commit is contained in:
parent
7f54efe034
commit
8e83fe1c12
@ -51,9 +51,13 @@ class TransformationService(private val objectMapper: ObjectMapper, private val
|
|||||||
return objectMapper.readValue(json, MtbFile::class.java)
|
return objectMapper.readValue(json, MtbFile::class.java)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getTransformations(): List<Transformation> {
|
||||||
|
return this.transformations
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class Transformation private constructor(internal val path: String) {
|
class Transformation private constructor(val path: String) {
|
||||||
|
|
||||||
lateinit var existingValue: Any
|
lateinit var existingValue: Any
|
||||||
private set
|
private set
|
||||||
|
@ -0,0 +1,41 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of ETL-Processor
|
||||||
|
*
|
||||||
|
* Copyright (c) 2023 Comprehensive Cancer Center Mainfranken, Datenintegrationszentrum Philipps-Universität Marburg and Contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as published
|
||||||
|
* by the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package dev.dnpm.etl.processor.web
|
||||||
|
|
||||||
|
import dev.dnpm.etl.processor.services.TransformationService
|
||||||
|
import org.springframework.stereotype.Controller
|
||||||
|
import org.springframework.ui.Model
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping
|
||||||
|
|
||||||
|
@Controller
|
||||||
|
@RequestMapping(path = ["transformations"])
|
||||||
|
class TransformationController(
|
||||||
|
private val transformationService: TransformationService
|
||||||
|
) {
|
||||||
|
|
||||||
|
@GetMapping
|
||||||
|
fun index(model: Model): String {
|
||||||
|
model.addAttribute("transformations", transformationService.getTransformations())
|
||||||
|
|
||||||
|
return "transformations"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -86,6 +86,10 @@ nav > ul > li:first-of-type {
|
|||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.centered {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
main {
|
main {
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
max-width: 1140px;
|
max-width: 1140px;
|
||||||
@ -209,6 +213,25 @@ td.bg-gray, th.bg-gray {
|
|||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.bg-path {
|
||||||
|
background: var(--bg-gray-op);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-from {
|
||||||
|
background: var(--bg-red-op);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-to {
|
||||||
|
background: var(--bg-green-op);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-path, .bg-from, .bg-to {
|
||||||
|
padding: 0.25rem 0.5rem;
|
||||||
|
border-radius: 3px;
|
||||||
|
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
td.bg-shaded, th.bg-shaded {
|
td.bg-shaded, th.bg-shaded {
|
||||||
background: repeating-linear-gradient(140deg, white, #e5e5f5 4px, white 8px);
|
background: repeating-linear-gradient(140deg, white, #e5e5f5 4px, white 8px);
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a th:href="@{/}">Übersicht</a></li>
|
<li><a th:href="@{/}">Übersicht</a></li>
|
||||||
<li><a th:href="@{/statistics}">Statistiken</a></li>
|
<li><a th:href="@{/statistics}">Statistiken</a></li>
|
||||||
|
<li><a th:href="@{/transformations}">Transformationen</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
|
47
src/main/resources/templates/transformations.html
Normal file
47
src/main/resources/templates/transformations.html
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de" xmlns:th="http://www.thymeleaf.org">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>ETL-Prozessor</title>
|
||||||
|
<link rel="stylesheet" th:href="@{/style.css}" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div th:replace="~{fragments.html :: nav}"></div>
|
||||||
|
<main>
|
||||||
|
<h1>Transformationen</h1>
|
||||||
|
|
||||||
|
<h2>Syntax</h2>
|
||||||
|
Hier einige Beispiele zum Syntax des JSON-Path
|
||||||
|
<ul>
|
||||||
|
<li style="padding: 0.6rem 0;"><span class="bg-path">diagnoses[*].icdO3T.version</span>: Ersetze die ICD-O3T-Version in allen Diagnosen, z.B. zur Version der deutschen Übersetzung</li>
|
||||||
|
<li style="padding: 0.6rem 0;"><span class="bg-path">patient.gender</span>: Ersetze das Geschlecht des Patienten, z.B. in das von bwHC verlangte Format</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>Konfigurierte Transformationen</h2>
|
||||||
|
<p>
|
||||||
|
Hier sehen Sie eine Übersicht der konfigurierten Transformationen.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>JSON-Path</th>
|
||||||
|
<th>Transformation von ⇒ nach</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr th:each="transformation : ${transformations}">
|
||||||
|
<td>
|
||||||
|
<span class="bg-path" title="Ersetze Wert(e) an dieser Stelle im MTB-File">[[ ${transformation.path} ]]</span>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<span class="bg-from" title="Ersetze immer dann, wenn dieser Wert enthalten ist">[[ ${transformation.existingValue} ]]</span>
|
||||||
|
<strong>⇒</strong>
|
||||||
|
<span class="bg-to" title="Ersetze durch diesen Wert">[[ ${transformation.newValue} ]]</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
x
Reference in New Issue
Block a user