Extract data of unit e general medicine patients olnt

Reading File
Reading File
Browsing Directory

~/

Browsing Directory

~/attachments/3b10a9c3-a96f-4081-b852-3283b60311ce

Running Command

python - <<'PY' from openpyxl import load_workbook p='/tmp/workspace/attachments/3b10a9c3-a96f-4081-b852-3283b60311ce/Mortality Death Report September 2026.xlsx' wb=load_workbook(p, read_only=True, data_only=False) print(wb.sheetnames) for ws in wb.worksheets: print('\nSHEET',ws.title,ws.max_row,ws.max_column) for row in ws.iter_rows(min_row=1,max_row=min(ws.max_row,12),values_only=True): print(row) PY

Running Command

python - <<'PY' from openpyxl import load_workbook from collections import Counter p='/tmp/workspace/attachments/3b10a9c3-a96f-4081-b852-3283b60311ce/Mortality Death Report September 2026.xlsx' wb=load_workbook(p,read_only=True,data_only=True) ws=wb['Mortality Death Report Sep 2026'] rows=list(ws.iter_rows(min_row=3,values_only=True)) for col,name in [(11,'Admitting doctor'),(13,'Discharge doctor')]: hits=[r for r in rows if r[col] and 'UNIT E (GENERAL MEDICINE)' in str(r[col]).upper()] print(name,len(hits),[r[0] for r in hits]) either=[r for r in rows if any(x and 'UNIT E (GENERAL MEDICINE)' in str(x).upper() for x in (r[11],r[13]))] print('Either',len(either), [r[0] for r in either]) for r in either: print(r[0],r[1],r[3],r[11],r[13]) PY

Reading File
Searching the Web

Excel filter records by column values openpyxl documentation

Running Command

