Ok I'm having a assignment on topic investigation use of drug and cover the topics like description, principle involved, classification, control, identification,role of hospital pharmacist , advisory committee give contents in human version and no phlagarism and I'm a b harmacy final year student and this topic is under pharmacy practice

Reading File
Finding Sources
Finding Sources
Searching the Web

investigational use of drugs pharmacy practice description classification identification hospital pharmacist role advisory committee

Finding Sources
Finding Sources
Reading Web Page

https://www.hoparx.org/documents/109/HOPA16_IDS_Guidelines.r…

Reading File
Finding Sources
Searching the Web

investigational drug classification 4 classes FDA IND B pharmacy practice notes

Reading File
I now have enough material to write a thorough, original assignment. Let me compile everything into a comprehensive, human-written style assignment on "Investigational Use of Drugs."

Investigational Use of Drugs

Assignment - B.Pharmacy Final Year | Pharmacy Practice


Contents

  1. Introduction and Description
  2. Principles Involved
  3. Classification of Investigational Drugs
  4. Control of Investigational Drugs
  5. Identification of Investigational Drugs
  6. Role of the Hospital Pharmacist
  7. Advisory Committee

1. Introduction and Description

An investigational drug (also called an experimental drug or study drug) is any chemical or biological substance that is being evaluated in human subjects to determine whether it is safe and effective for a particular medical use. These drugs have not yet received formal approval from a regulatory authority - such as the U.S. Food and Drug Administration (FDA) or India's Central Drugs Standard Control Organisation (CDSCO) - for general commercial use.
The term "investigational use" does not always mean the drug is entirely new. It also covers:
  • A new chemical entity being tested in humans for the first time
  • An already-approved drug being studied for a new disease indication, a new dosage form, or a new patient population
  • Drugs used under expanded access or compassionate use programs for patients with serious or life-threatening conditions who have no other treatment options
  • Drugs approved in one country but used under research conditions in another
The legal and regulatory framework for investigational drug use in the United States is found in the Code of Federal Regulations (CFR), Title 21, Part 312, which covers Investigational New Drug (IND) applications. In India, Schedule Y of the Drugs and Cosmetics Act and the New Drugs and Clinical Trials Rules, 2019 govern clinical research.
Before any investigational drug can be given to human subjects, the sponsor - typically a pharmaceutical company, academic institution, or individual researcher - must file an Investigational New Drug (IND) Application with the FDA. This application must include:
  • Preclinical data (animal pharmacology and toxicology)
  • Chemistry, Manufacturing, and Controls (CMC) information
  • The proposed clinical protocol
  • Investigator qualifications and credentials
  • Informed consent documents
The FDA has 30 days to review the IND. If no objection is raised, the sponsor may proceed with clinical testing. The purpose of this entire process is to ensure that patients are not exposed to unnecessary risk and that data collected during the trial will be scientifically valid.

2. Principles Involved

Several foundational principles guide the conduct of investigational drug use. These principles balance the scientific need for knowledge with the ethical obligation to protect human subjects.

a) Ethical Principles (Declaration of Helsinki)

The most widely accepted ethical framework for clinical research involving human subjects is the Declaration of Helsinki (World Medical Association, 1964; revised multiple times). Its core principles include:
  • The welfare of the individual research subject takes priority over the interests of science and society
  • Informed, voluntary consent must be obtained from every participant
  • Research must be scientifically sound and conducted by qualified persons
  • Risks must be minimized and must not outweigh the potential benefits

b) Good Clinical Practice (GCP)

GCP is an internationally recognized ethical and scientific standard for designing, conducting, recording, and reporting trials involving human subjects. Compliance with GCP ensures that the rights, safety, and well-being of trial participants are protected and that clinical trial data are credible. ICH-GCP (International Council for Harmonisation - Good Clinical Practice, E6 guideline) is the benchmark document followed globally.

c) Informed Consent

Every patient enrolled in a clinical trial must provide written, informed consent before participation. The consent form must explain:
  • The purpose of the study
  • All foreseeable risks and discomforts
  • Expected benefits (to the subject or others)
  • Alternative treatments available
  • The voluntary nature of participation (can withdraw at any time)
  • Confidentiality protections
Patients must never be coerced, and consent must be obtained before any study-related procedure begins.

d) The IND Principle (Risk-Benefit Framework)

The regulatory principle underlying IND approval is the risk-benefit balance. A drug cannot be tested in humans unless:
  1. Preclinical studies suggest a plausible benefit
  2. The level of risk is acceptable given the seriousness of the target disease
  3. There are adequate safety monitoring mechanisms in place
The FDA's Harris-Kefauver amendments of 1962 cemented this principle into law following the thalidomide tragedy, requiring both proof of safety and efficacy before marketing approval.

e) Institutional Review Board (IRB) / Ethics Committee Oversight

No clinical trial can start without independent ethical review. The IRB (or Institutional Ethics Committee in India) reviews the study protocol, consent forms, and participant safety measures. It continues to monitor the trial throughout its duration and can suspend it if unacceptable risks emerge.

f) Scientific Validity

For a clinical trial to be ethically justified, it must be designed in a way that can answer the question being asked. This includes proper sample size, randomization, blinding (where applicable), and clearly defined endpoints. A scientifically flawed study exposes participants to risk without producing useful knowledge - which is itself considered unethical.

3. Classification of Investigational Drugs

Investigational drugs are broadly classified on the basis of their experimental status and regulatory approval. The commonly used classification in pharmacy practice divides them into four classes:

Class I - New Chemical Entities (NCEs) Under IND

These are drugs that have never been tested in humans before. They are completely new molecules synthesized or discovered in the laboratory, with only preclinical (animal) data available at the time of human trials. This class carries the highest level of uncertainty and therefore requires the most rigorous monitoring.
Example: A new kinase inhibitor being evaluated in Phase I trials for the first time.

Class II - Approved Drugs with New Uses (IND Required)

These are drugs already approved and marketed for one indication but now being studied for:
  • A new disease indication
  • A new route of administration
  • A new dosage form or strength
  • A new patient population (e.g., pediatrics or pregnancy)
Even though the drug itself is known and relatively safe, the new use requires a fresh IND because the risk-benefit profile may differ.
Example: Thalidomide, originally used as a sedative, later studied for multiple myeloma and leprosy reactions.

Class III - Treatment INDs (Expanded Access / Compassionate Use)

These cover situations where patients with serious or immediately life-threatening conditions have no satisfactory alternative treatment, and the investigational drug has shown enough promise in early trials to suggest possible benefit. A Treatment IND allows wider access to the drug before formal approval.
The FDA allows three types of expanded access:
  • For individual patients (including emergency use)
  • For intermediate-size patient populations
  • For widespread use via a Treatment IND or Treatment Protocol

Class IV - Already-Approved Drugs Used Off-Label Under Investigation

These are drugs used outside their approved indications but under systematic investigation to generate scientific evidence. While off-label use itself is not illegal, conducting a formal study to validate such use requires IRB oversight and often an IND.
Note: Some pharmacology references further classify investigational drugs by review designation (Standard Review vs. Priority Review) or by therapeutic novelty, but the above four-class system is the standard framework used in pharmacy practice.

4. Control of Investigational Drugs

Control refers to the entire system of policies, procedures, and safeguards that govern how an investigational drug is acquired, stored, prepared, dispensed, and accounted for throughout the study. Strict control is necessary to protect patient safety, maintain data integrity, and ensure regulatory compliance.

a) Acquisition and Receipt

  • Investigational drugs should be received only by the pharmacy department or a designated Investigational Drug Service (IDS)
  • Upon receipt, the pharmacist verifies the drug against the sponsor's shipping manifest
  • Lot numbers, expiry dates, quantity received, and storage conditions during transport are documented

b) Storage

  • Drugs must be stored according to the sponsor's specifications (temperature, light, humidity)
  • Controlled substances require locked, limited-access storage per DEA (or relevant national agency) regulations
  • Investigational drugs must be stored separately from commercial medications to prevent mix-ups
  • Periodic temperature logs must be maintained for refrigerated/frozen drugs

c) Dispensing and Distribution

  • Investigational drugs may only be dispensed upon receipt of a valid prescription or physician's order signed by the Principal Investigator (PI) or their authorized designee
  • The pharmacist must confirm that the patient has given informed consent before dispensing
  • Each dispensing event must be documented on a Drug Accountability Record (DAR) or equivalent log
  • Drugs should be dispensed in unit-of-use quantities whenever possible to minimize waste and diversion

d) Drug Accountability Records (DAR)

These records track every unit of the investigational drug from receipt to disposition. They include:
  • Date and quantity received
  • Patient identifiers and dispensing dates
  • Quantities returned by patients
  • Drug returns to sponsor or destruction records
The investigator is required to retain these records for 2 years after the drug application is approved or investigation is discontinued.

e) Drug Returns and Destruction

  • Unused investigational drugs are generally returned to the sponsor
  • If destruction is authorized, it must be documented and performed per applicable regulations
  • Pharmacy staff should never dispose of investigational drugs in the regular waste stream without authorization

f) Blind and Randomized Controls

  • In blinded trials, the pharmacy often holds the randomization code and must maintain blinding integrity
  • Emergency unblinding procedures must be established and documented
  • Special labeling requirements apply to maintain blinding (e.g., matching placebo appearance)

5. Identification of Investigational Drugs

Proper identification of investigational drugs is one of the most challenging aspects of investigational drug management because, unlike commercial medications, these drugs often lack the distinguishing features that normally help prevent errors.

a) Labeling Requirements

By law (21 CFR Part 312), every investigational drug package must bear a label that includes:
  • The statement: "Caution: New Drug - Limited by Federal (or United States) law to investigational use"
  • The name and address of the sponsor
  • Protocol or IND number
  • Name of the principal investigator
  • Storage conditions
  • Lot or batch number
  • Expiry date (if available)
  • Quantity and strength of the drug
In blinded studies, the label may use a randomization/subject code instead of the drug name to maintain blinding.

b) Physical Identification Challenges

Commercial drugs use many visual cues for safety: different colors for different strengths, imprinted identification codes, distinctive packaging, and "tall man lettering" (e.g., DOPamine vs. DOBUTamine). Investigational drugs often cannot use these strategies because:
  • The product needs to look identical to a placebo or comparator drug in blinded trials
  • Formulations are still experimental and may not be fully developed
  • Manufacturing quantities are small, limiting sophistication of packaging
This means pharmacy staff must rely heavily on protocol documentation and system controls rather than visual identification.

c) System-Based Identification

  • Computerized pharmacy systems should be configured with investigational drug identifiers, protocol numbers, and authorized prescribers
  • Barcode scanning, when available, provides an additional verification step
  • Protocol binders or electronic access to the Investigator's Brochure (IB) and pharmacy manual must be available at all times in the dispensing area

d) Patient Identification

  • Every dispensing event must confirm the patient's identity (name, date of birth, study subject number)
  • Two-identifier verification is a minimum standard
  • Patients must be confirmed as enrolled in the study and as having valid informed consent

6. Role of the Hospital Pharmacist

The hospital pharmacist - particularly the clinical pharmacist or Investigational Drug Service (IDS) pharmacist - occupies a central role in every phase of a clinical trial conducted within the institution. This role goes far beyond simple dispensing.

a) Protocol Review and Feasibility Assessment

Before a clinical trial begins, the pharmacist:
  • Reviews the proposed protocol for pharmaceutical feasibility (e.g., compatibility, stability, dosage preparation)
  • Identifies any medication-related safety concerns
  • Assesses whether the institution has the infrastructure to handle the drug's storage and preparation requirements
  • Participates in Scientific Review Committee (SRC) meetings as a pharmaceutical expert

b) Regulatory Compliance

The pharmacist ensures the institution meets all applicable regulatory requirements including:
  • FDA regulations (21 CFR Part 312)
  • ICH-GCP guidelines
  • Joint Commission Medication Management standard MM.06.01.05 (for accredited hospitals)
  • Institutional policies and Standard Operating Procedures (SOPs)

c) Drug Procurement and Inventory Management

  • Coordinates receipt of the investigational drug from the sponsor
  • Maintains accurate perpetual inventory
  • Notifies the principal investigator when stock reaches a preset minimum level
  • Manages returns, destruction, and reconciliation at trial closure

d) Preparation and Dispensing

  • Prepares the investigational drug (including sterile compounding when required) in a manner consistent with GCP and GMP standards
  • Dispenses only to enrolled patients with valid consent and a valid investigator's order
  • Maintains complete Drug Accountability Records

e) Patient Counseling and Education

The pharmacist counsels patients on:
  • How and when to take the investigational drug
  • How to store it at home (if applicable)
  • Side effects to watch for and when to contact the study team
  • The importance of returning unused drug at each visit
  • Their right to withdraw from the study at any time

f) Adverse Drug Reaction (ADR) Monitoring and Reporting

  • The pharmacist participates in ongoing safety monitoring during the trial
  • Identifies, documents, and reports suspected Adverse Drug Reactions (ADRs) and Serious Adverse Events (SAEs) to the sponsor and regulatory authority within required timeframes
  • Helps distinguish drug-related events from disease-related changes

g) Drug Information Resource

The pharmacist serves as the primary source of information about the investigational drug for nurses, physicians, and other healthcare team members. This includes providing information from the Investigator's Brochure (IB) and relevant literature about the drug's mechanism, dosing, interactions, and handling.

h) Training and Education

  • Trains pharmacy staff on the specific requirements of each clinical trial
  • Maintains records of training and competency assessments
  • Educates nurses and physicians on protocol-specific drug handling and administration

