We are opening a clinic in general medicine an take a role on chairman, chief physician ,surgeon ,therapist or family doctor , pediatrician , financier , hr manager ,marketer, IT specialist , lawyer or regulator make a ppt including intro, mission,goals,strategy and budget in tenge and appropriate salaries for the above staffs

Asking for Preferences
Reading File
Searching the Web

Kazakhstan Astana general medicine clinic doctor salary tenge 2025 2026

Reading File
Running Command

mkdir -p /home/daytona/workspace/clinic-ppt && ls /home/daytona/workspace/clinic…

Writing File

~/clinic-ppt/build.js

const pptxgen = require("pptxgenjs");

const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "MediCare Astana – General Medicine Clinic";
pres.author = "MediCare Astana";

// ── PALETTE ──────────────────────────────────────────────────────────────────
const C = {
  navy:    "0A2240",   // dominant dark
  teal:    "0D7E7E",   // supporting accent
  mint:    "A8D8D8",   // light teal
  gold:    "C9A84C",   // accent/highlight
  white:   "FFFFFF",
  offWhite:"F4F8FA",
  gray:    "5E6E7A",
  lightGray:"D6E4EC",
};

// Helper: add a coloured full-slide background rectangle
function bg(slide, color) {
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 5.625, fill: { color } });
}

// Helper: accent bar across top
function topBar(slide, color = C.teal) {
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 10, h: 0.12, fill: { color } });
}

// Helper: accent bar at bottom
function bottomBar(slide, color = C.gold) {
  slide.addShape(pres.ShapeType.rect, { x: 0, y: 5.50, w: 10, h: 0.125, fill: { color } });
}

// Helper: section label chip
function chip(slide, text, x, y) {
  slide.addShape(pres.ShapeType.roundRect, {
    x, y, w: 2.2, h: 0.30, rectRadius: 0.05,
    fill: { color: C.teal }, line: { color: C.teal }
  });
  slide.addText(text, {
    x, y, w: 2.2, h: 0.30, align: "center", valign: "middle",
    fontSize: 9, bold: true, color: C.white, margin: 0
  });
}

// ╔══════════════════════════════════════════════════════════════╗
// ║  SLIDE 1 – TITLE / COVER                                    ║
// ╚══════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  bg(s, C.navy);

  // Decorative teal panel left side
  s.addShape(pres.ShapeType.rect, { x: 0, y: 0, w: 3.8, h: 5.625, fill: { color: C.teal } });
  // Mint vertical stripe
  s.addShape(pres.ShapeType.rect, { x: 3.8, y: 0, w: 0.08, h: 5.625, fill: { color: C.mint } });

  // Cross / plus medical icon (white) on teal
  s.addShape(pres.ShapeType.rect, { x: 1.5, y: 1.5,  w: 0.8, h: 0.25, fill: { color: C.white } });
  s.addShape(pres.ShapeType.rect, { x: 1.775, y: 1.22, w: 0.25, h: 0.8, fill: { color: C.white } });

  // Clinic name (left panel)
  s.addText("MediCare\nAstana", {
    x: 0.3, y: 2.1, w: 3.2, h: 1.6,
    fontSize: 32, bold: true, color: C.white,
    align: "left", valign: "top", lineSpacingMultiple: 1.2
  });

  // Tagline
  s.addText("Your Health. Our Priority.", {
    x: 0.3, y: 3.8, w: 3.2, h: 0.45,
    fontSize: 12, italic: true, color: C.mint, align: "left"
  });

  // Right-side headline
  s.addText("General Medicine Clinic", {
    x: 4.1, y: 1.6, w: 5.6, h: 0.6,
    fontSize: 22, bold: true, color: C.white, align: "left"
  });
  s.addText("Business Presentation", {
    x: 4.1, y: 2.25, w: 5.6, h: 0.4,
    fontSize: 14, color: C.mint, align: "left"
  });

  // Divider line
  s.addShape(pres.ShapeType.rect, { x: 4.1, y: 2.75, w: 5.0, h: 0.04, fill: { color: C.gold } });

  // Sub-details
  s.addText([
    { text: "Location: ", options: { bold: true } },
    { text: "Astana, Republic of Kazakhstan\n" },
    { text: "Year: ", options: { bold: true } },
    { text: "2026\n" },
    { text: "Sector: ", options: { bold: true } },
    { text: "Private General Medicine" }
  ], {
    x: 4.1, y: 2.9, w: 5.6, h: 1.2,
    fontSize: 12, color: C.offWhite, align: "left", lineSpacingMultiple: 1.4
  });

  // Footer
  s.addText("Confidential | MediCare Astana © 2026", {
    x: 4.1, y: 5.2, w: 5.6, h: 0.3,
    fontSize: 9, color: C.gray, align: "right"
  });
}

