Create an answer for md forensic medicine exam , on the topic “ foetal development and its Medicolegal significance for 20 marks and foetal circulation and its Medicolegal importance for 20 marks “ . Suggest diagrams and flow charts and skeletal diagrams

Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Finding Sources
Reading File
Finding Sources
Reading File
Finding Sources
Loading Image
Loading Image
Excellent - I now have the textbook diagrams and all the content needed. Let me compile the complete MD forensic medicine exam answer.

MD Forensic Medicine Exam Answer


QUESTION 1: Foetal Development and Its Medicolegal Significance (20 Marks)


INTRODUCTION

Knowledge of foetal development is of profound medicolegal importance because it helps establish gestational age, viability, maturity at birth, identity, legitimacy, and cause of death in medico-legal investigations involving stillbirths, infanticide, abortions, and disputed paternity.

PART A: FOETAL DEVELOPMENT - STAGES AND MILESTONES

1. Embryonic Period (Weeks 1-8)

The embryonic period spans from fertilisation to the end of week 8. During this time, all major organ systems are laid down. By the end of 8 weeks, the embryo is approximately 3 cm in length and weighs about 3 g. This period is critical for teratogenesis.

2. Foetal Period (Weeks 9 to Birth)

From week 9 onwards, the conceptus is called a foetus. Growth and organ maturation predominate.

DIAGRAM 1: Suggested Flow Chart - Foetal Development Milestones

FERTILISATION (Week 0)
         │
         ▼
    ZYGOTE → MORULA → BLASTOCYST (Week 1)
         │
         ▼
    IMPLANTATION (Week 2)
         │
         ▼
    EMBRYONIC DISC formed (Week 3)
         │
         ▼
    ALL ORGAN SYSTEMS initiated (Weeks 4-8)
    Heart beats, limb buds appear, crown-rump length ~3 cm
         │
         ▼
    FOETAL PERIOD BEGINS (Week 9)
         │
    ┌────┴──────────────────────────────────────────────────────┐
    │                MILESTONES TABLE                           │
    ├──────────────┬───────────┬───────────┬────────────────────┤
    │ Age (weeks)  │ Length    │ Weight    │ Key Milestone      │
    ├──────────────┼───────────┼───────────┼────────────────────┤
    │ 12           │ 8 cm      │ 45 g      │ Ossification begins│
    │              │           │           │ Sex determinable   │
    ├──────────────┼───────────┼───────────┼────────────────────┤
    │ 16           │ 14 cm     │ 110 g     │ Quickening felt    │
    │              │           │           │ Scalp hair appears │
    ├──────────────┼───────────┼───────────┼────────────────────┤
    │ 20           │ 20 cm     │ 340 g     │ Vernix caseosa     │
    │              │           │           │ Lanugo hair        │
    │              │           │           │ Eyebrows, lashes   │
    ├──────────────┼───────────┼───────────┼────────────────────┤
    │ 24           │ 28 cm     │ 600 g     │ Eyelids fused      │
    │              │           │           │ Viable (limit)     │
    ├──────────────┼───────────┼───────────┼────────────────────┤
    │ 28           │ 35 cm     │ 1200 g    │ Eyes open          │
    │              │           │           │ Legally viable     │
    ├──────────────┼───────────┼───────────┼────────────────────┤
    │ 32           │ 40 cm     │ 1800 g    │ Testes descend     │
    │              │           │           │ (Males)            │
    ├──────────────┼───────────┼───────────┼────────────────────┤
    │ 36           │ 45 cm     │ 2400 g    │ Subcutaneous fat   │
    │              │           │           │ Nails reach tips   │
    ├──────────────┼───────────┼───────────┼────────────────────┤
    │ 38 (Term)    │ 50 cm     │ 3200 g    │ Full-term baby     │
    └──────────────┴───────────┴───────────┴────────────────────┘