i) Handling Emergency Situations and Unblinding

  • Maintains sealed emergency codes for blinded trials
  • Performs emergency unblinding when clinically necessary, following proper documentation
  • Ensures alternative treatment is available if a patient must be discontinued from the study

7. Advisory Committee

Advisory committees play a critical role in the oversight, approval, and ongoing monitoring of investigational drug use within both regulatory agencies and individual institutions.

a) FDA Advisory Committees

The FDA convenes panels of external experts - called advisory committees - to provide independent scientific and medical advice on new drug applications and specific issues related to drug safety and efficacy. These committees:
  • Include specialists in the relevant therapeutic area, statisticians, consumer representatives, and patient advocates
  • Evaluate clinical trial data and make non-binding recommendations on whether a drug should be approved
  • Are convened for complex cases where the FDA itself needs additional expert input
  • Hold public meetings, providing transparency to the drug approval process
The FDA is not legally bound by the committee's recommendation but follows it in most cases.

b) Institutional Review Board (IRB) / Ethics Committee

Within a hospital or research institution, the IRB functions as the primary advisory and oversight body for clinical research. It:
  • Reviews and approves or rejects research protocols before any study can begin
  • Monitors ongoing research for compliance and patient safety
  • Requires continuing reviews at least annually for approved protocols
  • Can suspend or terminate a study if serious unanticipated risks emerge
  • Reviews and approves any protocol amendments before they are implemented
IRBs must include a diverse membership: scientists, non-scientists, and at least one community member not affiliated with the institution.

c) Pharmacy and Therapeutics (P&T) Committee

Every hospital's P&T Committee has oversight authority over medications used within the institution, including investigational drugs. Its role includes:
  • Reviewing and approving institutional policies for the handling and use of investigational drugs
  • Ensuring investigational drug use aligns with the hospital's formulary management policies
  • Reviewing safety data reported from ongoing trials
  • Advising on the inclusion of newly approved drugs into the formulary after trials are complete

d) Scientific Review Committee (SRC)

Many large research institutions have a Scientific Review Committee that evaluates proposed clinical trials before they go to the IRB. The SRC assesses:
  • Scientific merit of the proposed study
  • Feasibility of conducting the trial at that institution
  • Adequacy of resources (including pharmacy capabilities)
  • Potential overlap or conflict with other ongoing studies
The pharmacist (typically from the IDS) is an important member of the SRC, providing expertise on pharmaceutical aspects of the proposed trial.

e) Data Safety Monitoring Board (DSMB) / Data Monitoring Committee (DMC)

For larger or longer clinical trials, an independent DSMB is established. This committee:
  • Reviews accumulating safety and efficacy data at predetermined intervals during the trial
  • Can recommend early termination of a trial if overwhelming benefit or harm is detected
  • Operates independently of the sponsor and investigators to avoid bias
  • Protects the integrity of blinding for other study team members while reviewing unblinded data

Summary

The investigational use of drugs is a tightly regulated, multi-step process designed to protect human subjects while enabling the discovery of new and better medicines. For pharmacy students entering hospital practice, understanding this area means understanding not just dispensing procedures but the broader framework of clinical research governance - from IND applications and ethical principles to the pharmacist's hands-on role in every trial phase. The hospital pharmacist is not a peripheral figure in this process; they are a central safeguard of both patient safety and scientific integrity, embedded in the research team from protocol planning through study closure.

References:
  • Goodman & Gilman's The Pharmacological Basis of Therapeutics, 13th ed. (IND application, clinical trial phases)
  • HOPA Investigational Drug Service Best Practice Standards, 2018 (IDS pharmacist role, HOPA)
  • Medication Safety in Clinical Trials: Role of the Pharmacist - Cassidy et al., PMC5369030
  • 21 CFR Part 312 - FDA Regulations on Investigational New Drug Applications
  • ICH E6 (R2) - Good Clinical Practice Guideline
  • Declaration of Helsinki - World Medical Association, 1964 (revised 2013)
  • New Drugs and Clinical Trials Rules, 2019 - Government of India (CDSCO)

Excellent so can you consize the each subtopic and convert into 2 slides for my presentation and it should be attractive

Reading File
Reading File
Reading File
Running Command

ls /home/daytona/workspace/ 2>/dev/null && mkdir -p /home/daytona/workspace/inve…

Writing File

~/investigational-drug-ppt/build.js

const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3 x 7.5 inches

// ─── COLOUR PALETTE ────────────────────────────────────────────────────────────
// Deep navy (dominant), electric teal (accent), white, soft platinum (cards)
const C = {
  navy:     "0A1628",
  navyMid:  "0D2040",
  teal:     "00C9B1",
  tealDark: "009E8C",
  white:    "FFFFFF",
  offWhite: "F0F4F8",
  platinum: "E8EDF3",
  lightText:"B8C8D8",
  gold:     "F5C842",
  cardBg:   "112240",
  lineGray: "2A3F60",
};

// ─── HELPERS ────────────────────────────────────────────────────────────────────
function darkSlide(slide) {
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:7.5, fill:{color:C.navy}, line:{color:C.navy} });
}
function addAccentBar(slide) {
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:0.07, fill:{color:C.teal}, line:{color:C.teal} });
}
function addBottomBar(slide) {
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:7.35, w:13.3, h:0.15, fill:{color:C.tealDark}, line:{color:C.tealDark} });
}
function slideLabel(slide, num, total) {
  slide.addText(`${num} / ${total}`, { x:12.4, y:7.1, w:0.8, h:0.25, fontSize:9, color:C.lightText, align:"right" });
}
function sectionTag(slide, tag) {
  slide.addShape(pres.shapes.ROUNDED_RECTANGLE, { x:0.35, y:0.2, w:2.6, h:0.35, fill:{color:C.teal}, line:{color:C.teal}, rectRadius:0.05 });
  slide.addText(tag.toUpperCase(), { x:0.35, y:0.2, w:2.6, h:0.35, fontSize:9, bold:true, color:C.navy, align:"center", valign:"middle", margin:0 });
}
function slideTitle(slide, title) {
  slide.addText(title, { x:0.35, y:0.65, w:12.6, h:0.6, fontSize:24, bold:true, color:C.white, fontFace:"Calibri" });
  slide.addShape(pres.shapes.RECTANGLE, { x:0.35, y:1.28, w:1.4, h:0.05, fill:{color:C.teal}, line:{color:C.teal} });
}
function card(slide, x, y, w, h) {
  slide.addShape(pres.shapes.RECTANGLE, { x, y, w, h,
    fill:{color:C.cardBg}, line:{color:C.lineGray},
    shadow:{type:"outer", color:"000000", blur:8, offset:3, angle:135, opacity:0.3}
  });
}
function iconCircle(slide, x, y, color, emoji) {
  slide.addShape(pres.shapes.ELLIPSE, { x, y, w:0.52, h:0.52, fill:{color:color}, line:{color:color} });
  slide.addText(emoji, { x, y, w:0.52, h:0.52, fontSize:18, align:"center", valign:"middle", margin:0 });
}
function bulletList(slide, items, x, y, w, h, fontSize=12) {
  const rich = items.map((t, i) => ({
    text: t,
    options: { bullet:{type:"bullet"}, breakLine: i < items.length-1, fontSize, color:C.offWhite, fontFace:"Calibri" }
  }));
  slide.addText(rich, { x, y, w, h, paraSpaceAfter:4 });
}

const TOTAL = 17;

// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE SLIDE
// ══════════════════════════════════════════════════════════════════════════════
let s = pres.addSlide();
darkSlide(s);
// Large teal circle decoration
s.addShape(pres.shapes.ELLIPSE, { x:9.5, y:-1, w:5.5, h:5.5, fill:{color:C.teal}, line:{color:C.teal}, transparency:85 });
s.addShape(pres.shapes.ELLIPSE, { x:10.3, y:3.5, w:3.8, h:3.8, fill:{color:C.gold}, line:{color:C.gold}, transparency:90 });
// Accent bar
addAccentBar(s);
addBottomBar(s);
// Main title
s.addText("Investigational Use of Drugs", { x:0.6, y:1.8, w:9.2, h:1.4, fontSize:44, bold:true, color:C.white, fontFace:"Calibri" });
s.addShape(pres.shapes.RECTANGLE, { x:0.6, y:3.25, w:3.0, h:0.07, fill:{color:C.teal}, line:{color:C.teal} });
s.addText("B.Pharmacy Final Year  |  Pharmacy Practice", { x:0.6, y:3.4, w:9, h:0.4, fontSize:15, color:C.teal, fontFace:"Calibri" });
s.addText("A comprehensive overview for clinical and hospital pharmacy students", { x:0.6, y:3.9, w:9, h:0.4, fontSize:12, color:C.lightText, fontFace:"Calibri", italic:true });
// Bottom presenter info
s.addText("Presented by: B.Pharmacy Final Year Student", { x:0.6, y:6.6, w:9, h:0.3, fontSize:10, color:C.lightText });
slideLabel(s, 1, TOTAL);

// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 2 — TABLE OF CONTENTS
// ══════════════════════════════════════════════════════════════════════════════
s = pres.addSlide();
darkSlide(s);
addAccentBar(s);
addBottomBar(s);
s.addText("Presentation Overview", { x:0.4, y:0.15, w:12.5, h:0.6, fontSize:26, bold:true, color:C.white, fontFace:"Calibri" });
s.addShape(pres.shapes.RECTANGLE, { x:0.4, y:0.78, w:1.2, h:0.05, fill:{color:C.teal}, line:{color:C.teal} });

const topics = [
  ["01", "Description & Introduction"],
  ["02", "Principles Involved"],
  ["03", "Classification of Investigational Drugs"],
  ["04", "Control of Investigational Drugs"],
  ["05", "Identification of Investigational Drugs"],
  ["06", "Role of the Hospital Pharmacist"],
  ["07", "Advisory Committee"],
];
const colors = ["00C9B1","009E8C","0087C8","6A5ACD","E05C5C","F5A623","F5C842"];
topics.forEach(([num, title], i) => {
  const col = i < 4 ? 0 : (i < 7 ? 1 : 2);
  const row = i < 4 ? i : i-4;
  const x = 0.35 + col * 4.3;
  const y = 0.95 + row * 1.4;
  if (i >= 4 && i < 7) {
    // right column
  }
  card(s, x, y, 4.0, 1.25);
  s.addShape(pres.shapes.RECTANGLE, { x, y, w:0.55, h:1.25, fill:{color:"#"+colors[i]}, line:{color:"#"+colors[i]} });
  s.addText(num, { x, y, w:0.55, h:1.25, fontSize:18, bold:true, color:C.navy, align:"center", valign:"middle", margin:0 });
  s.addText(title, { x:x+0.65, y:y+0.15, w:3.25, h:0.9, fontSize:13, color:C.white, fontFace:"Calibri", valign:"middle" });
});
slideLabel(s, 2, TOTAL);

// ══════════════════════════════════════════════════════════════════════════════
// SLIDES 3-4 — DESCRIPTION & INTRODUCTION
// ══════════════════════════════════════════════════════════════════════════════
// Slide 3
s = pres.addSlide();
darkSlide(s);
addAccentBar(s);
addBottomBar(s);
sectionTag(s, "Section 01");
slideTitle(s, "Description & Introduction");

// Definition card (full width)
card(s, 0.35, 1.45, 12.6, 1.5);
s.addShape(pres.shapes.RECTANGLE, { x:0.35, y:1.45, w:0.12, h:1.5, fill:{color:C.teal}, line:{color:C.teal} });
s.addText("What is an Investigational Drug?", { x:0.6, y:1.5, w:12, h:0.35, fontSize:13, bold:true, color:C.teal, fontFace:"Calibri" });
s.addText("Any chemical or biological substance being evaluated in human subjects to determine its safety and efficacy — not yet approved by a regulatory authority (FDA / CDSCO) for general commercial use.", {
  x:0.6, y:1.88, w:12, h:0.95, fontSize:12, color:C.offWhite, fontFace:"Calibri"
});

// 3 key cards
const descCards = [
  ["🔬","New Chemical Entity","A brand-new molecule — never tested in humans before. Only pre-clinical (animal) data exists."],
  ["💊","Approved Drug – New Use","An existing approved drug being studied for a new indication, dose, route, or population."],
  ["🏥","Compassionate / Expanded Use","Access to unapproved drugs for patients with serious/life-threatening conditions and no alternatives."],
];
descCards.forEach(([emoji, title, desc], i) => {
  const x = 0.35 + i*4.32;
  card(s, x, 3.1, 4.1, 3.9);
  iconCircle(s, x+1.8, 3.2, C.teal, emoji);
  s.addText(title, { x:x+0.15, y:3.82, w:3.8, h:0.45, fontSize:12, bold:true, color:C.teal, align:"center", fontFace:"Calibri" });
  s.addText(desc, { x:x+0.15, y:4.3, w:3.8, h:2.6, fontSize:11, color:C.offWhite, fontFace:"Calibri", align:"center" });
});
slideLabel(s, 3, TOTAL);

// Slide 4
s = pres.addSlide();
darkSlide(s);
addAccentBar(s);
addBottomBar(s);
sectionTag(s, "Section 01 — continued");
slideTitle(s, "IND Application & Regulatory Framework");

card(s, 0.35, 1.45, 6.1, 5.6);
s.addText("IND Application (USA – 21 CFR Part 312)", { x:0.5, y:1.55, w:5.8, h:0.4, fontSize:13, bold:true, color:C.teal, fontFace:"Calibri" });
bulletList(s, [
  "Sponsor must file before first human trial",
  "FDA has 30 days to review — no objection = proceed",
  "Includes: pharmacology, toxicology, CMC data",
  "Must include the clinical protocol & investigator credentials",
  "Informed consent documents required",
], 0.5, 2.0, 5.8, 4.8);