// ╔══════════════════════════════════════════════════════════════╗
// ║  SLIDE 2 – AGENDA / TABLE OF CONTENTS                       ║
// ╚══════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  bg(s, C.offWhite);
  topBar(s);
  bottomBar(s);

  s.addText("What We Cover Today", {
    x: 0.5, y: 0.3, w: 9, h: 0.55,
    fontSize: 22, bold: true, color: C.navy, align: "left"
  });
  s.addShape(pres.ShapeType.rect, { x: 0.5, y: 0.88, w: 1.0, h: 0.04, fill: { color: C.teal } });

  const items = [
    ["01", "Introduction", "Who we are & the opportunity"],
    ["02", "Mission & Vision", "Our purpose and long-term aspiration"],
    ["03", "Goals", "Short-term and long-term targets"],
    ["04", "Strategy", "How we will achieve our goals"],
    ["05", "Team & Roles", "Leadership and clinical staff"],
    ["06", "Budget", "Startup costs & operating budget (KZT)"],
    ["07", "Salaries", "Remuneration plan for all staff"],
    ["08", "Next Steps", "Action plan & call to action"],
  ];

  items.forEach(([num, title, sub], i) => {
    const col = i < 4 ? 0 : 1;
    const row = i < 4 ? i : i - 4;
    const x = 0.5 + col * 4.8;
    const y = 1.1 + row * 1.0;

    s.addShape(pres.ShapeType.roundRect, {
      x, y, w: 4.4, h: 0.82, rectRadius: 0.06,
      fill: { color: C.white }, line: { color: C.lightGray, pt: 1 }
    });
    // Number chip
    s.addShape(pres.ShapeType.roundRect, {
      x: x + 0.08, y: y + 0.12, w: 0.46, h: 0.55, rectRadius: 0.05,
      fill: { color: C.navy }
    });
    s.addText(num, {
      x: x + 0.08, y: y + 0.12, w: 0.46, h: 0.55,
      fontSize: 13, bold: true, color: C.gold,
      align: "center", valign: "middle", margin: 0
    });
    s.addText(title, {
      x: x + 0.64, y: y + 0.06, w: 3.6, h: 0.34,
      fontSize: 12, bold: true, color: C.navy
    });
    s.addText(sub, {
      x: x + 0.64, y: y + 0.42, w: 3.6, h: 0.28,
      fontSize: 9, color: C.gray, italic: true
    });
  });
}

// ╔══════════════════════════════════════════════════════════════╗
// ║  SLIDE 3 – INTRODUCTION                                     ║
// ╚══════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  bg(s, C.navy);
  // Teal accent strip right
  s.addShape(pres.ShapeType.rect, { x: 6.8, y: 0, w: 3.2, h: 5.625, fill: { color: "0B3556" } });
  topBar(s, C.gold);
  bottomBar(s, C.teal);

  chip(s, "INTRODUCTION", 0.5, 0.25);

  s.addText("Why MediCare Astana?", {
    x: 0.5, y: 0.65, w: 6.0, h: 0.55,
    fontSize: 22, bold: true, color: C.white
  });

  const points = [
    { icon: "⚕", title: "Market Gap",     body: "Astana has 1.5 M+ residents yet faces a shortage of integrated, patient-centred private general medicine clinics." },
    { icon: "📈", title: "Growing Demand", body: "Kazakhstan healthcare spending rose +18% YoY (2025). Middle-class demand for quality outpatient care is surging." },
    { icon: "🏛", title: "Strong Location", body: "New Administrative Capital with a young, employed, insured population – ideal for a full-service general medicine clinic." },
    { icon: "🤝", title: "Our Approach",   body: "One roof, multi-disciplinary team: general medicine, surgery, therapy, pediatrics, and administrative excellence." },
  ];

  points.forEach((p, i) => {
    const y = 1.3 + i * 0.97;
    s.addShape(pres.ShapeType.roundRect, {
      x: 0.5, y, w: 6.1, h: 0.82, rectRadius: 0.06,
      fill: { color: "0E2F4F" }, line: { color: C.teal, pt: 1 }
    });
    s.addText(p.icon, { x: 0.58, y: y + 0.15, w: 0.5, h: 0.5, fontSize: 18 });
    s.addText(p.title, { x: 1.18, y: y + 0.06, w: 5.2, h: 0.32, fontSize: 11, bold: true, color: C.gold });
    s.addText(p.body,  { x: 1.18, y: y + 0.38, w: 5.2, h: 0.36, fontSize: 9.5, color: C.mint });
  });

  // Right panel stat
  s.addText("Astana\nPopulation", { x: 7.0, y: 1.0, w: 2.8, h: 0.7, fontSize: 11, color: C.mint, align: "center" });
  s.addText("1.5M+", { x: 7.0, y: 1.7, w: 2.8, h: 0.7, fontSize: 32, bold: true, color: C.gold, align: "center" });
  s.addShape(pres.ShapeType.rect, { x: 7.5, y: 2.5, w: 1.8, h: 0.04, fill: { color: C.teal } });
  s.addText("Healthcare\nGrowth Rate", { x: 7.0, y: 2.65, w: 2.8, h: 0.6, fontSize: 11, color: C.mint, align: "center" });
  s.addText("+18% YoY", { x: 7.0, y: 3.3, w: 2.8, h: 0.6, fontSize: 20, bold: true, color: C.gold, align: "center" });
  s.addShape(pres.ShapeType.rect, { x: 7.5, y: 4.0, w: 1.8, h: 0.04, fill: { color: C.teal } });
  s.addText("Min. Wage\n(KZT 2026)", { x: 7.0, y: 4.1, w: 2.8, h: 0.5, fontSize: 11, color: C.mint, align: "center" });
  s.addText("85,000", { x: 7.0, y: 4.62, w: 2.8, h: 0.5, fontSize: 20, bold: true, color: C.gold, align: "center" });
}