Memory Aid (Haase's Rule): Crown-to-heel length = Month² (for months 1-5) and Month × 5 (for months 5-10). E.g., at month 5: length = 5 × 5 = 25 cm.

PART B: OSSIFICATION CENTRES - KEY FOR AGE ESTIMATION

DIAGRAM 2: Suggested Skeletal Diagram - Ossification Centres (Medicolegal Importance)

                   OSSIFICATION CENTRE CHART
   ┌──────────────────────────────────────────────────────────┐
   │  AGE         │  OSSIFICATION CENTRE      │ SIGNIFICANCE  │
   ├──────────────┼───────────────────────────┼───────────────┤
   │  7th month   │  Lower femoral epiphysis  │ Proof of 7+   │
   │  (28 weeks)  │  (Béclard's point)        │ months, legal │
   │              │  Size: 5-6 mm             │ viability     │
   ├──────────────┼───────────────────────────┼───────────────┤
   │  9th month   │  Upper tibial epiphysis   │ Proof of 9+   │
   │  (36 weeks)  │  (Poland's point)         │ months, near  │
   │              │  Size: 3-4 mm             │ term          │
   ├──────────────┼───────────────────────────┼───────────────┤
   │  Birth       │  Calcaneus, talus,        │ Maturity      │
   │              │  cuboid present           │               │
   ├──────────────┼───────────────────────────┼───────────────┤
   │  3-6 months  │  Head of humerus appears  │ Postnatal age │
   └──────────────┴───────────────────────────┴───────────────┘

   KEY FORENSIC OSSIFICATION POINTS:
   
   Skull
    ├── Frontal bone (2 centres, ossification by 8th month)
    ├── Parietal bones (present from 3rd month)
    └── Sphenoid (partially ossified at term)
   
   Long Bones
    ├── Femur shaft ossifies: 7th week of embryonic life
    ├── Lower femoral epiphysis: 36 weeks (BÉCLARD'S POINT ★)
    └── Upper tibial epiphysis: 38-40 weeks (POLAND'S POINT ★)
   
   ★ = most important medicolegal ossification landmarks

PART C: EXTERNAL FEATURES FOR ESTIMATING FOETAL AGE

FeatureApprox. Age
Eyelids sealed (fused)9-26 weeks
Eyelids open26-28 weeks
Lanugo (fine downy hair)20-28 weeks; shed by 36 weeks
Vernix caseosa appears20 weeks; shed by 40 weeks
Ear cartilage soft/absent<36 weeks
Ear cartilage firm, springs back>36 weeks (maturity)
Sole creases (deep)>38 weeks
Nails reaching fingertips>36 weeks
Testes in scrotum>36 weeks (male)
Labia majora covering minora>36 weeks (female)
Breast nodule >5 mmTerm (>38 weeks)

PART D: MEDICOLEGAL SIGNIFICANCE OF FOETAL DEVELOPMENT

1. Determination of Gestational Age

The most fundamental medicolegal application. Gestational age determines:
  • Viability - whether a born child could have lived (legally defined as >28 weeks or >1000 g in most jurisdictions)
  • Maturity - relevant in infanticide cases (was the child capable of independent existence?)
  • Date of conception - relevant to legitimacy, paternity disputes, and cases of sexual assault

2. Proof of Live Birth vs. Stillbirth

This distinction is central to charges of infanticide vs. concealment of birth. The signs of maturity in a foetus (presence of Béclard's ossification centre, sole creases, ear cartilage firmness) help determine whether the infant was born alive and viable.

3. Infanticide

Under the Infanticide Act, a mother who kills her newborn within 12 months of birth when the balance of her mind is disturbed by childbirth can be convicted of the lesser offence of infanticide rather than murder. Foetal development assessment proves:
  • The infant was alive and term
  • It was a newborn and not an older infant

4. Abortion - Criminal and Legal Aspects

FLOW CHART: ABORTION - MEDICOLEGAL FRAMEWORK
┌─────────────────────────────────────────────────────────┐
│               ABORTION                                  │
│    (Expulsion of conceptus before viability)            │
│         i.e., before 28 weeks                           │
└───────────────────┬─────────────────────────────────────┘
                    │
          ┌─────────┴─────────┐
          ▼                   ▼
   SPONTANEOUS          INDUCED/CRIMINAL
   (Miscarriage)
                              │
              ┌───────────────┼───────────────┐
              ▼               ▼               ▼
          LEGAL            ILLEGAL         THERAPEUTIC
        (MTP Act)        (Criminal)       (Medical grounds)
        <20 weeks         Any time          <20 weeks
        <24 weeks
        (RCH 2021)
                              │
                              ▼
              FORENSIC EVIDENCE SOUGHT:
              - Foetal parts in uteri/drains
              - Age of foetus (to confirm abortion)
              - Signs of instrumentation
              - Drugs/chemicals used
              - Products of conception
Key point: Development of foetal structures helps the forensic pathologist confirm gestational age and thus whether the MTP Act was violated.

5. Viability

In Indian law (MTP Act), viability is set at 20 weeks (extended to 24 weeks for special categories under the MTP Amendment Act, 2021). In the UK, viability is 24 weeks. Internationally, the WHO defines viability at 22-24 weeks. Assessment requires:
  • Crown-heel length (>35 cm suggests >28 weeks)
  • Weight (>1000 g for viability)
  • Béclard's ossification centre (lower femoral epiphysis, 36 weeks)
  • Lung maturity markers (lecithin:sphingomyelin ratio)

6. Legitimacy and Paternity

The normal gestation period is 280 days (40 weeks) from the LMP, or 266 days from conception. Medicolegally:
  • Minimum gestation: 210 days (7 months) - the "viable minimum"
  • Maximum gestation: 280-300 days (10 months); courts have accepted up to 349 days in exceptional circumstances (British case of Hadlum v Hadlum, 1949)
  • Foetal age assessment helps determine whether conception occurred within a marriage, helping or refuting legitimacy claims

7. Concealment of Birth

Under Section 315/316 IPC (now Section 317-318 BNS 2023), concealing the birth of a child is an offence. Assessment of foetal maturity determines whether the concealed product was a foetus or a viable child.

8. Exhumation Cases

When a foetus is exhumed, post-mortem changes complicate age estimation. The ossification centres are the most reliable markers because:
  • They survive putrefaction
  • They are not affected by maceration
  • Béclard's and Poland's points can be detected even in skeletonised remains

9. Battered Baby Syndrome / Non-Accidental Injury

Skeletal survey in a dead infant reveals:
  • Multiple healing fractures at different stages
  • Metaphyseal chip fractures
  • Subdural haemorrhage Age of fractures can be estimated from callus formation, helping reconstruct the timeline of abuse.

10. Determination of Full Term vs. Premature Birth

Relevant in medical negligence cases (failure to resuscitate a viable premature infant). Markers of prematurity (soft ears, absent creases, lanugo, undescended testes) are documented.

QUESTION 2: Foetal Circulation and Its Medicolegal Importance (20 Marks)


INTRODUCTION

Foetal circulation is uniquely structured to allow oxygenated blood from the placenta to reach the systemic organs while largely bypassing the non-functional lungs. Three anatomical shunts - the ductus venosus, foramen ovale, and ductus arteriosus - characterise this system. Their closure at birth transitions the circulation to the adult pattern. Understanding this is essential in forensic pathology for establishing whether a child was born alive, for interpreting autopsy findings in neonatal deaths, and in cases of sudden unexpected death in infancy (SUDI).
(The Developing Human - Clinically Oriented Embryology, Moore et al.)

DIAGRAM 3: Foetal Circulation (Textbook Diagram)

Fig. 13.46 - Foetal Circulation - The three shunts that permit most blood to bypass the liver and lungs:
Foetal Circulation - showing ductus venosus, foramen ovale, ductus arteriosus and placental connections
Foetal circulation showing oxygen saturation gradients. Red = high O₂ content; Purple = medium O₂; Blue = poor O₂ content. Three shunts bypass the liver and lungs. (Moore, The Developing Human)

PART A: ANATOMY AND PHYSIOLOGY OF FOETAL CIRCULATION

Blood Flow Pathway

FLOW CHART: FOETAL CIRCULATION

         PLACENTA
    (Gas exchange occurs here)
             │
             ▼ (Oxygenated blood)
      UMBILICAL VEIN (1 vein, O₂-rich)
             │
     ┌───────┴───────────┐
     ▼ (50%)             ▼ (50%)
 DUCTUS VENOSUS      HEPATIC SINUSOIDS
 (bypasses liver)     (portal circulation)
     │                   │
     └─────────┬──────────┘
               ▼
        INFERIOR VENA CAVA (IVC)
        (mixed blood - medium O₂)
               │
               ▼
         RIGHT ATRIUM
               │
    ┌──────────┴──────────────┐
    ▼                         ▼
FORAMEN OVALE          RIGHT VENTRICLE
(2/3 blood shunts       (1/3 blood)
 to left atrium)              │
    │                         ▼
    ▼                   PULMONARY TRUNK
 LEFT ATRIUM                  │
    │               ┌─────────┴──────────┐
    ▼               ▼ (10%)              ▼ (90%)
 LEFT VENTRICLE  LUNGS           DUCTUS ARTERIOSUS
    │            (minimal flow)   (bypasses lungs)
    ▼                                    │
ASCENDING AORTA                          ▼
    │                           DESCENDING AORTA
    ▼                                    │
Head, Neck,              ┌──────────────┼─────────────┐
Upper limbs              ▼              ▼              ▼
(Well-oxygenated)    VISCERA       LOWER LIMBS   UMBILICAL ARTERIES (2)
                                                       │
                                                       ▼
                                                   PLACENTA
                                               (Deoxygenated blood
                                               returns for re-oxygenation)

The Three Shunts - Detail

ShuntConnectsFunctionAdult Remnant
Ductus venosusUmbilical vein → IVCBypasses liver; delivers oxygenated blood directly to heartLigamentum venosum
Foramen ovaleRight atrium → Left atriumShunts oxygenated IVC blood to systemic circulation, bypassing lungsFossa ovalis
Ductus arteriosusPulmonary trunk → Descending aortaDiverts right ventricular output away from vasoconstricted lungsLigamentum arteriosum

Umbilical Vessels

VesselNumberContentsAdult Remnant
Umbilical vein1Oxygenated blood FROM placentaLigamentum teres hepatis (round ligament of liver)
Umbilical arteries2Deoxygenated blood TO placentaMedial umbilical ligaments (superior vesical arteries retain patency)
Mnemonic: "AVA" in the umbilical cord - Artery, Vein, Artery (2 arteries, 1 vein)

PART B: TRANSITIONAL CIRCULATION AT BIRTH

Diagram 4: Neonatal Circulation (Textbook Diagram)

Fig. 13.47 - Neonatal Circulation - Adult derivatives of foetal vessels after birth:
Neonatal circulation showing closure of foetal shunts and adult derivatives including ligamentum arteriosum and ligamentum teres
Neonatal circulation after birth. The three shunts that short-circuited blood during foetal life cease to function, and the pulmonary and systemic circulations become separated. (Moore, The Developing Human)

Changes at Birth - Flow Chart

FIRST BREATH
     │
     ▼
Lungs expand → Pulmonary vascular resistance FALLS markedly
                            │
                            ▼
              Pulmonary blood flow INCREASES
                            │
                            ▼
              Left atrial pressure > Right atrial pressure
                            │
                     ┌──────┴──────┐
                     ▼             ▼
          FORAMEN OVALE       DUCTUS ARTERIOSUS
         functionally        blood flow REVERSES
          closes             (aorta → pulmonary trunk)
         (valve pressed      High O₂ + Low PGE₂ →
         against septum       muscular constriction
         secundum)                 │
                                   ▼
                         Permanent fibrous closure
                         by 2-3 months (becomes
                         Ligamentum arteriosum)
         
UMBILICAL CIRCULATION:
     │
     ▼
Cord clamped → Umbilical arteries constrict immediately
               Umbilical vein closes within minutes
               Ductus venosus sphincter constricts
                    │
                    ▼
               All placental blood now enters hepatic sinusoids

Timeline of Shunt Closure

EventTiming
Foramen ovale - functional closureAt birth (first breath)
Foramen ovale - anatomical closure3 months to 1 year
Patent Foramen Ovale (PFO) persists25-30% of adults (normal variant)
Ductus arteriosus - functional closure24-48 hours post-birth
Ductus arteriosus - 20% closedEnd of 24 hours
Ductus arteriosus - 80% closedEnd of 48 hours
Ductus arteriosus - 100% closed96 hours (4 days)
Ductus arteriosus - permanent (ligamentum arteriosum)2-3 months
Ductus venosusWithin hours of birth
Umbilical veinWithin minutes of birth
(The Developing Human, Moore et al.)

PART C: MEDICOLEGAL IMPORTANCE OF FOETAL CIRCULATION

1. HYDROSTATIC TEST (DOCIMASIA PULMONUM) - Most Important Forensic Application

The hydrostatic (lung) test is the primary medicolegal application of foetal circulation physiology.
Principle: In foetal circulation, the lungs receive only ~10% of cardiac output and are atelectatic (collapsed). When a baby breathes for the first time, air enters the alveoli, altering lung density.
HYDROSTATIC TEST - FLOW CHART

Take lungs from dead neonate
           │
           ▼
    Place in water
           │
    ┌──────┴──────────┐
    ▼                 ▼
  FLOAT              SINK
    │                 │
    ▼                 ▼
Child BREATHED     Child DID NOT
after birth         BREATHE / stillborn
(Live birth         (Suggests intrauterine
 established)       death or stillbirth)
    │
    ▼
Subdivide lung lobes
    │
    ▼
Each subdivision floats? → Confirms aeration
    │
    ▼
Microscopy: alveoli expanded?
      → Confirms liveborn
Limitations:
  • Putrefaction gases can cause a stillborn's lung to float (false positive)
  • Manual compression can squeeze air out of a liveborn's lung (false negative)
  • Resuscitation attempts (CPR) can introduce air even without birth
Critical forensic point: The test should be combined with histological examination (expanded alveoli on microscopy), presence of stomach/bowel air, and overall autopsy findings.

2. Patent Ductus Arteriosus (PDA) - Neonatal Death

In premature neonates and those with persistent hypoxia, the ductus arteriosus remains open. PDA:
  • Causes left-to-right shunting → pulmonary oedema → respiratory failure
  • A premature neonate dying of respiratory distress syndrome (RDS) will show a patent DA at autopsy
  • This finding establishes prematurity and may be relevant in negligence cases (failure to close DA pharmacologically with indomethacin)

3. Persistent Foetal Circulation (PFC) / Persistent Pulmonary Hypertension of the Newborn (PPHN)

When neonatal hypoxia, acidosis, or sepsis occurs, the pulmonary vasculature fails to dilate:
  • Ductus arteriosus remains open with right-to-left shunting
  • Foramen ovale may reopen with right-to-left shunting
  • Severe hypoxaemia and metabolic acidosis ensue
PPHN - FORENSIC SIGNIFICANCE CHART:

PPHN found at autopsy
        │
        ▼
    CAUSES:
    ├── Meconium aspiration (birth asphyxia)
    ├── Sepsis (Group B Streptococcus)
    ├── Congenital heart disease
    ├── Diaphragmatic hernia
    └── Idiopathic
        │
        ▼
MEDICOLEGAL IMPLICATION:
Was PPHN due to negligent management?
- Failure to resuscitate → birth asphyxia → PPHN
- Missed sepsis → uncontrolled infection → PPHN

4. Live Birth vs. Stillbirth - Umbilical Cord Evidence

The umbilical cord provides important medicolegal information related to foetal circulation:
FindingSignificance
Fresh cut / torn cordLive birth possible; infanticide suspected
Naturally separated / ligated cordNormal neonatal care occurred
Thrombosis in umbilical vesselsIntrauterine death
Wharton's jelly intactRecent birth
Cord blood availableDNA identification, metabolic disorders
Single umbilical artery (only one artery)Associated with renal agenesis; Potter sequence

5. Sudden Unexpected Death in Infancy (SUDI) / SIDS

The persistence of foetal haemoglobin (HbF) and patent foramen ovale are relevant in SIDS investigations:
  • HbF present in blood in the first months of life: can establish age at death
  • PFO present in ~25% of the population and is NOT considered a cause of SIDS in isolation
  • Right-to-left shunting via PFO during hypoxic/cyanotic episodes may contribute to paradoxical embolism

6. Congenital Heart Disease (CHD) and Neonatal Death

Foetal circulation anatomy explains why certain CHDs are well-tolerated in utero but become immediately life-threatening at birth:
CHDReason tolerated in uteroWhat happens at birth
Transposition of great arteriesBoth circuits deliver mixed blood via shuntsShunts close → no mixing → death
Hypoplastic left heartRight ventricle handles all outputLeft ventricle must function → cardiac failure
Coarctation of aortaDuctus arteriosus maintains lower body perfusionDA closes → lower body ischaemia
Pulmonary atresiaDA feeds pulmonary circulationDA closes → severe hypoxia
These findings at neonatal autopsy may raise questions about antenatal diagnosis and whether appropriate counselling was offered (medical negligence claims).

7. Erythroblastosis Fetalis / Haemolytic Disease of the Newborn (HDN)

Relevant to foetal circulation because:
  • Severe haemolysis causes hydrops fetalis (severe foetal oedema)
  • High-output cardiac failure with massive hepatosplenomegaly
  • The placenta shows villous oedema and hyperplasia
  • Autopsy findings: enlarged heart, oedematous organs, pale liver, severe anaemia
This may arise in medicolegal context in Rh-negative mothers not given anti-D prophylaxis (medical negligence).

8. Birth Asphyxia and Foetal Circulation

Birth asphyxia causes:
  • Pulmonary vasoconstriction → persistent foetal circulation
  • Hypoxic-ischaemic encephalopathy (HIE) → brain injury
  • Meconium passage (foetal distress marker)
  • Right-to-left shunting perpetuates hypoxia
At autopsy, the following findings establish asphyxial death with correlation to foetal circulation:
  • Bilateral adrenal haemorrhage (stress response)
  • Petechiae on thymic surface (classic Tardieu's spots)
  • Pulmonary haemorrhage / haemorrhagic congestion
  • Patent DA (sign of persistence of foetal pattern)

SUMMARY TABLES

Table 1: Foetal Structures and Adult Remnants

Foetal StructureFunctionAdult Remnant
Ductus venosusBypasses liverLigamentum venosum
Foramen ovaleBypasses lungs (R→L shunt)Fossa ovalis
Ductus arteriosusBypasses lungs (pulm trunk→aorta)Ligamentum arteriosum
Umbilical veinO₂-rich blood from placentaLigamentum teres hepatis
Umbilical arteriesDeoxygenated blood to placentaMedial umbilical ligaments
AllantoisUrine drainageMedian umbilical ligament (urachus)

Table 2: Summary of Medicolegal Significance

TopicMedicolegal Issue
Foetal age/developmentAbortion law, viability, legitimacy, identification
Béclard's ossification point36 weeks gestation (maturity, legal viability)
Hydrostatic testLive birth vs. stillbirth (infanticide charges)
Umbilical cord findingsLive birth, infanticide, intrauterine death
Patent DA at autopsyPrematurity, negligence, RDS
PPHNBirth asphyxia, medical negligence
Congenital heart diseaseAntenatal care negligence, neonatal death
Foetal haemoglobinAge at death (forensic biochemistry)

IMPORTANT MEDICOLEGAL DEFINITIONS

  • Viability: The capacity of the foetus to survive independently outside the uterus. In India (MTP Act): 20 weeks; legally: 28 weeks; WHO: 22-24 weeks.
  • Stillbirth: Birth of a baby after 28 weeks of gestation with no signs of life. Must be registered but no birth certificate.
  • Live birth (WHO): Any product of conception that, after expulsion, shows any evidence of life (heartbeat, respiratory effort, pulsation of cord, voluntary muscle movement).
  • Infanticide: Unlawful killing of a newborn child. If done by the mother within 12 months of birth, it may be charged under the Infanticide Act.
  • Béclard's ossification centre: Ossification centre in the lower femoral epiphysis, appears at 36 weeks. Its presence confirms a gestational age of at least 8-9 months.

Sources: Moore K, The Developing Human - Clinically Oriented Embryology (p.869-876); Sabiston Textbook of Surgery; Medical Physiology (Boron & Boulpaep); Parikh's Textbook of Medical Jurisprudence, Forensic Medicine and Toxicology; Reddy's The Essentials of Forensic Medicine and Toxicology.

TIPS FOR DIAGRAMS TO DRAW IN EXAM

  1. Foetal circulation flowchart (umbilical vein → ductus venosus → IVC → right atrium → foramen ovale → left side OR ductus arteriosus → aorta → umbilical arteries)
  2. Skeleton diagram showing Béclard's (lower femoral epiphysis) and Poland's (upper tibial epiphysis) ossification centres with ages
  3. Hydrostatic test flowchart (lung floats/sinks → live birth/stillbirth)
  4. Foetal to neonatal transition table (ductus venosus → ligamentum venosum, etc.)
  5. PPHN cycle diagram (hypoxia → pulmonary vasoconstriction → right-to-left shunt → more hypoxia)
  6. Haase's rule diagram on a timeline (cm length vs. gestational month)

Create a quick reference PDF cheat sheet on ossification centres and medicolegal definitions

Reading File
Running Command

ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace not found"

Running Command

mkdir -p /home/daytona/workspace/forensic-cheatsheet && python3 -c "import reportlab; print('reportlab ok')"

Writing File

~/forensic-cheatsheet/make_cheatsheet.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import mm, cm
from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    HRFlowable, KeepTogether
)
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import PageBreak

OUTPUT = "/home/daytona/workspace/forensic-cheatsheet/Forensic_Ossification_Cheatsheet.pdf"

# ── Colour palette ──────────────────────────────────────────────────────────
NAVY     = colors.HexColor("#0D2B55")
CRIMSON  = colors.HexColor("#B22222")
GOLD     = colors.HexColor("#C8960C")
LTBLUE   = colors.HexColor("#D6E8F7")
LTGOLD   = colors.HexColor("#FFF8E1")
LTGREEN  = colors.HexColor("#E8F5E9")
LTRED    = colors.HexColor("#FFEBEE")
WHITE    = colors.white
GREY     = colors.HexColor("#F0F0F0")
DARKGREY = colors.HexColor("#555555")
MIDBLUE  = colors.HexColor("#1A4F8A")
TEAL     = colors.HexColor("#00695C")

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    leftMargin=12*mm, rightMargin=12*mm,
    topMargin=12*mm, bottomMargin=12*mm,
    title="Forensic Medicine Quick Reference – Ossification & Medicolegal Definitions",
    author="Orris MD Forensics"
)

styles = getSampleStyleSheet()

def S(name, **kw):
    """Helper: clone a base style with overrides."""
    base = styles["Normal"]
    return ParagraphStyle(name, parent=base, **kw)

# ── Custom styles ────────────────────────────────────────────────────────────
TITLE_STYLE = S("Title",
    fontSize=18, leading=22, textColor=WHITE,
    fontName="Helvetica-Bold", alignment=TA_CENTER)

SUBTITLE_STYLE = S("Subtitle",
    fontSize=10, leading=13, textColor=LTBLUE,
    fontName="Helvetica", alignment=TA_CENTER)

SECTION_STYLE = S("Section",
    fontSize=11, leading=14, textColor=WHITE,
    fontName="Helvetica-Bold", alignment=TA_LEFT,
    leftIndent=4, spaceBefore=6, spaceAfter=2)

SUBSECTION_STYLE = S("Subsection",
    fontSize=9.5, leading=12, textColor=NAVY,
    fontName="Helvetica-Bold", spaceBefore=4, spaceAfter=2)

BODY_STYLE = S("Body",
    fontSize=8.5, leading=11.5, textColor=colors.black,
    fontName="Helvetica", spaceAfter=2)

BULLET_STYLE = S("Bullet",
    fontSize=8.5, leading=11.5, textColor=colors.black,
    fontName="Helvetica", leftIndent=10, spaceAfter=1,
    bulletIndent=4)

NOTE_STYLE = S("Note",
    fontSize=7.5, leading=10, textColor=DARKGREY,
    fontName="Helvetica-Oblique", leftIndent=6)

MNEMONIC_STYLE = S("Mnemonic",
    fontSize=8.5, leading=11, textColor=TEAL,
    fontName="Helvetica-Bold", leftIndent=6, spaceAfter=2)

HIGHLIGHT_STYLE = S("Highlight",
    fontSize=8.5, leading=11.5, textColor=CRIMSON,
    fontName="Helvetica-Bold")

TABLE_HDR = S("TableHdr",
    fontSize=8, leading=10, textColor=WHITE,
    fontName="Helvetica-Bold", alignment=TA_CENTER)

TABLE_CELL = S("TableCell",
    fontSize=7.8, leading=10, textColor=colors.black,
    fontName="Helvetica")

TABLE_CELL_BOLD = S("TableCellBold",
    fontSize=7.8, leading=10, textColor=NAVY,
    fontName="Helvetica-Bold")

TABLE_CELL_RED = S("TableCellRed",
    fontSize=7.8, leading=10, textColor=CRIMSON,
    fontName="Helvetica-Bold", alignment=TA_CENTER)

# ── Helpers ──────────────────────────────────────────────────────────────────

def section_header(title, bg=NAVY):
    data = [[Paragraph(f"  {title}", SECTION_STYLE)]]
    t = Table(data, colWidths=[186*mm])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), bg),
        ("ROWPADDING", (0,0), (-1,-1), 4),
        ("BOX", (0,0), (-1,-1), 0.5, GOLD),
    ]))
    return t

