> ## Documentation Index
> Fetch the complete documentation index at: https://ekacare-mintlify-dfb0ffc0.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="May 7, 2026"
  description="May 7, 2026"
  tags={["Update"]}
  rss={{
title: "EMR — May 7, 2026",
description: "• Templar receipt printing now uses a full patient age string (years and months) instead of years-only — note this is a breaking change to the TPdfObject type\n\nRead more: https://developer.eka.care/emr-changelog"
}}
>
  ## ⚠️ Breaking

  * **\[EMR] Templar receipt patient age field** — The `TPdfObject` type used by `getPatientIntroForReceipt` replaces the numeric `ageInM?: number` field with a string `age?: string`. Callers must now pass a pre-formatted age (for example, `"5 Years 3 Months"`) instead of months as an integer; the previous "compute years from months" behaviour has been removed in favour of richer year-and-month rendering. Update any caller that was passing `ageInM` to pass `age` instead.

  ## Improved

  * **\[EMR] Patient age rendering on receipts** — `getPatientIntroForReceipt` now prints the patient's full age string (years and months) on receipts instead of computing only whole years from months, giving a more clinically meaningful age label.
</Update>

<Update
  label="May 6, 2026"
  description="May 6, 2026"
  tags={["Feature"]}
  rss={{
title: "EMR — May 6, 2026",
description: "• Health Records Android and Document UI introduce an analysing-state UI for parsed records\n\nRead more: https://developer.eka.care/emr-changelog"
}}
>
  ## Added

  * **\[EMR] Analysing UI in Health Records Android and Document UI** — The Eka Health Records Android SDK and `android-document-ui` module introduce an "analysing" state UI for documents under processing, surfacing parse-in-progress to end users instead of leaving the document in an ambiguous state. Internal core SDK contracts were adapted to drive the new UI cleanly. [View docs](/SDKs/android/medical-records)
</Update>

<Update
  label="May 5, 2026"
  description="May 5, 2026"
  tags={["Update"]}
  rss={{
title: "EMR — May 5, 2026",
description: "• IPD billing print now shows Total Amount, Total Discount, and Grand Total with quantity-aware MRP\n\nRead more: https://developer.eka.care/emr-changelog"
}}
>
  ## Improved

  * **\[EMR] IPD billing print totals** — The IPD billing print template (`getBodyForIpdBilling`) now computes Total Amount as `Σ(MRP × Qty)`, derives Total Discount from the difference with the line-item-discounted total, and renders an explicit Grand Total alongside Total Paid and amount due. The output replaces the previous Total MRP / Line Item Discount / Total Amount layout with a clearer Total Amount / Total Discount / Grand Total breakdown.
</Update>

<Update
  label="May 1, 2026"
  description="May 1, 2026"
  tags={["Feature", "Update"]}
  rss={{
title: "EMR — May 1, 2026",
description: "• Templar prescription engine adds pageBreakTableTr support in getHead\n\n• Diet chart authoring extended with additional structure\n\nRead more: https://developer.eka.care/emr-changelog"
}}
>
  ## Added

  * **\[EMR] pageBreakTableTr in Templar getHead** — The `getHead` helper in the Templar prescription engine now supports `pageBreakTableTr`, allowing template authors to declare table-row level page breaks for cleaner multi-page prescription rendering.

  ## Improved

  * **\[EMR] Diet chart authoring in Templar** — Diet chart support in the Templar prescription engine has been extended with additional structure and rendering refinements, building on the diet chart sections introduced on April 22.
</Update>

<Update
  label="April 29, 2026"
  description="April 29, 2026"
  tags={["Update"]}
  rss={{
title: "EMR — April 29, 2026",
description: "• IPD receipt and bill print now use doctor profile first/last name fields\n\nRead more: https://developer.eka.care/emr-changelog"
}}
>
  ## Improved

  * **\[EMR] Doctor name on IPD receipts and bills** — IPD receipt and bill print output now uses the doctor profile's first-name and last-name fields directly instead of a single concatenated string, giving cleaner, more consistent doctor-name rendering across IPD billing artifacts.
</Update>

<Update
  label="April 28, 2026"
  description="April 28, 2026"
  tags={["Feature", "Fix"]}
  rss={{
title: "EMR — April 28, 2026",
description: "• Patient Directory TS SDK adds forceApiSearch and fixes stale-cache lookup edge cases\n\nRead more: https://developer.eka.care/emr-changelog"
}}
>
  ## Added

  * **\[EMR] forceApiSearch flag in Patient Directory TS SDK** — The Patient Directory TypeScript SDK now exposes a `forceApiSearch` option, letting integrators bypass the local cache and force a live API lookup for patient search — useful for high-confidence lookups where freshness must beat latency.

  ## Fixed

  * **\[EMR] Patient Directory TS SDK lookup correctness** — Resolved an edge case in the Patient Directory TypeScript SDK where stale or partial cached state could surface incorrect patient search results; lookups now consistently reflect the live directory.
</Update>

<Update
  label="April 27, 2026"
  description="April 27, 2026"
  tags={["Update"]}
  rss={{
title: "EMR — April 27, 2026",
description: "• OPD slip prints now include the clinic name\n\nRead more: https://developer.eka.care/emr-changelog"
}}
>
  ## Improved

  * **\[EMR] Clinic name on OPD slip** — The Templar OPD slip print template now renders the clinic name in the slip header, improving identifiability of the issuing clinic on physical copies.
</Update>

<Update
  label="April 22, 2026"
  description="April 22, 2026"
  tags={["Feature", "Update", "Fix"]}
  rss={{
title: "EMR — April 22, 2026",
description: "• Diet charts added to prescription templates\n\n• Prescription rx and labVitals render unit_display_name with name fallback\n\n• IPD admission TinyMCE preview fix\n\nRead more: https://developer.eka.care/emr-changelog"
}}
>
  ## Added

  * **\[EMR] Diet charts in prescription templates** — The Templar prescription engine now supports diet chart sections, enabling structured diet plans to be authored and rendered alongside prescriptions.

  ## Improved

  * **\[EMR] Unit display name fallback in prescriptions** — Prescription `rx` and `labVitals` sections now render `unit_display_name` when available and fall back to `name`, producing cleaner unit labels on printed prescriptions.

  ## Fixed

  * **\[EMR] IPD admission TinyMCE preview** — Fixed a rendering bug where the IPD admission rich-text preview was showing stale or malformed HTML in the prescription template engine.
</Update>

<Update
  label="April 21, 2026"
  description="April 21, 2026"
  tags={["Update"]}
  rss={{
title: "EMR — April 21, 2026",
description: "• Prescription QR code moved to footer details\n\nRead more: https://developer.eka.care/emr-changelog"
}}
>
  ## Changed

  * **\[EMR] Prescription QR placement** — The QR code on prescription PDFs has been moved into the footer details block for a cleaner header and consistent placement across templates.
</Update>

<Update
  label="April 20, 2026"
  description="April 20, 2026"
  tags={["Feature"]}
  rss={{
title: "EMR — April 20, 2026",
description: "• IPD admission template upgrades\n\nRead more: https://developer.eka.care/emr-changelog"
}}
>
  ## Added

  * **\[EMR] IPD admission template upgrades** — The prescription engine adds new fields and layout improvements to the IPD admission template, supporting richer admission notes.
</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>