// ╔══════════════════════════════════════════════════════════════╗
// ║  SLIDE 4 – MISSION & VISION                                 ║
// ╚══════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  bg(s, C.offWhite);
  topBar(s);
  bottomBar(s);

  chip(s, "MISSION & VISION", 0.5, 0.2);

  // Mission block
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.5, y: 0.6, w: 4.3, h: 4.7, rectRadius: 0.1,
    fill: { color: C.navy }, line: { color: C.teal, pt: 2 }
  });
  s.addText("MISSION", {
    x: 0.7, y: 0.75, w: 3.9, h: 0.42,
    fontSize: 16, bold: true, color: C.gold, align: "center", charSpacing: 4
  });
  s.addShape(pres.ShapeType.rect, { x: 1.3, y: 1.22, w: 2.7, h: 0.04, fill: { color: C.teal } });
  s.addText(
    "To deliver accessible, evidence-based, and compassionate general medical care to the people of Astana – " +
    "combining experienced clinical professionals with modern diagnostic technology to improve patient outcomes " +
    "and quality of life.",
    {
      x: 0.7, y: 1.35, w: 3.9, h: 2.0,
      fontSize: 10.5, color: C.white, align: "left",
      lineSpacingMultiple: 1.5, valign: "top"
    }
  );
  // 3 pillars
  [["Accessible", "Affordable consultations for all income groups"],
   ["Evidence-Based", "Clinical decisions grounded in current guidelines"],
   ["Compassionate", "Patient dignity and empathy at every touchpoint"]
  ].forEach(([t, b], i) => {
    const y = 3.55 + i * 0.55;
    s.addShape(pres.ShapeType.rect, { x: 0.7, y: y + 0.05, w: 0.06, h: 0.32, fill: { color: C.teal } });
    s.addText(t, { x: 0.88, y, w: 3.6, h: 0.24, fontSize: 10, bold: true, color: C.mint });
    s.addText(b, { x: 0.88, y: y + 0.24, w: 3.6, h: 0.22, fontSize: 8.5, color: C.lightGray });
  });

  // Vision block
  s.addShape(pres.ShapeType.roundRect, {
    x: 5.2, y: 0.6, w: 4.3, h: 4.7, rectRadius: 0.1,
    fill: { color: C.teal }, line: { color: C.navy, pt: 2 }
  });
  s.addText("VISION", {
    x: 5.4, y: 0.75, w: 3.9, h: 0.42,
    fontSize: 16, bold: true, color: C.navy, align: "center", charSpacing: 4
  });
  s.addShape(pres.ShapeType.rect, { x: 6.0, y: 1.22, w: 2.7, h: 0.04, fill: { color: C.navy } });
  s.addText(
    "To become the most trusted private general medicine clinic in Astana by 2030 – " +
    "recognised for clinical excellence, technological innovation, and holistic patient care across all age groups.",
    {
      x: 5.4, y: 1.35, w: 3.9, h: 1.8,
      fontSize: 10.5, color: C.white, align: "left",
      lineSpacingMultiple: 1.5, valign: "top"
    }
  );
  [["#1 Trusted Clinic", "Top-rated by patient satisfaction surveys in Astana"],
   ["Technology Leader", "AI-assisted diagnostics and electronic health records by 2027"],
   ["Community Impact", "Free annual health screenings for 500+ low-income residents"]
  ].forEach(([t, b], i) => {
    const y = 3.2 + i * 0.6;
    s.addShape(pres.ShapeType.rect, { x: 5.4, y: y + 0.05, w: 0.06, h: 0.32, fill: { color: C.navy } });
    s.addText(t, { x: 5.58, y, w: 3.6, h: 0.24, fontSize: 10, bold: true, color: C.navy });
    s.addText(b, { x: 5.58, y: y + 0.24, w: 3.6, h: 0.26, fontSize: 8.5, color: "0E2F4F" });
  });
}