card(s, 6.85, 1.45, 6.1, 5.6);
s.addText("India — Schedule Y & CT Rules 2019", { x:7.0, y:1.55, w:5.8, h:0.4, fontSize:13, bold:true, color:C.gold, fontFace:"Calibri" });
bulletList(s, [
  "Governed by Drugs & Cosmetics Act Schedule Y",
  "New Drugs & Clinical Trials Rules, 2019",
  "CDSCO is the apex regulatory body",
  "Ethics Committee approval mandatory",
  "Phase-wise trial conduct identical to global standards",
], 7.0, 2.0, 5.8, 4.8);

// Central divider
s.addShape(pres.shapes.RECTANGLE, { x:6.6, y:1.45, w:0.05, h:5.6, fill:{color:C.lineGray}, line:{color:C.lineGray} });
slideLabel(s, 4, TOTAL);

// ══════════════════════════════════════════════════════════════════════════════
// SLIDES 5-6 — PRINCIPLES INVOLVED
// ══════════════════════════════════════════════════════════════════════════════
// Slide 5
s = pres.addSlide();
darkSlide(s);
addAccentBar(s);
addBottomBar(s);
sectionTag(s, "Section 02");
slideTitle(s, "Principles Involved — Ethical & Scientific");

const principles1 = [
  ["⚖️","Declaration of Helsinki","Welfare of subject > interests of science. Voluntary, informed consent. Research must be scientifically sound."],
  ["📋","Good Clinical Practice (GCP)","ICH-E6 international standard for designing, conducting, recording and reporting clinical trials."],
  ["✍️","Informed Consent","Patient must understand purpose, risks, benefits, and right to withdraw — BEFORE any study procedure."],
];
principles1.forEach(([emoji, title, desc], i) => {
  const y = 1.5 + i*1.9;
  card(s, 0.35, y, 12.6, 1.75);
  s.addShape(pres.shapes.RECTANGLE, { x:0.35, y, w:0.12, h:1.75, fill:{color:C.teal}, line:{color:C.teal} });
  iconCircle(s, 0.6, y+0.6, C.tealDark, emoji);
  s.addText(title, { x:1.3, y:y+0.15, w:3.5, h:0.45, fontSize:13, bold:true, color:C.teal, fontFace:"Calibri" });
  s.addText(desc, { x:1.3, y:y+0.62, w:11.4, h:0.95, fontSize:11.5, color:C.offWhite, fontFace:"Calibri" });
});
slideLabel(s, 5, TOTAL);

// Slide 6
s = pres.addSlide();
darkSlide(s);
addAccentBar(s);
addBottomBar(s);
sectionTag(s, "Section 02 — continued");
slideTitle(s, "Principles Involved — Regulatory & Oversight");

const principles2 = [
  ["🔬","Risk-Benefit Balance","Harris-Kefauver Amendments (1962): drug must demonstrate BOTH safety and efficacy. Stricter the disease, greater the acceptable risk."],
  ["🏛️","IRB / Ethics Committee Oversight","Independent review of protocol and consent before trial start. Can suspend or terminate trial if unacceptable risks emerge."],
  ["📊","Scientific Validity","Flawed study = ethical violation. Requires proper sample size, randomisation, blinding, and defined endpoints."],
];
principles2.forEach(([emoji, title, desc], i) => {
  const y = 1.5 + i*1.9;
  card(s, 0.35, y, 12.6, 1.75);
  s.addShape(pres.shapes.RECTANGLE, { x:0.35, y, w:0.12, h:1.75, fill:{color:C.gold}, line:{color:C.gold} });
  iconCircle(s, 0.6, y+0.6, C.gold, emoji);
  s.addText(title, { x:1.3, y:y+0.15, w:3.5, h:0.45, fontSize:13, bold:true, color:C.gold, fontFace:"Calibri" });
  s.addText(desc, { x:1.3, y:y+0.62, w:11.4, h:0.95, fontSize:11.5, color:C.offWhite, fontFace:"Calibri" });
});
slideLabel(s, 6, TOTAL);

// ══════════════════════════════════════════════════════════════════════════════
// SLIDES 7-8 — CLASSIFICATION
// ══════════════════════════════════════════════════════════════════════════════
// Slide 7
s = pres.addSlide();
darkSlide(s);
addAccentBar(s);
addBottomBar(s);
sectionTag(s, "Section 03");
slideTitle(s, "Classification of Investigational Drugs");

// 4-class grid
const classData = [
  ["CLASS I","New Chemical Entities","00C9B1","Never tested in humans. Only pre-clinical data. Highest uncertainty — most rigorous monitoring required.","🧪"],
  ["CLASS II","Approved Drug – New Use","009E8C","Existing approved drug studied for new indication, dose form, route, or population. Fresh IND required.","💊"],
  ["CLASS III","Treatment IND / Expanded Access","F5A623","Serious/life-threatening illness with no alternative. Three types: individual, intermediate, widespread access.","🏥"],
  ["CLASS IV","Off-Label Under Investigation","6A5ACD","Approved drugs used beyond labelled indication. Formal study needs IRB oversight and usually an IND.","📁"],
];
classData.forEach(([cls, title, color, desc, emoji], i) => {
  const col = i % 2;
  const row = Math.floor(i / 2);
  const x = 0.35 + col * 6.5;
  const y = 1.5 + row * 2.9;
  card(s, x, y, 6.25, 2.6);
  s.addShape(pres.shapes.RECTANGLE, { x, y, w:6.25, h:0.55, fill:{color:"#"+color}, line:{color:"#"+color} });
  s.addText(`${emoji}  ${cls}`, { x:x+0.1, y, w:6.05, h:0.55, fontSize:12, bold:true, color:C.navy, align:"left", valign:"middle", margin:8 });
  s.addText(title, { x:x+0.15, y:y+0.6, w:6.0, h:0.4, fontSize:12, bold:true, color:"#"+color, fontFace:"Calibri" });
  s.addText(desc, { x:x+0.15, y:y+1.05, w:6.0, h:1.4, fontSize:11, color:C.offWhite, fontFace:"Calibri" });
});
slideLabel(s, 7, TOTAL);

// Slide 8 — Clinical Trial Phases
s = pres.addSlide();
darkSlide(s);
addAccentBar(s);
addBottomBar(s);
sectionTag(s, "Section 03 — continued");
slideTitle(s, "Clinical Trial Phases (Phase I – IV)");

const phases = [
  ["Phase I","First in Human","10–100\nHealthy Volunteers","Safety, dose-finding, PK/PD","00C9B1"],
  ["Phase II","First in Patient","50–500\nPatient subjects","Efficacy signals + safety","009E8C"],
  ["Phase III","Multisite Trial","100s–1000s\nPatient subjects","Confirm efficacy & safety","F5A623"],
  ["Phase IV","Post-Marketing","Many 1000s\nReal-world patients","New risks, new indications","6A5ACD"],
];
phases.forEach(([phase, subtitle, participants, focus, color], i) => {
  const x = 0.35 + i * 3.2;
  const y = 1.5;
  card(s, x, y, 3.0, 5.6);
  // Phase header
  s.addShape(pres.shapes.RECTANGLE, { x, y, w:3.0, h:0.7, fill:{color:"#"+color}, line:{color:"#"+color} });
  s.addText(phase, { x:x+0.05, y, w:2.9, h:0.38, fontSize:15, bold:true, color:C.navy, align:"center", valign:"bottom", margin:0 });
  s.addText(subtitle, { x:x+0.05, y:y+0.38, w:2.9, h:0.32, fontSize:9.5, color:C.navy, align:"center", valign:"top", margin:0 });
  // Arrow connector (except last)
  if (i < 3) {
    s.addShape(pres.shapes.RECTANGLE, { x:x+3.0, y:y+1.1, w:0.15, h:0.08, fill:{color:C.teal}, line:{color:C.teal} });
  }
  s.addText("PARTICIPANTS", { x:x+0.1, y:y+0.85, w:2.8, h:0.3, fontSize:9, bold:true, color:C.teal, align:"center" });
  s.addText(participants, { x:x+0.1, y:y+1.15, w:2.8, h:0.65, fontSize:11, color:C.offWhite, align:"center", fontFace:"Calibri" });
  s.addShape(pres.shapes.RECTANGLE, { x:x+0.5, y:y+1.85, w:2.0, h:0.04, fill:{color:C.lineGray}, line:{color:C.lineGray} });
  s.addText("FOCUS", { x:x+0.1, y:y+1.95, w:2.8, h:0.3, fontSize:9, bold:true, color:C.teal, align:"center" });
  s.addText(focus, { x:x+0.1, y:y+2.28, w:2.8, h:0.7, fontSize:11, color:C.offWhite, align:"center", fontFace:"Calibri" });
});
slideLabel(s, 8, TOTAL);

// ══════════════════════════════════════════════════════════════════════════════
// SLIDES 9-10 — CONTROL
// ══════════════════════════════════════════════════════════════════════════════
// Slide 9
s = pres.addSlide();
darkSlide(s);
addAccentBar(s);
addBottomBar(s);
sectionTag(s, "Section 04");
slideTitle(s, "Control of Investigational Drugs — Part 1");

const controlData1 = [
  ["📦","Acquisition & Receipt","Receipt by pharmacy/IDS only. Verify drug vs. shipping manifest. Document: lot numbers, expiry, quantity, transport conditions."],
  ["❄️","Storage","Per sponsor specifications (temp, light, humidity). Controlled substances: locked limited-access area. Stored SEPARATELY from commercial drugs. Temperature logs maintained."],
  ["💬","Dispensing Rules","Only on receipt of PI-signed prescription. Confirm informed consent BEFORE dispensing. Document every dispensing event on Drug Accountability Record (DAR)."],
];
controlData1.forEach(([emoji, title, desc], i) => {
  const y = 1.55 + i * 1.95;
  card(s, 0.35, y, 12.6, 1.75);
  iconCircle(s, 0.55, y+0.62, C.teal, emoji);
  s.addShape(pres.shapes.RECTANGLE, { x:0.35, y, w:0.1, h:1.75, fill:{color:C.teal}, line:{color:C.teal} });
  s.addText(title, { x:1.25, y:y+0.12, w:4.0, h:0.4, fontSize:13, bold:true, color:C.teal, fontFace:"Calibri" });
  s.addText(desc, { x:1.25, y:y+0.55, w:11.2, h:1.05, fontSize:11.5, color:C.offWhite, fontFace:"Calibri" });
});
slideLabel(s, 9, TOTAL);

// Slide 10
s = pres.addSlide();
darkSlide(s);
addAccentBar(s);
addBottomBar(s);
sectionTag(s, "Section 04 — continued");
slideTitle(s, "Control of Investigational Drugs — Part 2");

const controlData2 = [
  ["📂","Drug Accountability Records","Track every unit: date received, quantity dispensed, patient ID, returns, destruction. Retained 2 years after approval or trial discontinuation."],
  ["🔁","Returns & Destruction","Unused drugs returned to sponsor or destroyed per regulations. Documented destruction — NEVER regular waste disposal. Sponsor authorization required."],
  ["🎭","Blinding & Randomisation Control","Pharmacy holds randomisation codes. Maintain blinding integrity throughout. Emergency unblinding procedure must be pre-established and documented."],
];
controlData2.forEach(([emoji, title, desc], i) => {
  const y = 1.55 + i * 1.95;
  card(s, 0.35, y, 12.6, 1.75);
  iconCircle(s, 0.55, y+0.62, C.gold, emoji);
  s.addShape(pres.shapes.RECTANGLE, { x:0.35, y, w:0.1, h:1.75, fill:{color:C.gold}, line:{color:C.gold} });
  s.addText(title, { x:1.25, y:y+0.12, w:4.0, h:0.4, fontSize:13, bold:true, color:C.gold, fontFace:"Calibri" });
  s.addText(desc, { x:1.25, y:y+0.55, w:11.2, h:1.05, fontSize:11.5, color:C.offWhite, fontFace:"Calibri" });
});
slideLabel(s, 10, TOTAL);

// ══════════════════════════════════════════════════════════════════════════════
// SLIDES 11-12 — IDENTIFICATION
// ══════════════════════════════════════════════════════════════════════════════
// Slide 11
s = pres.addSlide();
darkSlide(s);
addAccentBar(s);
addBottomBar(s);
sectionTag(s, "Section 05");
slideTitle(s, "Identification — Mandatory Labeling");

// Label requirements
card(s, 0.35, 1.45, 7.8, 5.6);
s.addShape(pres.shapes.RECTANGLE, { x:0.35, y:1.45, w:7.8, h:0.55, fill:{color:C.teal}, line:{color:C.teal} });
s.addText("Mandatory Label Requirements (21 CFR Part 312)", { x:0.5, y:1.45, w:7.6, h:0.55, fontSize:13, bold:true, color:C.navy, align:"center", valign:"middle", margin:0 });
const labelItems = [
  "Caution: New Drug — Limited to Investigational Use",
  "Sponsor name and address",
  "IND / Protocol number",
  "Name of Principal Investigator",
  "Storage conditions (temperature, light)",
  "Lot / Batch number",
  "Expiry date (if known)",
  "Quantity and strength",
];
bulletList(s, labelItems, 0.55, 2.1, 7.5, 4.7, 12);