python - <<'PY' from openpyxl import load_workbook, Workbook from openpyxl.styles import Font, PatternFill, Alignment, Border, Side from openpyxl.utils import get_column_letter from copy import copy from pathlib import Path src=Path('/tmp/workspace/attachments/3b10a9c3-a96f-4081-b852-3283b60311ce/Mortality Death Report September 2026.xlsx') outdir=Path('/tmp/workspace/unit-e-general-medicine-extract/output') outdir.mkdir(parents=True,exist_ok=True) out=outdir/'Unit_E_General_Medicine_Patients_September_2026.xlsx' src_wb=load_workbook(src) src_ws=src_wb['Mortality Death Report Sep 2026'] # Discharge unit is selected because it is the primary treating/final care unit in this mortality report. records=[] for r in range(3, src_ws.max_row+1): val=src_ws.cell(r,14).value # Column N, Discharge Doctor Name if isinstance(val,str) and val.strip().upper()=='UNIT E (GENERAL MEDICINE)': records.append(r) wb=Workbook() ws=wb.active ws.title='Unit E Patients' # copy data table with source styling and values, columns A:T for col in range(1,21): letter=get_column_letter(col) ws.column_dimensions[letter].width=src_ws.column_dimensions[letter].width or 15 # title and headers ws.merge_cells('A1:T1') ws['A1']='Unit E (General Medicine) - Patient Extract' ws['A1'].font=Font(name='Arial',size=14,bold=True,color='FFFFFF') ws['A1'].fill=PatternFill('solid',fgColor='1F4E78') ws['A1'].alignment=Alignment(horizontal='center',vertical='center') ws.row_dimensions[1].height=28 for c in range(1,21): sc=src_ws.cell(2,c); dc=ws.cell(2,c,sc.value) if sc.has_style: dc._style=copy(sc._style) dc.font=copy(sc.font) dc.fill=copy(sc.fill) dc.alignment=copy(sc.alignment) dc.border=copy(sc.border) dc.number_format=sc.number_format dc.protection=copy(sc.protection) dc.font=Font(name='Arial',size=10,bold=True,color='FFFFFF') dc.fill=PatternFill('solid',fgColor='4472C4') dc.alignment=Alignment(horizontal='center',vertical='center',wrap_text=True) ws.row_dimensions[2].height=36 for destination_row, source_row in enumerate(records,start=3): for c in range(1,21): sc=src_ws.cell(source_row,c); dc=ws.cell(destination_row,c,sc.value) if sc.has_style: dc._style=copy(sc._style) dc.font=Font(name='Arial',size=10) dc.alignment=copy(sc.alignment) dc.alignment=Alignment(horizontal=dc.alignment.horizontal or 'left',vertical='top',wrap_text=True) dc.number_format=sc.number_format ws.row_dimensions[destination_row].height=max(src_ws.row_dimensions[source_row].height or 20, 58) ws.auto_filter.ref=f'A2:T{2+len(records)}' ws.freeze_panes='A3' ws.sheet_view.showGridLines=False # Adapt specific widths widths={'A':9,'B':16,'C':15,'D':32,'E':14,'F':10,'G':14,'H':10,'I':14,'J':10,'K':9,'L':27,'M':20,'N':27,'O':20,'P':18,'Q':65,'R':48,'S':13,'T':9} for col,w in widths.items(): ws.column_dimensions[col].width=w # summary worksheet sm=wb.create_sheet('Summary') sm.sheet_view.showGridLines=False sm.merge_cells('A1:D1') sm['A1']='Unit E (General Medicine) - Extraction Summary' sm['A1'].font=Font(name='Arial',size=14,bold=True,color='FFFFFF') sm['A1'].fill=PatternFill('solid',fgColor='1F4E78') sm['A1'].alignment=Alignment(horizontal='center') sm.row_dimensions[1].height=28 summary=[ ('Report source','Mortality Death Report September 2026'), ('Selection criterion','Discharge Doctor Name equals UNIT E (GENERAL MEDICINE)'), ('Patients extracted',len(records)), ('Admitted under Unit E',sum(1 for r in records if src_ws.cell(r,12).value=='UNIT E (GENERAL MEDICINE)')), ('Transferred to Unit E',sum(1 for r in records if src_ws.cell(r,12).value!='UNIT E (GENERAL MEDICINE)')), ] for i,(label,value) in enumerate(summary,start=3): sm.cell(i,1,label) sm.cell(i,2,value) sm.cell(i,1).font=Font(name='Arial',bold=True) sm.cell(i,1).fill=PatternFill('solid',fgColor='D9EAF7') sm.cell(i,1).alignment=Alignment(vertical='top',wrap_text=True) sm.cell(i,2).font=Font(name='Arial') sm.cell(i,2).alignment=Alignment(vertical='top',wrap_text=True) for c in (1,2): sm.cell(i,c).border=Border(bottom=Side(style='thin',color='B7C9D6')) sm.column_dimensions['A'].width=28 sm.column_dimensions['B'].width=72 sm.column_dimensions['C'].width=15 sm.column_dimensions['D'].width=15 sm['A10']='Note' sm['A10'].font=Font(name='Arial',bold=True) sm['A10'].fill=PatternFill('solid',fgColor='D9EAF7') sm['B10']='This workbook includes the full data fields present in columns A:T for the selected mortality-report records.' sm['B10'].alignment=Alignment(wrap_text=True,vertical='top') sm['B10'].font=Font(name='Arial') sm.row_dimensions[10].height=36 sm.freeze_panes='A3' wb.save(out) print('records',len(records),'output',out) PY python - <<'PY' from openpyxl import load_workbook p='/tmp/workspace/unit-e-general-medicine-extract/output/Unit_E_General_Medicine_Patients_September_2026.xlsx' wb=load_workbook(p,data_only=True) ws=wb['Unit E Patients'] print(wb.sheetnames, ws.max_row, ws.max_column, ws['A1'].value, ws.auto_filter.ref) print([ws.cell(r,14).value for r in range(3,ws.max_row+1)]) print('summary count',wb['Summary']['B5'].value) PY

Extracted 20 Unit E (General Medicine) patient records based on Discharge Doctor Name = UNIT E (GENERAL MEDICINE).
The workbook includes:
  • Unit E Patients: full patient data from the mortality report
  • Summary: selection criteria and count breakdown

Unit E General Medicine Patients September 2026

Spreadsheet · XLSX

This is a shared conversation. Sign in to Orris to start your own chat.