// ╔══════════════════════════════════════════════════════════════╗
// ║  SLIDE 5 – GOALS                                            ║
// ╚══════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  bg(s, C.offWhite);
  topBar(s);
  bottomBar(s);

  chip(s, "GOALS", 0.5, 0.2);

  s.addText("Our Strategic Goals", {
    x: 0.5, y: 0.55, w: 9, h: 0.45,
    fontSize: 20, bold: true, color: C.navy
  });

  // Short-term column
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.4, y: 1.1, w: 4.3, h: 4.25, rectRadius: 0.08,
    fill: { color: C.navy }
  });
  s.addText("SHORT-TERM  (Year 1–2)", {
    x: 0.5, y: 1.18, w: 4.1, h: 0.38,
    fontSize: 10, bold: true, color: C.gold, align: "center", charSpacing: 2
  });
  s.addShape(pres.ShapeType.rect, { x: 1.0, y: 1.6, w: 3.0, h: 0.04, fill: { color: C.teal } });

  const stGoals = [
    "Register & license the clinic in Astana",
    "Hire full medical & administrative team (11 staff)",
    "Achieve 200+ patient visits per month by Month 6",
    "Break even on operating costs within 18 months",
    "Implement Electronic Medical Records (EMR) system",
    "Obtain ISO 9001 quality management certification",
  ];
  stGoals.forEach((g, i) => {
    s.addText([
      { text: "✓ ", options: { color: C.teal, bold: true } },
      { text: g, options: { color: C.white } }
    ], {
      x: 0.55, y: 1.72 + i * 0.55, w: 3.98, h: 0.44,
      fontSize: 9.5, valign: "middle"
    });
  });

  // Long-term column
  s.addShape(pres.ShapeType.roundRect, {
    x: 5.3, y: 1.1, w: 4.3, h: 4.25, rectRadius: 0.08,
    fill: { color: C.teal }
  });
  s.addText("LONG-TERM  (Year 3–5)", {
    x: 5.4, y: 1.18, w: 4.1, h: 0.38,
    fontSize: 10, bold: true, color: C.navy, align: "center", charSpacing: 2
  });
  s.addShape(pres.ShapeType.rect, { x: 5.9, y: 1.6, w: 3.0, h: 0.04, fill: { color: C.navy } });

  const ltGoals = [
    "Expand to second clinic location in Astana",
    "Serve 800+ patients/month across both branches",
    "Launch telemedicine platform for remote consultations",
    "Establish corporate health partnership with 20+ companies",
    "Introduce specialist departments: cardiology, neurology",
    "Achieve 95%+ patient satisfaction rating",
  ];
  ltGoals.forEach((g, i) => {
    s.addText([
      { text: "★ ", options: { color: C.navy, bold: true } },
      { text: g, options: { color: C.white } }
    ], {
      x: 5.45, y: 1.72 + i * 0.55, w: 3.98, h: 0.44,
      fontSize: 9.5, valign: "middle"
    });
  });
}

// ╔══════════════════════════════════════════════════════════════╗
// ║  SLIDE 6 – STRATEGY                                         ║
// ╚══════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  bg(s, C.navy);
  topBar(s, C.gold);
  bottomBar(s, C.teal);

  chip(s, "STRATEGY", 0.5, 0.22);

  s.addText("How We Win", {
    x: 0.5, y: 0.6, w: 9, h: 0.5,
    fontSize: 20, bold: true, color: C.white
  });

  const strategies = [
    {
      no: "1", color: C.teal, title: "Clinical Excellence",
      lines: ["Recruit board-certified physicians", "Evidence-based treatment protocols", "Continuous medical education (CME) quarterly"],
    },
    {
      no: "2", color: C.gold, title: "Patient Experience",
      lines: ["Online booking & 24h support line", "Average wait time < 15 minutes", "Patient portal with records & results"],
    },
    {
      no: "3", color: "2E8B57", title: "Financial Discipline",
      lines: ["Cost-control via smart procurement", "Mix of insurance + fee-for-service", "Monthly KPI dashboards for all depts"],
    },
    {
      no: "4", color: "9B59B6", title: "Marketing & Growth",
      lines: ["Digital-first marketing (SEO, social)", "Corporate wellness partnerships", "Community health events & screenings"],
    },
    {
      no: "5", color: "E67E22", title: "Technology",
      lines: ["EMR & telemedicine platform (Year 1)", "AI triage chatbot (Year 2)", "Data analytics for outcome tracking"],
    },
    {
      no: "6", color: "C0392B", title: "Compliance & Legal",
      lines: ["Full MoH licensing compliance", "GDPR-equivalent data protection", "Annual external clinical audit"],
    },
  ];

  strategies.forEach((st, i) => {
    const col = i % 3;
    const row = Math.floor(i / 3);
    const x = 0.35 + col * 3.2;
    const y = 1.25 + row * 2.0;

    s.addShape(pres.ShapeType.roundRect, {
      x, y, w: 3.0, h: 1.75, rectRadius: 0.08,
      fill: { color: "0E2F4F" }, line: { color: st.color, pt: 1.5 }
    });
    // Number
    s.addShape(pres.ShapeType.ellipse, {
      x: x + 0.1, y: y + 0.1, w: 0.4, h: 0.4,
      fill: { color: st.color }
    });
    s.addText(st.no, {
      x: x + 0.1, y: y + 0.1, w: 0.4, h: 0.4,
      fontSize: 12, bold: true, color: C.navy,
      align: "center", valign: "middle", margin: 0
    });
    s.addText(st.title, {
      x: x + 0.58, y: y + 0.12, w: 2.3, h: 0.32,
      fontSize: 10.5, bold: true, color: st.color
    });
    st.lines.forEach((line, li) => {
      s.addText("• " + line, {
        x: x + 0.12, y: y + 0.52 + li * 0.38, w: 2.75, h: 0.35,
        fontSize: 8.5, color: C.lightGray
      });
    });
  });
}

