Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

About:Pharmacopedia.ext: Difference between revisions

From Pharmacopedia
[checked revision][checked revision]
Version header 0.9.6.9 -> 0.9.7.0 for the 0.9.7.0 release
Doc pass for v0.9.7.0: ADHD screening (ASRS, AMAAS), Formal testing + per-field privacy, plants skin + assessment card family
Line 12: Line 12:
* Two-perspective data capture (personal vs. provider) wherever clinically meaningful
* Two-perspective data capture (personal vs. provider) wherever clinically meaningful
* User profile with dimensional personality / autism assessments (CATI, CAT-Q, MBTI, Enneagram, PID-5-BF, OCEAN/BFI-10) and rich auto-generated reports
* User profile with dimensional personality / autism assessments (CATI, CAT-Q, MBTI, Enneagram, PID-5-BF, OCEAN/BFI-10) and rich auto-generated reports
* ADHD screening (ASRS and AMAAS-SR) plus a Formal testing log of standardized-test scores, every score field carrying its own visibility
* Diagnosis autocomplete backed by ~41,500 ICD-10-CM, ICD-11, and DSM-5 codes
* Diagnosis autocomplete backed by ~41,500 ICD-10-CM, ICD-11, and DSM-5 codes
* '''Life-story timeline''': visual swimlanes (vis-timeline 7.7.3, vendored Apache-2.0) plus a synchronized trait-trajectory overlay (vis.Graph2d); card-list view alongside; quick-add free-text observation parser; range-date episode form with severity slider
* '''Life-story timeline''': visual swimlanes (vis-timeline 7.7.3, vendored Apache-2.0) plus a synchronized trait-trajectory overlay (vis.Graph2d); card-list view alongside; quick-add free-text observation parser; range-date episode form with severity slider
Line 47: Line 48:
** <code>ext.pharmacopedia.lifegraph</code>: trait-trajectory overlay (vis.Graph2d) synced to timeline
** <code>ext.pharmacopedia.lifegraph</code>: trait-trajectory overlay (vis.Graph2d) synced to timeline
** <code>ext.pharmacopedia.kitsync</code>: glue that propagates kit-widget changes into legacy hidden inputs + drives privacy-mode toggle
** <code>ext.pharmacopedia.kitsync</code>: glue that propagates kit-widget changes into legacy hidden inputs + drives privacy-mode toggle
* '''Styles (CSS):''' shared dark-theme palette (black / dark-grey / purple / white primary; red / green / blue / teal sparingly for semantic distinction).
* '''Styles (CSS):''' a dark-theme palette across two skins, the default pharmaceutical skin and an earth-toned plants skin applied to plant-origin pages by content category. Self-hosted Geist, Newsreader and Source Serif web fonts. The assessment card family (the verdict card and the featured radar card) and the Shulgin's Corner literary-quote component are components in <code>ext.pharmacopedia.css</code>.
* '''Schema:''' <code>sql/</code>, ~25 core tables plus migration patches. Picked up via <code>LoadExtensionSchemaUpdates</code> hook.
* '''Schema:''' <code>sql/</code>, ~25 core tables plus migration patches. Picked up via <code>LoadExtensionSchemaUpdates</code> hook.


Line 174: Line 175:
* '''MBTI''' (4 dichotomy sliders + 32-item OEJTS test)
* '''MBTI''' (4 dichotomy sliders + 32-item OEJTS test)
* '''Personality / autism assessments''' (PID-5-BF, CATI, CAT-Q, each as a collapsible inline test)
* '''Personality / autism assessments''' (PID-5-BF, CATI, CAT-Q, each as a collapsible inline test)
* '''ADHD screening''' (ASRS adult-ADHD screener and AMAAS-SR attention self-report, each a collapsible inline test)
* '''Formal testing''' (a log of standardized-test scores; raw score, percentile and pass/fail each carry their own privacy setting)
* '''Diagnoses''' (multi-row with ICD-10-CM + ICD-11 autocomplete, severity slider 0–100, disability slider 0–100, status, origin, dates, notes)
* '''Diagnoses''' (multi-row with ICD-10-CM + ICD-11 autocomplete, severity slider 0–100, disability slider 0–100, status, origin, dates, notes)
* '''Medicines I have tried''' (multi-row with med-name autocomplete, dose, route 16-option dropdown, schedule with datalist suggestions, efficacy + burden sliders 0–100, periods via date-picker)
* '''Medicines I have tried''' (multi-row with med-name autocomplete, dose, route 16-option dropdown, schedule with datalist suggestions, efficacy + burden sliders 0–100, periods via date-picker)
Line 244: Line 247:


