> ## Documentation Index
> Fetch the complete documentation index at: https://ekacare-mintlify-changelog-update-1777079450.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# EMR Changelog

> Updates and improvements to the Eka EMR platform — patient records, prescriptions, billing, and workflows.

export const SubscribeForm = () => {
  const [email, setEmail] = useState("");
  const [status, setStatus] = useState("idle");
  const handleSubmit = e => {
    e.preventDefault();
    const trimmed = email.trim();
    if (!trimmed || !trimmed.includes("@")) {
      setStatus("error");
      return;
    }
    window.open("http://eepurl.com/i3Lz2E", "_blank");
    setStatus("success");
    setEmail("");
  };
  return <div style={{
    background: "#E1F5EE",
    border: "1px solid #5DCAA5",
    borderRadius: "12px",
    padding: "20px 24px",
    marginBottom: "28px"
  }}>
      <div style={{
    fontSize: "15px",
    fontWeight: "600",
    color: "#085041",
    marginBottom: "4px"
  }}>
        Get weekly developer updates in your inbox
      </div>
      <div style={{
    fontSize: "13px",
    color: "#0F6E56",
    marginBottom: "14px",
    lineHeight: "1.5"
  }}>
        New features, SDK releases, API changes, and bug fixes — delivered every week. No spam. Unsubscribe anytime.
      </div>
      {status === "success" ? <div style={{
    background: "#0F4C3A",
    color: "white",
    borderRadius: "8px",
    padding: "10px 16px",
    fontSize: "13px"
  }}>
          ✓ Check your inbox to confirm your subscription.
        </div> : <form onSubmit={handleSubmit} style={{
    display: "flex",
    gap: "8px",
    flexWrap: "wrap"
  }}>
          <input type="email" value={email} onChange={e => {
    setEmail(e.target.value);
    setStatus("idle");
  }} placeholder="your@email.com" required style={{
    flex: "1",
    minWidth: "200px",
    height: "38px",
    border: status === "error" ? "1.5px solid #E24B4A" : "1.5px solid #5DCAA5",
    borderRadius: "8px",
    padding: "0 14px",
    fontSize: "13px",
    color: "#111",
    background: "white",
    outline: "none"
  }} />
          <button type="submit" style={{
    height: "38px",
    background: "#0F4C3A",
    color: "white",
    border: "none",
    borderRadius: "8px",
    padding: "0 20px",
    fontSize: "13px",
    fontWeight: "500",
    cursor: "pointer",
    whiteSpace: "nowrap"
  }}>
            Subscribe →
          </button>
        </form>}
      {status === "error" && <div style={{
    fontSize: "11px",
    color: "#E24B4A",
    marginTop: "6px"
  }}>
          Please enter a valid email address.
        </div>}
      <div style={{
    fontSize: "11px",
    color: "#0F6E56",
    marginTop: "8px",
    opacity: "0.75"
  }}>
        Powered by Mailchimp · Your data is safe with us
      </div>
    </div>;
};

<SubscribeForm />

<Update
  label="April 22, 2026"
  description="April 22, 2026"
  tags={["Update", "Fix"]}
  rss={{
title: "EMR — April 22, 2026",
description: "• Lab vitals display-name fallback in prescription PDFs\n\n• IPD admission notes now render as rich text\n\nRead more: https://developer.eka.care/emr-changelog"
}}
>
  ## Improved

  * **\[EMR] Lab vitals display-name fallback** — Investigative readings tables in prescription PDFs now use `unit_dislay_name` when present and fall back to `name`, ensuring lab vitals print with their preferred display label. [View docs](/integrations/core-emr/prescription)

  ## Fixed

  * **\[EMR] IPD admission notes rich-text rendering** — IPD admission notes that contain HTML (entered via the rich-text editor) now render inside a `tiny-mce` styled block in printed prescriptions, preserving formatting that previously rendered as a plain `<span>`. [View docs](/integrations/core-emr/prescription)
</Update>

<Update
  label="April 21, 2026"
  description="April 21, 2026"
  tags={["Update", "Fix"]}
  rss={{
title: "EMR — April 21, 2026",
description: "• Prescription QR code moved into footer details block\n\n• Android document UI guards PDF reader against zero-width layout\n\nRead more: https://developer.eka.care/emr-changelog"
}}
>
  ## Improved

  * **\[EMR] Prescription footer QR placement** — The QR code in prescription PDF custom footers has been relocated into the footer details block so it consistently aligns with signature, page number, and approval text instead of floating outside the bordered region. [View docs](/integrations/core-emr/prescription)

  ## Fixed

  * **\[EMR] Android document UI PDF reader stability** — The `VerticalPDFReader` in the Android document UI is now wrapped in a `BoxWithConstraints` and only initializes once `constraints.maxWidth > 0`, preventing initialization crashes when the reader is mounted before its parent has been laid out. Applied to both `RecordPreviewComponents` and `AddRecordPreviewScreen`.