// ╔══════════════════════════════════════════════════════════════╗
// ║  SLIDE 7 – TEAM & ROLES                                     ║
// ╚══════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  bg(s, C.offWhite);
  topBar(s);
  bottomBar(s);

  chip(s, "TEAM & ROLES", 0.5, 0.2);

  s.addText("Our People", {
    x: 0.5, y: 0.55, w: 9, h: 0.45,
    fontSize: 20, bold: true, color: C.navy
  });

  const staff = [
    { role: "Chairman",        dept: "Governance",    icon: "👑", desc: "Sets strategic direction; chairs Board of Directors; oversees all departments and investor relations." },
    { role: "Chief Physician", dept: "Medical",       icon: "🩺", desc: "Medical director; ensures clinical standards, supervises doctors, manages patient safety protocols." },
    { role: "Surgeon",         dept: "Medical",       icon: "🔬", desc: "Performs outpatient surgical procedures; collaborates with physicians on complex case management." },
    { role: "Therapist",       dept: "Medical",       icon: "💊", desc: "Diagnoses and treats internal disease; manages chronic conditions, referrals, and follow-up care." },
    { role: "Family Doctor",   dept: "Medical",       icon: "🏥", desc: "Primary care for all ages; preventive medicine, immunisations, health screenings, and chronic disease management." },
    { role: "Pediatrician",    dept: "Medical",       icon: "👶", desc: "Child and adolescent health (0–18 yrs); growth monitoring, vaccinations, acute and developmental care." },
    { role: "Financier",       dept: "Admin/Finance", icon: "💰", desc: "Financial planning, budgeting, payroll, insurance billing, and regulatory financial reporting." },
    { role: "HR Manager",      dept: "Admin",         icon: "🤝", desc: "Recruitment, onboarding, staff welfare, compliance with Kazakh labour law, and performance management." },
    { role: "Marketer",        dept: "Growth",        icon: "📣", desc: "Digital and offline marketing, brand management, patient acquisition campaigns, and community outreach." },
    { role: "IT Specialist",   dept: "Technology",    icon: "💻", desc: "EMR system administration, cybersecurity, telemedicine platform, and hardware/software support." },
    { role: "Lawyer/Regulator",dept: "Legal",         icon: "⚖", desc: "Ensures MoH licensing, GDPR compliance, contract review, litigation management, and regulatory filings." },
  ];

  // 4 columns x 3 rows (last row has 3 items)
  staff.forEach((m, i) => {
    const col = i % 4;
    const row = Math.floor(i / 4);
    const x = 0.25 + col * 2.37;
    const y = 1.1 + row * 1.52;

    const deptColor = m.dept === "Medical" ? C.teal
      : m.dept === "Governance" ? C.navy
      : m.dept === "Admin/Finance" ? "2E8B57"
      : m.dept === "Admin" ? "9B59B6"
      : m.dept === "Growth" ? "E67E22"
      : m.dept === "Technology" ? "2980B9"
      : "C0392B";

    s.addShape(pres.ShapeType.roundRect, {
      x, y, w: 2.22, h: 1.36, rectRadius: 0.07,
      fill: { color: C.white }, line: { color: deptColor, pt: 1.5 }
    });
    s.addText(m.icon, { x: x + 0.08, y: y + 0.06, w: 0.45, h: 0.45, fontSize: 16 });
    s.addText(m.role, {
      x: x + 0.56, y: y + 0.06, w: 1.58, h: 0.34,
      fontSize: 9, bold: true, color: C.navy
    });
    s.addShape(pres.ShapeType.roundRect, {
      x: x + 0.56, y: y + 0.42, w: 1.25, h: 0.2, rectRadius: 0.04,
      fill: { color: deptColor }
    });
    s.addText(m.dept, {
      x: x + 0.56, y: y + 0.42, w: 1.25, h: 0.2,
      fontSize: 7, bold: true, color: C.white, align: "center", valign: "middle", margin: 0
    });
    s.addText(m.desc, {
      x: x + 0.08, y: y + 0.68, w: 2.06, h: 0.62,
      fontSize: 7.2, color: C.gray, lineSpacingMultiple: 1.25
    });
  });
}

