Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
511492a
Add Healthcare clinical components: problem list, presenting problems…
horner Jul 4, 2026
44a7a7f
Add offline CodeLookup proof of concept (MedicalCodify search in the …
horner Jul 4, 2026
7be2aa5
CodeLookup: proper autocomplete dropdown + med forms/strengths drill-…
horner Jul 4, 2026
d120145
CodeLookup: let the dropdown escape the Card's overflow-hidden clipping
horner Jul 4, 2026
b915136
CodeLookup: architecture documentation
horner Jul 4, 2026
be13aff
Assessment: order entry via CodeLookup with auto-detected order type
horner Jul 4, 2026
72fef77
Assessment: suspend block dragging while the add-order form is open
horner Jul 4, 2026
62e8816
CodeLookup bare mode; align Assessment add-order row
horner Jul 4, 2026
02fa5fa
Assessment: header row stays a drag handle while the add-order form i…
horner Jul 4, 2026
8178920
CodeLookup: clear input after selection in embedded (bare) mode
horner Jul 4, 2026
82fc592
Assessment: add problems (dx codes) and unlinked orders
horner Jul 4, 2026
83fbea4
Assessment: context-specific search placeholders
horner Jul 4, 2026
a4ad341
Assessment: unified add row auto-detects problem vs order
horner Jul 4, 2026
ebddbc0
Assessment: Add-mode dropdown + free-text entry with ask-then-add
horner Jul 4, 2026
837f3d9
Assessment story: wire refine/revise to the ConditionEditor
horner Jul 4, 2026
62f5913
Address Copilot review feedback on PR #297
horner Jul 4, 2026
923a7c1
Remove unrelated in-progress esheet-fields file accidentally committed
horner Jul 4, 2026
8c30c80
Revert esheet.ts to main: drop import of untracked in-progress esheet…
horner Jul 4, 2026
a4a3c74
Address second round of Copilot review feedback
horner Jul 4, 2026
633481d
CodeLookup: usage priors, per-locale shards (en/es), OPFS persistence…
horner Jul 4, 2026
1250f3f
ci: remove non-existent mieweb/codify submodule that broke checkout
horner Jul 4, 2026
ff36893
docs(CodeLookup): remove codify npm scripts; document cloning externa…
horner Jul 4, 2026
7fff085
fix(CodeLookup): gzip en/med shard to satisfy Cloudflare Pages 25 MiB…
horner Jul 4, 2026
9a054ef
chore(CodeLookup): regenerate all shards gzip-compressed
horner Jul 4, 2026
86b03bb
feat(CodeLookup): rank short prefix queries by usage and leading match
horner Jul 4, 2026
57552fe
feat(CodeLookup): collapse med variants to one row per family
horner Jul 4, 2026
de6d7f2
fix(CodeLookup): collapse med families before the candidate cap
horner Jul 4, 2026
1f729e9
feat(CodeLookup): family collapsing & drill-down across all domains
horner Jul 4, 2026
ea3c75a
feat(CodeLookup): occupational domain — OSHA surveillance & order sets
horner Jul 4, 2026
c7d4a2b
feat(CodeLookup): programs.json metadata + programsUrl override (Phas…
horner Jul 4, 2026
34c5e40
feat(CodeLookup): new occupational verticals in shards (Phase 2)
horner Jul 4, 2026
33a886c
feat(CodeLookup): quality domain (eCQMs) — Phase 3
horner Jul 4, 2026
4b4a2f9
feat(HealthSurveillance): PatientHistory + due-evaluation engine (Pha…
horner Jul 4, 2026
45cbb4b
feat(HealthSurveillance): due-list component + chart demo stories (Ph…
horner Jul 4, 2026
c0a9775
docs+test: programs.json README section, engine unit tests (Phase 7)
horner Jul 4, 2026
26b503b
feat(Assessment): 'Add concern' wording + concerns rank first in auto…
horner Jul 4, 2026
976113d
feat(Assessment): prefer ICD-10 over SNOMED + billableOnly option
horner Jul 4, 2026
9dbc61a
feat(HealthSurveillance): one-of order groups + order dependencies
horner Jul 4, 2026
770a602
docs: OrdersGridPlan — phased plan for NITRO EncounterOrdersGrid/Char…
horner Jul 5, 2026
ab9f028
feat(HealthSurveillance): order-row model for NITRO grids (Phase 1)
horner Jul 5, 2026
3c96540
feat(HealthSurveillance): shared NITRO orders-grid internals (Phase 2)
horner Jul 5, 2026
dc6bcd0
feat(HealthSurveillance): ChartOrdersGrid + EncounterOrdersGrid (Phas…
horner Jul 5, 2026
cd1b602
docs: OrdersGridPlan — phases 1-5 complete, verification notes
horner Jul 5, 2026
b6dbad1
feat(HealthSurveillance): checkbox selection column for orders grids
horner Jul 5, 2026
cb31a3f
refactor(HealthSurveillance): orders grids use native NITRO selection
horner Jul 5, 2026
f292517
feat(esheet): medicationList custom field type — medication reconcili…
horner Jul 7, 2026
7c7f48a
refactor(MedicationList): extract MedicationReconciliation standalone…
horner Jul 7, 2026
d0daecf
feat(MedicationList): NCPDP MedicationEditor with CodeLookup coding +…
horner Jul 7, 2026
b554033
feat(ConditionEditor): CodeLookup injection + harmonized grid story
horner Jul 7, 2026
de09741
feat(MedicationEditor): autofocus, parse-from-label/sig, connected un…
horner Jul 7, 2026
9461703
fix(MedicationEditor): drop value-like placeholders from prescription…
horner Jul 7, 2026
771fb1f
docs(MedicationList): Interactive story uses MedicationReconciliation
horner Jul 7, 2026
72e7fd7
docs(MedicationList): per-story developer documentation
horner Jul 7, 2026
418513c
feat(MedicationList): drag-drop reorder in the engine + Empty quick-e…
horner Jul 7, 2026
fe58c5b
feat: AllergyList family + non-leading inline add for medications
horner Jul 7, 2026
14d7d31
feat(AllergyList): drag-drop reorder + type-aware allergen lookup
horner Jul 7, 2026
f285fec
feat(AllergyList): capture allergy vs intolerance (FHIR AllergyIntole…
horner Jul 7, 2026
10d246f
fix(healthcare): row action toolbars reachable without a pointer
horner Jul 7, 2026
0cf6b9d
feat(OrderEditor): morphing order editor + order row edit/remove
horner Jul 7, 2026
3ba038f
refactor(healthcare): extract RowActionToolbar + RowIconButton
horner Jul 7, 2026
15bed34
fix: address PR #299 review comments
horner Jul 7, 2026
9012fad
esheet components
lattln Jul 8, 2026
d66f41b
feat(healthcare): default coded search on via CodeLookupProvider (opt…
horner Jul 8, 2026
0ee5251
fix: address PR review feedback
horner Jul 8, 2026
ce18142
fix(a11y): meet WCAG AA contrast in PresentingProblems
horner Jul 8, 2026
6a28a07
fix: address second-round review feedback
horner Jul 8, 2026
af518b3
Merge branch 'main' into clinical-components
garrity-miepub Jul 8, 2026
a6e2a4d
fix: disable already-pending HealthSurveillance orders; safelist RowA…
horner Jul 8, 2026
fa67065
fix(drag): prevent text selection hijacking drag on iPad pointer sess…
horner Jul 8, 2026
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
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.storybook/public/codify/**/*.mcdx filter=lfs diff=lfs merge=lfs -text
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,8 @@ playwright-results/
test-results/*.swp
TODO.local.md
RESTORE-OZWELL.local.md
# MedicalCodify shards (.storybook/public/codify) are committed via git-lfs;
# the extraction TSV + sqlite db live (gitignored) in packages/codify/data/
# The codify build pipeline lives in a separate (not-yet-published) repo and is
# kept locally here without being tracked in this repo.
packages/codify/
30 changes: 29 additions & 1 deletion .storybook/preview.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ import { ozwellBrand } from '../src/brands/ozwell';
import { wagglelineBrand } from '../src/brands/waggleline';
import { webchartBrand } from '../src/brands/webchart';
import type { BrandConfig } from '../src/brands/types';
import { CodeLookup } from '../src/components/CodeLookup';
import { CodeLookupProvider } from '../src/components/CodeLookup/context';

// Map of available brands
const brands: Record<string, BrandConfig> = {
Expand Down Expand Up @@ -243,11 +245,25 @@ const withBrand: Decorator = (Story, context) => {
);
};

// Provides an ambient CodeLookup so the healthcare components' default (no
// explicit `codeLookup` / `renderCodeSearch` prop) demonstrates offline coded
// search. Stories that inject their own config still win (explicit overrides
// context); pass `codeLookup={false}` in a story to demo the plain-text opt-out.
const withCodeLookup: Decorator = (Story, context) => {
const locale = (context.globals.locale as string) || 'en';
return (
<CodeLookupProvider component={CodeLookup} indexUrl="/codify" locale={locale}>
<Story />
</CodeLookupProvider>
);
};

const preview: Preview = {
initialGlobals: {
brand: 'bluehive',
theme: 'light',
density: 'standard',
locale: 'en',
},
globalTypes: {
brand: {
Expand Down Expand Up @@ -292,6 +308,18 @@ const preview: Preview = {
dynamicTitle: true,
},
},
locale: {
name: 'Language',
description: 'Locale for locale-aware components (e.g. CodeLookup shards)',
toolbar: {
icon: 'globe',
items: [
{ value: 'en', title: '🇺🇸 English' },
{ value: 'es', title: '🇪🇸 Español (sample)' },
],
dynamicTitle: true,
},
},
},
parameters: {
a11y: {
Expand Down Expand Up @@ -345,7 +373,7 @@ const preview: Preview = {
},
},
},
decorators: [withGitHubSource, withBrand],
decorators: [withGitHubSource, withBrand, withCodeLookup],
};

export default preview;
3 changes: 3 additions & 0 deletions .storybook/public/codify/en/condition.mcdx
Git LFS file not shown
3 changes: 3 additions & 0 deletions .storybook/public/codify/en/lab.mcdx
Git LFS file not shown
56 changes: 56 additions & 0 deletions .storybook/public/codify/en/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
{
"version": 2,
"locale": "en",
"builtAt": "2026-07-04T16:04:51.814Z",
"shards": [
{
"domain": "condition",
"file": "condition.mcdx",
"bytes": 4289695,
"docCount": 103088,
"tokenCount": 8728
},
{
"domain": "med",
"file": "med.mcdx",
"bytes": 15301251,
"docCount": 381526,
"tokenCount": 40153
},
{
"domain": "lab",
"file": "lab.mcdx",
"bytes": 8820150,
"docCount": 185261,
"tokenCount": 22914
},
{
"domain": "procedure",
"file": "procedure.mcdx",
"bytes": 4134391,
"docCount": 99551,
"tokenCount": 9810
},
{
"domain": "vaccine",
"file": "vaccine.mcdx",
"bytes": 23054,
"docCount": 608,
"tokenCount": 489
},
{
"domain": "occupational",
"file": "occupational.mcdx",
"bytes": 2508,
"docCount": 29,
"tokenCount": 99
},
{
"domain": "quality",
"file": "quality.mcdx",
"bytes": 827,
"docCount": 8,
"tokenCount": 27
}
]
}
3 changes: 3 additions & 0 deletions .storybook/public/codify/en/med.mcdx
Git LFS file not shown
3 changes: 3 additions & 0 deletions .storybook/public/codify/en/occupational.mcdx
Git LFS file not shown
3 changes: 3 additions & 0 deletions .storybook/public/codify/en/procedure.mcdx
Git LFS file not shown
Loading
Loading