Prepare a question and make a Postmartem repost according to this pages and fill information in this pages accordingly. Case in hanging
hanging forensic autopsy
forensic autopsy hanging documentation neck dissection guidelines
https://www.ncbi.nlm.nih.gov/sites/books/NBK539901
| Field in form | Entry |
|---|---|
| District | [District] |
| Date | [DD/MM/YYYY] |
| Body brought by | [Name, designation, belt number, police station] |
| Body identified by | [Name, address and relationship] |
| Name, age, sex and caste | [Name], [age] years, [male/female], [caste if legally required] |
| Whence brought, village, thana | [Place], Village [ ], Police Station [ ] |
| Date and hour of death | Alleged date/time: [ ]. Exact time of death: not known. |
| Date and hour of examination | [DD/MM/YYYY, time] |
| Dispatch of matter to Chemical Examiner | Viscera, blood, urine and other indicated samples preserved, sealed, labelled and handed over to police/Chemical Examiner vide [seal/sample number]. |
| Symptoms observed before death | As per police papers and relatives: [not known / alleged depression / alleged quarrel / other actual history]. |
| Information furnished by police | Alleged history of the deceased being found suspended by [type of ligature] from [point of suspension] at [place] on [date/time]. Inquest papers and relevant police documents perused. |
Complete the remaining post-mortem report sections
Complete the opinion and cause-of-death section
forensic hanging autopsy
forensic pathology hanging cause of death opinion manner of death autopsy documentation
In my opinion, death was due to asphyxia as a result of ante-mortem hanging.
The ligature mark and internal neck findings are consistent with hanging.
There is no evidence of any other fatal injury or natural disease detectable at post-mortem examination.
Final opinion is subject to the report of Chemical Examiner/FSL, if applicable.
In my opinion, death was due to asphyxia consequent upon ante-mortem hanging.
The cause of death is kept pending awaiting the report of Chemical Examiner/FSL and histopathological examination, if any.
The post-mortem findings show a ligature mark over the neck. A final opinion will be furnished after considering the laboratory reports, case circumstances, and investigation findings.
The final cause-of-death opinion is subject to correlation with the Chemical Examiner/FSL report and investigation findings.
The manner of death is to be determined by the investigating agency/court after considering scene findings, inquest papers, witness statements, ligature, and other investigation evidence.
Format the complete report as a polished DOCX
~/
mkdir -p "/tmp/workspace/hanging-postmortem-docx/src" "/tmp/workspace/hanging-postmortem-docx/output" && cat > "/tmp/workspace/hanging-postmortem-docx/src/create_report.py" <<'PY' from docx import Document from docx.shared import Inches, Pt, RGBColor from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.enum.table import WD_TABLE_ALIGNMENT, WD_CELL_VERTICAL_ALIGNMENT from docx.oxml import OxmlElement from docx.oxml.ns import qn from docx.enum.section import WD_SECTION OUT='/tmp/workspace/hanging-postmortem-docx/output/Academic_Post_Mortem_Report_Alleged_Hanging.docx' def shade(cell, color): tcPr = cell._tc.get_or_add_tcPr(); shd=OxmlElement('w:shd'); shd.set(qn('w:fill'),color); tcPr.append(shd) def borders(cell, color='B7C3D0'): tcPr=cell._tc.get_or_add_tcPr(); b=OxmlElement('w:tcBorders') for e in ('top','left','bottom','right'): el=OxmlElement('w:'+e); el.set(qn('w:val'),'single'); el.set(qn('w:sz'),'6'); el.set(qn('w:color'),color); b.append(el) tcPr.append(b) def set_cell_text(cell,text,bold=False): cell.text=''; p=cell.paragraphs[0]; p.paragraph_format.space_after=Pt(0); r=p.add_run(text); r.bold=bold; r.font.size=Pt(9); cell.vertical_alignment=WD_CELL_VERTICAL_ALIGNMENT.CENTER; borders(cell) def header_footer(doc): section=doc.sections[0] header=section.header.paragraphs[0]; header.text='ACADEMIC TEMPLATE | ALLEGED HANGING CASE'; header.alignment=WD_ALIGN_PARAGRAPH.RIGHT for r in header.runs: r.font.name='Arial'; r.font.size=Pt(8); r.font.color.rgb=RGBColor(90,90,90) footer=section.footer.paragraphs[0]; footer.alignment=WD_ALIGN_PARAGRAPH.CENTER footer.add_run('For teaching and simulated case documentation only. Not for use as an official medicolegal report. | ') fld=OxmlElement('w:fldSimple'); fld.set(qn('w:instr'),'PAGE'); footer._p.append(fld) for r in footer.runs: r.font.name='Arial'; r.font.size=Pt(8); r.font.color.rgb=RGBColor(90,90,90) def title(doc,text,subtitle=None): p=doc.add_paragraph(); p.alignment=WD_ALIGN_PARAGRAPH.CENTER; p.paragraph_format.space_after=Pt(2) r=p.add_run(text); r.bold=True; r.font.name='Arial'; r.font.size=Pt(17); r.font.color.rgb=RGBColor(31,78,121) if subtitle: p=doc.add_paragraph(); p.alignment=WD_ALIGN_PARAGRAPH.CENTER; p.paragraph_format.space_after=Pt(10) r=p.add_run(subtitle); r.italic=True; r.font.name='Arial'; r.font.size=Pt(10); r.font.color.rgb=RGBColor(80,80,80) def heading(doc,text): p=doc.add_paragraph(); p.paragraph_format.space_before=Pt(10); p.paragraph_format.space_after=Pt(4) r=p.add_run(text); r.bold=True; r.font.name='Arial'; r.font.size=Pt(12); r.font.color.rgb=RGBColor(31,78,121) def para(doc,text,italic=False): p=doc.add_paragraph(); p.paragraph_format.space_after=Pt(5); p.paragraph_format.line_spacing=1.08 r=p.add_run(text); r.font.name='Arial'; r.font.size=Pt(10); r.italic=italic return p def section_item(doc,label,text): p=doc.add_paragraph(); p.paragraph_format.left_indent=Inches(.12); p.paragraph_format.first_line_indent=Inches(-.12); p.paragraph_format.space_after=Pt(4); p.paragraph_format.line_spacing=1.04 a=p.add_run(label+' '); a.bold=True; a.font.name='Arial'; a.font.size=Pt(10) b=p.add_run(text); b.font.name='Arial'; b.font.size=Pt(10) def keep(p): p.paragraph_format.keep_with_next=True doc=Document(); sec=doc.sections[0]; sec.top_margin=Inches(.55); sec.bottom_margin=Inches(.55); sec.left_margin=Inches(.7); sec.right_margin=Inches(.7) style=doc.styles['Normal']; style.font.name='Arial'; style.font.size=Pt(10) header_footer(doc) title(doc,'POST-MORTEM REPORT','Academic template: alleged ante-mortem hanging') warning=doc.add_table(rows=1, cols=1); warning.alignment=WD_TABLE_ALIGNMENT.CENTER; c=warning.cell(0,0); shade(c,'FFF2CC'); borders(c,'D6B656'); set_cell_text(c,'IMPORTANT: This is an educational template. Enter only actual observations, measurements, identifiers, exhibits and laboratory results. An official medicolegal report must be completed and signed only by the authorised medical officer under applicable law.',True) heading(doc,'CASE PARTICULARS') rows=[('District','[District]'),('Date','[DD/MM/YYYY]'),('Body brought by','[Name, designation, belt number, police station]'),('Body identified by','[Name, address and relationship]'),('Name, age, sex and caste','[Name], [age] years, [male/female], [caste if legally required]'),('Whence brought, village, thana','[Place], Village [ ], Police Station [ ]'),('Alleged date and time of death','[DD/MM/YYYY, time] / Exact time: not known'),('Date and hour of examination','[DD/MM/YYYY, time]'),('Information furnished by police','Alleged history: deceased found suspended by [ligature] from [point of suspension] at [place] on [date/time]. Inquest papers and police documents perused.'),('Symptoms before death','[Not known / actual history supplied by relatives or police]'),('Dispatch of matter to Chemical Examiner','[Details of sealed, labelled samples/exhibits, seal impression and handover]')] t=doc.add_table(rows=0,cols=2); t.alignment=WD_TABLE_ALIGNMENT.CENTER; t.style='Table Grid' for a,b in rows: cells=t.add_row().cells; set_cell_text(cells[0],a,True); set_cell_text(cells[1],b); shade(cells[0],'D9EAF7') heading(doc,'I. EXTERNAL APPEARANCE') section_item(doc,'1. Condition of subject:','Body of an adult [male/female], approximately [age] years, [well/moderately/poorly] built and [well/moderately/poorly] nourished. Rigor mortis [present/absent] in [parts]. Post-mortem lividity [present/absent] over [parts], [fixed/not fixed]. Decomposition [absent/early/moderate/advanced].') section_item(doc,'2. Wounds:','No external injury other than the ligature mark is seen. OR describe each injury with exact site, dimensions, shape, margins and nature.') section_item(doc,'3. Bruises:','No bruises seen. OR describe each bruise separately with site, dimensions and nature.') section_item(doc,'4. Ligature mark and neck:','A [single/multiple], [oblique/horizontal], [complete/incomplete], [dry/brownish/parchmentised] ligature mark is present over [site], measuring [ ] cm in width. Its course is [describe front, right, left and back], ascending towards [point of suspension]. Knot impression [present/absent] at [site]. Base: [actual appearance]. Pattern correspondence: [present/absent]. Ligature material: [description, length, width/diameter, knot], preserved/handed over as Exhibit No. [ ]. Pupils: [actual finding].') heading(doc,'II. CRANIUM AND SPINAL CORD') section_item(doc,'1. Scalp, skull and vertebrae:','Scalp tissues [healthy / actual finding]. Skull [intact / actual finding]. Cervical vertebrae [intact / actual finding].') section_item(doc,'2. Membranes:','Meninges [healthy/congested / actual finding]. No extravasation of blood [if applicable].') section_item(doc,'3. Brain and spinal cord:','Brain [congested/oedematous/actual finding], weighing [ ] g. No focal injury or intracranial haemorrhage [if applicable]. Spinal cord [not examined / actual finding].') heading(doc,'III. THORAX') for label,text in [ ('1. Walls, ribs and cartilages:','Healthy. No fracture of ribs or sternum. OR actual findings.'), ('2. Pleura:','Healthy. No fluid or adhesions. OR actual findings.'), ('3. Larynx and trachea:','Layer-by-layer neck dissection: subcutaneous tissue and neck muscles show [no extravasation / actual haemorrhage]. Hyoid bone [intact/fractured]. Thyroid and cricoid cartilages [intact/fractured]. Larynx and trachea [congested / actual finding], containing [froth/mucus/nil].'), ('4. Right lung:','[Congested/oedematous/actual finding], weighing [ ] g. Cut surface: [finding].'), ('5. Left lung:','[Congested/oedematous/actual finding], weighing [ ] g. Cut surface: [finding].'), ('6. Pericardium:','[Healthy / actual finding]. Pericardial fluid: [ ].'), ('7. Heart:','Weighing [ ] g. Chambers contain [fluid/clotted blood/empty]. Valves, myocardium and coronary arteries [healthy / actual finding].'), ('8. Large vessels:','[Healthy / actual finding].')]: section_item(doc,label,text) heading(doc,'IV. ABDOMEN') for label,text in [ ('1. Walls:','[Healthy / actual finding].'),('2. Peritoneum:','[Healthy / actual finding]. No free fluid, blood or abnormal contents [if applicable].'),('3. Mouth, pharynx and oesophagus:','[Actual finding]. No foreign body or corrosive injury [if applicable].'),('4. Stomach and contents:','Contains approximately [ ] mL of [partly digested food/fluid/nil], with [smell if any]. Mucosa [actual finding].'),('5. Small intestines and contents:','[Healthy / actual finding].'),('6. Large intestines and contents:','[Healthy / actual finding].'),('7. Liver:','[Congested/actual finding], weighing [ ] g.'),('8. Spleen:','[Congested/actual finding], weighing [ ] g.'),('9. Kidneys:','Both kidneys [actual finding]. Capsules [strip easily/do not strip easily]. Cut surface [actual finding].'),('10. Bladder:','Contains approximately [ ] mL urine. Mucosa [actual finding].'),('11. Organs of generation:','External genitalia [actual finding]. Internal reproductive organs [actual finding].')]: section_item(doc,label,text) heading(doc,'V. MUSCLES, BONES AND JOINTS') section_item(doc,'1. Injury:','No injury detected in muscles, bones or joints, except findings recorded in the neck. OR actual findings.') section_item(doc,'2. Disease or deformity:','No disease or deformity detected. OR actual findings.') section_item(doc,'3. Fracture:','No fracture detected. Hyoid bone and laryngeal cartilages [intact / actual findings].') section_item(doc,'4. Dislocation:','No dislocation detected. OR actual findings.') heading(doc,'SPECIMENS / EXHIBITS PRESERVED') para(doc,'Record only items actually preserved and handed over, with container, preservative, seal number and chain-of-custody details:') for s in ['Stomach with contents.','Portion of small intestine with contents.','Liver and kidney sample(s).','Blood, urine, bile or vitreous, as indicated.','Ligature material, sealed separately as Exhibit No. [ ].','Clothing, nail clippings/scrapings, swabs, hair or tissue samples, if indicated.','Control sample of preservative, if used.']: p=doc.add_paragraph(style='List Bullet'); p.paragraph_format.space_after=Pt(2); r=p.add_run(s); r.font.name='Arial'; r.font.size=Pt(10) heading(doc,'REMARKS BY MEDICAL OFFICER') para(doc,'The findings must be interpreted with the scene examination, inquest papers, identification evidence, investigation findings and any laboratory reports. The manner of death must not be inferred from the autopsy alone.') heading(doc,'OPINION AND CAUSE OF DEATH') box=doc.add_table(rows=1,cols=1); c=box.cell(0,0); shade(c,'EAF3F8'); borders(c,'5B9BD5') set_cell_text(c,'Standard academic wording, when supported by actual findings: “In my opinion, death was due to asphyxia consequent upon ante-mortem hanging.” The opinion should state the actual basis: ligature-mark features, neck dissection findings, complete internal examination and exclusion of another fatal cause. Final opinion is subject to Chemical Examiner/FSL and other pending reports, if applicable.',False) para(doc,'If samples are pending, use: “The cause of death is kept pending awaiting the Chemical Examiner/FSL report and other indicated investigations. A final opinion will be furnished after correlation with laboratory reports, case circumstances and investigation findings.”',italic=True) para(doc,'Manner of death: “To be determined by the investigating agency/court after considering scene findings, inquest papers, witness statements, ligature evidence and other investigation material.”',italic=True) heading(doc,'SIGNATURE') sig=doc.add_table(rows=3,cols=2); sig.alignment=WD_TABLE_ALIGNMENT.CENTER for i,(a,b) in enumerate([('Signature of Medical Officer','_______________________________'),('Name, designation and registration number','[ ]'),('Date, time and place','[ ]')]): set_cell_text(sig.cell(i,0),a,True); shade(sig.cell(i,0),'D9EAF7'); set_cell_text(sig.cell(i,1),b) heading(doc,'TEACHING QUESTION') para(doc,'A dead body is brought for medicolegal post-mortem examination with an alleged history of hanging. Describe the external and internal findings to be recorded, preservation of exhibits, and how you would frame the opinion and cause of death.') doc.save(OUT) print(OUT) PY python "/tmp/workspace/hanging-postmortem-docx/src/create_report.py" && ls -lh "/tmp/workspace/hanging-postmortem-docx/output/Academic_Post_Mortem_Report_Alleged_Hanging.docx"
python3 -c "from docx import Document; p='/tmp/workspace/hanging-postmortem-docx/output/Academic_Post_Mortem_Report_Alleged_Hanging.docx'; d=Document(p); print('paragraphs=',len(d.paragraphs),'tables=',len(d.tables)); print('\\n'.join(x.text for x in d.paragraphs if x.text.strip())[:2500])"
Academic Post Mortem Report Alleged Hanging
Word Document · DOCX
Make a document with an example of hanging
hanging forensic autopsy
forensic autopsy hanging documentation examination neck findings
~/
cat > "/tmp/workspace/hanging-postmortem-docx/src/create_fictional_example.py" <<'PY' from docx import Document from docx.shared import Inches, Pt, RGBColor from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.enum.table import WD_TABLE_ALIGNMENT, WD_CELL_VERTICAL_ALIGNMENT from docx.oxml import OxmlElement from docx.oxml.ns import qn OUT='/tmp/workspace/hanging-postmortem-docx/output/Fictional_Example_Post_Mortem_Report_Alleged_Hanging.docx' def set_border(cell, color='B7C3D0'): tcPr=cell._tc.get_or_add_tcPr(); b=OxmlElement('w:tcBorders') for name in ('top','left','bottom','right'): x=OxmlElement('w:'+name); x.set(qn('w:val'),'single'); x.set(qn('w:sz'),'6'); x.set(qn('w:color'),color); b.append(x) tcPr.append(b) def shade(cell,color): tcPr=cell._tc.get_or_add_tcPr(); s=OxmlElement('w:shd'); s.set(qn('w:fill'),color); tcPr.append(s) def cell(cell,text,bold=False,sz=9): cell.text=''; p=cell.paragraphs[0]; p.paragraph_format.space_after=Pt(0) r=p.add_run(text); r.bold=bold; r.font.name='Arial'; r.font.size=Pt(sz); cell.vertical_alignment=WD_CELL_VERTICAL_ALIGNMENT.CENTER; set_border(cell) def heading(doc,text): p=doc.add_paragraph(); p.paragraph_format.space_before=Pt(9); p.paragraph_format.space_after=Pt(4) r=p.add_run(text); r.bold=True; r.font.name='Arial'; r.font.size=Pt(12); r.font.color.rgb=RGBColor(31,78,121) def item(doc,label,text): p=doc.add_paragraph(); p.paragraph_format.left_indent=Inches(.15); p.paragraph_format.first_line_indent=Inches(-.15); p.paragraph_format.space_after=Pt(4); p.paragraph_format.line_spacing=1.05 r=p.add_run(label+' '); r.bold=True; r.font.name='Arial'; r.font.size=Pt(10) r=p.add_run(text); r.font.name='Arial'; r.font.size=Pt(10) def paragraph(doc,text,italic=False): p=doc.add_paragraph(); p.paragraph_format.space_after=Pt(5); p.paragraph_format.line_spacing=1.06 r=p.add_run(text); r.font.name='Arial'; r.font.size=Pt(10); r.italic=italic D=Document(); s=D.sections[0]; s.top_margin=Inches(.55); s.bottom_margin=Inches(.55); s.left_margin=Inches(.72); s.right_margin=Inches(.72) D.styles['Normal'].font.name='Arial'; D.styles['Normal'].font.size=Pt(10) header=s.header.paragraphs[0]; header.alignment=WD_ALIGN_PARAGRAPH.RIGHT; r=header.add_run('FICTIONAL ACADEMIC CASE EXAMPLE'); r.font.name='Arial'; r.font.size=Pt(8); r.font.color.rgb=RGBColor(100,100,100) footer=s.footer.paragraphs[0]; footer.alignment=WD_ALIGN_PARAGRAPH.CENTER; r=footer.add_run('For education only. All identities, dates, places and findings are fictional. Not an official medicolegal record.'); r.font.name='Arial'; r.font.size=Pt(8); r.font.color.rgb=RGBColor(100,100,100) p=D.add_paragraph(); p.alignment=WD_ALIGN_PARAGRAPH.CENTER; r=p.add_run('POST-MORTEM REPORT'); r.bold=True; r.font.name='Arial'; r.font.size=Pt(18); r.font.color.rgb=RGBColor(31,78,121) p=D.add_paragraph(); p.alignment=WD_ALIGN_PARAGRAPH.CENTER; r=p.add_run('Completed fictional example: alleged ante-mortem hanging'); r.italic=True; r.font.name='Arial'; r.font.size=Pt(10) warn=D.add_table(rows=1,cols=1); c=warn.cell(0,0); shade(c,'FFF2CC'); cell(c,'EDUCATIONAL FICTION ONLY: This completed sample is not a real case and must not be copied into an official post-mortem report. In practice, every entry must reflect the actual examination, evidence, laboratory results and local legal requirements.',True) heading(D,'CASE PARTICULARS') rows=[('District','Suryanagar (fictional)'),('Date','14 October 2026'),('Body brought by','Constable A. Kumar, Buckle No. 0000, Central Police Station (fictional)'),('Body identified by','Ms. R. Devi, adult sister of the deceased, resident of Suryanagar (fictional)'),('Name, age, sex and caste','Mr. A. Sharma (fictional), 32 years, male; caste not recorded'),('Whence brought, village, thana','Green Park, Suryanagar; Central Police Station (fictional)'),('Date and hour of death','Alleged: 13 October 2026 at approximately 21:00 h; exact time not known'),('Date and hour of examination','14 October 2026, 10:30 h to 12:15 h'),('Symptoms observed before death','No reliable history of symptoms before death was available.'),('Information furnished by police','Alleged history that the deceased was found suspended in a locked room. Police inquest documents were produced. Scene findings and manner of death remain matters for investigation.'),('Dispatch to Chemical Examiner','Viscera, blood and urine samples preserved, labelled and sealed with specimen seal “X”. Ligature material handed over separately to the investigating officer as Exhibit L-1.')] t=D.add_table(rows=0,cols=2); t.style='Table Grid'; t.alignment=WD_TABLE_ALIGNMENT.CENTER for a,b in rows: x=t.add_row().cells; cell(x[0],a,True); shade(x[0],'D9EAF7'); cell(x[1],b) heading(D,'I. EXTERNAL APPEARANCE') item(D,'1. Condition of subject:','Body of an adult male, apparently about 32 years of age, moderately built and nourished. Rigor mortis present in all four limbs. Post-mortem lividity present over the back and dependent parts and fixed. No decomposition changes seen. Corneae hazy. Pupils dilated and fixed.') item(D,'2. Wounds:','No external injury is seen other than the ligature mark described below.') item(D,'3. Bruises:','No bruise, defence injury or other external injury is seen.') item(D,'4. Ligature mark and neck:','A single, oblique, incomplete, dry, brownish and parchmentised ligature mark, 1.2 cm in maximum width, is present around the upper part of the neck. It is 5 cm below the chin in front, ascends towards the left side, and is interrupted over the left posterolateral aspect corresponding to the knot. The base is pale, dry and parchmentised. No patterned impression is appreciable. The reported ligature material is a soft cloth strip, 180 cm long and 4 cm wide, with a knot at one end, received sealed and handed over as Exhibit L-1. No other neck injury is observed externally.') heading(D,'II. CRANIUM AND SPINAL CORD') item(D,'1. Scalp, skull and vertebrae:','Scalp tissues healthy. Skull intact. No fracture of skull or cervical vertebrae detected.') item(D,'2. Membranes:','Meninges mildly congested. No intracranial extravasation of blood seen.') item(D,'3. Brain and spinal cord:','Brain mildly congested, weighing approximately 1,320 g. No focal injury or intracranial haemorrhage detected. Spinal cord not examined, as no indication was present.') heading(D,'III. THORAX') for a,b in [ ('1. Walls, ribs and cartilages:','Healthy. No fracture of ribs or sternum.'),('2. Pleura:','Pleural cavities contain no abnormal fluid. Pleurae healthy.'),('3. Larynx and trachea:','On careful layer-by-layer dissection, the subcutaneous tissues and strap muscles of the neck show no extravasation of blood. Hyoid bone, thyroid cartilage and cricoid cartilage are intact. Laryngeal and tracheal mucosae are mildly congested; no foreign body is present.'),('4. Right lung:','Congested and oedematous, weighing approximately 520 g. Cut surface exudes blood-stained froth.'),('5. Left lung:','Congested and oedematous, weighing approximately 470 g. Cut surface exudes blood-stained froth.'),('6. Pericardium:','Healthy. No excess pericardial fluid.'),('7. Heart:','Weighing approximately 300 g. Chambers contain fluid blood. Valves, myocardium and coronary arteries show no gross abnormality.'),('8. Large vessels:','Healthy. No injury detected.')]: item(D,a,b) heading(D,'IV. ABDOMEN') for a,b in [ ('1. Walls:','Healthy. No injury detected.'),('2. Peritoneum:','Healthy. No free fluid or blood in the peritoneal cavity.'),('3. Mouth, pharynx and oesophagus:','Mucosae mildly congested. No foreign body or corrosive injury seen.'),('4. Stomach and its contents:','Contains approximately 150 mL of partly digested food material. No unusual smell detected. Mucosa mildly congested.'),('5. Small intestines and contents:','Healthy. Contain chyme.'),('6. Large intestines and contents:','Healthy. Contain faecal matter.'),('7. Liver:','Congested, weighing approximately 1,400 g. No focal injury or disease seen.'),('8. Spleen:','Congested, weighing approximately 150 g. No injury seen.'),('9. Kidneys:','Both kidneys congested. Capsules strip easily. Corticomedullary differentiation maintained.'),('10. Bladder:','Contains approximately 80 mL of clear urine. Mucosa healthy.'),('11. Organs of generation:','External genitalia and internal reproductive organs show no injury or gross abnormality.')]: item(D,a,b) heading(D,'V. MUSCLES, BONES AND JOINTS') item(D,'1. Injury:','No injury detected in muscles, bones or joints, apart from the ligature mark on the neck already described.') item(D,'2. Disease or deformity:','No gross disease or deformity detected.') item(D,'3. Fracture:','No fracture detected. Hyoid bone and laryngeal cartilages are intact.') item(D,'4. Dislocation:','No dislocation detected.') heading(D,'SPECIMENS AND EXHIBITS') for v in ['Stomach with contents and a portion of small intestine with
~/hanging-postmortem-docx/src
~/hanging-postmortem-docx/src/create_fictional_example.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/hanging-postmortem-docx/src/create_fictional_example.py'
python "/tmp/workspace/hanging-postmortem-docx/src/create_fictional_example.py" && ls -lh "/tmp/workspace/hanging-postmortem-docx/output/Fictional_Example_Post_Mortem_Report_Alleged_Hanging.docx" && python3 -c "from docx import Document; p='/tmp/workspace/hanging-postmortem-docx/output/Fictional_Example_Post_Mortem_Report_Alleged_Hanging.docx'; d=Document(p); print('paragraphs=',len(d.paragraphs),'tables=',len(d.tables)); print('last=',[x.text for x in d.paragraphs if x.text.strip()][-5:])"
~/hanging-postmortem-docx
~/hanging-postmortem-docx/src
cat > "/tmp/workspace/hanging-postmortem-docx/src/create_fictional_example.py" <<'PY' from docx import Document from docx.shared import Inches, Pt, RGBColor from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.enum.table import WD_TABLE_ALIGNMENT, WD_CELL_VERTICAL_ALIGNMENT from docx.oxml import OxmlElement from docx.oxml.ns import qn OUT='/tmp/workspace/hanging-postmortem-docx/output/Fictional_Example_Post_Mortem_Report_Alleged_Hanging.docx' def border(c): t=c._tc.get_or_add_tcPr(); b=OxmlElement('w:tcBorders') for n in ('top','left','bottom','right'): e=OxmlElement('w:'+n); e.set(qn('w:val'),'single'); e.set(qn('w:sz'),'6'); e.set(qn('w:color'),'B7C3D0'); b.append(e) t.append(b) def fill(c,x): s=OxmlElement('w:shd');s.set(qn('w:fill'),x);c._tc.get_or_add_tcPr().append(s) def ctext(c,x,b=False): c.text='';p=c.paragraphs[0];p.paragraph_format.space_after=Pt(0);r=p.add_run(x);r.bold=b;r.font.name='Arial';r.font.size=Pt(9);c.vertical_alignment=WD_CELL_VERTICAL_ALIGNMENT.CENTER;border(c) def h(d,x): p=d.add_paragraph();p.paragraph_format.space_before=Pt(9);p.paragraph_format.space_after=Pt(4);r=p.add_run(x);r.bold=True;r.font.name='Arial';r.font.size=Pt(12);r.font.color.rgb=RGBColor(31,78,121) def item(d,a,b): p=d.add_paragraph();p.paragraph_format.left_indent=Inches(.15);p.paragraph_format.first_line_indent=Inches(-.15);p.paragraph_format.space_after=Pt(4);p.paragraph_format.line_spacing=1.05;r=p.add_run(a+' ');r.bold=True;r.font.name='Arial';r.font.size=Pt(10);r=p.add_run(b);r.font.name='Arial';r.font.size=Pt(10) def ptext(d,x,italic=False): p=d.add_paragraph();p.paragraph_format.space_after=Pt(5);r=p.add_run(x);r.font.name='Arial';r.font.size=Pt(10);r.italic=italic D=Document();s=D.sections[0];s.top_margin=Inches(.55);s.bottom_margin=Inches(.55);s.left_margin=Inches(.72);s.right_margin=Inches(.72);D.styles['Normal'].font.name='Arial';D.styles['Normal'].font.size=Pt(10) p=s.header.paragraphs[0];p.alignment=WD_ALIGN_PARAGRAPH.RIGHT;r=p.add_run('FICTIONAL ACADEMIC CASE EXAMPLE');r.font.name='Arial';r.font.size=Pt(8);r.font.color.rgb=RGBColor(100,100,100) p=s.footer.paragraphs[0];p.alignment=WD_ALIGN_PARAGRAPH.CENTER;r=p.add_run('For education only. All identities, dates, places and findings are fictional. Not an official medicolegal record.');r.font.name='Arial';r.font.size=Pt(8) p=D.add_paragraph();p.alignment=WD_ALIGN_PARAGRAPH.CENTER;r=p.add_run('POST-MORTEM REPORT');r.bold=True;r.font.name='Arial';r.font.size=Pt(18);r.font.color.rgb=RGBColor(31,78,121) p=D.add_paragraph();p.alignment=WD_ALIGN_PARAGRAPH.CENTER;r=p.add_run('Completed fictional example: alleged ante-mortem hanging');r.italic=True;r.font.name='Arial';r.font.size=Pt(10) t=D.add_table(rows=1,cols=1);fill(t.cell(0,0),'FFF2CC');ctext(t.cell(0,0),'EDUCATIONAL FICTION ONLY: This completed sample is not a real case and must not be copied into an official post-mortem report. Every real entry must reflect actual findings, laboratory results and local legal requirements.',True) h(D,'CASE PARTICULARS') rows=[('District','Suryanagar (fictional)'),('Date','14 October 2026'),('Body brought by','Constable A. Kumar, Buckle No. 0000, Central Police Station (fictional)'),('Body identified by','Ms. R. Devi, adult sister of the deceased, Suryanagar (fictional)'),('Name, age, sex and caste','Mr. A. Sharma (fictional), 32 years, male; caste not recorded'),('Whence brought, village, thana','Green Park, Suryanagar; Central Police Station (fictional)'),('Date and hour of death','Alleged 13 October 2026 at approximately 21:00 h; exact time unknown'),('Date and hour of examination','14 October 2026, 10:30 h to 12:15 h'),('Symptoms observed before death','No reliable history of symptoms before death was available.'),('Information furnished by police','Alleged history: deceased found suspended in a locked room. Inquest documents were produced. Scene findings and manner of death remain matters for investigation.'),('Dispatch to Chemical Examiner','Viscera, blood and urine preserved, labelled and sealed with specimen seal “X”. Ligature received sealed and handed over as Exhibit L-1.')] t=D.add_table(rows=0,cols=2);t.style='Table Grid';t.alignment=WD_TABLE_ALIGNMENT.CENTER for a,b in rows: q=t.add_row().cells;ctext(q[0],a,True);fill(q[0],'D9EAF7');ctext(q[1],b) h(D,'I. EXTERNAL APPEARANCE') for a,b in [('1. Condition of subject:','Body of an adult male, apparently 32 years, moderately built and nourished. Rigor mortis present in all four limbs. Post-mortem lividity over the back and dependent parts and fixed. No decomposition. Corneae hazy. Pupils dilated and fixed.'),('2. Wounds:','No external injury other than the ligature mark is seen.'),('3. Bruises:','No bruise, defence injury or other external injury is seen.'),('4. Ligature mark and neck:','A single, oblique, incomplete, dry, brownish and parchmentised ligature mark, 1.2 cm in maximum width, is present around the upper part of the neck. It is 5 cm below the chin in front, ascends to the left, and is interrupted over the left posterolateral aspect corresponding to the knot. Its base is pale, dry and parchmentised. No patterned impression is seen. A soft cloth strip, 180 cm long and 4 cm wide, is documented as Exhibit L-1.')]:item(D,a,b) h(D,'II. CRANIUM AND SPINAL CORD') for a,b in [('1. Scalp, skull and vertebrae:','Scalp tissues healthy. Skull intact. No fracture of skull or cervical vertebrae detected.'),('2. Membranes:','Meninges mildly congested. No intracranial extravasation of blood seen.'),('3. Brain and spinal cord:','Brain mildly congested, weighing approximately 1,320 g. No focal injury or intracranial haemorrhage. Spinal cord not examined as no indication was present.')]:item(D,a,b) h(D,'III. THORAX') for a,b in [('1. Walls, ribs and cartilages:','Healthy. No fracture of ribs or sternum.'),('2. Pleura:','Pleural cavities contain no abnormal fluid. Pleurae healthy.'),('3. Larynx and trachea:','On layer-by-layer dissection, subcutaneous tissues and strap muscles show no extravasation of blood. Hyoid bone, thyroid cartilage and cricoid cartilage are intact. Laryngeal and tracheal mucosae mildly congested; no foreign body is present.'),('4. Right lung:','Congested and oedematous, approximately 520 g. Cut surface exudes blood-stained froth.'),('5. Left lung:','Congested and oedematous, approximately 470 g. Cut surface exudes blood-stained froth.'),('6. Pericardium:','Healthy. No excess pericardial fluid.'),('7. Heart:','Approximately 300 g. Chambers contain fluid blood. Valves, myocardium and coronary arteries show no gross abnormality.'),('8. Large vessels:','Healthy. No injury detected.')]:item(D,a,b) h(D,'IV. ABDOMEN') for a,b in [('1. Walls:','Healthy. No injury detected.'),('2. Peritoneum:','Healthy. No free fluid or blood in the peritoneal cavity.'),('3. Mouth, pharynx and oesophagus:','Mucosae mildly congested. No foreign body or corrosive injury seen.'),('4. Stomach and its contents:','Contains approximately 150 mL partly digested food material. No unusual smell. Mucosa mildly congested.'),('5. Small intestines and contents:','Healthy. Contain chyme.'),('6. Large intestines and contents:','Healthy. Contain faecal matter.'),('7. Liver:','Congested, approximately 1,400 g. No focal injury or disease seen.'),('8. Spleen:','Congested, approximately 150 g. No injury seen.'),('9. Kidneys:','Both kidneys congested. Capsules strip easily. Corticomedullary differentiation maintained.'),('10. Bladder:','Contains approximately 80 mL clear urine. Mucosa healthy.'),('11. Organs of generation:','External genitalia and internal reproductive organs show no injury or gross abnormality.')]:item(D,a,b) h(D,'V. MUSCLES, BONES AND JOINTS') for a,b in [('1. Injury:','No injury detected in muscles, bones or joints apart from the ligature mark described above.'),('2. Disease or deformity:','No gross disease or deformity detected.'),('3. Fracture:','No fracture detected. Hyoid bone and laryngeal cartilages are intact.'),('4. Dislocation:','No dislocation detected.')]:item(D,a,b) h(D,'SPECIMENS AND EXHIBITS') for v in ['Stomach with contents and a portion of small intestine with contents.','Portion of liver and kidney sample.','Blood, urine and control preservative sample.','Soft cloth ligature, sealed separately as Exhibit L-1.']: p=D.add_paragraph(style='List Bullet');p.paragraph_format.space_after=Pt(2);r=p.add_run(v);r.font.name='Arial';r.font.size=Pt(10) h(D,'REMARKS BY MEDICAL OFFICER');ptext(D,'The fictional autopsy findings include an oblique, incomplete and parchmentised ligature mark in the upper neck, with no other fatal injury or gross natural disease detected. The findings require correlation with the scene examination, inquest, investigation and laboratory reports.') h(D,'OPINION AND CAUSE OF DEATH') t=D.add_table(rows=1,cols=1);fill(t.cell(0,0),'EAF3F8');ctext(t.cell(0,0),'OPINION: In this fictional academic example, death is due to as
~/hanging-postmortem-docx/src
cat > "/tmp/workspace/hanging-postmortem-docx/src/example.py" <<'PY' from docx import Document from docx.shared import Inches,Pt,RGBColor from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.enum.table import WD_TABLE_ALIGNMENT p='/tmp/workspace/hanging-postmortem-docx/output/Fictional_Example_Post_Mortem_Report_Alleged_Hanging.docx' d=Document(); sec=d.sections[0]; sec.top_margin=Inches(.55);sec.bottom_margin=Inches(.55);sec.left_margin=Inches(.7);sec.right_margin=Inches(.7) d.styles['Normal'].font.name='Arial';d.styles['Normal'].font.size=Pt(10) def hd(x): q=d.add_paragraph();q.paragraph_format.space_before=Pt(9);r=q.add_run(x);r.bold=True;r.font.size=Pt(12);r.font.color.rgb=RGBColor(31,78,121) def tx(x): q=d.add_paragraph(x);q.paragraph_format.space_after=Pt(4);q.paragraph_format.line_spacing=1.05 for r in q.runs:r.font.name='Arial';r.font.size=Pt(10) def table(rows): t=d.add_table(rows=0,cols=2);t.style='Table Grid';t.alignment=WD_TABLE_ALIGNMENT.CENTER for a,b in rows: c=t.add_row().cells;c[0].text=a;c[1].text=b for r in c[0].paragraphs[0].runs:r.bold=True for cell in c: for r in cell.paragraphs[0].runs:r.font.name='Arial';r.font.size=Pt(9) head=sec.header.paragraphs[0];head.alignment=WD_ALIGN_PARAGRAPH.RIGHT;head.add_run('FICTIONAL ACADEMIC CASE EXAMPLE').font.size=Pt(8) foot=sec.footer.paragraphs[0];foot.alignment=WD_ALIGN_PARAGRAPH.CENTER;foot.add_run('For education only. Not an official medicolegal record.').font.size=Pt(8) q=d.add_paragraph();q.alignment=WD_ALIGN_PARAGRAPH.CENTER;r=q.add_run('POST-MORTEM REPORT');r.bold=True;r.font.size=Pt(18);r.font.color.rgb=RGBColor(31,78,121) q=d.add_paragraph();q.alignment=WD_ALIGN_PARAGRAPH.CENTER;q.add_run('Completed fictional example: alleged ante-mortem hanging').italic=True warn=d.add_paragraph();warn.add_run('EDUCATIONAL FICTION ONLY: ').bold=True;warn.add_run('All names, places, dates and findings below are invented for study purposes. Do not use this document as an official report.') hd('CASE PARTICULARS') table([('District','Suryanagar (fictional)'),('Date','14 October 2026'),('Body brought by','Constable A. Kumar, Central Police Station (fictional)'),('Body identified by','Ms. R. Devi, adult sister (fictional)'),('Name, age, sex','Mr. A. Sharma (fictional), 32 years, male'),('Whence brought','Green Park, Suryanagar; Central Police Station'),('Alleged death','13 October 2026, about 21:00 h; exact time unknown'),('Examination','14 October 2026, 10:30 h to 12:15 h'),('Police information','Alleged history of the deceased being found suspended in a locked room. Inquest papers produced.'),('Samples','Viscera, blood and urine sealed. Cloth ligature handed over as Exhibit L-1.')]) hd('I. EXTERNAL APPEARANCE') tx('Body of an adult male, 32 years, moderately built and nourished. Rigor mortis present in all limbs. Fixed post-mortem lividity over the back and dependent parts. No decomposition. Corneae hazy; pupils dilated and fixed.') tx('No external injury, bruises or defence injuries are seen other than the ligature mark.') tx('A single, oblique, incomplete, dry, brownish and parchmentised ligature mark, 1.2 cm wide, is present around the upper neck. It is 5 cm below the chin in front, ascends towards the left, and is interrupted at the left posterolateral aspect corresponding to the knot. Base is pale, dry and parchmentised. Soft cloth strip, 180 cm long and 4 cm wide, documented as Exhibit L-1.') hd('II. CRANIUM AND SPINAL CORD') tx('Scalp tissues healthy. Skull and cervical vertebrae intact. Meninges and brain mildly congested. Brain weighs about 1,320 g. No intracranial injury or haemorrhage. Spinal cord not examined, as no indication was present.') hd('III. THORAX') tx('Chest wall, ribs and cartilages intact. Pleural cavities show no abnormal fluid. On layer-by-layer neck dissection, no extravasation is seen in subcutaneous tissues or strap muscles. Hyoid bone and laryngeal cartilages are intact. Larynx and trachea mildly congested; no foreign body.') tx('Right lung: congested and oedematous, 520 g, with blood-stained froth on cut surface. Left lung: congested and oedematous, 470 g, with blood-stained froth. Pericardium healthy. Heart 300 g, chambers contain fluid blood; valves, myocardium and coronary arteries show no gross abnormality. Large vessels healthy.') hd('IV. ABDOMEN') tx('Abdominal wall and peritoneum healthy. No free fluid. Mouth, pharynx and oesophagus mildly congested with no foreign body. Stomach contains 150 mL partly digested food; mucosa mildly congested. Intestines healthy. Liver congested, 1,400 g. Spleen congested, 150 g. Kidneys congested, capsules strip easily and corticomedullary differentiation is maintained. Bladder contains 80 mL clear urine. Genital organs show no injury or gross abnormality.') hd('V. MUSCLES, BONES AND JOINTS') tx('No injury, fracture, dislocation, disease or deformity is detected in muscles, bones or joints. Hyoid bone and laryngeal cartilages are intact.') hd('SPECIMENS / EXHIBITS') tx('1. Stomach with contents and a portion of small intestine with contents. 2. Portion of liver and kidney. 3. Blood, urine and control preservative sample. 4. Soft cloth ligature, sealed separately as Exhibit L-1.') hd('REMARKS BY MEDICAL OFFICER') tx('The fictional findings show an oblique, incomplete and parchmentised upper-neck ligature mark. No other fatal injury or gross natural disease is found. Findings require correlation with scene evidence, inquest documents, investigation and laboratory reports.') hd('OPINION AND CAUSE OF DEATH') tx('In this fictional academic example, death is due to asphyxia consequent upon ante-mortem hanging. The opinion is subject to the Chemical Examiner/FSL report and any other pending laboratory investigation.') tx('Manner of death is to be determined by the investigating agency/court after considering scene findings, inquest papers, witness statements, ligature evidence, toxicology and all other investigation material.') hd('SIGNATURE') table([('Medical Officer','Dr. [Fictional Name]'),('Designation / registration number','[Fictional details]'),('Date, time and place','14 October 2026, 12:15 h, Suryanagar (fictional)')]) d.save(p);print(p) PY python "/tmp/workspace/hanging-postmortem-docx/src/example.py" && ls -lh "/tmp/workspace/hanging-postmortem-docx/output/Fictional_Example_Post_Mortem_Report_Alleged_Hanging.docx"
python3 -c "from docx import Document; p='/tmp/workspace/hanging-postmortem-docx/output/Fictional_Example_Post_Mortem_Report_Alleged_Hanging.docx'; d=Document(p); print('paragraphs=',len(d.paragraphs),'tables=',len(d.tables)); print([x.text for x in d.paragraphs if x.text.strip()][-6:])"
Fictional Example Post Mortem Report Alleged Hanging
Word Document · DOCX