You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Support async terminology and remote resolution for SDC applications #118
The SDC assessment found five service-dependent failures that prevent replacing fhirpath.js in Smart Forms applications that use terminology or remote references. Keep these separate from the local SDC fixes stacked on #110.
The comparison uses fhirpath.js 4.11.0 and Smart Forms commit 6fe2eab7c0f2fd5eb3281b834556a6f227329a23. Service tests use deterministic mocked responses rather than a live server. The reference passes all nine service/integration probes. With the local fixes, this library passes four: synchronous local evaluation, direct contained references, contained references inside Bundle entries, and LHC Forms PHQ-9 scoring. The remaining failures are:
memberOf() with both true and false terminology responses: the function is currently unsupported.
%terminologies.subsumes(...): the environment service is unbound.
Remote resolve() with relative and absolute references: no remote resolver is available, so the result is empty.
Add an explicit asynchronous evaluation path with host-provided terminology and reference providers. Decide how it propagates through expression bodies, collection functions, environment variables, and host functions. Preserve the synchronous API and its type contract. Smart Forms permits asynchronous work but also caches immediately available local results, so document whether the integration returns a value or a Promise and how the adapter should handle it.
Acceptance:
Deterministic service tests cover positive/negative terminology results and relative/absolute remote resolution, including use within where(), select(), and aggregate expressions.
Local contained and Bundle references resolve without a network request; remote resolution retains element context for subsequent navigation.
Unavailable services and rejected requests surface as errors where required, rather than silently turning into false or incomplete scores.
Document provider configuration, reference-base handling, cancellation, and the synchronous/asynchronous boundary.
Re-run the Smart Forms service probes and retain the extraction/renderer regression results.
Assessment harnesses remain local; focused regression cases should accompany the implementation. The full adapted extraction suite passes 76/76 and renderer checks pass 28/28. Population passes 208/209 upstream assertions, with the remaining difference independently checked as correct DateTime-to-Date behavior; it is not an async failure.
The existing async work is tracked as pull requests #3 and #4 rather than issues. I added the SDC findings to both and am updating those implementations. Closing this duplicate tracker; the separate follow-ups remain #119 and #120.
Activity
fjsj commentedon Oct 9, 2026
The existing async work is tracked as pull requests #3 and #4 rather than issues. I added the SDC findings to both and am updating those implementations. Closing this duplicate tracker; the separate follow-ups remain #119 and #120.