Social determinants of health and its impact on community well being
social determinants of health impact community wellbeing WHO framework 2025
"social determinants of health" AND "community health"
social determinants of health framework diagram WHO
social determinants health poverty education housing community
| Domain | Examples |
|---|---|
| 1. Economic Stability | Poverty, food insufficiency, unemployment |
| 2. Education Access & Quality | High school graduation, early childhood education, health literacy |
| 3. Social & Community Context | Immigration status, social support, discrimination, racism |
| 4. Health & Healthcare | Insurance status, access to providers, healthcare quality |
| 5. Neighborhood & Built Environment | Crime, housing quality, environmental pollution, green space |

Upstream (structural) SDOH
↓
Political/economic context → Income inequality, labor markets, welfare systems
↓
Social position → Education, occupation, income, gender, ethnicity
↓
Intermediary determinants → Living conditions, work environment, behavioral factors, biological factors
↓
Health outcomes → Morbidity, mortality, disability, well-being
Give the answer from Park's Textbook of Social and Preventive Medicine
"Health is multifactorial. The factors which influence health lie both within the individual and externally in the society in which he or she lives... what man is and to what diseases he may fall victim depends on a combination of two sets of factors - his genetic factors and the environmental factors to which he is exposed. These interactions may be health-promoting or deleterious. Thus, conceptually, the health of individuals and whole communities may be considered to be the result of many interactions."

