From 3e13505a7a0e4413f816bf5725dc9226b1e3048f Mon Sep 17 00:00:00 2001 From: oleksandrsarapulovgl <82441124+oleksandrsarapulovgl@users.noreply.github.com> Date: Fri, 4 Jun 2021 12:14:15 +0300 Subject: [PATCH] Implemneted disease parsing into human-readable text (#75) --- .../app/android/model/CertificateModel.kt | 13 ++++++--- .../dgca/verifier/app/android/model/Mapper.kt | 27 +++++++++++++------ .../verification/RecoveryViewHolder.kt | 2 +- .../android/verification/TestViewHolder.kt | 2 +- .../verification/VaccinationViewHolder.kt | 2 +- 5 files changed, 31 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/dgca/verifier/app/android/model/CertificateModel.kt b/app/src/main/java/dgca/verifier/app/android/model/CertificateModel.kt index c2fce8ee..f577aae4 100644 --- a/app/src/main/java/dgca/verifier/app/android/model/CertificateModel.kt +++ b/app/src/main/java/dgca/verifier/app/android/model/CertificateModel.kt @@ -38,7 +38,7 @@ data class PersonModel( ) data class VaccinationModel( - override val disease: String, + override val disease: DiseaseType, val vaccine: String, val medicinalProduct: String, val manufacturer: String, @@ -51,7 +51,7 @@ data class VaccinationModel( ) : CertificateData data class TestModel( - override val disease: String, + override val disease: DiseaseType, val typeOfTest: String, val testName: String?, val testNameAndManufacturer: String?, @@ -70,8 +70,13 @@ enum class TestResult(val value: String) { NOT_DETECTED("NOT DETECTED") } +enum class DiseaseType(val value: String) { + COVID_19("COVID-19"), + UNDEFINED("UNDEFINED") +} + data class RecoveryModel( - override val disease: String, + override val disease: DiseaseType, val dateOfFirstPositiveTest: String, val countryOfVaccination: String, val certificateIssuer: String, @@ -81,5 +86,5 @@ data class RecoveryModel( ) : CertificateData interface CertificateData { - val disease: String + val disease: DiseaseType } \ No newline at end of file diff --git a/app/src/main/java/dgca/verifier/app/android/model/Mapper.kt b/app/src/main/java/dgca/verifier/app/android/model/Mapper.kt index 0d2018a0..856f792d 100644 --- a/app/src/main/java/dgca/verifier/app/android/model/Mapper.kt +++ b/app/src/main/java/dgca/verifier/app/android/model/Mapper.kt @@ -22,11 +22,7 @@ package dgca.verifier.app.android.model -import dgca.verifier.app.decoder.model.GreenCertificate -import dgca.verifier.app.decoder.model.Person -import dgca.verifier.app.decoder.model.RecoveryStatement -import dgca.verifier.app.decoder.model.Test -import dgca.verifier.app.decoder.model.Vaccination +import dgca.verifier.app.decoder.model.* fun GreenCertificate.toCertificateModel(): CertificateModel { return CertificateModel( @@ -40,7 +36,7 @@ fun GreenCertificate.toCertificateModel(): CertificateModel { fun RecoveryStatement.toRecoveryModel(): RecoveryModel { return RecoveryModel( - disease = disease, + disease = disease.toDiseaseCode().toDiseaseType(), dateOfFirstPositiveTest = dateOfFirstPositiveTest, countryOfVaccination = countryOfVaccination, certificateIssuer = certificateIssuer, @@ -52,7 +48,7 @@ fun RecoveryStatement.toRecoveryModel(): RecoveryModel { fun Test.toTestModel(): TestModel { return TestModel( - disease = disease, + disease = disease.toDiseaseCode().toDiseaseType(), typeOfTest = typeOfTest, testName = testName, testNameAndManufacturer = testNameAndManufacturer, @@ -74,9 +70,14 @@ fun Test.TestResult.toTestResult(): TestResult { } } +fun DiseaseCode.toDiseaseType(): DiseaseType = when (this) { + DiseaseCode.COVID_19 -> DiseaseType.COVID_19 + else -> DiseaseType.UNDEFINED +} + fun Vaccination.toVaccinationModel(): VaccinationModel { return VaccinationModel( - disease = disease, + disease = disease.toDiseaseCode().toDiseaseType(), vaccine = vaccine, medicinalProduct = medicinalProduct, manufacturer = manufacturer, @@ -96,4 +97,14 @@ fun Person.toPersonModel(): PersonModel { standardisedGivenName = standardisedGivenName, givenName = givenName ) +} + +fun String.toDiseaseCode(): DiseaseCode = when (this) { + DiseaseCode.COVID_19.value -> DiseaseCode.COVID_19 + else -> DiseaseCode.UNDEFINED +} + +enum class DiseaseCode(val value: String) { + COVID_19("840539006"), + UNDEFINED("") } \ No newline at end of file diff --git a/app/src/main/java/dgca/verifier/app/android/verification/RecoveryViewHolder.kt b/app/src/main/java/dgca/verifier/app/android/verification/RecoveryViewHolder.kt index b25c77c4..732cd7fa 100644 --- a/app/src/main/java/dgca/verifier/app/android/verification/RecoveryViewHolder.kt +++ b/app/src/main/java/dgca/verifier/app/android/verification/RecoveryViewHolder.kt @@ -34,7 +34,7 @@ import dgca.verifier.app.android.parseFromTo class RecoveryViewHolder(private val binding: ItemRecoveryBinding) : RecyclerView.ViewHolder(binding.root) { fun bind(data: RecoveryModel) { - binding.diseaseValue.text = data.disease + binding.diseaseValue.text = data.disease.value binding.validFromValue.text = data.certificateValidFrom.parseFromTo(YEAR_MONTH_DAY, FORMATTED_YEAR_MONTH_DAY) binding.validUntilValue.text = data.certificateValidUntil.parseFromTo(YEAR_MONTH_DAY, FORMATTED_YEAR_MONTH_DAY) binding.dateOfPositiveValue.text = data.dateOfFirstPositiveTest.parseFromTo(YEAR_MONTH_DAY, FORMATTED_YEAR_MONTH_DAY) diff --git a/app/src/main/java/dgca/verifier/app/android/verification/TestViewHolder.kt b/app/src/main/java/dgca/verifier/app/android/verification/TestViewHolder.kt index 6f14affe..989ff4fd 100644 --- a/app/src/main/java/dgca/verifier/app/android/verification/TestViewHolder.kt +++ b/app/src/main/java/dgca/verifier/app/android/verification/TestViewHolder.kt @@ -45,7 +45,7 @@ class TestViewHolder(private val binding: ItemTestBinding) : RecyclerView.ViewHo binding.dateOfTestResultValue.text = this } binding.dateOfTestResultValue.visibility = if(dateOfTestResultString?.isNotEmpty() == true) View.VISIBLE else View.GONE - binding.diseaseValue.text = data.disease + binding.diseaseValue.text = data.disease.value binding.typeOfTestValue.text = data.typeOfTest binding.countryValue.text = data.countryOfVaccination } diff --git a/app/src/main/java/dgca/verifier/app/android/verification/VaccinationViewHolder.kt b/app/src/main/java/dgca/verifier/app/android/verification/VaccinationViewHolder.kt index 5bad4cde..f1fbe5fd 100644 --- a/app/src/main/java/dgca/verifier/app/android/verification/VaccinationViewHolder.kt +++ b/app/src/main/java/dgca/verifier/app/android/verification/VaccinationViewHolder.kt @@ -35,7 +35,7 @@ class VaccinationViewHolder(private val binding: ItemVaccinationBinding) : Recyc fun bind(data: VaccinationModel) { binding.dateValue.text = data.dateOfVaccination.parseFromTo(YEAR_MONTH_DAY, FORMATTED_YEAR_MONTH_DAY) - binding.diseaseValue.text = data.disease + binding.diseaseValue.text = data.disease.value binding.doseTotalNumberValue.text = data.totalSeriesOfDoses.toString() binding.doseSequenceValue.text = data.doseNumber.toString() binding.countryValue.text = data.countryOfVaccination