// Blinded study note
card(s, 8.55, 1.45, 4.4, 5.6);
s.addShape(pres.shapes.RECTANGLE, { x:8.55, y:1.45, w:4.4, h:0.55, fill:{color:C.gold}, line:{color:C.gold} });
s.addText("Blinded Study Labels", { x:8.65, y:1.45, w:4.2, h:0.55, fontSize:13, bold:true, color:C.navy, align:"center", valign:"middle", margin:0 });
s.addText("In blinded trials, the drug name is replaced by a randomisation/subject code to maintain blinding. The actual identity is held in a sealed emergency envelope only accessible under defined circumstances.", {
  x:8.7, y:2.1, w:4.1, h:2.0, fontSize:11.5, color:C.offWhite, fontFace:"Calibri"
});
iconCircle(s, 10.2, 4.2, C.gold, "🔒");
s.addText("Blinding = Safety\nMaintain integrity\nuntil study close", { x:8.7, y:4.85, w:4.1, h:1.9, fontSize:11, color:C.offWhite, fontFace:"Calibri", align:"center" });
slideLabel(s, 11, TOTAL);

// Slide 12
s = pres.addSlide();
darkSlide(s);
addAccentBar(s);
addBottomBar(s);
sectionTag(s, "Section 05 — continued");
slideTitle(s, "Identification — Challenges & System Controls");

// Left column: challenges
card(s, 0.35, 1.45, 6.1, 5.6);
s.addShape(pres.shapes.RECTANGLE, { x:0.35, y:1.45, w:6.1, h:0.55, fill:{color:"E05C5C"}, line:{color:"E05C5C"} });
s.addText("⚠️  Physical Identification Challenges", { x:0.45, y:1.45, w:5.9, h:0.55, fontSize:13, bold:true, color:C.white, align:"center", valign:"middle", margin:0 });
bulletList(s, [
  "Lack distinguishing visual features (blinding requirement)",
  "Cannot use different colours, shapes or imprinted codes",
  "Tall man lettering and packaging differences not applicable",
  "Small manufacturing batches limit sophisticated packaging",
  "Staff must rely on PROTOCOL documentation, not visual cues",
], 0.5, 2.1, 5.8, 4.7, 11.5);

// Right column: system controls
card(s, 6.85, 1.45, 6.1, 5.6);
s.addShape(pres.shapes.RECTANGLE, { x:6.85, y:1.45, w:6.1, h:0.55, fill:{color:C.teal}, line:{color:C.teal} });
s.addText("✅  System-Based Identification Controls", { x:6.95, y:1.45, w:5.9, h:0.55, fontSize:13, bold:true, color:C.navy, align:"center", valign:"middle", margin:0 });
bulletList(s, [
  "Pharmacy systems configured with protocol numbers & authorised prescribers",
  "Barcode scanning as additional verification step",
  "Protocol binders/electronic access at dispensing area at all times",
  "Two-patient identifier verification before every dispensing",
  "Confirm patient enrolment + valid consent at each visit",
], 7.0, 2.1, 5.8, 4.7, 11.5);
slideLabel(s, 12, TOTAL);

// ══════════════════════════════════════════════════════════════════════════════
// SLIDES 13-14 — ROLE OF HOSPITAL PHARMACIST
// ══════════════════════════════════════════════════════════════════════════════
// Slide 13
s = pres.addSlide();
darkSlide(s);
addAccentBar(s);
addBottomBar(s);
sectionTag(s, "Section 06");
slideTitle(s, "Role of the Hospital Pharmacist — Part 1");

const pharmRole1 = [
  ["🔍","Protocol Review & Feasibility","Reviews protocol before trial starts. Checks pharmaceutical feasibility: compatibility, stability, dose preparation. Identifies medication-related safety concerns.", C.teal],
  ["📜","Regulatory Compliance","Ensures compliance with 21 CFR 312, ICH-GCP, Joint Commission MM.06.01.05, and institutional SOPs.", C.teal],
  ["📦","Procurement & Inventory","Coordinates receipt, maintains perpetual inventory, notifies PI when stock reaches minimum level. Manages trial closure accountability.", C.teal],
  ["💉","Preparation & Dispensing","Prepares drug (including sterile compounding). Dispenses only to enrolled, consented patients on valid investigator orders. Maintains complete DARs.", C.teal],
];
const cols13 = [[0,1],[2,3]];
pharmRole1.forEach(([emoji, title, desc, color], i) => {
  const col = i % 2;
  const row = Math.floor(i / 2);
  const x = 0.35 + col * 6.5;
  const y = 1.45 + row * 2.95;
  card(s, x, y, 6.25, 2.7);
  iconCircle(s, x+0.25, y+0.9, C.tealDark, emoji);
  s.addText(title, { x:x+0.9, y:y+0.15, w:5.2, h:0.45, fontSize:13, bold:true, color:C.teal, fontFace:"Calibri" });
  s.addText(desc, { x:x+0.9, y:y+0.65, w:5.2, h:1.85, fontSize:11, color:C.offWhite, fontFace:"Calibri" });
});
slideLabel(s, 13, TOTAL);

// Slide 14
s = pres.addSlide();
darkSlide(s);
addAccentBar(s);
addBottomBar(s);
sectionTag(s, "Section 06 — continued");
slideTitle(s, "Role of the Hospital Pharmacist — Part 2");

const pharmRole2 = [
  ["🗣️","Patient Counselling","How & when to take drug, storage at home, side effects to watch, right to withdraw, importance of returning unused drug.", C.gold],
  ["⚠️","ADR Monitoring & Reporting","Identifies, documents and reports Adverse Drug Reactions (ADRs) and Serious Adverse Events (SAEs) within required timeframes to sponsor and regulatory authority.", C.gold],
  ["📚","Drug Information Resource","Primary information source for nurses, physicians & other team members. Uses Investigator's Brochure, mechanism, dosing, interactions, handling procedures.", C.gold],
  ["🎓","Training & Emergency Handling","Trains pharmacy staff per each protocol. Maintains training records. Manages emergency unblinding. Ensures alternative treatment if patient is discontinued.", C.gold],
];
pharmRole2.forEach(([emoji, title, desc, color], i) => {
  const col = i % 2;
  const row = Math.floor(i / 2);
  const x = 0.35 + col * 6.5;
  const y = 1.45 + row * 2.95;
  card(s, x, y, 6.25, 2.7);
  iconCircle(s, x+0.25, y+0.9, C.gold, emoji);
  s.addText(title, { x:x+0.9, y:y+0.15, w:5.2, h:0.45, fontSize:13, bold:true, color:C.gold, fontFace:"Calibri" });
  s.addText(desc, { x:x+0.9, y:y+0.65, w:5.2, h:1.85, fontSize:11, color:C.offWhite, fontFace:"Calibri" });
});
slideLabel(s, 14, TOTAL);

// ══════════════════════════════════════════════════════════════════════════════
// SLIDES 15-16 — ADVISORY COMMITTEE
// ══════════════════════════════════════════════════════════════════════════════
// Slide 15
s = pres.addSlide();
darkSlide(s);
addAccentBar(s);
addBottomBar(s);
sectionTag(s, "Section 07");
slideTitle(s, "Advisory Committee — Key Bodies");

const advData1 = [
  ["🏛️","FDA Advisory Committee","External expert panels convened by FDA. Evaluate clinical trial data. Make non-binding recommendations on drug approval. Public meetings ensure transparency. FDA follows recommendation in most cases.","009ED4"],
  ["🔬","IRB / Ethics Committee","Primary oversight body in hospitals/research institutions. Reviews & approves protocols before any study begins. Annual continuing reviews. Can suspend or terminate trials if risks emerge.","00C9B1"],
];
advData1.forEach(([emoji, title, desc, color], i) => {
  const y = 1.5 + i * 2.85;
  card(s, 0.35, y, 12.6, 2.5);
  s.addShape(pres.shapes.RECTANGLE, { x:0.35, y, w:1.5, h:2.5, fill:{color:"#"+color}, line:{color:"#"+color} });
  s.addText(emoji, { x:0.35, y, w:1.5, h:2.5, fontSize:32, align:"center", valign:"middle", margin:0 });
  s.addText(title, { x:2.05, y:y+0.15, w:10.7, h:0.5, fontSize:15, bold:true, color:"#"+color, fontFace:"Calibri" });
  s.addText(desc, { x:2.05, y:y+0.7, w:10.7, h:1.65, fontSize:12, color:C.offWhite, fontFace:"Calibri" });
});
slideLabel(s, 15, TOTAL);

// Slide 16
s = pres.addSlide();
darkSlide(s);
addAccentBar(s);
addBottomBar(s);
sectionTag(s, "Section 07 — continued");
slideTitle(s, "Advisory Committee — Institutional Bodies");

const advData2 = [
  ["💊","P&T Committee","Reviews and approves institutional policies for investigational drugs. Ensures alignment with hospital formulary. Reviews safety data. Advises on post-trial formulary inclusion.","F5A623"],
  ["🔬","Scientific Review Committee (SRC)","Evaluates proposed trials before IRB: scientific merit, institutional feasibility, resource adequacy, overlap with existing studies. IDS pharmacist is a KEY member.","9B59B6"],
  ["📊","DSMB / Data Monitoring Committee","Independent committee for larger trials. Reviews accumulating safety & efficacy data at intervals. Can recommend early termination. Operates independently of sponsor to avoid bias.","E05C5C"],
];
advData2.forEach(([emoji, title, desc, color], i) => {
  const y = 1.45 + i * 1.95;
  card(s, 0.35, y, 12.6, 1.75);
  s.addShape(pres.shapes.RECTANGLE, { x:0.35, y, w:1.2, h:1.75, fill:{color:"#"+color}, line:{color:"#"+color} });
  s.addText(emoji, { x:0.35, y, w:1.2, h:1.75, fontSize:26, align:"center", valign:"middle", margin:0 });
  s.addText(title, { x:1.7, y:y+0.12, w:3.8, h:0.45, fontSize:13, bold:true, color:"#"+color, fontFace:"Calibri" });
  s.addText(desc, { x:1.7, y:y+0.6, w:11.0, h:1.0, fontSize:11.5, color:C.offWhite, fontFace:"Calibri" });
});
slideLabel(s, 16, TOTAL);

// ══════════════════════════════════════════════════════════════════════════════
// SLIDE 17 — CLOSING / SUMMARY
// ══════════════════════════════════════════════════════════════════════════════
s = pres.addSlide();
darkSlide(s);
// Decorative circles
s.addShape(pres.shapes.ELLIPSE, { x:-1, y:-1, w:5.5, h:5.5, fill:{color:C.teal}, line:{color:C.teal}, transparency:88 });
s.addShape(pres.shapes.ELLIPSE, { x:9.8, y:3.5, w:4.5, h:4.5, fill:{color:C.gold}, line:{color:C.gold}, transparency:90 });
addAccentBar(s);
addBottomBar(s);
s.addText("Key Takeaways", { x:0.6, y:0.7, w:12, h:0.6, fontSize:28, bold:true, color:C.white, fontFace:"Calibri" });
s.addShape(pres.shapes.RECTANGLE, { x:0.6, y:1.32, w:2.0, h:0.07, fill:{color:C.teal}, line:{color:C.teal} });

const takeaways = [
  ["💡","Investigational drugs are tightly regulated — every human trial begins with an IND application and ethical clearance."],
  ["⚖️","Core principles include GCP, Informed Consent, IRB oversight, and the risk-benefit framework mandated since 1962."],
  ["📋","Four-class system (NCE → New Use → Expanded Access → Off-Label Research) covers all investigational scenarios."],
  ["🔒","Control demands complete Drug Accountability Records, proper storage, and rigorous dispensing procedures."],
  ["🏥","The hospital pharmacist is a central safeguard — from protocol review through ADR monitoring and patient counselling."],
  ["🏛️","Advisory bodies (FDA panel, IRB, P&T, SRC, DSMB) provide layered oversight from national to bedside level."],
];
takeaways.forEach(([emoji, text], i) => {
  const col = i % 2;
  const row = Math.floor(i / 2);
  const x = 0.35 + col * 6.5;
  const y = 1.55 + row * 1.82;
  card(s, x, y, 6.25, 1.65);
  s.addShape(pres.shapes.RECTANGLE, { x, y, w:0.1, h:1.65, fill:{color:i%2===0?C.teal:C.gold}, line:{color:i%2===0?C.teal:C.gold} });
  s.addText(emoji, { x:x+0.2, y:y+0.4, w:0.6, h:0.8, fontSize:22, align:"center", valign:"middle", margin:0 });
  s.addText(text, { x:x+0.9, y:y+0.15, w:5.2, h:1.35, fontSize:11.5, color:C.offWhite, fontFace:"Calibri", valign:"middle" });
});
slideLabel(s, 17, TOTAL);

// ─── WRITE FILE ────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/investigational-drug-ppt/Investigational_Use_of_Drugs.pptx" })
  .then(() => console.log("SUCCESS: File written."))
  .catch(e => console.error("ERROR:", e));
Running Command

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

Running Command

node -e "const p = require('pptxgenjs'); const pr = new p(); console.log(Object.…

Running Command

node -e "const p = require('pptxgenjs'); const pr = new p(); const keys = Object…

Running Command

node -e "const p = require('pptxgenjs'); const pr = new p(); const keys = Object…

Running Command

sed -i 's/pres\.shapes\.ELLIPSE/pres.shapes.OVAL/g' /home/daytona/workspace/inve…

Running Command

python3 -c " with open('/home/daytona/workspace/investigational-drug-ppt/build.j…

