diff options
Diffstat (limited to 'src/main/java/DNPM/services/mtb/DefaultMtbService.java')
| -rw-r--r-- | src/main/java/DNPM/services/mtb/DefaultMtbService.java | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/main/java/DNPM/services/mtb/DefaultMtbService.java b/src/main/java/DNPM/services/mtb/DefaultMtbService.java index 9926a82..abfbf59 100644 --- a/src/main/java/DNPM/services/mtb/DefaultMtbService.java +++ b/src/main/java/DNPM/services/mtb/DefaultMtbService.java @@ -1,5 +1,6 @@ package DNPM.services.mtb; +import de.itc.onkostar.api.IOnkostarApi; import de.itc.onkostar.api.Procedure; import java.util.Comparator; @@ -14,12 +15,18 @@ import java.util.stream.Collectors; */ public class DefaultMtbService implements MtbService { + private final IOnkostarApi onkostarApi; + + public DefaultMtbService(final IOnkostarApi onkostarApi) { + this.onkostarApi = onkostarApi; + } + @Override public String getProtocol(List<Procedure> procedures) { return procedures.stream() .sorted(Comparator.comparing(Procedure::getStartDate)) .map(procedure -> { - var mapper = MtbService.procedureToProtocolMapper(procedure); + var mapper = procedureToProtocolMapper(procedure); return mapper.apply(procedure); }) .filter(Optional::isPresent) @@ -29,4 +36,18 @@ public class DefaultMtbService implements MtbService { } + @Override + public ProcedureToProtocolMapper procedureToProtocolMapper(Procedure procedure) { + switch (procedure.getFormName()) { + case "OS.Tumorkonferenz": + return new OsTumorkonferenzToProtocolMapper(); + case "OS.Tumorkonferenz.VarianteUKW": + return new OsTumorkonferenzVarianteUkwToProtocolMapper(); + case "MR.MTB_Anmeldung": + return new MrMtbAnmeldungToProtocolMapper(this.onkostarApi); + default: + return p -> Optional.empty(); + } + } + } |