def mini_header(title, bg=MIDBLUE):
    data = [[Paragraph(f"  {title}", S("mh", parent=SECTION_STYLE, fontSize=9, leading=12))]]
    t = Table(data, colWidths=[186*mm])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), bg),
        ("ROWPADDING", (0,0), (-1,-1), 3),
        ("BOX", (0,0), (-1,-1), 0.3, GOLD),
    ]))
    return t

def make_table(headers, rows, col_widths, row_colors=None, stripe=True):
    hdr_row = [Paragraph(h, TABLE_HDR) for h in headers]
    data = [hdr_row]
    for i, row in enumerate(rows):
        styled = []
        for j, cell in enumerate(row):
            if isinstance(cell, tuple):
                styled.append(Paragraph(cell[0], cell[1]))
            else:
                styled.append(Paragraph(str(cell), TABLE_CELL))
        data.append(styled)

    t = Table(data, colWidths=col_widths, repeatRows=1)
    base_style = [
        ("BACKGROUND", (0,0), (-1,0), NAVY),
        ("GRID", (0,0), (-1,-1), 0.3, colors.HexColor("#CCCCCC")),
        ("ROWPADDING", (0,0), (-1,-1), 3),
        ("VALIGN", (0,0), (-1,-1), "MIDDLE"),
    ]
    if stripe:
        for i in range(1, len(data)):
            bg = LTBLUE if i % 2 == 0 else WHITE
            base_style.append(("BACKGROUND", (0,i), (-1,i), bg))
    t.setStyle(TableStyle(base_style))
    return t