Running Command

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

Running Command

ls -lh /home/daytona/workspace/investigational-drug-ppt/Investigational_Use_of_D…

Your presentation is ready! Download it here:

Investigational Use of Drugs

Presentation · PPTX


Here's what's inside - 17 slides total, deep navy + teal + gold color scheme throughout:
SlideContent
1Title Slide - with decorative circles, teal accent
2Table of Contents - color-coded topic cards
3-4Description & Introduction - definition, 3 drug types, IND vs India regulations side-by-side
5-6Principles Involved - Helsinki, GCP, Consent (slide 5) + Risk-Benefit, IRB, Scientific Validity (slide 6)
7-8Classification - 4-class grid with color headers + Phase I-IV table
9-10Control - Acquisition/Storage/Dispensing (slide 9) + DAR/Returns/Blinding (slide 10)
11-12Identification - Mandatory label checklist + blinding challenges vs system controls side-by-side
13-14Role of Hospital Pharmacist - 4-card grid per slide (8 roles total)
15-16Advisory Committee - FDA/IRB (slide 15) + P&T/SRC/DSMB (slide 16)
17Key Takeaways - 6 summary points with teal/gold alternating cards
Design features used:
  • Dark navy background with teal and gold accents (not boring white!)
  • Card-style layout with subtle shadows
  • Emoji icons for quick visual scanning
  • Color-coded section tags on every slide
  • Slide counter (x/17) on every slide
  • Decorative circles on title and summary slides

I mean cover the topics within 2 slides and the background must be white in color

Writing File

~/investigational-drug-ppt/build2.js

const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3 x 7.5 inches

// ─── COLOUR PALETTE (white background theme) ───────────────────────────────
const C = {
  white:    "FFFFFF",
  darkBlue: "1A237E",   // deep indigo for headings
  blue:     "1565C0",   // medium blue
  teal:     "00897B",   // teal green accent
  orange:   "E65100",   // warm orange accent
  purple:   "6A1B9A",   // purple
  red:      "C62828",   // red
  gold:     "F9A825",   // gold
  navy:     "0D47A1",
  lightBg:  "F5F7FA",   // very light gray-blue for cards
  cardBlue: "E3F2FD",   // light blue card
  cardTeal: "E0F2F1",
  cardOrange:"FFF3E0",
  cardPurple:"F3E5F5",
  textDark: "212121",
  textMid:  "424242",
  textLight:"757575",
  line:     "E0E0E0",
};

function addTopBar(slide, color) {
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:0, w:13.3, h:0.12, fill:{color:color||C.darkBlue}, line:{color:color||C.darkBlue} });
}
function addBottomStrip(slide) {
  slide.addShape(pres.shapes.RECTANGLE, { x:0, y:7.35, w:13.3, h:0.15, fill:{color:C.darkBlue}, line:{color:C.darkBlue} });
  slide.addText("B.Pharmacy Final Year  |  Pharmacy Practice  |  Investigational Use of Drugs", {
    x:0, y:7.35, w:13.3, h:0.15, fontSize:7.5, color:C.white, align:"center", valign:"middle", margin:0
  });
}
function miniCard(slide, x, y, w, h, fillColor, lineColor) {
  slide.addShape(pres.shapes.RECTANGLE, {
    x, y, w, h,
    fill:{ color: fillColor || C.lightBg },
    line:{ color: lineColor || C.line, pt:1 },
    shadow:{ type:"outer", color:"BBBBBB", blur:4, offset:2, angle:135, opacity:0.2 }
  });
}
function sectionHeader(slide, x, y, w, h, label, color) {
  slide.addShape(pres.shapes.RECTANGLE, { x, y, w, h, fill:{color:color}, line:{color:color} });
  slide.addText(label, { x, y, w, h, fontSize:9.5, bold:true, color:C.white, align:"center", valign:"middle", margin:0 });
}

// ══════════════════════════════════════════════════════════════════════════════
//  SLIDE 1
//  Covers: Description | Principles | Classification
// ══════════════════════════════════════════════════════════════════════════════
let s = pres.addSlide();
// White background (default), top color bar
s.addShape(pres.shapes.RECTANGLE, {x:0,y:0,w:13.3,h:7.5,fill:{color:C.white},line:{color:C.white}});
addTopBar(s, C.darkBlue);

// ── SLIDE TITLE ──
s.addText("Investigational Use of Drugs", {
  x:0.3, y:0.18, w:9, h:0.52,
  fontSize:22, bold:true, color:C.darkBlue, fontFace:"Calibri"
});
s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:0.72, w:5.5, h:0.04, fill:{color:C.teal}, line:{color:C.teal} });
s.addText("Slide 1 of 2", { x:12.0, y:0.22, w:1.1, h:0.3, fontSize:9, color:C.textLight, align:"right" });

// ════════════════════════════
//  SECTION A — DESCRIPTION
// ════════════════════════════
sectionHeader(s, 0.2, 0.85, 2.5, 0.32, "01  DESCRIPTION", C.darkBlue);

miniCard(s, 0.2, 1.22, 4.05, 1.62, C.cardBlue, "BBDEFB");
s.addText([
  { text: "Definition: ", options: { bold:true, color:C.darkBlue } },
  { text: "A drug not yet approved by regulatory authorities (FDA/CDSCO) for general use. Tested in humans under an ", options: { color:C.textDark } },
  { text: "Investigational New Drug (IND) Application", options: { bold:true, color:C.blue } },
  { text: " to establish safety & efficacy.", options: { color:C.textDark } },
], { x:0.35, y:1.27, w:3.75, h:1.52, fontSize:11, fontFace:"Calibri", valign:"top" });

miniCard(s, 4.45, 1.22, 4.05, 1.62, "FFF8E1", "FFE082");
s.addText([
  { text: "Scope includes:\n", options: { bold:true, color:C.orange } },
  { text: "• New Chemical Entities (NCE) — first in human\n• Approved drugs for new indications\n• Expanded / compassionate use\n• Off-label drugs under formal investigation", options: { color:C.textDark } },
], { x:4.6, y:1.27, w:3.75, h:1.52, fontSize:10.5, fontFace:"Calibri" });

miniCard(s, 8.9, 1.22, 4.2, 1.62, "F3E5F5", "CE93D8");
s.addText([
  { text: "IND Requirements:\n", options: { bold:true, color:C.purple } },
  { text: "• Pre-clinical pharmacology & toxicology data\n• CMC (Chemistry, Manufacturing, Controls)\n• Clinical protocol & investigator credentials\n• Informed consent documents\n• FDA reviews in 30 days", options: { color:C.textDark } },
], { x:9.05, y:1.27, w:3.9, h:1.52, fontSize:10.5, fontFace:"Calibri" });

// ════════════════════════════
//  SECTION B — PRINCIPLES
// ════════════════════════════
sectionHeader(s, 0.2, 2.98, 2.5, 0.32, "02  PRINCIPLES INVOLVED", C.teal);

const principles = [
  ["⚖️ Declaration of\nHelsinki", "Subject welfare > science. Voluntary informed consent mandatory before any procedure.", C.cardTeal, "80CBC4"],
  ["📋 Good Clinical\nPractice (GCP)", "ICH-E6 standard for designing, conducting & reporting trials. Internationally binding.", C.cardBlue, "90CAF9"],
  ["✍️ Informed\nConsent", "Explain purpose, risks, benefits & right to withdraw. Obtained BEFORE any study activity.", "FFF3E0", "FFCC80"],
  ["🔬 Risk-Benefit\nBalance", "Harris-Kefauver 1962: Prove both safety AND efficacy. Acceptable risk = severity of disease.", "FCE4EC", "F48FB1"],
  ["🏛️ IRB / Ethics\nCommittee", "Independent review before trial start. Monitors ongoing trial. Can suspend for safety.", "F3E5F5", "CE93D8"],
  ["📊 Scientific\nValidity", "Flawed design = ethical violation. Needs proper sample size, randomisation & endpoints.", "FFFDE7", "FFF176"],
];
principles.forEach(([title, desc, fill, line], i) => {
  const x = 0.2 + i * 2.15;
  miniCard(s, x, 3.35, 2.0, 2.0, fill, line);
  s.addText(title, { x:x+0.08, y:3.4, w:1.84, h:0.55, fontSize:10, bold:true, color:C.darkBlue, fontFace:"Calibri", align:"center" });
  s.addShape(pres.shapes.RECTANGLE, { x:x+0.15, y:3.95, w:1.7, h:0.03, fill:{color:C.line}, line:{color:C.line} });
  s.addText(desc, { x:x+0.08, y:4.0, w:1.84, h:1.3, fontSize:9.5, color:C.textMid, fontFace:"Calibri" });
});

// ════════════════════════════
//  SECTION C — CLASSIFICATION
// ════════════════════════════
sectionHeader(s, 0.2, 5.42, 2.5, 0.32, "03  CLASSIFICATION", C.orange);

const classes = [
  ["Class I", "New Chemical Entities", "Never tested in humans. Highest uncertainty. Most rigorous monitoring.", C.darkBlue],
  ["Class II", "Approved Drug — New Use", "Existing approved drug studied for new indication, route or population.", C.teal],
  ["Class III", "Treatment IND / Expanded Access", "Serious/life-threatening illness, no alternatives. Individual or widespread access.", C.orange],
  ["Class IV", "Off-Label Under Investigation", "Approved drugs used beyond label. Formal study needs IND + IRB oversight.", C.purple],
];
classes.forEach(([cls, title, desc, color], i) => {
  const x = 0.2 + i * 3.27;
  miniCard(s, x, 5.8, 3.1, 1.55, C.lightBg, C.line);
  s.addShape(pres.shapes.RECTANGLE, { x, y:5.8, w:3.1, h:0.36, fill:{color:color}, line:{color:color} });
  s.addText(`${cls}  |  ${title}`, { x:x+0.08, y:5.8, w:2.94, h:0.36, fontSize:10, bold:true, color:C.white, valign:"middle", margin:4 });
  s.addText(desc, { x:x+0.1, y:6.19, w:2.9, h:1.1, fontSize:10, color:C.textMid, fontFace:"Calibri" });
});

addBottomStrip(s);

// ══════════════════════════════════════════════════════════════════════════════
//  SLIDE 2
//  Covers: Control | Identification | Role of Hospital Pharmacist | Advisory Committee
// ══════════════════════════════════════════════════════════════════════════════
s = pres.addSlide();
s.addShape(pres.shapes.RECTANGLE, {x:0,y:0,w:13.3,h:7.5,fill:{color:C.white},line:{color:C.white}});
addTopBar(s, C.blue);

s.addText("Investigational Use of Drugs", {
  x:0.3, y:0.18, w:9, h:0.52,
  fontSize:22, bold:true, color:C.darkBlue, fontFace:"Calibri"
});
s.addShape(pres.shapes.RECTANGLE, { x:0.3, y:0.72, w:5.5, h:0.04, fill:{color:C.blue}, line:{color:C.blue} });
s.addText("Slide 2 of 2", { x:12.0, y:0.22, w:1.1, h:0.3, fontSize:9, color:C.textLight, align:"right" });

// ════════════════════════════
//  LEFT COLUMN — CONTROL + IDENTIFICATION
// ════════════════════════════
// CONTROL
sectionHeader(s, 0.2, 0.85, 2.5, 0.32, "04  CONTROL", C.teal);
const controlPoints = [
  ["📦 Acquire","Pharmacy/IDS only. Verify against manifest. Log lot, expiry, qty."],
  ["❄️ Storage","Per sponsor specs. Locked area for controlled substances. Separate from commercial drugs."],
  ["💉 Dispense","PI-signed order required. Confirm consent. Document on Drug Accountability Record (DAR)."],
  ["📂 Records","DAR tracks every unit. Retained 2 years post-approval or trial end."],
  ["♻️ Returns","Unused drug returned or destroyed with documentation. Never regular waste."],
];
controlPoints.forEach(([label, desc], i) => {
  const y = 1.25 + i * 0.65;
  miniCard(s, 0.2, y, 6.2, 0.58, i%2===0?C.cardTeal:C.lightBg, C.line);
  s.addText(label, { x:0.3, y:y+0.04, w:1.1, h:0.5, fontSize:9.5, bold:true, color:C.teal, fontFace:"Calibri", valign:"top" });
  s.addShape(pres.shapes.RECTANGLE, { x:1.5, y:y+0.08, w:0.03, h:0.42, fill:{color:C.line}, line:{color:C.line} });
  s.addText(desc, { x:1.6, y:y+0.05, w:4.7, h:0.5, fontSize:9.5, color:C.textMid, fontFace:"Calibri", valign:"top" });
});

// IDENTIFICATION
sectionHeader(s, 0.2, 4.55, 2.5, 0.32, "05  IDENTIFICATION", C.purple);
const idPoints = [
  ["🏷️ Label (Mandatory)","Must state: 'Caution: New Drug — Investigational Use Only', Sponsor, IND#, PI, storage, lot, expiry, strength."],
  ["⚠️ Challenge","No color/shape/imprint cues in blinded trials. Staff rely on protocol docs, not visual ID."],
  ["🖥️ System Controls","Pharmacy software with protocol IDs, barcode scan, 2-patient-identifier check before every dispense."],
];
idPoints.forEach(([label, desc], i) => {
  const y = 4.95 + i * 0.72;
  miniCard(s, 0.2, y, 6.2, 0.62, i%2===0?"F3E5F5":C.lightBg, C.line);
  s.addText(label, { x:0.3, y:y+0.05, w:1.35, h:0.52, fontSize:9.5, bold:true, color:C.purple, fontFace:"Calibri", valign:"top" });
  s.addShape(pres.shapes.RECTANGLE, { x:1.72, y:y+0.08, w:0.03, h:0.42, fill:{color:C.line}, line:{color:C.line} });
  s.addText(desc, { x:1.82, y:y+0.05, w:4.5, h:0.52, fontSize:9.5, color:C.textMid, fontFace:"Calibri", valign:"top" });
});

