What are the highest differentials for this cbc ?
| Parameter | Value | Unit | Flag | Clinical Significance |
|---|---|---|---|---|
| PLT (Platelets) | 15 | 10ยณ/ยตL | LOW | Severe thrombocytopenia (normal dog: ~200-500). Bleeding risk. |
| MCHC | 38.5 | g/dL | HIGH (!) | Flagged with "!" - may suggest hemolysis, lipemia, or Heinz bodies |
| HCT | 35.8 | % | LOW | Mild anemia (normal dog: ~37-55%) |
| Parameter | Value | Percentage | Flag |
|---|---|---|---|
| LY% (Lymphocytes) | 2.2 ร 10ยณ/ยตL | 30.9% | HIGH |
| MO% (Monocytes) | 0.8 ร 10ยณ/ยตL | 11.2% | HIGH |
| EO (Eosinophils) | 0.0 ร 10ยณ/ยตL | 0.4% | LOW |
| GR% (Granulocytes/Neutrophils) | 4.0 ร 10ยณ/ยตL | 57.5% | LOW |
What will be the highest differential in terms of haemoprotozoa ?
Babesia canis CBC findings thrombocytopenia MCHC hemolysis dog diagnosis
Babesia canis intraerythrocytic piroplasm dog blood smear

Table 2 (continued) <table><thead><tr><th>Disease</th><th>Causative organism</th><th>Distribution</th><th>Incubation</th><th>Clinical syndrome</th><th>Laboratory findings</th><th>Laboratory diagnosis</th><th>Treatment</th></tr></thead><tbody><tr><td colspan="8">Protozoan, viral, and other tick-borne illnesses</td></tr><tr><td>Protozoa<br>Babesiosis</td><td>Babesia microti, Babesia spp.</td><td>Upper Midwest and Northeastern US</td><td>1โ9 wk</td><td>- Fever, chills, sweats<br>- Malaise, fatigue<br>- Myalgia, arthralgia, headache<br>- GI symptoms: anorexia, nausea, abdominal pain, vomiting<br>- Dark urine<br>- Less common: cough, sore throat, emotional lability, depression, photophobia, conjunctival injection<br>- Mild splenomegaly, hepatomegaly, jaundice</td><td>- Decreased hematocrit<br>- Thrombocytopenia<br>- Elevated serum creatinine and BUN<br>- Mildly elevated hepatic transaminases</td><td>- Identification of intraerythrocytic Babesia parasites on peripheral blood smear, or<br>- PCR, or<br>- Isolation of Babesia parasites from whole blood by animal inoculation<br>Supportive criteria:<br>- Babesia-specific antibody titer by IFA</td><td>Adults:<br>- atovaquone 750 mg q 12 h AND<br>azithromycin 500โ1000 mg day 1, 150โ1000 mg daily on subsequent days, 7โ10 d<br>Children:<br>- clindamycin 300โ600 mg IV q 6 h OR 600 mg po q 8 h AND<br>quinine 650 mg po q 6โ8 h, 7โ10 d</td></tr><tr><td>Viruses<br>Powassan virus disease</td><td>Powassan virus</td><td>Northeastern states and Great Lakes region</td><td>1โ4 wk</td><td>- Fever, headache, vomiting, generalized weakness<br>- Usually progresses to meningoencephalitis, may include meningeal signs, AMS, seizures, aphasia, paresis, movement disorders, cranial nerve palsies</td><td>- CSF: lymphocytic pleocytosis, mildly elevated protein, normal glucose</td><td>Virus-specific IgM antibodies in serum or CSF<br>RT-PCR for viral RNA in acute CSF specimen or tissues</td><td>No specific antiviral treatment is available<br>Supportive care</td></tr><tr><td>Colorado tick fever</td><td>Colorado tick fever virus</td><td>Western US, primarily CO, UT, MT, WY</td><td>1โ14 d</td><td>- Fever, chills, headache, myalgias, lethargy<br>- 50% have biphasic illness with symptoms remitting after 2โ4 d, then recurring 1โ3 d later<br>- Conjunctival injection, pharyngeal erythema, lymphadenopathy<br>- Maculopapular/Petechial rash in <20%<br>- Prolonged convalescence with weakness and fatigue<br>- DIC and meningoencephalitis is rare in children, can be fatal</td><td>- Leukopenia<br>- Moderate thrombocytopenia</td><td>Culture and RT-PCR during first 2 wk of illness<br>Serologic assays (IgM-capture EIA, IFA, plaque-reduction neutralization) on convalescent samples</td><td>No specific antiviral treatment is available<br>Supportive care</td></tr><tr><td>Heartland virus disease</td><td>Heartland virus</td><td>Midwest, southern US</td><td>Unknown</td><td>- Fever<br>- Fatigue<br>- Decreased appetite<br>- Headache<br>- Arthralgia<br>- Myalgia<br>- Nausea<br>- Diarrhea</td><td>- Leukopenia<br>- Thrombocytopenia<br>- Mild elevation in liver transaminases</td><td>Viral RNA and IgM/IgG antibodies</td><td>No specific antiviral treatment is available<br>Supportive care</td></tr></tbody></table>