All assessment items submit raw responses to <code>pcp_profile_fields</code> under namespace <code>{key}_raw</code> (e.g. <code>cati_raw</code>); the computed scores live under namespace <code>{key}</code> with keys like <code>subscale_SOC</code>, <code>total</code>, plus a <code>taken_at</code> timestamp. Re-scoring happens automatically on every save (autosave fires <code>scoreResponses()</code> on the full raw set, skipping "unsure" rows). Each completed assessment also auto-upserts a Life-story keyframe row (see [[#Life-story timeline|Life-story timeline]]) so trajectories plot over time.
All assessment items submit raw responses to <code>pcp_profile_fields</code> under namespace <code>{key}_raw</code> (e.g. <code>cati_raw</code>); the computed scores live under namespace <code>{key}</code> with keys like <code>subscale_SOC</code>, <code>total</code>, plus a <code>taken_at</code> timestamp. Re-scoring happens automatically on every save (autosave fires <code>scoreResponses()</code> on the full raw set, skipping "unsure" rows). Each completed assessment also auto-upserts a Life-story keyframe row (see [[#Life-story timeline|Life-story timeline]]) so trajectories plot over time.
=== ADHD screening ===
Two attention / ADHD instruments sit alongside the dimensional assessments, each a collapsible inline test on <code>Special:MyProfile</code> and a card render on the public profile:
* '''ASRS''' (Adult ADHD Self-Report Scale, Part A): a 6-item binary screener. The card counts how many of the 6 cardinal items fall in the screening range; 4 or more is a positive screen. The public profile renders it as a '''verdict card''', a screen-positive or screen-negative result word with a 6-cell cardinal-item strip and a screening-result detail line.
* '''AMAAS-SR''' (a 30-item experimental attention self-report): three symptom subscales, inattention, hyperactivity and impulsivity, each scored as a percentage of the subscale maximum. The public profile renders it as a '''featured radar card''', a 3-axis radar carrying a deliberately arbitrary 66.66% threshold triangle that is labelled experimental and not a validated cutoff. AMAAS has no validated norms; the card discloses this in plain sight rather than presenting a clinical cutoff.
Both instruments store responses in <code>pcp_profile_fields</code> under the <code>asrs</code> and <code>amaas</code> namespaces, the same pattern as the dimensional assessments.
=== Formal testing ===
The '''Formal testing''' block on <code>Special:MyProfile</code> is a log of standardized tests the user has taken (entrance exams, AP exams, IQ tests, and the like; retakes are welcome, and the year disambiguates them). Each entry resolves against a catalog (<code>pcp_formal_tests</code>) or is a custom free-text test, and records up to three score fields, raw score, percentile and pass/fail, each with an optional estimate flag.
Every score field has its own '''per-field visibility'''. Raw score, percentile and pass/fail each carry a separate privacy setting (<code>uts_vis_raw</code>, <code>uts_vis_pct</code>, <code>uts_vis_passfail</code>), so a user can publish a percentile while keeping the raw score private. The <code>Special:MyProfile</code> editor shows three privacy toggles per entry; the public <code>Special:UserProfile</code> gates each score line independently by its own field visibility. Scores are stored in <code>pcp_user_test_scores</code>, managed through the <code>pharmacopediaformaltest</code> API.


== Life-story timeline ==
== Life-story timeline ==
Line 504: Line 522:
|-
|-
| <code>pharmacopediarefupgrade</code> || Free-text ref linker (op=candidates / apply / dismiss)
| <code>pharmacopediarefupgrade</code> || Free-text ref linker (op=candidates / apply / dismiss)
|-
| <code>pharmacopediaformaltest</code> || Formal-testing score operations (list / add / update / delete), with per-field visibility
|}
|}


Line 595: Line 615:
|-
|-
| <code>pcp_literature</code> || Citation attachments
| <code>pcp_literature</code> || Citation attachments
|-
| <code>pcp_formal_tests</code> || Catalog of standardized tests (abbrev, full name, category, score format)
|-
| <code>pcp_user_test_scores</code> || Per-user formal-test scores; raw score / percentile / pass-fail, each with its own visibility (uts_vis_raw / uts_vis_pct / uts_vis_passfail) and an estimate flag
|}
|}