google / android-fhir

The Android FHIR SDK is a set of Kotlin libraries for building offline-capable, mobile-first healthcare applications using the HL7® FHIR® standard on Android.
https://google.github.io/android-fhir/
Apache License 2.0
483 stars 283 forks source link

Support optionExclusive extension in questionnaires #1281

Closed jingtang10 closed 2 years ago

jingtang10 commented 2 years ago

Is your feature request related to a problem? Please describe. See http://hl7.org/fhir/R4/extension-questionnaire-optionexclusive.html

and http://build.fhir.org/ig/HL7/sdc/behavior.html#choice-restriction

Basically if an answer option has this extension, selecting this answer option means other answer options need to be deselected.

Describe the solution you'd like This needs to be implemented in the checkbox group first. and all other widgets that support repeated answers.

Describe alternatives you've considered NA

Additional context NA

Would you like to work on the issue? no thanks

santosh-pingle commented 2 years ago

I am working on implementation.

jingtang10 commented 2 years ago

@soura-b fyi

santosh-pingle commented 2 years ago

As per discussion with @jingtang10 @fredhersch in android fhir sdk developers call If you reselect an option, then clear the optionExclusive selection

santosh-pingle commented 2 years ago

questionnaire json with optionExclusive extension for example purpose only.

{
  "title": "Multiple choice",
  "status": "active",
  "version": "0.0.1",
  "resourceType": "Questionnaire",
  "item": [
    {
      "linkId": "1.0.0",
      "text": "Do you have any of the following symptoms?",
      "type": "choice",
      "repeats": true,
      "extension": [
        {
          "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl",
          "valueCodeableConcept": {
            "coding": [
              {
                "system": "http://hl7.org/fhir/questionnaire-item-control",
                "code": "check-box",
                "display": "Checkbox"
              }
            ],
            "text": "Checkbox"
          }
        }
      ],
      "answerOption": [
        {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-optionExclusive",
              "valueBoolean": true
            }
          ],
          "valueCoding": {
            "code": "code_1",
            "display": "Missed period",
            "system": "http://snomed.info/sct"
          }
        },
        {
          "valueCoding": {
            "code": "code_2",
            "display": "Tender, swollen breasts",
            "system": "http://snomed.info/sct"
          }
        },
        {
          "valueCoding": {
            "code": "code_3",
            "display": "Nausea",
            "system": "http://snomed.info/sct"
          }
        },
        {
          "valueCoding": {
            "code": "code_4",
            "display": "Vomiting",
            "system": "http://snomed.info/sct"
          }
        },
        {
          "valueCoding": {
            "code": "code_5",
            "display": "Increased urination",
            "system": "http://snomed.info/sct"
          }
        },
        {
          "valueCoding": {
            "code": "code_6",
            "display": "Fatigue",
            "system": "http://snomed.info/sct"
          }
        }
      ],
      "item": [
        {
          "linkId": "1-select-one",
          "text": "Check all that apply",
          "type": "display"
        }
      ]
    }
  ]
}