// ════════════════════════════
//  RIGHT COLUMN — PHARMACIST + ADVISORY
// ════════════════════════════
// ROLE OF HOSPITAL PHARMACIST
sectionHeader(s, 6.85, 0.85, 3.0, 0.32, "06  ROLE OF HOSPITAL PHARMACIST", C.darkBlue);

const pharmacistRoles = [
  ["🔍 Protocol Review", "Feasibility, compatibility, stability check before trial start."],
  ["📜 Regulatory Compliance", "Ensure 21 CFR 312, ICH-GCP, Joint Commission MM.06.01.05 adherence."],
  ["📦 Procurement & Inventory", "Receive drug, maintain perpetual DAR, notify PI at minimum stock."],
  ["💊 Preparation & Dispensing", "Sterile compounding if needed. Dispense only to consented, enrolled patients."],
  ["🗣️ Patient Counselling", "Dosing, storage, side effects, right to withdraw, return unused drug."],
  ["⚠️ ADR Monitoring", "Detect, document and report ADRs/SAEs to sponsor & regulatory authority."],
  ["📚 Drug Information", "Primary resource for team — mechanism, dosing, interactions from Investigator's Brochure."],
  ["🎓 Training & Unblinding", "Train staff per protocol. Manage emergency unblinding with documentation."],
];
pharmacistRoles.forEach(([label, desc], i) => {
  const col = i % 2;
  const row = Math.floor(i / 2);
  const x = 6.85 + col * 3.22;
  const y = 1.25 + row * 0.72;
  miniCard(s, x, y, 3.05, 0.62, row%2===0?C.cardBlue:C.lightBg, C.line);
  s.addText(label, { x:x+0.08, y:y+0.04, w:2.9, h:0.28, fontSize:9, bold:true, color:C.darkBlue, fontFace:"Calibri" });
  s.addText(desc, { x:x+0.08, y:y+0.33, w:2.9, h:0.27, fontSize:8.5, color:C.textMid, fontFace:"Calibri" });
});

// ADVISORY COMMITTEE
sectionHeader(s, 6.85, 4.22, 3.0, 0.32, "07  ADVISORY COMMITTEE", C.orange);

const advisory = [
  ["🏛️ FDA Advisory\nCommittee", "External expert panels. Evaluate trial data. Non-binding approval recommendations. Public meetings ensure transparency.", "FFF3E0", "FFB74D"],
  ["🔬 IRB / Ethics\nCommittee", "Reviews & approves protocols. Annual monitoring. Can suspend trial. Requires diverse membership incl. community.", "FFF8E1", "FFD54F"],
  ["💊 P&T Committee", "Approves hospital policies for investigational drugs. Formulary oversight. Reviews trial safety data.", "E8F5E9", "81C784"],
  ["📊 DSMB / DMC", "Independent body for large trials. Reviews interim safety/efficacy data. Recommends early stop if needed.", "F3E5F5", "BA68C8"],
];
advisory.forEach(([label, desc, fill, line], i) => {
  const col = i % 2;
  const row = Math.floor(i / 2);
  const x = 6.85 + col * 3.22;
  const y = 4.62 + row * 1.35;
  miniCard(s, x, y, 3.05, 1.22, fill, line);
  s.addText(label, { x:x+0.1, y:y+0.06, w:2.85, h:0.45, fontSize:9.5, bold:true, color:C.orange, fontFace:"Calibri" });
  s.addShape(pres.shapes.RECTANGLE, { x:x+0.1, y:y+0.52, w:2.85, h:0.03, fill:{color:C.line}, line:{color:C.line} });
  s.addText(desc, { x:x+0.1, y:y+0.58, w:2.85, h:0.6, fontSize:8.8, color:C.textMid, fontFace:"Calibri" });
});

// SRC note
miniCard(s, 6.85, 6.35, 6.29, 0.72, "E8EAF6", "9FA8DA");
s.addText("🔬  Scientific Review Committee (SRC)", { x:6.95, y:6.38, w:3.0, h:0.28, fontSize:9.5, bold:true, color:C.darkBlue, fontFace:"Calibri" });
s.addText("Evaluates scientific merit, feasibility and resource adequacy of proposed trials before IRB review. The IDS pharmacist is a KEY member — provides pharmaceutical expertise for investigator-initiated trials.", {
  x:6.95, y:6.65, w:6.1, h:0.38, fontSize:9, color:C.textMid, fontFace:"Calibri"
});

addBottomStrip(s);

// ─── WRITE ──────────────────────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/investigational-drug-ppt/Investigational_Use_of_Drugs_2slides.pptx" })
  .then(() => console.log("SUCCESS"))
  .catch(e => console.error("ERROR:", e));
Running Command

cd /home/daytona/workspace/investigational-drug-ppt && node build2.js 2>&1

Running Command

ls -lh /home/daytona/workspace/investigational-drug-ppt/Investigational_Use_of_D…

Your 2-slide presentation is ready! Download here:

Investigational Use of Drugs 2slides

Presentation · PPTX


Here's how the content is split across the 2 white-background slides:
Slide 1 - Top half to bottom:
  • Section 01 - Description - Definition, Scope, IND Requirements (3 color-tinted cards side by side)
  • Section 02 - Principles Involved - 6 mini cards in a row (Helsinki, GCP, Consent, Risk-Benefit, IRB, Scientific Validity)
  • Section 03 - Classification - 4 color-header cards (Class I to IV) spanning the full width
Slide 2 - Left column + Right column layout:
  • Left: Section 04 - Control (5 rows: Acquire, Storage, Dispense, Records, Returns) + Section 05 - Identification (3 rows: Label, Challenge, System Controls)
  • Right: Section 06 - Hospital Pharmacist (8 roles in a 2-column mini-grid) + Section 07 - Advisory Committee (FDA, IRB, P&T, DSMB cards + SRC note at the bottom)
Design features: White background, deep navy/teal/blue/orange/purple color accents per section, light-tinted card fills, subtle shadows, color-coded section header bars, and a consistent footer bar on both slides.

No dark colors the text color should be black and times new Roman

Writing File

~/investigational-drug-ppt/build3.js

const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3 x 7.5 inches

const F = "Times New Roman";

const C = {
  white:   "FFFFFF",
  black:   "000000",
  gray:    "555555",
  line:    "CCCCCC",
  lightGray:"F7F7F7",
  // Soft pastel accents — used ONLY for section header bars and card borders
  blue:    "4A90D9",
  teal:    "3BAA8C",
  orange:  "E8873A",
  purple:  "8B6FCB",
  green:   "5BAD72",
  red:     "D95B5B",
  gold:    "C9A227",
};

// ── helpers ──────────────────────────────────────────────────────────────────
function whiteBg(slide) {
  slide.addShape(pres.shapes.RECTANGLE, { x:0,y:0,w:13.3,h:7.5,fill:{color:C.white},line:{color:C.white} });
}

function topBar(slide, color) {
  slide.addShape(pres.shapes.RECTANGLE, { x:0,y:0,w:13.3,h:0.1,fill:{color:color},line:{color:color} });
}

function bottomBar(slide) {
  slide.addShape(pres.shapes.RECTANGLE, { x:0,y:7.38,w:13.3,h:0.12,fill:{color:C.line},line:{color:C.line} });
  slide.addText("B.Pharmacy Final Year  |  Pharmacy Practice  |  Investigational Use of Drugs", {
    x:0,y:7.38,w:13.3,h:0.12,fontSize:7,color:C.gray,align:"center",valign:"middle",margin:0,fontFace:F
  });
}

function secLabel(slide, x, y, w, h, txt, color) {
  slide.addShape(pres.shapes.RECTANGLE, { x,y,w,h,fill:{color:color},line:{color:color} });
  slide.addText(txt, { x,y,w,h,fontSize:9,bold:true,color:C.white,align:"center",valign:"middle",margin:0,fontFace:F });
}

function card(slide, x, y, w, h, borderColor) {
  slide.addShape(pres.shapes.RECTANGLE, {
    x,y,w,h,
    fill:{color:C.white},
    line:{color:borderColor||C.line,pt:1},
    shadow:{type:"outer",color:"DDDDDD",blur:3,offset:1,angle:135,opacity:0.3}
  });
}

function row(slide, x, y, w, h, fill) {
  slide.addShape(pres.shapes.RECTANGLE, {x,y,w,h,fill:{color:fill||C.lightGray},line:{color:C.line,pt:0.5}});
}

function txt(slide, text, x, y, w, h, opts) {
  slide.addText(text, Object.assign({ x,y,w,h,fontFace:F,color:C.black,fontSize:10,valign:"middle" }, opts||{}));
}

function boldTxt(slide, text, x, y, w, h, opts) {
  txt(slide, text, x, y, w, h, Object.assign({ bold:true }, opts||{}));
}

// ══════════════════════════════════════════════════════════════════════════════
//  SLIDE 1  —  Description | Principles | Classification
// ══════════════════════════════════════════════════════════════════════════════
let s = pres.addSlide();
whiteBg(s);
topBar(s, C.blue);

// Slide heading
boldTxt(s,"Investigational Use of Drugs — Overview",0.25,0.13,10,0.48,{fontSize:20,color:C.black});
s.addShape(pres.shapes.RECTANGLE,{x:0.25,y:0.63,w:6,h:0.035,fill:{color:C.blue},line:{color:C.blue}});
txt(s,"Slide 1 of 2",12.1,0.18,1.0,0.28,{fontSize:8.5,color:C.gray,align:"right"});

// ─── SECTION 01 — DESCRIPTION ────────────────────────────────────────────────
secLabel(s, 0.2,0.75,2.6,0.28,"01  DESCRIPTION",C.blue);

card(s,0.2,1.08,4.1,1.6,C.blue);
boldTxt(s,"What is an Investigational Drug?",0.32,1.11,3.86,0.3,{fontSize:10.5,color:C.black});
s.addShape(pres.shapes.RECTANGLE,{x:0.32,y:1.42,w:3.86,h:0.025,fill:{color:C.blue},line:{color:C.blue}});
txt(s,"A drug not yet approved by FDA / CDSCO for general use, tested in humans under an Investigational New Drug (IND) application to establish safety and efficacy.",0.32,1.46,3.85,1.2,{fontSize:10,wrapText:true});

card(s,4.5,1.08,4.1,1.6,C.teal);
boldTxt(s,"Scope of Investigational Use",4.62,1.11,3.86,0.3,{fontSize:10.5,color:C.black});
s.addShape(pres.shapes.RECTANGLE,{x:4.62,y:1.42,w:3.86,h:0.025,fill:{color:C.teal},line:{color:C.teal}});
s.addText([
  {text:"• New Chemical Entities (NCE) — first in human\n",options:{fontSize:10,color:C.black,fontFace:F}},
  {text:"• Approved drug for new indication/route/population\n",options:{fontSize:10,color:C.black,fontFace:F}},
  {text:"• Expanded / compassionate use programs\n",options:{fontSize:10,color:C.black,fontFace:F}},
  {text:"• Off-label drugs under formal study",options:{fontSize:10,color:C.black,fontFace:F}},
],{x:4.62,y:1.46,w:3.85,h:1.2});

card(s,8.9,1.08,4.2,1.6,C.orange);
boldTxt(s,"IND Application Requirements",9.02,1.11,3.96,0.3,{fontSize:10.5,color:C.black});
s.addShape(pres.shapes.RECTANGLE,{x:9.02,y:1.42,w:3.96,h:0.025,fill:{color:C.orange},line:{color:C.orange}});
s.addText([
  {text:"• Pre-clinical pharmacology & toxicology data\n",options:{fontSize:10,color:C.black,fontFace:F}},
  {text:"• Chemistry, Manufacturing & Controls (CMC)\n",options:{fontSize:10,color:C.black,fontFace:F}},
  {text:"• Clinical protocol & investigator credentials\n",options:{fontSize:10,color:C.black,fontFace:F}},
  {text:"• FDA review: 30 days to approve/reject",options:{fontSize:10,color:C.black,fontFace:F}},
],{x:9.02,y:1.46,w:3.96,h:1.2});

// ─── SECTION 02 — PRINCIPLES ─────────────────────────────────────────────────
secLabel(s, 0.2,2.83,2.8,0.28,"02  PRINCIPLES INVOLVED",C.teal);

