Releases: google/android-fhir
FHIR Engine 1.1.0
The FHIR Engine 1.1.0 release introduces several key improvements to the sync API, including creation by POST, custom upload strategy, better sync state reporting, and fixes for uploading co-dependent resources.
It also includes several search API performance improvements and fixes.
Changelog
🌟 Sync API
- Resource creation using POST [#2464, #2499]
- Make UploadStrategy configurable [#2687]
- Reset initial state of subsequent one time sync [#2472]
- Set current state in periodic sync job to enqueued [#2708]
- Add Blocked state in sync job [#2607]
- Include patches in a cycle in the same bundle during upload [#2500]
- Fix database query for LocalChangeResourceReferenceEntity [#2495]
- Order PatchMapping in PerResourcePatchGenerator to prevent referential integrity issues [#2442]
🔎 Search API
- Improve search speed by simplifying the query [#2547]
- Update column order in the token index table [#2729]
- Parallelize the deserialization of resources as search result [#2668]
- Balance the SQLite expression tree for logical operators (AND/OR) [#2561]
- Limit the number of variables in
IN(...)
to 999 [#2559] - Unique include and revInclude resources per search filter match [#2512, #2567]
- Support custom search parameter in x-fhir-query [#2554]
- Remove wrapping transaction for single read API [#2552]
🛠️ Other fixes
- Atomic transactions in FhirEngine using
db.withTransaction
[#2531] - Decoupling database access in FHIR patch generation [#2683]
- Wrap FhirEngine APIs with IO Dispatcher [#2556]
- Mark functions as internal [#2494]
Key contributors:
@aditya-07 @jingtang10 @MJ1998 @LZRS @santosh-pingle @ndegwamartin @williamito @dubdabasoduba @ellykits @SebaMutuku @asad-zaman
Workflow Library 0.1.0-beta01
The 0.1.0 beta01 release of the Workflow Library includes the following enhancements and fixes:
New APIs and API changes ✨
- ActivityFlow API (beta) that allows applications to implement Activity Flow in Clinical Practice Guidelines [#2476]
- Expose additional parameters in the FhirOperator APIs [#2383]
- Rename generateCarePlan's param from patientId to subject [#2263]
Dependencies 📚
- Correct internal dependencies to published libraries [#2278]
- Update internal dependency on Knowledge Manager to beta01 [#2690]
- Update clinical reasoning dependencies [#2637]
Performance fix 💨
- Add a compiled Library cache that survives multiple executions of the evaluator [#2033]
- Remove duplicate knowledge repository instance in the workflow library [#2629]
Tests ✅
- Add test cases for Smart Immunizations IG [#2261]
Contributors: @vitorpamplona @aditya-07 @jingtang10 @brynrhodes
Data Capture Library 1.2.0
Highlights
- Full repeated group support with UI controls to add and remove groups, a refreshed style, and a number of fixes for bugs raised by app developers
- Enhanced support for expressions including launch context, questionnaire constraint, x-fhir-query and performance optimizations
- A number of enhancements and bug fixes to improve the user experience with navigation in a paginated questionnaire
- Behaviour fixes for text input and open choice widgets
- Capability to customise the style of individual questions
Changelog
Enhancements 🌟
- Repeated group headers [#726]
- Add support for answerReference when using enableWhen [#1834]
- Improve initial load of calculated expression [#2519]
- Support questionnaire-constraint Extension [#1849]
- Support evaluation of variables, launchContext and other FHIR contexts for cqf-calculatedValue expressions [#2292]
- X-FHIR-Query support for variable extension [#2075]
- Support optionExclusive Extension in Popup [#2436]
- Quantity unit options with initial quantity value [#2395]
- Allow modification of Questionnaire submit action button text via configuration [#2239]
- Add the next button navigation view to a default long scroll [#1764]
- Flyover text as secondary dialog title [#2647]
Fixes 🔨
- Remove deep copy for answers in question view item [#2593]
- Fix anomalous behaviour of enableWhen expressions in a repeated group [#2590]
- Pack repeated groups even if there is only one group in the response [#2564]
- Add missing response items to repeated group child items [#2655]
- Handle empty repeated group header [#2574]
- Open choice missing string value [#2520]
- Display code string [#1604]
- Add missing use of viewItem.questionText [#2664]
- Bind to bottomNavContainerFrame only if bottomNavItems not empty [#2588]
- Fix Previous button visibility in review mode [#2516]
- Hide the bottom navigation container on no visible buttons [#2446]
- Hide the Next button if it is disabled [#2404]
- Hide previous and next button [#2394]
- Help info box disappears after changing answer [#2356]
- Update questionnaire buttons in xml fragment [#2353]
- Duplicate entry of invalid decimal entry present in another decimal field [#2401]
- Keyboard hides itself when focusing to open-choice text box [#2651]
- Fix cursor moving back and missing characters [#1914]
Style update 👗
Code health 🧹
- Clean up UI navigation item [#2658]
- Remove submit and cancel visibility style [#2428]
- Create helper function to go through question answer pairs [#2618]
- Add questionnaire and qItem as reserved variables [#2477]
Catalog app and documentation 📚
- Update documentation for custom UI components [#2581]
- Update calculated expression example to calculate age from date of birth [#2627]
- Add location mapping widget [#800]
Thanks to all the contributors to this release:
@FikriMilano @maimoonak @santosh-pingle @MJ1998 @LZRS @jingtang10 @aditya-07 @nsabale7 @joiskash @asad-zaman @allan-on @f-odhiambo
Knowledge Manager 0.1.0 beta01
The Knowledge Manager 0.1.0 beta01 release updates the dependency on Clinical Reasoning
and makes important changes to the APIs for loading knowledge artifacts:
FHIR Engine 1.0.0
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]
- 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
Data Capture Library 1.1.0
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
andOptional
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
FHIR Engine 0.1.0 beta05
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 Manager 0.1.0-alpha02
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:
FHIR Engine 0.1.0-beta04
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 Library 0.1.0-alpha03
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]