@jjlmoya/utils-forensic-science 1.13.0 → 1.14.0
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/package.json +2 -1
- package/src/category/index.ts +61 -59
- package/src/category/seo.astro +1 -1
- package/src/components/PreviewNavSidebar.astro +1 -1
- package/src/components/PreviewToolbar.astro +1 -1
- package/src/data.ts +1 -1
- package/src/entries.ts +70 -68
- package/src/env.d.ts +1 -1
- package/src/index.ts +32 -31
- package/src/pages/[locale]/[slug].astro +161 -159
- package/src/pages/[locale].astro +8 -5
- package/src/pages/index.astro +1 -1
- package/src/tests/bibliography_wellformed_export.test.ts +46 -0
- package/src/tests/diacritics_density.test.ts +1 -1
- package/src/tests/faq_count.test.ts +19 -19
- package/src/tests/i18n_coverage.test.ts +36 -36
- package/src/tests/inverted_punctuation.test.ts +1 -1
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/mocks/astro_mock.js +1 -1
- package/src/tests/no_h1_in_components.test.ts +1 -1
- package/src/tests/script_density.test.ts +94 -94
- package/src/tests/seo_length.test.ts +46 -46
- package/src/tests/seo_parity.test.ts +2 -7
- package/src/tests/seo_translation_completeness.test.ts +68 -0
- package/src/tests/seo_wellformed_export.test.ts +65 -0
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tests/translation_copy.test.ts +23 -24
- package/src/tool/bloodstain-pattern-origin-analyzer/component.astro +9 -9
- package/src/tool/bloodstain-pattern-origin-analyzer/i18n/zh.ts +1 -1
- package/src/tool/dna-profile-match-probability-lab/bibliography.astro +14 -0
- package/src/tool/dna-profile-match-probability-lab/bibliography.ts +16 -0
- package/src/tool/dna-profile-match-probability-lab/component.astro +121 -0
- package/src/tool/dna-profile-match-probability-lab/controller.ts +159 -0
- package/src/tool/dna-profile-match-probability-lab/dna-profile-match-probability-lab.css +485 -0
- package/src/tool/dna-profile-match-probability-lab/dom-views.ts +93 -0
- package/src/tool/dna-profile-match-probability-lab/entry.ts +29 -0
- package/src/tool/dna-profile-match-probability-lab/evaluator.ts +19 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/de.ts +43 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/en.ts +196 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/es.ts +40 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/fr.ts +10 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/id.ts +41 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/it.ts +10 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/ja.ts +40 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/ko.ts +40 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/nl.ts +29 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/pl.ts +10 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/pt.ts +41 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/ru.ts +29 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/sv.ts +41 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/tr.ts +10 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/zh.ts +29 -0
- package/src/tool/dna-profile-match-probability-lab/index.ts +11 -0
- package/src/tool/dna-profile-match-probability-lab/localize.ts +107 -0
- package/src/tool/dna-profile-match-probability-lab/logic.test.ts +56 -0
- package/src/tool/dna-profile-match-probability-lab/logic.ts +139 -0
- package/src/tool/dna-profile-match-probability-lab/seo.astro +15 -0
- package/src/tool/dna-profile-match-probability-lab/storage.ts +26 -0
- package/src/tool/dna-profile-match-probability-lab/ui.ts +3 -0
- package/src/tool/fire-pattern-origin-analyzer/component.astro +1 -1
- package/src/tool/fire-pattern-origin-analyzer/i18n/zh.ts +5 -1
- package/src/tool/fire-pattern-origin-analyzer/logic.ts +9 -2
- package/src/tool/fire-pattern-origin-analyzer/view-bindings.ts +8 -4
- package/src/tool/fire-pattern-origin-analyzer/view-model.ts +6 -2
- package/src/tool/forensic-age-estimator/bibliography.astro +1 -1
- package/src/tool/forensic-age-estimator/component.astro +1 -1
- package/src/tool/forensic-age-estimator/entry.ts +17 -17
- package/src/tool/forensic-age-estimator/i18n/de.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/en.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/es.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/fr.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/id.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/it.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/nl.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/pl.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/pt.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/ru.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/sv.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/tr.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/zh.ts +245 -245
- package/src/tool/forensic-age-estimator/index.ts +1 -1
- package/src/tool/forensic-age-estimator/seo.astro +1 -1
- package/src/tool/forensic-blood-test-simulator/component.astro +1 -1
- package/src/tool/forensic-fiber-comparison-microscope/component.astro +1 -1
- package/src/tool/forensic-fiber-comparison-microscope/render.ts +1 -1
- package/src/tool/forensic-fiber-comparison-microscope/view.ts +1 -1
- package/src/tool/forensic-fingerprint-minutiae-identifier/component.astro +2 -2
- package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/ja.ts +2 -1
- package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/zh.ts +2 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/renderer.ts +9 -8
- package/src/tool/forensic-glass-becke-line-simulator/component.astro +1 -1
- package/src/tool/forensic-glass-becke-line-simulator/view.ts +8 -6
- package/src/tool/forensic-image-authenticity-analyzer/component.astro +1 -1
- package/src/tool/forensic-image-authenticity-analyzer/i18n/de.ts +105 -105
- package/src/tool/forensic-image-authenticity-analyzer/i18n/en.ts +105 -105
- package/src/tool/forensic-image-authenticity-analyzer/i18n/es.ts +105 -105
- package/src/tool/forensic-image-authenticity-analyzer/i18n/fr.ts +105 -105
- package/src/tool/forensic-image-authenticity-analyzer/i18n/id.ts +95 -90
- package/src/tool/forensic-image-authenticity-analyzer/i18n/it.ts +105 -105
- package/src/tool/forensic-image-authenticity-analyzer/i18n/ja.ts +7 -2
- package/src/tool/forensic-image-authenticity-analyzer/i18n/ko.ts +4 -1
- package/src/tool/forensic-image-authenticity-analyzer/i18n/nl.ts +95 -92
- package/src/tool/forensic-image-authenticity-analyzer/i18n/pl.ts +95 -92
- package/src/tool/forensic-image-authenticity-analyzer/i18n/pt.ts +105 -105
- package/src/tool/forensic-image-authenticity-analyzer/i18n/ru.ts +97 -92
- package/src/tool/forensic-image-authenticity-analyzer/i18n/sv.ts +97 -93
- package/src/tool/forensic-image-authenticity-analyzer/i18n/tr.ts +98 -93
- package/src/tool/forensic-image-authenticity-analyzer/i18n/zh.ts +11 -0
- package/src/tool/forensic-microcrystal-drug-simulator/component.astro +1 -1
- package/src/tool/forensic-sex-determinator/component.astro +3 -2
- package/src/tool/forensic-stature-estimator/component.astro +1 -1
- package/src/tool/forensic-stature-estimator/i18n/id.ts +4 -0
- package/src/tool/forensic-stature-estimator/i18n/nl.ts +4 -0
- package/src/tool/forensic-stature-estimator/i18n/ru.ts +4 -0
- package/src/tool/forensic-tlc-ink-simulator/component.astro +1 -1
- package/src/tool/forensic-tlc-ink-simulator/i18n/zh.ts +1 -0
- package/src/tool/forensic-toolmark-striation-matcher/component.astro +1 -1
- package/src/tool/forensic-toolmark-striation-matcher/logic.ts +1 -1
- package/src/tool/forensic-toolmark-striation-matcher/renderer.ts +7 -6
- package/src/tool/forensic-toolmark-striation-matcher/view.ts +19 -20
- package/src/tool/gsr-dispersion-calculator/component.astro +1 -1
- package/src/tool/gsr-dispersion-calculator/logic.ts +1 -1
- package/src/tool/time-of-death-algor-mortis-calculator/entry.ts +2 -0
- package/src/tool/widmark-alcohol-simulator/component.astro +1 -1
- package/src/tool/widmark-alcohol-simulator/i18n/de.ts +5 -0
- package/src/tool/widmark-alcohol-simulator/i18n/fr.ts +2 -1
- package/src/tool/widmark-alcohol-simulator/i18n/id.ts +1 -0
- package/src/tool/widmark-alcohol-simulator/i18n/it.ts +4 -1
- package/src/tool/widmark-alcohol-simulator/i18n/ja.ts +4 -1
- package/src/tool/widmark-alcohol-simulator/i18n/nl.ts +5 -1
- package/src/tool/widmark-alcohol-simulator/i18n/pl.ts +5 -1
- package/src/tool/widmark-alcohol-simulator/i18n/pt.ts +5 -1
- package/src/tool/widmark-alcohol-simulator/i18n/ru.ts +4 -1
- package/src/tool/widmark-alcohol-simulator/i18n/sv.ts +5 -1
- package/src/tool/widmark-alcohol-simulator/i18n/tr.ts +4 -1
- package/src/tool/widmark-alcohol-simulator/i18n/zh.ts +4 -1
- package/src/tools.ts +37 -35
- package/src/types.ts +4 -4
|
@@ -1,245 +1,245 @@
|
|
|
1
|
-
import { bibliography } from '../bibliography';
|
|
2
|
-
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
-
|
|
4
|
-
const slug = 'aldersskattare-tander-skelett-visdomstand';
|
|
5
|
-
const title = 'Åldersskattare för tänder, skelett och visdomständer';
|
|
6
|
-
const description = 'Uppskatta ett forensiskt åldersintervall baserat på tandutveckling, skelettmognad och visdomstandsindikatorer för screening och falltriage.';
|
|
7
|
-
|
|
8
|
-
const howTo = [
|
|
9
|
-
{
|
|
10
|
-
name: 'Välj bevisbetoning',
|
|
11
|
-
text: 'Välj "Blandade bevis" för en balanserad triage, "Tandprioritet" när tandfynd är mer robusta, eller "Skelettprioritet" när radiografiska skelettindikatorer utgör den primära källan.',
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
name: 'Poängsätt varje mognadsindikator',
|
|
15
|
-
text: 'Gradera varje stadium från 0 till 8. Lägre stadier representerar tidig utveckling, mellersta stadier representerar adolescent mognad, och högre stadier representerar mogna eller nästan mogna fynd.',
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
name: 'Interpretera intervallet, inte bara den centrala åldern',
|
|
19
|
-
text: 'Betrakta minimi-, sannolik och maximiålder tillsammans. Forensisk åldersbedömning bör alltid uttryckas som ett intervall, eftersom biologisk utveckling varierar individuellt.',
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
name: 'Kontrollera diskrepanser mellan indikatorer',
|
|
23
|
-
text: 'Om tand-, skelett- och visdomstandsstadier pekar på avvikande åldersintervall, bör resultatet behandlas som explorativt och kompletterande bevis sökas innan slutsatser dras.',
|
|
24
|
-
},
|
|
25
|
-
];
|
|
26
|
-
|
|
27
|
-
const faq = [
|
|
28
|
-
{
|
|
29
|
-
question: 'Kan denna forensiska åldersskattare fastställa juridisk myndighetsålder?',
|
|
30
|
-
answer: 'Nej. Detta är ett screeningsverktyg för utbildnings- och triageändamål. Juridisk åldersbestämning kräver validerade lokala protokoll, kvalificerade experter, formell identitetsdokumentation och strikt efterlevnad av jurisdiktionsspecifika standarder.',
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
question: 'Varför visas resultatet som ett åldersintervall?',
|
|
34
|
-
answer: 'Tandframbrott, skelettfusion och visdomstandsutveckling påverkas av härkomst, nutrition, hälsostatus, kön, referenspopulation och bildtagningsmetod. Ett intervall ger en mer korrekt och transparent bild av den biologiska variabiliteten än en enskild punktskattning.',
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
question: 'Vad betyder "Blandade bevis"?',
|
|
38
|
-
answer: 'Läget "Blandade bevis" väger samman indata från tandutveckling, skelettmognad och visdomstandsstadier. Använd detta läge när ingen enskild indikator är klart mer tillförlitlig eller komplett för det specifika fallet.',
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
question: 'Är visdomständer tillförlitliga i alla fall?',
|
|
42
|
-
answer: 'Visdomständer är värdefulla i sen adolescens och ung vuxen ålder, men uppvisar hög variabilitet. Faktorer som agenesi (saknade anlag), patologi, populationsspecifika särdrag och radiografisk kvalitet kan avsevärt begränsa deras diagnostiska nytta.',
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
question: 'Bör detta verktyg användas för formell ärendehantering?',
|
|
46
|
-
answer: 'Det bör endast fungera som ett preliminärt stöd. Formell forensisk ärendehantering kräver validerade metoder, kalibrerade referensdata, oberoende expertgranskning samt transparent redovisning av osäkerheter och begränsningar.',
|
|
47
|
-
},
|
|
48
|
-
];
|
|
49
|
-
|
|
50
|
-
export const content: ToolLocaleContent = {
|
|
51
|
-
slug,
|
|
52
|
-
title,
|
|
53
|
-
description,
|
|
54
|
-
ui: {
|
|
55
|
-
caseBoard: 'Forensisk falltavla',
|
|
56
|
-
controls: 'Forensiska åldersreglage',
|
|
57
|
-
results: 'Forensiska åldersresultat',
|
|
58
|
-
maturityProfile: 'Dynamisk mognadsprofil',
|
|
59
|
-
screeningOnly: 'Screeningsuppskattning',
|
|
60
|
-
evidenceType: 'Bevisbetoning',
|
|
61
|
-
mixedEvidence: 'Blandade bevis',
|
|
62
|
-
dentalPriority: 'Tandprioritet',
|
|
63
|
-
skeletalPriority: 'Skelettprioritet',
|
|
64
|
-
dentalStage: 'Tandutvecklingsstadium',
|
|
65
|
-
epiphysealStage: 'Epifysfusionsstadium',
|
|
66
|
-
thirdMolarStage: 'Visdomstandsstadium',
|
|
67
|
-
minimumAge: 'Minimum',
|
|
68
|
-
likelyAge: 'Sannolik',
|
|
69
|
-
maximumAge: 'Maximum',
|
|
70
|
-
maturityScore: 'Mognadspoäng',
|
|
71
|
-
stageLabel: 'Stadium',
|
|
72
|
-
ageUnit: 'år',
|
|
73
|
-
dentalShort: 'Tand',
|
|
74
|
-
boneShort: 'Ben',
|
|
75
|
-
molarShort: 'Molar',
|
|
76
|
-
dentalStageHelp: 'Krona-, rot- och apexbildning.',
|
|
77
|
-
epiphysealStageHelp: 'Slutning av tillväxtplattor och skelettfusion.',
|
|
78
|
-
molarStageHelp: 'Visdomstandsmineralisering och apiceslutning.',
|
|
79
|
-
dentalStage0: 'Saknas',
|
|
80
|
-
dentalStage1: 'Spets',
|
|
81
|
-
dentalStage2: 'Krona',
|
|
82
|
-
dentalStage3: 'Rot början',
|
|
83
|
-
dentalStage4: 'Rot halv',
|
|
84
|
-
dentalStage5: 'Rot lång',
|
|
85
|
-
dentalStage6: 'Apex smal',
|
|
86
|
-
dentalStage7: 'Apex sluts',
|
|
87
|
-
dentalStage8: 'Fullständig',
|
|
88
|
-
epiphysealStage0: 'Öppen',
|
|
89
|
-
epiphysealStage1: 'Kant',
|
|
90
|
-
epiphysealStage2: 'Förträngning',
|
|
91
|
-
epiphysealStage3: 'Bro',
|
|
92
|
-
epiphysealStage4: 'Halv fusionerad',
|
|
93
|
-
epiphysealStage5: 'Mestadels fusionerad',
|
|
94
|
-
epiphysealStage6: 'Endast linje',
|
|
95
|
-
epiphysealStage7: 'Nästan sluten',
|
|
96
|
-
epiphysealStage8: 'Sluten',
|
|
97
|
-
molarStage0: 'Saknas',
|
|
98
|
-
molarStage1: 'Spets',
|
|
99
|
-
molarStage2: 'Krona början',
|
|
100
|
-
molarStage3: 'Krona full',
|
|
101
|
-
molarStage4: 'Rot början',
|
|
102
|
-
molarStage5: 'Rot halv',
|
|
103
|
-
molarStage6: 'Rot lång',
|
|
104
|
-
molarStage7: 'Apex sluts',
|
|
105
|
-
molarStage8: 'Fullständig',
|
|
106
|
-
confidenceexploratory: 'Explorativ',
|
|
107
|
-
confidencemoderate: 'Måttlig',
|
|
108
|
-
confidencestrong: 'Stark',
|
|
109
|
-
noteTriage: 'Använd som triageuppskattning; ej som juridisk åldersbestämning.',
|
|
110
|
-
noteFinalAssessment: 'Slutlig forensisk åldersbedömning måste integrera radiologi, klinisk tandundersökning, anamnes och jurisdiktionsspecifika standarder.',
|
|
111
|
-
noteWideInterval: 'Indikatorer avviker med mer än fyra år; intervallet har breddats.',
|
|
112
|
-
},
|
|
113
|
-
seo: [
|
|
114
|
-
{
|
|
115
|
-
type: 'title',
|
|
116
|
-
text: 'Forensisk åldersskattare: Tand-, skelett- och visdomstandsscreening',
|
|
117
|
-
level: 2,
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
type: 'paragraph',
|
|
121
|
-
html: 'Denna forensiska åldersskattare erbjuder ett transparent ramverk för att organisera biologiska mognadsbevis före en formell bedömning. Verktyget integrerar tandutveckling, epifysfusion och visdomstandsstadier för att generera ett estimerat åldersintervall. Det adresserar sökningar såsom <strong>forensisk åldersskattning</strong>, <strong>tandmognadsbedömning</strong> och <strong>skelettåldersuppskattning</strong>, och hjälper användaren att förstå hur indikatorer kombineras och vilken osäkerhet som föreligger.',
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
type: 'paragraph',
|
|
125
|
-
html: 'Resultaten presenteras som <strong>minimi-, sannolik och maximiålder</strong>. Punktskattningar är ofta missvisande då biologisk utveckling varierar kraftigt på grund av nutrition, hälsa, härkomst och miljöfaktorer. Detta verktyg bör betraktas som ett strukturerat screeninghjälpmedel, inte som ett definitivt juridiskt utlåtande.',
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
type: 'title',
|
|
129
|
-
text: 'Förståelse för mognadsindikatorer',
|
|
130
|
-
level: 3,
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
type: 'paragraph',
|
|
134
|
-
html: 'Mognadsskalorna (0-8) ger en praktisk abstraktion för att jämföra olika biologiska system. Stadium 0 signalerar tidig eller frånvarande mognad, medan stadium 8 representerar fullständighet. Dessa stadier ersätter inte namngivna kliniska metoder utan möjliggör en korsreferensanalys.',
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
type: 'table',
|
|
138
|
-
headers: ['Indikator', 'Beskrivning', 'Kontext', 'Varning'],
|
|
139
|
-
rows: [
|
|
140
|
-
['Tandutveckling', 'Bildning och frambrott (exkl. visdomständer).', 'Primär mätare för barn och ungdomar.', 'Kan snedvridas av tandsjukdom, extraktioner eller populationsspecifika skillnader.'],
|
|
141
|
-
['Epifysfusion', 'Progressiv slutning av tillväxtplattor.', 'Nyckelindikator för sen adolescens och ung vuxen ålder.', 'Starkt beroende av specifikt ben, kön och hälsostatus.'],
|
|
142
|
-
['Visdomstandsstadium', 'Bildning och mognad av visdomständer.', 'Kritiskt för bedömning av unga vuxna.', 'Hög variabilitet; kräver noggrann analys av agenesi och retention.'],
|
|
143
|
-
],
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
type: 'title',
|
|
147
|
-
text: 'Att tolka åldersintervallet',
|
|
148
|
-
level: 3,
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
type: 'paragraph',
|
|
152
|
-
html: 'Betrakta alla tre värden tillsammans. Den <strong>sannolika åldern</strong> utgör den viktade centrala skattningen baserat på vald bevisbetoning. <strong>Minimum-</strong> och <strong>maximumvärdena</strong> definierar osäkerhetsbandet. Överensstämmelse mellan indikatorer resulterar i ett snävare band; motstridiga signaler breddar intervallet och sänker förtroendegraden.',
|
|
153
|
-
},
|
|
154
|
-
{
|
|
155
|
-
type: 'table',
|
|
156
|
-
headers: ['Mönster', 'Antydan', 'Åtgärd'],
|
|
157
|
-
rows: [
|
|
158
|
-
['Smal intervall / Starkt förtroende', 'Indikatorer stämmer överens.', 'Dokumentera fynd och bedöm om formell validering krävs.'],
|
|
159
|
-
['Måttligt intervall', 'Oenighet eller viktning påverkar resultatet.', 'Verifiera bildkvalitet och stadietilldelning.'],
|
|
160
|
-
['Brett explorativt intervall', 'Indikatorer i konflikt.', 'Lita inte enbart på denna skattning; sök kompletterande dokumentation eller specialistgranskning.'],
|
|
161
|
-
],
|
|
162
|
-
},
|
|
163
|
-
{
|
|
164
|
-
type: 'title',
|
|
165
|
-
text: 'Val av bevisläge',
|
|
166
|
-
level: 3,
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
type: 'paragraph',
|
|
170
|
-
html: '<strong>Blandade bevis</strong> är standardläget, vilket balanserar alla indikatorer. Välj <strong>tandprioritet</strong> när tandjournaler är exceptionellt robusta. Välj <strong>skelettprioritet</strong> när radiografiska skelettfynd utgör den mest omfattande datapunkten. Dessa lägen förbättrar inte kvaliteten på svaga bevis, utan justerar endast den matematiska viktningen.',
|
|
171
|
-
},
|
|
172
|
-
{
|
|
173
|
-
type: 'list',
|
|
174
|
-
items: [
|
|
175
|
-
'<strong>Tandprioritet:</strong> använd när tandutveckling är tydligt stadieindelad och visdomstandsdata finns tillgängliga.',
|
|
176
|
-
'<strong>Skelettprioritet:</strong> använd när epifysfusion är den bäst dokumenterade signalen.',
|
|
177
|
-
'<strong>Blandade bevis:</strong> idealiskt för en balanserad initial screening.',
|
|
178
|
-
'<strong>Förtroendelabel:</strong> bevaka denna för att identifiera diskrepanser före tolkning.',
|
|
179
|
-
],
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
type: 'title',
|
|
183
|
-
text: 'Forensiska begränsningar',
|
|
184
|
-
level: 3,
|
|
185
|
-
},
|
|
186
|
-
{
|
|
187
|
-
type: 'paragraph',
|
|
188
|
-
html: 'Åldersuppskattning är ett stöd, aldrig ett slutet identitetsbevis. I juridiska eller skyddsmässiga sammanhang - såsom identifiering av katastrofoffer eller migrationsärenden - måste bedömningar vara multidisciplinära. Ansvariga rapporter måste detaljera den specifika metoden, referenspopulationen, observatörens kvalifikationer och kända begränsningar.',
|
|
189
|
-
},
|
|
190
|
-
{
|
|
191
|
-
type: 'paragraph',
|
|
192
|
-
html: 'Detta verktyg är utformat för <strong>utbildning, triage och transparent kommunikation</strong>. Det förstärker varför åldersslutsatser kräver försiktighet och varför kritiska trösklar - såsom 18-årsdagen - aldrig bör avgöras enbart av en förenklad kalkylator.',
|
|
193
|
-
},
|
|
194
|
-
{
|
|
195
|
-
type: 'title',
|
|
196
|
-
text: 'Checklista för forensisk rapportering',
|
|
197
|
-
level: 3,
|
|
198
|
-
},
|
|
199
|
-
{
|
|
200
|
-
type: 'list',
|
|
201
|
-
items: [
|
|
202
|
-
'<strong>Källdokumentation:</strong> Notera uttryckligen om stadier baseras på tandundersökning, panoramarröntgen eller skelettbildtagning (t.ex. hand-handled, klavikel).',
|
|
203
|
-
'<strong>Saknade/svaga data:</strong> Dokumentera tydligt avvikelser, dålig bildkvalitet eller anomalier.',
|
|
204
|
-
'<strong>Metodologisk validering:</strong> Säkerställ att valda metoder är erkända inom den lokala jurisdiktionen.',
|
|
205
|
-
'<strong>Osäkerhetshantering:</strong> Presentera alltid ett intervall; undvik språk som antyder exakt kronologisk ålder.',
|
|
206
|
-
'<strong>Specialistgranskning:</strong> Högriskärenden måste valideras av forensiska odontologer, radiologer eller antropologer.',
|
|
207
|
-
],
|
|
208
|
-
},
|
|
209
|
-
],
|
|
210
|
-
faq,
|
|
211
|
-
bibliography,
|
|
212
|
-
howTo,
|
|
213
|
-
schemas: [
|
|
214
|
-
{
|
|
215
|
-
'@context': 'https://schema.org',
|
|
216
|
-
'@type': 'SoftwareApplication',
|
|
217
|
-
name: title,
|
|
218
|
-
description,
|
|
219
|
-
applicationCategory: 'ForensicApplication',
|
|
220
|
-
operatingSystem: 'Any',
|
|
221
|
-
},
|
|
222
|
-
{
|
|
223
|
-
'@context': 'https://schema.org',
|
|
224
|
-
'@type': 'FAQPage',
|
|
225
|
-
mainEntity: faq.map((item) => ({
|
|
226
|
-
'@type': 'Question',
|
|
227
|
-
name: item.question,
|
|
228
|
-
acceptedAnswer: {
|
|
229
|
-
'@type': 'Answer',
|
|
230
|
-
text: item.answer,
|
|
231
|
-
},
|
|
232
|
-
})),
|
|
233
|
-
},
|
|
234
|
-
{
|
|
235
|
-
'@context': 'https://schema.org',
|
|
236
|
-
'@type': 'HowTo',
|
|
237
|
-
name: title,
|
|
238
|
-
step: howTo.map((step) => ({
|
|
239
|
-
'@type': 'HowToStep',
|
|
240
|
-
name: step.name,
|
|
241
|
-
text: step.text,
|
|
242
|
-
})),
|
|
243
|
-
},
|
|
244
|
-
],
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'aldersskattare-tander-skelett-visdomstand';
|
|
5
|
+
const title = 'Åldersskattare för tänder, skelett och visdomständer';
|
|
6
|
+
const description = 'Uppskatta ett forensiskt åldersintervall baserat på tandutveckling, skelettmognad och visdomstandsindikatorer för screening och falltriage.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Välj bevisbetoning',
|
|
11
|
+
text: 'Välj "Blandade bevis" för en balanserad triage, "Tandprioritet" när tandfynd är mer robusta, eller "Skelettprioritet" när radiografiska skelettindikatorer utgör den primära källan.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Poängsätt varje mognadsindikator',
|
|
15
|
+
text: 'Gradera varje stadium från 0 till 8. Lägre stadier representerar tidig utveckling, mellersta stadier representerar adolescent mognad, och högre stadier representerar mogna eller nästan mogna fynd.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Interpretera intervallet, inte bara den centrala åldern',
|
|
19
|
+
text: 'Betrakta minimi-, sannolik och maximiålder tillsammans. Forensisk åldersbedömning bör alltid uttryckas som ett intervall, eftersom biologisk utveckling varierar individuellt.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Kontrollera diskrepanser mellan indikatorer',
|
|
23
|
+
text: 'Om tand-, skelett- och visdomstandsstadier pekar på avvikande åldersintervall, bör resultatet behandlas som explorativt och kompletterande bevis sökas innan slutsatser dras.',
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
question: 'Kan denna forensiska åldersskattare fastställa juridisk myndighetsålder?',
|
|
30
|
+
answer: 'Nej. Detta är ett screeningsverktyg för utbildnings- och triageändamål. Juridisk åldersbestämning kräver validerade lokala protokoll, kvalificerade experter, formell identitetsdokumentation och strikt efterlevnad av jurisdiktionsspecifika standarder.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Varför visas resultatet som ett åldersintervall?',
|
|
34
|
+
answer: 'Tandframbrott, skelettfusion och visdomstandsutveckling påverkas av härkomst, nutrition, hälsostatus, kön, referenspopulation och bildtagningsmetod. Ett intervall ger en mer korrekt och transparent bild av den biologiska variabiliteten än en enskild punktskattning.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
question: 'Vad betyder "Blandade bevis"?',
|
|
38
|
+
answer: 'Läget "Blandade bevis" väger samman indata från tandutveckling, skelettmognad och visdomstandsstadier. Använd detta läge när ingen enskild indikator är klart mer tillförlitlig eller komplett för det specifika fallet.',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
question: 'Är visdomständer tillförlitliga i alla fall?',
|
|
42
|
+
answer: 'Visdomständer är värdefulla i sen adolescens och ung vuxen ålder, men uppvisar hög variabilitet. Faktorer som agenesi (saknade anlag), patologi, populationsspecifika särdrag och radiografisk kvalitet kan avsevärt begränsa deras diagnostiska nytta.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
question: 'Bör detta verktyg användas för formell ärendehantering?',
|
|
46
|
+
answer: 'Det bör endast fungera som ett preliminärt stöd. Formell forensisk ärendehantering kräver validerade metoder, kalibrerade referensdata, oberoende expertgranskning samt transparent redovisning av osäkerheter och begränsningar.',
|
|
47
|
+
},
|
|
48
|
+
];
|
|
49
|
+
|
|
50
|
+
export const content: ToolLocaleContent = {
|
|
51
|
+
slug,
|
|
52
|
+
title,
|
|
53
|
+
description,
|
|
54
|
+
ui: {
|
|
55
|
+
caseBoard: 'Forensisk falltavla',
|
|
56
|
+
controls: 'Forensiska åldersreglage',
|
|
57
|
+
results: 'Forensiska åldersresultat',
|
|
58
|
+
maturityProfile: 'Dynamisk mognadsprofil',
|
|
59
|
+
screeningOnly: 'Screeningsuppskattning',
|
|
60
|
+
evidenceType: 'Bevisbetoning',
|
|
61
|
+
mixedEvidence: 'Blandade bevis',
|
|
62
|
+
dentalPriority: 'Tandprioritet',
|
|
63
|
+
skeletalPriority: 'Skelettprioritet',
|
|
64
|
+
dentalStage: 'Tandutvecklingsstadium',
|
|
65
|
+
epiphysealStage: 'Epifysfusionsstadium',
|
|
66
|
+
thirdMolarStage: 'Visdomstandsstadium',
|
|
67
|
+
minimumAge: 'Minimum',
|
|
68
|
+
likelyAge: 'Sannolik',
|
|
69
|
+
maximumAge: 'Maximum',
|
|
70
|
+
maturityScore: 'Mognadspoäng',
|
|
71
|
+
stageLabel: 'Stadium',
|
|
72
|
+
ageUnit: 'år',
|
|
73
|
+
dentalShort: 'Tand',
|
|
74
|
+
boneShort: 'Ben',
|
|
75
|
+
molarShort: 'Molar',
|
|
76
|
+
dentalStageHelp: 'Krona-, rot- och apexbildning.',
|
|
77
|
+
epiphysealStageHelp: 'Slutning av tillväxtplattor och skelettfusion.',
|
|
78
|
+
molarStageHelp: 'Visdomstandsmineralisering och apiceslutning.',
|
|
79
|
+
dentalStage0: 'Saknas',
|
|
80
|
+
dentalStage1: 'Spets',
|
|
81
|
+
dentalStage2: 'Krona',
|
|
82
|
+
dentalStage3: 'Rot början',
|
|
83
|
+
dentalStage4: 'Rot halv',
|
|
84
|
+
dentalStage5: 'Rot lång',
|
|
85
|
+
dentalStage6: 'Apex smal',
|
|
86
|
+
dentalStage7: 'Apex sluts',
|
|
87
|
+
dentalStage8: 'Fullständig',
|
|
88
|
+
epiphysealStage0: 'Öppen',
|
|
89
|
+
epiphysealStage1: 'Kant',
|
|
90
|
+
epiphysealStage2: 'Förträngning',
|
|
91
|
+
epiphysealStage3: 'Bro',
|
|
92
|
+
epiphysealStage4: 'Halv fusionerad',
|
|
93
|
+
epiphysealStage5: 'Mestadels fusionerad',
|
|
94
|
+
epiphysealStage6: 'Endast linje',
|
|
95
|
+
epiphysealStage7: 'Nästan sluten',
|
|
96
|
+
epiphysealStage8: 'Sluten',
|
|
97
|
+
molarStage0: 'Saknas',
|
|
98
|
+
molarStage1: 'Spets',
|
|
99
|
+
molarStage2: 'Krona början',
|
|
100
|
+
molarStage3: 'Krona full',
|
|
101
|
+
molarStage4: 'Rot början',
|
|
102
|
+
molarStage5: 'Rot halv',
|
|
103
|
+
molarStage6: 'Rot lång',
|
|
104
|
+
molarStage7: 'Apex sluts',
|
|
105
|
+
molarStage8: 'Fullständig',
|
|
106
|
+
confidenceexploratory: 'Explorativ',
|
|
107
|
+
confidencemoderate: 'Måttlig',
|
|
108
|
+
confidencestrong: 'Stark',
|
|
109
|
+
noteTriage: 'Använd som triageuppskattning; ej som juridisk åldersbestämning.',
|
|
110
|
+
noteFinalAssessment: 'Slutlig forensisk åldersbedömning måste integrera radiologi, klinisk tandundersökning, anamnes och jurisdiktionsspecifika standarder.',
|
|
111
|
+
noteWideInterval: 'Indikatorer avviker med mer än fyra år; intervallet har breddats.',
|
|
112
|
+
},
|
|
113
|
+
seo: [
|
|
114
|
+
{
|
|
115
|
+
type: 'title',
|
|
116
|
+
text: 'Forensisk åldersskattare: Tand-, skelett- och visdomstandsscreening',
|
|
117
|
+
level: 2,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'paragraph',
|
|
121
|
+
html: 'Denna forensiska åldersskattare erbjuder ett transparent ramverk för att organisera biologiska mognadsbevis före en formell bedömning. Verktyget integrerar tandutveckling, epifysfusion och visdomstandsstadier för att generera ett estimerat åldersintervall. Det adresserar sökningar såsom <strong>forensisk åldersskattning</strong>, <strong>tandmognadsbedömning</strong> och <strong>skelettåldersuppskattning</strong>, och hjälper användaren att förstå hur indikatorer kombineras och vilken osäkerhet som föreligger.',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'paragraph',
|
|
125
|
+
html: 'Resultaten presenteras som <strong>minimi-, sannolik och maximiålder</strong>. Punktskattningar är ofta missvisande då biologisk utveckling varierar kraftigt på grund av nutrition, hälsa, härkomst och miljöfaktorer. Detta verktyg bör betraktas som ett strukturerat screeninghjälpmedel, inte som ett definitivt juridiskt utlåtande.',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: 'Förståelse för mognadsindikatorer',
|
|
130
|
+
level: 3,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'paragraph',
|
|
134
|
+
html: 'Mognadsskalorna (0-8) ger en praktisk abstraktion för att jämföra olika biologiska system. Stadium 0 signalerar tidig eller frånvarande mognad, medan stadium 8 representerar fullständighet. Dessa stadier ersätter inte namngivna kliniska metoder utan möjliggör en korsreferensanalys.',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'table',
|
|
138
|
+
headers: ['Indikator', 'Beskrivning', 'Kontext', 'Varning'],
|
|
139
|
+
rows: [
|
|
140
|
+
['Tandutveckling', 'Bildning och frambrott (exkl. visdomständer).', 'Primär mätare för barn och ungdomar.', 'Kan snedvridas av tandsjukdom, extraktioner eller populationsspecifika skillnader.'],
|
|
141
|
+
['Epifysfusion', 'Progressiv slutning av tillväxtplattor.', 'Nyckelindikator för sen adolescens och ung vuxen ålder.', 'Starkt beroende av specifikt ben, kön och hälsostatus.'],
|
|
142
|
+
['Visdomstandsstadium', 'Bildning och mognad av visdomständer.', 'Kritiskt för bedömning av unga vuxna.', 'Hög variabilitet; kräver noggrann analys av agenesi och retention.'],
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'title',
|
|
147
|
+
text: 'Att tolka åldersintervallet',
|
|
148
|
+
level: 3,
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
type: 'paragraph',
|
|
152
|
+
html: 'Betrakta alla tre värden tillsammans. Den <strong>sannolika åldern</strong> utgör den viktade centrala skattningen baserat på vald bevisbetoning. <strong>Minimum-</strong> och <strong>maximumvärdena</strong> definierar osäkerhetsbandet. Överensstämmelse mellan indikatorer resulterar i ett snävare band; motstridiga signaler breddar intervallet och sänker förtroendegraden.',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'table',
|
|
156
|
+
headers: ['Mönster', 'Antydan', 'Åtgärd'],
|
|
157
|
+
rows: [
|
|
158
|
+
['Smal intervall / Starkt förtroende', 'Indikatorer stämmer överens.', 'Dokumentera fynd och bedöm om formell validering krävs.'],
|
|
159
|
+
['Måttligt intervall', 'Oenighet eller viktning påverkar resultatet.', 'Verifiera bildkvalitet och stadietilldelning.'],
|
|
160
|
+
['Brett explorativt intervall', 'Indikatorer i konflikt.', 'Lita inte enbart på denna skattning; sök kompletterande dokumentation eller specialistgranskning.'],
|
|
161
|
+
],
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
type: 'title',
|
|
165
|
+
text: 'Val av bevisläge',
|
|
166
|
+
level: 3,
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
type: 'paragraph',
|
|
170
|
+
html: '<strong>Blandade bevis</strong> är standardläget, vilket balanserar alla indikatorer. Välj <strong>tandprioritet</strong> när tandjournaler är exceptionellt robusta. Välj <strong>skelettprioritet</strong> när radiografiska skelettfynd utgör den mest omfattande datapunkten. Dessa lägen förbättrar inte kvaliteten på svaga bevis, utan justerar endast den matematiska viktningen.',
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
type: 'list',
|
|
174
|
+
items: [
|
|
175
|
+
'<strong>Tandprioritet:</strong> använd när tandutveckling är tydligt stadieindelad och visdomstandsdata finns tillgängliga.',
|
|
176
|
+
'<strong>Skelettprioritet:</strong> använd när epifysfusion är den bäst dokumenterade signalen.',
|
|
177
|
+
'<strong>Blandade bevis:</strong> idealiskt för en balanserad initial screening.',
|
|
178
|
+
'<strong>Förtroendelabel:</strong> bevaka denna för att identifiera diskrepanser före tolkning.',
|
|
179
|
+
],
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
type: 'title',
|
|
183
|
+
text: 'Forensiska begränsningar',
|
|
184
|
+
level: 3,
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
type: 'paragraph',
|
|
188
|
+
html: 'Åldersuppskattning är ett stöd, aldrig ett slutet identitetsbevis. I juridiska eller skyddsmässiga sammanhang - såsom identifiering av katastrofoffer eller migrationsärenden - måste bedömningar vara multidisciplinära. Ansvariga rapporter måste detaljera den specifika metoden, referenspopulationen, observatörens kvalifikationer och kända begränsningar.',
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
type: 'paragraph',
|
|
192
|
+
html: 'Detta verktyg är utformat för <strong>utbildning, triage och transparent kommunikation</strong>. Det förstärker varför åldersslutsatser kräver försiktighet och varför kritiska trösklar - såsom 18-årsdagen - aldrig bör avgöras enbart av en förenklad kalkylator.',
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
type: 'title',
|
|
196
|
+
text: 'Checklista för forensisk rapportering',
|
|
197
|
+
level: 3,
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
type: 'list',
|
|
201
|
+
items: [
|
|
202
|
+
'<strong>Källdokumentation:</strong> Notera uttryckligen om stadier baseras på tandundersökning, panoramarröntgen eller skelettbildtagning (t.ex. hand-handled, klavikel).',
|
|
203
|
+
'<strong>Saknade/svaga data:</strong> Dokumentera tydligt avvikelser, dålig bildkvalitet eller anomalier.',
|
|
204
|
+
'<strong>Metodologisk validering:</strong> Säkerställ att valda metoder är erkända inom den lokala jurisdiktionen.',
|
|
205
|
+
'<strong>Osäkerhetshantering:</strong> Presentera alltid ett intervall; undvik språk som antyder exakt kronologisk ålder.',
|
|
206
|
+
'<strong>Specialistgranskning:</strong> Högriskärenden måste valideras av forensiska odontologer, radiologer eller antropologer.',
|
|
207
|
+
],
|
|
208
|
+
},
|
|
209
|
+
],
|
|
210
|
+
faq,
|
|
211
|
+
bibliography,
|
|
212
|
+
howTo,
|
|
213
|
+
schemas: [
|
|
214
|
+
{
|
|
215
|
+
'@context': 'https://schema.org',
|
|
216
|
+
'@type': 'SoftwareApplication',
|
|
217
|
+
name: title,
|
|
218
|
+
description,
|
|
219
|
+
applicationCategory: 'ForensicApplication',
|
|
220
|
+
operatingSystem: 'Any',
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
'@context': 'https://schema.org',
|
|
224
|
+
'@type': 'FAQPage',
|
|
225
|
+
mainEntity: faq.map((item) => ({
|
|
226
|
+
'@type': 'Question',
|
|
227
|
+
name: item.question,
|
|
228
|
+
acceptedAnswer: {
|
|
229
|
+
'@type': 'Answer',
|
|
230
|
+
text: item.answer,
|
|
231
|
+
},
|
|
232
|
+
})),
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
'@context': 'https://schema.org',
|
|
236
|
+
'@type': 'HowTo',
|
|
237
|
+
name: title,
|
|
238
|
+
step: howTo.map((step) => ({
|
|
239
|
+
'@type': 'HowToStep',
|
|
240
|
+
name: step.name,
|
|
241
|
+
text: step.text,
|
|
242
|
+
})),
|
|
243
|
+
},
|
|
244
|
+
],
|
|
245
245
|
};
|