Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sdc gallery app, implement single choice workflow. #1008

Merged
merged 38 commits into from
Jan 27, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
b797bc4
Sdc gallery app landing page
santosh-pingle Dec 28, 2021
94df10b
Rename file name.
santosh-pingle Dec 28, 2021
2b3030c
Merge branch 'master' into sp/988-landing-page
santosh-pingle Dec 28, 2021
c129e57
Update components and layouts vector icons.
santosh-pingle Jan 3, 2022
b1525b5
Merge branch 'master' into sp/988-landing-page
santosh-pingle Jan 3, 2022
c67b949
Sdc gallery app single choice workflow.
santosh-pingle Jan 4, 2022
05f8a44
Update it as boolean choice.
santosh-pingle Jan 5, 2022
45d59cb
Address review comments.
santosh-pingle Jan 5, 2022
52121cf
Boolean choice component icon.
santosh-pingle Jan 5, 2022
6efe4b9
Merge branch 'sp/988-landing-page' into sp/992-single-choice
santosh-pingle Jan 5, 2022
d76da21
Spotless apply
santosh-pingle Jan 5, 2022
2e68631
Merge branch 'master' into sp/988-landing-page
santosh-pingle Jan 5, 2022
0dfebad
Build failures
santosh-pingle Jan 5, 2022
9ca677d
Delete gallery drawables.
santosh-pingle Jan 5, 2022
98bba50
fix package name in nav graph
santosh-pingle Jan 5, 2022
2b9e33f
Merge branch 'sp/988-landing-page' into sp/992-single-choice
santosh-pingle Jan 5, 2022
4357509
Spotless apply.
santosh-pingle Jan 5, 2022
f697147
Delete gallery color resource
santosh-pingle Jan 5, 2022
83c3c45
Merge branch 'master' into sp/988-landing-page
santosh-pingle Jan 6, 2022
0adae63
Merge branch 'sp/988-landing-page' into sp/992-single-choice
santosh-pingle Jan 7, 2022
96e30a6
Merge branch 'master' into sp/988-landing-page
santosh-pingle Jan 7, 2022
b050ce4
Merge branch 'sp/988-landing-page' into sp/992-single-choice
santosh-pingle Jan 7, 2022
9931045
Single choice workflow.
santosh-pingle Jan 7, 2022
3664435
theme attributes for color value.
santosh-pingle Jan 10, 2022
2384a9a
bottom view margin
santosh-pingle Jan 10, 2022
38be418
Merge branch 'master' into sp/988-landing-page
santosh-pingle Jan 10, 2022
68486e1
Merge branch 'sp/988-landing-page' into sp/992-single-choice
santosh-pingle Jan 10, 2022
6717f54
Merge branch 'sp/992-single-choice' into sp/issue-1006-single-choice
santosh-pingle Jan 10, 2022
c86efe3
textcolor on checked state.
santosh-pingle Jan 10, 2022
177935f
Merge branch 'master' into sp/992-single-choice
santosh-pingle Jan 13, 2022
1dc445a
Address review comments.
santosh-pingle Jan 25, 2022
85c1659
Merge branch 'master' into sp/992-single-choice
santosh-pingle Jan 25, 2022
33575d7
Merge branch 'sp/992-single-choice' into sp/issue-1006-single-choice
santosh-pingle Jan 25, 2022
f738942
Merge branch 'master' into sp/issue-1006-single-choice
santosh-pingle Jan 25, 2022
b834270
Remove unwanted file.
santosh-pingle Jan 25, 2022
da1a178
Delete unwanted file.
santosh-pingle Jan 25, 2022
cdbb5c4
Add filename field to the component enum.
santosh-pingle Jan 27, 2022
c76066c
Merge branch 'master' into sp/issue-1006-single-choice
santosh-pingle Jan 27, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Merge branch 'master' into sp/988-landing-page
  • Loading branch information
santosh-pingle committed Jan 5, 2022
commit 2e68631ccd6cc0f800d4b4164306fd503430e194
104 changes: 24 additions & 80 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,100 +1,44 @@
# Android FHIR SDK (Pre-beta release) [![master](https://github.com/google/android-fhir/workflows/CI/badge.svg?branch=master)](https://github.com/google/android-fhir/actions?query=workflow%3ACI) [![codecov](https://codecov.io/gh/google/android-fhir/branch/master/graph/badge.svg?token=PDSC4WRDTQ)](https://codecov.io/gh/google/android-fhir/branch/master)
# Android FHIR SDK

