Observed since 20 Oct, 21:16 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
afya-medqol
Cálculo do índice de qualidade de vida Afya MedQoL (médicos).
Computes the Afya MedQoL Physician quality-of-life index from instrument responses — practicing physicians (13 items, 3 domains) — with 100% deterministic scoring (fixed quadrature, no random seed).
Calibration parameters are frozen in source code
(parameters_physician.py) —
there is no external file (CSV/Excel) read at runtime.
pip install afya-medqol
Three-dimensional Samejima GRM (Graded Response Model) with EAP (Expected A Posteriori) scoring. Calibration frozen at 2024_2 (Gobbo Jr M et al., BMJ Open 2025;15:e102783), with independent domains (Σ = I): each domain (F1, F2, F3) works as its own ruler — zeroing or excluding items from one domain does not affect the others.
| Domain | Construct | Items |
|---|---|---|
| F1 | Quality of Life | 6 items (F1_1_enjoymentoflife, F1_2_financialsufficiency, F1_3_accesstoinformation, F1_4_leisureopportunities, F1_5_mobilitypast2weeks, F1_6_accesstohealthservices) |
| F2 | Institutional Support / Work Perception | 4 items (F2_1_technicaltraining, F2_2_mentalhealthsupport, F2_3_coworkersupportnetwork, F2_4_educationalhandlingoferrors) |
| F3 | Perceived Stress | 3 items (F3_1_stresshurtsperformance, F3_2_stressledtoerrors, F3_3_stresshurtsrelationships) |
The global score combines the three domains (F3 reversed only in this composite) with weights proportional to each factor's discrimination (Σ|a|).
import pandas as pd
from afya_medqol import MedQoLPhysicianCalculator
df_responses = pd.read_csv("responses.csv")
calc = MedQoLPhysicianCalculator()
result = calc.score_batch(df_responses)
print(result[["theta_global", "T_score_global"]])
Scoring a single respondent:
result = calc.score_physician({
"F1_1_enjoymentoflife": 4,
"F1_2_financialsufficiency": 3,
# ... remaining items (see afya_medqol.ITENS_TODOS)
})
print(result["theta_global"], result["T_score_global"])
To look up the original questionnaire wording for any item, use
ITEM_QUESTIONS (a plain dict keyed by item, then by language code —
"en" or "pt") or the item_questions(lang="en") method on a calculator
instance, which returns the flat item -> text dict for the requested
language (English by default):
from afya_medqol import ITEM_QUESTIONS
print(ITEM_QUESTIONS["F1_1_enjoymentoflife"]["pt"])
print(calc.item_questions()["F1_1_enjoymentoflife"]) # English (default)
print(calc.item_questions(lang="pt")["F1_1_enjoymentoflife"]) # Portuguese
MedQoLPhysicianCalculator precomputes the quadrature grid and item probabilities
once at construction time — reuse the same instance when scoring multiple
batches.
afya-medqol responses.csv
afya-medqol responses.csv --saida result.csv
theta1_quality_of_life, theta2_institutional_support, theta3_perceived_stress, theta_globalT_score_global (50 + 10·θ_global)Apache License 2.0 — see LICENSE.
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
numpyEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | numpy>=1.23 | runtime |
pandasEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | pandas>=1.5 | runtime |
pytestEnvironment{
"extras": "",
"marker": "extra == \"test\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | pytest>=7.0; extra == "test" | runtime |
bdist_wheel · 16.85 KB · Python py3
sdist · 17.51 KB · Python source
Observed since 20 Oct, 21:16 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:f3a698f3feed57ea10d9433627ca7ba2e7f5962a846bf5e497697d7c34b862cc