def hr():
    return HRFlowable(width="100%", thickness=0.5, color=GOLD, spaceAfter=3, spaceBefore=3)

# ─────────────────────────────────────────────────────────────────────────────
# PAGE 1 BUILD
# ─────────────────────────────────────────────────────────────────────────────
story = []

# ── Cover banner ─────────────────────────────────────────────────────────────
banner_data = [[
    Paragraph("FORENSIC MEDICINE", TITLE_STYLE),
    Paragraph("QUICK REFERENCE CHEAT SHEET", TITLE_STYLE),
]]
banner = Table([[Paragraph("FORENSIC MEDICINE  |  QUICK REFERENCE CHEAT SHEET", TITLE_STYLE)]],
               colWidths=[186*mm])
banner.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), NAVY),
    ("ROWPADDING", (0,0), (-1,-1), 10),
    ("BOX", (0,0), (-1,-1), 1.5, GOLD),
]))
story.append(banner)
story.append(Paragraph(
    "Ossification Centres for Age Estimation  •  Foetal Development Milestones  •  Medicolegal Definitions",
    SUBTITLE_STYLE))
story.append(Spacer(1, 4*mm))

# ═══════════════════════════════════════════════════════════════════════════
# SECTION 1 – HAASE'S RULE
# ═══════════════════════════════════════════════════════════════════════════
story.append(section_header("1.  HAASE'S RULE  —  Crown-to-Heel Length Estimation"))
story.append(Spacer(1, 2*mm))
story.append(Paragraph(
    "For the first 5 months: <b>Length (cm) = Month²</b>  |  "
    "For months 5–10: <b>Length (cm) = Month × 5</b>",
    BODY_STYLE))