// ╔══════════════════════════════════════════════════════════════╗
// ║  SLIDE 8 – BUDGET (KZT)                                     ║
// ╚══════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  bg(s, C.navy);
  topBar(s, C.gold);
  bottomBar(s, C.teal);

  chip(s, "BUDGET", 0.5, 0.22);

  s.addText("Startup & Annual Operating Budget", {
    x: 0.5, y: 0.6, w: 9, h: 0.48,
    fontSize: 19, bold: true, color: C.white
  });

  // ── STARTUP COSTS TABLE ──
  s.addText("STARTUP COSTS (One-Time)", {
    x: 0.4, y: 1.15, w: 4.5, h: 0.3,
    fontSize: 10, bold: true, color: C.gold, charSpacing: 1
  });

  const startup = [
    ["Clinic Premises (lease deposit 3mo)", "18,000,000"],
    ["Renovation & Interior Fit-Out", "25,000,000"],
    ["Medical Equipment & Instruments", "40,000,000"],
    ["IT Infrastructure & EMR System", "8,000,000"],
    ["Licensing & Legal Fees", "3,500,000"],
    ["Branding, Website & Marketing Launch", "4,000,000"],
    ["Staff Recruitment & Training", "2,500,000"],
    ["Working Capital Reserve (3 months)", "30,000,000"],
    ["TOTAL STARTUP", "131,000,000"],
  ];

  startup.forEach(([item, amount], i) => {
    const y = 1.5 + i * 0.38;
    const isTotal = item.startsWith("TOTAL");
    const bgColor = isTotal ? C.gold : i % 2 === 0 ? "0E2F4F" : "112E4A";
    const textColor = isTotal ? C.navy : C.white;
    s.addShape(pres.ShapeType.rect, {
      x: 0.4, y, w: 4.3, h: 0.34,
      fill: { color: bgColor }
    });
    s.addText(item, {
      x: 0.5, y: y + 0.03, w: 3.0, h: 0.28,
      fontSize: isTotal ? 9.5 : 8.8,
      bold: isTotal, color: textColor
    });
    s.addText(amount + " ₸", {
      x: 3.3, y: y + 0.03, w: 1.3, h: 0.28,
      fontSize: isTotal ? 9.5 : 8.8,
      bold: isTotal, color: isTotal ? C.navy : C.gold, align: "right"
    });
  });

  // ── ANNUAL OPERATING TABLE ──
  s.addText("ANNUAL OPERATING COSTS (Year 1)", {
    x: 5.0, y: 1.15, w: 4.6, h: 0.3,
    fontSize: 10, bold: true, color: C.gold, charSpacing: 1
  });

  const annual = [
    ["Staff Salaries (11 staff × 12 mo)", "162,000,000"],
    ["Premises Rent (monthly × 12)", "36,000,000"],
    ["Medical Supplies & Consumables", "18,000,000"],
    ["Utility Bills & Maintenance", "7,200,000"],
    ["Marketing & Advertising", "6,000,000"],
    ["IT Support & Software Licences", "3,600,000"],
    ["Insurance (Liability + Property)", "4,800,000"],
    ["Miscellaneous & Contingency (5%)", "11,880,000"],
    ["TOTAL ANNUAL OPEX", "249,480,000"],
  ];

  annual.forEach(([item, amount], i) => {
    const y = 1.5 + i * 0.38;
    const isTotal = item.startsWith("TOTAL");
    const bgColor = isTotal ? C.teal : i % 2 === 0 ? "0E2F4F" : "112E4A";
    const textColor = isTotal ? C.navy : C.white;
    s.addShape(pres.ShapeType.rect, {
      x: 5.0, y, w: 4.6, h: 0.34,
      fill: { color: bgColor }
    });
    s.addText(item, {
      x: 5.1, y: y + 0.03, w: 3.2, h: 0.28,
      fontSize: isTotal ? 9.5 : 8.8,
      bold: isTotal, color: textColor
    });
    s.addText(amount + " ₸", {
      x: 7.9, y: y + 0.03, w: 1.6, h: 0.28,
      fontSize: isTotal ? 9.5 : 8.8,
      bold: isTotal, color: isTotal ? C.navy : C.gold, align: "right"
    });
  });

  // Note
  s.addText("* All figures in Kazakhstani Tenge (KZT/₸). Exchange rate ~471 KZT/USD (May 2026). Salary line includes all 11 roles.", {
    x: 0.4, y: 5.25, w: 9.2, h: 0.25,
    fontSize: 7.5, color: C.gray, italic: true
  });
}

