diff --git a/src/components/characterization-results/RawResultTable.vue b/src/components/characterization-results/RawResultTable.vue
new file mode 100644
index 00000000..1a96aabd
--- /dev/null
+++ b/src/components/characterization-results/RawResultTable.vue
@@ -0,0 +1,195 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/characterization/CharacterizationPerAnalysisView.vue b/src/components/characterization/CharacterizationPerAnalysisView.vue
index 37bad1bb..7ebc161f 100644
--- a/src/components/characterization/CharacterizationPerAnalysisView.vue
+++ b/src/components/characterization/CharacterizationPerAnalysisView.vue
@@ -17,8 +17,16 @@
:rows="g.rows"
:cohorts="g.cohorts"
/>
+
{{ tv('common.noData', 'No rows match the current filter.') }}
@@ -31,6 +39,7 @@ import { computed } from 'vue'
import { useI18n } from '@/composables/useI18n'
import PrevalenceTable from '@/components/characterization-results/PrevalenceTable.vue'
import DistributionTable from '@/components/characterization-results/DistributionTable.vue'
+import RawResultTable from '@/components/characterization-results/RawResultTable.vue'
import { DEFAULT_STRATA_KEY } from '@/utils/characterization-result-mapper'
import type {
DistributionStat, LinkedCohort, PrevalenceStat,
@@ -39,6 +48,7 @@ import type {
const props = defineProps<{
prevalence: PrevalenceStat[]
distribution: DistributionStat[]
+ unmapped?: Record[]
cohorts: LinkedCohort[]
threshold: number
selectedAnalysisIds: number[]
@@ -108,6 +118,28 @@ const distributionGroups = computed[]>(() => {
}
return Array.from(groups.values())
})
+
+interface RawGroup { analysisId: number; analysisName: string; rows: Record[] }
+
+const unmappedGroups = computed(() => {
+ const groups = new Map()
+ for (const row of props.unmapped ?? []) {
+ const analysisId = typeof row.analysisId === 'number' ? row.analysisId : -1
+ if (!passesAnalysis(analysisId)) continue
+ const domainId = typeof row.domainId === 'string' ? row.domainId : undefined
+ if (!passesDomain(domainId)) continue
+ let g = groups.get(analysisId)
+ if (!g) {
+ const analysisName = typeof row.analysisName === 'string' && row.analysisName
+ ? row.analysisName
+ : `Analysis ${analysisId}`
+ g = { analysisId, analysisName, rows: [] }
+ groups.set(analysisId, g)
+ }
+ g.rows.push(row)
+ }
+ return Array.from(groups.values())
+})