@jjlmoya/utils-forensic-science 1.1.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 (316) hide show
  1. package/package.json +69 -0
  2. package/scripts/crystal-lattice-catalog-translations.mjs +459 -0
  3. package/scripts/postinstall.mjs +27 -0
  4. package/scripts/sync-crystal-lattice-i18n.mjs +50 -0
  5. package/src/category/i18n/de.ts +55 -0
  6. package/src/category/i18n/en.ts +55 -0
  7. package/src/category/i18n/es.ts +55 -0
  8. package/src/category/i18n/fr.ts +55 -0
  9. package/src/category/i18n/id.ts +55 -0
  10. package/src/category/i18n/it.ts +55 -0
  11. package/src/category/i18n/ja.ts +56 -0
  12. package/src/category/i18n/ko.ts +56 -0
  13. package/src/category/i18n/nl.ts +55 -0
  14. package/src/category/i18n/pl.ts +55 -0
  15. package/src/category/i18n/pt.ts +55 -0
  16. package/src/category/i18n/ru.ts +55 -0
  17. package/src/category/i18n/sv.ts +55 -0
  18. package/src/category/i18n/tr.ts +55 -0
  19. package/src/category/i18n/zh.ts +56 -0
  20. package/src/category/index.ts +48 -0
  21. package/src/category/seo.astro +15 -0
  22. package/src/components/PreviewNavSidebar.astro +116 -0
  23. package/src/components/PreviewToolbar.astro +143 -0
  24. package/src/data.ts +10 -0
  25. package/src/entries.ts +48 -0
  26. package/src/env.d.ts +5 -0
  27. package/src/index.ts +29 -0
  28. package/src/layouts/PreviewLayout.astro +117 -0
  29. package/src/pages/[locale]/[slug].astro +162 -0
  30. package/src/pages/[locale].astro +261 -0
  31. package/src/pages/index.astro +3 -0
  32. package/src/tests/diacritics_density.test.ts +140 -0
  33. package/src/tests/faq_count.test.ts +19 -0
  34. package/src/tests/i18n_coverage.test.ts +36 -0
  35. package/src/tests/inverted_punctuation.test.ts +84 -0
  36. package/src/tests/locale_completeness.test.ts +24 -0
  37. package/src/tests/mocks/astro_mock.js +2 -0
  38. package/src/tests/no_en_dash.test.ts +70 -0
  39. package/src/tests/no_h1_in_components.test.ts +48 -0
  40. package/src/tests/schemas_fulfillment.test.ts +23 -0
  41. package/src/tests/script_density.test.ts +94 -0
  42. package/src/tests/seo_length.test.ts +46 -0
  43. package/src/tests/shared-test-helpers.ts +56 -0
  44. package/src/tests/slug_language_code_format.test.ts +23 -0
  45. package/src/tests/slug_uniqueness.test.ts +81 -0
  46. package/src/tests/title_quality.test.ts +55 -0
  47. package/src/tests/tool_exports.test.ts +34 -0
  48. package/src/tests/tool_validation.test.ts +16 -0
  49. package/src/tests/widmark.test.ts +28 -0
  50. package/src/tool/forensic-age-estimator/bibliography.astro +14 -0
  51. package/src/tool/forensic-age-estimator/bibliography.ts +16 -0
  52. package/src/tool/forensic-age-estimator/component.astro +321 -0
  53. package/src/tool/forensic-age-estimator/dental-skeletal-third-molar-age-estimator.css +634 -0
  54. package/src/tool/forensic-age-estimator/entry.ts +32 -0
  55. package/src/tool/forensic-age-estimator/i18n/de.ts +245 -0
  56. package/src/tool/forensic-age-estimator/i18n/en.ts +245 -0
  57. package/src/tool/forensic-age-estimator/i18n/es.ts +245 -0
  58. package/src/tool/forensic-age-estimator/i18n/fr.ts +245 -0
  59. package/src/tool/forensic-age-estimator/i18n/id.ts +245 -0
  60. package/src/tool/forensic-age-estimator/i18n/it.ts +245 -0
  61. package/src/tool/forensic-age-estimator/i18n/ja.ts +245 -0
  62. package/src/tool/forensic-age-estimator/i18n/ko.ts +245 -0
  63. package/src/tool/forensic-age-estimator/i18n/nl.ts +245 -0
  64. package/src/tool/forensic-age-estimator/i18n/pl.ts +245 -0
  65. package/src/tool/forensic-age-estimator/i18n/pt.ts +245 -0
  66. package/src/tool/forensic-age-estimator/i18n/ru.ts +245 -0
  67. package/src/tool/forensic-age-estimator/i18n/sv.ts +245 -0
  68. package/src/tool/forensic-age-estimator/i18n/tr.ts +245 -0
  69. package/src/tool/forensic-age-estimator/i18n/zh.ts +246 -0
  70. package/src/tool/forensic-age-estimator/index.ts +11 -0
  71. package/src/tool/forensic-age-estimator/logic.ts +81 -0
  72. package/src/tool/forensic-age-estimator/seo.astro +15 -0
  73. package/src/tool/forensic-blood-test-simulator/bibliography.astro +6 -0
  74. package/src/tool/forensic-blood-test-simulator/bibliography.ts +12 -0
  75. package/src/tool/forensic-blood-test-simulator/component.astro +168 -0
  76. package/src/tool/forensic-blood-test-simulator/dom-utils.ts +40 -0
  77. package/src/tool/forensic-blood-test-simulator/entry.ts +32 -0
  78. package/src/tool/forensic-blood-test-simulator/forensic-presumptive-blood-testing-luminol-kastle-meyer-simulator.css +532 -0
  79. package/src/tool/forensic-blood-test-simulator/helpers.ts +16 -0
  80. package/src/tool/forensic-blood-test-simulator/i18n/de.ts +185 -0
  81. package/src/tool/forensic-blood-test-simulator/i18n/en.ts +185 -0
  82. package/src/tool/forensic-blood-test-simulator/i18n/es.ts +185 -0
  83. package/src/tool/forensic-blood-test-simulator/i18n/fr.ts +220 -0
  84. package/src/tool/forensic-blood-test-simulator/i18n/id.ts +220 -0
  85. package/src/tool/forensic-blood-test-simulator/i18n/it.ts +220 -0
  86. package/src/tool/forensic-blood-test-simulator/i18n/ja.ts +220 -0
  87. package/src/tool/forensic-blood-test-simulator/i18n/ko.ts +220 -0
  88. package/src/tool/forensic-blood-test-simulator/i18n/nl.ts +220 -0
  89. package/src/tool/forensic-blood-test-simulator/i18n/pl.ts +220 -0
  90. package/src/tool/forensic-blood-test-simulator/i18n/pt.ts +220 -0
  91. package/src/tool/forensic-blood-test-simulator/i18n/ru.ts +220 -0
  92. package/src/tool/forensic-blood-test-simulator/i18n/sv.ts +220 -0
  93. package/src/tool/forensic-blood-test-simulator/i18n/tr.ts +220 -0
  94. package/src/tool/forensic-blood-test-simulator/i18n/zh.ts +220 -0
  95. package/src/tool/forensic-blood-test-simulator/index.ts +11 -0
  96. package/src/tool/forensic-blood-test-simulator/logic.ts +174 -0
  97. package/src/tool/forensic-blood-test-simulator/script.ts +192 -0
  98. package/src/tool/forensic-blood-test-simulator/seo.astro +15 -0
  99. package/src/tool/forensic-fiber-comparison-microscope/bibliography.astro +6 -0
  100. package/src/tool/forensic-fiber-comparison-microscope/bibliography.ts +16 -0
  101. package/src/tool/forensic-fiber-comparison-microscope/component.astro +146 -0
  102. package/src/tool/forensic-fiber-comparison-microscope/entry.ts +32 -0
  103. package/src/tool/forensic-fiber-comparison-microscope/forensic-fiber-comparison-microscope.css +629 -0
  104. package/src/tool/forensic-fiber-comparison-microscope/i18n/de.ts +250 -0
  105. package/src/tool/forensic-fiber-comparison-microscope/i18n/en.ts +246 -0
  106. package/src/tool/forensic-fiber-comparison-microscope/i18n/es.ts +246 -0
  107. package/src/tool/forensic-fiber-comparison-microscope/i18n/fr.ts +246 -0
  108. package/src/tool/forensic-fiber-comparison-microscope/i18n/id.ts +250 -0
  109. package/src/tool/forensic-fiber-comparison-microscope/i18n/it.ts +246 -0
  110. package/src/tool/forensic-fiber-comparison-microscope/i18n/ja.ts +250 -0
  111. package/src/tool/forensic-fiber-comparison-microscope/i18n/ko.ts +246 -0
  112. package/src/tool/forensic-fiber-comparison-microscope/i18n/nl.ts +246 -0
  113. package/src/tool/forensic-fiber-comparison-microscope/i18n/pl.ts +250 -0
  114. package/src/tool/forensic-fiber-comparison-microscope/i18n/pt.ts +250 -0
  115. package/src/tool/forensic-fiber-comparison-microscope/i18n/ru.ts +250 -0
  116. package/src/tool/forensic-fiber-comparison-microscope/i18n/sv.ts +250 -0
  117. package/src/tool/forensic-fiber-comparison-microscope/i18n/tr.ts +246 -0
  118. package/src/tool/forensic-fiber-comparison-microscope/i18n/zh.ts +250 -0
  119. package/src/tool/forensic-fiber-comparison-microscope/index.ts +11 -0
  120. package/src/tool/forensic-fiber-comparison-microscope/logic.ts +244 -0
  121. package/src/tool/forensic-fiber-comparison-microscope/render.ts +265 -0
  122. package/src/tool/forensic-fiber-comparison-microscope/seo.astro +15 -0
  123. package/src/tool/forensic-fiber-comparison-microscope/view.ts +267 -0
  124. package/src/tool/forensic-glass-becke-line-simulator/bibliography.astro +6 -0
  125. package/src/tool/forensic-glass-becke-line-simulator/bibliography.ts +16 -0
  126. package/src/tool/forensic-glass-becke-line-simulator/component.astro +81 -0
  127. package/src/tool/forensic-glass-becke-line-simulator/entry.ts +32 -0
  128. package/src/tool/forensic-glass-becke-line-simulator/forensic-glass-becke-line-simulator.css +392 -0
  129. package/src/tool/forensic-glass-becke-line-simulator/i18n/de.ts +231 -0
  130. package/src/tool/forensic-glass-becke-line-simulator/i18n/en.ts +231 -0
  131. package/src/tool/forensic-glass-becke-line-simulator/i18n/es.ts +231 -0
  132. package/src/tool/forensic-glass-becke-line-simulator/i18n/fr.ts +231 -0
  133. package/src/tool/forensic-glass-becke-line-simulator/i18n/id.ts +231 -0
  134. package/src/tool/forensic-glass-becke-line-simulator/i18n/it.ts +231 -0
  135. package/src/tool/forensic-glass-becke-line-simulator/i18n/ja.ts +231 -0
  136. package/src/tool/forensic-glass-becke-line-simulator/i18n/ko.ts +231 -0
  137. package/src/tool/forensic-glass-becke-line-simulator/i18n/nl.ts +231 -0
  138. package/src/tool/forensic-glass-becke-line-simulator/i18n/pl.ts +231 -0
  139. package/src/tool/forensic-glass-becke-line-simulator/i18n/pt.ts +231 -0
  140. package/src/tool/forensic-glass-becke-line-simulator/i18n/ru.ts +231 -0
  141. package/src/tool/forensic-glass-becke-line-simulator/i18n/sv.ts +231 -0
  142. package/src/tool/forensic-glass-becke-line-simulator/i18n/tr.ts +231 -0
  143. package/src/tool/forensic-glass-becke-line-simulator/i18n/zh.ts +231 -0
  144. package/src/tool/forensic-glass-becke-line-simulator/index.ts +11 -0
  145. package/src/tool/forensic-glass-becke-line-simulator/logic.ts +100 -0
  146. package/src/tool/forensic-glass-becke-line-simulator/seo.astro +15 -0
  147. package/src/tool/forensic-glass-becke-line-simulator/view.ts +281 -0
  148. package/src/tool/forensic-image-authenticity-analyzer/bibliography.astro +9 -0
  149. package/src/tool/forensic-image-authenticity-analyzer/bibliography.ts +7 -0
  150. package/src/tool/forensic-image-authenticity-analyzer/component.astro +250 -0
  151. package/src/tool/forensic-image-authenticity-analyzer/entry.ts +29 -0
  152. package/src/tool/forensic-image-authenticity-analyzer/forensic-image-metadata-authenticity-analyzer.css +679 -0
  153. package/src/tool/forensic-image-authenticity-analyzer/i18n/de.ts +105 -0
  154. package/src/tool/forensic-image-authenticity-analyzer/i18n/en.ts +105 -0
  155. package/src/tool/forensic-image-authenticity-analyzer/i18n/es.ts +105 -0
  156. package/src/tool/forensic-image-authenticity-analyzer/i18n/fr.ts +105 -0
  157. package/src/tool/forensic-image-authenticity-analyzer/i18n/id.ts +76 -0
  158. package/src/tool/forensic-image-authenticity-analyzer/i18n/it.ts +105 -0
  159. package/src/tool/forensic-image-authenticity-analyzer/i18n/ja.ts +72 -0
  160. package/src/tool/forensic-image-authenticity-analyzer/i18n/ko.ts +72 -0
  161. package/src/tool/forensic-image-authenticity-analyzer/i18n/nl.ts +75 -0
  162. package/src/tool/forensic-image-authenticity-analyzer/i18n/pl.ts +75 -0
  163. package/src/tool/forensic-image-authenticity-analyzer/i18n/pt.ts +105 -0
  164. package/src/tool/forensic-image-authenticity-analyzer/i18n/ru.ts +75 -0
  165. package/src/tool/forensic-image-authenticity-analyzer/i18n/sv.ts +76 -0
  166. package/src/tool/forensic-image-authenticity-analyzer/i18n/tr.ts +76 -0
  167. package/src/tool/forensic-image-authenticity-analyzer/i18n/zh.ts +71 -0
  168. package/src/tool/forensic-image-authenticity-analyzer/index.ts +11 -0
  169. package/src/tool/forensic-image-authenticity-analyzer/logic.ts +283 -0
  170. package/src/tool/forensic-image-authenticity-analyzer/seo.astro +10 -0
  171. package/src/tool/forensic-microcrystal-drug-simulator/bibliography.astro +6 -0
  172. package/src/tool/forensic-microcrystal-drug-simulator/bibliography.ts +12 -0
  173. package/src/tool/forensic-microcrystal-drug-simulator/component.astro +240 -0
  174. package/src/tool/forensic-microcrystal-drug-simulator/entry.ts +32 -0
  175. package/src/tool/forensic-microcrystal-drug-simulator/forensic-microcrystal-drug-simulator.css +430 -0
  176. package/src/tool/forensic-microcrystal-drug-simulator/i18n/de.ts +244 -0
  177. package/src/tool/forensic-microcrystal-drug-simulator/i18n/en.ts +244 -0
  178. package/src/tool/forensic-microcrystal-drug-simulator/i18n/es.ts +244 -0
  179. package/src/tool/forensic-microcrystal-drug-simulator/i18n/fr.ts +244 -0
  180. package/src/tool/forensic-microcrystal-drug-simulator/i18n/id.ts +244 -0
  181. package/src/tool/forensic-microcrystal-drug-simulator/i18n/it.ts +244 -0
  182. package/src/tool/forensic-microcrystal-drug-simulator/i18n/ja.ts +244 -0
  183. package/src/tool/forensic-microcrystal-drug-simulator/i18n/ko.ts +244 -0
  184. package/src/tool/forensic-microcrystal-drug-simulator/i18n/nl.ts +244 -0
  185. package/src/tool/forensic-microcrystal-drug-simulator/i18n/pl.ts +244 -0
  186. package/src/tool/forensic-microcrystal-drug-simulator/i18n/pt.ts +244 -0
  187. package/src/tool/forensic-microcrystal-drug-simulator/i18n/ru.ts +244 -0
  188. package/src/tool/forensic-microcrystal-drug-simulator/i18n/sv.ts +244 -0
  189. package/src/tool/forensic-microcrystal-drug-simulator/i18n/tr.ts +244 -0
  190. package/src/tool/forensic-microcrystal-drug-simulator/i18n/zh.ts +244 -0
  191. package/src/tool/forensic-microcrystal-drug-simulator/index.ts +11 -0
  192. package/src/tool/forensic-microcrystal-drug-simulator/logic.ts +189 -0
  193. package/src/tool/forensic-microcrystal-drug-simulator/seo.astro +15 -0
  194. package/src/tool/forensic-sex-determinator/bibliography.astro +14 -0
  195. package/src/tool/forensic-sex-determinator/bibliography.ts +12 -0
  196. package/src/tool/forensic-sex-determinator/component.astro +463 -0
  197. package/src/tool/forensic-sex-determinator/entry.ts +32 -0
  198. package/src/tool/forensic-sex-determinator/forensic-sex-determinator.css +413 -0
  199. package/src/tool/forensic-sex-determinator/i18n/de.ts +211 -0
  200. package/src/tool/forensic-sex-determinator/i18n/en.ts +211 -0
  201. package/src/tool/forensic-sex-determinator/i18n/es.ts +211 -0
  202. package/src/tool/forensic-sex-determinator/i18n/fr.ts +211 -0
  203. package/src/tool/forensic-sex-determinator/i18n/id.ts +211 -0
  204. package/src/tool/forensic-sex-determinator/i18n/it.ts +211 -0
  205. package/src/tool/forensic-sex-determinator/i18n/ja.ts +211 -0
  206. package/src/tool/forensic-sex-determinator/i18n/ko.ts +211 -0
  207. package/src/tool/forensic-sex-determinator/i18n/nl.ts +211 -0
  208. package/src/tool/forensic-sex-determinator/i18n/pl.ts +211 -0
  209. package/src/tool/forensic-sex-determinator/i18n/pt.ts +211 -0
  210. package/src/tool/forensic-sex-determinator/i18n/ru.ts +211 -0
  211. package/src/tool/forensic-sex-determinator/i18n/sv.ts +211 -0
  212. package/src/tool/forensic-sex-determinator/i18n/tr.ts +211 -0
  213. package/src/tool/forensic-sex-determinator/i18n/zh.ts +211 -0
  214. package/src/tool/forensic-sex-determinator/index.ts +11 -0
  215. package/src/tool/forensic-sex-determinator/logic.ts +89 -0
  216. package/src/tool/forensic-sex-determinator/seo.astro +15 -0
  217. package/src/tool/forensic-stature-estimator/bibliography.astro +14 -0
  218. package/src/tool/forensic-stature-estimator/bibliography.ts +12 -0
  219. package/src/tool/forensic-stature-estimator/component.astro +49 -0
  220. package/src/tool/forensic-stature-estimator/components/EstimationPanel.astro +65 -0
  221. package/src/tool/forensic-stature-estimator/components/OsteometricBoard.astro +39 -0
  222. package/src/tool/forensic-stature-estimator/components/OsteometricSelector.astro +109 -0
  223. package/src/tool/forensic-stature-estimator/dom-utils.ts +71 -0
  224. package/src/tool/forensic-stature-estimator/entry.ts +32 -0
  225. package/src/tool/forensic-stature-estimator/forensic-stature-estimator.css +689 -0
  226. package/src/tool/forensic-stature-estimator/helpers.ts +51 -0
  227. package/src/tool/forensic-stature-estimator/i18n/de.ts +196 -0
  228. package/src/tool/forensic-stature-estimator/i18n/en.ts +196 -0
  229. package/src/tool/forensic-stature-estimator/i18n/es.ts +196 -0
  230. package/src/tool/forensic-stature-estimator/i18n/fr.ts +196 -0
  231. package/src/tool/forensic-stature-estimator/i18n/id.ts +196 -0
  232. package/src/tool/forensic-stature-estimator/i18n/it.ts +196 -0
  233. package/src/tool/forensic-stature-estimator/i18n/ja.ts +196 -0
  234. package/src/tool/forensic-stature-estimator/i18n/ko.ts +196 -0
  235. package/src/tool/forensic-stature-estimator/i18n/nl.ts +196 -0
  236. package/src/tool/forensic-stature-estimator/i18n/pl.ts +196 -0
  237. package/src/tool/forensic-stature-estimator/i18n/pt.ts +196 -0
  238. package/src/tool/forensic-stature-estimator/i18n/ru.ts +196 -0
  239. package/src/tool/forensic-stature-estimator/i18n/sv.ts +196 -0
  240. package/src/tool/forensic-stature-estimator/i18n/tr.ts +196 -0
  241. package/src/tool/forensic-stature-estimator/i18n/zh.ts +196 -0
  242. package/src/tool/forensic-stature-estimator/index.ts +11 -0
  243. package/src/tool/forensic-stature-estimator/logic.ts +119 -0
  244. package/src/tool/forensic-stature-estimator/script.ts +288 -0
  245. package/src/tool/forensic-stature-estimator/seo.astro +15 -0
  246. package/src/tool/forensic-tlc-ink-simulator/bibliography.astro +6 -0
  247. package/src/tool/forensic-tlc-ink-simulator/bibliography.ts +16 -0
  248. package/src/tool/forensic-tlc-ink-simulator/component.astro +245 -0
  249. package/src/tool/forensic-tlc-ink-simulator/entry.ts +32 -0
  250. package/src/tool/forensic-tlc-ink-simulator/forensic-tlc-ink-simulator.css +462 -0
  251. package/src/tool/forensic-tlc-ink-simulator/i18n/de.ts +243 -0
  252. package/src/tool/forensic-tlc-ink-simulator/i18n/en.ts +243 -0
  253. package/src/tool/forensic-tlc-ink-simulator/i18n/es.ts +243 -0
  254. package/src/tool/forensic-tlc-ink-simulator/i18n/fr.ts +243 -0
  255. package/src/tool/forensic-tlc-ink-simulator/i18n/id.ts +243 -0
  256. package/src/tool/forensic-tlc-ink-simulator/i18n/it.ts +243 -0
  257. package/src/tool/forensic-tlc-ink-simulator/i18n/ja.ts +235 -0
  258. package/src/tool/forensic-tlc-ink-simulator/i18n/ko.ts +235 -0
  259. package/src/tool/forensic-tlc-ink-simulator/i18n/nl.ts +243 -0
  260. package/src/tool/forensic-tlc-ink-simulator/i18n/pl.ts +243 -0
  261. package/src/tool/forensic-tlc-ink-simulator/i18n/pt.ts +243 -0
  262. package/src/tool/forensic-tlc-ink-simulator/i18n/ru.ts +243 -0
  263. package/src/tool/forensic-tlc-ink-simulator/i18n/sv.ts +243 -0
  264. package/src/tool/forensic-tlc-ink-simulator/i18n/tr.ts +243 -0
  265. package/src/tool/forensic-tlc-ink-simulator/i18n/zh.ts +235 -0
  266. package/src/tool/forensic-tlc-ink-simulator/index.ts +11 -0
  267. package/src/tool/forensic-tlc-ink-simulator/logic.ts +152 -0
  268. package/src/tool/forensic-tlc-ink-simulator/seo.astro +15 -0
  269. package/src/tool/gsr-dispersion-calculator/bibliography.astro +6 -0
  270. package/src/tool/gsr-dispersion-calculator/bibliography.ts +16 -0
  271. package/src/tool/gsr-dispersion-calculator/component.astro +294 -0
  272. package/src/tool/gsr-dispersion-calculator/entry.ts +32 -0
  273. package/src/tool/gsr-dispersion-calculator/gsr-dispersion-calculator.css +305 -0
  274. package/src/tool/gsr-dispersion-calculator/i18n/de.ts +272 -0
  275. package/src/tool/gsr-dispersion-calculator/i18n/en.ts +272 -0
  276. package/src/tool/gsr-dispersion-calculator/i18n/es.ts +272 -0
  277. package/src/tool/gsr-dispersion-calculator/i18n/fr.ts +272 -0
  278. package/src/tool/gsr-dispersion-calculator/i18n/id.ts +272 -0
  279. package/src/tool/gsr-dispersion-calculator/i18n/it.ts +272 -0
  280. package/src/tool/gsr-dispersion-calculator/i18n/ja.ts +272 -0
  281. package/src/tool/gsr-dispersion-calculator/i18n/ko.ts +272 -0
  282. package/src/tool/gsr-dispersion-calculator/i18n/nl.ts +272 -0
  283. package/src/tool/gsr-dispersion-calculator/i18n/pl.ts +272 -0
  284. package/src/tool/gsr-dispersion-calculator/i18n/pt.ts +272 -0
  285. package/src/tool/gsr-dispersion-calculator/i18n/ru.ts +272 -0
  286. package/src/tool/gsr-dispersion-calculator/i18n/sv.ts +272 -0
  287. package/src/tool/gsr-dispersion-calculator/i18n/tr.ts +272 -0
  288. package/src/tool/gsr-dispersion-calculator/i18n/zh.ts +272 -0
  289. package/src/tool/gsr-dispersion-calculator/index.ts +11 -0
  290. package/src/tool/gsr-dispersion-calculator/logic.ts +148 -0
  291. package/src/tool/gsr-dispersion-calculator/seo.astro +15 -0
  292. package/src/tool/widmark-alcohol-simulator/bibliography.astro +14 -0
  293. package/src/tool/widmark-alcohol-simulator/bibliography.ts +12 -0
  294. package/src/tool/widmark-alcohol-simulator/component.astro +453 -0
  295. package/src/tool/widmark-alcohol-simulator/entry.ts +32 -0
  296. package/src/tool/widmark-alcohol-simulator/i18n/de.ts +193 -0
  297. package/src/tool/widmark-alcohol-simulator/i18n/en.ts +206 -0
  298. package/src/tool/widmark-alcohol-simulator/i18n/es.ts +193 -0
  299. package/src/tool/widmark-alcohol-simulator/i18n/fr.ts +193 -0
  300. package/src/tool/widmark-alcohol-simulator/i18n/id.ts +193 -0
  301. package/src/tool/widmark-alcohol-simulator/i18n/it.ts +193 -0
  302. package/src/tool/widmark-alcohol-simulator/i18n/ja.ts +193 -0
  303. package/src/tool/widmark-alcohol-simulator/i18n/ko.ts +193 -0
  304. package/src/tool/widmark-alcohol-simulator/i18n/nl.ts +193 -0
  305. package/src/tool/widmark-alcohol-simulator/i18n/pl.ts +193 -0
  306. package/src/tool/widmark-alcohol-simulator/i18n/pt.ts +193 -0
  307. package/src/tool/widmark-alcohol-simulator/i18n/ru.ts +193 -0
  308. package/src/tool/widmark-alcohol-simulator/i18n/sv.ts +193 -0
  309. package/src/tool/widmark-alcohol-simulator/i18n/tr.ts +193 -0
  310. package/src/tool/widmark-alcohol-simulator/i18n/zh.ts +193 -0
  311. package/src/tool/widmark-alcohol-simulator/index.ts +11 -0
  312. package/src/tool/widmark-alcohol-simulator/logic.ts +97 -0
  313. package/src/tool/widmark-alcohol-simulator/seo.astro +15 -0
  314. package/src/tool/widmark-alcohol-simulator/widmark-alcohol-simulator.css +386 -0
  315. package/src/tools.ts +27 -0
  316. package/src/types.ts +70 -0
