Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 6 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,9 @@ native/tablespec/sources/** -text
spec/domain-packs/medical*/sources/** -text
spec/domain-packs/medical*/data/** -text
spec/domain-packs/medical-terminology/sources/*.txt whitespace=cr-at-eol

spec/domain-packs/medical-carrier/sources/cms-*.csv -text whitespace=cr-at-eol
spec/domain-packs/medical-imaging/sources/*.dcm binary

# Generated bundles may contain literal trailing spaces in dependency strings.
docs/helix/05-deploy/microsite/dist/*.js whitespace=-blank-at-eol
16 changes: 16 additions & 0 deletions .github/workflows/microsite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ on:
- 'docs/helix/05-deploy/microsite/**'
- 'src/**'
- 'spec/**'
- 'scripts/build-medical-subpacks.ts'
- 'scripts/domain-pack-family.ts'
- 'scripts/export-domain-family.ts'
- 'scripts/export-domain-pack.ts'
- 'scripts/domain-packs/ontology.ts'
- 'tests/domain-packs/**'
- 'patches/**'
- 'package.json'
- 'bun.lock'
Expand All @@ -19,6 +25,12 @@ on:
- 'docs/helix/05-deploy/microsite/**'
- 'src/**'
- 'spec/**'
- 'scripts/build-medical-subpacks.ts'
- 'scripts/domain-pack-family.ts'
- 'scripts/export-domain-family.ts'
- 'scripts/export-domain-pack.ts'
- 'scripts/domain-packs/ontology.ts'
- 'tests/domain-packs/**'
- 'patches/**'
- 'package.json'
- 'bun.lock'
Expand All @@ -42,6 +54,10 @@ jobs:
bun-version: '1.3.14'
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Verify medical family artifacts
run: |
bun scripts/build-medical-subpacks.ts --check
bun test tests/domain-packs
- name: Build browser playground
run: bun build docs/helix/05-deploy/microsite/demo.ts --target browser --minify --outfile docs/helix/05-deploy/microsite/dist/demo.js
- name: Build schema explorer and domain-pack catalog
Expand Down
10 changes: 10 additions & 0 deletions docs/helix/01-frame/features/FEAT-011-medical-domain-pack.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,13 @@ First clinical profile, terminology distribution terms and source separation; FH
## Out of Scope

Clinical decision support, medical advice, and population-valid simulation.

## Medical family integration

Clinical, carrier, epidemiology, imaging and terminology packs must be discoverable
from one Medical overview. Preserve their independent versions and source namespaces.
Carrier samples include qualified public CSV claim/enrollment excerpts alongside
FHIR (Fast Healthcare Interoperability Resources) R4 originals. Imaging includes
a rights-qualified public DICOM (Digital Imaging and Communications in Medicine)
object alongside the synthetic private-tag control. Publish original-source and
CSV downloads, source limitations and matching ontology/table navigation.
11 changes: 11 additions & 0 deletions docs/helix/01-frame/user-stories/US-055-medical-subpacks.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,14 @@ CONTRACT-001, CONTRACT-052, ADR-002, architecture, TD-055 and STP-055.
Production carrier processing, clinical validation, patient identity matching,
terminology equivalence, pixel codecs, live PACS and native graph-engine adoption.
These retain separate FR-45 requirements and qualification gates.

## Integrated family delivery

Owner direction extends AC1/AC4/AC6 to qualified public samples and complete
family discovery/export. Medical's clinical overview links each independently
versioned subpack; each subpack links back. Exact public CMS CSV excerpts remain
historical synthetic claims, distinct from the FHIR examples. A selected TCIA
DICOM object keeps collection citation, rights and unchanged bytes. The explorer
offers local source and CSV downloads and all four subpack ontology views.
One explicit family export preserves separate pack directories and inventories;
composition never invents patient linkage or combines populations.
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ The pack's conceptual scope is Patients; organizations; practitioners; encounter

## Delivered Subset

The completed medical pack is an official fixed example corpus, not a longitudinal generator: 17 HL7 R4 resources, eight projections, exact originals/literals and explicit source provenance. [Evidence](../../04-build/evidence/medical-domain-pack.md) records typed ZIP and local Sail/Spark checks. Medication is a resource, not an inferred order/administration. Conditions, allergies, procedures, notes and claims remain desired expansions. CMS records are reference-only until selected bytes and reuse terms are established. AC4/AC5 apply to future generated supplementation; they must not force cloning published clinical records or be marked passed by fixed corpus ingestion.
The completed medical pack is an official fixed example corpus, not a longitudinal generator: 17 HL7 R4 resources, eight projections, exact originals/literals and explicit source provenance. [Evidence](../../04-build/evidence/medical-domain-pack.md) records typed ZIP and local Sail/Spark checks. Medication is a resource, not an inferred order/administration. Conditions, allergies, procedures and notes remain desired expansions. US-055 separately qualifies carrier FHIR/CSV examples and bounded CMS DE-SynPUF excerpts; these do not establish the longitudinal generated scenario in this story. Medical 1.1.0 links that independent carrier pack and the imaging, epidemiology and terminology packs while retaining the unchanged clinical sources. AC4/AC5 apply to future generated supplementation; they must not force cloning published clinical records or be marked passed by fixed corpus ingestion.

## Pilot Question

Expand Down
38 changes: 38 additions & 0 deletions docs/helix/02-design/contracts/CONTRACT-052-domain-packs.md
Original file line number Diff line number Diff line change
Expand Up @@ -368,3 +368,41 @@ This selection MUST NOT mark rights cleared or permit redistributable source ZIP
export. Mixed processing MUST generate only synthetic bindings through a trusted
generator, ingest observed bindings unchanged and refuse unresolved bindings or
cross-boundary references before target writes.

## Medical family composition and public fixture delivery

Optional `family` metadata is `{id,version,label}`. Optional `composition` is
`{version:"1.0.0",components:[{id,version,label,checksum:{algorithm:"sha256",value}}]}`.
Component IDs use lowercase letters, digits and hyphens, start with a letter and
contain no path separators. Identity is exact pack ID/version. Duplicate or self
components, malformed descriptors and unsupported composition versions refuse
admission. Unknown annotation fields remain retained. These additive metadata
fields use the existing extensible domain-pack 1.0.0 envelope.

Composition resolves only caller-selected local sibling pack directories. Each
component's manifest hash, exact identity and matching `family` declaration must
agree. Components cannot themselves contain compositions. No implicit fetching,
patient matching or cross-source joins occur. `export-domain-family.ts --pack
<pack.json> --output <directory> [--include-sources] [--check]` exports the root
and components into independent ID/version directories using the shared exporter;
it preflights every component before publishing and writes `family.json` with
exact manifest hashes. Rights, hash and path errors refuse the whole preflight.

Subpacks expose CONTRACT-053 fixed tabular and graph targets. Ontologies are
declared schema companions of their exact tables, not native graph-engine or
clinical-conformance evidence. CSV/FHIR/DICOM originals stay source authorities.

The schema explorer resolves exact composition identities and hashes within its
built catalog, shows family links and publishes only checksum-verified local
sources with explicit allowed redistribution. Row bindings link a selected table
to its CSV; source cards identify format, origin, release and qualification.
Downloads preserve exact bytes; no remote metadata URL triggers retrieval.

CMS DE-SynPUF excerpts preserve native columns and tokens, empty cells and ICD-9
era semantics; they are published synthetic data, not real beneficiary records.
The selected TCIA LIDC-IDRI object retains original binary and separate pydicom
JSON metadata; pixel/file-meta representation differences remain explicit.
Collection-specific CC BY 3.0 attribution accompanies redistribution. Public
source selection and native inspection are development evidence; the portable
library performs no binary parsing or pixel decoding. Live PACS/DICOMweb and
production carrier processing retain their separate future designs.
17 changes: 17 additions & 0 deletions docs/helix/02-design/technical-designs/TD-055-medical-subpacks.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,3 +97,20 @@ slice; no persisted core migration or cross-repository port is required.
Public examples may not agree financially or resolve references. Retain originals
and unresolved relationships. Public code availability does not grant unrestricted
terminology rights. Source-specific notices and local licensed bindings apply.

## Family integration and public sources

Follow CONTRACT-052 composition metadata and family export. The deterministic
builder adds fixed execution profiles and table-derived ontology schemas to
each subpack, then fingerprints component manifests from Medical's overview.
CMS native CSV excerpts get separate schemas and source lineage without FHIR
conversion or ICD crosswalks. A TCIA object gets a separate source namespace,
recursive metadata views and unchanged binary source. Source qualification is
checked in; regeneration and browser/catalog builds never download sources.

The explorer links family overviews, table/ontology counterparts and pinned
local original/row downloads. Site asset construction uses shared rights/hash
checks. Export preserves one directory per pack and preflights before writes.
Bun rejects stale or escaping members; Chromium exercises direct links, downloads,
search and mobile layout. Independent TableSpec and pydicom checks verify public
CSV cells, local-only joins, recursive DICOM metadata and exact archived originals.
5 changes: 5 additions & 0 deletions docs/helix/03-test/acceptance-criteria-ledger.json
Original file line number Diff line number Diff line change
Expand Up @@ -4091,6 +4091,7 @@
"story": "docs/helix/01-frame/user-stories/US-055-medical-subpacks.md",
"status": "SATISFIED",
"evidence": [
"tests/domain-packs/medical-family.test.ts:11",
"tests/domain-packs/medical-subpacks.test.ts:17"
],
"rationale": "A live Bun test carries a canonical citation."
Expand Down Expand Up @@ -4119,6 +4120,7 @@
"story": "docs/helix/01-frame/user-stories/US-055-medical-subpacks.md",
"status": "SATISFIED",
"evidence": [
"tests/domain-packs/medical-family.test.ts:11",
"tests/domain-packs/medical-subpacks.test.ts:66"
],
"rationale": "A live Bun test carries a canonical citation."
Expand All @@ -4128,6 +4130,7 @@
"story": "docs/helix/01-frame/user-stories/US-055-medical-subpacks.md",
"status": "SATISFIED",
"evidence": [
"tests/domain-packs/medical-family.test.ts:24",
"tests/domain-packs/medical-subpacks.test.ts:113",
"tests/domain-packs/medical-subpacks.test.ts:81",
"tests/domain-packs/medical-subpacks.test.ts:97"
Expand All @@ -4139,6 +4142,8 @@
"story": "docs/helix/01-frame/user-stories/US-055-medical-subpacks.md",
"status": "SATISFIED",
"evidence": [
"tests/domain-packs/medical-family.test.ts:11",
"tests/domain-packs/medical-family.test.ts:24",
"tests/domain-packs/medical-subpacks.test.ts:113",
"tests/domain-packs/medical-subpacks.test.ts:97"
],
Expand Down
14 changes: 14 additions & 0 deletions docs/helix/03-test/test-plans/STP-055-medical-subpacks.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,17 @@ suppression/zero/unknown, exact money and nested private DICOM content.
Follow TD-055: source qualification, projections, pack artifacts, consumer checks.
Done requires all six criteria to pass their named scoped checks, with versions and
limits recorded. Full native equivalence and live services remain unclaimed.

## Integrated public-source and family checks

AC1: independently compare every selected CMS CSV cell and historical native
column against the retained excerpt; show its synthetic source separately from
FHIR. AC4: pydicom checks the selected TCIA UIDs, metadata, native sequences and
original bytes without treating the private-tag synthetic case as public evidence.
AC6: validate all five fixed profiles and ontologies; export/check all family
members; reject wrong hashes, versions, duplicates, traversal, missing members
and uncleared sources before output. Chromium follows Medical-to-subpack and
back links, every table/ontology pair, CSV/FHIR/DICOM downloads, search, direct
links and mobile containment. TableSpec ingests every tabular target and recovers
both schemas and original attachments. Historical broader obligations remain
separate from acceptance of this requested sample/integration slice.
70 changes: 70 additions & 0 deletions docs/helix/04-build/evidence/medical-subpacks.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,3 +123,73 @@ TypeScript checks, 61 extension-package and 349 JSON Schema audits, the browser
build, 60 Chromium library checks, and all 19 explorer checks including every
catalog schema and all eighteen medical subpack schemas. This supplements the
source and native-oracle evidence above; it does not broaden native support.

## Integrated medical family 1.1.0 — 2026-10-08

The requested sample integration is complete under US-055/TD-055/STP-055. Five
1.1.0 packs preserve the unchanged clinical originals, separately versioned
carrier/epidemiology/imaging/terminology content and source namespaces. There are
29 tables, five table-derived ontology schemas and 517 projected rows. The
Medical overview and each child/schema link the whole family; old 1.0.0 browser
bookmarks redirect to the qualified current subset. One preflighted family export
retains independent directories and an exact manifest inventory. Historical
1.0.0 archives and the earlier evidence above remain available.

Public sources add three CMS DE-SynPUF beneficiaries, five inpatient claims and
five carrier claims as exact native CSV excerpts. These are published synthetic
2008/2008–2010 data. The selection excludes numeric CPT/Level I HCPCS carrier
rows, preserves every selected native column and ICD-9-era token, and retains
upstream/member/subset hashes and original record numbers. CMS rights qualification
is limited to this subset and does not grant dictionary redistribution. FHIR R4
originals and separately authored eligibility/authorization/payment scenarios
remain independent; no CMS-to-FHIR clinical equivalence is claimed.

Imaging adds one unchanged, publisher-deidentified TCIA LIDC-IDRI CT slice under
CC BY 3.0, DOI 10.7937/K9/TCIA.2015.LO9QL9SX. Collection attribution and selection
are supplied with the original binary and derived pydicom JSON. This is one of
133 series instances, not a full study. Its native DICOM edition and burned-in
annotation declaration are unavailable. Three private elements are retained and
recorded; no independent deidentification certification is asserted. Native DS/IS
spellings and file/pixel bytes remain in the binary; JSON numeric normalization
and local opaque pixel BulkDataURI are explicit projection differences.

Executed integration gates:

- Bun 1.4.2: 48 domain-pack/traceability tests, 3,146 assertions, zero failures.
Family version/hash/rights errors refuse before output; all source bytes recover.
- Both TypeScript configurations, browser ESM/declarations, 61 extension packages,
349 canonical schemas, medical regeneration and acceptance inventory pass.
- Chromium 153.0.8010.12: 68 portable-library checks, including public DICOM
preservation; 24 explorer checks navigate all 24 packs/273 catalog entries.
Family links, four ontology/table pairs, exact CSV/FHIR/DICOM hashes and actual
downloads, old bookmarks, search and mobile containment pass.
- TableSpec installed metadata 0.0.6.post6.dev0+d2ee70a / Python 3.12.15:
all five fixed profiles ingest; 29 tables/517 rows, 96 original attachments,
every schema and typed archive row recover. Two archives per pack match bytes.
Independent Python CSV reads compare every CMS native cell to projected cells.
- pydicom 3.0.2 / Python 3.13.16: 24 native assertions pass across synthetic and
public objects, including UIDs, transfer syntax, private content and exact bytes.
- All five published HTML signatures remain valid; no HTML seal/key change is
needed. The publication workflow now checks medical regeneration and pack
regressions, then constructs allowed sample downloads with the shared exporter.

The [machine record](../../../../fixtures/validation/medical-family-integration-evidence.json)
fingerprints source, schema, row, tooling, catalog and new archive files.
Reproduction: `bun scripts/build-medical-subpacks.ts --check`,
`bun test tests/domain-packs tests/traceability`,
`bun docs/helix/05-deploy/microsite/build-explorer.ts`,
`bun docs/helix/05-deploy/microsite/verify-explorer.ts` with the local preview,
`bun scripts/domain-pack-browser.ts` with the browser library build, and the
existing native oracle with `--dicom-only` or `--output fixtures/domain-packs`.
`collect-medical-public-samples.py --cache <directory>` regenerates public selections
from the explicitly downloaded archives after verifying their pinned hashes. It
never fetches from browser/pack operations.

Initial verification found a comma in the local DICOM tag fragment, a tooling
type error, stale browser version selectors and the expected traceability snapshot
change. These were corrected and the affected gates rerun. An intermediate browser
run also compared a loaded catalog with a concurrently regenerated manifest; the
final sequential catalog/browser run passes. Full repository/native replay, full
terminology dictionaries/maps, graph storage, live PACS/DICOMweb/X12 and production
carrier behavior remain separate obligations; this delivery completes the
requested public sample and browser/family integration slice.
10 changes: 10 additions & 0 deletions docs/helix/04-build/implementation-plan.md
Original file line number Diff line number Diff line change
Expand Up @@ -5644,3 +5644,13 @@ input/output switching, YAML generation and existing explorer preservation and
navigation checks; see the schema-explorer evidence. Public deployment is not
performed. Changed playground HTML requires its Innsigle signature to be renewed
before publication. Rollback restores the prior viewer and rebuilds bundles.

### Integrated medical family and public samples

Owner direction completes the sample integration under US-055/TD-055/STP-055:
qualify bounded public CMS CSV and TCIA DICOM sources, retain exact native meaning
and originals, add all subpack fixed profiles/ontology companions, link the
Medical family in the explorer and expose allowed original/row downloads.
Preflight and export the complete family in separate versioned directories; run
Bun, actual Chromium, independent TableSpec/pydicom and deployment gates before
merging. Live PACS and production carrier services remain separate future scope.
2 changes: 2 additions & 0 deletions docs/helix/05-deploy/microsite/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@
!dist/**
.sites-checkout/
.sites-checkout-*/