story.append(Spacer(1,1*mm))

haase_headers = ["Month", "Length (cm)", "Weight (approx)", "Key Feature"]
haase_rows = [
    ["1", "1", "—", "Embryo; heart begins to beat"],
    ["2", "4", "—", "Limb buds; all organs forming"],
    ["3", "9", "~45 g", "Ossification begins; sex determinable"],
    ["4", "16", "~110 g", "Quickening felt; scalp hair"],
    ["5 ★", "25", "~340 g", "Vernix caseosa; lanugo; eyebrows"],
    ["6", "30", "~600 g", "Eyelids fused; limit of viability"],
    ["7 ★", "35", "~1200 g", "Eyes open; Béclard's centre (lower femur)"],
    ["8", "40", "~1800 g", "Testes begin descent (male)"],
    ["9 ★", "45", "~2400 g", "Poland's centre (upper tibia); nails reach tips"],
    ["10 (Term)", "50", "~3200 g", "Ear cartilage firm; sole creases; term"],
]
haase_widths = [18*mm, 28*mm, 36*mm, 104*mm]
story.append(make_table(haase_headers, haase_rows, haase_widths))
story.append(Paragraph("★ = critical medicolegal age points", NOTE_STYLE))
story.append(Spacer(1, 3*mm))

# ═══════════════════════════════════════════════════════════════════════════
# SECTION 2 – OSSIFICATION CENTRES TABLE
# ═══════════════════════════════════════════════════════════════════════════
story.append(section_header("2.  OSSIFICATION CENTRES  —  Medicolegal Significance", bg=CRIMSON))
story.append(Spacer(1, 2*mm))

