@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.
- package/package.json +69 -0
- package/scripts/crystal-lattice-catalog-translations.mjs +459 -0
- package/scripts/postinstall.mjs +27 -0
- package/scripts/sync-crystal-lattice-i18n.mjs +50 -0
- package/src/category/i18n/de.ts +55 -0
- package/src/category/i18n/en.ts +55 -0
- package/src/category/i18n/es.ts +55 -0
- package/src/category/i18n/fr.ts +55 -0
- package/src/category/i18n/id.ts +55 -0
- package/src/category/i18n/it.ts +55 -0
- package/src/category/i18n/ja.ts +56 -0
- package/src/category/i18n/ko.ts +56 -0
- package/src/category/i18n/nl.ts +55 -0
- package/src/category/i18n/pl.ts +55 -0
- package/src/category/i18n/pt.ts +55 -0
- package/src/category/i18n/ru.ts +55 -0
- package/src/category/i18n/sv.ts +55 -0
- package/src/category/i18n/tr.ts +55 -0
- package/src/category/i18n/zh.ts +56 -0
- package/src/category/index.ts +48 -0
- package/src/category/seo.astro +15 -0
- package/src/components/PreviewNavSidebar.astro +116 -0
- package/src/components/PreviewToolbar.astro +143 -0
- package/src/data.ts +10 -0
- package/src/entries.ts +48 -0
- package/src/env.d.ts +5 -0
- package/src/index.ts +29 -0
- package/src/layouts/PreviewLayout.astro +117 -0
- package/src/pages/[locale]/[slug].astro +162 -0
- package/src/pages/[locale].astro +261 -0
- package/src/pages/index.astro +3 -0
- package/src/tests/diacritics_density.test.ts +140 -0
- package/src/tests/faq_count.test.ts +19 -0
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/inverted_punctuation.test.ts +84 -0
- package/src/tests/locale_completeness.test.ts +24 -0
- package/src/tests/mocks/astro_mock.js +2 -0
- package/src/tests/no_en_dash.test.ts +70 -0
- package/src/tests/no_h1_in_components.test.ts +48 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/script_density.test.ts +94 -0
- package/src/tests/seo_length.test.ts +46 -0
- package/src/tests/shared-test-helpers.ts +56 -0
- package/src/tests/slug_language_code_format.test.ts +23 -0
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tests/tool_exports.test.ts +34 -0
- package/src/tests/tool_validation.test.ts +16 -0
- package/src/tests/widmark.test.ts +28 -0
- package/src/tool/forensic-age-estimator/bibliography.astro +14 -0
- package/src/tool/forensic-age-estimator/bibliography.ts +16 -0
- package/src/tool/forensic-age-estimator/component.astro +321 -0
- package/src/tool/forensic-age-estimator/dental-skeletal-third-molar-age-estimator.css +634 -0
- package/src/tool/forensic-age-estimator/entry.ts +32 -0
- package/src/tool/forensic-age-estimator/i18n/de.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/en.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/es.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/fr.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/id.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/it.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/ja.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/ko.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/nl.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/pl.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/pt.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/ru.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/sv.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/tr.ts +245 -0
- package/src/tool/forensic-age-estimator/i18n/zh.ts +246 -0
- package/src/tool/forensic-age-estimator/index.ts +11 -0
- package/src/tool/forensic-age-estimator/logic.ts +81 -0
- package/src/tool/forensic-age-estimator/seo.astro +15 -0
- package/src/tool/forensic-blood-test-simulator/bibliography.astro +6 -0
- package/src/tool/forensic-blood-test-simulator/bibliography.ts +12 -0
- package/src/tool/forensic-blood-test-simulator/component.astro +168 -0
- package/src/tool/forensic-blood-test-simulator/dom-utils.ts +40 -0
- package/src/tool/forensic-blood-test-simulator/entry.ts +32 -0
- package/src/tool/forensic-blood-test-simulator/forensic-presumptive-blood-testing-luminol-kastle-meyer-simulator.css +532 -0
- package/src/tool/forensic-blood-test-simulator/helpers.ts +16 -0
- package/src/tool/forensic-blood-test-simulator/i18n/de.ts +185 -0
- package/src/tool/forensic-blood-test-simulator/i18n/en.ts +185 -0
- package/src/tool/forensic-blood-test-simulator/i18n/es.ts +185 -0
- package/src/tool/forensic-blood-test-simulator/i18n/fr.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/id.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/it.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/ja.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/ko.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/nl.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/pl.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/pt.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/ru.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/sv.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/tr.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/i18n/zh.ts +220 -0
- package/src/tool/forensic-blood-test-simulator/index.ts +11 -0
- package/src/tool/forensic-blood-test-simulator/logic.ts +174 -0
- package/src/tool/forensic-blood-test-simulator/script.ts +192 -0
- package/src/tool/forensic-blood-test-simulator/seo.astro +15 -0
- package/src/tool/forensic-fiber-comparison-microscope/bibliography.astro +6 -0
- package/src/tool/forensic-fiber-comparison-microscope/bibliography.ts +16 -0
- package/src/tool/forensic-fiber-comparison-microscope/component.astro +146 -0
- package/src/tool/forensic-fiber-comparison-microscope/entry.ts +32 -0
- package/src/tool/forensic-fiber-comparison-microscope/forensic-fiber-comparison-microscope.css +629 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/de.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/en.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/es.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/fr.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/id.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/it.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/ja.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/ko.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/nl.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/pl.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/pt.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/ru.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/sv.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/tr.ts +246 -0
- package/src/tool/forensic-fiber-comparison-microscope/i18n/zh.ts +250 -0
- package/src/tool/forensic-fiber-comparison-microscope/index.ts +11 -0
- package/src/tool/forensic-fiber-comparison-microscope/logic.ts +244 -0
- package/src/tool/forensic-fiber-comparison-microscope/render.ts +265 -0
- package/src/tool/forensic-fiber-comparison-microscope/seo.astro +15 -0
- package/src/tool/forensic-fiber-comparison-microscope/view.ts +267 -0
- package/src/tool/forensic-glass-becke-line-simulator/bibliography.astro +6 -0
- package/src/tool/forensic-glass-becke-line-simulator/bibliography.ts +16 -0
- package/src/tool/forensic-glass-becke-line-simulator/component.astro +81 -0
- package/src/tool/forensic-glass-becke-line-simulator/entry.ts +32 -0
- package/src/tool/forensic-glass-becke-line-simulator/forensic-glass-becke-line-simulator.css +392 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/de.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/en.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/es.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/fr.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/id.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/it.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/ja.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/ko.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/nl.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/pl.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/pt.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/ru.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/sv.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/tr.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/i18n/zh.ts +231 -0
- package/src/tool/forensic-glass-becke-line-simulator/index.ts +11 -0
- package/src/tool/forensic-glass-becke-line-simulator/logic.ts +100 -0
- package/src/tool/forensic-glass-becke-line-simulator/seo.astro +15 -0
- package/src/tool/forensic-glass-becke-line-simulator/view.ts +281 -0
- package/src/tool/forensic-image-authenticity-analyzer/bibliography.astro +9 -0
- package/src/tool/forensic-image-authenticity-analyzer/bibliography.ts +7 -0
- package/src/tool/forensic-image-authenticity-analyzer/component.astro +250 -0
- package/src/tool/forensic-image-authenticity-analyzer/entry.ts +29 -0
- package/src/tool/forensic-image-authenticity-analyzer/forensic-image-metadata-authenticity-analyzer.css +679 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/de.ts +105 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/en.ts +105 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/es.ts +105 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/fr.ts +105 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/id.ts +76 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/it.ts +105 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/ja.ts +72 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/ko.ts +72 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/nl.ts +75 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/pl.ts +75 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/pt.ts +105 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/ru.ts +75 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/sv.ts +76 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/tr.ts +76 -0
- package/src/tool/forensic-image-authenticity-analyzer/i18n/zh.ts +71 -0
- package/src/tool/forensic-image-authenticity-analyzer/index.ts +11 -0
- package/src/tool/forensic-image-authenticity-analyzer/logic.ts +283 -0
- package/src/tool/forensic-image-authenticity-analyzer/seo.astro +10 -0
- package/src/tool/forensic-microcrystal-drug-simulator/bibliography.astro +6 -0
- package/src/tool/forensic-microcrystal-drug-simulator/bibliography.ts +12 -0
- package/src/tool/forensic-microcrystal-drug-simulator/component.astro +240 -0
- package/src/tool/forensic-microcrystal-drug-simulator/entry.ts +32 -0
- package/src/tool/forensic-microcrystal-drug-simulator/forensic-microcrystal-drug-simulator.css +430 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/de.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/en.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/es.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/fr.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/id.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/it.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/ja.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/ko.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/nl.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/pl.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/pt.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/ru.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/sv.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/tr.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/i18n/zh.ts +244 -0
- package/src/tool/forensic-microcrystal-drug-simulator/index.ts +11 -0
- package/src/tool/forensic-microcrystal-drug-simulator/logic.ts +189 -0
- package/src/tool/forensic-microcrystal-drug-simulator/seo.astro +15 -0
- package/src/tool/forensic-sex-determinator/bibliography.astro +14 -0
- package/src/tool/forensic-sex-determinator/bibliography.ts +12 -0
- package/src/tool/forensic-sex-determinator/component.astro +463 -0
- package/src/tool/forensic-sex-determinator/entry.ts +32 -0
- package/src/tool/forensic-sex-determinator/forensic-sex-determinator.css +413 -0
- package/src/tool/forensic-sex-determinator/i18n/de.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/en.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/es.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/fr.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/id.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/it.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/ja.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/ko.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/nl.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/pl.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/pt.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/ru.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/sv.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/tr.ts +211 -0
- package/src/tool/forensic-sex-determinator/i18n/zh.ts +211 -0
- package/src/tool/forensic-sex-determinator/index.ts +11 -0
- package/src/tool/forensic-sex-determinator/logic.ts +89 -0
- package/src/tool/forensic-sex-determinator/seo.astro +15 -0
- package/src/tool/forensic-stature-estimator/bibliography.astro +14 -0
- package/src/tool/forensic-stature-estimator/bibliography.ts +12 -0
- package/src/tool/forensic-stature-estimator/component.astro +49 -0
- package/src/tool/forensic-stature-estimator/components/EstimationPanel.astro +65 -0
- package/src/tool/forensic-stature-estimator/components/OsteometricBoard.astro +39 -0
- package/src/tool/forensic-stature-estimator/components/OsteometricSelector.astro +109 -0
- package/src/tool/forensic-stature-estimator/dom-utils.ts +71 -0
- package/src/tool/forensic-stature-estimator/entry.ts +32 -0
- package/src/tool/forensic-stature-estimator/forensic-stature-estimator.css +689 -0
- package/src/tool/forensic-stature-estimator/helpers.ts +51 -0
- package/src/tool/forensic-stature-estimator/i18n/de.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/en.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/es.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/fr.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/id.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/it.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/ja.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/ko.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/nl.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/pl.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/pt.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/ru.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/sv.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/tr.ts +196 -0
- package/src/tool/forensic-stature-estimator/i18n/zh.ts +196 -0
- package/src/tool/forensic-stature-estimator/index.ts +11 -0
- package/src/tool/forensic-stature-estimator/logic.ts +119 -0
- package/src/tool/forensic-stature-estimator/script.ts +288 -0
- package/src/tool/forensic-stature-estimator/seo.astro +15 -0
- package/src/tool/forensic-tlc-ink-simulator/bibliography.astro +6 -0
- package/src/tool/forensic-tlc-ink-simulator/bibliography.ts +16 -0
- package/src/tool/forensic-tlc-ink-simulator/component.astro +245 -0
- package/src/tool/forensic-tlc-ink-simulator/entry.ts +32 -0
- package/src/tool/forensic-tlc-ink-simulator/forensic-tlc-ink-simulator.css +462 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/de.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/en.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/es.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/fr.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/id.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/it.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/ja.ts +235 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/ko.ts +235 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/nl.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/pl.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/pt.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/ru.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/sv.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/tr.ts +243 -0
- package/src/tool/forensic-tlc-ink-simulator/i18n/zh.ts +235 -0
- package/src/tool/forensic-tlc-ink-simulator/index.ts +11 -0
- package/src/tool/forensic-tlc-ink-simulator/logic.ts +152 -0
- package/src/tool/forensic-tlc-ink-simulator/seo.astro +15 -0
- package/src/tool/gsr-dispersion-calculator/bibliography.astro +6 -0
- package/src/tool/gsr-dispersion-calculator/bibliography.ts +16 -0
- package/src/tool/gsr-dispersion-calculator/component.astro +294 -0
- package/src/tool/gsr-dispersion-calculator/entry.ts +32 -0
- package/src/tool/gsr-dispersion-calculator/gsr-dispersion-calculator.css +305 -0
- package/src/tool/gsr-dispersion-calculator/i18n/de.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/en.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/es.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/fr.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/id.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/it.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/ja.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/ko.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/nl.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/pl.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/pt.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/ru.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/sv.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/tr.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/i18n/zh.ts +272 -0
- package/src/tool/gsr-dispersion-calculator/index.ts +11 -0
- package/src/tool/gsr-dispersion-calculator/logic.ts +148 -0
- package/src/tool/gsr-dispersion-calculator/seo.astro +15 -0
- package/src/tool/widmark-alcohol-simulator/bibliography.astro +14 -0
- package/src/tool/widmark-alcohol-simulator/bibliography.ts +12 -0
- package/src/tool/widmark-alcohol-simulator/component.astro +453 -0
- package/src/tool/widmark-alcohol-simulator/entry.ts +32 -0
- package/src/tool/widmark-alcohol-simulator/i18n/de.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/en.ts +206 -0
- package/src/tool/widmark-alcohol-simulator/i18n/es.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/fr.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/id.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/it.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/ja.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/ko.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/nl.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/pl.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/pt.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/ru.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/sv.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/tr.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/i18n/zh.ts +193 -0
- package/src/tool/widmark-alcohol-simulator/index.ts +11 -0
- package/src/tool/widmark-alcohol-simulator/logic.ts +97 -0
- package/src/tool/widmark-alcohol-simulator/seo.astro +15 -0
- package/src/tool/widmark-alcohol-simulator/widmark-alcohol-simulator.css +386 -0
- package/src/tools.ts +27 -0
- package/src/types.ts +70 -0
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'kalkulator-kadar-alkohol-widmark';
|
|
5
|
+
const title = 'Simulator Kadar Alkohol Darah Widmark';
|
|
6
|
+
const description = 'Simulasikan penyerapan, distribusi, dan eliminasi alkohol dalam tubuh manusia menggunakan formula Widmark.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Konfigurasikan profil fisik subjek',
|
|
11
|
+
text: 'Masukkan berat badan, jenis kelamin biologis, dan tingkat hidrasi. Parameter biologis ini langsung memengaruhi nilai faktor Widmark (r) yang menentukan volume distribusi alkohol dalam tubuh.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Tentukan kondisi lambung',
|
|
15
|
+
text: 'Pilih kondisi lambung kosong, makanan ringan, atau makanan berat. Pilihan ini menyesuaikan konstanta laju penyerapan (ka) untuk menunjukkan efek makanan pada kurva kadar alkohol.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Tambahkan minuman ke linimasa',
|
|
19
|
+
text: 'Masukkan minuman dengan menentukan volume dalam mililiter, kadar alkohol (ABV), dan jam konsumsi relatif terhadap awal simulasi.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Analisis grafik kadar alkohol darah',
|
|
23
|
+
text: 'Periksa kurva kadar alkohol darah (BAC) selama 12 jam. Bandingkan kadar puncak, waktu mencapai puncak, dan total waktu untuk kembali sadar terhadap batas berkendara.',
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
key: 'faq-1',
|
|
30
|
+
question: 'Apa itu rumus Widmark dan bagaimana penerapannya dalam ilmu forensik?',
|
|
31
|
+
answer: 'Rumus Widmark adalah model matematika yang dikembangkan oleh Erik M. P. Widmark pada tahun 1932. Rumus ini memperkirakan kadar alkohol darah berdasarkan massa alkohol yang dikonsumsi, berat badan, faktor distribusi (r), dan laju eliminasi linier. Toksikolog forensik menggunakan rumus ini untuk kalkulasi retrospektif guna menentukan kadar alkohol seseorang pada waktu kejadian tertentu.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: 'faq-2',
|
|
35
|
+
question: 'Bagaimana makanan di lambung memengaruhi bentuk kurva kadar alkohol darah?',
|
|
36
|
+
answer: 'Makanan dalam lambung memperlambat pengosongan lambung, sehingga menghambat alkohol masuk ke usus halus yang merupakan tempat penyerapan utama. Dalam simulasi ini, efek tersebut dimodelkan dengan menurunkan konstanta laju penyerapan (ka), yang menggeser puncak kadar alkohol menjadi lebih lambat dan menurunkan tinggi puncak kadar alkohol.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
key: 'faq-3',
|
|
40
|
+
question: 'Mengapa pembersihan alkohol mengikuti kinetika orde nol dan bukan orde satu?',
|
|
41
|
+
answer: 'Sebagian besar zat obat dibersihkan melalui kinetika orde satu, yang berarti laju eliminasi sebanding dengan konsentrasi. Pembersihan alkohol mengikuti kinetika orde nol karena enzim hati utama, alkohol dehidrogenase (ADH), menjadi jenuh sepenuhnya pada konsentrasi yang sangat rendah (sekitar 0,02 g/L). Akibatnya, hati mendetoksifikasi alkohol dengan kecepatan maksimum yang konstan.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: 'faq-4',
|
|
45
|
+
question: 'Faktor biologis apa yang memengaruhi variasi faktor Widmark r?',
|
|
46
|
+
answer: 'Faktor Widmark r mewakili rasio kandungan air dalam tubuh terhadap berat total. Karena alkohol bersifat hidrofilik (larut air) dan lipofobik (tidak larut lemak), alkohol hanya menyebar di air tubuh. Jaringan otot mengandung persentase air yang tinggi, sedangkan lemak sangat sedikit. Seseorang dengan lemak tubuh tinggi memiliki faktor r lebih kecil, sehingga menghasilkan BAC lebih tinggi.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
key: 'faq-5',
|
|
50
|
+
question: 'Apakah simulator ini dapat digunakan untuk pembuktian hukum kelayakan berkendara?',
|
|
51
|
+
answer: 'Sama sekali tidak. Simulator ini hanyalah alat edukasi. Pada kenyataannya, variasi genetik enzim, kesehatan hati, obat-obatan, kelelahan, dan kondisi makan menghasilkan perbedaan besar. Jangan pernah mengandalkan simulasi matematika untuk memutuskan kemampuan Anda mengemudi secara aman.',
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
export const content: ToolLocaleContent = {
|
|
56
|
+
slug,
|
|
57
|
+
title,
|
|
58
|
+
description,
|
|
59
|
+
ui: {
|
|
60
|
+
subjectProfile: 'Profil Subjek',
|
|
61
|
+
weight: 'Berat (kg)',
|
|
62
|
+
sex: 'Jenis Kelamin',
|
|
63
|
+
male: 'Pria',
|
|
64
|
+
female: 'Wanita',
|
|
65
|
+
hydration: 'Tingkat Hidrasi',
|
|
66
|
+
hydrationLow: 'Rendah',
|
|
67
|
+
hydrationNormal: 'Normal',
|
|
68
|
+
hydrationHigh: 'Tinggi',
|
|
69
|
+
stomachState: 'Kondisi Lambung',
|
|
70
|
+
stomachEmpty: 'Kosong (Cepat)',
|
|
71
|
+
stomachLight: 'Makanan Ringan (Sedang)',
|
|
72
|
+
stomachFull: 'Makanan Berat (Lambat)',
|
|
73
|
+
drinksTimeline: 'Garis Waktu Konsumsi',
|
|
74
|
+
addDrink: 'Tambah Minuman',
|
|
75
|
+
drinkVolume: 'Volume (ml)',
|
|
76
|
+
drinkAbv: 'Kadar Alkohol (% vol)',
|
|
77
|
+
drinkTime: 'Waktu (Jam)',
|
|
78
|
+
drinksList: 'Minuman Terkonsumsi',
|
|
79
|
+
remove: 'Hapus',
|
|
80
|
+
beer: 'Bir (330ml, 5%)',
|
|
81
|
+
wine: 'Anggur (150ml, 12%)',
|
|
82
|
+
spirits: 'Minuman Keras (40ml, 40%)',
|
|
83
|
+
peakBac: 'Puncak BAC',
|
|
84
|
+
timeToSober: 'Waktu Sadar',
|
|
85
|
+
sober: 'Sadar',
|
|
86
|
+
currentBac: 'BAC Saat Ini',
|
|
87
|
+
drivingLimitAlert: 'Status Mengemudi',
|
|
88
|
+
safeLimit: 'Di Bawah Batas',
|
|
89
|
+
warningLimit: 'Batas Peringatan Terlampaui',
|
|
90
|
+
dangerLimit: 'Batas Bahaya Terlampaui',
|
|
91
|
+
graphTitle: 'Konsentrasi Alkohol Darah selama 12 Jam',
|
|
92
|
+
timeAxisLabel: 'Waktu (Jam)',
|
|
93
|
+
bacAxisLabel: 'Kadar (g/L)',
|
|
94
|
+
legalLimitText: 'Batas Hukum Standar',
|
|
95
|
+
noDrinksText: 'Tambahkan minuman untuk simulasi.',
|
|
96
|
+
hours: 'jam',
|
|
97
|
+
soberStatus: 'Sadar dalam {time} jam',
|
|
98
|
+
neverSober: 'Lebih dari 12 jam',
|
|
99
|
+
noteDisclaimer: 'Hanya untuk tujuan edukasi. Jangan mengemudi setelah minum.',
|
|
100
|
+
noteWidmark: 'Berdasarkan persamaan Widmark dan eliminasi hati linier.',
|
|
101
|
+
},
|
|
102
|
+
seo: [
|
|
103
|
+
{
|
|
104
|
+
type: 'title',
|
|
105
|
+
text: 'Toksikologi Forensik dan Farmakokinetika Etanol',
|
|
106
|
+
level: 2,
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
type: 'paragraph',
|
|
110
|
+
html: 'Pemahaman tentang <strong>penyerapan, distribusi, dan eliminasi etanol</strong> adalah kebutuhan dasar dalam ilmu forensik dan rekonstruksi kecelakaan lalu lintas. Ketika alkohol dikonsumsi, alkohol masuk ke lambung di mana sebagian kecil langsung diserap ke dalam darah. Namun, sebagian besar penyerapan terjadi di duodenum dan usus halus karena luas permukaannya yang sangat besar. Laju pengosongan lambung merupakan tahap pembatas utama dari penyerapan alkohol, yang menjelaskan mengapa keberadaan makanan memainkan peran penting dalam menurunkan kurva kadar alkohol darah.',
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
type: 'paragraph',
|
|
114
|
+
html: 'Simulator interaktif ini menggunakan persamaan klasik dari Erik M. P. Widmark dengan model kompartemen kontinu selama 12 jam. Dengan menyesuaikan parameter fisik, pengguna dapat memvisualisasikan akumulasi matematika dan penurunan kadar alkohol secara linier dari waktu ke waktu.',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
type: 'title',
|
|
118
|
+
text: 'Penurunan Rumus Ekuasi Widmark',
|
|
119
|
+
level: 3,
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
type: 'paragraph',
|
|
123
|
+
html: 'Rumus dasar Widmark memperkirakan kadar alkohol darah dengan asumsi penyerapan instan di seluruh volume air tubuh: <strong>BAC = (A / (W * r)) - (β * t)</strong>. Di mana <em>A</em> adalah massa alkohol murni dalam gram, <em>W</em> adalah berat badan subjek dalam kilogram, dan <em>r</em> adalah faktor distribusi atau rasio volume distribusi. Parameter <em>β</em> mewakili laju eliminasi per jam, dan <em>t</em> adalah waktu yang telah berlalu sejak awal penyerapan.',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: 'paragraph',
|
|
127
|
+
html: 'Untuk menghitung massa etanol murni dari volume minuman, kita mengalikan volume (ml) dengan persentase alkohol (ABV) dan massa jenis etanol (sekitar 0,8 g/ml). Sebagai contoh, 330 ml bir dengan 5% ABV mengandung 13,2 gram etanol murni. Massa ini diencerkan berdasarkan air tubuh total subjek. Simulator ini menyesuaikan faktor r secara dinamis berdasarkan jenis kelamin biologis (pria 0,68 dan wanita 0,55) serta status hidrasi.',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
type: 'title',
|
|
131
|
+
text: 'Variabel Fisiologis dan Pengaruhnya terhadap Volume Distribusi',
|
|
132
|
+
level: 3,
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
type: 'paragraph',
|
|
136
|
+
html: 'Volume distribusi etanol dipengaruhi oleh komposisi tubuh karena alkohol bersifat hidrofilik dan lipofobik. Jaringan otot mengandung sekitar 75% air, sedangkan jaringan lemak hampir tidak mengandung air. Oleh karena itu, orang dengan massa otot tinggi akan memiliki volume distribusi yang lebih besar (faktor r lebih tinggi) dan menunjukkan BAC puncak yang lebih rendah daripada orang dengan berat sama yang memiliki persentase lemak tubuh lebih tinggi. Dehidrasi juga menurunkan volume air tubuh total dan meningkatkan tinggi puncak BAC.',
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
type: 'table',
|
|
140
|
+
headers: ['Variabel Fisiologis', 'Mekanisme Biologis', 'Efek Farmakokinetik', 'Signifikansi Forensik'],
|
|
141
|
+
rows: [
|
|
142
|
+
['Berat Badan', 'Menentukan skala volume total air dalam tubuh.', 'Berbanding terbalik dengan kadar BAC puncak.', 'Menjadi dasar volume awal untuk kalkulasi retrospektif.'],
|
|
143
|
+
['Jenis Kelamin', 'Memengaruhi proporsi khas antara otot dan lemak tubuh.', 'Faktor r lebih rendah pada wanita (0,55) dibanding pria (0,68).', 'Menjelaskan kepekaan biologis yang lebih tinggi pada wanita.'],
|
|
144
|
+
['Status Hidrasi', 'Mengubah jumlah air bebas dalam kompartemen tubuh.', 'Dehidrasi menurunkan r sebesar 0,05, menaikkan kurva.', 'Menyesuaikan toleransi kalkulasi pada kondisi kelelahan.'],
|
|
145
|
+
['Kondisi Lambung', 'Makanan memperlambat pengosongan lambung.', 'Menurunkan laju absorpsi ka, meratakan puncak kurva.', 'Menjelaskan nilai kadar alkohol yang rendah setelah makan besar.'],
|
|
146
|
+
],
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
type: 'title',
|
|
150
|
+
text: 'Kinetika Eliminasi: Pembersihan Orde Nol di Hati',
|
|
151
|
+
level: 3,
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
type: 'paragraph',
|
|
155
|
+
html: 'Setelah masuk ke sirkulasi darah, alkohol dimetabolisme terutama di hati oleh enzim alkohol dehidrogenase (ADH). Enzim ini mengalami kejenuhan pada konsentrasi yang sangat rendah (0,02 g/L), sehingga metabolisme berlangsung dengan kecepatan konstan tanpa dipengaruhi kadar alkohol dalam darah. Rata-rata laju eliminasi forensik (β<sub>60</sub>) ditetapkan sebesar 0,15 g/L per jam. Penurunan konstan ini menghasilkan kemiringan linier lurus pada kurva hingga mencapai angka nol.',
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
faq,
|
|
159
|
+
bibliography,
|
|
160
|
+
howTo,
|
|
161
|
+
schemas: [
|
|
162
|
+
{
|
|
163
|
+
'@context': 'https://schema.org',
|
|
164
|
+
'@type': 'SoftwareApplication',
|
|
165
|
+
name: title,
|
|
166
|
+
description,
|
|
167
|
+
applicationCategory: 'ForensicApplication',
|
|
168
|
+
operatingSystem: 'Any',
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
'@context': 'https://schema.org',
|
|
172
|
+
'@type': 'FAQPage',
|
|
173
|
+
mainEntity: faq.map((item) => ({
|
|
174
|
+
'@type': 'Question',
|
|
175
|
+
name: item.question,
|
|
176
|
+
acceptedAnswer: {
|
|
177
|
+
'@type': 'Answer',
|
|
178
|
+
text: item.answer,
|
|
179
|
+
},
|
|
180
|
+
})),
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
'@context': 'https://schema.org',
|
|
184
|
+
'@type': 'HowTo',
|
|
185
|
+
name: title,
|
|
186
|
+
step: howTo.map((step) => ({
|
|
187
|
+
'@type': 'HowToStep',
|
|
188
|
+
name: step.name,
|
|
189
|
+
text: step.text,
|
|
190
|
+
})),
|
|
191
|
+
},
|
|
192
|
+
],
|
|
193
|
+
};
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'calcolatore-alcolemia-widmark';
|
|
5
|
+
const title = 'Simulatore Tasso Alcolemico Widmark';
|
|
6
|
+
const description = 'Simula l\'assorbimento, la distribuzione e l\'eliminazione dell\'alcol nel corpo umano utilizzando la formula di Widmark.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: 'Configura il profilo biologico del soggetto',
|
|
11
|
+
text: 'Inserisci il peso corporeo, il sesso biologico e il livello di idratazione. Questi parametri biologici calcolano il fattore di Widmark (r) per definire il volume di distribuzione dell\'etanolo.',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: 'Seleziona lo stato dello stomaco',
|
|
15
|
+
text: 'Scegli tra stomaco vuoto, pasto leggero o pasto completo. Questo parametro regola la costante di velocità di assorbimento (ka) mostrando l\'effetto del cibo sulla curva alcolemica.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Aggiungi bevande alla linea temporale',
|
|
19
|
+
text: 'Inserisci le bevande specificando il volume in millilitri, la gradazione alcolica (ABV) e l\'ora in cui è iniziata la consumazione rispetto all\'inizio della simulazione.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'Analizza la curva alcolemica risultante',
|
|
23
|
+
text: 'Controlla l\'andamento della concentrazione di alcol nel sangue (BAC) per 12 ore. Confronta il picco massimo, il tempo per raggiungerlo e lo smaltimento totale con i limiti legali.',
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
key: 'faq-1',
|
|
30
|
+
question: 'Cos\'è la formula di Widmark e come viene applicata nella tossicologia forense?',
|
|
31
|
+
answer: 'La formula di Widmark è un modello matematico formulato da Erik M. P. Widmark nel 1932. Consente di calcolare la concentrazione stimata di alcol nel sangue in base alla massa di alcol ingerita, al peso corporeo, a un fattore di distribuzione di genere (r) e a una clearance lineare. Gli esperti forensi la impiegano per stime retrospettive del tasso alcolemico al momento di un reato.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: 'faq-2',
|
|
35
|
+
question: 'In che modo il cibo nello stomaco modifica la forma della curva alcolemica?',
|
|
36
|
+
answer: 'Il cibo rallenta lo svuotamento gastrico, trattenendo l\'alcol nello stomaco e rallentandone il passaggio all\'intestino tenue, dove l\'assorbimento è rapidissimo. Nel simulatore, questo comportamento viene modellato diminuendo la costante di assorbimento (ka), riducendo notevolmente il picco massimo e spostandolo in avanti nel tempo.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
key: 'faq-3',
|
|
40
|
+
question: 'Perché lo smaltimento dell\'alcol segue una cinetica di ordine zero?',
|
|
41
|
+
answer: 'La maggior parte dei farmaci segue una cinetica di eliminazione di primo ordine (velocità proporzionale alla concentrazione). L\'alcol viene rimosso con cinetica di ordine zero poiché gli enzimi epatici responsabili del suo metabolismo (in particolare l\'alcol deidrogenasi - ADH) si saturano a livelli molto bassi di alcolemia (circa 0,02 g/L). La velocità di smaltimento è quindi massima e costante.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: 'faq-4',
|
|
45
|
+
question: 'Quali sono i fattori biologici che determinano la variazione del fattore Widmark r?',
|
|
46
|
+
answer: 'Il fattore r rappresenta la quota di acqua corporea in rapporto al peso totale del soggetto. Poiché l\'etanolo è idrofilo e lipofobo, si dissolve soltanto nell\'acqua corporea. I muscoli contengono molta acqua, mentre il grasso ne contiene pochissima. Persone con maggiore massa grassa o in stato di disidratazione hanno un r minore, il che determina picchi di alcolemia più elevati.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
key: 'faq-5',
|
|
50
|
+
question: 'Il simulatore ha valore legale per dimostrare l\'idoneità alla guida?',
|
|
51
|
+
answer: 'Assolutamente no. Questo strumento ha esclusivamente finalità didattiche ed educative. Nella realtà fisiologica intervengono variabili come genetica enzimatica, tolleranza, farmaci e variazioni individuali dell\'assorbimento gastrico. Non bisogna mai fare affidamento su un calcolo matematico per mettersi alla guida.',
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
export const content: ToolLocaleContent = {
|
|
56
|
+
slug,
|
|
57
|
+
title,
|
|
58
|
+
description,
|
|
59
|
+
ui: {
|
|
60
|
+
subjectProfile: 'Profilo',
|
|
61
|
+
weight: 'Peso (kg)',
|
|
62
|
+
sex: 'Sesso biologico',
|
|
63
|
+
male: 'Maschio',
|
|
64
|
+
female: 'Femmina',
|
|
65
|
+
hydration: 'Idratazione',
|
|
66
|
+
hydrationLow: 'Bassa',
|
|
67
|
+
hydrationNormal: 'Normale',
|
|
68
|
+
hydrationHigh: 'Alta',
|
|
69
|
+
stomachState: 'Stato stomaco',
|
|
70
|
+
stomachEmpty: 'Vuoto (Rapido)',
|
|
71
|
+
stomachLight: 'Pasto leggero (Medio)',
|
|
72
|
+
stomachFull: 'Pasto completo (Lento)',
|
|
73
|
+
drinksTimeline: 'Cronologia consumi',
|
|
74
|
+
addDrink: 'Aggiungi bevanda',
|
|
75
|
+
drinkVolume: 'Volume (ml)',
|
|
76
|
+
drinkAbv: 'Gradazione (% vol)',
|
|
77
|
+
drinkTime: 'Tempo (Ora)',
|
|
78
|
+
drinksList: 'Bevande consumate',
|
|
79
|
+
remove: 'Rimuovi',
|
|
80
|
+
beer: 'Birra (330ml, 5%)',
|
|
81
|
+
wine: 'Vino (150ml, 12%)',
|
|
82
|
+
spirits: 'Superalcolico (40ml, 40%)',
|
|
83
|
+
peakBac: 'Picco BAC',
|
|
84
|
+
timeToSober: 'Tempo per sobrietà',
|
|
85
|
+
sober: 'Sobrio',
|
|
86
|
+
currentBac: 'BAC attuale',
|
|
87
|
+
drivingLimitAlert: 'Stato di guida',
|
|
88
|
+
safeLimit: 'Sotto il limite',
|
|
89
|
+
warningLimit: 'Limite avviso superato',
|
|
90
|
+
dangerLimit: 'Limite pericolo superato',
|
|
91
|
+
graphTitle: 'Concentrazione alcolemica in 12 ore',
|
|
92
|
+
timeAxisLabel: 'Tempo (Ore)',
|
|
93
|
+
bacAxisLabel: 'Tasso (g/L)',
|
|
94
|
+
legalLimitText: 'Limite legale standard',
|
|
95
|
+
noDrinksText: 'Aggiungi bevande per simulare.',
|
|
96
|
+
hours: 'ore',
|
|
97
|
+
soberStatus: 'Sobrio in {time} ore',
|
|
98
|
+
neverSober: 'Supera 12h',
|
|
99
|
+
noteDisclaimer: 'Solo a scopo didattico. Non guidare dopo aver bevuto.',
|
|
100
|
+
noteWidmark: 'Basato sulla formula di Widmark e metabolismo lineare.',
|
|
101
|
+
},
|
|
102
|
+
seo: [
|
|
103
|
+
{
|
|
104
|
+
type: 'title',
|
|
105
|
+
text: 'Tossicologia Forense e Cinetica dell\'Etanolo',
|
|
106
|
+
level: 2,
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
type: 'paragraph',
|
|
110
|
+
html: 'La comprensione dei processi di <strong>assorbimento, distribuzione ed eliminazione dell\'etanolo</strong> è un requisito essenziale in tossicologia forense e nella ricostruzione degli incidenti stradali. In seguito all\'assunzione, l\'alcol scende lungo l\'esofago fino allo stomaco, dove ha luogo un primo, modesto assorbimento. Tuttavia, la parte preponderante dell\'assorbimento dell\'etanolo avviene nel duodeno e nell\'intestino tenue per via dell\'enorme area superficiale disponibile. Lo svuotamento gastrico rappresenta il passaggio limitante, spiegando perché i pasti rallentino vistosamente la curva alcolemica.',
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
type: 'paragraph',
|
|
114
|
+
html: 'Questo simulatore implementa le equazioni di Erik M. P. Widmark e un modello compartimentale continuo su 12 ore. Regolando i parametri biologici, gli utenti possono osservare graficamente l\'accumulo e la discesa lineare della concentrazione alcolemica.',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
type: 'title',
|
|
118
|
+
text: 'Derivazione dell\'equazione di Widmark',
|
|
119
|
+
level: 3,
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
type: 'paragraph',
|
|
123
|
+
html: 'L\'equazione fondamentale di Widmark calcola la concentrazione teorica di alcol nel sangue assumendo un assorbimento istantaneo: <strong>BAC = (A / (W * r)) - (β * t)</strong>. In questa formula, <em>A</em> indica la massa di etanolo puro in grammi, <em>W</em> è il peso in chilogrammi, e <em>r</em> è il fattore di distribuzione di Widmark. Il parametro <em>β</em> esprime il tasso di eliminazione oraria, mentre <em>t</em> è il tempo trascorso.',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: 'paragraph',
|
|
127
|
+
html: 'Per ricavare la massa di alcol dalle bevande, si moltiplica il volume (ml) per la percentuale di alcol (ABV) e per la densità dell\'etanolo (circa 0,8 g/ml). Ad esempio, 330 ml di birra al 5% contengono 13,2 grammi di alcol. Questa quantità si diluisce in base all\'acqua corporea totale del soggetto. Il simulatore adatta il fattore r in base al sesso biologico (0,68 per gli uomini, 0,55 per le donne) e allo stato di idratazione.',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
type: 'title',
|
|
131
|
+
text: 'Fattori fisiologici e volume di distribuzione',
|
|
132
|
+
level: 3,
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
type: 'paragraph',
|
|
136
|
+
html: 'Il volume di distribuzione dell\'etanolo dipende esclusivamente dalla composizione corporea del soggetto. Essendo l\'etanolo idrofilo e lipofobo, si distribuisce unicamente nei liquidi corporei. I muscoli presentano circa il 75% di acqua, a differenza del tessuto adiposo che ne ha pochissima. Pertanto, un soggetto muscoloso mostrerà un fattore r maggiore e un picco di alcolemia più basso rispetto a un individuo di pari peso ma con maggiore grasso corporeo. La disidratazione riduce l\'acqua totale disponibile, aumentando il picco BAC.',
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
type: 'table',
|
|
140
|
+
headers: ['Variabile fisiologica', 'Meccanismo biologico', 'Effetto farmacocinetico', 'Rilevanza forense'],
|
|
141
|
+
rows: [
|
|
142
|
+
['Peso corporeo', 'Definisce il volume complessivo di acqua corporea.', 'Inversamente proporzionale alla concentrazione massima.', 'Rappresenta la base per la ricostruzione retrospettiva.'],
|
|
143
|
+
['Sesso biologico', 'Influenza il rapporto muscolo-grasso del corpo.', 'Il fattore r è inferiore nelle donne (0,55), elevando il picco.', 'Spiega la maggiore vulnerabilità biologica femminile.'],
|
|
144
|
+
['Idratazione', 'Modifica la quantità di acqua libera nei tessuti.', 'La disidratazione riduce r di 0,05, innalzando la curva.', 'Adatta la tolleranza nel calcolo per sforzo fisico o calore.'],
|
|
145
|
+
['Stato dello stomaco', 'Il cibo rallenta lo svuotamento dello stomaco.', 'Riduce la costante di assorbimento ka, appiattendo il picco.', 'Spiega tassi alcolemici ridotti a seguito di pasti copiosi.'],
|
|
146
|
+
],
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
type: 'title',
|
|
150
|
+
text: 'Eliminazione oraria: Cinetica di ordine zero',
|
|
151
|
+
level: 3,
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
type: 'paragraph',
|
|
155
|
+
html: 'Una volta assorbito, l\'etanolo viene metabolizzato per la quasi totalità dal fegato tramite l\'alcol deidrogenasi (ADH). Questo enzima si satura molto rapidamente a concentrazioni minime (0,02 g/L), instaurando una cinetica di eliminazione di ordine zero. Di conseguenza, il fegato smaltisce una quantità fissa e costante di alcol per unità di tempo. Il tasso di eliminazione forense standard (β<sub>60</sub>) è fissato a 0,15 g/L all\'ora, generando la tipica discesa rettilinea visibile sul grafico.',
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
faq,
|
|
159
|
+
bibliography,
|
|
160
|
+
howTo,
|
|
161
|
+
schemas: [
|
|
162
|
+
{
|
|
163
|
+
'@context': 'https://schema.org',
|
|
164
|
+
'@type': 'SoftwareApplication',
|
|
165
|
+
name: title,
|
|
166
|
+
description,
|
|
167
|
+
applicationCategory: 'ForensicApplication',
|
|
168
|
+
operatingSystem: 'Any',
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
'@context': 'https://schema.org',
|
|
172
|
+
'@type': 'FAQPage',
|
|
173
|
+
mainEntity: faq.map((item) => ({
|
|
174
|
+
'@type': 'Question',
|
|
175
|
+
name: item.question,
|
|
176
|
+
acceptedAnswer: {
|
|
177
|
+
'@type': 'Answer',
|
|
178
|
+
text: item.answer,
|
|
179
|
+
},
|
|
180
|
+
})),
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
'@context': 'https://schema.org',
|
|
184
|
+
'@type': 'HowTo',
|
|
185
|
+
name: title,
|
|
186
|
+
step: howTo.map((step) => ({
|
|
187
|
+
'@type': 'HowToStep',
|
|
188
|
+
name: step.name,
|
|
189
|
+
text: step.text,
|
|
190
|
+
})),
|
|
191
|
+
},
|
|
192
|
+
],
|
|
193
|
+
};
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'widmark-blood-alcohol-simulator';
|
|
5
|
+
const title = 'ウィドマーク血中アルコール濃度シミュレーター';
|
|
6
|
+
const description = 'ウィドマーク公式を用いて、人体におけるアルコールの吸収、分布、消失をシミュレートします。';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{
|
|
10
|
+
name: '身体パラメータの設定',
|
|
11
|
+
text: '体重、生物学的性別、水分レベルを設定します。これらの生理学的特徴からウィドマーク係数(r)が計算され、体内におけるエタノールの分布容積が決定されます。',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: '胃の状態の設定',
|
|
15
|
+
text: '空腹、軽食、または満腹を選択します。この設定により吸収速度定数(ka)が調整され、食事が血中アルコール濃度曲線に与える抑制および遅延効果が示されます。',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: '飲料をタイムラインに追加する',
|
|
19
|
+
text: '量(ml)、アルコール度数(ABV)、およびシミュレーション開始からの経過時間を指定して、個々の飲料を追加します。',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: '血中濃度曲線の分析',
|
|
23
|
+
text: '12時間における血中アルコール濃度(BAC)の推移グラフを確認します。ピーク値、ピークに達するまでの時間、素面に戻るまでの時間を基準値と比較します。',
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faq = [
|
|
28
|
+
{
|
|
29
|
+
key: 'faq-1',
|
|
30
|
+
question: 'ウィドマーク公式とは何ですか?また法医学でどのように使用されますか?',
|
|
31
|
+
answer: 'ウィドマーク公式は、1932年にエリック・M・P・ウィドマークによって開発された数理モデルです。消費されたアルコール質量、体重、性別分布係数(r)、および線形消失速度に基づいて血中アルコール濃度を推定します。法中毒学者らはこれを用いて、事故発生時の容疑者のBACを逆算して推定します。',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: 'faq-2',
|
|
35
|
+
question: '胃の中の食べ物は血中アルコール濃度曲線にどのように影響しますか?',
|
|
36
|
+
answer: '胃の中の食物は胃排泄を遅らせ、アルコールの主要な吸収部位である小腸への移行を遅らせます。このシミュレーターでは、吸収速度定数(ka)を下げることでこれをモデル化しており、ピーク到達時間を遅らせ、最大ピーク濃度を大幅に低下させます。',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
key: 'faq-3',
|
|
40
|
+
question: 'アルコールの消失が一次キネティクスではなくゼロ次キネティクスに従うのはなぜですか?',
|
|
41
|
+
answer: '多くの薬物は一次キネティクス(消失速度が濃度に比例)に従って消失します。アルコールは、代謝に関与する主要な肝酵素であるアルコール脱水素酵素(ADH)が非常に低いBAC(約0.02 g/L)で完全に飽和するため、ゼロ次キネティクスに従います。その結果、肝臓は血中濃度に関係なく、常に一定の最大速度でアルコールを代謝します。',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
key: 'faq-4',
|
|
45
|
+
question: 'ウィドマークのr因子に個人差が生じる生物学的要因は何ですか?',
|
|
46
|
+
answer: 'r因子は、体重に対する体水分の割合を表します。エタノールは極めて親水性が高く(水溶性)親油性が低いため、体水分にのみ分布します。筋肉組織は水水分含有量が高く(約75%)、脂肪組織はほとんど水分を含みません。そのため、体脂肪率が高い人や脱水状態の人は分布容積が小さくなり、同じ量のアルコールでもBACが高くなります。',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
key: 'faq-5',
|
|
50
|
+
question: 'このシミュレーターの結果を運転可能である証明として法的に利用できますか?',
|
|
51
|
+
answer: '絶対にできません。このシミュレーターは教育目的のツールです。現実には、酵素の遺伝的特性、肝臓の健康状態、薬の服用、疲労、正確な胃の食事状況などが大きな変動要因となります。数学的シミュレーションを信じて運転の可否を判断しないでください。',
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
export const content: ToolLocaleContent = {
|
|
56
|
+
slug,
|
|
57
|
+
title,
|
|
58
|
+
description,
|
|
59
|
+
ui: {
|
|
60
|
+
subjectProfile: '被験者プロフィール',
|
|
61
|
+
weight: '体重 (kg)',
|
|
62
|
+
sex: '生物学的性別',
|
|
63
|
+
male: '男性',
|
|
64
|
+
female: '女性',
|
|
65
|
+
hydration: '水分状態',
|
|
66
|
+
hydrationLow: '低い',
|
|
67
|
+
hydrationNormal: '通常',
|
|
68
|
+
hydrationHigh: '高い',
|
|
69
|
+
stomachState: '胃の状態',
|
|
70
|
+
stomachEmpty: '空腹 (速い)',
|
|
71
|
+
stomachLight: '軽食 (普通)',
|
|
72
|
+
stomachFull: '満腹 (遅い)',
|
|
73
|
+
drinksTimeline: '飲酒のタイムライン',
|
|
74
|
+
addDrink: '飲料を追加',
|
|
75
|
+
drinkVolume: '量 (ml)',
|
|
76
|
+
drinkAbv: 'アルコール度数 (% vol)',
|
|
77
|
+
drinkTime: '时间 (時間後)',
|
|
78
|
+
drinksList: '追加された飲料',
|
|
79
|
+
remove: '削除',
|
|
80
|
+
beer: 'ビール (330ml, 5%)',
|
|
81
|
+
wine: 'ワイン (150ml, 12%)',
|
|
82
|
+
spirits: '蒸留酒 (40ml, 40%)',
|
|
83
|
+
peakBac: 'ピーク濃度',
|
|
84
|
+
timeToSober: '酔いが覚めるまでの時間',
|
|
85
|
+
sober: '素面',
|
|
86
|
+
currentBac: '現在の濃度',
|
|
87
|
+
drivingLimitAlert: '運転可否ステータス',
|
|
88
|
+
safeLimit: '基準値以下',
|
|
89
|
+
warningLimit: '注意基準超過',
|
|
90
|
+
dangerLimit: '危険基準超過',
|
|
91
|
+
graphTitle: '12時間の血中アルコール濃度変化',
|
|
92
|
+
timeAxisLabel: '経過時間 (時間)',
|
|
93
|
+
bacAxisLabel: '濃度 (g/L)',
|
|
94
|
+
legalLimitText: '標準運転基準値',
|
|
95
|
+
noDrinksText: '飲料を追加してシミュレーションを開始してください。',
|
|
96
|
+
hours: '時間',
|
|
97
|
+
soberStatus: '{time} 時間で素面',
|
|
98
|
+
neverSober: '12時間を超過',
|
|
99
|
+
noteDisclaimer: '教育目的のシミュレーションです。飲酒運転は絶対にしないでください。',
|
|
100
|
+
noteWidmark: 'ウィドマーク方程式およびゼロ次消失モデルに基づいています。',
|
|
101
|
+
},
|
|
102
|
+
seo: [
|
|
103
|
+
{
|
|
104
|
+
type: 'title',
|
|
105
|
+
text: '法中毒学とエタノールの体内薬物動態',
|
|
106
|
+
level: 2,
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
type: 'paragraph',
|
|
110
|
+
html: 'エタノールの<strong>吸収、分布、および消失</strong>の生理学的プロセスを理解することは、法医学および交通事故解析において重要です。摂取されたアルコールは食道を通って胃に達し、一部がそこで直接血流に吸収されますが、大部分は小腸の上部で急速に吸収されます。胃からの排泄速度がアルコール吸収の律速段階となるため、胃の中に食物が存在すると、血中アルコール濃度曲線が緩やかになります。',
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
type: 'paragraph',
|
|
114
|
+
html: 'このシミュレーターは、エリック・M・P・ウィドマークの古典的公式を実装し、12時間にわたる連続的なモデルで血中濃度の変化を予測します。個人の生理学的パラメータを調整し飲料を追加することで、アルコールの蓄積と肝臓での直線的消失を観察できます。',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
type: 'title',
|
|
118
|
+
text: 'ウィドマーク方程式の数学的導出',
|
|
119
|
+
level: 3,
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
type: 'paragraph',
|
|
123
|
+
html: '基本的なウィドマーク方程式は、アルコールが即座に体水分に分布すると仮定し、理論上の濃度を算出します: <strong>BAC = (A / (W * r)) - (β * t)</strong>。ここで、<em>A</em>は摂取した純エタノール質量(グラム)、<em>W</em>は体重(kg)、<em>r</em>は分布係数です。<em>β</em>は1時間あたりの消失速度を示し、<em>t</em>は吸収開始からの経過時間を示します。',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: 'paragraph',
|
|
127
|
+
html: '飲料の体積(ml)を純アルコール重量(g)に換算するには、体積にアルコール度数(ABV)とエタノールの密度(約0.8 g/ml)を掛けます。たとえば、5% ABVの330 mlビールは13.2 gの純エタノールを含みます。この質量が体水分で希釈されます。シミュレーターは、性別(男性0.68、女性0.55)や脱水状態に応じて分布係数rを動的に適応させます。',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
type: 'title',
|
|
131
|
+
text: '生理学的変数と分布容積の影響',
|
|
132
|
+
level: 3,
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
type: 'paragraph',
|
|
136
|
+
html: 'エタノールの分布容積は、体組成に直接依存します。アルコールは水溶性で脂溶性が極めて低いため、水分にのみ分布します。筋肉組織は約75%の水を含みますが、脂肪組織は水分をほとんど含みません。したがって、同等の体重であっても筋肉質な人の方がr因子が高くなり、体脂肪率の高い人に比べてBACのピーク値が低くなります。脱水状態も全体の水分量を減少させるため、ピークBACを上昇させます。',
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
type: 'table',
|
|
140
|
+
headers: ['生理学的変数', '生物学的メカニズム', '薬物動態学的影響', '法医学的意義'],
|
|
141
|
+
rows: [
|
|
142
|
+
['体重', '体水分の総容量を決定する。', 'ピークのBAC値と反比例する。', '遡及計算における希釈の基準体積を与える。'],
|
|
143
|
+
['生物学的性別', '筋肉と脂肪の比率に影響を与える。', 'r値は女性(0.55)の方が男性(0.68)より低く、ピークが高くなる。', '同一摂取量に対する女性の生理学的感受性の高さを説明する。'],
|
|
144
|
+
['水分状態', '組織中の自由水容量を変更する。', '脱水はrを0.05低下させ、曲線を上昇させる。', '労働や高温環境での計算を補正する。'],
|
|
145
|
+
['胃の状態', '食べ物が胃の排泄を遅らせる。', '吸収速度定数kaを低下させ、曲線のピークをフラットにする。', '食後の飲酒においてBACが低くなる現象を説明する。'],
|
|
146
|
+
],
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
type: 'title',
|
|
150
|
+
text: '消失速度論:肝臓におけるゼロ次消失',
|
|
151
|
+
level: 3,
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
type: 'paragraph',
|
|
155
|
+
html: '体内に分布したアルコールは、主に肝臓のアルコール脱水素酵素(ADH)によって分解されます。この酵素は極めて低い濃度(0,02 g/L)で完全に飽和するため、単位時間あたりに一定のアルコール量が分解されるゼロ次キネティクスとなります。一般的な法医学上の平均消失速度(β<sub>60</sub>)は1時間あたり0.15 g/Lであり、これがプロット上の直線的な下降曲線を形成します。',
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
faq,
|
|
159
|
+
bibliography,
|
|
160
|
+
howTo,
|
|
161
|
+
schemas: [
|
|
162
|
+
{
|
|
163
|
+
'@context': 'https://schema.org',
|
|
164
|
+
'@type': 'SoftwareApplication',
|
|
165
|
+
name: title,
|
|
166
|
+
description,
|
|
167
|
+
applicationCategory: 'ForensicApplication',
|
|
168
|
+
operatingSystem: 'Any',
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
'@context': 'https://schema.org',
|
|
172
|
+
'@type': 'FAQPage',
|
|
173
|
+
mainEntity: faq.map((item) => ({
|
|
174
|
+
'@type': 'Question',
|
|
175
|
+
name: item.question,
|
|
176
|
+
acceptedAnswer: {
|
|
177
|
+
'@type': 'Answer',
|
|
178
|
+
text: item.answer,
|
|
179
|
+
},
|
|
180
|
+
})),
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
'@context': 'https://schema.org',
|
|
184
|
+
'@type': 'HowTo',
|
|
185
|
+
name: title,
|
|
186
|
+
step: howTo.map((step) => ({
|
|
187
|
+
'@type': 'HowToStep',
|
|
188
|
+
name: step.name,
|
|
189
|
+
text: step.text,
|
|
190
|
+
})),
|
|
191
|
+
},
|
|
192
|
+
],
|
|
193
|
+
};
|