From ea3dce8ccc14b67d7fb95ced404616b063f77258 Mon Sep 17 00:00:00 2001 From: Piruin Panichphol Date: Tue, 25 Dec 2018 16:52:12 +0700 Subject: [PATCH] Implement field input template for symptom, HomeVisit.detail, HomeVisit.result --- ffc/build.gradle | 4 +- .../community/HomeVisitFormFragment.kt | 60 +++++++++++++++---- .../health/service/community/TemplateApi.kt | 60 +++++++++++++++++++ 3 files changed, 112 insertions(+), 12 deletions(-) create mode 100644 ffc/src/main/kotlin/ffc/app/health/service/community/TemplateApi.kt diff --git a/ffc/build.gradle b/ffc/build.gradle index 9958df05..55b5ba28 100644 --- a/ffc/build.gradle +++ b/ffc/build.gradle @@ -112,10 +112,10 @@ dependencies { implementation 'com.fatboyindustrial.gson-jodatime-serialisers:gson-jodatime-serialisers:1.6.0' implementation 'com.github.bumptech.glide:glide:4.7.1' implementation "com.github.chrisbanes:PhotoView:2.1.3" - implementation 'com.github.ffc-nectec:entities:1.0.0-alpha13' + implementation 'com.github.ffc-nectec:entities:61ebf124c8' implementation 'com.github.ffc-nectec.genogram:genogram-android:1.0.0-alpha4' implementation 'com.github.piruin:AsymmetricGridView:7faa393d0e' - implementation 'com.github.piruin.geok:geok-gson:1.0.0-alpha-2' + implementation 'com.github.piruin.geok:geok-gson:1.0.0' implementation 'com.github.piruin:retrofit-dsl:1.2' implementation 'com.github.santalu:emptyview:1.3.6' implementation 'com.github.sembozdemir:PermissionsKt:1.0.0' diff --git a/ffc/src/main/kotlin/ffc/app/health/service/community/HomeVisitFormFragment.kt b/ffc/src/main/kotlin/ffc/app/health/service/community/HomeVisitFormFragment.kt index a5b3ca89..4488e62e 100644 --- a/ffc/src/main/kotlin/ffc/app/health/service/community/HomeVisitFormFragment.kt +++ b/ffc/src/main/kotlin/ffc/app/health/service/community/HomeVisitFormFragment.kt @@ -19,20 +19,24 @@ package ffc.app.health.service.community import android.arch.lifecycle.MutableLiveData import android.os.Bundle +import android.support.design.widget.TextInputEditText import android.support.v4.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import ffc.android.check import ffc.android.observe +import ffc.android.onLongClick import ffc.android.viewModel import ffc.app.R +import ffc.app.familyFolderActivity import ffc.app.health.service.HealthCareServivceForm import ffc.app.util.SimpleViewModel import ffc.app.util.datetime.th_TH import ffc.app.util.datetime.toCalendar import ffc.app.util.datetime.toLocalDate import ffc.app.util.setInto +import ffc.entity.Template import ffc.entity.healthcare.CommunityService import ffc.entity.healthcare.HealthCareService import ffc.entity.healthcare.HomeVisit @@ -42,13 +46,15 @@ import kotlinx.android.synthetic.main.hs_homevisit_from_fragment.planField import kotlinx.android.synthetic.main.hs_homevisit_from_fragment.resultField import kotlinx.android.synthetic.main.hs_homevisit_from_fragment.syntomField import me.piruin.spinney.Spinney +import me.piruin.spinney.SpinneyAdapter +import me.piruin.spinney.SpinneyDialog import org.jetbrains.anko.support.v4.find import org.jetbrains.anko.support.v4.toast internal class HomeVisitFormFragment : Fragment(), HealthCareServivceForm { val communityServicesField by lazy { find>(R.id.communityServiceField) } - val serviceTypeViewModel by lazy { viewModel() } + val viewModel by lazy { viewModel() } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { return inflater.inflate(R.layout.hs_homevisit_from_fragment, container, false) @@ -63,30 +69,62 @@ internal class HomeVisitFormFragment : Fragment(), HealthCareServivceForm + if (!templates.isNullOrEmpty()) { + syntomField.setTemplateAdapter( + templates.filter { it.field == "HealthCareService.syntom" } + ) + detailField.setTemplateAdapter( + templates.filter { it.field == "HomeVisit.detail" } + ) + resultField.setTemplateAdapter( + templates.filter { it.field == "HomeVisit.result" } + ) + } + } communityServiceTypes(context!!).all { - onFound { serviceTypeViewModel.content.value = it } - onNotFound { serviceTypeViewModel.content.value = listOf() } - onFail { serviceTypeViewModel.exception.value = it } + onFound { viewModel.content.value = it } + onNotFound { viewModel.content.value = listOf() } + onFail { viewModel.exception.value = it } + } + + templatesOf(familyFolderActivity.org!!).all { + onFound { viewModel.templates.value = it } + onNotFound { viewModel.templates.value = listOf() } + onFail { viewModel.exception.value = it } + } + } + + private fun TextInputEditText.setTemplateAdapter(template: List