// ╔══════════════════════════════════════════════════════════════╗
// ║  SLIDE 9 – SALARIES                                         ║
// ╚══════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  bg(s, C.offWhite);
  topBar(s);
  bottomBar(s);

  chip(s, "SALARIES", 0.5, 0.2);

  s.addText("Staff Remuneration Plan — Astana, 2026", {
    x: 0.5, y: 0.55, w: 9, h: 0.45,
    fontSize: 18, bold: true, color: C.navy
  });

  // Table header
  const headers = ["Role", "Dept", "Gross Monthly Salary (₸)", "Annual Salary (₸)", "Market Benchmark"];
  const colW =    [2.2,    1.1,    2.4,                         2.4,                 1.5];
  const colX =    [0.3,    2.52,   3.64,                        6.06,                8.48];

  s.addShape(pres.ShapeType.rect, { x: 0.3, y: 1.08, w: 9.4, h: 0.32, fill: { color: C.navy } });
  headers.forEach((h, i) => {
    s.addText(h, {
      x: colX[i] + 0.05, y: 1.1, w: colW[i], h: 0.28,
      fontSize: 8.5, bold: true, color: C.gold, valign: "middle"
    });
  });

  const rows = [
    // [Role, Dept, monthly, annual, benchmark]
    ["Chairman",          "Governance",    "900,000",    "10,800,000",  "Above Market"],
    ["Chief Physician",   "Medical",       "800,000",     "9,600,000",  "Above Market"],
    ["Surgeon",           "Medical",       "750,000",     "9,000,000",  "Competitive"],
    ["Therapist",         "Medical",       "600,000",     "7,200,000",  "Competitive"],
    ["Family Doctor",     "Medical",       "550,000",     "6,600,000",  "At Market"],
    ["Pediatrician",      "Medical",       "550,000",     "6,600,000",  "At Market"],
    ["Financier",         "Admin/Finance", "500,000",     "6,000,000",  "At Market"],
    ["HR Manager",        "Admin",         "450,000",     "5,400,000",  "At Market"],
    ["Marketer",          "Growth",        "420,000",     "5,040,000",  "At Market"],
    ["IT Specialist",     "Technology",    "480,000",     "5,760,000",  "Competitive"],
    ["Lawyer/Regulator",  "Legal",         "500,000",     "6,000,000",  "Competitive"],
    ["TOTAL (11 Staff)",  "",              "6,500,000",  "78,000,000",  ""],
  ];

  rows.forEach((row, ri) => {
    const y = 1.42 + ri * 0.34;
    const isTotal = row[0].startsWith("TOTAL");
    const bg2 = isTotal ? C.navy : ri % 2 === 0 ? C.white : C.lightGray;
    s.addShape(pres.ShapeType.rect, { x: 0.3, y, w: 9.4, h: 0.32, fill: { color: bg2 } });

    // Benchmark chip colour
    const bColor = row[4] === "Above Market" ? "2E8B57" : row[4] === "Competitive" ? C.teal : "E67E22";

    row.forEach((cell, ci) => {
      if (ci === 4 && cell) {
        // Chip for benchmark
        s.addShape(pres.ShapeType.roundRect, {
          x: colX[ci] + 0.05, y: y + 0.04, w: 1.35, h: 0.22,
          rectRadius: 0.04, fill: { color: bColor }
        });
        s.addText(cell, {
          x: colX[ci] + 0.05, y: y + 0.04, w: 1.35, h: 0.22,
          fontSize: 7, bold: true, color: C.white,
          align: "center", valign: "middle", margin: 0
        });
      } else {
        s.addText(cell, {
          x: colX[ci] + 0.05, y: y + 0.04, w: colW[ci], h: 0.24,
          fontSize: isTotal ? 9 : 8.5,
          bold: isTotal,
          color: isTotal ? C.gold : C.navy,
          valign: "middle"
        });
      }
    });
  });

  // Note
  s.addText(
    "Gross monthly salaries include employer social contributions (~21.5%). " +
    "Benchmarks based on Kazakhstan National Statistics Bureau data (Q1 2025) and Times of Central Asia medical salary survey. " +
    "Performance bonuses (up to 20%) may be added quarterly.",
    {
      x: 0.3, y: 5.25, w: 9.4, h: 0.28,
      fontSize: 7.5, color: C.gray, italic: true
    }
  );
}