osc_headers = ["Centre", "Location", "Age Appears", "Size at Term", "Medicolegal Significance"]
osc_rows = [
    [
        ("BÉCLARD'S POINT ★★★", TABLE_CELL_RED),
        "Lower femoral epiphysis",
        "36 weeks (9th month)",
        "5–6 mm",
        "Proves ≥36 weeks gestation; legal viability established; survives putrefaction"
    ],
    [
        ("POLAND'S POINT ★★", TABLE_CELL_RED),
        "Upper tibial epiphysis",
        "38–40 weeks (10th month)",
        "3–4 mm",
        "Confirms near-term / full-term; used with Béclard's for corroboration"
    ],
    ["Calcaneus", "Heel bone", "5th–6th foetal month", "Present at birth", "Confirms >24 weeks; seen on X-ray in foetal remains"],
    ["Talus", "Ankle bone", "7th–8th foetal month", "Present at birth", "Part of maturity assessment"],
    ["Cuboid", "Lateral mid-foot", "Near term (38–40 wks)", "Small at birth", "Confirms term birth"],
    ["Head of humerus", "Proximal humerus", "1st postnatal year (3–6 mo)", "—", "Postnatal age estimation"],
    ["Capitulum of humerus", "Lateral condyle", "1–2 years postnatal", "—", "Child age estimation in abuse cases"],
    ["Femoral head", "Proximal femur", "4–6 months postnatal", "—", "Postnatal age / neglect / AVN"],
    ["Iliac crest", "Pelvis", "Adolescence (~15 yrs)", "—", "Age estimation 15–23 yrs"],
    ["Medial clavicle epiphysis", "Sternoclavicular joint", "18–20 years", "Fused by 25–30 yrs", "Age 18–30 estimation; most reliable adult marker"],
]
osc_widths = [38*mm, 32*mm, 28*mm, 20*mm, 68*mm]
story.append(make_table(osc_headers, osc_rows, osc_widths))
story.append(Paragraph(
    "★★★ BÉCLARD'S POINT is the single most important ossification centre in forensic practice.",
    MNEMONIC_STYLE))
story.append(Spacer(1, 2*mm))

# ═══════════════════════════════════════════════════════════════════════════
# SECTION 3 – EXTERNAL MATURITY SIGNS
# ═══════════════════════════════════════════════════════════════════════════
story.append(section_header("3.  EXTERNAL SIGNS OF FOETAL MATURITY"))
story.append(Spacer(1, 2*mm))

ext_headers = ["Feature", "Preterm (<36 wks)", "Term (≥38 wks)", "Medicolegal Note"]
ext_rows = [
    ["Ear cartilage", "Soft, folds easily, stays folded", "Firm, springs back instantly", "Key maturity marker at autopsy"],
    ["Sole creases", "Absent or only anterior creases", "Deep creases covering entire sole", "Score-based maturity grading"],
    ["Lanugo hair", "Abundant over body", "Only on shoulders/back", "Shed by 36–38 weeks"],
    ["Vernix caseosa", "Thick coating", "Minimal or absent", "Protective, shed near term"],
    ["Nails", "Soft, do not reach fingertips", "Reach or exceed fingertips", "Maturity + overdue if beyond tips"],
    ["Breast nodule", "<5 mm or absent", "≥7 mm diameter", "Ballard/New Ballard score"],
    ["Genitalia (M)", "Testes undescended; empty scrotum", "Testes in scrotum; rugae present", "Testes descend ~36 wks"],
    ["Genitalia (F)", "Labia minora prominent", "Labia majora cover minora completely", "Fat deposition in majora at term"],
    ["Skin", "Thin, gelatinous, transparent", "Thick, opaque, peeling", "Premature = thin, veins visible"],
    ["Eyelids", "Fused shut <26 wks", "Open by 26–28 wks", "Fused = severe prematurity"],
]
ext_widths = [28*mm, 42*mm, 42*mm, 74*mm]
story.append(make_table(ext_headers, ext_rows, ext_widths))
story.append(Spacer(1, 3*mm))

story.append(PageBreak())

# ═══════════════════════════════════════════════════════════════════════════
# SECTION 4 – MEDICOLEGAL DEFINITIONS
# ═══════════════════════════════════════════════════════════════════════════
story.append(section_header("4.  ESSENTIAL MEDICOLEGAL DEFINITIONS"))
story.append(Spacer(1, 2*mm))