const principles = [
  ["Declaration of Helsinki","Subject welfare > science. Voluntary informed consent before any procedure. Research must be scientifically sound."],
  ["Good Clinical Practice (GCP)","ICH-E6 international standard for designing, conducting, recording and reporting clinical trials."],
  ["Informed Consent","Patient must understand purpose, risks, benefits and right to withdraw BEFORE any study activity begins."],
  ["Risk-Benefit Balance","Harris-Kefauver 1962: Prove both safety AND efficacy. Acceptable risk is proportional to disease severity."],
  ["IRB / Ethics Committee","Independent review and approval before trial start. Annual monitoring. Can suspend trial for patient safety."],
  ["Scientific Validity","Flawed study design is an ethical violation. Requires proper sample size, randomisation and clear endpoints."],
];
principles.forEach(([title,desc],i) => {
  const col = i%3, row_ = Math.floor(i/3);
  const x = 0.2 + col*4.35;
  const y = 3.17 + row_*1.35;
  card(s,x,y,4.18,1.25, [C.teal,C.blue,C.orange,C.purple,C.green,C.red][i]);
  s.addShape(pres.shapes.RECTANGLE,{x,y,w:4.18,h:0.04,fill:{color:[C.teal,C.blue,C.orange,C.purple,C.green,C.red][i]},line:{color:[C.teal,C.blue,C.orange,C.purple,C.green,C.red][i]}});
  boldTxt(s,title,x+0.1,y+0.06,3.98,0.28,{fontSize:10,color:C.black});
  s.addShape(pres.shapes.RECTANGLE,{x:x+0.1,y:y+0.36,w:3.98,h:0.025,fill:{color:C.line},line:{color:C.line}});
  txt(s,desc,x+0.1,y+0.38,3.98,0.82,{fontSize:9.5,color:C.black,wrapText:true,valign:"top"});
});

// ─── SECTION 03 — CLASSIFICATION ─────────────────────────────────────────────
secLabel(s, 0.2,5.92,2.6,0.28,"03  CLASSIFICATION",C.orange);

const classes = [
  ["Class I","New Chemical Entity","Never tested in humans. Only pre-clinical data. Most rigorous monitoring required."],
  ["Class II","Approved Drug — New Use","Existing drug studied for new indication, dose, route or population. Fresh IND needed."],
  ["Class III","Treatment IND / Expanded Access","Serious illness with no alternative. Includes individual, intermediate and widespread access."],
  ["Class IV","Off-Label Under Investigation","Approved drug used beyond label under formal study. Requires IND + IRB oversight."],
];
classes.forEach(([cls,title,desc],i) => {
  const x = 0.2 + i*3.27;
  card(s,x,6.26,3.1,1.1, [C.blue,C.teal,C.orange,C.purple][i]);
  s.addShape(pres.shapes.RECTANGLE,{x,y:6.26,w:3.1,h:0.3,fill:{color:[C.blue,C.teal,C.orange,C.purple][i]},line:{color:[C.blue,C.teal,C.orange,C.purple][i]}});
  txt(s,`${cls}  |  ${title}`,x+0.08,6.26,2.94,0.3,{fontSize:9.5,bold:true,color:C.white,valign:"middle",margin:3});
  txt(s,desc,x+0.1,6.59,2.9,0.73,{fontSize:9.5,color:C.black,valign:"top",wrapText:true});
});

bottomBar(s);

// ══════════════════════════════════════════════════════════════════════════════
//  SLIDE 2  —  Control | Identification | Hospital Pharmacist | Advisory Committee
// ══════════════════════════════════════════════════════════════════════════════
s = pres.addSlide();
whiteBg(s);
topBar(s, C.teal);

boldTxt(s,"Investigational Use of Drugs — Management & Oversight",0.25,0.13,11,0.48,{fontSize:20,color:C.black});
s.addShape(pres.shapes.RECTANGLE,{x:0.25,y:0.63,w:6.5,h:0.035,fill:{color:C.teal},line:{color:C.teal}});
txt(s,"Slide 2 of 2",12.1,0.18,1.0,0.28,{fontSize:8.5,color:C.gray,align:"right"});

// ─── LEFT HALF ────────────────────────────────────────────────────────────────
// SECTION 04 — CONTROL
secLabel(s,0.2,0.75,2.2,0.28,"04  CONTROL",C.teal);

const controlRows = [
  ["Acquisition & Receipt","Received by pharmacy/IDS only. Verify against sponsor manifest. Document lot, expiry, quantity and transport conditions."],
  ["Storage","Per sponsor specs (temperature, light, humidity). Controlled substances in locked area. Stored separately from commercial drugs. Temperature logs maintained."],
  ["Dispensing","PI-signed prescription required. Confirm informed consent before dispensing. Every dispense documented on Drug Accountability Record (DAR)."],
  ["Drug Accountability Records","DAR tracks every unit from receipt to disposal. Retained for 2 years after approval or trial discontinuation."],
  ["Returns & Destruction","Unused drug returned to sponsor or destroyed per regulations. Documented destruction — never disposed as regular waste."],
];
controlRows.forEach(([label,desc],i) => {
  const y = 1.1 + i*0.62;
  const fill = i%2===0 ? "F2F9F7" : C.white;
  s.addShape(pres.shapes.RECTANGLE,{x:0.2,y,w:6.3,h:0.56,fill:{color:fill},line:{color:C.line,pt:0.5}});
  boldTxt(s,label,0.3,y+0.03,1.65,0.5,{fontSize:9.5,color:C.black,valign:"top"});
  s.addShape(pres.shapes.RECTANGLE,{x:2.0,y:y+0.08,w:0.025,h:0.4,fill:{color:C.teal},line:{color:C.teal}});
  txt(s,desc,2.07,y+0.03,4.35,0.5,{fontSize:9,color:C.black,valign:"top",wrapText:true});
});

// SECTION 05 — IDENTIFICATION
secLabel(s,0.2,4.25,2.4,0.28,"05  IDENTIFICATION",C.purple);

const idRows = [
  ["Mandatory Label","Must state: 'New Drug — Investigational Use Only', Sponsor name, IND#, PI name, storage conditions, lot number, expiry and strength."],
  ["Identification Challenge","No colour/shape/imprint cues in blinded trials. Staff must rely on protocol documentation, not visual identification."],
  ["System Controls","Pharmacy software with protocol IDs, barcode verification, and two-patient-identifier check before every dispensing event."],
];
idRows.forEach(([label,desc],i) => {
  const y = 4.6 + i*0.71;
  const fill = i%2===0 ? "F9F5FF" : C.white;
  s.addShape(pres.shapes.RECTANGLE,{x:0.2,y,w:6.3,h:0.65,fill:{color:fill},line:{color:C.line,pt:0.5}});
  boldTxt(s,label,0.3,y+0.03,1.75,0.59,{fontSize:9.5,color:C.black,valign:"top"});
  s.addShape(pres.shapes.RECTANGLE,{x:2.1,y:y+0.08,w:0.025,h:0.45,fill:{color:C.purple},line:{color:C.purple}});
  txt(s,desc,2.18,y+0.03,4.25,0.59,{fontSize:9,color:C.black,valign:"top",wrapText:true});
});

// ─── RIGHT HALF ───────────────────────────────────────────────────────────────
// SECTION 06 — HOSPITAL PHARMACIST
secLabel(s,6.8,0.75,3.1,0.28,"06  ROLE OF HOSPITAL PHARMACIST",C.blue);

const pharmaRoles = [
  ["Protocol Review","Check feasibility, compatibility, stability before trial start. Participate in Scientific Review Committee."],
  ["Regulatory Compliance","Ensure 21 CFR 312, ICH-GCP and Joint Commission MM.06.01.05 adherence."],
  ["Procurement & Inventory","Receive drug, maintain perpetual DAR, notify PI at minimum stock level."],
  ["Preparation & Dispensing","Sterile compounding if required. Dispense only to consented, enrolled patients on valid PI orders."],
  ["Patient Counselling","Explain dosing, storage, side effects, right to withdraw, and importance of returning unused drug."],
  ["ADR Monitoring","Detect, document and report Adverse Drug Reactions and Serious Adverse Events to sponsor and authority."],
  ["Drug Information","Primary resource for entire team — mechanism, interactions, dosing from Investigator's Brochure."],
  ["Training & Unblinding","Train staff per each protocol. Manage emergency unblinding with proper documentation."],
];
pharmaRoles.forEach(([label,desc],i) => {
  const col = i%2, rw = Math.floor(i/2);
  const x = 6.8 + col*3.22;
  const y = 1.1 + rw*0.72;
  const fill = rw%2===0 ? "F0F6FF" : C.white;
  s.addShape(pres.shapes.RECTANGLE,{x,y,w:3.05,h:0.65,fill:{color:fill},line:{color:C.line,pt:0.5}});
  boldTxt(s,label,x+0.1,y+0.03,2.85,0.25,{fontSize:9.5,color:C.black});
  txt(s,desc,x+0.1,y+0.3,2.85,0.32,{fontSize:8.8,color:C.black,valign:"top",wrapText:true});
});

// SECTION 07 — ADVISORY COMMITTEE
secLabel(s,6.8,3.98,2.8,0.28,"07  ADVISORY COMMITTEE",C.orange);

const advisory = [
  ["FDA Advisory Committee","External expert panels evaluate trial data and make non-binding approval recommendations. Public meetings ensure transparency."],
  ["IRB / Ethics Committee","Reviews and approves protocols before trial start. Annual monitoring. Can suspend or terminate trial for patient safety."],
  ["P&T Committee","Approves hospital policies for investigational drugs. Oversees formulary alignment. Reviews ongoing trial safety data."],
  ["DSMB / Data Monitoring Committee","Independent body for large trials. Reviews interim safety/efficacy data. Can recommend early study termination."],
  ["Scientific Review Committee (SRC)","Assesses scientific merit and feasibility before IRB review. IDS pharmacist is a key member providing pharmaceutical expertise."],
];
advisory.forEach(([label,desc],i) => {
  const col = i < 4 ? i%2 : 0;
  const rw  = i < 4 ? Math.floor(i/2) : 2;
  const x   = i < 4 ? 6.8 + col*3.22 : 6.8;
  const w   = i < 4 ? 3.05 : 6.3;
  const y   = 4.33 + rw*0.74;
  const fill = rw%2===0 ? "FFF8F0" : C.white;
  s.addShape(pres.shapes.RECTANGLE,{x,y,w,h:0.65,fill:{color:fill},line:{color:C.line,pt:0.5}});
  boldTxt(s,label,x+0.1,y+0.03,i<4?2.85:3.5,0.25,{fontSize:9.5,color:C.black});
  txt(s,desc,x+0.1,y+0.3,i<4?2.85:6.1,0.32,{fontSize:8.8,color:C.black,valign:"top",wrapText:true});
});

bottomBar(s);

// ─── WRITE ────────────────────────────────────────────────────────────────────
pres.writeFile({ fileName:"/home/daytona/workspace/investigational-drug-ppt/InvestigationalDrugs_Final.pptx" })
  .then(()=>console.log("SUCCESS"))
  .catch(e=>console.error("ERROR:",e));
Running Command

cd /home/daytona/workspace/investigational-drug-ppt && node build3.js 2>&1

Running Command

ls -lh /home/daytona/workspace/investigational-drug-ppt/InvestigationalDrugs_Fin…

Here's your updated presentation:

InvestigationalDrugs Final

Presentation · PPTX


What changed in this version:
  • White background throughout both slides
  • All text is black, Times New Roman font
  • No dark colors anywhere - only soft pastel accents used for thin section header bars and card borders (blue, teal, orange, purple tones)
  • Section header bars are pale-colored strips with white label text (the only non-black text in the whole deck)
  • Card backgrounds are very light tints (near-white) just to visually separate sections
  • Clean, table-style row layout - easy to read at a glance
Slide 1 - Description + Principles + Classification Slide 2 - Control + Identification + Hospital Pharmacist + Advisory Committee

Can you even make flow chart

Asking for Preferences
Writing File

~/investigational-drug-ppt/flowchart.js

const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3 x 7.5 inches

const F = "Times New Roman";

// ── COLOURS (white bg, black text, soft accents for shapes only) ──
const WHITE  = "FFFFFF";
const BLACK  = "000000";
const LGRAY  = "F0F0F0";
const BORDER = "AAAAAA";

// Step box fill colours (soft pastels — text stays black)
const COL = {
  start:    "D6EAF8",  // light blue  — start/end ovals
  process:  "EAF4FB",  // very light blue — process rectangles
  decision: "FEF9E7",  // light yellow — diamond decisions
  phase1:   "E8F8F5",  // mint
  phase2:   "E9F7EF",  // light green
  phase3:   "FEF9E7",  // light gold
  phase4:   "FDEDEC",  // light rose
  approval: "F9EBEA",  // light red
  success:  "EAFAF1",  // pale green
  arrow:    "2E86C1",  // medium blue for arrows
};

const s = pres.addSlide();

// White background
s.addShape(pres.shapes.RECTANGLE, {x:0,y:0,w:13.3,h:7.5,fill:{color:WHITE},line:{color:WHITE}});

// ── TOP BAR + TITLE ──
s.addShape(pres.shapes.RECTANGLE, {x:0,y:0,w:13.3,h:0.08,fill:{color:"2E86C1"},line:{color:"2E86C1"}});
s.addText("Investigational Use of Drugs — Process Flowchart", {
  x:0.3,y:0.1,w:12.7,h:0.5,
  fontSize:18,bold:true,color:BLACK,fontFace:F,align:"center"
});
s.addShape(pres.shapes.RECTANGLE,{x:1.5,y:0.62,w:10.3,h:0.03,fill:{color:"2E86C1"},line:{color:"2E86C1"}});

// ── BOTTOM BAR ──
s.addShape(pres.shapes.RECTANGLE,{x:0,y:7.4,w:13.3,h:0.1,fill:{color:LGRAY},line:{color:LGRAY}});
s.addText("B.Pharmacy Final Year  |  Pharmacy Practice",{
  x:0,y:7.4,w:13.3,h:0.1,fontSize:7,color:"666666",align:"center",valign:"middle",fontFace:F
});

// ─────────────────────────────────────────────────────────────────────────────
// LAYOUT: Two columns of flow
//  LEFT column  (x ≈ 0.35):  Discovery → Pre-clinical → IND Application → IND Review
//  Then merges to CENTER for Phase I → II → III → NDA → FDA Review → Approval → Phase IV
// We'll do a single top-to-bottom vertical flow centered on the slide.
// ─────────────────────────────────────────────────────────────────────────────

