@geotechcli/core 0.4.35 → 0.4.36
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/dist/meta/metadata.json +1 -1
- package/dist/report/html.d.ts.map +1 -1
- package/dist/report/html.js +696 -477
- package/dist/report/html.js.map +1 -1
- package/dist/report/ingest-dossier.d.ts +47 -0
- package/dist/report/ingest-dossier.d.ts.map +1 -1
- package/dist/report/ingest-dossier.js +347 -0
- package/dist/report/ingest-dossier.js.map +1 -1
- package/package.json +1 -1
package/dist/report/html.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/report/html.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/report/html.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,49 @@ export interface IngestDossierNarrativeSection {
|
|
|
43
43
|
title: string;
|
|
44
44
|
paragraphs: string[];
|
|
45
45
|
}
|
|
46
|
+
export interface IngestDossierExecutiveItem {
|
|
47
|
+
label: string;
|
|
48
|
+
value: string;
|
|
49
|
+
detail?: string;
|
|
50
|
+
tone?: IngestDossierTone;
|
|
51
|
+
}
|
|
52
|
+
export interface IngestDossierInsightCard {
|
|
53
|
+
title: string;
|
|
54
|
+
body: string;
|
|
55
|
+
tone: IngestDossierTone;
|
|
56
|
+
detail?: string;
|
|
57
|
+
}
|
|
58
|
+
export interface IngestDossierTrustItem {
|
|
59
|
+
item: string;
|
|
60
|
+
value: string;
|
|
61
|
+
sourcePage: string;
|
|
62
|
+
confidence: string;
|
|
63
|
+
review: string;
|
|
64
|
+
evidence: string;
|
|
65
|
+
tone: IngestDossierTone;
|
|
66
|
+
}
|
|
67
|
+
export interface IngestDossierBoreholeProfileLayer {
|
|
68
|
+
depthFrom: number;
|
|
69
|
+
depthTo: number;
|
|
70
|
+
label: string;
|
|
71
|
+
description: string;
|
|
72
|
+
uscsSymbol?: string | null;
|
|
73
|
+
tone: IngestDossierTone;
|
|
74
|
+
uncertain?: boolean;
|
|
75
|
+
}
|
|
76
|
+
export interface IngestDossierBoreholeProfileColumn {
|
|
77
|
+
boreholeId: string;
|
|
78
|
+
totalDepth: number | null;
|
|
79
|
+
waterTableDepth: number | null;
|
|
80
|
+
layers: IngestDossierBoreholeProfileLayer[];
|
|
81
|
+
}
|
|
82
|
+
export interface IngestDossierBoreholeProfile {
|
|
83
|
+
title: string;
|
|
84
|
+
maxDepth: number;
|
|
85
|
+
depthUnit: string;
|
|
86
|
+
columns: IngestDossierBoreholeProfileColumn[];
|
|
87
|
+
notes: string[];
|
|
88
|
+
}
|
|
46
89
|
export interface IngestDossierStoredReview {
|
|
47
90
|
projectId: string;
|
|
48
91
|
datasetName: string;
|
|
@@ -68,6 +111,10 @@ export interface IngestDossier {
|
|
|
68
111
|
tables: IngestDossierTable[];
|
|
69
112
|
pageCards: IngestDossierPageCard[];
|
|
70
113
|
sections: IngestDossierNarrativeSection[];
|
|
114
|
+
executiveItems: IngestDossierExecutiveItem[];
|
|
115
|
+
insightCards: IngestDossierInsightCard[];
|
|
116
|
+
trustItems: IngestDossierTrustItem[];
|
|
117
|
+
boreholeProfile?: IngestDossierBoreholeProfile;
|
|
71
118
|
storedReview?: IngestDossierStoredReview;
|
|
72
119
|
approval?: IngestDossierApproval;
|
|
73
120
|
footerNotes: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ingest-dossier.d.ts","sourceRoot":"","sources":["../../src/report/ingest-dossier.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ingest-dossier.d.ts","sourceRoot":"","sources":["../../src/report/ingest-dossier.ts"],"names":[],"mappings":"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"}
|
|
@@ -99,6 +99,100 @@ function sourcePageText(value) {
|
|
|
99
99
|
.filter((entry) => Boolean(entry));
|
|
100
100
|
return matches.length > 0 ? [...new Set(matches)].join(', ') : '-';
|
|
101
101
|
}
|
|
102
|
+
function normalizeBoreholeId(value) {
|
|
103
|
+
const match = value.match(/\bBH[-\s]?0*(\d+)\b/i);
|
|
104
|
+
return match ? `BH${match[1]}` : value.trim().toUpperCase();
|
|
105
|
+
}
|
|
106
|
+
function inferBoreholeIdsFromText(...values) {
|
|
107
|
+
const text = values.filter(Boolean).join('\n');
|
|
108
|
+
const ids = [...text.matchAll(/\bBH[-\s]?0*(\d+)\b/gi)].map((match) => `BH${match[1]}`);
|
|
109
|
+
return [...new Set(ids)].sort((left, right) => left.localeCompare(right, undefined, { numeric: true }));
|
|
110
|
+
}
|
|
111
|
+
function readDepthMeters(value) {
|
|
112
|
+
if (typeof value === 'number') {
|
|
113
|
+
return Number.isFinite(value) ? value : null;
|
|
114
|
+
}
|
|
115
|
+
if (!value) {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
const match = String(value).match(/(-?\d+(?:\.\d+)?)\s*m\b/i);
|
|
119
|
+
const numeric = Number(match?.[1] ?? value);
|
|
120
|
+
return Number.isFinite(numeric) ? numeric : null;
|
|
121
|
+
}
|
|
122
|
+
function formatDepthMeters(value) {
|
|
123
|
+
return value != null && Number.isFinite(value) ? `${value.toFixed(2)} m` : 'Unavailable';
|
|
124
|
+
}
|
|
125
|
+
function materialTone(description, uscsSymbol) {
|
|
126
|
+
const text = `${description ?? ''} ${uscsSymbol ?? ''}`.toLowerCase();
|
|
127
|
+
if (/rock|shale|limestone|sandstone|fractured|weathered/.test(text))
|
|
128
|
+
return 'neutral';
|
|
129
|
+
if (/clay|ci|cl|ch/.test(text))
|
|
130
|
+
return 'warning';
|
|
131
|
+
if (/sand|sm|sp|sw|gravel|gm|gp|gw/.test(text))
|
|
132
|
+
return 'accent';
|
|
133
|
+
return 'good';
|
|
134
|
+
}
|
|
135
|
+
function humanDocumentType(value) {
|
|
136
|
+
if (!value) {
|
|
137
|
+
return 'Geotechnical document';
|
|
138
|
+
}
|
|
139
|
+
return value
|
|
140
|
+
.split(/[-_]+/g)
|
|
141
|
+
.filter(Boolean)
|
|
142
|
+
.map((part) => part.charAt(0).toUpperCase() + part.slice(1))
|
|
143
|
+
.join(' ');
|
|
144
|
+
}
|
|
145
|
+
function includesParameter(result, pattern) {
|
|
146
|
+
return result.parameters.some((parameter) => pattern.test(`${parameter.name} ${parameter.valueText} ${parameter.unit ?? ''} ${parameter.material ?? ''} ${parameter.context ?? ''}`));
|
|
147
|
+
}
|
|
148
|
+
function buildMissingCriticalItems(result) {
|
|
149
|
+
const missing = [];
|
|
150
|
+
if (!includesParameter(result, /ground\s*water|water\s*table/i))
|
|
151
|
+
missing.push('groundwater level');
|
|
152
|
+
if (!includesParameter(result, /\bspt\b|standard\s*penetration/i))
|
|
153
|
+
missing.push('SPT N-values');
|
|
154
|
+
if (!includesParameter(result, /\brqd\b/i))
|
|
155
|
+
missing.push('RQD');
|
|
156
|
+
if (!includesParameter(result, /cohesion|\bc\b/i))
|
|
157
|
+
missing.push('cohesion');
|
|
158
|
+
if (!includesParameter(result, /friction|phi|angle/i))
|
|
159
|
+
missing.push('friction angle');
|
|
160
|
+
return missing;
|
|
161
|
+
}
|
|
162
|
+
function firstMeaningful(values, maxLength) {
|
|
163
|
+
return values
|
|
164
|
+
.map((value) => cleanNarrativeText(value, maxLength))
|
|
165
|
+
.find(Boolean)
|
|
166
|
+
?? 'No concise evidence item was retained.';
|
|
167
|
+
}
|
|
168
|
+
function inferGeotechMaxDepth(result) {
|
|
169
|
+
const depths = result.parameters
|
|
170
|
+
.filter((parameter) => /depth|elevation|thickness/i.test(parameter.name))
|
|
171
|
+
.map((parameter) => readDepthMeters(parameter.numericValue ?? parameter.valueText))
|
|
172
|
+
.filter((value) => value != null && value >= 0);
|
|
173
|
+
const summaryDepth = readDepthMeters(result.summary);
|
|
174
|
+
if (summaryDepth != null) {
|
|
175
|
+
depths.push(summaryDepth);
|
|
176
|
+
}
|
|
177
|
+
return depths.length > 0 ? Math.max(...depths) : null;
|
|
178
|
+
}
|
|
179
|
+
function inferKeyConcern(result) {
|
|
180
|
+
const weatheredRock = result.materials.find((material) => /weathered|fractured|rock/i.test(material.description));
|
|
181
|
+
return firstMeaningful([
|
|
182
|
+
result.risks[0],
|
|
183
|
+
weatheredRock ? `${weatheredRock.description} may affect bearing capacity, excavation stability, or foundation selection.` : null,
|
|
184
|
+
result.synthesis?.interpretation[0],
|
|
185
|
+
], 180);
|
|
186
|
+
}
|
|
187
|
+
function inferMainLimitation(result) {
|
|
188
|
+
const missing = buildMissingCriticalItems(result);
|
|
189
|
+
return firstMeaningful([
|
|
190
|
+
result.synthesis?.limitations[0],
|
|
191
|
+
missing.length > 0 ? `Missing or unverified: ${missing.join(', ')}.` : null,
|
|
192
|
+
result.reviewReasons[0],
|
|
193
|
+
result.warnings[0],
|
|
194
|
+
], 180);
|
|
195
|
+
}
|
|
102
196
|
function countGeotechPageStatuses(result) {
|
|
103
197
|
return result.pageAudits.reduce((counts, audit) => {
|
|
104
198
|
counts[audit.parseStatus] += 1;
|
|
@@ -449,6 +543,251 @@ function buildBoreholeBadges(result) {
|
|
|
449
543
|
{ label: 'Auto proceed', value: result.canAutoProceed ? 'Yes' : 'No', tone: toneFromBoolean(result.canAutoProceed) },
|
|
450
544
|
];
|
|
451
545
|
}
|
|
546
|
+
function buildGeotechExecutiveItems(result, sourceLabel) {
|
|
547
|
+
const boreholeIds = inferBoreholeIdsFromText(result.title, result.summary, ...result.materials.map((material) => material.description), ...result.parameters.flatMap((parameter) => [parameter.material, parameter.context]));
|
|
548
|
+
const maxDepth = inferGeotechMaxDepth(result);
|
|
549
|
+
return [
|
|
550
|
+
{ label: 'Project/report', value: result.title ?? sourceLabel, detail: sourceLabel, tone: 'accent' },
|
|
551
|
+
{ label: 'Document type', value: humanDocumentType(result.documentClass ?? result.documentType), tone: 'accent' },
|
|
552
|
+
{
|
|
553
|
+
label: 'Processing status',
|
|
554
|
+
value: result.reviewRequired ? 'Parsed, review required' : 'Parsed',
|
|
555
|
+
detail: result.parseStatus,
|
|
556
|
+
tone: result.reviewRequired ? 'warning' : 'good',
|
|
557
|
+
},
|
|
558
|
+
{ label: 'Confidence', value: `${result.confidence}%`, tone: toneFromParseStatus(result.parseStatus, result.confidence) },
|
|
559
|
+
{ label: 'Boreholes detected', value: boreholeIds.length > 0 ? boreholeIds.join(', ') : 'Not explicitly detected', tone: boreholeIds.length > 0 ? 'good' : 'warning' },
|
|
560
|
+
{ label: 'Max depth', value: formatDepthMeters(maxDepth), tone: maxDepth != null ? 'good' : 'warning' },
|
|
561
|
+
{ label: 'Key engineering concern', value: inferKeyConcern(result), tone: 'warning' },
|
|
562
|
+
{ label: 'Main limitation', value: inferMainLimitation(result), tone: result.reviewRequired ? 'warning' : 'neutral' },
|
|
563
|
+
];
|
|
564
|
+
}
|
|
565
|
+
function buildBoreholeExecutiveItems(result, sourceLabel) {
|
|
566
|
+
const boreholeIds = result.boreholes.map((borehole) => borehole.boreholeId).filter(Boolean);
|
|
567
|
+
const maxDepth = result.boreholes
|
|
568
|
+
.map((borehole) => borehole.totalDepth)
|
|
569
|
+
.filter((value) => value != null && Number.isFinite(value))
|
|
570
|
+
.reduce((max, value) => max == null ? value : Math.max(max, value), null);
|
|
571
|
+
const firstWarning = result.reviewReasons[0] ?? result.warnings[0] ?? null;
|
|
572
|
+
return [
|
|
573
|
+
{ label: 'Project/report', value: result.boreholes[0]?.projectName ?? sourceLabel, detail: sourceLabel, tone: 'accent' },
|
|
574
|
+
{ label: 'Document type', value: 'Borehole log', tone: 'accent' },
|
|
575
|
+
{
|
|
576
|
+
label: 'Processing status',
|
|
577
|
+
value: result.reviewRequired ? 'Parsed, review required' : 'Parsed',
|
|
578
|
+
tone: result.reviewRequired ? 'warning' : 'good',
|
|
579
|
+
},
|
|
580
|
+
{ label: 'Confidence', value: `${result.confidence}%`, tone: result.confidence >= 70 ? 'good' : 'warning' },
|
|
581
|
+
{ label: 'Boreholes detected', value: boreholeIds.length > 0 ? boreholeIds.join(', ') : 'Not explicitly detected', tone: boreholeIds.length > 0 ? 'good' : 'warning' },
|
|
582
|
+
{ label: 'Max depth', value: formatDepthMeters(maxDepth), tone: maxDepth != null ? 'good' : 'warning' },
|
|
583
|
+
{ label: 'Key engineering concern', value: firstMeaningful([firstWarning, result.boreholes[0]?.summary], 180), tone: firstWarning ? 'warning' : 'neutral' },
|
|
584
|
+
{ label: 'Main limitation', value: firstWarning ? cleanNarrativeText(firstWarning, 180) : 'No blocking limitation retained.', tone: firstWarning ? 'warning' : 'good' },
|
|
585
|
+
];
|
|
586
|
+
}
|
|
587
|
+
function buildGeotechInsightCards(result) {
|
|
588
|
+
const groundConditions = firstMeaningful([
|
|
589
|
+
result.synthesis?.groundModel[0],
|
|
590
|
+
result.synthesis?.takeaways[0],
|
|
591
|
+
result.summary,
|
|
592
|
+
result.materials.length > 0
|
|
593
|
+
? `${result.materials.map((material) => material.description).slice(0, 4).join(', ')}.`
|
|
594
|
+
: null,
|
|
595
|
+
], 260);
|
|
596
|
+
const designImplications = firstMeaningful([
|
|
597
|
+
result.synthesis?.interpretation[0],
|
|
598
|
+
result.risks[0],
|
|
599
|
+
result.recommendations[0],
|
|
600
|
+
], 260);
|
|
601
|
+
const missing = buildMissingCriticalItems(result);
|
|
602
|
+
const verificationFocus = result.reviewRequired
|
|
603
|
+
? 'Human verification is recommended before this extraction is reused for design, reporting, or approval.'
|
|
604
|
+
: 'No retained review gate blocks downstream use, but source-page verification is still recommended.';
|
|
605
|
+
return [
|
|
606
|
+
{ title: 'Ground conditions', body: groundConditions, tone: 'accent' },
|
|
607
|
+
{ title: 'Design implications', body: designImplications, tone: 'warning' },
|
|
608
|
+
{
|
|
609
|
+
title: 'Missing critical data',
|
|
610
|
+
body: missing.length > 0 ? `Not extracted or not corroborated: ${missing.join(', ')}.` : 'No common critical parameter gap was detected in the retained extraction.',
|
|
611
|
+
tone: missing.length > 0 ? 'warning' : 'good',
|
|
612
|
+
},
|
|
613
|
+
{ title: 'Verification focus', body: verificationFocus, tone: result.reviewRequired ? 'warning' : 'good' },
|
|
614
|
+
];
|
|
615
|
+
}
|
|
616
|
+
function buildBoreholeInsightCards(result) {
|
|
617
|
+
const summaries = result.boreholes.map((borehole) => borehole.summary).filter(Boolean);
|
|
618
|
+
const missingWater = result.boreholes.filter((borehole) => borehole.waterTableDepth == null).length;
|
|
619
|
+
return [
|
|
620
|
+
{ title: 'Ground conditions', body: firstMeaningful(summaries, 260), tone: 'accent' },
|
|
621
|
+
{
|
|
622
|
+
title: 'Design implications',
|
|
623
|
+
body: result.reviewRequired
|
|
624
|
+
? 'At least one borehole or page needs verification before the extracted profile is used as engineering input.'
|
|
625
|
+
: 'The borehole profile is ready for engineering review against the source log.',
|
|
626
|
+
tone: result.reviewRequired ? 'warning' : 'good',
|
|
627
|
+
},
|
|
628
|
+
{
|
|
629
|
+
title: 'Missing critical data',
|
|
630
|
+
body: missingWater > 0 ? `Groundwater was not extracted for ${missingWater} borehole(s).` : 'Groundwater was retained where available.',
|
|
631
|
+
tone: missingWater > 0 ? 'warning' : 'good',
|
|
632
|
+
},
|
|
633
|
+
{ title: 'Verification focus', body: result.reviewReasons[0] ?? 'Check layer boundaries, depth scale, and any low-confidence borehole metadata.', tone: result.reviewRequired ? 'warning' : 'neutral' },
|
|
634
|
+
];
|
|
635
|
+
}
|
|
636
|
+
function buildGeotechTrustItems(result) {
|
|
637
|
+
const visualExtractionUsed = result.pageAudits.some((audit) => audit.textHintSource === 'vision-visual' || audit.textHintSource === 'vision-ocr');
|
|
638
|
+
const rows = result.parameters.slice(0, 16).map((parameter) => {
|
|
639
|
+
const sourcePage = sourcePageText(parameter.context);
|
|
640
|
+
const reviewNeeded = result.reviewRequired || sourcePage === '-' || visualExtractionUsed;
|
|
641
|
+
const valueText = displayTableText(parameter.valueText, 80);
|
|
642
|
+
const unitText = displayTableText(parameter.unit, 28);
|
|
643
|
+
const valueWithUnit = unitText !== '-' && valueText !== '-' && !valueText.toLowerCase().includes(unitText.toLowerCase())
|
|
644
|
+
? `${valueText} ${unitText}`
|
|
645
|
+
: valueText;
|
|
646
|
+
return {
|
|
647
|
+
item: displayTableText(parameter.name, 80),
|
|
648
|
+
value: valueWithUnit || '-',
|
|
649
|
+
sourcePage,
|
|
650
|
+
confidence: `${result.confidence}%`,
|
|
651
|
+
review: reviewNeeded ? (visualExtractionUsed ? 'Visual verification recommended' : 'Manual review recommended') : 'Ready for review',
|
|
652
|
+
evidence: displayTableText(parameter.context, 180),
|
|
653
|
+
tone: reviewNeeded ? 'warning' : 'good',
|
|
654
|
+
};
|
|
655
|
+
});
|
|
656
|
+
for (const missing of buildMissingCriticalItems(result).slice(0, 6)) {
|
|
657
|
+
rows.push({
|
|
658
|
+
item: missing,
|
|
659
|
+
value: 'Not extracted',
|
|
660
|
+
sourcePage: '-',
|
|
661
|
+
confidence: 'Low',
|
|
662
|
+
review: 'Required',
|
|
663
|
+
evidence: 'No corroborated value was retained in the extraction.',
|
|
664
|
+
tone: 'warning',
|
|
665
|
+
});
|
|
666
|
+
}
|
|
667
|
+
return rows;
|
|
668
|
+
}
|
|
669
|
+
function buildBoreholeTrustItems(result) {
|
|
670
|
+
const rows = [];
|
|
671
|
+
for (const borehole of result.boreholes.slice(0, 8)) {
|
|
672
|
+
rows.push({
|
|
673
|
+
item: `${borehole.boreholeId} total depth`,
|
|
674
|
+
value: formatDepthMeters(borehole.totalDepth),
|
|
675
|
+
sourcePage: borehole.pageNumber != null ? String(borehole.pageNumber) : '-',
|
|
676
|
+
confidence: `${borehole.confidence}%`,
|
|
677
|
+
review: borehole.parseStatus === 'parsed' && !result.reviewRequired ? 'Ready for review' : 'Manual review recommended',
|
|
678
|
+
evidence: cleanNarrativeText(borehole.summary, 180) || 'Borehole depth retained from structured extraction.',
|
|
679
|
+
tone: borehole.parseStatus === 'parsed' && borehole.confidence >= 70 ? 'good' : 'warning',
|
|
680
|
+
});
|
|
681
|
+
rows.push({
|
|
682
|
+
item: `${borehole.boreholeId} groundwater`,
|
|
683
|
+
value: borehole.waterTableDepth != null ? formatDepthMeters(borehole.waterTableDepth) : 'Not extracted',
|
|
684
|
+
sourcePage: borehole.pageNumber != null ? String(borehole.pageNumber) : '-',
|
|
685
|
+
confidence: borehole.waterTableDepth != null ? `${borehole.confidence}%` : 'Low',
|
|
686
|
+
review: borehole.waterTableDepth != null ? 'Verify against source log' : 'Required',
|
|
687
|
+
evidence: borehole.waterTableDepth != null ? 'Groundwater value retained from structured extraction.' : 'No groundwater value was retained.',
|
|
688
|
+
tone: borehole.waterTableDepth != null ? 'good' : 'warning',
|
|
689
|
+
});
|
|
690
|
+
}
|
|
691
|
+
return rows;
|
|
692
|
+
}
|
|
693
|
+
function stratumIndex(description) {
|
|
694
|
+
const text = description ?? '';
|
|
695
|
+
const roman = text.match(/stratum\s+(iv|iii|ii|i)\b/i)?.[1]?.toUpperCase();
|
|
696
|
+
if (roman === 'I')
|
|
697
|
+
return 1;
|
|
698
|
+
if (roman === 'II')
|
|
699
|
+
return 2;
|
|
700
|
+
if (roman === 'III')
|
|
701
|
+
return 3;
|
|
702
|
+
if (roman === 'IV')
|
|
703
|
+
return 4;
|
|
704
|
+
return Number.MAX_SAFE_INTEGER;
|
|
705
|
+
}
|
|
706
|
+
function buildGeotechBoreholeProfile(result) {
|
|
707
|
+
const boreholeIds = inferBoreholeIdsFromText(result.title, result.summary, ...result.parameters.flatMap((parameter) => [parameter.material, parameter.context]));
|
|
708
|
+
const maxDepth = inferGeotechMaxDepth(result);
|
|
709
|
+
if (boreholeIds.length === 0 || maxDepth == null || maxDepth <= 0 || result.materials.length === 0) {
|
|
710
|
+
return undefined;
|
|
711
|
+
}
|
|
712
|
+
const materials = [...result.materials].sort((left, right) => stratumIndex(left.description) - stratumIndex(right.description)
|
|
713
|
+
|| left.description.localeCompare(right.description)).slice(0, 8);
|
|
714
|
+
const layerHeight = maxDepth / Math.max(1, materials.length);
|
|
715
|
+
const depthsByBorehole = new Map();
|
|
716
|
+
for (const parameter of result.parameters) {
|
|
717
|
+
if (!/depth/i.test(parameter.name)) {
|
|
718
|
+
continue;
|
|
719
|
+
}
|
|
720
|
+
const id = inferBoreholeIdsFromText(parameter.material, parameter.context)[0];
|
|
721
|
+
const depth = readDepthMeters(parameter.numericValue ?? parameter.valueText);
|
|
722
|
+
if (id && depth != null) {
|
|
723
|
+
depthsByBorehole.set(id, Math.max(depthsByBorehole.get(id) ?? 0, depth));
|
|
724
|
+
}
|
|
725
|
+
}
|
|
726
|
+
return {
|
|
727
|
+
title: 'Borehole Stratigraphy Visualization',
|
|
728
|
+
maxDepth,
|
|
729
|
+
depthUnit: 'm',
|
|
730
|
+
columns: boreholeIds.map((boreholeId) => ({
|
|
731
|
+
boreholeId,
|
|
732
|
+
totalDepth: depthsByBorehole.get(boreholeId) ?? maxDepth,
|
|
733
|
+
waterTableDepth: null,
|
|
734
|
+
layers: materials.map((material, index) => ({
|
|
735
|
+
depthFrom: Number((index * layerHeight).toFixed(2)),
|
|
736
|
+
depthTo: Number(((index + 1) * layerHeight).toFixed(2)),
|
|
737
|
+
label: material.uscsSymbol ?? material.kind,
|
|
738
|
+
description: displayTableText(material.description, 140),
|
|
739
|
+
uscsSymbol: material.uscsSymbol,
|
|
740
|
+
tone: materialTone(material.description, material.uscsSymbol),
|
|
741
|
+
uncertain: true,
|
|
742
|
+
})),
|
|
743
|
+
})),
|
|
744
|
+
notes: [
|
|
745
|
+
'Conceptual visualization from retained material observations.',
|
|
746
|
+
'Dashed layer boundaries indicate missing or unverified stratum intervals.',
|
|
747
|
+
],
|
|
748
|
+
};
|
|
749
|
+
}
|
|
750
|
+
function buildBoreholeProfile(result) {
|
|
751
|
+
if (result.boreholes.length === 0) {
|
|
752
|
+
return undefined;
|
|
753
|
+
}
|
|
754
|
+
const maxDepth = result.boreholes.reduce((max, borehole) => {
|
|
755
|
+
const layerMax = Math.max(0, ...borehole.layers.map((layer) => layer.depthTo ?? layer.depthFrom ?? 0));
|
|
756
|
+
return Math.max(max, borehole.totalDepth ?? 0, layerMax);
|
|
757
|
+
}, 0);
|
|
758
|
+
if (maxDepth <= 0) {
|
|
759
|
+
return undefined;
|
|
760
|
+
}
|
|
761
|
+
return {
|
|
762
|
+
title: 'Borehole Stratigraphy Visualization',
|
|
763
|
+
maxDepth,
|
|
764
|
+
depthUnit: 'm',
|
|
765
|
+
columns: result.boreholes.map((borehole) => ({
|
|
766
|
+
boreholeId: borehole.boreholeId,
|
|
767
|
+
totalDepth: borehole.totalDepth,
|
|
768
|
+
waterTableDepth: borehole.waterTableDepth,
|
|
769
|
+
layers: borehole.layers
|
|
770
|
+
.map((layer, index) => {
|
|
771
|
+
const depthFrom = layer.depthFrom ?? (index === 0 ? 0 : null);
|
|
772
|
+
const depthTo = layer.depthTo ?? borehole.totalDepth ?? maxDepth;
|
|
773
|
+
if (depthFrom == null || depthTo == null || depthTo <= depthFrom) {
|
|
774
|
+
return null;
|
|
775
|
+
}
|
|
776
|
+
return {
|
|
777
|
+
depthFrom,
|
|
778
|
+
depthTo,
|
|
779
|
+
label: layer.uscsSymbol ?? layer.notes ?? `Layer ${index + 1}`,
|
|
780
|
+
description: displayTableText(layer.description, 140),
|
|
781
|
+
uscsSymbol: layer.uscsSymbol ?? null,
|
|
782
|
+
tone: materialTone(layer.description, layer.uscsSymbol),
|
|
783
|
+
uncertain: layer.depthFrom == null || layer.depthTo == null,
|
|
784
|
+
};
|
|
785
|
+
})
|
|
786
|
+
.filter((layer) => layer != null),
|
|
787
|
+
})),
|
|
788
|
+
notes: ['Layer blocks are scaled to extracted depth intervals. Missing boundaries are shown as uncertain.'],
|
|
789
|
+
};
|
|
790
|
+
}
|
|
452
791
|
function buildFooterNotes(result) {
|
|
453
792
|
return uniqueStrings([
|
|
454
793
|
result.source.fileName ?? result.source.filePath ?? null,
|
|
@@ -489,6 +828,10 @@ export function buildIngestDossier(result, options) {
|
|
|
489
828
|
tables: buildGeotechTables(geotechResult),
|
|
490
829
|
pageCards: buildGeotechPageCards(geotechResult),
|
|
491
830
|
sections: buildGeotechSections(geotechResult),
|
|
831
|
+
executiveItems: buildGeotechExecutiveItems(geotechResult, sourceLabel),
|
|
832
|
+
insightCards: buildGeotechInsightCards(geotechResult),
|
|
833
|
+
trustItems: buildGeotechTrustItems(geotechResult),
|
|
834
|
+
boreholeProfile: buildGeotechBoreholeProfile(geotechResult),
|
|
492
835
|
storedReview,
|
|
493
836
|
approval,
|
|
494
837
|
footerNotes: buildFooterNotes(geotechResult),
|
|
@@ -512,6 +855,10 @@ export function buildIngestDossier(result, options) {
|
|
|
512
855
|
tables: buildBoreholeTables(boreholeResult),
|
|
513
856
|
pageCards: buildBoreholePageCards(boreholeResult),
|
|
514
857
|
sections: buildBoreholeSections(boreholeResult),
|
|
858
|
+
executiveItems: buildBoreholeExecutiveItems(boreholeResult, sourceLabel),
|
|
859
|
+
insightCards: buildBoreholeInsightCards(boreholeResult),
|
|
860
|
+
trustItems: buildBoreholeTrustItems(boreholeResult),
|
|
861
|
+
boreholeProfile: buildBoreholeProfile(boreholeResult),
|
|
515
862
|
storedReview,
|
|
516
863
|
approval,
|
|
517
864
|
footerNotes: buildFooterNotes(boreholeResult),
|