// ╔══════════════════════════════════════════════════════════════╗
// ║  SLIDE 10 – NEXT STEPS / CALL TO ACTION                     ║
// ╚══════════════════════════════════════════════════════════════╝
{
  const s = pres.addSlide();
  bg(s, C.navy);
  topBar(s, C.gold);

  // Large teal arc-like block top-right for visual
  s.addShape(pres.ShapeType.roundRect, {
    x: 6.5, y: -0.5, w: 4.5, h: 4.5, rectRadius: 0.5,
    fill: { color: C.teal }
  });
  s.addText("Ready to\nLaunch!", {
    x: 6.6, y: 0.3, w: 3.9, h: 1.5,
    fontSize: 26, bold: true, color: C.white,
    align: "center", lineSpacingMultiple: 1.2
  });
  s.addText("MediCare Astana", {
    x: 6.6, y: 1.85, w: 3.9, h: 0.45,
    fontSize: 13, color: C.mint, align: "center", italic: true
  });

  chip(s, "NEXT STEPS", 0.4, 0.22);

  s.addText("Action Plan", {
    x: 0.4, y: 0.6, w: 5.8, h: 0.5,
    fontSize: 20, bold: true, color: C.white
  });

  const steps = [
    ["Q3 2026", "Company registration & MoH licensing application"],
    ["Q3 2026", "Secure clinic premises lease in Astana city centre"],
    ["Q3 2026", "Complete renovation & medical equipment procurement"],
    ["Q4 2026", "Full staff recruitment & onboarding"],
    ["Q4 2026", "IT infrastructure & EMR system deployment"],
    ["Q4 2026", "Soft launch — first patient appointments accepted"],
    ["Q1 2027", "Grand opening & marketing campaign launch"],
    ["Q2 2027", "Review KPIs — adjust strategy for Year 2"],
  ];

  steps.forEach(([qtr, text], i) => {
    const y = 1.2 + i * 0.51;
    // Connector dot
    s.addShape(pres.ShapeType.ellipse, {
      x: 0.4, y: y + 0.09, w: 0.22, h: 0.22,
      fill: { color: i < 3 ? C.gold : i < 6 ? C.teal : C.mint }
    });
    if (i < steps.length - 1) {
      s.addShape(pres.ShapeType.rect, {
        x: 0.505, y: y + 0.31, w: 0.01, h: 0.22,
        fill: { color: C.gray }
      });
    }
    s.addShape(pres.ShapeType.roundRect, {
      x: 0.76, y, w: 0.7, h: 0.28, rectRadius: 0.04,
      fill: { color: i < 3 ? C.gold : i < 6 ? C.teal : C.mint }
    });
    s.addText(qtr, {
      x: 0.76, y, w: 0.7, h: 0.28,
      fontSize: 7.5, bold: true,
      color: i < 3 ? C.navy : C.navy,
      align: "center", valign: "middle", margin: 0
    });
    s.addText(text, {
      x: 1.58, y: y + 0.02, w: 4.8, h: 0.28,
      fontSize: 9.5, color: C.white, valign: "middle"
    });
  });

  // Bottom CTA
  s.addShape(pres.ShapeType.roundRect, {
    x: 0.4, y: 5.1, w: 9.2, h: 0.38, rectRadius: 0.06,
    fill: { color: C.gold }
  });
  s.addText("MediCare Astana — Better Health for Every Resident of Astana", {
    x: 0.4, y: 5.1, w: 9.2, h: 0.38,
    fontSize: 12, bold: true, color: C.navy,
    align: "center", valign: "middle", margin: 0
  });
}

// ── WRITE FILE ────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/clinic-ppt/MediCare_Astana_Clinic.pptx" })
  .then(() => console.log("SUCCESS: /home/daytona/workspace/clinic-ppt/MediCare_Astana_Clinic.pptx"))
  .catch(e => { console.error("ERROR:", e); process.exit(1); });
Running Command

cd /home/daytona/workspace/clinic-ppt && node build.js 2>&1

Running Command

ls -lh /home/daytona/workspace/clinic-ppt/MediCare_Astana_Clinic.pptx

Your presentation is ready - 332 KB, 10 slides, fully formatted.

MediCare Astana Clinic

Presentation · PPTX


Here's what's inside each slide:
#SlideKey Content
1CoverMediCare Astana branding, navy/teal/gold palette with medical cross
2Agenda8-section table of contents with numbered chips
3IntroductionMarket gap, 1.5M Astana population, +18% healthcare growth stats
4Mission & VisionSide-by-side cards - mission (evidence-based care) vs vision (top clinic by 2030)
5GoalsShort-term (Yr 1-2) vs Long-term (Yr 3-5) in two columns
6Strategy6 pillars: Clinical Excellence, Patient Experience, Financial Discipline, Marketing, Technology, Legal
7Team & RolesAll 11 roles with descriptions, colour-coded by department
8Budget (₸)Startup costs (131,000,000 ₸) + Annual OPEX (249,480,000 ₸)
9SalariesFull remuneration table with market benchmark chips
10Next StepsQ3 2026 - Q2 2027 action timeline with CTA bar

Salary highlights (monthly gross, KZT):
RoleMonthly (₸)Annual (₸)
Chairman900,00010,800,000
Chief Physician800,0009,600,000
Surgeon750,0009,000,000
Therapist600,0007,200,000
Family Doctor / Pediatrician550,000 each6,600,000
IT Specialist480,0005,760,000
Financier / Lawyer500,000 each6,000,000
HR Manager450,0005,400,000
Marketer420,0005,040,000
Total (11 staff)6,500,000/mo78,000,000/yr
Salaries are benchmarked against Kazakhstan's Bureau of National Statistics data (Astana average: 604,104 ₸/month) and the Times of Central Asia medical salary survey. Medical roles are set above the sectoral average (healthcare avg ~315,000 ₸/month) to attract qualified candidates in a competitive private-sector market.
This is a shared conversation. Sign in to Orris to start your own chat.