// Helper: draw a rounded-rect process box
function box(x, y, w, h, label, sublabel, fill, lineColor) {
  s.addShape(pres.shapes.ROUNDED_RECTANGLE, {
    x, y, w, h,
    fill: { color: fill || COL.process },
    line: { color: lineColor || BORDER, pt: 1 },
    rectRadius: 0.08,
    shadow: { type:"outer", color:"CCCCCC", blur:3, offset:1, angle:135, opacity:0.25 }
  });
  if (sublabel) {
    s.addText(label, { x:x+0.06, y:y+0.04, w:w-0.12, h:h*0.48, fontSize:9.5, bold:true, color:BLACK, fontFace:F, align:"center", valign:"bottom", margin:0 });
    s.addText(sublabel, { x:x+0.06, y:y+h*0.5, w:w-0.12, h:h*0.46, fontSize:8.5, color:"333333", fontFace:F, align:"center", valign:"top", margin:0 });
  } else {
    s.addText(label, { x:x+0.06, y, w:w-0.12, h, fontSize:9.5, bold:true, color:BLACK, fontFace:F, align:"center", valign:"middle", margin:0 });
  }
}

// Helper: draw an oval (start/end)
function oval(x, y, w, h, label, fill) {
  s.addShape(pres.shapes.OVAL, {
    x, y, w, h,
    fill: { color: fill || COL.start },
    line: { color: BORDER, pt: 1.2 },
    shadow: { type:"outer", color:"CCCCCC", blur:3, offset:1, angle:135, opacity:0.25 }
  });
  s.addText(label, { x:x+0.05, y, w:w-0.1, h, fontSize:10, bold:true, color:BLACK, fontFace:F, align:"center", valign:"middle", margin:0 });
}

// Helper: diamond decision
function diamond(x, y, w, h, label, fill) {
  s.addShape(pres.shapes.DIAMOND, {
    x, y, w, h,
    fill: { color: fill || COL.decision },
    line: { color: BORDER, pt: 1 },
    shadow: { type:"outer", color:"CCCCCC", blur:3, offset:1, angle:135, opacity:0.25 }
  });
  s.addText(label, { x:x+0.06, y, w:w-0.12, h, fontSize:9, bold:true, color:BLACK, fontFace:F, align:"center", valign:"middle", margin:0 });
}

// Helper: downward arrow
function arrowDown(x, y, h, label) {
  s.addShape(pres.shapes.RECTANGLE, { x:x-0.01, y, w:0.04, h, fill:{color:COL.arrow}, line:{color:COL.arrow} });
  // arrowhead triangle
  s.addShape(pres.shapes.ISOSCELES_TRIANGLE, { x:x-0.09, y:y+h-0.01, w:0.22, h:0.14, fill:{color:COL.arrow}, line:{color:COL.arrow}, rotate:180 });
  if (label) {
    s.addText(label, { x:x+0.08, y:y+h/2-0.1, w:0.9, h:0.22, fontSize:8, color:"555555", fontFace:F, italic:true });
  }
}

// Helper: side arrow (right)
function arrowRight(x, y, w, label) {
  s.addShape(pres.shapes.RECTANGLE, { x, y:y-0.01, w, h:0.04, fill:{color:COL.arrow}, line:{color:COL.arrow} });
  s.addShape(pres.shapes.ISOSCELES_TRIANGLE, { x:x+w-0.01, y:y-0.09, w:0.14, h:0.22, fill:{color:COL.arrow}, line:{color:COL.arrow}, rotate:90 });
  if (label) {
    s.addText(label, { x:x+w/2-0.3, y:y-0.22, w:0.8, h:0.2, fontSize:7.5, color:"555555", fontFace:F, italic:true, align:"center" });
  }
}

// Helper: side arrow (left — for "Rejected" feedback)
function arrowLeft(x, y, w) {
  s.addShape(pres.shapes.RECTANGLE, { x, y:y-0.01, w, h:0.04, fill:{color:"CC0000"}, line:{color:"CC0000"} });
  s.addShape(pres.shapes.ISOSCELES_TRIANGLE, { x:x-0.13, y:y-0.09, w:0.14, h:0.22, fill:{color:"CC0000"}, line:{color:"CC0000"}, rotate:270 });
}

// ─────────────────────────────────────────────────────────────────────────────
// FLOWCHART NODES
// Layout: 3 columns flowing left→center→right in a Z/cascade pattern
// Left col x≈0.5, center x≈3.8, right col x≈9.2
// Vertical rows at y = 0.78, 1.62, 2.46, 3.30, 4.14, 4.98, 5.82, 6.55
// ─────────────────────────────────────────────────────────────────────────────

const BW = 2.55;  // box width
const BH = 0.62;  // box height
const DW = 2.3;   // diamond width
const DH = 0.72;  // diamond height

// ROW 1 — Start
const r1y = 0.78;
oval(5.4, r1y, 2.5, 0.52, "START: Drug Discovery / New Molecule Identified", "D6EAF8");

// Arrow down
arrowDown(6.65, r1y+0.52, 0.2);

// ROW 2 — Pre-clinical
const r2y = r1y + 0.52 + 0.2;
box(0.35, r2y, BW, BH, "Pre-Clinical Studies", "Animal pharmacology, toxicology\n& safety profiling", COL.process, BORDER);
box(5.4,  r2y, 2.5, BH, "Pre-Clinical Studies", "Pharmacology · Toxicology · CMC · Safety in animals", COL.process, BORDER);
box(10.6, r2y, BW, BH, "Outcome", "Sufficient safety data\nto justify human trials?", COL.decision, BORDER);

// Annotations left and right
s.addText("Key data collected:", {x:0.4,y:r2y+0.04,w:BW-0.1,h:0.22,fontSize:8.5,bold:true,color:BLACK,fontFace:F});
s.addText("• Pharmacokinetics (ADME)\n• Acute & chronic toxicity\n• Genotoxicity / Carcinogenicity\n• Reproductive toxicity",{x:0.4,y:r2y+0.25,w:BW-0.1,h:BH-0.28,fontSize:8,color:"333333",fontFace:F});

// Arrow from pre-clinical box to decision
arrowRight(7.9, r2y+BH/2, 0.5);
// Decision diamond replacing the box on right
diamond(10.3, r2y-0.05, DW+0.2, DH, "Data\nSufficient?", COL.decision);

// Arrow down from pre-clinical centre
arrowDown(6.65, r2y+BH, 0.22);

// ROW 3 — IND Application
const r3y = r2y + BH + 0.22;
box(5.4, r3y, 2.5, BH, "IND Application Filed", "Sponsor submits to FDA (21 CFR Part 312)", COL.process, "2E86C1");

// Side note
s.addText("IND must include:\n• Pre-clinical data\n• CMC information\n• Clinical protocol\n• Investigator credentials\n• Informed consent docs",{x:8.18,y:r3y,w:2.5,h:BH+0.1,fontSize:8.5,color:BLACK,fontFace:F,
  fill:{color:"EAF4FB"}, line:{color:BORDER,pt:0.5}
});
// bracket line connecting note to box
s.addShape(pres.shapes.RECTANGLE,{x:7.9,y:r3y+BH/2-0.01,w:0.28,h:0.04,fill:{color:BORDER},line:{color:BORDER}});

arrowDown(6.65, r3y+BH, 0.22);

// ROW 4 — FDA Review diamond
const r4y = r3y + BH + 0.22;
diamond(5.52, r4y, 2.26, DH, "FDA Review\n(30 days)", COL.decision);

// "Approved" arrow down
arrowDown(6.65, r4y+DH, 0.22);
s.addText("Approved /\nNo Objection",{x:6.72,y:r4y+DH/2,w:1.1,h:0.4,fontSize:8,color:"1A7E3C",fontFace:F,italic:true});

// "Rejected" arrow to left with label
arrowLeft(3.6, r4y+DH/2, 1.92);
s.addText("Rejected /\nMore Data",{x:3.55,y:r4y+DH/2-0.22,w:1.0,h:0.22,fontSize:8,color:"CC0000",fontFace:F,italic:true,align:"center"});

// ROW 5 — Phase I, II, III (horizontal flow)
const r5y = r4y + DH + 0.22;

box(0.35, r5y, BW, BH, "Phase I", "10–100 Healthy Volunteers\nSafety · Dose-finding · PK/PD", COL.phase1, "3BAA8C");
arrowRight(BW+0.35, r5y+BH/2, 0.25);
box(3.15, r5y, BW, BH, "Phase II", "50–500 Patients\nEfficacy signals + Safety", COL.phase2, "27AE60");
arrowRight(3.15+BW, r5y+BH/2, 0.25);
box(5.95, r5y, BW, BH, "Phase III", "Hundreds–Thousands Patients\nConfirm Efficacy & Safety\n(Randomised Controlled)", COL.phase3, "D4AC0D");
arrowRight(5.95+BW, r5y+BH/2, 0.25);
box(8.75, r5y, BW, BH, "NDA / BLA\nSubmission", "Sponsor submits to FDA\nwith full trial data", "FAE5D3", "E8873A");
arrowRight(8.75+BW, r5y+BH/2, 0.25);
// FDA Approval diamond
diamond(11.6, r5y-0.05, 1.5, DH, "FDA\nApproval?", COL.decision);

// Entry arrow from above into Phase I
arrowDown(1.67, r5y-0.22, 0.22);

// ROW 6 — Approved / Not Approved
const r6y = r5y + BH + 0.22;

// Arrow from approval diamond down-left to "Approved" box
// Arrow down from diamond (bottom)
arrowDown(12.35, r5y-0.05+DH, 0.22);
box(11.6, r6y, 1.7, BH, "APPROVED\nfor Marketing", "Drug enters\ncommercial market", COL.success, "1A7E3C");

// Not approved → back arrow  
s.addShape(pres.shapes.RECTANGLE,{x:11.55,y:r5y+DH/2-0.05,w:1.6,h:0.04,fill:{color:"CC0000"},line:{color:"CC0000"}});
s.addText("Not Approved",{x:11.58,y:r5y+DH/2-0.24,w:1.5,h:0.22,fontSize:7.5,color:"CC0000",fontFace:F,italic:true,align:"center"});

arrowDown(12.35, r6y+BH, 0.2);

// ROW 7 — Phase IV
const r7y = r6y + BH + 0.2;
box(11.6, r7y, 1.7, BH, "Phase IV\n(Post-Marketing)", "Real-world safety\nNew indications · Long-term data", COL.phase4, "D95B5B");

// ── Final END oval
arrowDown(12.35, r7y+BH, 0.16);
oval(11.3, r7y+BH+0.16, 2.1, 0.42, "ONGOING PHARMACOVIGILANCE", COL.start);

// ── LEGEND ──
s.addShape(pres.shapes.RECTANGLE,{x:0.3,y:6.42,w:8.5,h:0.9,fill:{color:LGRAY},line:{color:BORDER,pt:0.5}});
s.addText("LEGEND:", {x:0.45,y:6.48,w:0.9,h:0.2,fontSize:8.5,bold:true,color:BLACK,fontFace:F});

const legItems = [
  [COL.process,"Process / Step"],
  [COL.decision,"Decision"],
  [COL.phase1,"Phase I"],
  [COL.phase2,"Phase II"],
  [COL.phase3,"Phase III"],
  [COL.success,"Approved"],
  [COL.phase4,"Phase IV"],
];
legItems.forEach(([fill,label],i) => {
  const lx = 0.42 + i*1.18;
  s.addShape(pres.shapes.RECTANGLE,{x:lx,y:6.72,w:0.28,h:0.22,fill:{color:fill},line:{color:BORDER,pt:0.5}});
  s.addText(label,{x:lx+0.32,y:6.72,w:0.85,h:0.22,fontSize:8,color:BLACK,fontFace:F,valign:"middle"});
});

// ─── WRITE ────────────────────────────────────────────────────────────────────
pres.writeFile({ fileName:"/home/daytona/workspace/investigational-drug-ppt/Investigational_Drug_Flowchart.pptx" })
  .then(()=>console.log("SUCCESS"))
  .catch(e=>console.error("ERROR:",e));
Running Command

cd /home/daytona/workspace/investigational-drug-ppt && node flowchart.js 2>&1

Running Command

ls -lh /home/daytona/workspace/investigational-drug-ppt/Investigational_Drug_Flo…

Your flowchart is ready! Download it here:

Investigational Drug Flowchart

Presentation · PPTX


Here's what the flowchart contains on 1 slide (white background, black text, Times New Roman):
Flow sequence:
START (Oval)
     ↓
Pre-Clinical Studies
(Pharmacology · Toxicology · CMC · Animal Safety)
     ↓
IND Application Filed → [side note: what IND must include]
     ↓
FDA Review — 30 days (Diamond)
  ↙ Approved          ↖ Rejected (red arrow back)
     ↓
Phase I → Phase II → Phase III → NDA/BLA Submission → FDA Approval? (Diamond)
                                                          ↓ Approved
                                                    APPROVED for Marketing
                                                          ↓
                                                  Phase IV (Post-Marketing)
                                                          ↓
                                           ONGOING PHARMACOVIGILANCE (Oval)
Design: Colour-coded pastel fills per phase (mint for Phase I, green for II, gold for III, rose for Phase IV), decision diamonds in yellow, arrows in blue, rejected paths in red, with a colour legend at the bottom.
This is a shared conversation. Sign in to Orris to start your own chat.