</Update>

<Update
  label="April 20, 2026"
  description="April 20, 2026"
  tags={["Feature"]}
  rss={{
title: "EMR — April 20, 2026",
description: "• Diet chart rendering added to prescription PDFs\n\n• Configurable IPD admission printing block introduced\n\nRead more: https://developer.eka.care/emr-changelog"
}}
>
  ## Added

  * **\[EMR] Diet chart rendering in prescription PDFs** — Prescription PDFs now render diet charts as a top-level pad element when `tool.apps.dietChart` is present, injecting the stored HTML content directly into the document. [View docs](/integrations/core-emr/prescription)

  * **\[EMR] Configurable IPD admission printing** — Prescription templates accept a new `admissionToIPDPrintConfig` block with `entity` and `printOnlyWhenAdvised` flags, and the `IpdAdmission` payload now supports a `notes_html` field for rich-text admission notes. [View docs](/integrations/core-emr/prescription)
</Update>

<Update
  label="April 15, 2026"
  description="April 15, 2026"
  tags={["Update"]}
  rss={{
title: "EMR — April 15, 2026",
description: "• Prescription PDF cache busting and configurable signatures\n\n• Eye exam ordering fix in prescription PDFs\n\n• Patient Directory API extras field restrictions documented\n\nRead more: https://developer.eka.care/emr-changelog"
}}
>
  ## Improved

  * **\[EMR] Prescription PDF asset loading** — S3-hosted assets such as doctor signatures in prescription PDFs now include cache-busting query parameters, preventing stale cached versions from appearing. Signature display is also now controlled by a `show_signature` configuration flag for more flexible template rendering. [View docs](/integrations/core-emr/prescription)

  * **\[EMR] Eye exam ordering in prescription PDFs** — Ophthalmology examination tables in prescription PDFs now render in the correct display order, ensuring eye-care data appears consistently across generated documents. [View docs](/integrations/core-emr/prescription)

  * **\[EMR] Patient Directory API extras field** — The `extras` field in the Update EMR User endpoint now documents restrictions: no nested lists, no dictionaries inside lists, only one level of nesting in dictionaries, keys must not exceed 16 characters, and keys starting with `_` are ignored. [View docs](/api-reference/doc-tool/patient-directory-apis/update-emr-user)
</Update>

<Update
  label="April 14, 2026"
  description="April 14, 2026"
  tags={["Update"]}
  rss={{
title: "EMR — April 14, 2026",
description: "• Prescription PDF template engine — Configurable template styles for custom prescription PDF layouts.\n\nRead more: https://developer.eka.care/emr-changelog"
}}
>
  ## Improved

  * **\[Client-Specific] Prescription PDF template engine** — Added support for configurable prescription template styles, enabling custom PDF layouts that map clinical data (symptoms, history, vitals, medications, investigations, diagnosis, advices, review, and signature) to form-specific positions. A new `template_style` configuration option controls which layout is applied during PDF generation.
</Update>

<Update
  label="April 13, 2026"
  description="April 9–13"
  tags={["Update", "Fix"]}
  rss={{
title: "EMR — April 9–13, 2026",
description: "• IPD billing PDFs now show Total Paid and Amount Due labels\n\n• OPD slips display tags and increased token font size\n\n• Medical Records Android SDK validates oversized images and resolves PDFs off the main thread\n\n• Health Records Android SDK handles missing files during record processing\n\nRead more: https://developer.eka.care/emr-changelog"
}}
>
  ## Improved

  * **IPD billing PDF layout** — The pricing summary in IPD billing PDFs now displays Total Paid and Amount Due/Overpaid labels, replacing the previous single "Amount to be paid" line for clearer printed output. [View docs](/integrations/core-emr/payments)

  * **OPD slip enhancements** — OPD slips now print tags and additional data fields, and the token number font size has been increased for better readability at the front desk.

  * **Medical Records Android SDK** — Oversized images are now validated before upload with a clear user alert, and PDF URI resolution has been moved to a background thread to prevent main-thread crashes.

  ## Fixed

  * **Health Records Android SDK** — Missing files during record processing are now handled gracefully instead of causing crashes, with improved error handling in MD5 checksum generation.
</Update>