@@ -0,0 +1,245 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'estimador-idade-dentaria-esqueletica-terceiro-molar';
5
+ const title = 'Estimador de Idade Dentária, Esquelética e Terceiro Molar';
6
+ const description = 'Estime um intervalo de idade forense com base no desenvolvimento dentário, maturidade esquelética e indicadores do terceiro molar para triagem e classificação de casos.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Selecione a ênfase da evidência',
11
+ text: 'Escolha "Evidência mista" para triagem equilibrada, "Prioridade dentária" se os achados dentários forem mais robustos, ou "Prioridade esquelética" se os indicadores radiográficos ósseos forem a fonte principal.',
12
+ },
13
+ {
14
+ name: 'Pontue cada indicador de maturidade',
15
+ text: 'Atribua um estágio de 0 a 8 a cada indicador. Estágios inferiores refletem desenvolvimento inicial, estágios intermédios a maturação adolescente e estágios superiores achados maduros ou quase maduros.',
16
+ },
17
+ {
18
+ name: 'Interprete o intervalo, não apenas a idade central',
19
+ text: 'Considere os valores mínimo, provável e máximo em conjunto. A avaliação forense da idade deve ser sempre expressa como um intervalo, dada a variabilidade do desenvolvimento biológico individual.',
20
+ },
21
+ {
22
+ name: 'Verifique a discordância entre indicadores',
23
+ text: 'Se os estágios dentário, esquelético e do terceiro molar apontarem para faixas etárias divergentes, trate o resultado como exploratório e reúna evidências complementares antes de concluir.',
24
+ },
25
+ ];
26
+
27
+ const faq = [
28
+ {
29
+ question: 'Este estimador de idade forense pode determinar a maioridade legal?',
30
+ answer: 'Não. É uma ferramenta de triagem para fins educativos e de triagem. A determinação legal da idade exige protocolos locais validados, peritos qualificados, documentação de identidade rigorosa e conformidade com os padrões da jurisdição local.',
31
+ },
32
+ {
33
+ question: 'Por que o resultado mostra um intervalo de idade?',
34
+ answer: 'A erupção dentária, a fusão esquelética e o desenvolvimento do terceiro molar variam conforme a ascendência, nutrição, estado de saúde, sexo, população de referência e método de imagem. Um intervalo é uma representação mais precisa e transparente do que uma estimativa pontual.',
35
+ },
36
+ {
37
+ question: 'O que significa evidência mista?',
38
+ answer: 'A evidência mista pondera o desenvolvimento dentário, a maturidade esquelética e o estágio do terceiro molar. Utilize este modo quando nenhum indicador isolado for claramente mais fiável para o processo.',
39
+ },
40
+ {
41
+ question: 'Os terceiros molares são fiáveis em todos os casos?',
42
+ answer: 'São úteis na adolescência tardia e na idade adulta jovem, mas apresentam elevada variabilidade. Agenesias, patologias, diferenças populacionais e a qualidade radiográfica podem limitar o seu valor forense.',
43
+ },
44
+ {
45
+ question: 'Deve ser usado em casos reais?',
46
+ answer: 'Apenas como auxílio preliminar. Em casos reais, devem ser usados métodos validados, dados de referência calibrados, revisão independente e um relato transparente de todas as incertezas e limitações.',
47
+ },
48
+ ];
49
+
50
+ export const content: ToolLocaleContent = {
51
+ slug,
52
+ title,
53
+ description,
54
+ ui: {
55
+ caseBoard: 'Painel de caso forense',
56
+ controls: 'Controlos de idade forense',
57
+ results: 'Resultados de idade forense',
58
+ maturityProfile: 'Perfil dinâmico de maturidade',
59
+ screeningOnly: 'Estimativa de triagem',
60
+ evidenceType: 'Ênfase da evidência',
61
+ mixedEvidence: 'Evidência mista',
62
+ dentalPriority: 'Prioridade dentária',
63
+ skeletalPriority: 'Prioridade esquelética',
64
+ dentalStage: 'Estágio de desenvolvimento dentário',
65
+ epiphysealStage: 'Estágio de fusão epifisária',
66
+ thirdMolarStage: 'Estágio do terceiro molar',
67
+ minimumAge: 'Mínimo',
68
+ likelyAge: 'Provável',
69
+ maximumAge: 'Máximo',
70
+ maturityScore: 'Pontuação de maturidade',
71
+ stageLabel: 'Estágio',
72
+ ageUnit: 'anos',
73
+ dentalShort: 'Dentário',
74
+ boneShort: 'Osso',
75
+ molarShort: 'Molar',
76
+ dentalStageHelp: 'Formação da coroa, raiz e ápice.',
77
+ epiphysealStageHelp: 'Fecho da placa de crescimento e fusão esquelética.',
78
+ molarStageHelp: 'Mineralização do terceiro molar e fecho do ápice.',
79
+ dentalStage0: 'Ausente',
80
+ dentalStage1: 'Cúspide',
81
+ dentalStage2: 'Coroa',
82
+ dentalStage3: 'Início raiz',
83
+ dentalStage4: 'Raiz metade',
84
+ dentalStage5: 'Raiz longa',
85
+ dentalStage6: 'Ápice estreito',
86
+ dentalStage7: 'Ápice a fechar',
87
+ dentalStage8: 'Completa',
88
+ epiphysealStage0: 'Aberta',
89
+ epiphysealStage1: 'Borda',
90
+ epiphysealStage2: 'Estreitamento',
91
+ epiphysealStage3: 'Ponte',
92
+ epiphysealStage4: 'Metade fundida',
93
+ epiphysealStage5: 'Quase fundida',
94
+ epiphysealStage6: 'Apenas linha',
95
+ epiphysealStage7: 'Quase fechada',
96
+ epiphysealStage8: 'Fechada',
97
+ molarStage0: 'Ausente',
98
+ molarStage1: 'Cúspide',
99
+ molarStage2: 'Início coroa',
100
+ molarStage3: 'Coroa completa',
101
+ molarStage4: 'Início raiz',
102
+ molarStage5: 'Raiz metade',
103
+ molarStage6: 'Raiz longa',
104
+ molarStage7: 'Ápice a fechar',
105
+ molarStage8: 'Completa',
106
+ confidenceexploratory: 'Exploratório',
107
+ confidencemoderate: 'Moderado',
108
+ confidencestrong: 'Forte',
109
+ noteTriage: 'Utilize como estimativa de triagem, não como determinação legal de idade.',
110
+ noteFinalAssessment: 'A avaliação forense final deve integrar radiologia, exame clínico, história documentada e padrões jurisdicionais específicos.',
111
+ noteWideInterval: 'Os indicadores divergem mais de quatro anos; o intervalo foi alargado.',
112
+ },
113
+ seo: [
114
+ {
115
+ type: 'title',
116
+ text: 'Estimador de idade forense: calculadora de triagem dentária, esquelética e terceiro molar',
117
+ level: 2,
118
+ },
119
+ {
120
+ type: 'paragraph',
121
+ html: 'Utilize este estimador para organizar de forma transparente as evidências de maturidade biológica antes de uma avaliação formal. O conjunto combina o desenvolvimento dentário, a fusão epifisária e o estágio do terceiro molar num intervalo estimado. Este guia responde a pesquisas como <strong>calculadora de estimativa de idade forense</strong>, <strong>avaliação de idade dentária</strong> e <strong>estimativa de maturidade esquelética</strong>, explicando a interpretação dos indicadores e a incerteza associada.',
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: 'Os resultados são apresentados como <strong>idade mínima, provável e máxima</strong>. Estimativas pontuais únicas são frequentemente enganosas devido à variação biológica interindividual. Este estimador deve ser tratado como uma ferramenta de apoio estruturado, não como uma conclusão jurídica definitiva.',
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'Significado dos indicadores de maturidade',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'paragraph',
134
+ html: 'Os estágios (0-8) fornecem uma abstração prática para comparar sistemas biológicos diversos. O estágio 0 indica maturidade ausente ou muito precoce; o estágio 8 indica maturação completa. Estes estágios facilitam a comparação cruzada sem estarem confinados a um único método clínico.',
135
+ },
136
+ {
137
+ type: 'table',
138
+ headers: ['Indicador', 'Descrição', 'Contexto', 'Precaução'],
139
+ rows: [
140
+ ['Desenvolvimento dentário', 'Formação e erupção (exceto terceiros molares).', 'Métrica primária para crianças e adolescentes.', 'Biais possíveis por doença dentária ou diferenças populacionais.'],
141
+ ['Fusão epifisária', 'Fecho progressivo das placas de crescimento.', 'Indicador chave para adolescência tardia e idade adulta jovem.', 'Altamente dependente do osso observado, sexo e estado endócrino.'],
142
+ ['Estágio do terceiro molar', 'Formação e maturação dos dentes do siso.', 'Crítico para avaliação em adolescentes e adultos jovens.', 'Elevada variabilidade; requer análise de agenesia e impactação.'],
143
+ ],
144
+ },
145
+ {
146
+ type: 'title',
147
+ text: 'Interpretação do intervalo de idade',
148
+ level: 3,
149
+ },
150
+ {
151
+ type: 'paragraph',
152
+ html: 'Analise os três valores em conjunto. A <strong>idade provável</strong> representa a estimativa central ponderada. Os valores <strong>mínimo</strong> e <strong>máximo</strong> definem a banda de incerteza prática. A convergência dos indicadores estreita esta banda; sinais contraditórios alargam-na e reduzem o índice de confiança.',
153
+ },
154
+ {
155
+ type: 'table',
156
+ headers: ['Padrão', 'Sugestão', 'Ação'],
157
+ rows: [
158
+ ['Intervalo estreito / Confiança forte', 'Indicadores alinhados.', 'Documente achados e verifique se é necessária validação formal.'],
159
+ ['Intervalo moderado', 'Discordância ou influência da ponderação.', 'Verifique qualidade de imagem e atribuição de estágios.'],
160
+ ['Intervalo exploratório amplo', 'Indicadores em conflito.', 'Não conclua com base apenas no estimador; procure registos adicionais ou revisão de especialista.'],
161
+ ],
162
+ },
163
+ {
164
+ type: 'title',
165
+ text: 'Escolha do modo de evidência',
166
+ level: 3,
167
+ },
168
+ {
169
+ type: 'paragraph',
170
+ html: '<strong>Evidência mista</strong> é o padrão, equilibrando todos os indicadores. Escolha <strong>prioridade dentária</strong> para dossiers dentários excecionalmente robustos. Escolha <strong>prioridade esquelética</strong> quando a evidência radiográfica óssea for o dado mais abrangente. Estes modos não aumentam a qualidade de evidências fracas, apenas ajustam a ponderação matemática.',
171
+ },
172
+ {
173
+ type: 'list',
174
+ items: [
175
+ '<strong>Prioridade dentária:</strong> quando o desenvolvimento dentário está claramente estadiado e há evidência do terceiro molar.',
176
+ '<strong>Prioridade esquelética:</strong> quando a fusão epifisária é o sinal melhor documentado.',
177
+ '<strong>Evidência mista:</strong> ideal para triagem inicial equilibrada.',
178
+ '<strong>Índice de confiança:</strong> monitore para detetar discrepâncias antes de sobreinterpretar.',
179
+ ],
180
+ },
181
+ {
182
+ type: 'title',
183
+ text: 'Limitações forenses',
184
+ level: 3,
185
+ },
186
+ {
187
+ type: 'paragraph',
188
+ html: 'A estimativa da idade é um suporte, nunca prova de identidade. Em contextos de proteção, direito penal ou identificação de vítimas, a avaliação deve ser multidisciplinar. Relatórios responsáveis devem detalhar a metodologia, população de referência, qualificações do observador e limitações identificadas.',
189
+ },
190
+ {
191
+ type: 'paragraph',
192
+ html: 'Esta ferramenta serve para <strong>educação, triagem e comunicação transparente</strong>. Reforçamos que conclusões sobre a idade exigem prudência e que limiares críticos (como a maioridade) nunca devem basear-se exclusivamente numa calculadora simplificada.',
193
+ },
194
+ {
195
+ type: 'title',
196
+ text: 'Lista de verificação para relatórios',
197
+ level: 3,
198
+ },
199
+ {
200
+ type: 'list',
201
+ items: [
202
+ '<strong>Fonte da evidência:</strong> Documente explicitamente se os estágios provêm de exames dentários, radiografias panorâmicas ou imagem esquelética (ex: mão-punho, clavícula).',
203
+ '<strong>Dados em falta/fracos:</strong> Documente ausências, má qualidade de imagem ou anomalias.',
204
+ '<strong>Validação metodológica:</strong> Garanta que os métodos escolhidos são reconhecidos na jurisdição local.',
205
+ '<strong>Comunicação da incerteza:</strong> Expresse sempre um intervalo; evite linguagem que sugira uma idade cronológica exata.',
206
+ '<strong>Revisão de especialista:</strong> Casos de alto risco devem ser validados por odontologistas forenses, radiologistas ou antropólogos.',
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
+ };
@@ -0,0 +1,245 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ const slug = 'ocenka-vozrasta-po-zubam-skeletu-i-tretemu-molyaru';
5
+ const title = 'Оценка возраста по зубам, скелету и третьему моляру';
6
+ const description = 'Оцените судебно-медицинский возрастной интервал на основе развития зубов, зрелости скелета и показателей третьего моляра для скрининга и триажа случаев.';
7
+
8
+ const howTo = [
9
+ {
10
+ name: 'Выберите акцент на доказательствах',
11
+ text: 'Выберите "Смешанные доказательства" для сбалансированного триажа, "Стоматологический приоритет", если стоматологические данные более убедительны, или "Скелетный приоритет", если рентгенологические показатели скелета являются основным источником.',
12
+ },
13
+ {
14
+ name: 'Оцените каждый показатель зрелости',
15
+ text: 'Определите стадию для каждого показателя от 0 до 8. Низкие стадии соответствуют раннему развитию, средние - подростковому созреванию, высокие - зрелым или почти зрелым результатам.',
16
+ },
17
+ {
18
+ name: 'Учитывайте интервал, а не только центральный возраст',
19
+ text: 'Анализируйте значения минимального, вероятного и максимального возраста совместно. Судебно-медицинская оценка возраста должна выражаться в виде интервала из-за высокой индивидуальной вариабельности биологического развития.',
20
+ },
21
+ {
22
+ name: 'Проверьте расхождения между показателями',
23
+ text: 'Если стадии развития зубов, скелета и третьего моляра указывают на разные возрастные диапазоны, считайте результат предварительным (исследовательским) и соберите дополнительные доказательства, прежде чем делать выводы.',
24
+ },
25
+ ];
26
+
27
+ const faq = [
28
+ {
29
+ question: 'Может ли этот инструмент определить юридическое совершеннолетие?',
30
+ answer: 'Нет. Это скрининговый калькулятор для образовательных целей и триажа. Юридическое определение возраста требует применения валидированных протоколов, заключения квалифицированных экспертов, официального подтверждения личности и соблюдения стандартов конкретной юрисдикции.',
31
+ },
32
+ {
33
+ question: 'Почему результат представлен в виде интервала?',
34
+ answer: 'Сроки прорезывания зубов, сращения скелета и развития третьего моляра варьируются в зависимости от этнической принадлежности, питания, здоровья, пола, референтной популяции и методов визуализации. Представление в виде интервала более точно и научно корректно, чем указание одного точного возраста.',
35
+ },
36
+ {
37
+ question: 'Что означает "Смешанные доказательства"?',
38
+ answer: 'Режим "Смешанные доказательства" сбалансированно учитывает развитие зубов, зрелость скелета и стадию третьего моляра. Используйте его, когда ни один отдельный показатель не является явно более надежным в конкретном случае.',
39
+ },
40
+ {
41
+ question: 'Надежны ли третьи моляры в каждом случае?',
42
+ answer: 'Третьи моляры полезны для оценки возраста в позднем подростковом и раннем взрослом периоде, но они очень вариабельны. Адентия, патологии, популяционные различия и качество рентгенограмм могут ограничивать их диагностическую ценность.',
43
+ },
44
+ {
45
+ question: 'Следует ли использовать этот инструмент в реальной судебно-медицинской практике?',
46
+ answer: 'Только в качестве предварительного вспомогательного средства. В реальных случаях следует использовать валидированные методы, калиброванные референтные данные, независимую экспертную оценку и прозрачное описание всех неопределенностей и ограничений.',
47
+ },
48
+ ];
49
+
50
+ export const content: ToolLocaleContent = {
51
+ slug,
52
+ title,
53
+ description,
54
+ ui: {
55
+ caseBoard: 'Судебно-медицинская панель дела',
56
+ controls: 'Параметры оценки возраста',
57
+ results: 'Результаты оценки возраста',
58
+ maturityProfile: 'Динамический профиль зрелости',
59
+ screeningOnly: 'Скрининговая оценка',
60
+ evidenceType: 'Акцент на доказательствах',
61
+ mixedEvidence: 'Смешанные доказательства',
62
+ dentalPriority: 'Стоматологический приоритет',
63
+ skeletalPriority: 'Скелетный приоритет',
64
+ dentalStage: 'Стадия развития зубов',
65
+ epiphysealStage: 'Стадия сращения эпифизов',
66
+ thirdMolarStage: 'Стадия третьего моляра',
67
+ minimumAge: 'Минимум',
68
+ likelyAge: 'Вероятный',
69
+ maximumAge: 'Максимум',
70
+ maturityScore: 'Оценка зрелости',
71
+ stageLabel: 'Стадия',
72
+ ageUnit: 'лет',
73
+ dentalShort: 'Зубы',
74
+ boneShort: 'Скелет',
75
+ molarShort: 'Моляр',
76
+ dentalStageHelp: 'Формирование коронки, корня и верхушки.',
77
+ epiphysealStageHelp: 'Закрытие зон роста и скелетное сращение.',
78
+ molarStageHelp: 'Минерализация третьего моляра и закрытие верхушки.',
79
+ dentalStage0: 'Отсутствует',
80
+ dentalStage1: 'Бугор',
81
+ dentalStage2: 'Коронка',
82
+ dentalStage3: 'Начало корня',
83
+ dentalStage4: 'Корень наполовину',
84
+ dentalStage5: 'Корень длинный',
85
+ dentalStage6: 'Верхушка узкая',
86
+ dentalStage7: 'Верхушка закрывается',
87
+ dentalStage8: 'Завершено',
88
+ epiphysealStage0: 'Открыта',
89
+ epiphysealStage1: 'Край',
90
+ epiphysealStage2: 'Сужение',
91
+ epiphysealStage3: 'Мост',
92
+ epiphysealStage4: 'Наполовину срослась',
93
+ epiphysealStage5: 'Почти срослась',
94
+ epiphysealStage6: 'Только линия',
95
+ epiphysealStage7: 'Почти закрыта',
96
+ epiphysealStage8: 'Закрыта',
97
+ molarStage0: 'Отсутствует',
98
+ molarStage1: 'Бугор',
99
+ molarStage2: 'Начало коронки',
100
+ molarStage3: 'Коронка полная',
101
+ molarStage4: 'Начало корня',
102
+ molarStage5: 'Корень наполовину',
103
+ molarStage6: 'Корень длинный',
104
+ molarStage7: 'Верхушка закрывается',
105
+ molarStage8: 'Завершено',
106
+ confidenceexploratory: 'Исследовательский',
107
+ confidencemoderate: 'Умеренный',
108
+ confidencestrong: 'Сильный',
109
+ noteTriage: 'Используйте для предварительной оценки, а не для юридического определения возраста.',
110
+ noteFinalAssessment: 'Окончательная судебно-медицинская оценка возраста должна сочетать радиологические данные, стоматологическое обследование, анамнез и стандарты юрисдикции.',
111
+ noteWideInterval: 'Показатели расходятся более чем на четыре года, поэтому диапазон был расширен.',
112
+ },
113
+ seo: [
114
+ {
115
+ type: 'title',
116
+ text: 'Судебно-медицинский оценщик возраста: калькулятор скрининга по зубам, скелету и третьему моляру',
117
+ level: 2,
118
+ },
119
+ {
120
+ type: 'paragraph',
121
+ html: 'Используйте этот оценщик возраста, когда требуется быстрый и прозрачный способ систематизации данных биологической зрелости перед формальной экспертизой. Калькулятор объединяет показатели развития зубов, сращения эпифизов и стадии третьего моляра в оценочный возрастной диапазон. Инструмент предназначен для ответов на запросы типа <strong>судебно-медицинский расчет возраста</strong>, <strong>стоматологическая оценка возраста</strong> и <strong>оценка возраста по зрелости скелета</strong>, помогая пользователям понять значение показателей, их комбинацию и уровень неопределенности.',
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: 'Результат намеренно представлен как <strong>минимальный, вероятный и максимальный возраст</strong>. Точечная оценка возраста часто вводит в заблуждение из-за индивидуальных вариаций темпов развития. Относитесь к этому калькулятору как к вспомогательному инструменту скрининга, а не как к окончательному юридическому заключению.',
126
+ },
127
+ {
128
+ type: 'title',
129
+ text: 'Понимание показателей зрелости',
130
+ level: 3,
131
+ },
132
+ {
133
+ type: 'paragraph',
134
+ html: 'Шкала стадий (0-8) позволяет абстрагироваться от частных методик для кросс-системного сравнения. Стадия 0 свидетельствует об отсутствии признаков зрелости, стадия 8 - о завершении процесса. Это обеспечивает удобный инструмент для сравнения данных зубочелюстной и костной систем в рамках одной оценки.',
135
+ },
136
+ {
137
+ type: 'table',
138
+ headers: ['Показатель', 'Описание', 'Контекст применения', 'Примечание'],
139
+ rows: [
140
+ ['Развитие зубов', 'Формирование и прорезывание (кроме третьих моляров).', 'Основной показатель у детей и подростков.', 'Может быть искажен болезнями зубов или различиями популяций.'],
141
+ ['Сращение эпифизов', 'Прогрессивное закрытие зон роста костей.', 'Ключевой индикатор для подростков и молодых взрослых.', 'Сильно зависит от конкретной кости, пола и эндокринного статуса.'],
142
+ ['Третий моляр', 'Формирование и созревание зубов мудрости.', 'Критически важен для оценки в позднем подростковом возрасте.', 'Высокая вариабельность; необходима проверка на адентию и ретенцию.'],
143
+ ],
144
+ },
145
+ {
146
+ type: 'title',
147
+ text: 'Интерпретация возрастного интервала',
148
+ level: 3,
149
+ },
150
+ {
151
+ type: 'paragraph',
152
+ html: 'Анализируйте три значения возраста вместе. <strong>Вероятный возраст</strong> - это взвешенная центральная оценка, основанная на выбранном приоритете доказательств. Значения <strong>минимума</strong> и <strong>максимума</strong> очерчивают диапазон неопределенности. Согласованность показателей сужает диапазон; противоречивые сигналы расширяют его и снижают уровень уверенности.',
153
+ },
154
+ {
155
+ type: 'table',
156
+ headers: ['Паттерн результата', 'Интерпретация', 'Рекомендованное действие'],
157
+ rows: [
158
+ ['Узкий интервал / Высокая уверенность', 'Показатели совпадают.', 'Задокументируйте выводы и оцените необходимость валидации формальным методом.'],
159
+ ['Умеренный интервал', 'Наблюдаются расхождения или влияние выбранных приоритетов.', 'Перепроверьте качество визуализации и точность стадирования.'],
160
+ ['Широкий исследовательский интервал', 'Показатели противоречат друг другу.', 'Не полагайтесь только на калькулятор; запросите дополнительные данные или консультацию специалиста.'],
161
+ ],
162
+ },
163
+ {
164
+ type: 'title',
165
+ text: 'Выбор режима оценки доказательств',
166
+ level: 3,
167
+ },
168
+ {
169
+ type: 'paragraph',
170
+ html: 'Режим <strong>"Смешанные доказательства"</strong> - стандартный выбор для общего скрининга, обеспечивающий баланс всех показателей. Выбирайте <strong>"Стоматологический приоритет"</strong> при исключительно качественных стоматологических данных. Выбирайте <strong>"Скелетный приоритет"</strong>, если радиологические данные костной системы наиболее полны. Эти режимы не улучшают качество слабых данных, а лишь корректируют их математическое взвешивание.',
171
+ },
172
+ {
173
+ type: 'list',
174
+ items: [
175
+ '<strong>Стоматологический приоритет:</strong> когда развитие зубов четко определено, а данные по третьему моляру доступны.',
176
+ '<strong>Скелетный приоритет:</strong> когда сращение эпифизов является наиболее документированным сигналом.',
177
+ '<strong>Смешанные доказательства:</strong> идеально для сбалансированного предварительного скрининга.',
178
+ '<strong>Метка уверенности:</strong> отслеживайте её для выявления расхождений до интерпретации.',
179
+ ],
180
+ },
181
+ {
182
+ type: 'title',
183
+ text: 'Ограничения судебно-медицинской оценки',
184
+ level: 3,
185
+ },
186
+ {
187
+ type: 'paragraph',
188
+ html: 'Оценка возраста - вспомогательный метод, а не доказательство личности. В ситуациях миграции, защиты детей, уголовного права или идентификации жертв катастроф требуется мультидисциплинарный подход. Отчеты должны подробно описывать методологию, референтную популяцию, квалификацию эксперта и ограничения исследования.',
189
+ },
190
+ {
191
+ type: 'paragraph',
192
+ html: 'Данный инструмент предназначен для <strong>образования, триажа и прозрачного взаимодействия</strong>. Важно осознавать, что заключение о возрасте требует осторожности, а критические пороги (например, 18-летие) не должны определяться исключительно с помощью упрощенного калькулятора.',
193
+ },
194
+ {
195
+ type: 'title',
196
+ text: 'Чек-лист для судебно-медицинского отчета',
197
+ level: 3,
198
+ },
199
+ {
200
+ type: 'list',
201
+ items: [
202
+ '<strong>Источник данных:</strong> Четко укажите, основаны ли стадии на клиническом осмотре, панорамной рентгенограмме или скелетной визуализации (кисть, ключица и т.д.).',
203
+ '<strong>Недостающие/слабые данные:</strong> Задокументируйте отсутствие третьих моляров, низкое качество изображений или аномалии.',
204
+ '<strong>Валидация методов:</strong> Убедитесь, что выбранные методы признаны в соответствующей юрисдикции.',
205
+ '<strong>Прозрачность неопределенности:</strong> Всегда указывайте диапазон; избегайте формулировок, подразумевающих точный хронологический возраст.',
206
+ '<strong>Экспертная оценка:</strong> Случаи с высокой ответственностью должны быть пересмотрены судебными стоматологами, радиологами или антропологами.',
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
+ };