"'Positive health' advocated by WHO implies that a person should be able to express as completely as possible the potentialities of his genetic heritage. This is possible only when the person is allowed to live in healthy relationship with his environment - an environment that transforms genetic potentialities into phenotypic realities."
"The term 'lifestyle' is rather a diffuse concept often used to denote 'the way people live', reflecting a whole range of social values, attitudes and activities. It is composed of cultural and behavioural patterns and lifelong personal habits (e.g., smoking, alcoholism) that have developed through processes of socialization. Lifestyles are learnt through social interaction with parents, peer groups, friends and siblings and through school and mass media."
"It is an established fact that environment has a direct impact on the physical, mental and social well-being of those living in it."
"For the majority of the world's people, health status is determined primarily by their level of socio-economic development, e.g., per capita GNP, education, nutrition, employment, housing, the political system of the country."
| Country | Per Capita GNI (PPP US$, 2019) | Life Expectancy at Birth (2018) | IMR (2018) |
|---|---|---|---|
| Nepal | 3,610 | 70.0 | 27 |
| India | 6,920 | 69.0 | 30 |
| Sri Lanka | 13,260 | 77.0 | 6 |
| Maldives | 18,380 | 79.0 | 7 |
| Thailand | 18,570 | 77.0 | 8 |
"The world map of illiteracy closely coincides with the maps of poverty, malnutrition, ill-health, high infant and child mortality rates. Studies indicate that education, to some extent, compensates the effects of poverty on health, irrespective of the availability of health facilities."
"The very state of being employed in productive work promotes health, because the unemployed usually show a higher incidence of ill-health and death. For many, loss of work may mean loss of income and status. It can cause psychological and social damage."
"Health is also related to the country's political system. Often the main obstacles to the implementation of health technologies are not technical, but rather political."
"The term health and family welfare services cover a wide spectrum of personal and community services for treatment of disease, prevention of illness and promotion of health."
"Poverty wields its destructive influence at every stage of human life from the moment of conception to the grave. Poverty is the main reason why babies are not vaccinated, clean water and sanitation are not provided, and curative drugs and other treatments are unavailable. It is the main cause of low life expectancy, low birth weight babies, higher maternal mortality, handicap and disability, mental illness, stress, suicide, family disintegration and substance abuse."
"The poor die younger and suffer more from disability. They are exposed to greater risk from unhealthy conditions at home and at work. Malnutrition and the legacy of past illness mean that they are more likely to fall ill and slower to recover, especially if they have little access to health care. When a family's breadwinner becomes ill, other members of the household may at first cope by working harder themselves and by reducing consumption, even of food. Both adjustments can harm health of the whole family."
"The fundamental conditions and resources for health are peace, shelter, education, social security, social relations, food, income, the empowerment of women, a stable ecosystem, sustainable resource use, social justice, respect for human rights, and equity. Above all, poverty is the greatest threat to health."
"Tuberculosis is a social disease with medical aspects... The social factors include poor quality of life, poor housing and overcrowding, population explosion, undernutrition, smoking, alcohol abuse, lack of education, large families, early marriages, lack of awareness. Tuberculosis began to decline in the western world long before the advent of chemotherapeutic drugs - attributed to improvements in the quality of life."
| Determinant | Key Health Impact |
|---|---|
| Poverty / Low income | Low life expectancy, high IMR, malnutrition, disease burden |
| Education (esp. female) | Reduces infant/maternal mortality; compensates for poverty |
| Occupation / Employment | Unemployment raises morbidity and mortality |
| Political system | Shapes resource allocation and access to care |
| Environment | Physical, biological, psychosocial components all affect health |
| Lifestyle/Behaviour | Smoking, diet, physical activity, sanitation habits |
| Health services | Access matters, but alone insufficient for good health |
| Gender | Female education and empowerment are critical health drivers |
| Ageing | Rising chronic disease burden |
| Equity and social justice | Inequity itself is a determinant of population health |
Create a summary document on Park's SDOH framework
ls -la /tmp/workspace/ 2>/dev/null && mkdir -p /tmp/workspace/parks-sdoh && echo "Directory ready"
~/parks-sdoh/generate_pdf.py
from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm
from reportlab.lib import colors
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, PageBreak
)
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_JUSTIFY
OUTPUT = "/tmp/workspace/parks-sdoh/Parks_SDOH_Framework_Summary.pdf"
# ── Colour palette ─────────────────────────────────────────────────────────
DARK_RED = colors.HexColor("#8B1A1A")
MID_RED = colors.HexColor("#C0392B")
LIGHT_PINK = colors.HexColor("#FDECEA")
DARK_GREY = colors.HexColor("#2C2C2C")
MID_GREY = colors.HexColor("#555555")
LIGHT_GREY = colors.HexColor("#F5F5F5")
WHITE = colors.white
# ── Document ────────────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
leftMargin=2*cm, rightMargin=2*cm,
topMargin=2.2*cm, bottomMargin=2.2*cm,
title="Park's SDOH Framework - Summary",
author="Park's Textbook of Preventive and Social Medicine",
)
# ── Styles ──────────────────────────────────────────────────────────────────
base = getSampleStyleSheet()
def S(name, **kw):
return ParagraphStyle(name, **kw)
sTitle = S("sTitle",
fontName="Helvetica-Bold", fontSize=22,
textColor=WHITE, alignment=TA_CENTER,
leading=28, spaceAfter=4)
sSubtitle = S("sSubtitle",
fontName="Helvetica", fontSize=12,
textColor=colors.HexColor("#FADADD"), alignment=TA_CENTER,
leading=16, spaceAfter=2)
sSource = S("sSource",
fontName="Helvetica-Oblique", fontSize=9,
textColor=colors.HexColor("#FADADD"), alignment=TA_CENTER,
leading=13)
sSectionHead = S("sSectionHead",
fontName="Helvetica-Bold", fontSize=13,
textColor=WHITE, alignment=TA_LEFT,
leading=17, leftIndent=6)
sSubHead = S("sSubHead",
fontName="Helvetica-Bold", fontSize=10.5,
textColor=DARK_RED, alignment=TA_LEFT,
leading=14, spaceBefore=6, spaceAfter=2)
sBody = S("sBody",
fontName="Helvetica", fontSize=9.5,
textColor=DARK_GREY, alignment=TA_JUSTIFY,
leading=14, spaceAfter=4)
sQuote = S("sQuote",
fontName="Helvetica-Oblique", fontSize=9,
textColor=colors.HexColor("#5D0000"),
leftIndent=14, rightIndent=14,
leading=13, spaceBefore=4, spaceAfter=6,
backColor=LIGHT_PINK,
borderPad=6)
sBullet = S("sBullet",
fontName="Helvetica", fontSize=9.5,
textColor=DARK_GREY,
leftIndent=16, bulletIndent=6,
leading=13, spaceAfter=2)
sFooter = S("sFooter",
fontName="Helvetica-Oblique", fontSize=7.5,
textColor=MID_GREY, alignment=TA_CENTER)
sTableHead = S("sTableHead",
fontName="Helvetica-Bold", fontSize=9,
textColor=WHITE, alignment=TA_CENTER, leading=12)
sTableCell = S("sTableCell",
fontName="Helvetica", fontSize=8.5,
textColor=DARK_GREY, alignment=TA_LEFT, leading=12)
# ── Helper flowables ─────────────────────────────────────────────────────────
def section_header(text):
"""Coloured banner for each section."""
tbl = Table([[Paragraph(text, sSectionHead)]], colWidths=[17*cm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), DARK_RED),
("ROUNDEDCORNERS", [4]),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING",(0,0),(-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 8),
]))
return tbl
def bullet(text):
return Paragraph(f"<bullet>\u2022</bullet> {text}", sBullet)
def sp(h=0.25):
return Spacer(1, h*cm)
def hr():
return HRFlowable(width="100%", thickness=0.5, color=colors.HexColor("#DDDDDD"), spaceAfter=4)
# ── Cover banner ─────────────────────────────────────────────────────────────
def cover_banner():
banner_data = [[
Paragraph("Social Determinants of Health", sTitle),
Paragraph("Park's Textbook of Preventive & Social Medicine", sSubtitle),
Paragraph("Framework Summary Document", sSource),
]]
tbl = Table(banner_data, colWidths=[17*cm])
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), DARK_RED),
("ROUNDEDCORNERS",[6]),
("TOPPADDING", (0,0), (-1,-1), 18),
("BOTTOMPADDING", (0,0), (-1,-1), 18),
("ALIGN", (0,0), (-1,-1), "CENTER"),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]))
return tbl
# ── Build story ──────────────────────────────────────────────────────────────
story = []
# -- Cover
story.append(cover_banner())
story.append(sp(0.5))
# -- Definition box
def_para = Paragraph(
"<b>WHO Definition:</b> Social determinants of health are <i>\"the conditions in which people "
"are born, grow, work, live, and age, and the wider set of forces and systems shaping the "
"conditions of daily life.\"</i> These circumstances are shaped by the distribution of money, "
"power, and resources at global, national, and local levels.",
sQuote)
story.append(def_para)
story.append(sp(0.3))
story.append(Paragraph(
"Park's textbook frames health as <b>multifactorial</b>: what a person is and to what diseases "
"they may fall victim depends on a combination of <b>genetic factors</b> and <b>environmental "
"factors</b>. Health of individuals and whole communities results from multiple interactions "
"across biological, behavioural, socio-economic, and structural domains.",
sBody))
story.append(sp(0.4))
# ════════════════════════════════════════════════════════════════════════════
# SECTION 1 - THE 8 DETERMINANTS
# ════════════════════════════════════════════════════════════════════════════
story.append(section_header("The Eight Determinants of Health (Park's Framework)"))
story.append(sp(0.2))
dets = [
("1. Biological Determinants",
"Genetic make-up at conception determines physical and mental traits. "
"Genetic diseases include chromosomal anomalies, errors of metabolism, mental retardation, "
"and some types of diabetes. WHO's concept of 'positive health' implies a person should "
"express the full potentialities of their genetic heritage through a healthy environment."),
("2. Behavioural and Socio-cultural Conditions (Lifestyle)",
"Lifestyle - cultural and behavioural patterns and lifelong personal habits (smoking, "
"alcoholism) - is learnt through socialization with family, peers, and mass media. "
"In developed countries: coronary heart disease, obesity, lung cancer, drug addiction are "
"lifestyle-linked. In India: risks relate to poor sanitation, nutrition, and cultural patterns. "
"\"Health is both a consequence of an individual's lifestyle and a factor in determining it.\""),
("3. Environment",
"Hippocrates first related disease to environment (climate, water, air). The external "
"macro-environment includes physical (climate, geography), biological (microorganisms, "
"vectors), and psychosocial (relationships, norms, culture) components. "
"\"It is an established fact that environment has a direct impact on the physical, "
"mental and social well-being of those living in it.\""),
("4. Socio-economic Conditions",
"For the majority of the world's people, health status is determined primarily by "
"socio-economic development: per capita GNP, education, nutrition, employment, housing, "
"and the political system. The four key sub-determinants are: "
"(i) Economic status, (ii) Education, (iii) Occupation, and (iv) Political system."),
("5. Health Services",
"Health and family welfare services cover treatment, prevention, and promotion. "
"Important caveat: \"Health care does not produce good health.\" "
"There is a strong correlation between GNP and life expectancy, but NO significant "
"correlation between medical density and life expectancy. "
"Health services must be embedded within broader social development."),
("6. Ageing of the Population",
"Rapid population ageing leads to increased prevalence of chronic diseases and disabilities. "
"By 2020, over 1.4 billion people aged 60+ were estimated globally, two-thirds in "
"developing countries. This demands special attention in health planning."),
("7. Gender",
"Women's health is a distinct determinant. The Global Commission on Women's Health (1993) "
"highlighted nutrition, reproductive health, violence, ageing, lifestyle, and occupational "
"environment. Female education and empowerment are specifically recognised as critical "
"health drivers (the Kerala example: 97.9% female literacy → IMR of 10 vs national 34)."),
("8. Other Factors",
"Information and communication technologies enable access to medical knowledge. "
"Intersectoral systems - food, agriculture, education, industry, social welfare, rural "
"development - contribute significantly to population health. "
"\"Medicine is not the sole contributor to the health and well-being of population.\""),
]
for title, desc in dets:
story.append(Paragraph(title, sSubHead))
story.append(Paragraph(desc, sBody))
story.append(hr())
story.append(sp(0.2))
# ════════════════════════════════════════════════════════════════════════════
# SECTION 2 - SOCIO-ECONOMIC CONDITIONS (DEEP DIVE)
# ════════════════════════════════════════════════════════════════════════════
story.append(section_header("Socio-economic Conditions: Deep Dive"))
story.append(sp(0.2))
# Economic status
story.append(Paragraph("(i) Economic Status", sSubHead))
story.append(Paragraph(
"Per capita GNP is the most widely accepted measure of economic performance. "
"Economic status determines purchasing power, standard of living, quality of life, family size, "
"and patterns of disease. Ironically, <b>affluence also causes illness</b> - "
"higher rates of coronary heart disease, diabetes and obesity in upper socio-economic groups.",
sBody))
# Kerala example
story.append(Paragraph("(ii) Education - The Kerala Example", sSubHead))
story.append(Paragraph(
"\"The world map of illiteracy closely coincides with the maps of poverty, malnutrition, "
"ill-health, high infant and child mortality rates.\" Education compensates for poverty "
"even without abundant health facilities.",
sBody))
story.append(Paragraph(
"Kerala's IMR of <b>10</b> (vs all-India <b>34</b>, 2016) is attributed to its "
"female literacy rate of <b>97.9%</b> (vs national 68.4%). "
"This is Park's most cited SDOH example.",
sBody))
# GNP vs Life expectancy table
story.append(sp(0.2))
story.append(Paragraph("Income vs. Health Outcomes - SEAR Countries (2018)", sSubHead))
table_data = [
[Paragraph("Country", sTableHead),
Paragraph("Per Capita GNI PPP (USD, 2019)", sTableHead),
Paragraph("Life Expectancy at Birth", sTableHead),
Paragraph("Infant Mortality Rate", sTableHead)],
["Nepal", "3,610", "70.0", "27"],
["India", "6,920", "69.0", "30"],
["Bangladesh", "5,200", "72.0", "25"],
["Bhutan", "11,230", "71.0", "25"],
["Indonesia", "11,070", "72.0", "21"],
["Myanmar", "5,170", "67.0", "37"],
["Sri Lanka", "13,260", "77.0", "6"],
["Maldives", "18,380", "79.0", "7"],
["Thailand", "18,570", "77.0", "8"],
]
col_w = [3.5*cm, 5*cm, 4.5*cm, 4*cm]
tbl = Table(table_data, colWidths=col_w)
tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), DARK_RED),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 9),
("ALIGN", (1,0), (-1,-1), "CENTER"),
("ALIGN", (0,0), (0,-1), "LEFT"),
("ROWBACKGROUNDS",(0,1),(-1,-1), [WHITE, LIGHT_GREY]),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#CCCCCC")),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING",(0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 6),
]))
story.append(tbl)
story.append(Paragraph("Source: Park's Textbook (Table 6)", sFooter))
story.append(sp(0.3))
# Occupation & Political system
story.append(Paragraph("(iii) Occupation", sSubHead))
story.append(Paragraph(
"\"The very state of being employed in productive work promotes health, because the unemployed "
"usually show a higher incidence of ill-health and death. For many, loss of work may mean loss "
"of income and status. It can cause psychological and social damage.\"",
sBody))
story.append(Paragraph("(iv) Political System", sSubHead))
story.append(Paragraph(
"\"Often the main obstacles to the implementation of health technologies are not technical, "
"but rather political.\" WHO target: at least <b>5% of GNP on health care</b>. "
"India spends approximately <b>1% of GNP</b> on health. "
"Social, economic and political actions are required to eliminate health hazards in "
"people's working and living environments.",
sBody))
story.append(sp(0.3))
# ════════════════════════════════════════════════════════════════════════════
# SECTION 3 - POVERTY
# ════════════════════════════════════════════════════════════════════════════
story.append(section_header("Poverty: The Greatest Single Threat to Health"))
story.append(sp(0.2))
story.append(Paragraph(
"The Jakarta Declaration (1997) - cited by Park - states: "
"<i>\"Above all, poverty is the greatest threat to health.\"</i>",
sBody))
story.append(Paragraph(
"\"Poverty wields its destructive influence at every stage of human life from the moment of "
"conception to the grave. Poverty is the main reason why babies are not vaccinated, clean water "
"and sanitation are not provided, and curative drugs and other treatments are unavailable.\"",
sQuote))
story.append(Paragraph("Health consequences of poverty (Park):", sSubHead))
for item in [
"Low life expectancy and high infant/maternal mortality",
"Low birth weight babies",
"Higher risk of disability and handicap",
"Mental illness, stress, suicide, family disintegration",
"Substance abuse",
"Higher exposure to unhealthy home and work environments",
"Malnutrition leading to frequent illness and slower recovery",
"When a breadwinner falls ill, family copes by reducing food consumption - harming all members",
]:
story.append(bullet(item))
story.append(sp(0.3))
# ════════════════════════════════════════════════════════════════════════════
# SECTION 4 - COMMUNITY HEALTH & SOCIAL MEDICINE
# ════════════════════════════════════════════════════════════════════════════
story.append(section_header("Social Medicine and Community Health"))
story.append(sp(0.2))
story.append(Paragraph("Origin of Social Medicine", sSubHead))
story.append(Paragraph(
"The term was introduced by <b>Jules Guerin (French physician, 1848)</b>. "
"In <b>1911</b>, Alfred Grotjahn of Berlin revived it, stressing social factors as "
"determinants of health and disease.",
sBody))
story.append(Paragraph(
"Professor Crew of Edinburgh defined it: <i>\"The laboratory to practice social medicine is "
"the whole community; the tools for diagnosing community ills are epidemiology and biostatistics; "
"and social therapy does not consist in administration of drugs, but social and political action "
"for the betterment of conditions of life of man.\"</i>",
sQuote))
story.append(Paragraph("SDOH in Community Diseases: Tuberculosis Example", sSubHead))
story.append(Paragraph(
"\"Tuberculosis is a social disease with medical aspects. Social factors include poor quality "
"of life, poor housing and overcrowding, undernutrition, smoking, alcohol abuse, lack of "
"education, and large families.\" TB began to decline in the western world <b>long before "
"chemotherapeutic drugs</b> - attributed to improvements in quality of life.",
sBody))
story.append(sp(0.3))
# ════════════════════════════════════════════════════════════════════════════
# SECTION 5 - HEALTH PROMOTION (Ottawa Charter)
# ════════════════════════════════════════════════════════════════════════════
story.append(section_header("Health Promotion: Addressing SDOH (Ottawa Charter)"))
story.append(sp(0.2))
story.append(Paragraph(
"Park presents the Ottawa Charter's five action areas as the framework for acting on SDOH:",
sBody))
actions = [
("1. Build Healthy Public Policy",
"Embed health in all policies across all sectors and levels of government."),
("2. Create Supportive Environments for Health",
"Protect the natural and built environments; promote conservation and sustainable resources."),
("3. Strengthen Community Action for Health",
"Empower communities to set priorities, plan, and implement strategies for better health."),
("4. Develop Personal Skills",
"Support personal and social development through education, life skills, and health information."),
("5. Re-orient Health Services",
"Health sector must move beyond clinical care toward health promotion and prevention."),
]
action_data = [[Paragraph(a, ParagraphStyle("ah", fontName="Helvetica-Bold", fontSize=9,
textColor=DARK_RED, leading=12)),
Paragraph(d, ParagraphStyle("ad", fontName="Helvetica", fontSize=9,
textColor=DARK_GREY, leading=12))]
for a, d in actions]
a_tbl = Table(action_data, colWidths=[5.5*cm, 11.5*cm])
a_tbl.setStyle(TableStyle([
("VALIGN", (0,0), (-1,-1), "TOP"),
("ROWBACKGROUNDS",(0,0),(-1,-1), [WHITE, LIGHT_GREY]),
("GRID", (0,0), (-1,-1), 0.3, colors.HexColor("#DDDDDD")),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING",(0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 7),
]))
story.append(a_tbl)
story.append(sp(0.3))
# ════════════════════════════════════════════════════════════════════════════
# SECTION 6 - SUMMARY TABLE
# ════════════════════════════════════════════════════════════════════════════
story.append(section_header("Quick Reference: SDOH and Health Impact"))
story.append(sp(0.2))
summary_rows = [
[Paragraph("Determinant", sTableHead),
Paragraph("Key Health Impact", sTableHead),
Paragraph("Community Well-being Effect", sTableHead)],
["Poverty / Low income",
"Low life expectancy, high IMR, malnutrition",
"Disease burden, family disintegration, substance abuse"],
["Education (esp. female)",
"Reduces infant & maternal mortality",
"Compensates for poverty; improves health-seeking behaviour"],
["Occupation / Employment",
"Unemployment raises morbidity & mortality",
"Psychological and social damage on job loss"],
["Political system",
"Shapes resource allocation & access",
"Political will determines health spending and equity"],
["Environment",
"Physical, biological & psychosocial exposures",
"Unsafe environments drive infectious & chronic disease"],
["Lifestyle / Behaviour",
"Smoking, diet, physical activity, sanitation",
"Culturally driven patterns across communities"],
["Health services",
"Access to care reduces avoidable deaths",
"Alone insufficient; must pair with social action"],
["Gender",
"Female education critical for child health",
"Empowerment of women improves community health outcomes"],
["Ageing",
"Rising chronic disease and disability burden",
"Demands long-term planning and social support systems"],
["Equity & social justice",
"Inequity itself is a determinant",
"Health gaps widen without redistributive policy"],
]
s_col_w = [4*cm, 6.5*cm, 6.5*cm]
s_tbl = Table(summary_rows, colWidths=s_col_w)
s_tbl.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,0), DARK_RED),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,-1), 8.5),
("ROWBACKGROUNDS",(0,1), (-1,-1), [WHITE, LIGHT_GREY]),
("GRID", (0,0), (-1,-1), 0.4, colors.HexColor("#CCCCCC")),
("VALIGN", (0,0), (-1,-1), "TOP"),
("TOPPADDING", (0,0), (-1,-1), 5),
("BOTTOMPADDING", (0,0), (-1,-1), 5),
("LEFTPADDING", (0,0), (-1,-1), 5),
("FONTNAME", (0,1), (0,-1), "Helvetica-Bold"),
("TEXTCOLOR", (0,1), (0,-1), DARK_RED),
]))
story.append(s_tbl)
story.append(sp(0.5))
# ── Footer note ──────────────────────────────────────────────────────────────
story.append(HRFlowable(width="100%", thickness=1, color=DARK_RED, spaceAfter=6))
story.append(Paragraph(
"Source: Park's Textbook of Preventive and Social Medicine (ISBN 9789382219163) | "
"Compiled by Orris AI | August 2026",
sFooter))
# ── Build ─────────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF saved to: {OUTPUT}")
cd /tmp/workspace/parks-sdoh && python generate_pdf.py 2>&1
ls -lh /tmp/workspace/parks-sdoh/Parks_SDOH_Framework_Summary.pdf
Parks SDOH Framework Summary
PDF Document · PDF
| Section | Contents |
|---|---|
| Cover Banner | Title, subtitle, source attribution |
| Definition | WHO definition as cited in Park's |
| 8 Determinants | All eight determinants with Park's exact descriptions |
| Socio-economic Deep Dive | Economic status, Education (Kerala example), Occupation, Political system |
| SEAR Income-Health Table | Per capita GNI vs. life expectancy vs. IMR for 9 countries |
| Poverty Section | Park's full narrative on poverty as the "greatest threat to health" |
| Social Medicine | History from Jules Guerin (1848) to Alfred Grotjahn to Professor Crew's definition |
| Ottawa Charter | 5 action areas for addressing SDOH |
| Quick Reference Table | All 10+ determinants with their health and community well-being impacts |