@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.
Files changed (138) hide show
  1. package/package.json +2 -1
  2. package/src/category/index.ts +61 -59
  3. package/src/category/seo.astro +1 -1
  4. package/src/components/PreviewNavSidebar.astro +1 -1
  5. package/src/components/PreviewToolbar.astro +1 -1
  6. package/src/data.ts +1 -1
  7. package/src/entries.ts +70 -68
  8. package/src/env.d.ts +1 -1
  9. package/src/index.ts +32 -31
  10. package/src/pages/[locale]/[slug].astro +161 -159
  11. package/src/pages/[locale].astro +8 -5
  12. package/src/pages/index.astro +1 -1
  13. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  14. package/src/tests/diacritics_density.test.ts +1 -1
  15. package/src/tests/faq_count.test.ts +19 -19
  16. package/src/tests/i18n_coverage.test.ts +36 -36
  17. package/src/tests/inverted_punctuation.test.ts +1 -1
  18. package/src/tests/locale_completeness.test.ts +2 -2
  19. package/src/tests/mocks/astro_mock.js +1 -1
  20. package/src/tests/no_h1_in_components.test.ts +1 -1
  21. package/src/tests/script_density.test.ts +94 -94
  22. package/src/tests/seo_length.test.ts +46 -46
  23. package/src/tests/seo_parity.test.ts +2 -7
  24. package/src/tests/seo_translation_completeness.test.ts +68 -0
  25. package/src/tests/seo_wellformed_export.test.ts +65 -0
  26. package/src/tests/tool_validation.test.ts +2 -2
  27. package/src/tests/translation_copy.test.ts +23 -24
  28. package/src/tool/bloodstain-pattern-origin-analyzer/component.astro +9 -9
  29. package/src/tool/bloodstain-pattern-origin-analyzer/i18n/zh.ts +1 -1
  30. package/src/tool/dna-profile-match-probability-lab/bibliography.astro +14 -0
  31. package/src/tool/dna-profile-match-probability-lab/bibliography.ts +16 -0
  32. package/src/tool/dna-profile-match-probability-lab/component.astro +121 -0
  33. package/src/tool/dna-profile-match-probability-lab/controller.ts +159 -0
  34. package/src/tool/dna-profile-match-probability-lab/dna-profile-match-probability-lab.css +485 -0
  35. package/src/tool/dna-profile-match-probability-lab/dom-views.ts +93 -0
  36. package/src/tool/dna-profile-match-probability-lab/entry.ts +29 -0
  37. package/src/tool/dna-profile-match-probability-lab/evaluator.ts +19 -0
  38. package/src/tool/dna-profile-match-probability-lab/i18n/de.ts +43 -0
  39. package/src/tool/dna-profile-match-probability-lab/i18n/en.ts +196 -0
  40. package/src/tool/dna-profile-match-probability-lab/i18n/es.ts +40 -0
  41. package/src/tool/dna-profile-match-probability-lab/i18n/fr.ts +10 -0
  42. package/src/tool/dna-profile-match-probability-lab/i18n/id.ts +41 -0
  43. package/src/tool/dna-profile-match-probability-lab/i18n/it.ts +10 -0
  44. package/src/tool/dna-profile-match-probability-lab/i18n/ja.ts +40 -0
  45. package/src/tool/dna-profile-match-probability-lab/i18n/ko.ts +40 -0
  46. package/src/tool/dna-profile-match-probability-lab/i18n/nl.ts +29 -0
  47. package/src/tool/dna-profile-match-probability-lab/i18n/pl.ts +10 -0
  48. package/src/tool/dna-profile-match-probability-lab/i18n/pt.ts +41 -0
  49. package/src/tool/dna-profile-match-probability-lab/i18n/ru.ts +29 -0
  50. package/src/tool/dna-profile-match-probability-lab/i18n/sv.ts +41 -0
  51. package/src/tool/dna-profile-match-probability-lab/i18n/tr.ts +10 -0
  52. package/src/tool/dna-profile-match-probability-lab/i18n/zh.ts +29 -0
  53. package/src/tool/dna-profile-match-probability-lab/index.ts +11 -0
  54. package/src/tool/dna-profile-match-probability-lab/localize.ts +107 -0
  55. package/src/tool/dna-profile-match-probability-lab/logic.test.ts +56 -0
  56. package/src/tool/dna-profile-match-probability-lab/logic.ts +139 -0
  57. package/src/tool/dna-profile-match-probability-lab/seo.astro +15 -0
  58. package/src/tool/dna-profile-match-probability-lab/storage.ts +26 -0
  59. package/src/tool/dna-profile-match-probability-lab/ui.ts +3 -0
  60. package/src/tool/fire-pattern-origin-analyzer/component.astro +1 -1
  61. package/src/tool/fire-pattern-origin-analyzer/i18n/zh.ts +5 -1
  62. package/src/tool/fire-pattern-origin-analyzer/logic.ts +9 -2
  63. package/src/tool/fire-pattern-origin-analyzer/view-bindings.ts +8 -4
  64. package/src/tool/fire-pattern-origin-analyzer/view-model.ts +6 -2
  65. package/src/tool/forensic-age-estimator/bibliography.astro +1 -1
  66. package/src/tool/forensic-age-estimator/component.astro +1 -1
  67. package/src/tool/forensic-age-estimator/entry.ts +17 -17
  68. package/src/tool/forensic-age-estimator/i18n/de.ts +244 -244
  69. package/src/tool/forensic-age-estimator/i18n/en.ts +244 -244
  70. package/src/tool/forensic-age-estimator/i18n/es.ts +244 -244
  71. package/src/tool/forensic-age-estimator/i18n/fr.ts +244 -244
  72. package/src/tool/forensic-age-estimator/i18n/id.ts +244 -244
  73. package/src/tool/forensic-age-estimator/i18n/it.ts +244 -244
  74. package/src/tool/forensic-age-estimator/i18n/nl.ts +244 -244
  75. package/src/tool/forensic-age-estimator/i18n/pl.ts +244 -244
  76. package/src/tool/forensic-age-estimator/i18n/pt.ts +244 -244
  77. package/src/tool/forensic-age-estimator/i18n/ru.ts +244 -244
  78. package/src/tool/forensic-age-estimator/i18n/sv.ts +244 -244
  79. package/src/tool/forensic-age-estimator/i18n/tr.ts +244 -244
  80. package/src/tool/forensic-age-estimator/i18n/zh.ts +245 -245
  81. package/src/tool/forensic-age-estimator/index.ts +1 -1
  82. package/src/tool/forensic-age-estimator/seo.astro +1 -1
  83. package/src/tool/forensic-blood-test-simulator/component.astro +1 -1
  84. package/src/tool/forensic-fiber-comparison-microscope/component.astro +1 -1
  85. package/src/tool/forensic-fiber-comparison-microscope/render.ts +1 -1
  86. package/src/tool/forensic-fiber-comparison-microscope/view.ts +1 -1
  87. package/src/tool/forensic-fingerprint-minutiae-identifier/component.astro +2 -2
  88. package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/ja.ts +2 -1
  89. package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/zh.ts +2 -0
  90. package/src/tool/forensic-fingerprint-minutiae-identifier/renderer.ts +9 -8
  91. package/src/tool/forensic-glass-becke-line-simulator/component.astro +1 -1
  92. package/src/tool/forensic-glass-becke-line-simulator/view.ts +8 -6
  93. package/src/tool/forensic-image-authenticity-analyzer/component.astro +1 -1
  94. package/src/tool/forensic-image-authenticity-analyzer/i18n/de.ts +105 -105
  95. package/src/tool/forensic-image-authenticity-analyzer/i18n/en.ts +105 -105
  96. package/src/tool/forensic-image-authenticity-analyzer/i18n/es.ts +105 -105
  97. package/src/tool/forensic-image-authenticity-analyzer/i18n/fr.ts +105 -105
  98. package/src/tool/forensic-image-authenticity-analyzer/i18n/id.ts +95 -90
  99. package/src/tool/forensic-image-authenticity-analyzer/i18n/it.ts +105 -105
  100. package/src/tool/forensic-image-authenticity-analyzer/i18n/ja.ts +7 -2
  101. package/src/tool/forensic-image-authenticity-analyzer/i18n/ko.ts +4 -1
  102. package/src/tool/forensic-image-authenticity-analyzer/i18n/nl.ts +95 -92
  103. package/src/tool/forensic-image-authenticity-analyzer/i18n/pl.ts +95 -92
  104. package/src/tool/forensic-image-authenticity-analyzer/i18n/pt.ts +105 -105
  105. package/src/tool/forensic-image-authenticity-analyzer/i18n/ru.ts +97 -92
  106. package/src/tool/forensic-image-authenticity-analyzer/i18n/sv.ts +97 -93
  107. package/src/tool/forensic-image-authenticity-analyzer/i18n/tr.ts +98 -93
  108. package/src/tool/forensic-image-authenticity-analyzer/i18n/zh.ts +11 -0
  109. package/src/tool/forensic-microcrystal-drug-simulator/component.astro +1 -1
  110. package/src/tool/forensic-sex-determinator/component.astro +3 -2
  111. package/src/tool/forensic-stature-estimator/component.astro +1 -1
  112. package/src/tool/forensic-stature-estimator/i18n/id.ts +4 -0
  113. package/src/tool/forensic-stature-estimator/i18n/nl.ts +4 -0
  114. package/src/tool/forensic-stature-estimator/i18n/ru.ts +4 -0
  115. package/src/tool/forensic-tlc-ink-simulator/component.astro +1 -1
  116. package/src/tool/forensic-tlc-ink-simulator/i18n/zh.ts +1 -0
  117. package/src/tool/forensic-toolmark-striation-matcher/component.astro +1 -1
  118. package/src/tool/forensic-toolmark-striation-matcher/logic.ts +1 -1
  119. package/src/tool/forensic-toolmark-striation-matcher/renderer.ts +7 -6
  120. package/src/tool/forensic-toolmark-striation-matcher/view.ts +19 -20
  121. package/src/tool/gsr-dispersion-calculator/component.astro +1 -1
  122. package/src/tool/gsr-dispersion-calculator/logic.ts +1 -1
  123. package/src/tool/time-of-death-algor-mortis-calculator/entry.ts +2 -0
  124. package/src/tool/widmark-alcohol-simulator/component.astro +1 -1
  125. package/src/tool/widmark-alcohol-simulator/i18n/de.ts +5 -0
  126. package/src/tool/widmark-alcohol-simulator/i18n/fr.ts +2 -1
  127. package/src/tool/widmark-alcohol-simulator/i18n/id.ts +1 -0
  128. package/src/tool/widmark-alcohol-simulator/i18n/it.ts +4 -1
  129. package/src/tool/widmark-alcohol-simulator/i18n/ja.ts +4 -1
  130. package/src/tool/widmark-alcohol-simulator/i18n/nl.ts +5 -1
  131. package/src/tool/widmark-alcohol-simulator/i18n/pl.ts +5 -1
  132. package/src/tool/widmark-alcohol-simulator/i18n/pt.ts +5 -1
  133. package/src/tool/widmark-alcohol-simulator/i18n/ru.ts +4 -1
  134. package/src/tool/widmark-alcohol-simulator/i18n/sv.ts +5 -1
  135. package/src/tool/widmark-alcohol-simulator/i18n/tr.ts +4 -1
  136. package/src/tool/widmark-alcohol-simulator/i18n/zh.ts +4 -1
  137. package/src/tools.ts +37 -35
  138. 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 = 'leeftijdsschatter-gebit-skelet-verstandskies';