/dist/pack-assets/
22 changes: 22 additions & 0 deletions docs/helix/05-deploy/microsite/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,3 +152,25 @@ text and downloads retain their exact bytes. JSON Schema and OpenAPI generated
files default to YAML with an explicit JSON option. Avro and Spark previews use
YAML for reading; their native downloads and the interchange report bundle stay
JSON. SQL, GraphQL and Protobuf keep their native syntax.


## Integrated medical sample family 1.1.0

The Medical overview and each medical-family schema link Clinical, Carrier,
Epidemiology, Imaging and Terminology. All five fixed profiles have ontology/table
companions; the family contains 29 tables/five ontologies. The catalog remains
24 packs and now has 273 entries. Legacy 1.0.0 medical bookmarks redirect to the
current 1.1.0 subset. Source namespaces are never merged or matched implicitly.

Local source-inclusive export constructs `dist/pack-assets/` during every build.
Only checksum-verified local samples with allowed rights are published; source
metadata never causes a remote fetch. Overviews download original CSV/FHIR/DICOM
files and notices; selected table pages link their bound CSV. The public CMS
synthetic excerpts retain ICD-9 meanings; TCIA LIDC-IDRI contributes one
CC BY 3.0 native CT slice with separate metadata and explicit projection losses.
`Sample scope` exposes limits while composition/execution metadata stays available
in a collapsed source detail. Deployment regenerates assets rather than committing
duplicate originals. 24 Chromium explorer checks pass, including actual public
sample downloads/hash equality, all catalog entries, family navigation, ontology
links, old bookmarks and mobile containment. Detailed reproduction and native
checks are in `../../04-build/evidence/medical-subpacks.md`.
Loading
Loading