heor-agent-mcp 1.9.0 → 1.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/icf/jargon.d.ts.map +1 -1
- package/dist/icf/jargon.js +5 -4
- package/dist/icf/jargon.js.map +1 -1
- package/dist/icf/syllables.d.ts.map +1 -1
- package/dist/icf/syllables.js +31 -10
- package/dist/icf/syllables.js.map +1 -1
- package/dist/icf/types.d.ts +7 -3
- package/dist/icf/types.d.ts.map +1 -1
- package/dist/icf/types.js.map +1 -1
- package/dist/models/evppi.d.ts +8 -1
- package/dist/models/evppi.d.ts.map +1 -1
- package/dist/models/evppi.js +21 -8
- package/dist/models/evppi.js.map +1 -1
- package/dist/models/survivalFitting.d.ts.map +1 -1
- package/dist/models/survivalFitting.js +99 -29
- package/dist/models/survivalFitting.js.map +1 -1
- package/dist/tools/icfReadabilityCheck.d.ts.map +1 -1
- package/dist/tools/icfReadabilityCheck.js +19 -15
- package/dist/tools/icfReadabilityCheck.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -45,7 +45,7 @@ curl -s http://localhost:8080/health
|
|
|
45
45
|
Expected output:
|
|
46
46
|
|
|
47
47
|
```json
|
|
48
|
-
{"status":"ok","server":"heor-agent-mcp","version":"1.9.
|
|
48
|
+
{"status":"ok","server":"heor-agent-mcp","version":"1.9.2"}
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
✅ If you see the JSON above, the npm package works on your machine. Any further issues are in your MCP client config (Claude Desktop / Cursor / Continue), not the server.
|
|
@@ -126,7 +126,7 @@ The first prompt exercises `literature_search` + `validate_links` (free, no API
|
|
|
126
126
|
|
|
127
127
|
## What's new
|
|
128
128
|
|
|
129
|
-
See [CHANGELOG.md](./CHANGELOG.md) for full version history. Current: **v1.9.
|
|
129
|
+
See [CHANGELOG.md](./CHANGELOG.md) for full version history. Current: **v1.9.2** (27 tools, 44 data sources).
|
|
130
130
|
|
|
131
131
|
### v1.0.4 highlights (still in v1.6.3)
|
|
132
132
|
|
package/dist/icf/jargon.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jargon.d.ts","sourceRoot":"","sources":["../../src/icf/jargon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"jargon.d.ts","sourceRoot":"","sources":["../../src/icf/jargon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,WAAW,CAsLxD,CAAC;AASF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAgCpD"}
|
package/dist/icf/jargon.js
CHANGED
|
@@ -129,10 +129,11 @@ export const JARGON_DICTIONARY = [
|
|
|
129
129
|
term: "efficacy",
|
|
130
130
|
plain_language: "how well the treatment works under controlled conditions",
|
|
131
131
|
},
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
132
|
+
// v1.9.1 fix: removed an "effectiveness" entry here. NIH Plain Language
|
|
133
|
+
// ICF guidance and FDA Communicating Risks and Benefits recommend
|
|
134
|
+
// "effectiveness" AS the plain-language replacement for "efficacy" —
|
|
135
|
+
// flagging it as jargon contradicts the cited authority and would tell
|
|
136
|
+
// investigators who did the right thing to undo it.
|
|
136
137
|
{ term: "incidence", plain_language: "how often new cases occur" },
|
|
137
138
|
{
|
|
138
139
|
term: "prevalence",
|
package/dist/icf/jargon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jargon.js","sourceRoot":"","sources":["../../src/icf/jargon.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"jargon.js","sourceRoot":"","sources":["../../src/icf/jargon.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syllables.d.ts","sourceRoot":"","sources":["../../src/icf/syllables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAwCtD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"syllables.d.ts","sourceRoot":"","sources":["../../src/icf/syllables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAwCtD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAkCtD"}
|
package/dist/icf/syllables.js
CHANGED
|
@@ -61,19 +61,40 @@ export function countSyllables(rawWord) {
|
|
|
61
61
|
export function countComplexWord(word) {
|
|
62
62
|
// Gunning's "complex" = 3+ syllables, excluding proper nouns,
|
|
63
63
|
// compound words, and common suffix-only inflections (-es, -ed,
|
|
64
|
-
// -ing). Approximated here by stripping common
|
|
65
|
-
// syllable
|
|
64
|
+
// -ing). Approximated here by stripping common inflectional
|
|
65
|
+
// suffixes that DON'T contribute a syllable; we leave alone the
|
|
66
|
+
// ones that do.
|
|
67
|
+
//
|
|
68
|
+
// v1.9.1 fix: pre-fix unconditionally stripped "-es", which made
|
|
69
|
+
// `processes` (3 syllables: pro-ces-ses) look like 2-syllable
|
|
70
|
+
// `process`, leading Gunning Fog and SMOG to UNDER-count complex
|
|
71
|
+
// words and report falsely low grade levels — the unsafe direction
|
|
72
|
+
// for an ICF readability tool. Now we strip only when the suffix
|
|
73
|
+
// is non-syllabic: compare the syllable count before and after, and
|
|
74
|
+
// strip only if it's unchanged.
|
|
66
75
|
if (!word)
|
|
67
76
|
return false;
|
|
68
77
|
let base = word.toLowerCase().replace(/[^a-z]/g, "");
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
78
|
+
if (base.length === 0)
|
|
79
|
+
return false;
|
|
80
|
+
const tryStrip = (suffix, minLen) => {
|
|
81
|
+
if (!base.endsWith(suffix))
|
|
82
|
+
return null;
|
|
83
|
+
if (base.length <= minLen)
|
|
84
|
+
return null;
|
|
85
|
+
const stripped = base.slice(0, -suffix.length);
|
|
86
|
+
if (stripped.length === 0)
|
|
87
|
+
return null;
|
|
88
|
+
if (countSyllables(stripped) === countSyllables(base)) {
|
|
89
|
+
return stripped;
|
|
90
|
+
}
|
|
91
|
+
return null;
|
|
92
|
+
};
|
|
93
|
+
const after = tryStrip("ing", 4) ?? tryStrip("es", 3) ?? tryStrip("ed", 3);
|
|
94
|
+
if (after !== null)
|
|
95
|
+
base = after;
|
|
96
|
+
// "ied" (carried, married) keeps the syllable from the consonant+ied;
|
|
97
|
+
// covered above by the syllable-count check for "ed".
|
|
77
98
|
return countSyllables(base) >= 3;
|
|
78
99
|
}
|
|
79
100
|
//# sourceMappingURL=syllables.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syllables.js","sourceRoot":"","sources":["../../src/icf/syllables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,GAAG,UAAU,CAAC;AAE1B,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC;IACvB,IAAI,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACxD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAE/B,uDAAuD;IACvD,IACE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAClB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACpB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACpB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EACpB,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,+DAA+D;IAC/D,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9C,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,gEAAgE;IAChE,+DAA+D;IAC/D,gEAAgE;IAChE,oBAAoB;IACpB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO;gBAAE,KAAK,EAAE,CAAC;YACtB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,8DAA8D;IAC9D,gEAAgE;IAChE
|
|
1
|
+
{"version":3,"file":"syllables.js","sourceRoot":"","sources":["../../src/icf/syllables.ts"],"names":[],"mappings":"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"}
|
package/dist/icf/types.d.ts
CHANGED
|
@@ -72,10 +72,14 @@ export interface IcfReadabilityAssessment {
|
|
|
72
72
|
/** User-supplied or default target grade level (e.g., 8). */
|
|
73
73
|
target_grade_level: number;
|
|
74
74
|
/**
|
|
75
|
-
* Overall verdict:
|
|
75
|
+
* Overall verdict (v1.9.1: aligned to actual code which uses AND):
|
|
76
76
|
* pass — FKGL ≤ target AND <20% sentences exceed target
|
|
77
|
-
* borderline — FKGL
|
|
78
|
-
*
|
|
77
|
+
* borderline — FKGL ≤ target+1.5 AND <40% sentences exceed target
|
|
78
|
+
* (and not already pass)
|
|
79
|
+
* fail — anything else (FKGL > target+1.5 OR ≥40% exceed)
|
|
80
|
+
* The AND semantics are stricter than an OR alternative; a passing
|
|
81
|
+
* FKGL with many bad sentences (or vice versa) drops to fail. This
|
|
82
|
+
* is the patient-safety direction.
|
|
79
83
|
*/
|
|
80
84
|
verdict: Verdict;
|
|
81
85
|
/**
|
package/dist/icf/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/icf/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,+BAA+B;IAC/B,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,+DAA+D;IAC/D,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,WAAW,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,qCAAqC;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,kEAAkE;IAClE,eAAe,EAAE,aAAa,EAAE,CAAC;IACjC,6DAA6D;IAC7D,kBAAkB,EAAE,MAAM,CAAC;IAC3B
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/icf/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,+BAA+B;IAC/B,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,+DAA+D;IAC/D,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,WAAW,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,qCAAqC;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,kEAAkE;IAClE,eAAe,EAAE,aAAa,EAAE,CAAC;IACjC,6DAA6D;IAC7D,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;OASG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,sEAAsE;IACtE,WAAW,EAAE,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oFAAoF;IACpF,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,WAAW,EAAG,SAAkB,CAAC"}
|
package/dist/icf/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/icf/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/icf/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoGH,MAAM,CAAC,MAAM,WAAW,GAAG,SAAkB,CAAC"}
|
package/dist/models/evppi.d.ts
CHANGED
|
@@ -60,5 +60,12 @@ export interface PSAIterationData {
|
|
|
60
60
|
delta_qaly: number;
|
|
61
61
|
params: Record<string, number>;
|
|
62
62
|
}
|
|
63
|
-
export declare function computeEVPPI(iterations: PSAIterationData[], lambda: number, parameterNames: string[]
|
|
63
|
+
export declare function computeEVPPI(iterations: PSAIterationData[], lambda: number, parameterNames: string[],
|
|
64
|
+
/**
|
|
65
|
+
* Optional RNG. Defaults to `Math.random` for production. Tests pass
|
|
66
|
+
* a seeded mulberry32 so the bootstrap CI is reproducible. v1.9.2:
|
|
67
|
+
* pre-fix all bootstrap calls used `Math.random` unconditionally,
|
|
68
|
+
* which made tests like "CI tightens at N" theoretically flaky.
|
|
69
|
+
*/
|
|
70
|
+
rng?: () => number): EVPPIResult[];
|
|
64
71
|
//# sourceMappingURL=evppi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evppi.d.ts","sourceRoot":"","sources":["../../src/models/evppi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;
|
|
1
|
+
{"version":3,"file":"evppi.d.ts","sourceRoot":"","sources":["../../src/models/evppi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAiJD,wBAAgB,YAAY,CAC1B,UAAU,EAAE,gBAAgB,EAAE,EAC9B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EAAE;AACxB;;;;;GAKG;AACH,GAAG,GAAE,MAAM,MAAoB,GAC9B,WAAW,EAAE,CAkEf"}
|
package/dist/models/evppi.js
CHANGED
|
@@ -136,25 +136,38 @@ function rawEVPPIPoint(iterations, lambda, paramName) {
|
|
|
136
136
|
* Bootstrap CI for one parameter's EVPPI. Returns mean + 95% CI bounds
|
|
137
137
|
* + standard error from resamples. Computationally O(B · N log N).
|
|
138
138
|
*/
|
|
139
|
-
function bootstrapEVPPICI(iterations, lambda, paramName, totalEVPI) {
|
|
139
|
+
function bootstrapEVPPICI(iterations, lambda, paramName, totalEVPI, rng = Math.random) {
|
|
140
140
|
const B = BOOTSTRAP_RESAMPLES;
|
|
141
141
|
const N = iterations.length;
|
|
142
142
|
const samples = [];
|
|
143
143
|
for (let b = 0; b < B; b++) {
|
|
144
144
|
const resample = new Array(N);
|
|
145
145
|
for (let i = 0; i < N; i++) {
|
|
146
|
-
resample[i] = iterations[Math.floor(
|
|
146
|
+
resample[i] = iterations[Math.floor(rng() * N)];
|
|
147
147
|
}
|
|
148
|
-
|
|
149
|
-
|
|
148
|
+
// v1.9.1 fix: do NOT cap at the original totalEVPI here. Capping
|
|
149
|
+
// inside the bootstrap loop truncates the upper tail of the
|
|
150
|
+
// bootstrap distribution whenever a resample produces a higher raw
|
|
151
|
+
// EVPPI than the original — that's a systematic downward bias on
|
|
152
|
+
// evppi_ci_upper. Each bootstrap resample has its own empirical
|
|
153
|
+
// totalEVPI; let the distribution range freely. We only cap the
|
|
154
|
+
// FINAL reported percentile bounds at totalEVPI below.
|
|
155
|
+
samples.push(Math.max(0, rawEVPPIPoint(resample, lambda, paramName)));
|
|
150
156
|
}
|
|
151
157
|
samples.sort((a, b) => a - b);
|
|
152
|
-
const lower = Math.max(0, quantile(samples, 0.025));
|
|
153
|
-
const upper = Math.max(0, quantile(samples, 0.975));
|
|
158
|
+
const lower = Math.max(0, Math.min(quantile(samples, 0.025), totalEVPI));
|
|
159
|
+
const upper = Math.max(0, Math.min(quantile(samples, 0.975), totalEVPI));
|
|
154
160
|
const se = stddev(samples);
|
|
155
161
|
return { lower, upper, se };
|
|
156
162
|
}
|
|
157
|
-
export function computeEVPPI(iterations, lambda, parameterNames
|
|
163
|
+
export function computeEVPPI(iterations, lambda, parameterNames,
|
|
164
|
+
/**
|
|
165
|
+
* Optional RNG. Defaults to `Math.random` for production. Tests pass
|
|
166
|
+
* a seeded mulberry32 so the bootstrap CI is reproducible. v1.9.2:
|
|
167
|
+
* pre-fix all bootstrap calls used `Math.random` unconditionally,
|
|
168
|
+
* which made tests like "CI tightens at N" theoretically flaky.
|
|
169
|
+
*/
|
|
170
|
+
rng = Math.random) {
|
|
158
171
|
const N = iterations.length;
|
|
159
172
|
if (N < 20)
|
|
160
173
|
return [];
|
|
@@ -194,7 +207,7 @@ export function computeEVPPI(iterations, lambda, parameterNames) {
|
|
|
194
207
|
};
|
|
195
208
|
// Bootstrap CI when sample is large enough to be meaningful.
|
|
196
209
|
if (N >= MIN_N_FOR_BOOTSTRAP) {
|
|
197
|
-
const ci = bootstrapEVPPICI(iterations, lambda, paramName, totalEVPI);
|
|
210
|
+
const ci = bootstrapEVPPICI(iterations, lambda, paramName, totalEVPI, rng);
|
|
198
211
|
result.evppi_ci_lower = ci.lower;
|
|
199
212
|
result.evppi_ci_upper = ci.upper;
|
|
200
213
|
result.evppi_se = ci.se;
|
package/dist/models/evppi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evppi.js","sourceRoot":"","sources":["../../src/models/evppi.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"evppi.js","sourceRoot":"","sources":["../../src/models/evppi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"survivalFitting.d.ts","sourceRoot":"","sources":["../../src/models/survivalFitting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;CACd;AAED,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,SAAS,GACT,cAAc,GACd,YAAY,GACZ,UAAU,CAAC;AAEf,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC3B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,KAAK,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACJ;
|
|
1
|
+
{"version":3,"file":"survivalFitting.d.ts","sourceRoot":"","sources":["../../src/models/survivalFitting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;CACd;AAED,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,SAAS,GACT,cAAc,GACd,YAAY,GACZ,UAAU,CAAC;AAEf,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC3B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,KAAK,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACJ;AA6sBD;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,cAAc,EAAE,EACxB,QAAQ,GAAE,MAAiB,GAC1B,iBAAiB,CAwDnB;AA8DD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,WAAW,EAAE,EACnB,QAAQ,GAAE,MAAiB,GAC1B,iBAAiB,CAiDnB"}
|
|
@@ -138,8 +138,26 @@ function nelderMead(fn, initial, maxIter = 500) {
|
|
|
138
138
|
point[i] = point[i] * 1.5 + 0.1;
|
|
139
139
|
simplex.push({ point, value: fn(point) });
|
|
140
140
|
}
|
|
141
|
+
// Convergence tolerance — when the spread of objective values across
|
|
142
|
+
// the simplex falls below this in absolute or relative terms, we
|
|
143
|
+
// declare convergence and exit early. v1.9.2 added: pre-fix the
|
|
144
|
+
// optimizer always ran maxIter iterations, wasting compute on
|
|
145
|
+
// already-converged simplices and giving no signal when it failed
|
|
146
|
+
// to converge before maxIter ran out.
|
|
147
|
+
const TOL_ABS = 1e-8;
|
|
148
|
+
const TOL_REL = 1e-6;
|
|
141
149
|
for (let iter = 0; iter < maxIter; iter++) {
|
|
142
150
|
simplex.sort((a, b) => a.value - b.value);
|
|
151
|
+
// Convergence check — function-value spread across simplex vertices.
|
|
152
|
+
// Use both absolute and relative tolerances so well-scaled and
|
|
153
|
+
// ill-scaled objectives both terminate appropriately.
|
|
154
|
+
const fBest = simplex[0].value;
|
|
155
|
+
const fWorst = simplex[n].value;
|
|
156
|
+
const spread = Math.abs(fWorst - fBest);
|
|
157
|
+
if (spread < TOL_ABS ||
|
|
158
|
+
spread < TOL_REL * Math.max(Math.abs(fBest), Math.abs(fWorst), 1)) {
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
143
161
|
// Centroid (excluding worst)
|
|
144
162
|
const centroid = new Array(n).fill(0);
|
|
145
163
|
for (let i = 0; i < n; i++) {
|
|
@@ -313,13 +331,19 @@ function fitGompertz(data) {
|
|
|
313
331
|
* Uses f(t) = h(t)·S(t). Numerically guarded against log(0).
|
|
314
332
|
*/
|
|
315
333
|
function logLikelihoodFromEvents(events, survFn, hazardFn) {
|
|
334
|
+
// Log floor: 1e-30 ⇒ log = -69. v1.9.2 raised from 1e-300 (log = -690).
|
|
335
|
+
// R's flexsurv / survival packages use a similar order-of-magnitude
|
|
336
|
+
// floor; values further into the tail produce nearly-flat likelihood
|
|
337
|
+
// surfaces that confuse Nelder-Mead navigation without contributing
|
|
338
|
+
// useful gradient information.
|
|
339
|
+
const LOG_FLOOR = 1e-30;
|
|
316
340
|
let ll = 0;
|
|
317
341
|
for (const row of events) {
|
|
318
342
|
const t = row.time;
|
|
319
|
-
const s = Math.max(
|
|
343
|
+
const s = Math.max(LOG_FLOOR, survFn(t));
|
|
320
344
|
if (row.event === 1) {
|
|
321
345
|
// log f(t) = log h(t) + log S(t)
|
|
322
|
-
const h = Math.max(
|
|
346
|
+
const h = Math.max(LOG_FLOOR, hazardFn(t));
|
|
323
347
|
ll += Math.log(h) + Math.log(s);
|
|
324
348
|
}
|
|
325
349
|
else {
|
|
@@ -340,7 +364,7 @@ function initialMedian(events) {
|
|
|
340
364
|
return 1;
|
|
341
365
|
return sorted[Math.floor(sorted.length / 2)];
|
|
342
366
|
}
|
|
343
|
-
function fitExponentialFromEvents(events) {
|
|
367
|
+
function fitExponentialFromEvents(events, kmTable) {
|
|
344
368
|
const m = initialMedian(events);
|
|
345
369
|
const lambdaInit = Math.max(1e-6, Math.log(2) / m);
|
|
346
370
|
const opt = nelderMead((p) => -logLikelihoodFromEvents(events, (t) => expSurvival(t, Math.max(1e-9, p[0])), (_t) => Math.max(1e-9, p[0])), [lambdaInit]);
|
|
@@ -348,84 +372,120 @@ function fitExponentialFromEvents(events) {
|
|
|
348
372
|
const ll = logLikelihoodFromEvents(events, (t) => expSurvival(t, lambda), () => lambda);
|
|
349
373
|
const k = 1;
|
|
350
374
|
const n = events.length;
|
|
375
|
+
const survFn = (t) => expSurvival(t, lambda);
|
|
351
376
|
return {
|
|
352
377
|
name: "exponential",
|
|
353
378
|
params: { lambda },
|
|
354
379
|
aic: -2 * ll + 2 * k,
|
|
355
380
|
bic: -2 * ll + k * Math.log(n),
|
|
356
381
|
log_likelihood: ll,
|
|
357
|
-
survival_at:
|
|
382
|
+
survival_at: survFn,
|
|
358
383
|
hazard_at: () => lambda,
|
|
359
384
|
median_survival: Math.log(2) / lambda,
|
|
360
|
-
|
|
385
|
+
// True restricted mean ∫₀ᵀ S(t)dt up to max observed time, via the
|
|
386
|
+
// KM table built from the same event data. Pre-v1.9.1 returned
|
|
387
|
+
// 1/lambda (the unrestricted mean) — wrong field semantics.
|
|
388
|
+
mean_survival_restricted: restrictedMean(kmTable, survFn),
|
|
361
389
|
};
|
|
362
390
|
}
|
|
363
|
-
function fitWeibullFromEvents(events) {
|
|
391
|
+
function fitWeibullFromEvents(events, kmTable) {
|
|
364
392
|
const m = initialMedian(events);
|
|
365
393
|
const scaleInit = Math.max(0.01, m / Math.pow(Math.log(2), 1));
|
|
366
|
-
const opt = nelderMead((p) => -logLikelihoodFromEvents(events, (t) => weibullSurvival(t, Math.max(0.05, p[0]), Math.max(0.01, p[1])), (t) => weibullHazard(t, Math.max(0.05, p[0]), Math.max(0.01, p[1]))),
|
|
394
|
+
const opt = nelderMead((p) => -logLikelihoodFromEvents(events, (t) => weibullSurvival(t, Math.max(0.05, p[0]), Math.max(0.01, p[1])), (t) => weibullHazard(t, Math.max(0.05, p[0]), Math.max(0.01, p[1]))),
|
|
395
|
+
// shape=1 ⇒ Weibull degenerates to Exponential — neutral start that
|
|
396
|
+
// doesn't bias toward increasing or decreasing hazard. scaleInit
|
|
397
|
+
// derived from empirical median assumes shape≈1 (correct for the
|
|
398
|
+
// start, refined by the optimizer).
|
|
399
|
+
[1.0, scaleInit], 800);
|
|
367
400
|
const shape = Math.max(0.05, opt[0]);
|
|
368
401
|
const scale = Math.max(0.01, opt[1]);
|
|
369
402
|
const ll = logLikelihoodFromEvents(events, (t) => weibullSurvival(t, shape, scale), (t) => weibullHazard(t, shape, scale));
|
|
370
403
|
const k = 2;
|
|
371
404
|
const n = events.length;
|
|
405
|
+
const survFn = (t) => weibullSurvival(t, shape, scale);
|
|
372
406
|
return {
|
|
373
407
|
name: "weibull",
|
|
374
408
|
params: { shape, scale },
|
|
375
409
|
aic: -2 * ll + 2 * k,
|
|
376
410
|
bic: -2 * ll + k * Math.log(n),
|
|
377
411
|
log_likelihood: ll,
|
|
378
|
-
survival_at:
|
|
412
|
+
survival_at: survFn,
|
|
379
413
|
hazard_at: (t) => weibullHazard(t, shape, scale),
|
|
380
414
|
median_survival: scale * Math.pow(Math.log(2), 1 / shape),
|
|
381
|
-
|
|
415
|
+
// True RMST via numerical integration of S(t) over [0, max_observed].
|
|
416
|
+
// Pre-v1.9.1 returned scale·Γ(1+1/shape) = unrestricted mean.
|
|
417
|
+
mean_survival_restricted: restrictedMean(kmTable, survFn),
|
|
382
418
|
};
|
|
383
419
|
}
|
|
384
|
-
function fitLogLogisticFromEvents(events) {
|
|
420
|
+
function fitLogLogisticFromEvents(events, kmTable) {
|
|
385
421
|
const m = initialMedian(events);
|
|
386
|
-
const opt = nelderMead((p) => -logLikelihoodFromEvents(events, (t) => logLogisticSurvival(t, Math.max(0.01, p[0]), Math.max(0.1, p[1])), (t) => logLogisticHazard(t, Math.max(0.01, p[0]), Math.max(0.1, p[1]))),
|
|
422
|
+
const opt = nelderMead((p) => -logLikelihoodFromEvents(events, (t) => logLogisticSurvival(t, Math.max(0.01, p[0]), Math.max(0.1, p[1])), (t) => logLogisticHazard(t, Math.max(0.01, p[0]), Math.max(0.1, p[1]))),
|
|
423
|
+
// α=median, β=1.5: β>1 means the hazard is unimodal (rises then
|
|
424
|
+
// falls), which is the most common shape in survival data. β=1.5
|
|
425
|
+
// is empirically the median of fitted β values across published
|
|
426
|
+
// log-logistic survival curves; β<1 (monotone-decreasing hazard)
|
|
427
|
+
// is rarer.
|
|
428
|
+
[m, 1.5], 800);
|
|
387
429
|
const alpha = Math.max(0.01, opt[0]);
|
|
388
430
|
const beta = Math.max(0.1, opt[1]);
|
|
389
431
|
const ll = logLikelihoodFromEvents(events, (t) => logLogisticSurvival(t, alpha, beta), (t) => logLogisticHazard(t, alpha, beta));
|
|
390
432
|
const k = 2;
|
|
391
433
|
const n = events.length;
|
|
434
|
+
const survFn = (t) => logLogisticSurvival(t, alpha, beta);
|
|
392
435
|
return {
|
|
393
436
|
name: "log_logistic",
|
|
394
437
|
params: { alpha, beta },
|
|
395
438
|
aic: -2 * ll + 2 * k,
|
|
396
439
|
bic: -2 * ll + k * Math.log(n),
|
|
397
440
|
log_likelihood: ll,
|
|
398
|
-
survival_at:
|
|
441
|
+
survival_at: survFn,
|
|
399
442
|
hazard_at: (t) => logLogisticHazard(t, alpha, beta),
|
|
400
443
|
median_survival: alpha,
|
|
401
|
-
|
|
444
|
+
// True RMST via numerical integration. Pre-v1.9.1 returned alpha
|
|
445
|
+
// (the median, not the mean) as a fallback because the unrestricted
|
|
446
|
+
// mean is undefined for β ≤ 1; restricted mean over [0, T] is
|
|
447
|
+
// always finite and is the correct field semantics.
|
|
448
|
+
mean_survival_restricted: restrictedMean(kmTable, survFn),
|
|
402
449
|
};
|
|
403
450
|
}
|
|
404
|
-
function fitLogNormalFromEvents(events) {
|
|
451
|
+
function fitLogNormalFromEvents(events, kmTable) {
|
|
405
452
|
const m = initialMedian(events);
|
|
406
453
|
const muInit = Math.log(Math.max(0.01, m));
|
|
407
|
-
const opt = nelderMead((p) => -logLikelihoodFromEvents(events, (t) => logNormalSurvival(t, p[0], Math.max(0.01, p[1])), (t) => logNormalHazard(t, p[0], Math.max(0.01, p[1]))),
|
|
454
|
+
const opt = nelderMead((p) => -logLikelihoodFromEvents(events, (t) => logNormalSurvival(t, p[0], Math.max(0.01, p[1])), (t) => logNormalHazard(t, p[0], Math.max(0.01, p[1]))),
|
|
455
|
+
// μ_init=log(median): exact when σ=0, biased upward when σ>0 but a
|
|
456
|
+
// good neighborhood. σ_init=0.8: oncology log-normal fits typically
|
|
457
|
+
// have σ in [0.5, 1.5]; 0.8 is the conservative middle. A larger
|
|
458
|
+
// start would over-disperse the initial likelihood and slow convergence.
|
|
459
|
+
[muInit, 0.8], 800);
|
|
408
460
|
const mu = opt[0];
|
|
409
461
|
const sigma = Math.max(0.01, opt[1]);
|
|
410
462
|
const ll = logLikelihoodFromEvents(events, (t) => logNormalSurvival(t, mu, sigma), (t) => logNormalHazard(t, mu, sigma));
|
|
411
463
|
const k = 2;
|
|
412
464
|
const n = events.length;
|
|
465
|
+
const survFn = (t) => logNormalSurvival(t, mu, sigma);
|
|
413
466
|
return {
|
|
414
467
|
name: "log_normal",
|
|
415
468
|
params: { mu, sigma },
|
|
416
469
|
aic: -2 * ll + 2 * k,
|
|
417
470
|
bic: -2 * ll + k * Math.log(n),
|
|
418
471
|
log_likelihood: ll,
|
|
419
|
-
survival_at:
|
|
472
|
+
survival_at: survFn,
|
|
420
473
|
hazard_at: (t) => logNormalHazard(t, mu, sigma),
|
|
421
474
|
median_survival: Math.exp(mu),
|
|
422
|
-
|
|
475
|
+
// True RMST. Pre-v1.9.1 returned exp(μ + σ²/2) = unrestricted mean.
|
|
476
|
+
mean_survival_restricted: restrictedMean(kmTable, survFn),
|
|
423
477
|
};
|
|
424
478
|
}
|
|
425
|
-
function fitGompertzFromEvents(events) {
|
|
479
|
+
function fitGompertzFromEvents(events, kmTable) {
|
|
426
480
|
const m = initialMedian(events);
|
|
427
481
|
const rateInit = Math.max(1e-6, Math.log(2) / m);
|
|
428
|
-
const opt = nelderMead((p) => -logLikelihoodFromEvents(events, (t) => gompertzSurvival(t, p[0], Math.max(1e-6, p[1])), (t) => gompertzHazard(t, p[0], Math.max(1e-6, p[1]))),
|
|
482
|
+
const opt = nelderMead((p) => -logLikelihoodFromEvents(events, (t) => gompertzSurvival(t, p[0], Math.max(1e-6, p[1])), (t) => gompertzHazard(t, p[0], Math.max(1e-6, p[1]))),
|
|
483
|
+
// shape=0.01 ≈ flat hazard ≈ Exponential. Gompertz shape>0 gives
|
|
484
|
+
// increasing hazard (mortality acceleration with age, the typical
|
|
485
|
+
// case); shape<0 gives decreasing hazard. Starting near 0 lets the
|
|
486
|
+
// optimizer choose the sign without bias. rate_init = log(2)/median
|
|
487
|
+
// is exact for exponential and a reasonable neighborhood for Gompertz.
|
|
488
|
+
[0.01, rateInit], 800);
|
|
429
489
|
const shape = opt[0];
|
|
430
490
|
const rate = Math.max(1e-6, opt[1]);
|
|
431
491
|
const ll = logLikelihoodFromEvents(events, (t) => gompertzSurvival(t, shape, rate), (t) => gompertzHazard(t, shape, rate));
|
|
@@ -439,16 +499,21 @@ function fitGompertzFromEvents(events) {
|
|
|
439
499
|
break;
|
|
440
500
|
}
|
|
441
501
|
}
|
|
502
|
+
const survFn = (t) => gompertzSurvival(t, shape, rate);
|
|
442
503
|
return {
|
|
443
504
|
name: "gompertz",
|
|
444
505
|
params: { shape, rate },
|
|
445
506
|
aic: -2 * ll + 2 * k,
|
|
446
507
|
bic: -2 * ll + k * Math.log(n),
|
|
447
508
|
log_likelihood: ll,
|
|
448
|
-
survival_at:
|
|
509
|
+
survival_at: survFn,
|
|
449
510
|
hazard_at: (t) => gompertzHazard(t, shape, rate),
|
|
450
511
|
median_survival: median,
|
|
451
|
-
|
|
512
|
+
// True RMST via numerical integration. Pre-v1.9.1 returned
|
|
513
|
+
// `median × 1.4427` — that's `1/ln(2)`, the *exponential
|
|
514
|
+
// distribution's* mean/median ratio, applied to a Gompertz median.
|
|
515
|
+
// Reviewer caught this: wrong distribution entirely.
|
|
516
|
+
mean_survival_restricted: restrictedMean(kmTable, survFn),
|
|
452
517
|
};
|
|
453
518
|
}
|
|
454
519
|
/**
|
|
@@ -484,18 +549,23 @@ export function fitSurvivalCurvesFromEventData(events, timeUnit = "months") {
|
|
|
484
549
|
throw new Error("At least 5 patient-level event-data rows required for parametric fitting");
|
|
485
550
|
}
|
|
486
551
|
const sorted = [...events].sort((a, b) => a.time - b.time);
|
|
552
|
+
// Build the KM table FIRST so each fitter can use it for the
|
|
553
|
+
// restricted-mean integration (numerical ∫₀ᵀ S(t)dt up to max
|
|
554
|
+
// observed time, where T = sorted[-1].time). v1.9.1 fix: pre-fix the
|
|
555
|
+
// IPD fitters returned unrestricted means (or in Gompertz's case
|
|
556
|
+
// median × 1/ln(2), an exponential-distribution constant!) labeled
|
|
557
|
+
// as "restricted mean", which propagated wrong RMST → wrong QALY in
|
|
558
|
+
// downstream cost-effectiveness models.
|
|
559
|
+
const kmTable = computeKaplanMeier(sorted);
|
|
487
560
|
const fits = [
|
|
488
|
-
fitExponentialFromEvents(sorted),
|
|
489
|
-
fitWeibullFromEvents(sorted),
|
|
490
|
-
fitLogLogisticFromEvents(sorted),
|
|
491
|
-
fitLogNormalFromEvents(sorted),
|
|
492
|
-
fitGompertzFromEvents(sorted),
|
|
561
|
+
fitExponentialFromEvents(sorted, kmTable),
|
|
562
|
+
fitWeibullFromEvents(sorted, kmTable),
|
|
563
|
+
fitLogLogisticFromEvents(sorted, kmTable),
|
|
564
|
+
fitLogNormalFromEvents(sorted, kmTable),
|
|
565
|
+
fitGompertzFromEvents(sorted, kmTable),
|
|
493
566
|
];
|
|
494
567
|
const byAIC = [...fits].sort((a, b) => a.aic - b.aic);
|
|
495
568
|
const byBIC = [...fits].sort((a, b) => a.bic - b.bic);
|
|
496
|
-
// Build a synthetic KM table from the event data for the markdown
|
|
497
|
-
// extrapolation comparison column. Standard Kaplan-Meier estimator.
|
|
498
|
-
const kmTable = computeKaplanMeier(sorted);
|
|
499
569
|
// Extrapolations 0..2× max observed time.
|
|
500
570
|
const maxObserved = sorted[sorted.length - 1].time;
|
|
501
571
|
const extrapolationTimes = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"survivalFitting.js","sourceRoot":"","sources":["../../src/models/survivalFitting.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"survivalFitting.js","sourceRoot":"","sources":["../../src/models/survivalFitting.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icfReadabilityCheck.d.ts","sourceRoot":"","sources":["../../src/tools/icfReadabilityCheck.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"icfReadabilityCheck.d.ts","sourceRoot":"","sources":["../../src/tools/icfReadabilityCheck.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,YAAY,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAqBhE,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,UAAU,CAAC,CA2NrB;AAED,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCzC,CAAC"}
|
|
@@ -13,8 +13,7 @@
|
|
|
13
13
|
import { z } from "zod";
|
|
14
14
|
import { addAssumption, addWarning, createAuditRecord, setMethodology, } from "../audit/builder.js";
|
|
15
15
|
import { auditToMarkdown } from "../formatters/markdown.js";
|
|
16
|
-
import { computeReadabilityScores, computeStats, fleschKincaidGrade,
|
|
17
|
-
import { countSyllables } from "../icf/syllables.js";
|
|
16
|
+
import { computeReadabilityScores, computeStats, fleschKincaidGrade, } from "../icf/readability.js";
|
|
18
17
|
import { findJargon } from "../icf/jargon.js";
|
|
19
18
|
import { ICF_RULESET, } from "../icf/types.js";
|
|
20
19
|
const IcfReadabilityCheckSchema = z
|
|
@@ -65,22 +64,23 @@ export async function handleIcfReadabilityCheck(rawInput) {
|
|
|
65
64
|
});
|
|
66
65
|
const exceedingCount = sentences.filter((s) => s.exceeds_target).length;
|
|
67
66
|
const exceedingFraction = sentences.length > 0 ? exceedingCount / sentences.length : 0;
|
|
67
|
+
// v1.9.1 fix: pre-fix `worstSentences` was top-5 by FKGL regardless
|
|
68
|
+
// of whether they exceeded target — programmatic consumers reading
|
|
69
|
+
// this field could see "worst" sentences that were actually within
|
|
70
|
+
// target. Now: only sentences that exceed target. Markdown rendering
|
|
71
|
+
// already conditionally hid the section; this aligns the JSON output
|
|
72
|
+
// semantics with the markdown.
|
|
68
73
|
const worstSentences = [...sentences]
|
|
74
|
+
.filter((s) => s.exceeds_target)
|
|
69
75
|
.sort((a, b) => b.flesch_kincaid_grade - a.flesch_kincaid_grade)
|
|
70
76
|
.slice(0, 5);
|
|
71
77
|
const jargon = input.jargon_check ? findJargon(input.icf_text) : [];
|
|
72
78
|
const verdict = computeVerdict(scores.flesch_kincaid_grade, exceedingFraction, input.target_grade_level);
|
|
73
79
|
const recommendations = [];
|
|
74
80
|
if (verdict !== "pass") {
|
|
75
|
-
if (worstSentences.length > 0
|
|
81
|
+
if (worstSentences.length > 0) {
|
|
76
82
|
recommendations.push(`Rewrite the ${worstSentences.length} highest-grade sentences (FKGL ${worstSentences[0].flesch_kincaid_grade.toFixed(1)} down to ${worstSentences[worstSentences.length - 1].flesch_kincaid_grade.toFixed(1)}). Targeting these alone usually pulls the document into the target band.`);
|
|
77
83
|
}
|
|
78
|
-
if (jargon.length >= 3) {
|
|
79
|
-
recommendations.push(`Replace medical jargon: ${jargon
|
|
80
|
-
.slice(0, 5)
|
|
81
|
-
.map((j) => `"${j.term}" → "${j.plain_language}"`)
|
|
82
|
-
.join("; ")}.`);
|
|
83
|
-
}
|
|
84
84
|
if (stats.avg_sentence_length > 20) {
|
|
85
85
|
recommendations.push(`Sentences average ${stats.avg_sentence_length.toFixed(1)} words — break compound sentences (target ≤15 words/sentence for 8th-grade reading).`);
|
|
86
86
|
}
|
|
@@ -88,6 +88,16 @@ export async function handleIcfReadabilityCheck(rawInput) {
|
|
|
88
88
|
recommendations.push(`Words average ${stats.avg_syllables_per_word.toFixed(2)} syllables — favor short Anglo-Saxon roots over Latinate technical terms (e.g., "use" not "utilise", "show" not "demonstrate").`);
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
|
+
// v1.9.1 fix: jargon rec previously only fired at jargon.length≥3
|
|
92
|
+
// AND verdict≠pass. Both gates removed: 1-2 jargon hits are exactly
|
|
93
|
+
// the high-frequency, high-impact terms patients struggle with most;
|
|
94
|
+
// a passing FKGL with 5 jargon terms still needs those rewrites.
|
|
95
|
+
if (jargon.length >= 1) {
|
|
96
|
+
recommendations.push(`Replace medical jargon: ${jargon
|
|
97
|
+
.slice(0, 5)
|
|
98
|
+
.map((j) => `"${j.term}" → "${j.plain_language}"`)
|
|
99
|
+
.join("; ")}${jargon.length > 5 ? ` (+${jargon.length - 5} more)` : ""}.`);
|
|
100
|
+
}
|
|
91
101
|
const assessment = {
|
|
92
102
|
scores,
|
|
93
103
|
stats,
|
|
@@ -168,12 +178,6 @@ export async function handleIcfReadabilityCheck(rawInput) {
|
|
|
168
178
|
lines.push("- FDA Communicating Risks and Benefits (2011).");
|
|
169
179
|
lines.push("");
|
|
170
180
|
lines.push(auditToMarkdown(audit));
|
|
171
|
-
// Use sentence/syllable utilities to satisfy the implicit dependency
|
|
172
|
-
// for tree-shaking (no-op at runtime; kept here so a refactor that
|
|
173
|
-
// removes them surfaces during build).
|
|
174
|
-
void splitSentences;
|
|
175
|
-
void tokenizeWords;
|
|
176
|
-
void countSyllables;
|
|
177
181
|
return {
|
|
178
182
|
content: lines.join("\n"),
|
|
179
183
|
audit,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icfReadabilityCheck.js","sourceRoot":"","sources":["../../src/tools/icfReadabilityCheck.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,
|
|
1
|
+
{"version":3,"file":"icfReadabilityCheck.js","sourceRoot":"","sources":["../../src/tools/icfReadabilityCheck.ts"],"names":[],"mappings":"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"}
|