The Android FHIR SDK (the SDK) is an Android library for building
offline-capable, mobile-first healthcare applications using
[FHIR](https://www.hl7.org/fhir/) resources on Android. The overall goal is to
simplify the process of incorporating support for FHIR into new or existing
mobile solutions and to accelerate the adoption of FHIR standards as part of
broader interoperability efforts in healthcare.
[![master](https://github.com/google/android-fhir/workflows/CI/badge.svg?branch=master)](https://github.com/google/android-fhir/actions?query=workflow%3ACI) [![codecov](https://codecov.io/gh/google/android-fhir/branch/master/graph/badge.svg?token=PDSC4WRDTQ)](https://codecov.io/gh/google/android-fhir/branch/master) [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)

## Usage
The Android FHIR SDK (the SDK) is a set of Kotlin libraries for building offline-capable,
mobile-first healthcare applications using [FHIR](https://www.hl7.org/fhir/) resources on Android.
It aims to accelerate the adoption of FHIR by making it easy to incorporate FHIR into new and
existing mobile applications.

The SDK is designed to support Android 21 (lollipop) and above. Android Studio
4.0 is required for [Java 8 library
desugaring](https://developer.android.com/studio/preview/features#j8-desugar).
## Requirements

## Libraries

The repository is organised into the following libraries:

| Library | Status | Notes |
| -------------------- | -------------- | -------------------------------------------------------- |
| Data Capture Library | Stable | Approaching beta release |
| FHIR Engine | Mostly stable | Finalizing sync API subject to change. Other APIs stable |
| Workflow Library | In development | Pending alpha release |


### FHIR engine library [![Google Maven](https://badgen.net/maven/v/metadata-url/dl.google.com/dl/android/maven2/com/google/android/fhir/engine/maven-metadata.xml)](https://maven.google.com/web/index.html?#com.google.android.fhir:engine)

This is the main library for building a mobile based clinical data repository
using FHIR. It provides:

- SQLite database for FHIR resources
- APIs for accessing (create, read, update, and delete) FHIR resources in the
database
- APIs for searching FHIR resources in the database
- Sync API for synchronization of resources with a FHIR server

To use this library in your Android application, see [FHIR Engine Library User's
Guide](https://github.com/google/android-fhir/wiki/FHIR-Engine-Library-User's-Guide).

### Structured data capture (SDC) library [![Google Maven](https://badgen.net/maven/v/metadata-url/dl.google.com/dl/android/maven2/com/google/android/fhir/data-capture/maven-metadata.xml)](https://maven.google.com/web/index.html?#com.google.android.fhir:data-capture)

This library is a partial implementation of the [Structured Data Capture FHIR
IG](http:https://build.fhir.org/ig/HL7/sdc/) on Android. It includes the UI components
and APIs to capture healthcare data using FHIR questionnaires.
The SDK supports Android 21 (lollipop) and above. Android Studio 4.0 or above is required for
[Java 8 library desugaring](https://developer.android.com/studio/preview/features#j8-desugar).

To use this library in your Android application, see [Structured Data Capture
Library User's
Guide](https://github.com/google/android-fhir/wiki/Structured-Data-Capture-Library-User's-Guide).

### Workflow library

This library provides APIs that use digital clinical guidelines to support decision making and analytics in clinical workflows.

It supports the following operations:

| Operation | Status | Notes |
| -------------------------- | -------------- | -------------------------------------------------------------------- |
| Measure/$evaluate-measure | Alpha | See https://www.hl7.org/fhir/measure-operation-evaluate-measure.html |
| PlanDefinition/$apply | In development | See https://www.hl7.org/fhir/plandefinition-operation-apply.html |

Future features of the library will provide support for Tasking and other Workflow related requirements

## Sample Applications

Two sample applications are provided that demonstrate different features of the
SDK.

**These applications are provided for demonstration purposes only and are not
for use in production. Do NOT use in production.**

### Reference Application
## Libraries

This is the initial demo application for showcasing core SDK features and CQL
proof of concept. The demo uses synthea generated data that has been loaded into
the HAPI FHIR server public demo site.
The SDK contains the following libraries:

To run this application, clone the codebase and
[run](https://developer.android.com/studio/run) the `reference` module.
| Library | Latest release | Code | Wiki | Summary |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| FHIR Engine Library | [![Google Maven](https://badgen.net/maven/v/metadata-url/dl.google.com/dl/android/maven2/com/google/android/fhir/engine/maven-metadata.xml)](https://maven.google.com/web/index.html?#com.google.android.fhir:engine) | [code](https://github.com/google/android-fhir/tree/master/engine) | [wiki](https://github.com/google/android-fhir/wiki/FHIR-Engine-Library) | Store and manage FHIR resources locally on Android and synchronize with FHIR server |
| Data Capture Library | [![Google Maven](https://badgen.net/maven/v/metadata-url/dl.google.com/dl/android/maven2/com/google/android/fhir/data-capture/maven-metadata.xml)](https://maven.google.com/web/index.html?#com.google.android.fhir:data-capture) | [code](https://github.com/google/android-fhir/tree/master/datacapture)| [wiki](https://github.com/google/android-fhir/wiki/Structured-Data-Capture-Library) | Collect, validate, and process healthcare data on Android |
| Workflow Library | [![Google Maven](https://badgen.net/maven/v/metadata-url/dl.google.com/dl/android/maven2/com/google/android/fhir/workflow/maven-metadata.xml)](https://maven.google.com/web/index.html?#com.google.android.fhir:workflow) | [code](https://github.com/google/android-fhir/tree/master/workflow) | [wiki](https://github.com/google/android-fhir/wiki/Workflow-Library) | Provide decision support and analytics in clinical workflow on Android |

### SDC Gallery App
## Demo apps

This app includes a number of pre-loaded sample FHIR Questionnaires.
This repository also contains the following demo apps:

It uses the SDC library to create data capture forms using FHIR questionnaires.
For supported widgets, features and known bugs, see the latest release notes.
| Demo app | Code | Wiki |
| ----------------------------------- | ------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------- |
| FHIR Engine Demo App | [code](https://github.com/google/android-fhir/tree/master/demo) | [wiki](https://github.com/google/android-fhir/wiki/FHIR-Engine-Library#demo-app) |
| Structured Data Capture Catalog App | [code](https://github.com/google/android-fhir/tree/master/catalog) | [wiki](https://github.com/google/android-fhir/wiki/Structured-Data-Capture-Library#catalog-app) |

To run this application, clone the codebase and run the `datacapturegallery`
module.
**These applications are provided for demo purposes only. Do NOT use in production.**

## Contributing

The SDK is being developed by a consortium of application developers. We welcome
contributions. Please see [How to
Contribute](https://github.com/google/android-fhir/blob/master/docs/contributing.md)
and [Developer's
Guide](https://github.com/google/android-fhir/wiki/Developer's-Guide) for more
and [Contributing](https://github.com/google/android-fhir/wiki/Contributing) for more
information.

## Feedback
Expand Down
35 changes: 31 additions & 4 deletions buildSrc/src/main/kotlin/Dependencies.kt
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ object Dependencies {
const val appCompat = "androidx.appcompat:appcompat:${Versions.Androidx.appCompat}"
const val constraintLayout =
"androidx.constraintlayout:constraintlayout:${Versions.Androidx.constraintLayout}"
const val coreKtx = "androidx.core:core-ktx:${Versions.Androidx.coreKtx}"
const val datastorePref =
"androidx.datastore:datastore-preferences:${Versions.Androidx.datastorePref}"
const val fragmentKtx = "androidx.fragment:fragment-ktx:${Versions.Androidx.fragmentKtx}"
Expand All @@ -30,17 +31,30 @@ object Dependencies {
}

object Cql {
const val cqlEngine = "org.opencds.cqf:cql-engine:${Versions.Cql.cqlEngine}"
const val cqlEngineFhir = "org.opencds.cqf:cql-engine-fhir:${Versions.Cql.cqlEngine}"
const val evaluator = "org.opencds.cqf.cql:evaluator:${Versions.Cql.evaluator}"
const val evaluatorBuilder = "org.opencds.cqf.cql:evaluator.builder:${Versions.Cql.evaluator}"
const val evaluatorDagger = "org.opencds.cqf.cql:evaluator.dagger:${Versions.Cql.evaluator}"
}

object HapiFhir {
const val structuresR4 = "ca.uhn.hapi.fhir:hapi-fhir-structures-r4:${Versions.hapiFhir}"
const val validation = "ca.uhn.hapi.fhir:hapi-fhir-validation:${Versions.hapiFhir}"
}

object Jackson {
const val annotations = "com.fasterxml.jackson.core:jackson-annotations:${Versions.jackson}"
const val core = "com.fasterxml.jackson.core:jackson-core:${Versions.jackson}"
const val databind = "com.fasterxml.jackson.core:jackson-databind:${Versions.jackson}"
}

object JavaJsonTools {
const val jacksonCoreUtils =
"com.github.java-json-tools:jackson-coreutils:${Versions.JavaJsonTools.jacksonCoreUtils}"
const val msgSimple =
"com.github.java-json-tools:msg-simple:${Versions.JavaJsonTools.msgSimple}"
}

object Kotlin {
const val androidxCoreKtx = "androidx.core:core-ktx:${Versions.Kotlin.androidxCoreKtx}"
const val kotlinCoroutinesAndroid =
"org.jetbrains.kotlinx:kotlinx-coroutines-android:${Versions.Kotlin.kotlinCoroutinesCore}"
const val kotlinCoroutinesCore =
Expand Down Expand Up @@ -82,10 +96,13 @@ object Dependencies {
const val guava = "com.google.guava:guava:${Versions.guava}"
const val httpInterceptor = "com.squareup.okhttp3:logging-interceptor:${Versions.http}"
const val http = "com.squareup.okhttp3:okhttp:${Versions.http}"
const val stax = "javax.xml.stream:stax-api:${Versions.stax}"
const val jsonToolsPatch = "com.github.java-json-tools:json-patch:${Versions.jsonToolsPatch}"
const val kotlinPoet = "com.squareup:kotlinpoet:${Versions.kotlinPoet}"
const val material = "com.google.android.material:material:${Versions.material}"
const val sqlcipher = "net.zetetic:android-database-sqlcipher:${Versions.sqlcipher}"
const val woodstox = "org.codehaus.woodstox:woodstox-core-asl:${Versions.woodstox}"
const val xerces = "xerces:xercesImpl:${Versions.xerces}"

// Dependencies for testing go here
object AndroidxTest {
Expand Down Expand Up @@ -115,6 +132,7 @@ object Dependencies {
const val activity = "1.2.1"
const val appCompat = "1.1.0"
const val constraintLayout = "1.1.3"
const val coreKtx = "1.2.0"
const val datastorePref = "1.0.0"
const val fragmentKtx = "1.3.1"
const val lifecycle = "2.2.0"
Expand All @@ -127,10 +145,15 @@ object Dependencies {

object Cql {
const val cqlEngine = "1.3.14-SNAPSHOT"
const val evaluator = "1.3.1-SNAPSHOT"
}

object JavaJsonTools {
const val jacksonCoreUtils = "2.0"
const val msgSimple = "1.2"
}

object Kotlin {
const val androidxCoreKtx = "1.2.0"
const val kotlinCoroutinesCore = "1.4.2"
const val stdlib = "1.5.31"
}
Expand All @@ -144,12 +167,16 @@ object Dependencies {
// TODO: The next release of HAPI FHIR will hopefully have
// https://github.com/hapifhir/hapi-fhir/pull/3043 merged in. If it does, when we update, we
// should remove any excludes directives for "net.sf.saxon" across our build.gradle files.
const val jackson = "2.12.2"
const val jsonToolsPatch = "1.13"
const val kotlinPoet = "1.9.0"
const val material = "1.4.0"
const val retrofit = "2.7.2"
const val stax = "1.0-2"
const val sqlcipher = "4.5.0"
const val truth = "1.0.1"
const val woodstox = "4.4.1"
const val xerces = "2.11.0"

// Test dependencies

Expand Down
27 changes: 27 additions & 0 deletions buildSrc/src/main/kotlin/LicenseeConfig.kt
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,33 @@ fun Project.configureLicensee() {
allowDependency("net.zetetic", "android-database-sqlcipher", "4.5.0") {
because("Custom license, essentially BSD-3. https://www.zetetic.net/sqlcipher/license/")
}

// JAXB https://github.com/eclipse-ee4j/jaxb-ri
allowDependency("jakarta.xml.bind", "jakarta.xml.bind-api", "2.3.3") {
because("BSD 3-clause.")
}

// Javax Annotation API
allowDependency("javax.annotation", "javax.annotation-api", "1.3.2") {
because("Dual-licensed under CDDL 1.1 and GPL v2 with classpath exception.")
}

// Streaming API for XML (StAX)
allowDependency("javax.xml.stream", "stax-api", "1.0-2") {
because("Dual-licensed under CDDL 1.0 and GPL v3.")
}

// ANTLR 4
allowDependency("org.antlr", "antlr4-runtime", "4.9.1") {
because("BSD 3-clause. http:https://www.antlr.org/license.html")
}

// JSON-P https://javaee.github.io/jsonp/
allowDependency("org.glassfish", "javax.json", "1.1.4") {
because(
"Dual-licensed under CDDL 1.1 and GPL v2 with classpath exception. https://oss.oracle.com/licenses/CDDL+GPL-1.1"
)
}
}
}

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ android {
buildToolsVersion = Plugins.Versions.buildTools

defaultConfig {
applicationId = "com.google.android.fhir.datacapture.gallery"
applicationId = "com.google.android.fhir.catalog"
minSdk = Sdk.minSdk
targetSdk = Sdk.targetSdk
versionCode = 1
Expand Down Expand Up @@ -54,9 +54,9 @@ dependencies {

implementation(Dependencies.Androidx.appCompat)
implementation(Dependencies.Androidx.constraintLayout)
implementation(Dependencies.Androidx.coreKtx)
implementation(Dependencies.Androidx.fragmentKtx)
implementation(Dependencies.material)
implementation(Dependencies.Kotlin.androidxCoreKtx)
implementation(Dependencies.Kotlin.stdlib)
implementation(Dependencies.Navigation.navFragmentKtx)
implementation(Dependencies.Navigation.navUiKtx)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*/

package com.google.android.fhir.datacapture.gallery
package com.google.android.fhir.catalog

import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
Expand All @@ -33,6 +33,6 @@ class ExampleInstrumentedTest {
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
Assert.assertEquals("com.google.android.fhir.datacapture.gallery", appContext.packageName)
Assert.assertEquals("com.google.android.fhir.catalog", appContext.packageName)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
-->
<manifest
xmlns:android="http:https://schemas.android.com/apk/res/android"
package="com.google.android.fhir.datacapture.gallery"
package="com.google.android.fhir.catalog"
>

<application
Expand All @@ -27,7 +27,10 @@
android:supportsRtl="true"
android:theme="@style/Theme.Androidfhir"
>
<activity android:name=".MainActivity" android:exported="true">
<activity
android:name="com.google.android.fhir.catalog.MainActivity"
android:exported="true"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*/

package com.google.android.fhir.datacapture.gallery
package com.google.android.fhir.catalog

import android.view.View
import android.widget.NumberPicker
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*/

package com.google.android.fhir.datacapture.gallery
package com.google.android.fhir.catalog

import com.google.android.fhir.datacapture.QuestionnaireFragment

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,14 @@
* limitations under the License.
*/

package com.google.android.fhir.datacapture.gallery
package com.google.android.fhir.catalog

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.Navigation
import androidx.navigation.ui.NavigationUI
import com.google.android.material.bottomnavigation.BottomNavigationView
import com.google.android.fhir.catalog.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity(R.layout.activity_main) {
override fun onCreate(savedInstanceState: Bundle?) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*/

package com.google.android.fhir.datacapture.gallery
package com.google.android.fhir.catalog

import android.os.Bundle
import android.view.LayoutInflater
Expand All @@ -32,11 +32,11 @@ import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.fragment.navArgs
import ca.uhn.fhir.context.FhirContext
import com.google.android.fhir.catalog.databinding.FragmentQuestionnaireContainerBinding
import com.google.android.fhir.datacapture.QuestionnaireFragment
import com.google.android.fhir.datacapture.QuestionnaireFragment.Companion.EXTRA_QUESTIONNAIRE_JSON_STRING
import com.google.android.fhir.datacapture.QuestionnaireFragment.Companion.EXTRA_QUESTIONNAIRE_JSON_URI
import com.google.android.fhir.datacapture.QuestionnaireFragment.Companion.EXTRA_QUESTIONNAIRE_RESPONSE_JSON_STRING
import com.google.android.fhir.datacapture.gallery.databinding.FragmentQuestionnaireContainerBinding
import kotlinx.coroutines.launch
import org.hl7.fhir.r4.model.QuestionnaireResponse

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@
* limitations under the License.
*/

package com.google.android.fhir.datacapture.gallery
package com.google.android.fhir.catalog

import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.navigation.findNavController
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.Adapter
import com.google.android.fhir.datacapture.gallery.databinding.QuestionnaireListItemViewBinding
import com.google.android.fhir.catalog.databinding.QuestionnaireListItemViewBinding

class QuestionnaireListAdapter(private val questionnaireList: List<QuestionnaireListItem>) :
Adapter<QuestionnaireListAdapter.ViewHolder>() {
Expand Down
Loading
You are viewing a condensed version of this merge commit. You can view the full changes here.