Skip to content

Commit

Permalink
Merge branch 'master' into main-release
Browse files Browse the repository at this point in the history
  • Loading branch information
ndegwamartin committed Feb 24, 2023
2 parents 7aa06df + 409b45f commit 7544694
Show file tree
Hide file tree
Showing 165 changed files with 2,825 additions and 2,840 deletions.
4 changes: 2 additions & 2 deletions buildSrc/src/main/kotlin/Releases.kt
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ object Releases {

object DataCapture : LibraryArtifact {
override val artifactId = "data-capture"
override val version = "0.1.0-beta06-preview8-SNAPSHOT"
override val version = "1.0.0"
override val name = "Android FHIR Structured Data Capture Library"
}

Expand All @@ -72,7 +72,7 @@ object Releases {
}
}

object ImplmentationGuide : LibraryArtifact {
object ImplementationGuide : LibraryArtifact {
override val artifactId = "implementationguide"
override val version = "0.1.0-alpha001"
override val name = "Android FHIR Implementation Guide Library"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,8 @@ class ComponentListViewHolder(

class ComponentHeaderViewHolder(private val binding: ComponentHeaderLayoutBinding) :
RecyclerView.ViewHolder(binding.root), ComponentViewHolder {
override fun bind(viewItem: ComponentListViewModel.ViewItem) {
val headerItem = viewItem as ComponentListViewModel.ViewItem.HeaderItem
override fun bind(component: ComponentListViewModel.ViewItem) {
val headerItem = component as ComponentListViewModel.ViewItem.HeaderItem
binding.tvComponentHeader.text =
binding.tvComponentHeader.context.getString(headerItem.header.textId)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,16 @@ package com.google.android.fhir.catalog

import android.view.View
import android.widget.NumberPicker
import com.google.android.fhir.datacapture.views.QuestionnaireItemViewHolderDelegate
import com.google.android.fhir.datacapture.views.QuestionnaireItemViewHolderFactory
import com.google.android.fhir.datacapture.views.QuestionnaireItemViewItem
import com.google.android.fhir.datacapture.views.QuestionnaireViewItem
import com.google.android.fhir.datacapture.views.factories.QuestionnaireItemViewHolderDelegate
import com.google.android.fhir.datacapture.views.factories.QuestionnaireItemViewHolderFactory

object CustomNumberPickerFactory :
QuestionnaireItemViewHolderFactory(R.layout.custom_number_picker_layout) {
override fun getQuestionnaireItemViewHolderDelegate(): QuestionnaireItemViewHolderDelegate =
object : QuestionnaireItemViewHolderDelegate {
private lateinit var numberPicker: NumberPicker
override lateinit var questionnaireItemViewItem: QuestionnaireItemViewItem
override lateinit var questionnaireViewItem: QuestionnaireViewItem

override fun init(itemView: View) {
/**
Expand All @@ -37,7 +37,7 @@ object CustomNumberPickerFactory :
numberPicker = itemView.findViewById(R.id.number_picker)
}

override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem) {
override fun bind(questionnaireViewItem: QuestionnaireViewItem) {
numberPicker.minValue = 1
numberPicker.maxValue = 100
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
package com.google.android.fhir.catalog

import com.google.android.fhir.datacapture.QuestionnaireFragment.QuestionnaireItemViewHolderFactoryMatcher
import com.google.android.fhir.datacapture.contrib.views.barcode.QuestionnaireItemBarCodeReaderViewHolderFactory
import com.google.android.fhir.datacapture.contrib.views.barcode.BarCodeReaderViewHolderFactory

// TODO Remove this file and move this code to maybe a custom view in catalog app?
class CustomQuestionnaireFragment /*: QuestionnaireFragment()*/ {
Expand All @@ -29,14 +29,12 @@ class CustomQuestionnaireFragment /*: QuestionnaireFragment()*/ {
if (it == null) false else it.value.toString() == CustomNumberPickerFactory.WIDGET_TYPE
}
},
QuestionnaireItemViewHolderFactoryMatcher(QuestionnaireItemBarCodeReaderViewHolderFactory) {
questionnaireItem ->
questionnaireItem
.getExtensionByUrl(QuestionnaireItemBarCodeReaderViewHolderFactory.WIDGET_EXTENSION)
.let {
if (it == null) false
else it.value.toString() == QuestionnaireItemBarCodeReaderViewHolderFactory.WIDGET_TYPE
}
QuestionnaireItemViewHolderFactoryMatcher(BarCodeReaderViewHolderFactory) { questionnaireItem
->
questionnaireItem.getExtensionByUrl(BarCodeReaderViewHolderFactory.WIDGET_EXTENSION).let {
if (it == null) false
else it.value.toString() == BarCodeReaderViewHolderFactory.WIDGET_TYPE
}
}
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ import androidx.test.annotation.UiThreadTest
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
import com.google.android.fhir.datacapture.validation.NotValidated
import com.google.android.fhir.datacapture.views.QuestionnaireItemViewHolder
import com.google.android.fhir.datacapture.views.QuestionnaireItemViewItem
import com.google.android.fhir.datacapture.views.QuestionnaireViewItem
import com.google.android.fhir.datacapture.views.factories.QuestionnaireItemViewHolder
import com.google.common.truth.Truth.assertThat
import org.hl7.fhir.r4.model.Questionnaire
import org.hl7.fhir.r4.model.QuestionnaireResponse
Expand All @@ -35,7 +35,7 @@ import org.junit.Test
import org.junit.runner.RunWith

@RunWith(AndroidJUnit4::class)
class QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest {
class BarCodeReaderViewHolderFactoryInstrumentedTest {

private lateinit var context: ContextThemeWrapper
private lateinit var parent: FrameLayout
Expand All @@ -49,13 +49,13 @@ class QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest {
R.style.Theme_MaterialComponents
)
parent = FrameLayout(context)
viewHolder = QuestionnaireItemBarCodeReaderViewHolderFactory.create(parent)
viewHolder = BarCodeReaderViewHolderFactory.create(parent)
}

@Test
fun shouldShowPrefixText() {
viewHolder.bind(
QuestionnaireItemViewItem(
QuestionnaireViewItem(
Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
QuestionnaireResponse.QuestionnaireResponseItemComponent(),
validationResult = NotValidated,
Expand All @@ -72,7 +72,7 @@ class QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
QuestionnaireItemViewItem(
QuestionnaireViewItem(
Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
QuestionnaireResponse.QuestionnaireResponseItemComponent(),
validationResult = NotValidated,
Expand All @@ -87,7 +87,7 @@ class QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewText() {
viewHolder.bind(
QuestionnaireItemViewItem(
QuestionnaireViewItem(
Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
QuestionnaireResponse.QuestionnaireResponseItemComponent(),
validationResult = NotValidated,
Expand All @@ -104,7 +104,7 @@ class QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputText() {
viewHolder.bind(
QuestionnaireItemViewItem(
QuestionnaireViewItem(
Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
QuestionnaireResponse.QuestionnaireResponseItemComponent()
.addAnswer(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,22 +22,22 @@ import android.widget.TextView
import com.google.android.fhir.datacapture.contrib.views.barcode.mlkit.md.LiveBarcodeScanningFragment
import com.google.android.fhir.datacapture.localizedPrefixSpanned
import com.google.android.fhir.datacapture.localizedTextSpanned
import com.google.android.fhir.datacapture.utilities.tryUnwrapContext
import com.google.android.fhir.datacapture.views.QuestionnaireItemViewHolderDelegate
import com.google.android.fhir.datacapture.views.QuestionnaireItemViewHolderFactory
import com.google.android.fhir.datacapture.views.QuestionnaireItemViewItem
import com.google.android.fhir.datacapture.tryUnwrapContext
import com.google.android.fhir.datacapture.views.QuestionnaireViewItem
import com.google.android.fhir.datacapture.views.factories.QuestionnaireItemViewHolderDelegate
import com.google.android.fhir.datacapture.views.factories.QuestionnaireItemViewHolderFactory
import org.hl7.fhir.r4.model.QuestionnaireResponse
import org.hl7.fhir.r4.model.StringType

object QuestionnaireItemBarCodeReaderViewHolderFactory :
object BarCodeReaderViewHolderFactory :
QuestionnaireItemViewHolderFactory(R.layout.questionnaire_item_bar_code_reader_view) {
override fun getQuestionnaireItemViewHolderDelegate() =
object : QuestionnaireItemViewHolderDelegate {
private lateinit var prefixTextView: TextView
private lateinit var textQuestion: TextView
private lateinit var barcodeTextView: TextView
private lateinit var reScanView: TextView
override lateinit var questionnaireItemViewItem: QuestionnaireItemViewItem
override lateinit var questionnaireViewItem: QuestionnaireViewItem

override fun init(itemView: View) {
prefixTextView = itemView.findViewById(R.id.prefix)
Expand Down Expand Up @@ -69,31 +69,31 @@ object QuestionnaireItemBarCodeReaderViewHolderFactory :
}

if (answer == null) {
questionnaireItemViewItem.clearAnswer()
questionnaireViewItem.clearAnswer()
} else {
questionnaireItemViewItem.setAnswer(answer)
questionnaireViewItem.setAnswer(answer)
}

setInitial(questionnaireItemViewItem.answers.singleOrNull(), reScanView)
setInitial(questionnaireViewItem.answers.singleOrNull(), reScanView)
}
LiveBarcodeScanningFragment()
.show(
context.supportFragmentManager,
QuestionnaireItemBarCodeReaderViewHolderFactory.javaClass.simpleName
BarCodeReaderViewHolderFactory.javaClass.simpleName
)
}
}

override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem) {
this.questionnaireItemViewItem = questionnaireItemViewItem
if (!questionnaireItemViewItem.questionnaireItem.prefix.isNullOrEmpty()) {
override fun bind(questionnaireViewItem: QuestionnaireViewItem) {
this.questionnaireViewItem = questionnaireViewItem
if (!questionnaireViewItem.questionnaireItem.prefix.isNullOrEmpty()) {
prefixTextView.visibility = View.VISIBLE
prefixTextView.text = questionnaireItemViewItem.questionnaireItem.localizedPrefixSpanned
prefixTextView.text = questionnaireViewItem.questionnaireItem.localizedPrefixSpanned
} else {
prefixTextView.visibility = View.GONE
}
textQuestion.text = questionnaireItemViewItem.questionnaireItem.localizedTextSpanned
setInitial(questionnaireItemViewItem.answers.singleOrNull(), reScanView)
textQuestion.text = questionnaireViewItem.questionnaireItem.localizedTextSpanned
setInitial(questionnaireViewItem.answers.singleOrNull(), reScanView)
}

private fun setInitial(
Expand Down
36 changes: 36 additions & 0 deletions datacapture/sampledata/component_date_picker.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"resourceType": "Questionnaire",
"item": [
{
"linkId": "1",
"text": "Enter a date",
"type": "date",
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/entryFormat",
"valueString": "yyyy-mm-dd"
}
],
"item": [
{
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/questionnaire-displayCategory",
"valueCodeableConcept": {
"coding": [
{
"system": "http://hl7.org/fhir/questionnaire-display-category",
"code": "instructions"
}
]
}
}
],
"linkId": "1-most-recent",
"text": "Use keyboard entry or date picker",
"type": "display"
}
]
}
]
}
30 changes: 30 additions & 0 deletions datacapture/sampledata/component_date_time_picker.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"resourceType": "Questionnaire",
"item": [
{
"linkId": "1",
"text": "Schedule an appointment",
"type": "dateTime",
"item": [
{
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/questionnaire-displayCategory",
"valueCodeableConcept": {
"coding": [
{
"system": "http://hl7.org/fhir/questionnaire-display-category",
"code": "instructions"
}
]
}
}
],
"linkId": "1-most-recent",
"text": "Select a date 4 weeks from now",
"type": "display"
}
]
}
]
}
Loading

0 comments on commit 7544694

Please sign in to comment.