5
- const title = 'Leeftijdsschatter voor gebit, skelet en verstandskiezen';
6
- const description = 'Schat een forensisch leeftijdsinterval op basis van gebitsontwikkeling, skeletale maturiteit en verstandskiesindicatoren voor screening en casustriage.';
7
-
8
- const howTo = [
9
- {
10
- name: 'Selecteer de bewijsklemtoon',
11
- text: 'Kies "Gemengd bewijs" voor gebalanceerde triage, "Gebitsprioriteit" wanneer gebitsbevindingen robuuster zijn, of "Skeletprioriteit" wanneer radiografische skeletindicatoren de primaire bron vormen.',
12
- },
13
- {
14
- name: 'Beoordeel elke maturiteitsindicator',
15
- text: 'Studeer elk stadium in van 0 tot 8. Lagere stadia duiden op vroege ontwikkeling, middelste stadia op adolescente rijping en hogere stadia op rijpe of bijna-rijpe bevindingen.',
16
- },
17
- {
18
- name: 'Interpreteer het interval, niet alleen de centrale leeftijd',
19
- text: 'Hanteer de minimum-, waarschijnlijke en maximumleeftijd in samenhang. Forensische leeftijdsbeoordeling moet worden uitgedrukt als een interval, aangezien biologische ontwikkeling individueel sterk varieert.',
20
- },
21
- {
22
- name: 'Controleer op discrepanties tussen indicatoren',
23
- text: 'Indien gebits-, skelet- en verstandskiesstadia naar uiteenlopende leeftijdsbereiken wijzen, behandel het resultaat dan als exploratief en verzamel aanvullend bewijs voordat u conclusies trekt.',
24
- },
25
- ];
26
-
27
- const faq = [
28
- {
29
- question: 'Kan deze forensische leeftijdsschatter de wettelijke meerderjarigheid bepalen?',
30
- answer: 'Nee. Dit is een screeningscalculator voor educatief en triagegebruik. Wettelijke leeftijdsbepaling vereist gevalideerde lokale protocollen, bevoegde experts, gedocumenteerd identiteitsonderzoek en jurisdictiespecifieke normen.',
31
- },
32
- {
33
- question: 'Waarom toont het resultaat een leeftijdsinterval?',
34
- answer: 'Gebitsdoorbraak, skeletfusie en verstandskiesontwikkeling variëren per afkomst, voeding, gezondheid, geslacht, referentiepopulatie en beeldvormingsmethode. Een interval biedt een nauwkeuriger beeld dan een enkele exacte leeftijd.',
35
- },
36
- {
37
- question: 'Wat betekent "Gemengd bewijs"?',
38
- answer: 'Gemengd bewijs balanceert gebitsontwikkeling, skeletale maturiteit en verstandskiesstadium. Gebruik deze optie wanneer geen enkele indicator in het dossier significant betrouwbaarder is dan de andere.',
39
- },
40
- {
41
- question: 'Zijn verstandskiezen betrouwbaar voor elke zaak?',
42
- answer: 'Verstandskiezen zijn nuttig in de late adolescentie en jonge volwassenheid, maar vertonen een hoge variabiliteit. Ontbrekende verstandskiezen, pathologie, populatieverschillen en radiografische kwaliteit kunnen hun forensische waarde beperken.',
43
- },
44
- {
45
- question: 'Moet dit worden gebruikt voor echte casuïstiek?',
46
- answer: 'Alleen als voorlopig hulpmiddel. Bij echte casuïstiek moeten gevalideerde methoden, gekalibreerde referentiegegevens, onafhankelijke beoordeling en transparante rapportage van onzekerheid en beperkingen worden toegepast.',
47
- },
48
- ];
49
-
50
- export const content: ToolLocaleContent = {
51
- slug,
52
- title,
53
- description,
54
- ui: {
55
- caseBoard: 'Forensisch casusbord',
56
- controls: 'Forensische leeftijdsregelaars',
57
- results: 'Forensische leeftijdsresultaten',
58
- maturityProfile: 'Dynamisch maturiteitsprofiel',
59
- screeningOnly: 'Screening schatting',
60
- evidenceType: 'Bewijsklemtoon',
61
- mixedEvidence: 'Gemengd bewijs',
62
- dentalPriority: 'Gebitsprioriteit',
63
- skeletalPriority: 'Skeletprioriteit',
64
- dentalStage: 'Gebitsontwikkelingsstadium',
65
- epiphysealStage: 'Epifysair fusiestadium',
66
- thirdMolarStage: 'Verstandskiesstadium',
67
- minimumAge: 'Minimum',
68
- likelyAge: 'Waarschijnlijk',
69
- maximumAge: 'Maximum',
70
- maturityScore: 'Maturiteitsscore',
71
- stageLabel: 'Stadium',
72
- ageUnit: 'jaar',
73
- dentalShort: 'Gebit',
74
- boneShort: 'Bot',
75
- molarShort: 'Molaar',
76
- dentalStageHelp: 'Kroon-, wortel- en apexvorming.',
77
- epiphysealStageHelp: 'Groeischijfsluiting en skeletfusie.',
78
- molarStageHelp: 'Verstandskiesmineralisatie en apexsluiting.',
79
- dentalStage0: 'Afwezig',
80
- dentalStage1: 'Knobbel',
81
- dentalStage2: 'Kroon',
82
- dentalStage3: 'Wortel begin',
83
- dentalStage4: 'Wortel helft',
84
- dentalStage5: 'Wortel lang',
85
- dentalStage6: 'Apex smal',
86
- dentalStage7: 'Apex sluitend',
87
- dentalStage8: 'Compleet',
88
- epiphysealStage0: 'Open',
89
- epiphysealStage1: 'Rand',
90
- epiphysealStage2: 'Vernauwing',
91
- epiphysealStage3: 'Brug',
92
- epiphysealStage4: 'Half gefuseerd',
93
- epiphysealStage5: 'Meestal gefuseerd',
94
- epiphysealStage6: 'Alleen lijn',
95
- epiphysealStage7: 'Bijna gesloten',
96
- epiphysealStage8: 'Gesloten',
97
- molarStage0: 'Afwezig',
98
- molarStage1: 'Knobbel',
99
- molarStage2: 'Kroon begin',
100
- molarStage3: 'Kroon volledig',
101
- molarStage4: 'Wortel begin',
102
- molarStage5: 'Wortel helft',
103
- molarStage6: 'Wortel lang',
104
- molarStage7: 'Apex sluitend',
105
- molarStage8: 'Compleet',
106
- confidenceexploratory: 'Exploratief',
107
- confidencemoderate: 'Matig',
108
- confidencestrong: 'Sterk',
109
- noteTriage: 'Gebruik als triageschatting, niet als wettelijke leeftijdsbepaling.',
110
- noteFinalAssessment: 'De uiteindelijke forensische leeftijdsbeoordeling moet radiologie, gebitsonderzoek, gedocumenteerde geschiedenis en jurisdictiespecifieke normen integreren.',
111
- noteWideInterval: 'De indicatoren verschillen meer dan vier jaar, dus het interval is verbreed.',
112
- },
113
- seo: [
114
- {
115
- type: 'title',
116
- text: 'Forensische leeftijdsschatter: gebits-, skelet- en verstandskies-screeningcalculator',
117
- level: 2,
118
- },
119
- {
120
- type: 'paragraph',
121
- html: 'Gebruik deze forensische leeftijdsschatter voor een snelle, transparante organisatie van biologisch maturiteitsbewijs vóór een formele beoordeling. De calculator integreert gebitsontwikkeling, epifysaire fusie en het verstandskiesstadium tot een geschat leeftijdsinterval. De tool adresseert zoekopdrachten zoals <strong>forensische leeftijdsschattingscalculator</strong>, <strong>gebitsleeftijdsbeoordeling</strong> en <strong>skeletale maturiteitsschatting</strong>, waarbij gebruikers inzicht krijgen in de betekenis van indicatoren, de combinatie ervan en de gehanteerde onzekerheidsmarges.',
122
- },
123
- {
124
- type: 'paragraph',
125
- html: 'De uitkomst wordt bewust weergegeven als <strong>minimum-, waarschijnlijke en maximumleeftijd</strong>. Een puntschatting is vaak misleidend, daar biologische ontwikkeling sterk varieert door voeding, gezondheid, afkomst en omgevingsfactoren. Beschouw deze calculator als een gestructureerd screeningshulpmiddel en niet als een juridisch sluitend bewijs.',
126
- },
127
- {
128
- type: 'title',
129
- text: 'Wat de drie maturiteitsindicatoren betekenen',
130
- level: 3,
131
- },
132
- {
133
- type: 'paragraph',
134
- html: 'De schuifregelaars (0-8) bieden een praktische abstractie voor het vergelijken van verschillende biologische systemen. Stadium 0 duidt op zeer vroege of afwezige maturiteit; stadium 8 op volledige maturiteit. Deze stadia zijn niet gebonden aan één specifieke klinische methode, maar faciliteren cross-systeem vergelijkingen binnen een intervalschatting.',
135
- },
136
- {
137
- type: 'table',
138
- headers: ['Indicator', 'Beschrijving', 'Context', 'Voorzichtigheid'],
139
- rows: [
140
- ['Gebitsontwikkeling', 'Vorming en doorbraak (excl. verstandskiezen).', 'Primaire metriek voor kinderen en adolescenten.', 'Kan worden vertekend door gebitspathologie, extracties of populatiespecifieke verschillen.'],
141
- ['Epifysaire fusie', 'Progressieve sluiting van groeischijven.', 'Sleutelindicator voor late adolescentie en jonge volwassenheid.', 'Sterk afhankelijk van het geobserveerde bot, geslacht en gezondheidsstatus.'],
142
- ['Verstandskiesstadium', 'Vorming en rijping van verstandskiezen.', 'Cruciaal voor beoordeling in late adolescentie.', 'Zeer variabel; vereist zorgvuldige analyse van agenesie en impactie.'],
143
- ],
144
- },
145
- {
146
- type: 'title',
147
- text: 'Het leeftijdsinterval interpreteren',
148
- level: 3,
149
- },
150
- {
151
- type: 'paragraph',
152
- html: 'Beschouw de drie waarden in samenhang. De <strong>waarschijnlijke leeftijd</strong> is de gewogen centrale schatting op basis van de gekozen bewijsklemtoon. De <strong>minimum-</strong> en <strong>maximumwaarden</strong> definiëren de praktische onzekerheidsmarge. Overeenstemming tussen indicatoren versmalt de bandbreedte; tegenstrijdige signalen verbreden het interval en verlagen de betrouwbaarheidsscore.',
153
- },
154
- {
155
- type: 'table',
156
- headers: ['Resultaatpatroon', 'Interpretatie', 'Aanbevolen actie'],
157
- rows: [
158
- ['Smalle band / Sterk vertrouwen', 'Indicatoren stemmen overeen.', 'Documenteer bevindingen en evalueer of formele validatie vereist is.'],
159
- ['Matige band', 'Discrepantie of invloed van bewijsweging.', 'Verifieer beeldkwaliteit en stadietoewijzing.'],
160
- ['Brede exploratieve band', 'Indicatoren in conflict.', 'Vertrouw niet enkel op deze schatting; zoek aanvullende dossiers of specialistische beoordeling.'],
161
- ],
162
- },
163
- {
164
- type: 'title',
165
- text: 'Selectie van bewijsmodus',
166
- level: 3,
167
- },
168
- {
169
- type: 'paragraph',
170
- html: '<strong>Gemengd bewijs</strong> is de standaardmodus voor screening, omdat het alle indicatoren balanceert. Kies <strong>gebitsprioriteit</strong> bij uitzonderlijk robuuste gebitsdossiers. Kies <strong>skeletprioriteit</strong> wanneer radiografische skeletgegevens de meest complete dataset vormen. Deze modi verbeteren de kwaliteit van zwak bewijs niet, maar passen enkel de wiskundige weging aan.',
171
- },
172
- {
173
- type: 'list',
174
- items: [
175
- '<strong>Gebitsprioriteit:</strong> wanneer gebitsontwikkeling duidelijk is gestageerd en verstandskiesgegevens beschikbaar zijn.',
176
- '<strong>Skeletprioriteit:</strong> wanneer epifysaire fusie het best gedocumenteerde maturiteitssignaal is.',
177
- '<strong>Gemengd bewijs:</strong> optimaal voor een gebalanceerd eerste overzicht.',
178
- '<strong>Vertrouwenslabel:</strong> gebruik dit om discrepanties te herkennen vóór interpretatie.',
179
- ],
180
- },
181
- {
182
- type: 'title',
183
- text: 'Forensische leeftijdsbepaling is geen identiteitsbewijs',
184
- level: 3,
185
- },
186
- {
187
- type: 'paragraph',
188
- html: 'Leeftijdsschatting is ondersteunend, nooit sluitend bewijs voor identiteit. In juridische of beschermingscontexten (zoals rampenidentificatie of migratie) is een multidisciplinaire aanpak essentieel. Verantwoorde rapporten moeten expliciet de gehanteerde methodiek, referentiepopulatie, waarnemerskwalificaties en bekende beperkingen vermelden.',
189
- },
190
- {
191
- type: 'paragraph',
192
- html: 'Deze tool is ontworpen voor <strong>educatie, triage en transparante communicatie</strong>. Het benadrukt waarom conclusies over leeftijd voorzichtig moeten zijn en waarom kritieke drempels (zoals de 18e verjaardag) nooit enkel op basis van een vereenvoudigde calculator mogen worden vastgesteld.',
193
- },
194
- {
195
- type: 'title',
196
- text: 'Forensische rapportagechecklist',
197
- level: 3,
198
- },
199
- {
200
- type: 'list',
201
- items: [
202
- '<strong>Bronvermelding:</strong> Noteer expliciet of stadia zijn gebaseerd op gebitsonderzoek, panoramische X-stralen of skeletbeelden (hand-pols, clavicula, enz.).',
203
- '<strong>Ontbrekende/zwakke data:</strong> Documenteer afwezigheden, slechte beeldkwaliteit of anomalieën duidelijk.',
204
- '<strong>Methodologische validatie:</strong> Waarborg dat geselecteerde methoden erkend zijn binnen de lokale jurisdictie.',
205
- '<strong>Transparantie over onzekerheid:</strong> Rapporteer altijd een bereik en vermijd terminologie die een exacte chronologische leeftijd suggereert.',
206
- '<strong>Specialistische beoordeling:</strong> Risicovolle zaken moeten verplicht worden getoetst door forensische odontologen, radiologen of antropologen.',
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 = 'leeftijdsschatter-gebit-skelet-verstandskies';
5
+ const title = 'Leeftijdsschatter voor gebit, skelet en verstandskiezen';
6
+ const description = 'Schat een forensisch leeftijdsinterval op basis van gebitsontwikkeling, skeletale maturiteit en verstandskiesindicatoren voor screening en casustriage.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Selecteer de bewijsklemtoon',
11
+ text: 'Kies "Gemengd bewijs" voor gebalanceerde triage, "Gebitsprioriteit" wanneer gebitsbevindingen robuuster zijn, of "Skeletprioriteit" wanneer radiografische skeletindicatoren de primaire bron vormen.',
12
+ },
13
+ {
14
+ name: 'Beoordeel elke maturiteitsindicator',
15
+ text: 'Studeer elk stadium in van 0 tot 8. Lagere stadia duiden op vroege ontwikkeling, middelste stadia op adolescente rijping en hogere stadia op rijpe of bijna-rijpe bevindingen.',
16
+ },
17
+ {
18
+ name: 'Interpreteer het interval, niet alleen de centrale leeftijd',
19
+ text: 'Hanteer de minimum-, waarschijnlijke en maximumleeftijd in samenhang. Forensische leeftijdsbeoordeling moet worden uitgedrukt als een interval, aangezien biologische ontwikkeling individueel sterk varieert.',
20
+ },
21
+ {
22
+ name: 'Controleer op discrepanties tussen indicatoren',
23
+ text: 'Indien gebits-, skelet- en verstandskiesstadia naar uiteenlopende leeftijdsbereiken wijzen, behandel het resultaat dan als exploratief en verzamel aanvullend bewijs voordat u conclusies trekt.',
24
+ },
25
+ ];
26
+
27
+ const faq = [
28
+ {
29
+ question: 'Kan deze forensische leeftijdsschatter de wettelijke meerderjarigheid bepalen?',
30
+ answer: 'Nee. Dit is een screeningscalculator voor educatief en triagegebruik. Wettelijke leeftijdsbepaling vereist gevalideerde lokale protocollen, bevoegde experts, gedocumenteerd identiteitsonderzoek en jurisdictiespecifieke normen.',
31
+ },
32
+ {
33
+ question: 'Waarom toont het resultaat een leeftijdsinterval?',
34
+ answer: 'Gebitsdoorbraak, skeletfusie en verstandskiesontwikkeling variëren per afkomst, voeding, gezondheid, geslacht, referentiepopulatie en beeldvormingsmethode. Een interval biedt een nauwkeuriger beeld dan een enkele exacte leeftijd.',
35
+ },
36
+ {
37
+ question: 'Wat betekent "Gemengd bewijs"?',
38
+ answer: 'Gemengd bewijs balanceert gebitsontwikkeling, skeletale maturiteit en verstandskiesstadium. Gebruik deze optie wanneer geen enkele indicator in het dossier significant betrouwbaarder is dan de andere.',
39
+ },
40
+ {
41
+ question: 'Zijn verstandskiezen betrouwbaar voor elke zaak?',
42
+ answer: 'Verstandskiezen zijn nuttig in de late adolescentie en jonge volwassenheid, maar vertonen een hoge variabiliteit. Ontbrekende verstandskiezen, pathologie, populatieverschillen en radiografische kwaliteit kunnen hun forensische waarde beperken.',
43
+ },
44
+ {
45
+ question: 'Moet dit worden gebruikt voor echte casuïstiek?',
46
+ answer: 'Alleen als voorlopig hulpmiddel. Bij echte casuïstiek moeten gevalideerde methoden, gekalibreerde referentiegegevens, onafhankelijke beoordeling en transparante rapportage van onzekerheid en beperkingen worden toegepast.',
47
+ },
48
+ ];
49
+
50
+ export const content: ToolLocaleContent = {
51
+ slug,
52
+ title,
53
+ description,
54
+ ui: {
55
+ caseBoard: 'Forensisch casusbord',
56
+ controls: 'Forensische leeftijdsregelaars',
57
+ results: 'Forensische leeftijdsresultaten',
58
+ maturityProfile: 'Dynamisch maturiteitsprofiel',
59
+ screeningOnly: 'Screening schatting',
60
+ evidenceType: 'Bewijsklemtoon',
61
+ mixedEvidence: 'Gemengd bewijs',
62
+ dentalPriority: 'Gebitsprioriteit',
63
+ skeletalPriority: 'Skeletprioriteit',
64
+ dentalStage: 'Gebitsontwikkelingsstadium',
65
+ epiphysealStage: 'Epifysair fusiestadium',
66
+ thirdMolarStage: 'Verstandskiesstadium',
67
+ minimumAge: 'Minimum',
68
+ likelyAge: 'Waarschijnlijk',
69
+ maximumAge: 'Maximum',
70
+ maturityScore: 'Maturiteitsscore',
71
+ stageLabel: 'Stadium',
72
+ ageUnit: 'jaar',
73
+ dentalShort: 'Gebit',
74
+ boneShort: 'Bot',
75
+ molarShort: 'Molaar',
76
+ dentalStageHelp: 'Kroon-, wortel- en apexvorming.',
77
+ epiphysealStageHelp: 'Groeischijfsluiting en skeletfusie.',
78
+ molarStageHelp: 'Verstandskiesmineralisatie en apexsluiting.',
79
+ dentalStage0: 'Afwezig',
80
+ dentalStage1: 'Knobbel',
81
+ dentalStage2: 'Kroon',
82
+ dentalStage3: 'Wortel begin',
83
+ dentalStage4: 'Wortel helft',
84
+ dentalStage5: 'Wortel lang',
85
+ dentalStage6: 'Apex smal',
86
+ dentalStage7: 'Apex sluitend',
87
+ dentalStage8: 'Compleet',
88
+ epiphysealStage0: 'Open',
89
+ epiphysealStage1: 'Rand',
90
+ epiphysealStage2: 'Vernauwing',
91
+ epiphysealStage3: 'Brug',
92
+ epiphysealStage4: 'Half gefuseerd',
93
+ epiphysealStage5: 'Meestal gefuseerd',
94
+ epiphysealStage6: 'Alleen lijn',
95
+ epiphysealStage7: 'Bijna gesloten',
96
+ epiphysealStage8: 'Gesloten',
97
+ molarStage0: 'Afwezig',
98
+ molarStage1: 'Knobbel',
99
+ molarStage2: 'Kroon begin',
100
+ molarStage3: 'Kroon volledig',
101
+ molarStage4: 'Wortel begin',
102
+ molarStage5: 'Wortel helft',
103
+ molarStage6: 'Wortel lang',
104
+ molarStage7: 'Apex sluitend',
105
+ molarStage8: 'Compleet',
106
+ confidenceexploratory: 'Exploratief',
107
+ confidencemoderate: 'Matig',
108
+ confidencestrong: 'Sterk',
109
+ noteTriage: 'Gebruik als triageschatting, niet als wettelijke leeftijdsbepaling.',
110
+ noteFinalAssessment: 'De uiteindelijke forensische leeftijdsbeoordeling moet radiologie, gebitsonderzoek, gedocumenteerde geschiedenis en jurisdictiespecifieke normen integreren.',
111
+ noteWideInterval: 'De indicatoren verschillen meer dan vier jaar, dus het interval is verbreed.',
112
+ },
113
+ seo: [
114
+ {
115
+ type: 'title',
116
+ text: 'Forensische leeftijdsschatter: gebits-, skelet- en verstandskies-screeningcalculator',
117
+ level: 2,
118
+ },
119
+ {
120
+ type: 'paragraph',
121
+ html: 'Gebruik deze forensische leeftijdsschatter voor een snelle, transparante organisatie van biologisch maturiteitsbewijs vóór een formele beoordeling. De calculator integreert gebitsontwikkeling, epifysaire fusie en het verstandskiesstadium tot een geschat leeftijdsinterval. De tool adresseert zoekopdrachten zoals <strong>forensische leeftijdsschattingscalculator</strong>, <strong>gebitsleeftijdsbeoordeling</strong> en <strong>skeletale maturiteitsschatting</strong>, waarbij gebruikers inzicht krijgen in de betekenis van indicatoren, de combinatie ervan en de gehanteerde onzekerheidsmarges.',
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: 'De uitkomst wordt bewust weergegeven als <strong>minimum-, waarschijnlijke en maximumleeftijd</strong>. Een puntschatting is vaak misleidend, daar biologische ontwikkeling sterk varieert door voeding, gezondheid, afkomst en omgevingsfactoren. Beschouw deze calculator als een gestructureerd screeningshulpmiddel en niet als een juridisch sluitend bewijs.',
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'Wat de drie maturiteitsindicatoren betekenen',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'paragraph',
134
+ html: 'De schuifregelaars (0-8) bieden een praktische abstractie voor het vergelijken van verschillende biologische systemen. Stadium 0 duidt op zeer vroege of afwezige maturiteit; stadium 8 op volledige maturiteit. Deze stadia zijn niet gebonden aan één specifieke klinische methode, maar faciliteren cross-systeem vergelijkingen binnen een intervalschatting.',
135
+ },
136
+ {
137
+ type: 'table',
138
+ headers: ['Indicator', 'Beschrijving', 'Context', 'Voorzichtigheid'],
139
+ rows: [
140
+ ['Gebitsontwikkeling', 'Vorming en doorbraak (excl. verstandskiezen).', 'Primaire metriek voor kinderen en adolescenten.', 'Kan worden vertekend door gebitspathologie, extracties of populatiespecifieke verschillen.'],
141
+ ['Epifysaire fusie', 'Progressieve sluiting van groeischijven.', 'Sleutelindicator voor late adolescentie en jonge volwassenheid.', 'Sterk afhankelijk van het geobserveerde bot, geslacht en gezondheidsstatus.'],
142
+ ['Verstandskiesstadium', 'Vorming en rijping van verstandskiezen.', 'Cruciaal voor beoordeling in late adolescentie.', 'Zeer variabel; vereist zorgvuldige analyse van agenesie en impactie.'],
143
+ ],
144
+ },
145
+ {
146
+ type: 'title',
147
+ text: 'Het leeftijdsinterval interpreteren',
148
+ level: 3,
149
+ },
150
+ {
151
+ type: 'paragraph',
152
+ html: 'Beschouw de drie waarden in samenhang. De <strong>waarschijnlijke leeftijd</strong> is de gewogen centrale schatting op basis van de gekozen bewijsklemtoon. De <strong>minimum-</strong> en <strong>maximumwaarden</strong> definiëren de praktische onzekerheidsmarge. Overeenstemming tussen indicatoren versmalt de bandbreedte; tegenstrijdige signalen verbreden het interval en verlagen de betrouwbaarheidsscore.',
153
+ },
154
+ {
155
+ type: 'table',
156
+ headers: ['Resultaatpatroon', 'Interpretatie', 'Aanbevolen actie'],
157
+ rows: [
158
+ ['Smalle band / Sterk vertrouwen', 'Indicatoren stemmen overeen.', 'Documenteer bevindingen en evalueer of formele validatie vereist is.'],
159
+ ['Matige band', 'Discrepantie of invloed van bewijsweging.', 'Verifieer beeldkwaliteit en stadietoewijzing.'],
160
+ ['Brede exploratieve band', 'Indicatoren in conflict.', 'Vertrouw niet enkel op deze schatting; zoek aanvullende dossiers of specialistische beoordeling.'],
161
+ ],
162
+ },
163
+ {
164
+ type: 'title',
165
+ text: 'Selectie van bewijsmodus',
166
+ level: 3,
167
+ },
168
+ {
169
+ type: 'paragraph',
170
+ html: '<strong>Gemengd bewijs</strong> is de standaardmodus voor screening, omdat het alle indicatoren balanceert. Kies <strong>gebitsprioriteit</strong> bij uitzonderlijk robuuste gebitsdossiers. Kies <strong>skeletprioriteit</strong> wanneer radiografische skeletgegevens de meest complete dataset vormen. Deze modi verbeteren de kwaliteit van zwak bewijs niet, maar passen enkel de wiskundige weging aan.',
171
+ },
172
+ {
173
+ type: 'list',
174
+ items: [
175
+ '<strong>Gebitsprioriteit:</strong> wanneer gebitsontwikkeling duidelijk is gestageerd en verstandskiesgegevens beschikbaar zijn.',
176
+ '<strong>Skeletprioriteit:</strong> wanneer epifysaire fusie het best gedocumenteerde maturiteitssignaal is.',
177
+ '<strong>Gemengd bewijs:</strong> optimaal voor een gebalanceerd eerste overzicht.',
178
+ '<strong>Vertrouwenslabel:</strong> gebruik dit om discrepanties te herkennen vóór interpretatie.',
179
+ ],
180
+ },
181
+ {
182
+ type: 'title',
183
+ text: 'Forensische leeftijdsbepaling is geen identiteitsbewijs',
184
+ level: 3,
185
+ },
186
+ {
187
+ type: 'paragraph',
188
+ html: 'Leeftijdsschatting is ondersteunend, nooit sluitend bewijs voor identiteit. In juridische of beschermingscontexten (zoals rampenidentificatie of migratie) is een multidisciplinaire aanpak essentieel. Verantwoorde rapporten moeten expliciet de gehanteerde methodiek, referentiepopulatie, waarnemerskwalificaties en bekende beperkingen vermelden.',
189
+ },
190
+ {
191
+ type: 'paragraph',
192
+ html: 'Deze tool is ontworpen voor <strong>educatie, triage en transparante communicatie</strong>. Het benadrukt waarom conclusies over leeftijd voorzichtig moeten zijn en waarom kritieke drempels (zoals de 18e verjaardag) nooit enkel op basis van een vereenvoudigde calculator mogen worden vastgesteld.',
193
+ },
194
+ {
195
+ type: 'title',
196
+ text: 'Forensische rapportagechecklist',
197
+ level: 3,
198
+ },
199
+ {
200
+ type: 'list',
201
+ items: [
202
+ '<strong>Bronvermelding:</strong> Noteer expliciet of stadia zijn gebaseerd op gebitsonderzoek, panoramische X-stralen of skeletbeelden (hand-pols, clavicula, enz.).',
203
+ '<strong>Ontbrekende/zwakke data:</strong> Documenteer afwezigheden, slechte beeldkwaliteit of anomalieën duidelijk.',
204
+ '<strong>Methodologische validatie:</strong> Waarborg dat geselecteerde methoden erkend zijn binnen de lokale jurisdictie.',
205
+ '<strong>Transparantie over onzekerheid:</strong> Rapporteer altijd een bereik en vermijd terminologie die een exacte chronologische leeftijd suggereert.',
206
+ '<strong>Specialistische beoordeling:</strong> Risicovolle zaken moeten verplicht worden getoetst door forensische odontologen, radiologen of antropologen.',
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
  };