definitions = [
    ("VIABILITY",
     "Capacity of a foetus to survive independently after delivery. "
     "India (MTP Act): 20 weeks (24 wks for special categories under 2021 Amendment). "
     "UK: 24 weeks. WHO: 22–24 weeks. Legal (India courts): 28 weeks / ≥1000 g."),
    ("LIVE BIRTH (WHO)",
     "Complete expulsion/extraction from mother of a product of conception that, AFTER separation, "
     "breathes OR shows any other evidence of life (heartbeat, pulsation of cord, voluntary muscle movement), "
     "regardless of gestational age."),
    ("STILLBIRTH",
     "Birth after 28 completed weeks of gestation of a baby that shows NO sign of life (no breathing, "
     "no heartbeat, no voluntary movement). Must be registered. No birth certificate issued (India). "
     "Macerated stillbirth = intrauterine death; Fresh stillbirth = intrapartum death."),
    ("INFANTICIDE",
     "Unlawful killing of a newborn infant by wilful act or omission. Under Infanticide Act (UK): "
     "mother who kills her child within 12 months of birth while balance of mind disturbed by effects "
     "of birth/lactation is guilty of infanticide (not murder). India: Sections 302/304 IPC apply."),
    ("CONCEALMENT OF BIRTH",
     "Disposal of the body of a child after birth to conceal the fact of its birth, whether the child "
     "was born alive or dead. India: Section 318 IPC (now Section 319 BNS 2023). Punishable by up to "
     "2 years imprisonment ± fine. No need to prove child was born alive."),
    ("FOETICIDE",
     "Willful destruction of a foetus in the uterus. Includes criminal abortion. "
     "India: Punishable under Section 312 IPC (illegal abortion) with up to 7 years imprisonment."),
    ("ABORTION",
     "Expulsion of products of conception before viability (before 20–28 weeks depending on jurisdiction). "
     "Spontaneous = miscarriage. Induced = may be legal (MTP Act) or illegal (criminal). "
     "MTP Act 1971 (amended 2021): Legal abortion up to 20 weeks (routine), up to 24 weeks (special categories)."),
    ("LEGITIMACY",
     "A child is legitimate if born within a valid marriage or within 280 days after dissolution of marriage "
     "(presumption). Minimum gestation 210 days (7 months). Maximum accepted by courts: 280–300 days (some "
     "courts accepted up to 349 days). DNA testing now definitive."),
    ("GESTATIONAL AGE",
     "Duration of pregnancy calculated from the FIRST DAY of the last menstrual period (LMP). "
     "Normal = 280 days (40 weeks) from LMP or 266 days from ovulation/fertilisation. "
     "Established by: USG, fundal height, foetal parameters, ossification centres at autopsy."),
    ("HYDROSTATIC TEST (Docimasia Pulmonum)",
     "Medicolegal test for live birth. Principle: foetal lungs are atelectatic (density >1, SINK). "
     "After breathing, air expands alveoli (density <1, FLOAT). "
     "Positive (floats) = baby breathed after birth. "
     "Limitations: putrefaction causes false +ve; CPR/resuscitation causes false +ve; forcible compression causes false -ve."),
    ("BIRTH ASPHYXIA",
     "Failure to establish adequate respiration at birth due to insufficient oxygen (hypoxia) and/or "
     "accumulation of CO2 (hypercapnia) and lactic acid. Causes: cord prolapse, placental abruption, "
     "obstructed labour, meconium aspiration. Leads to HIE. Medicolegal: major cause of medical negligence claims."),
    ("MACERATION",
     "Post-mortem autolysis of a stillborn foetus retained in utero after intrauterine death. "
     "Features: skin slippage, discolouration (reddish-brown), softening of tissues, overlapping skull bones. "
     "Takes 12–24 hours to begin; full maceration in 3–5 days. Confirms intrauterine death."),
    ("MUMMIFICATION (FOETAL)",
     "Drying and shrinkage of a foetus retained in utero for prolonged period. "
     "Seen in lithopedion (calcified ectopic foetus, years to decades). "
     "Forensic importance: establishes retained dead foetus vs. recent delivery."),
    ("CAPUT SUCCEDANEUM",
     "Diffuse oedematous swelling of the scalp crossing suture lines, formed during labour due to "
     "pressure of the presenting part. Present at birth, resolves in 1–2 days. "
     "Distinguish from cephalhaematoma (subperiosteal, does NOT cross sutures, blood takes weeks to resolve)."),
    ("BIRTH INJURY",
     "Physical injury sustained by neonate during labour and delivery. Includes: cephalhaematoma, "
     "intracranial haemorrhage, clavicular fracture (most common), brachial plexus injury (Erb's palsy), "
     "facial nerve palsy. Medicolegal: relevant in obstetric negligence claims."),
    ("TARDIEU'S SPOTS",
     "Petechial haemorrhages on visceral pleura, epicardium, and thymic surface due to increased venous "
     "pressure during asphyxia. Classic sign of asphyxial death. Also seen in birth asphyxia. "
     "Must be distinguished from post-mortem hypostasis."),
    ("UMBILICAL CORD — FORENSIC",
     "Normal cord: 50–55 cm long, 2 arteries + 1 vein (AVA). "
     "Single umbilical artery: associated with renal agenesis, trisomy 18. "
     "True knot: may cause foetal death. "
     "Cord around neck (nuchal cord): present in 20–30% deliveries, usually harmless. "
     "Fresh cut/torn cord with live birth features: infanticide suspected."),
    ("MTP ACT 1971 (AMENDED 2021)",
     "Medical Termination of Pregnancy Act (India). "
     "Up to 20 weeks: one registered medical practitioner's opinion. "
     "20–24 weeks: two practitioners required; only for special categories (rape, incest, foetal abnormality, disability). "
     "Beyond 24 weeks: only for substantial foetal abnormality — requires Medical Board approval. "
     "Violation: criminal abortion (Section 312–316 IPC)."),
]

def_widths = [42*mm, 144*mm]
def_data = [[Paragraph("TERM", TABLE_HDR), Paragraph("DEFINITION", TABLE_HDR)]]
for i, (term, defn) in enumerate(definitions):
    bg = LTGOLD if i % 2 == 0 else WHITE
    def_data.append([
        Paragraph(term, TABLE_CELL_BOLD),
        Paragraph(defn, TABLE_CELL)
    ])
def_table = Table(def_data, colWidths=def_widths, repeatRows=1)
def_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,0), NAVY),
    ("GRID", (0,0), (-1,-1), 0.3, colors.HexColor("#CCCCCC")),
    ("ROWPADDING", (0,0), (-1,-1), 4),
    ("VALIGN", (0,0), (-1,-1), "TOP"),
    *[("BACKGROUND", (0, i+1), (-1, i+1), LTGOLD if i % 2 == 0 else WHITE)
      for i in range(len(definitions))]
]))
story.append(def_table)
story.append(Spacer(1, 4*mm))

# ═══════════════════════════════════════════════════════════════════════════
# SECTION 5 – KEY MNEMONICS
# ═══════════════════════════════════════════════════════════════════════════
story.append(section_header("5.  MNEMONICS & QUICK RECALL", bg=TEAL))
story.append(Spacer(1, 2*mm))

mnem_headers = ["Mnemonic", "What it covers"]
mnem_rows = [
    ['"Béclard Proves Birth" (BPB)', "Béclard = Proves ≥8 months; Poland = near-Birth (10th month)"],
    ['"AVA in the cord"', "2 Arteries, 1 Vein, Arteries (single umbilical artery = renal agenesis risk)"],
    ['"FAVE" shunts', "Foramen ovale, Arteriosus ductus, Venosus ductus = three foetal bypasses"],
    ['"DV → LV → RA → FO → LA" for oxygenated blood', "Ductus Venosus → IVC → Right Atrium → Foramen Ovale → Left Atrium → Systemic"],
    ['Haase rule: "Square then Times 5"', "Months 1–5: month², Months 5–10: month × 5 (crown-heel in cm)"],
    ['"SWIM test" (Hydrostatic test)', "Lungs Swim = baby breathed (live birth); Lungs Sink = stillborn/did not breathe"],
    ['"Ear springs back at 36"', "Firm ear cartilage that springs back = ≥36 weeks gestation"],
    ['"210 to 300" gestation window', "Min viability 210 days; normal 280 days; max accepted ~300 days (legitimacy)"],
    ['"MTP 20-24 Rule"', "Routine abortion ≤20 wks; special categories up to 24 wks (MTP Amendment 2021)"],
    ['"CAPS" for external maturity', "Creases (sole), Areola, Posture/lanugo, Skin texture = Ballard score components"],
]
mnem_widths = [58*mm, 128*mm]
story.append(make_table(mnem_headers, mnem_rows, mnem_widths))
story.append(Spacer(1, 3*mm))

# ═══════════════════════════════════════════════════════════════════════════
# SECTION 6 – ADULT AGE ESTIMATION FROM BONE
# ═══════════════════════════════════════════════════════════════════════════
story.append(section_header("6.  ADULT AGE ESTIMATION — KEY SKELETAL MARKERS", bg=colors.HexColor("#4A148C")))
story.append(Spacer(1, 2*mm))

adult_headers = ["Age Range", "Skeletal Marker", "Description"]
adult_rows = [
    ["15–17 yrs", "Iliac crest epiphysis appears", "Ring apophysis begins ossification"],
    ["18–20 yrs", "Medial clavicle epiphysis appears", "Most reliable marker for 18+ yrs"],
    ["20–23 yrs", "Vertebral ring apophysis fuses", "Last vertebral fusion"],
    ["25–30 yrs", "Medial clavicle fuses completely", "Fusion = >25 yrs; most reliable upper limit"],
    ["25–35 yrs", "Skull sutures begin closing", "Coronal and sagittal first; unreliable alone"],
    ["30–45 yrs", "Pubic symphysis changes", "Todd / Suchey-Brooks phases 1–6"],
    ["35–50 yrs", "Sternal end 4th rib changes", "İşcan method for rib metamorphosis"],
    [">40 yrs", "Osteoarthritis changes appear", "Lipping, eburnation, narrowing joint spaces"],
    [">50 yrs", "Osteoporosis, trabecular loss", "Cortical thinning; DEXA relevant"],
    ["Any age", "Dental eruption & wear", "Third molar: >17 yrs; wear pattern for 30+ yrs"],
]
adult_widths = [22*mm, 58*mm, 106*mm]
story.append(make_table(adult_headers, adult_rows, adult_widths))
story.append(Spacer(1, 3*mm))

