diff --git a/src/main/kotlin/de/dzptm/server/Extractor.kt b/src/main/kotlin/de/dzptm/server/Extractor.kt index 3cc47bb2c63c7f840840fc9576ca421bf3f6bcb6..7b680f5a5681e4b9d858195038ff5eb5f68e9116 100644 --- a/src/main/kotlin/de/dzptm/server/Extractor.kt +++ b/src/main/kotlin/de/dzptm/server/Extractor.kt @@ -26,6 +26,8 @@ object Extractor { val modality = getModality(cas) val (anamnesis, question) = getAnamnesisQuestionFromPython(input.doctext) + val ppAnamnesis = postProcessAnamnesis(anamnesis) + val ppQuestion = postProcessQuestion(question) val pregnancy = getSAPEnumValueForAttributeID(cas, "Schwangerschaft") val implantate = getSAPEnumValueForAttributeID(cas, "Implantat") val allergy = getSAPEnumValueForAttributeID(cas, "Allergie") @@ -35,9 +37,9 @@ object Extractor { docid = input.docid, doctime = input.doctime, modality = modality, - anamnesis = anamnesis, - diagnosis = anamnesis, - question = postProcessQuestion(question), + anamnesis = ppAnamnesis, + diagnosis = ppAnamnesis, + question = ppQuestion, notice = "", pregnancy = pregnancy, pregnancy_week = "", @@ -100,7 +102,7 @@ object Extractor { } private fun postProcessQuestion(question: String): String { - val pattern = Pattern.compile("(?i)(termin|vielen dank)") + val pattern = Pattern.compile("(?i)(termin|vielen dank|5\\.|bitte|kein)") val matcher = pattern.matcher(question) if (matcher.find()) { return question.substring(0, matcher.start()).trim() @@ -108,6 +110,15 @@ object Extractor { return question } + private fun postProcessAnamnesis(anamnesis: String): String { + val pattern = Pattern.compile("(?i)(fragestellung|4\\.)") + val matcher = pattern.matcher(anamnesis) + if (matcher.find()) { + return anamnesis.substring(0, matcher.start()).trim() + } + return anamnesis + } + private fun getAnamnesisQuestionFromPython(doctext: String): Pair<String, String> { val url = "http://localhost:$pythonPort/predict" try {