Android Fhir Versions Save

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.

engine-1.0.0

2 months ago

The FHIR Engine v1.0.0 release includes major enhacements made to the sync API as well as changes in the search API and the dependencies of the library.

Feature Highlights

Upload strategies

The newly introduced upload strategies strike a balance between customizability and robustness of the sync logic, allowing applications to customize the way FHIR resources are uploaded to the FHIR server without having to deal with the implementation details. For example, applications can now upload changes using JSON patches, and bundle the changes in fewer requests to improve sync performance. Uploading using HTTP POST will be available soon, too. See available upload strategies and how to use them in a FhirSyncWorker.

Revamped sync status

The new sync status provides more accurate information on the sync jobs, combining job history with the status of the current job. See example.

Updated build rules

The application's build file no longer needs to include the force blocks to manually fix guava, jackson, and HAPI versions. See example.

Changelog

Sync API 🌟

  • Create new resources on the server using POST [#760]
    • Resource consolidation for resources created with POST [#2217]
    • Adding PerResourceLocalChangeFetcher [#2257]
    • Refactor syncUpload Method to improve flow and error handling [#2173]
    • Remove UploadStrategy.AllChangesBundlePut option from engine [#2431]
  • Store sync progress in a local storage in the engine [#2119]
  • Restore granular upload progress updates and database consolidation [#2392]
  • Synchronize sync workers [#2385]
  • Fix error with Json patches for the same field [#2342]

Search API 🔎

  • Allow sorting data in the include and revinclude search API [#2378]

Other fixes 🛠️

  • Dependency versions fix [#2380]

@aditya-07 @jingtang10 @omarismail94 @anchita-g @santosh-pingle @MJ1998 @vitorpamplona @vorburger

sdc-1.1.0

3 months ago

The 1.1.0 release of Structure Data Capture Library includes the following changes:

Enhancements 🌟

  • Enhanced expression support
    • Handle fhirpath expression in x-fhir-query [#1658]
    • Candidate expression support [#1789]
    • EnableWhenExpression context literal fhirpath supplement implementation [#1957]
    • CQF expression support [#1945]
    • Variable support in answer expression [#2052]
    • Support answer options toggle extension [#2034]
    • Variable support for enableWhenExpression [#2096]
    • Allow usage of variable and context in answer expression [#2039]
    • Support fhirpath supplement %questionnaire and %qItem literals [#2163]
  • Save draft answers in decimal text boxes [#1923]
  • Required and Optional labels for required and optional input [#1954]
  • Multiple initial values for repeating question [#2019]
  • Make questionnaire properties accessible for custom components [#2023]
  • Optimize flatten and descendent traversal [#2079]
  • Support multiple Instructions [#2092]
  • Populate reference initial values in dropdown list [#2065]
  • Implement questionnaire-unit and questionnaire-unitOption extensions [#2014]
  • Support entry format for date and time [#1850]
  • Support initialSelected in answer options [#2032]
  • Support cancel button [#1829]
  • Definition based extraction for repeated groups [#1794]
  • Handle repeated answers in questionnaire validation [#487]
  • Definition Based Extraction: Issue in extracting Observation value of type valueCoding #1769
  • Support minLine attribute [#1518]

Fixes 🔨

  • Hide initial validation error message for modal and open choice widgets [#1514]
  • Fix mismatched nested items with skip logic [#1972]
  • Fix FHIRPath constant value null casting [#2012]
  • Do not replay earlier updates in DialogSelectViewHolderFactory [#2080]
  • Nested items of group are not rendering when loading Questionnaire using QuestionnaireResponse [#1998]
  • Make help card show/hide state per page [#2054]
  • Handle code systems correctly [#2136]
  • Fix calculated expression beyond initial changes [#2354]
  • Fix cursor skipping back while start typing a value in numeric field [#1914]
  • Create nested items correctly [#1881]
  • Validate current page items before entering review page [#1682]
  • Support definition based extraction for lists with non-primitive types [#1769]
  • Fix mismatched answers in open choice and drop down widgets [#1537]
  • Refactor Auto complete widget [#1398]
  • Fix enableWhen in repeated group [#1895]
  • Pass original response items instead of copy to getEnabledResponses [#1776]
  • Fix failed mapping of repeated groups when questionaire response is passed as argument [#1900]
  • Fix enable when expressions for display items [#1835]

Style update 👗

  • Make horizontal boolean type options full screen width [#1968]
  • Refactor text overflow in dropdown [#1966]
  • Make spacing a configurable attribute [#1986]
  • Make image size consistent [#2057]
  • Fix cropped help icon [#2093]
  • Review screen style changes [#1737]
  • Remove extra space when the group headers have no text to show [#1339]
  • Customize bottom container style and behavior [#1842]
  • Improve overriding dimens [#1832]
  • Show dateformat text in lowercase for date and date time label [#1969]

Thanks to all the contributors to this release: @FikriMilano @maimoonak @omarismail94 @santosh-pingle @khyativyasargus @shelaghm @MJ1998 @KhumboLihonga @LZRS @PallaviGanorkar @jingtang10 @aditya-07 @nsabale7 @joiskash @vbothe23 @Itskiprotich

engine-0.1.0-beta05

6 months ago

The FHIR Engine 0.1.0-beta05 release includes the following changes:

Sync module changes (esp. upload redesign) continued

  • Add a LocalChangeFetcher #2135
  • Add ResourceConsolidator #2137
  • Introduce Patches: changes to be uploaded to the server #2156
  • Remove UploadWorkManager #2166
  • Refactoring UploadRequestGenerator for Upload Sync Redesign #2168
  • Introducing Upload Strategies #2171
  • Refactor syncUpload Method to improve flow and error handling #2173
  • Add resource UUID to LocalChangeEntity, fixing changing UUID issue for the same resource #2210
  • Update the version of resource after updates are downloaded from the server #2272

Improvements in tests and testing infrastructure

  • Add tests to sync classes #1505
  • Clean up SyncJobStatus and add FhirSynchronizer test #2184
  • Set up CodeQL #2185
  • Set up Dependency graph for Dependencies and Dependents #2194
  • Set up Dependabot #2195
  • Fix broken CI for trivial PRs #2197
  • Remove CQL dependencies in the engine/benchmark module #2229
  • SdkSuppress FhirSyncWorkerBenchmark oneTimeSync_50patients (re. #2235) #2236

Dependency updates

  • Migrates engine to HAPI 6.8 while forcing Workflow to stay on 6.0 #2245
  • Update gradle build tool from 8.0.2 to 8.1.1 #2158
  • Bump com.android.tools.build:gradle from 8.1.1 to 8.1.2 #2219
  • Bump actions/upload-artifact from 2 to 3 #2249
  • Bump actions/checkout from 3 to 4 #2248
  • Bump styfle/cancel-workflow-action from 0.7.0 to 0.12.0 #2250
  • Bump com.diffplug.spotless:spotless-plugin-gradle from 6.21.0 to 6.22.0 #2252
  • Bump com.spotify.ruler:ruler-gradle-plugin from 1.2.1 to 1.4.0 #2253
  • Bump com.squareup:kotlinpoet from 1.12.0 to 1.14.2 #2255
  • Bump androidx.build.gradle.gcpbuildcache from 1.0.0-beta01 to 1.0.0-beta05 #2266

Documentation and codelabs

  • Update dependencies in engine colab #2268

Contributors: @aditya-07 @anchita-g @jingtang10 @omarismail94 @roywanyaga @santosh-pingle @vorburger

knowledge-0.1.0-alpha02

6 months ago

The Knowledge Manager 0.1.0-alpha02 release (com.google.android.fhir:knowledge:0.1.0-alpha02) adds the capability to download and manage FHIR NPM packages as well as other API improvements and fixes. In more detail:

  • Implement a simple NpmManager [#2028]
  • Fix the version collision in Knowledge Manager [#2043]
  • Allow custom package server in Knowledge Manager [#2244]

engine-0.1.0-beta04

7 months ago

The FHIR Engine 0.1.0-beta04 release includes the following enhancements and fixes:

Sync API:

  • Support sending gzipped request body when uploading [#1988]
  • Support basic and bearer HTTP authentication [#2037]
  • Support headers in the http requests and using ETags for upload [#1989]
  • Refactor upload work manager for enable future customization [#2021, #2149]
  • Handle local insert-delete sequence as no-op when squashing [#1951]

Search API:

  • Implement _revinclude [#1947]
  • Add _tag and _profile search parameters for x-fhir-query [#1935]
  • Fix Date/DateTime and Token indexes to speed up search [#2040]

Other:

  • Setup benchmarking for the sync worker [#1996]
  • Enforce Java 11 usage and update dependencies [#2072]
  • Store timeStamp as Instant instead of human readable string format in LocalChangeEntity [#2083]
  • Fix engine and knowledge library versions in workflow and testing [#2085]
  • Upgrade AGP and Dependencies [#2064]

Warning: This release includes a database schema change. Applications upgraded to this version of the library cannot be downgraded to a previous version without the application crashing due to database incompatibility.

workflow-0.1.0-alpha03

9 months ago

This workflow-0.1.0-alpha03 release contains the following enhancements and fixes:

Enhancements:

  • CarePlan can be generated without an Encounter [#1741]
  • Cache ModelResolver and use cached FhirContext to increase performance [#1753]
  • Migration of the CQL Translator, Engine and Evaluator to version 2.4 [#1771]
  • Workflow library is now integrated with Knowledge Manager [#1854]
  • A compiled Library cache that survives multiple executions of the evaluator has been added to improve workflow performance [#2033]

Fixes:

  • CQL logic in a PlanDefinition is now correctly evaluated by specifying a data endpoint when invoking $apply [#1982]

knowledge-0.1.0-alpha01

11 months ago

This knowledge-0.1.0-alpha01 release of the Knowledge Manager library allows developers to import knowledge artifacts and Implementation Guides and store them locally on device.

Functionalities

  • Import Implementation Guide
  • Import individual knowledge artifacts
  • Provide APIs to access Knowledge Artifacts
  • Delete Knowledge Artifacts

Future work

  • Download published Implementation Guides using the NPM package manager
  • Integration with other Android FHIR SDK Libraries through the Knowledge Manager APIs

engine-0.1.0-beta03

1 year ago

The FHIR Engine 0.1.0-beta03 release includes the following enhancements and fixes:

Search API:

  • Include resource type as parameter in has function in the Search DSL [#1921]
  • Add Coding type to token index [#1609]
  • Remove old indexes when resource is updated [#1840]
  • Allow developers to add custom search parameter to the engine [#1382]

Sync API:

  • Add sync progress status update [#1484]
  • Refactor and simplify Sync API [#1578]
  • Fix engine upload sync [#1893]
  • Remove SyncedResourceEntity from database [#1889]
  • Add Bundle request support for downloading resources [#1888]

Other:

  • Log HTTP API calls that are invoked by the FHIR Engine while syncing [#1426]
  • Update HAPI structures dependency to 6.0.1 [#1616]
  • Bump the Android minSdk level to 24 [#1628]

Warning: This release includes a database schema change. Applications upgraded to this version of the library cannot be downgraded to a previous version without the application crashing due to database incompatibility.

Warning: As a result of the effort to generalize the sync API, applications that use lastUpdated timestamp to download FHIR resources are now required to manage the timestamp in the application. See DemoDataStore and TimestampBasedDownloadWorkManagerImpl for a reference implementation. The default sync download implementation has also been updated. See ResourceParamsBasedDownloadWorkManager.

sdc-1.0.0

1 year ago

The first production release 🚀 of Structure Data Capture Library includes the following changes:

Enhancements ✨

This release adds the following widget-specific features:

  • [New Widget] Add support for Attachment widget [#1621]
    • Attachment widget clear preview if no answer [#1821]
    • UI changes for Attachment widget [#1796]
  • Automatically add date separator between day month year [#1802]
  • Support choice orientation in boolean view [#1515]
  • Text input filtering in Dropdown component [#764]
  • Add itemMedia extension support [#802]
  • Add itemAnswerMedia extension support for images [#1614]
  • Add mimeType extension support [#1674]

We've also made these improvements to the library:

  • Remove Engine dependency from SDC library [#1705]
  • Add read-only mode in the SDC library [#1704]
  • Add basic support for repeated groups [#726]
  • Highlight missing fields and show validation popup [#1576]
  • Load different profiles for definition based extraction [#1659]
  • Support added for CodeType value in itemExtractionContext extension [#1770]
  • Support definition-based extraction for lists with non-primitive types [#1769]
  • Hide items if all items they depend on are also hidden [#1765]
  • Add Questionnaire Fragment extra to show or hide submit button [#1845]
  • Add Builder to Questionnaire Fragment [#1848]

Bug Fixes 🔧

This release fixes the following issues in the widgets:

  • Remove asterisk for required questions [#544]
  • Show time-picker in input mode [#1620]
  • Set slider max and min value from the questionnaire [#1715]
  • Move error message for boolean/single/multiple choice type widgets to above the choices [#1586]
  • Cleanup the state of SliderViewHolder when item is recycled [#1818]
  • Show submit button in review mode [#1817]
  • Refactor edit text widget to fix integer issue [#1718]
  • Enable "Next button" on paginated view when nested answer is chosen [#1677]
  • Scroll down the RecyclerView to show the Add answer button [#1636]
  • Hides error textview in the header for textInputLayout views [#1725]
  • Fix DateTime picker component behaviour [#1870]
  • Handle out-of-range integer input [#1718]
  • Maintain selection state of radio buttons and boolean choices in nested questions [#1784, #1812]

We've also fixed other bugs in the library:

  • Skip hidden pages [#1622]
  • Cleaned up old state for dropdown [#1775]
  • Add Reference class to display string function [#1735]
  • Stop validating disabled questions [#1760]
  • Extract repeating order elements properly for definition-based extraction [#1520]
  • Fix unit tests in QuestionnaireViewModelTest [#1820]
  • Rename view holder factories and reorganise files [#1883]

Thanks to all contributors in the community who have helped us reach this important milestone! 🎉🎉🎉

sdc-0.1.0-beta06

1 year ago

The 'sdc-0.1.0-beta06' release of Structured Data Capture library includes the following enhancements and bug fixes.

Enhancements:

  • Answer expression extension implementation [#1480]
  • Implement calculated expression extension [#971]
  • Definition based extraction for custom extensions [#1381]
  • Add ability to validate the min/max for Date on a FHIR Questionnaire [#1040]
  • Update Material3 chip style [#1592]
  • Support slider step value extension [#1260]
  • Display category extension for instructions [#1450]
  • Add asterisks symbol for required fields in Questionaire [#544]
  • Flyover text added for open choice view [#1516]
  • Add support for "Help" questionnaire item control [#1528]
  • Support Android API Level 24+ [#1628]
  • Update HAPI structures lib version to 6.0.1 [#1616]
  • SDC catalog app - Added behaviors tab - showcasing calculated expressions [#1524]

Bugs:

  • FhirPathEngine should use existing ValidationSupport instead of init again [Issue #1173]
  • Match questionnaire items and questionnaire response items by link id [#1664]
  • Fix logic to copy questionnaire response item by matching the ID [#1633]
  • Add left margin to radio buttons and check boxes [#1477]
  • Skip hidden field from validation [#1579]