diff options
| author | Paul-Christian Volkmer | 2023-03-20 22:59:02 +0100 |
|---|---|---|
| committer | GitHub | 2023-03-20 22:59:02 +0100 |
| commit | 7fe580733c1354ef8ea5a7071aeae6818a97f7cf (patch) | |
| tree | 271dc83ad9f4f4e72250b396662db92f3e37bfbe /src/main/java/DNPM/services/mtb/OsTumorkonferenzVarianteUkwToProtocolMapper.java | |
| parent | a8a5e1be8a8bc8a048106b608fa4f58d80a66444 (diff) | |
| parent | aad777b5e36238ef437210bd9ad3ea51c3274a45 (diff) | |
Merge pull request #12 from CCC-MF/issue_11
Übernahme des MTB-Protokolls in DNPM-Therapieplan - Protokollauszug
Diffstat (limited to 'src/main/java/DNPM/services/mtb/OsTumorkonferenzVarianteUkwToProtocolMapper.java')
| -rw-r--r-- | src/main/java/DNPM/services/mtb/OsTumorkonferenzVarianteUkwToProtocolMapper.java | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/main/java/DNPM/services/mtb/OsTumorkonferenzVarianteUkwToProtocolMapper.java b/src/main/java/DNPM/services/mtb/OsTumorkonferenzVarianteUkwToProtocolMapper.java new file mode 100644 index 0000000..78a94eb --- /dev/null +++ b/src/main/java/DNPM/services/mtb/OsTumorkonferenzVarianteUkwToProtocolMapper.java @@ -0,0 +1,42 @@ +package DNPM.services.mtb; + +import de.itc.onkostar.api.Procedure; + +import java.util.Comparator; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +public class OsTumorkonferenzVarianteUkwToProtocolMapper implements ProcedureToProtocolMapper { + @Override + public Optional<String> apply(List<Procedure> procedures) { + procedures.forEach(procedure -> { + assert (procedure.getFormName().equals("OS.Tumorkonferenz.VarianteUKW")); + }); + + procedures.sort(Comparator.comparing(Procedure::getStartDate)); + + var result = procedures.stream().map(procedure -> { + var fragestellung = procedure.getValue("Fragestellung"); + var empfehlung = procedure.getValue("Empfehlung"); + + if ( + null != fragestellung && !fragestellung.getString().isBlank() + && null != empfehlung && !empfehlung.getString().isBlank() + ) { + return String.format("Fragestellung:\n%s\n\nEmpfehlung:\n%s", fragestellung.getString().trim(), empfehlung.getString().trim()); + } else if (null != fragestellung && !fragestellung.getString().isBlank()) { + return fragestellung.getString().trim(); + } else if (null != empfehlung && !empfehlung.getString().isBlank()) { + return empfehlung.getString().trim(); + } + return ""; + }).collect(Collectors.joining("\n\n")); + + if (!result.isBlank()) { + return Optional.of(result); + } + + return Optional.empty(); + } +} |