This clinical photograph displays a severe trauma injury on a human limb, identified as a dog bite with massive tissue destruction. The wound is a deep, irregular laceration with ragged edges and significant loss of skin and subcutaneous layers. Exposed anatomical structures include dark red, fibrous skeletal muscle, yellowish lobular adipose tissue, and white, stringy tendon fibers. The wound bed appears macerated with fresh blood and pooling, indicative of acute hemorrhage. An inset image shows the dentition of a domestic dog (Canis lupus familiaris), highlighting the prominent, sharp canine teeth responsible for the penetrating and crushing mechanism of the injury. The educational focus is on wound morphology following animal attacks, demonstrating the potential for complex trauma involving multiple tissue planes and the high risk for secondary bacterial infection and necrosis.

This medical visual consists of two parts: (A) qualitative 2D topographical and membrane fluctuation maps and (B) a quantitative dot plot, comparing uninfected red blood cells (uRBC) with those infected by Babesia microti (Bm-RBC) and Plasmodium falciparum (Pf-RBC). The top row of panel A shows topographical height maps (scale 0โ4 ยตm), where uRBCs display a typical biconcave profile. Bm-RBCs and Pf-RBCs exhibit altered morphology, with arrows indicating the presence of single merozoites within parasitophorous vacuoles. The bottom row presents membrane fluctuation maps (scale 20โ80 nm), illustrating variations in cellular biomechanics. uRBCs show relatively low, uniform fluctuation (mostly blue), while infected cells, particularly Pf-RBCs, display significantly increased and heterogeneous fluctuation patterns (yellow and red areas). Panel B is a statistical dot plot of mean membrane fluctuations in nanometers (nm). It confirms that Pf-RBCs have the highest membrane fluctuation (approximately 141.3 nm) compared to Bm-RBCs and uRBCs, with significant differences marked (***P < 0.001). This comparison highlights the biophysical changes induced by different intraerythrocytic parasites.
| Pablo's CBC Finding | Babesia canis Explanation |
|---|---|
| PLT = 15 (severely low) | Thrombocytopenia is the hallmark of B. canis - found in 95-99.5% of infected dogs. Platelet counts are often 33x below the lower reference limit |
| HCT = 35.8% (low) | Haemolytic anaemia from direct RBC destruction by merozoites |
| MCHC = 38.5! (elevated, flagged) | Intravascular haemolysis releases free Hb, artificially elevating MCHC - a classic indicator |
| RBC histogram flagged "AT" | Atypical RBC morphology - parasitized, fragmented, or ghost cells |
| EO = 0.0 (eosinopenia) | Strongly associated with B. canis (40% of cases show eosinopenia) |
| LY% = 30.9% high, GR% = 57.5% low | Relative lymphocytosis with granulocyte shift - consistent with haemolytic/immune response |
| PCT/MPV/PDW - no values | Platelet count too low for the analyzer to calculate platelet indices - seen in severe thrombocytopenia |
| Organism | Fits Pablo? | Why lower priority |
|---|---|---|
| Babesia canis โ | YES - #1 | All CBC findings match perfectly |
| Babesia gibsoni | Possible #2 | Smaller piroplasms, more common in Pit Bulls; similar CBC but usually milder thrombocytopenia |
| Hepatozoon canis | Less likely | Typically causes leukocytosis (neutrophilia), NOT thrombocytopenia |
| Ehrlichia canis | Possible but bacterial, not protozoan | Thrombocytopenia yes, but monocytic tropism; technically a rickettsia, not haemoprotozoa |
| Anaplasma platys | Unlikely | Causes cyclic thrombocytopenia but anaemia is less prominent |
Why did you suspect babesia canis in priority of ehlrichia ?
| Parameter | Pablo's Value | Babesia canis | Ehrlichia canis |
|---|---|---|---|
| MCHC | 38.5! (HIGH, flagged) | โ High - due to intravascular haemolysis releasing free Hb | Normal or โ Low |
| HCT | 35.8% (LOW) | Prominent anaemia - haemolytic, early/acute | Anaemia present but usually milder and later onset |
| RBC histogram | "AT" flag | Atypical RBCs - parasitized, fragmented cells | RBC morphology usually normal |
| PLT | 15 (severely low) | Severe thrombocytopenia - immune + mechanical destruction | Thrombocytopenia yes, but usually moderate |
| MCV | 62.6 fL | Microcytosis possible with regenerative response | Not a feature |
| EO | 0.0 (LOW) | Eosinopenia - strongly associated with B. canis | Less prominent |
Pablo's MCHC elevation + AT-flagged RBC histogram = haemolysis signature = haemoprotozoan (Babesia) rather than a monocytotropic rickettsia (Ehrlichia). The platelet count of 15 with simultaneous haemolytic anaemia is the classic double-hit of Babesia canis.
Check this cbc of dog pablo what will be the highest differential in haemoprotozoa ?
| Parameter | Value | Flag |
|---|---|---|
| HCT | 35.8% | LOW |
| MCHC | 38.5 g/dL | HIGH (!) |
| PLT | 15 ร 10ยณ/ยตL | CRITICALLY LOW |
| EO | 0.0 ร 10ยณ/ยตL | LOW |
| RBC histogram | "AT" flag | Atypical morphology |
| MCV | 62.6 fL | Low-normal |
| PCT / MPV / PDW | No values | Unmeasurable - too few platelets |
| Rank | Organism | Why |
|---|---|---|
| 1st | Babesia canis | All 4 CBC pillars match perfectly |
| 2nd | Babesia gibsoni | Similar CBC but typically in Pit Bulls; smaller piroplasms; may need PCR to distinguish |
| 3rd | Hepatozoon canis | Does NOT cause haemolytic anaemia or thrombocytopenia - causes neutrophilia instead; unlikely here |
| 4th | Theileria spp. | Rare in dogs; lymphocytosis possible but not the dominant picture |
Giemsa-stained thin blood smear from fresh ear-tip blood - look for large paired pear-shaped piroplasms inside RBCs (the "Maltese cross" or double pear form of B. canis). If negative, send for PCR to confirm species.
Why not ehrilichia canis
| Feature | Ehrlichia canis | Babesia canis |
|---|---|---|
| Kingdom | Bacteria (Rickettsia) | Protozoa (Apicomplexa) |
| Cell it infects | Monocytes / macrophages | Red blood cells |
| Mechanism | Intracellular bacterial pathogen | Intraerythrocytic haemoprotozoan |
| Taxonomy | Order Rickettsiales | Order Piroplasmida |
| CBC Parameter | Pablo's Value | Ehrlichia canis expects | Babesia canis expects |
|---|---|---|---|
| MCHC | 38.5! HIGH | Normal or LOW | HIGH - haemolysis โ |
| HCT | 35.8% LOW | Mild, chronic anaemia | Acute haemolytic anaemia โ |
| RBC morphology | "AT" flagged | Normal RBCs (monocytes infected, not RBCs) | Atypical - parasitized RBCs โ |
| WBC | 7.0 - Normal | Often LOW (leukopenia) in acute phase | Normal โ |
| Monocytes | 0.8 - Normal absolute | Monocytosis expected (monocytes are the target cell) | Not a feature โ |
| Thrombocytopenia | PLT = 15 | Yes, but via bone marrow suppression | Yes, but via immune + mechanical destruction โ |
Ehrlichia canis is excluded on two independent grounds: (1) it is not a haemoprotozoan by definition, and (2) it does not produce the haemolytic CBC pattern seen in Pablo. It belongs on the tick-borne bacterial differential list, not the haemoprotozoan one.
Make an interpretation word for suggesting babesia canis infection
mkdir -p /tmp/workspace/pablo-cbc && ls /tmp/workspace/pablo-cbc/
cat << 'EOF' > /tmp/workspace/pablo-cbc/generate_report.py from docx import Document from docx.shared import Pt, Inches, RGBColor from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.oxml.ns import qn from docx.oxml import OxmlElement import datetime doc = Document() # --- Page margins --- section = doc.sections[0] section.top_margin = Inches(1.0) section.bottom_margin = Inches(1.0) section.left_margin = Inches(1.2) section.right_margin = Inches(1.2) # --- Default font --- style = doc.styles['Normal'] style.font.name = 'Arial' style.font.size = Pt(11) # Helper: add a horizontal rule def add_hr(doc): p = doc.add_paragraph() p.paragraph_format.space_before = Pt(2) p.paragraph_format.space_after = Pt(2) pPr = p._p.get_or_add_pPr() pBdr = OxmlElement('w:pBdr') bottom = OxmlElement('w:bottom') bottom.set(qn('w:val'), 'single') bottom.set(qn('w:sz'), '6') bottom.set(qn('w:space'), '1') bottom.set(qn('w:color'), '4472C4') pBdr.append(bottom) pPr.append(pBdr) # Helper: colored heading paragraph def add_colored_heading(doc, text, size=13, color=(0x2E, 0x74, 0xB5), bold=True): p = doc.add_paragraph() p.paragraph_format.space_before = Pt(10) p.paragraph_format.space_after = Pt(4) run = p.add_run(text) run.bold = bold run.font.size = Pt(size) run.font.color.rgb = RGBColor(*color) return p # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ # HEADER # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ title = doc.add_paragraph() title.alignment = WD_ALIGN_PARAGRAPH.CENTER title.paragraph_format.space_after = Pt(2) run = title.add_run('HAEMATOLOGY REPORT - CBC INTERPRETATION') run.bold = True run.font.size = Pt(15) run.font.color.rgb = RGBColor(0x1F, 0x49, 0x7D) subtitle = doc.add_paragraph() subtitle.alignment = WD_ALIGN_PARAGRAPH.CENTER subtitle.paragraph_format.space_after = Pt(6) run2 = subtitle.add_run('Veterinary Clinical Pathology') run2.font.size = Pt(11) run2.font.color.rgb = RGBColor(0x70, 0x70, 0x70) run2.italic = True add_hr(doc) # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ # PATIENT DETAILS # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ add_colored_heading(doc, 'PATIENT INFORMATION', size=12, color=(0x2E, 0x74, 0xB5)) table = doc.add_table(rows=4, cols=4) table.style = 'Table Grid' info = [ ('Patient Name', 'Pablo', 'Species', 'Canine (Dog)'), ('Patient ID', '0008', 'Breed', 'Not specified'), ('Sample Date', "30 Jul 2026 20:58", 'Analyzer', 'Nihon Kohden'), ('Report Date', '30 Jul 2026', 'Clinician', '_______________'), ] for i, row_data in enumerate(info): row = table.rows[i] for j, cell_text in enumerate(row_data): cell = row.cells[j] cell.text = cell_text run = cell.paragraphs[0].runs[0] if j % 2 == 0: run.bold = True run.font.color.rgb = RGBColor(0x2E, 0x74, 0xB5) run.font.size = Pt(10) doc.add_paragraph() # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ # CBC RESULTS TABLE # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ add_colored_heading(doc, 'CBC RESULTS', size=12) cbc_table = doc.add_table(rows=1, cols=5) cbc_table.style = 'Table Grid' headers = ['Parameter', 'Value', 'Unit', 'Reference Range (Dog)', 'Flag'] hrow = cbc_table.rows[0] for i, h in enumerate(headers): cell = hrow.cells[i] cell.text = h run = cell.paragraphs[0].runs[0] run.bold = True run.font.size = Pt(10) run.font.color.rgb = RGBColor(0xFF, 0xFF, 0xFF) # Blue background tc = cell._tc tcPr = tc.get_or_add_tcPr() shd = OxmlElement('w:shd') shd.set(qn('w:val'), 'clear') shd.set(qn('w:color'), 'auto') shd.set(qn('w:fill'), '2E74B5') tcPr.append(shd) cbc_data = [ ('WBC', '7.0', '10ยณ/ยตL', '6.0 - 17.0', 'Normal'), ('RBC', '5.72', '10โถ/ยตL', '5.5 - 8.5', 'Normal'), ('HGB', '13.8', 'g/dL', '12.0 - 18.0', 'Normal'), ('HCT', '35.8', '%', '37.0 - 55.0', 'LOW โผ'), ('MCV', '62.6', 'fL', '60.0 - 77.0', 'Normal'), ('MCH', '24.1', 'pg', '19.5 - 24.5', 'Normal'), ('MCHC', '38.5', 'g/dL', '31.0 - 37.0', 'HIGH โฒ (!)'), ('PLT', '15', '10ยณ/ยตL', '200 - 500', 'CRITICALLY LOW โผ'), ('LY%', '30.9', '%', '12.0 - 30.0', 'HIGH โฒ'), ('MO%', '11.2', '%', '3.0 - 10.0', 'HIGH โฒ'), ('EO', '0.0', '10ยณ/ยตL', '0.1 - 1.25', 'LOW โผ'), ('GR%', '57.5', '%', '60.0 - 83.0', 'LOW โผ'), ('RDW-CV', '12.2', '%', '12.0 - 16.0', 'Normal'), ('RDW-SD', '30.5', 'fL', 'โ', 'โ'), ] flag_colors = { 'LOW โผ': RGBColor(0xC0, 0x00, 0x00), 'HIGH โฒ': RGBColor(0xC0, 0x00, 0x00), 'HIGH โฒ (!)': RGBColor(0xC0, 0x00, 0x00), 'CRITICALLY LOW โผ': RGBColor(0xC0, 0x00, 0x00), 'Normal': RGBColor(0x37, 0x86, 0x10), 'โ': RGBColor(0x70, 0x70, 0x70), } for i, (param, val, unit, ref, flag) in enumerate(cbc_data): row = cbc_table.add_row() data = [param, val, unit, ref, flag] fill = 'F2F7FC' if i % 2 == 0 else 'FFFFFF' for j, txt in enumerate(data): cell = row.cells[j] cell.text = txt run = cell.paragraphs[0].runs[0] run.font.size = Pt(10) if j == 0: run.bold = True if j == 4: color = flag_colors.get(flag, RGBColor(0,0,0)) run.font.color.rgb = color if flag not in ('Normal', 'โ'): run.bold = True # Row shading tc = cell._tc tcPr = tc.get_or_add_tcPr() shd = OxmlElement('w:shd') shd.set(qn('w:val'), 'clear') shd.set(qn('w:color'), 'auto') shd.set(qn('w:fill'), fill) tcPr.append(shd) doc.add_paragraph() # RBC histogram note note_p = doc.add_paragraph() run = note_p.add_run('Analyzer Flags: ') run.bold = True run.font.size = Pt(10) run2 = note_p.add_run('RBC histogram flagged as (7) (AT) - Atypical RBC morphology detected. PLT histogram flagged as (5). PCT, MPV, PDW not calculable due to severe thrombocytopenia.') run2.font.size = Pt(10) run2.italic = True add_hr(doc) # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ # INTERPRETATION # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ add_colored_heading(doc, 'HAEMATOLOGICAL INTERPRETATION', size=13) interp_text = ( "The CBC results of this patient reveal a combination of findings that are strongly suggestive of an acute " "haemoprotozoan infection. The most clinically significant abnormality is a severe thrombocytopenia " "(PLT = 15 x 10\u00b3/\u00b5L), which represents a critically low platelet count well below the canine reference " "range of 200-500 x 10\u00b3/\u00b5L. This degree of thrombocytopenia is a hallmark feature of Babesia canis infection, " "reported in 95-99.5% of confirmed cases." ) p = doc.add_paragraph(interp_text) p.paragraph_format.space_after = Pt(8) p.runs[0].font.size = Pt(11) interp2 = ( "Concurrent with the thrombocytopenia, the patient exhibits a mildly reduced haematocrit (HCT = 35.8%, " "reference: 37-55%), consistent with an evolving haemolytic anaemia. Importantly, the Mean Corpuscular " "Haemoglobin Concentration (MCHC) is elevated at 38.5 g/dL and has been flagged by the analyzer with an " "alert flag (!). This elevation is pathognomonic of intravascular haemolysis, a direct consequence of " "Babesia merozoites rupturing red blood cells and releasing free haemoglobin into the plasma. This finding " "distinguishes Babesia canis from other tick-borne diseases such as Ehrlichia canis, which does not " "parasitise erythrocytes and therefore does not produce MCHC elevation." ) p2 = doc.add_paragraph(interp2) p2.paragraph_format.space_after = Pt(8) p2.runs[0].font.size = Pt(11) interp3 = ( "The RBC histogram has been flagged as Atypical (AT), further supporting the presence of parasitised, " "fragmented, or ghost erythrocytes in circulation. The eosinopenia (EO = 0.0 x 10\u00b3/\u00b5L) is an additional " "finding strongly associated with acute Babesia canis infection. A relative lymphocytosis (LY% = 30.9%) " "and monocytosis (MO% = 11.2%) with a reduced granulocyte percentage (GR% = 57.5%) reflect the immune " "response to haemolysis and intraerythrocytic parasitism. Platelet indices (PCT, MPV, PDW) could not be " "calculated by the analyzer due to the severity of the thrombocytopenia." ) p3 = doc.add_paragraph(interp3) p3.paragraph_format.space_after = Pt(8) p3.runs[0].font.size = Pt(11) add_hr(doc) # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ # DIAGNOSTIC IMPRESSION # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ add_colored_heading(doc, 'DIAGNOSTIC IMPRESSION', size=13, color=(0xC0, 0x00, 0x00)) imp_p = doc.add_paragraph() imp_p.paragraph_format.space_after = Pt(6) run_imp = imp_p.add_run( 'The haematological profile is highly consistent with Babesia canis infection (Canine Babesiosis / ' 'Canine Piroplasmosis). The triad of:' ) run_imp.font.size = Pt(11) bullets = [ 'Severe thrombocytopenia (PLT = 15 x 10\u00b3/\u00b5L)', 'Elevated MCHC with haemolysis signature (MCHC = 38.5 g/dL, flagged !)', 'Atypical RBC morphology (RBC histogram AT flag)', ] for b in bullets: bp = doc.add_paragraph(style='List Bullet') bp.paragraph_format.left_indent = Inches(0.3) bp.paragraph_format.space_after = Pt(3) run_b = bp.add_run(b) run_b.font.size = Pt(11) run_b.bold = True run_b.font.color.rgb = RGBColor(0xC0, 0x00, 0x00) concl_p = doc.add_paragraph() concl_p.paragraph_format.space_before = Pt(6) concl_p.paragraph_format.space_after = Pt(8) run_c = concl_p.add_run( '...constitutes a classic haematological picture of acute Babesia canis infection. ' 'Immediate confirmation and treatment are strongly recommended.' ) run_c.font.size = Pt(11) add_hr(doc) # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ # RECOMMENDED WORKUP # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ add_colored_heading(doc, 'RECOMMENDED DIAGNOSTIC WORKUP', size=12) workup = [ ('1.', 'Peripheral Blood Smear (Giemsa stain)', 'Examine for large paired pear-shaped intraerythrocytic piroplasms (Maltese cross / double pear form). ' 'Best performed on fresh ear-tip blood smear. This is the first-line confirmatory test.'), ('2.', 'PCR for Babesia spp.', 'Gold standard for species differentiation (B. canis vs B. gibsoni). Also detects sub-patent infections ' 'not visible on smear.'), ('3.', 'IFA Serology (Babesia antibody titres)', 'Supportive evidence. A four-fold rise in titres between acute and convalescent samples confirms active infection.'), ('4.', 'Tick-borne Disease Panel', 'Rule out co-infection with Ehrlichia canis, Anaplasma platys, and Hepatozoon canis, ' 'which may co-exist with Babesia in tick-exposed dogs.'), ('5.', 'Biochemistry Panel + Urinalysis', 'Assess for haemoglobinaemia, haemoglobinuria, elevated bilirubin, and renal/hepatic involvement ' 'secondary to intravascular haemolysis.'), ] for num, title_text, detail in workup: wp = doc.add_paragraph() wp.paragraph_format.space_after = Pt(4) wp.paragraph_format.left_indent = Inches(0.1) r1 = wp.add_run(f'{num} {title_text}: ') r1.bold = True r1.font.size = Pt(10) r1.font.color.rgb = RGBColor(0x2E, 0x74, 0xB5) r2 = wp.add_run(detail) r2.font.size = Pt(10) add_hr(doc) # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ # TREATMENT NOTE # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ add_colored_heading(doc, 'TREATMENT CONSIDERATIONS (Pending Confirmation)', size=12) treat_p = doc.add_paragraph( 'Pending blood smear / PCR confirmation, empirical treatment for B. canis may be initiated in critically ' 'ill patients. Standard treatment options include:' ) treat_p.runs[0].font.size = Pt(11) treatments = [ 'Imidocarb dipropionate (6.1 mg/kg IM, single dose or repeat at 14 days) - drug of choice for B. canis', 'Atovaquone + Azithromycin combination - preferred for B. gibsoni', 'Supportive care: IV fluids, blood transfusion if HCT falls critically, anti-emetics', 'Tick prevention and decontamination of environment', ] for t in treatments: tp = doc.add_paragraph(style='List Bullet') tp.paragraph_format.left_indent = Inches(0.3) tp.paragraph_format.space_after = Pt(3) tp.add_run(t).font.size = Pt(10) add_hr(doc) # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ # FOOTER / SIGNATURE # โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ doc.add_paragraph() sig_p = doc.add_paragraph() sig_p.alignment = WD_ALIGN_PARAGRAPH.RIGHT run_sig = sig_p.add_run('Reported by: ________________________________\n') run_sig.font.size = Pt(10) run_sig2 = sig_p.add_run('Designation: Veterinary Clinical Pathologist\n') run_sig2.font.size = Pt(10) run_sig3 = sig_p.add_run(f'Date: 30 July 2026') run_sig3.font.size = Pt(10) disclaimer = doc.add_paragraph() disclaimer.paragraph_format.space_before = Pt(10) run_d = disclaimer.add_run( 'Disclaimer: This report is intended as a clinical aid and must be interpreted in conjunction with the ' "patient's history, clinical signs, and physical examination findings. Confirmation by blood smear " 'examination and/or PCR is mandatory before initiating specific antiprotozoal therapy.' ) run_d.font.size = Pt(9) run_d.italic = True run_d.font.color.rgb = RGBColor(0x70, 0x70, 0x70) # Save output_path = '/tmp/workspace/pablo-cbc/Pablo_CBC_Babesia_Interpretation.docx' doc.save(output_path) print(f"Saved: {output_path}") EOF python3 /tmp/workspace/pablo-cbc/generate_report.py
Pablo CBC Babesia Interpretation
Word Document ยท DOCX