# ═══════════════════════════════════════════════════════════════════════════
# SECTION 7 – FOETAL CIRCULATION QUICK REF
# ═══════════════════════════════════════════════════════════════════════════
story.append(section_header("7.  FOETAL CIRCULATION — SHUNTS & CLOSURE TIMELINE", bg=CRIMSON))
story.append(Spacer(1, 2*mm))

shunt_headers = ["Shunt", "Connects", "Function", "Functional Closure", "Adult Remnant"]
shunt_rows = [
    ["Ductus venosus", "Umbilical vein → IVC", "Bypasses liver; delivers O₂-rich blood to heart", "Within hours of birth (sphincter)", "Ligamentum venosum"],
    ["Foramen ovale", "Right atrium → Left atrium", "Bypasses lungs; shunts O₂-rich IVC blood to systemic", "At first breath (L>R atrial pressure)", "Fossa ovalis"],
    ["Ductus arteriosus", "Pulmonary trunk → Descending aorta", "Bypasses lungs; right ventricular output to aorta", "20% by 24h; 80% by 48h; 100% by 96h", "Ligamentum arteriosum"],
    ["Umbilical vein", "Placenta → foetal liver/IVC", "Carries oxygenated blood from placenta", "Within minutes of birth", "Ligamentum teres hepatis"],
    ["Umbilical arteries (×2)", "Foetal iliac arteries → placenta", "Return deoxygenated blood to placenta", "Immediately on cord clamping", "Medial umbilical ligaments"],
]
shunt_widths = [28*mm, 36*mm, 46*mm, 36*mm, 40*mm]
story.append(make_table(shunt_headers, shunt_rows, shunt_widths))
story.append(Spacer(1, 3*mm))

# ═══════════════════════════════════════════════════════════════════════════
# SECTION 8 – IMPORTANT LEGAL PROVISIONS
# ═══════════════════════════════════════════════════════════════════════════
story.append(section_header("8.  KEY LEGAL PROVISIONS — INDIA", bg=colors.HexColor("#1B5E20")))
story.append(Spacer(1, 2*mm))

legal_headers = ["Section", "Act", "Offence / Subject", "Punishment"]
legal_rows = [
    ["312 IPC / 88 BNS", "IPC 1860 / BNS 2023", "Causing miscarriage (criminal abortion)", "Up to 3 yrs; up to 7 yrs if woman objects"],
    ["313 IPC / 89 BNS", "IPC 1860 / BNS 2023", "Causing miscarriage without woman's consent", "Life imprisonment or 10 yrs + fine"],
    ["314 IPC / 90 BNS", "IPC 1860 / BNS 2023", "Death caused by abortion attempt", "Up to 10 yrs + fine; life if without consent"],
    ["315 IPC / 91 BNS", "IPC 1860 / BNS 2023", "Act to prevent child being born alive / causing post-birth death", "Up to 10 yrs + fine"],
    ["316 IPC / 92 BNS", "IPC 1860 / BNS 2023", "Causing death of quick unborn child (culpable homicide)", "Up to 10 yrs + fine"],
    ["318 IPC / 94 BNS", "IPC 1860 / BNS 2023", "Concealment of birth by disposal of body", "Up to 2 yrs + fine"],
    ["302 IPC / 101 BNS", "IPC 1860 / BNS 2023", "Infanticide (murder)", "Death or life imprisonment"],
    ["MTP Act 1971 (Amended 2021)", "Central Act", "Legal termination of pregnancy", "Legal: ≤20 wks; ≤24 wks (special); >24 wks Board only"],
    ["PCPNDT Act 1994", "Central Act", "Prohibition of sex determination of foetus", "Up to 3 yrs + fine; 5 yrs repeat offence"],
    ["Registration of Births & Deaths Act 1969", "Central Act", "Registration of stillbirths and live births", "Mandatory; stillbirth ≥28 wks must be registered"],
]
legal_widths = [32*mm, 30*mm, 72*mm, 52*mm]
story.append(make_table(legal_headers, legal_rows, legal_widths))
story.append(Spacer(1, 3*mm))

# ── Footer note ──────────────────────────────────────────────────────────────
hr()
story.append(hr())
story.append(Paragraph(
    "References: Moore – The Developing Human (Clinically Oriented Embryology) | "
    "Parikh's Textbook of Medical Jurisprudence, Forensic Medicine & Toxicology | "
    "Reddy's Essentials of Forensic Medicine & Toxicology | MTP Act 1971 (Amended 2021) | IPC / BNS 2023",
    NOTE_STYLE))
story.append(Paragraph(
    "Prepared as exam quick reference only. Always verify against current legislation and standard references.",
    NOTE_STYLE))

# ── Build ─────────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF generated: {OUTPUT}")
Running Command

cd /home/daytona/workspace/forensic-cheatsheet && python3 make_cheatsheet.py 2>&1

Running Command

ls -lh /home/daytona/workspace/forensic-cheatsheet/Forensic_Ossification_Cheatsheet.pdf

Your cheat sheet is ready:

Forensic Ossification Cheatsheet

PDF Document · PDF


Here's what's packed into the 2-page A4 PDF:
Page 1
  • Haase's Rule table - all 10 months with length, weight, and key developmental milestone for each
  • Ossification Centres table - Béclard's point (★★★), Poland's point (★★), calcaneus, talus, cuboid, head of humerus, medial clavicle, iliac crest - each with age, size, and medicolegal significance
  • External Maturity Signs table - preterm vs. term comparison for ear cartilage, sole creases, lanugo, vernix, nails, breast nodule, genitalia, skin, eyelids
Page 2
  • 18 Medicolegal Definitions - viability, live birth (WHO), stillbirth, infanticide, concealment of birth, foeticide, abortion, legitimacy, gestational age, hydrostatic test, birth asphyxia, maceration, mummification, caput succedaneum, birth injury, Tardieu's spots, umbilical cord forensics, MTP Act 2021
  • 10 Mnemonics - including "Béclard Proves Birth", "AVA in the cord", "SWIM test", "FAVE shunts", Haase's rule shortcut
  • Adult age estimation skeletal markers - 15 yrs through >50 yrs
  • Foetal circulation shunts and closure timeline - all 5 structures with adult remnants
  • Key Indian legal provisions - IPC/BNS sections 312-318, MTP Act, PCPNDT Act, with punishments
This is a shared conversation. Sign in to Orris to start your own chat.