{"id":82,"date":"2026-09-24T06:32:59","date_gmt":"2026-09-24T06:32:59","guid":{"rendered":"https:\/\/ratnaglobaltech.com\/blog\/?p=82"},"modified":"2026-10-07T12:07:23","modified_gmt":"2026-10-07T12:07:23","slug":"how-healthplex-stays-one-product-while-each-hospital-gets-its-own","status":"publish","type":"post","link":"https:\/\/ratnaglobaltech.com\/blog\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\/","title":{"rendered":"The Power of One Platform, Personalized for Every Hospital"},"content":{"rendered":"\n<p class=\"has-small-font-size wp-block-paragraph\"><em>Padmavathi Sanapala, CTO and Chief Architect, <\/em><a href=\"https:\/\/ratnaglobaltech.com\/\" data-type=\"link\" data-id=\"https:\/\/ratnaglobaltech.com\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>RatnaGlobalTech<\/em>, <\/a><em><a href=\"https:\/\/www.linkedin.com\/in\/padmakilli\/\" target=\"_blank\" rel=\"noreferrer noopener\">LinkedIn profile<\/a><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Two hospitals went live on Ratna HealthPlex within a few weeks of each other. One was a two-branch eye care centre that wanted thirteen modules on day one, package billing for cataract and refractive procedures, and receipts that looked exactly like the ones its patients had carried home for a decade. The other was a multi-specialty hospital that wanted OPD and pharmacy first, itemised billing, two users, and a one-week trial before signing anything.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The easy engineering answer to that pair is a fork. Copy the repository, change what the second hospital needs, deploy it separately. Everyone who has run a product company knows how that ends. Within a year there are two products, each with half the testing, and a third customer who needs a bit of both.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We did not fork. This post is about the architecture that lets one build serve both hospitals, and the forty that come after them, without a single <code>if (tenant == ...)<\/code> in the code.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tenant is a request property, not a deployment<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A tenant in HealthPlex is a legal entity: the hospital, the group, the agency that signed the contract. A facility is a physical site under that tenant. The eye care centre is one tenant with two facilities. A hospital chain acquiring sites across the country is one tenant with a growing list.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Every request carries this context. The API gateway validates the JWT, resolves the tenant, facility and roles from the identity provider, and stamps <code>X-Tenant-Id<\/code> and <code>X-Facility-Id<\/code> on every downstream hop. The sixteen-plus Java 21 Spring Boot services behind the gateway never look at the token again. They read the headers, and the Feign clients they use to call each other forward the headers automatically.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A request that arrives at a service without a tenant header is rejected. It is never defaulted to a &#8220;system&#8221; tenant, never guessed from the data, never allowed through because the caller was internal. That one rule has caught more bugs in review than any other.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"981\" height=\"637\" src=\"https:\/\/ratnaglobaltech.com\/blog\/wp-content\/uploads\/2026\/09\/Every-hospital-gets-its-own.png\" alt=\"\" class=\"wp-image-83\" srcset=\"https:\/\/ratnaglobaltech.com\/blog\/wp-content\/uploads\/2026\/09\/Every-hospital-gets-its-own.png 981w, https:\/\/ratnaglobaltech.com\/blog\/wp-content\/uploads\/2026\/09\/Every-hospital-gets-its-own-300x195.png 300w, https:\/\/ratnaglobaltech.com\/blog\/wp-content\/uploads\/2026\/09\/Every-hospital-gets-its-own-767x498.png 767w\" sizes=\"auto, (max-width: 981px) 100vw, 981px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Isolation is enforced where the data lives<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Application code forgets. A new developer writes a query, tests it against a single-tenant dev database, and ships a report that leaks one hospital&#8217;s revenue to another. Every multi-tenant product that has had a data incident has had one of these.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So the isolation is not in the application. Every table carries <code>tenant_id<\/code>. PostgreSQL row-level security policies enforce it at the database, using a session variable the service sets from the request header before the first query. A Hibernate filter enforces it a second time inside the ORM. A query that forgets the tenant returns nothing, not everything.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The same rule extends outward. Identifiers live in a separate PII vault with per-tenant encryption keys held in a KMS; the clinical tables carry tokens, not names. Documents and images sit in object storage under a tenant prefix. Configuration lives in its own versioned store with tenant and facility overrides, and every change is audited.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sixteen services each own their schema, migrated with Flyway. Tenant onboarding does not create a new database. It inserts a tenant row, runs the specialty pack, and the platform is ready for the first user.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The difference between two hospitals is always a configuration key<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the rule that makes the rest work. If two hospitals need different behaviour, that difference is a key with a default value, never a branch in code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Configuration resolves in five layers, in a fixed order:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Platform defaults.<\/strong> Every key has a value on day one. Nothing is required to run.<\/li>\n\n\n\n<li><strong>Specialty pack.<\/strong> Eye care, dental, behavioral health, occupational health, hospice. Each pack ships tested clinical templates, billing rules and module lists. The eye care pack turns billing to package mode and adds the optical module.<\/li>\n\n\n\n<li><strong>Tenant override.<\/strong> The hospital&#8217;s own commercial and clinical decisions, signed off during onboarding. Revisit-free window of seven days. Doctor revenue share on. Receipt template version three.<\/li>\n\n\n\n<li><strong>Facility override.<\/strong> A branch can differ from head office where it must, and only there. The Bareilly branch extends the revisit-free window to fourteen days and prints on a thermal printer.<\/li>\n\n\n\n<li><strong>Effective configuration.<\/strong> Resolved at login, cached per session, versioned. Every read is traceable to the layer that set it.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"986\" height=\"551\" src=\"https:\/\/ratnaglobaltech.com\/blog\/wp-content\/uploads\/2026\/09\/Code-stays-the-same.png\" alt=\"\" class=\"wp-image-84\" srcset=\"https:\/\/ratnaglobaltech.com\/blog\/wp-content\/uploads\/2026\/09\/Code-stays-the-same.png 986w, https:\/\/ratnaglobaltech.com\/blog\/wp-content\/uploads\/2026\/09\/Code-stays-the-same-300x168.png 300w, https:\/\/ratnaglobaltech.com\/blog\/wp-content\/uploads\/2026\/09\/Code-stays-the-same-768x429.png 768w\" sizes=\"auto, (max-width: 986px) 100vw, 986px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The consumers of that effective configuration are everywhere: the UI module registry that decides what appears in the sidebar and for which roles, the billing rules engine, the print templates for receipts and discharge summaries, the notification templates in each language, the workflow definitions that decide which gates fire at registration and discharge, and the jurisdiction pack that loads HIPAA or DPDP rules for consent and retention.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A worked example. A receptionist at the multi-specialty hospital was confused by a negative refund figure on the front office overview screen. Pharmacy was fine with negatives; the receptionist was not. The fix was not a special case for that hospital. It was a platform rule, expressed as configuration: printed documents show the real signed value, because a receipt that says the hospital owes the patient money must say so, while overview screens never show a minus sign and instead show billed, refunds and net as three positive columns. The split is by artifact type, not by module or user, and every tenant inherited it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">One shared UI<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The frontend is a single React 18 and TypeScript build. It does not know which hospital it is serving until the user logs in and the tenant configuration arrives.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">From that configuration it assembles itself. The module registry decides which modules load. Capability flags decide which actions appear inside them. Theme tokens set the colours, the logo and the typography. Schema-driven forms render registration, intake and clinical templates from definitions rather than hand-coded screens, which is how the eye care centre gets an ophthalmology exam sheet and the dental clinic gets a tooth chart from the same codebase. Print templates come from the same store.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We looked hard at how other products solve this. OpenMRS 3 registers frontend modules dynamically. Medplum drives its forms from FHIR Questionnaires. Both confirmed the direction: the UI is a runtime composition of registered pieces, and the registry is data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The field app for home health and hospice, built in React Native, reads the same configuration endpoint. A nurse&#8217;s visit form on a phone in Brooklyn and a receptionist&#8217;s screen in Ghaziabad are shaped by the same resolver.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Roles are scoped to the tenant, then the facility<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">RBAC in a multi-tenant clinical system has to answer two questions on every action: is this role allowed to do this, and is this user allowed to do it here. Roles are composed of permissions and scoped twice, to the tenant and to the facility. A doctor with admitting rights at the Delhi branch has none at Bareilly unless the tenant says so.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The scoping is real, not cosmetic. In the security assurance build we ship to every prospect, the auditor persona is read-only and the security engineer cannot accept a risk finding. Those are not UI hints. The API refuses.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What this costs and what it buys<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Layered configuration is slower to build than a fork. The first specialty pack took longer than a copy of the repository would have. The configuration store, the resolver, the audit of configuration changes, the schema-driven forms: none of it ships a feature a customer asked for by name.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What it buys is one build, one deploy, one release note, and one test suite that runs against every tenant&#8217;s configuration before a release. When the behavioral health agency in Texas needed Medicaid unit authorizations tracked against every session, that became a specialty pack. The eye care centre got the same release with the pack turned off and never noticed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A fork is a second product with half the testing. Layered configuration is one product with a thousand shapes. If you are evaluating a hospital platform, ask the vendor how their two most different customers run on the same release. If the answer involves a branch name, you have your answer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Padmavathi Sanapala, CTO and Chief Architect, RatnaGlobalTech, LinkedIn profile Two hospitals went live on Ratna HealthPlex &hellip; <a title=\"The Power of One Platform, Personalized for Every Hospital\" class=\"hm-read-more\" href=\"https:\/\/ratnaglobaltech.com\/blog\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\/\"><span class=\"screen-reader-text\">The Power of One Platform, Personalized for Every Hospital<\/span>Read more<\/a><\/p>\n","protected":false},"author":4,"featured_media":85,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[4],"tags":[31,30,32,33,27,26,28,29],"class_list":["post-82","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ratna-healthplex","tag-effective-configuration","tag-facility-override","tag-hipaa-or-dpdp","tag-multi-specialty-hospital","tag-platform-defaults","tag-ratna-healthplex","tag-specialty-pack","tag-tenant-override"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>how HealthPlex stays one product while each hospital gets its own<\/title>\n<meta name=\"description\" content=\"One codebase, every hospital: how HealthPlex stays one product while each hospital gets its own\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ratnaglobaltech.com\/blog\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"how HealthPlex stays one product while each hospital gets its own\" \/>\n<meta property=\"og:description\" content=\"One codebase, every hospital: how HealthPlex stays one product while each hospital gets its own\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ratnaglobaltech.com\/blog\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\/\" \/>\n<meta property=\"og:site_name\" content=\"Ratna Global Technologies\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-24T06:32:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-07T12:07:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ratnaglobaltech.com\/blog\/wp-content\/uploads\/2026\/09\/codebase-every-hospital.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"547\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Padmavathi Sanapala\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Padmavathi Sanapala\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\\\/\"},\"author\":{\"name\":\"Padmavathi Sanapala\",\"@id\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/#\\\/schema\\\/person\\\/079a2526eea635c9b56d7c87949099b7\"},\"headline\":\"The Power of One Platform, Personalized for Every Hospital\",\"datePublished\":\"2026-09-24T06:32:59+00:00\",\"dateModified\":\"2026-10-07T12:07:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\\\/\"},\"wordCount\":1349,\"publisher\":{\"@id\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/codebase-every-hospital.jpg\",\"keywords\":[\"Effective configuration\",\"Facility override\",\"HIPAA or DPDP\",\"multi-specialty hospital\",\"Platform defaults\",\"Ratna HealthPlex\",\"Specialty pack\",\"Tenant override\"],\"articleSection\":[\"Ratna HealthPlex\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\\\/\",\"url\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\\\/\",\"name\":\"how HealthPlex stays one product while each hospital gets its own\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/codebase-every-hospital.jpg\",\"datePublished\":\"2026-09-24T06:32:59+00:00\",\"dateModified\":\"2026-10-07T12:07:23+00:00\",\"description\":\"One codebase, every hospital: how HealthPlex stays one product while each hospital gets its own\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/codebase-every-hospital.jpg\",\"contentUrl\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/codebase-every-hospital.jpg\",\"width\":1000,\"height\":547,\"caption\":\"how HealthPlex stays one product while each hospital gets its own\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Power of One Platform, Personalized for Every Hospital\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/\",\"name\":\"Ratna Global Technologies\",\"description\":\"Enabling enterprises to become intelligent and futuristic\",\"publisher\":{\"@id\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/#organization\",\"name\":\"Ratna Global Tech\",\"alternateName\":\"Ratna Global Tech\",\"url\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/cropped-favicon.png\",\"contentUrl\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/cropped-favicon.png\",\"width\":512,\"height\":512,\"caption\":\"Ratna Global Tech\"},\"image\":{\"@id\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/#\\\/schema\\\/person\\\/079a2526eea635c9b56d7c87949099b7\",\"name\":\"Padmavathi Sanapala\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2eaf7e064925d76bbdede30d448b41bb2bc6eb866a4af508f3b0ebbf4b7c45aa?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2eaf7e064925d76bbdede30d448b41bb2bc6eb866a4af508f3b0ebbf4b7c45aa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2eaf7e064925d76bbdede30d448b41bb2bc6eb866a4af508f3b0ebbf4b7c45aa?s=96&d=mm&r=g\",\"caption\":\"Padmavathi Sanapala\"},\"description\":\"CTO and ChiefArchitect, RatnaGlobalTech.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/padmakilli\\\/\"],\"url\":\"https:\\\/\\\/ratnaglobaltech.com\\\/blog\\\/author\\\/padmavathi\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"how HealthPlex stays one product while each hospital gets its own","description":"One codebase, every hospital: how HealthPlex stays one product while each hospital gets its own","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ratnaglobaltech.com\/blog\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\/","og_locale":"en_US","og_type":"article","og_title":"how HealthPlex stays one product while each hospital gets its own","og_description":"One codebase, every hospital: how HealthPlex stays one product while each hospital gets its own","og_url":"https:\/\/ratnaglobaltech.com\/blog\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\/","og_site_name":"Ratna Global Technologies","article_published_time":"2026-09-24T06:32:59+00:00","article_modified_time":"2026-10-07T12:07:23+00:00","og_image":[{"width":1000,"height":547,"url":"https:\/\/ratnaglobaltech.com\/blog\/wp-content\/uploads\/2026\/09\/codebase-every-hospital.jpg","type":"image\/jpeg"}],"author":"Padmavathi Sanapala","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Padmavathi Sanapala","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ratnaglobaltech.com\/blog\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\/#article","isPartOf":{"@id":"https:\/\/ratnaglobaltech.com\/blog\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\/"},"author":{"name":"Padmavathi Sanapala","@id":"https:\/\/ratnaglobaltech.com\/blog\/#\/schema\/person\/079a2526eea635c9b56d7c87949099b7"},"headline":"The Power of One Platform, Personalized for Every Hospital","datePublished":"2026-09-24T06:32:59+00:00","dateModified":"2026-10-07T12:07:23+00:00","mainEntityOfPage":{"@id":"https:\/\/ratnaglobaltech.com\/blog\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\/"},"wordCount":1349,"publisher":{"@id":"https:\/\/ratnaglobaltech.com\/blog\/#organization"},"image":{"@id":"https:\/\/ratnaglobaltech.com\/blog\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\/#primaryimage"},"thumbnailUrl":"https:\/\/ratnaglobaltech.com\/blog\/wp-content\/uploads\/2026\/09\/codebase-every-hospital.jpg","keywords":["Effective configuration","Facility override","HIPAA or DPDP","multi-specialty hospital","Platform defaults","Ratna HealthPlex","Specialty pack","Tenant override"],"articleSection":["Ratna HealthPlex"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/ratnaglobaltech.com\/blog\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\/","url":"https:\/\/ratnaglobaltech.com\/blog\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\/","name":"how HealthPlex stays one product while each hospital gets its own","isPartOf":{"@id":"https:\/\/ratnaglobaltech.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ratnaglobaltech.com\/blog\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\/#primaryimage"},"image":{"@id":"https:\/\/ratnaglobaltech.com\/blog\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\/#primaryimage"},"thumbnailUrl":"https:\/\/ratnaglobaltech.com\/blog\/wp-content\/uploads\/2026\/09\/codebase-every-hospital.jpg","datePublished":"2026-09-24T06:32:59+00:00","dateModified":"2026-10-07T12:07:23+00:00","description":"One codebase, every hospital: how HealthPlex stays one product while each hospital gets its own","breadcrumb":{"@id":"https:\/\/ratnaglobaltech.com\/blog\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ratnaglobaltech.com\/blog\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ratnaglobaltech.com\/blog\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\/#primaryimage","url":"https:\/\/ratnaglobaltech.com\/blog\/wp-content\/uploads\/2026\/09\/codebase-every-hospital.jpg","contentUrl":"https:\/\/ratnaglobaltech.com\/blog\/wp-content\/uploads\/2026\/09\/codebase-every-hospital.jpg","width":1000,"height":547,"caption":"how HealthPlex stays one product while each hospital gets its own"},{"@type":"BreadcrumbList","@id":"https:\/\/ratnaglobaltech.com\/blog\/how-healthplex-stays-one-product-while-each-hospital-gets-its-own\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ratnaglobaltech.com\/blog\/"},{"@type":"ListItem","position":2,"name":"The Power of One Platform, Personalized for Every Hospital"}]},{"@type":"WebSite","@id":"https:\/\/ratnaglobaltech.com\/blog\/#website","url":"https:\/\/ratnaglobaltech.com\/blog\/","name":"Ratna Global Technologies","description":"Enabling enterprises to become intelligent and futuristic","publisher":{"@id":"https:\/\/ratnaglobaltech.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ratnaglobaltech.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ratnaglobaltech.com\/blog\/#organization","name":"Ratna Global Tech","alternateName":"Ratna Global Tech","url":"https:\/\/ratnaglobaltech.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ratnaglobaltech.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/ratnaglobaltech.com\/blog\/wp-content\/uploads\/2026\/10\/cropped-favicon.png","contentUrl":"https:\/\/ratnaglobaltech.com\/blog\/wp-content\/uploads\/2026\/10\/cropped-favicon.png","width":512,"height":512,"caption":"Ratna Global Tech"},"image":{"@id":"https:\/\/ratnaglobaltech.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/ratnaglobaltech.com\/blog\/#\/schema\/person\/079a2526eea635c9b56d7c87949099b7","name":"Padmavathi Sanapala","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2eaf7e064925d76bbdede30d448b41bb2bc6eb866a4af508f3b0ebbf4b7c45aa?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2eaf7e064925d76bbdede30d448b41bb2bc6eb866a4af508f3b0ebbf4b7c45aa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2eaf7e064925d76bbdede30d448b41bb2bc6eb866a4af508f3b0ebbf4b7c45aa?s=96&d=mm&r=g","caption":"Padmavathi Sanapala"},"description":"CTO and ChiefArchitect, RatnaGlobalTech.","sameAs":["https:\/\/www.linkedin.com\/in\/padmakilli\/"],"url":"https:\/\/ratnaglobaltech.com\/blog\/author\/padmavathi\/"}]}},"_links":{"self":[{"href":"https:\/\/ratnaglobaltech.com\/blog\/wp-json\/wp\/v2\/posts\/82","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ratnaglobaltech.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ratnaglobaltech.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ratnaglobaltech.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/ratnaglobaltech.com\/blog\/wp-json\/wp\/v2\/comments?post=82"}],"version-history":[{"count":3,"href":"https:\/\/ratnaglobaltech.com\/blog\/wp-json\/wp\/v2\/posts\/82\/revisions"}],"predecessor-version":[{"id":115,"href":"https:\/\/ratnaglobaltech.com\/blog\/wp-json\/wp\/v2\/posts\/82\/revisions\/115"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ratnaglobaltech.com\/blog\/wp-json\/wp\/v2\/media\/85"}],"wp:attachment":[{"href":"https:\/\/ratnaglobaltech.com\/blog\/wp-json\/wp\/v2\/media?parent=82"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ratnaglobaltech.com\/blog\/wp-json\/wp\/v2\/categories?post=82"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ratnaglobaltech.com\/blog\/wp-json\/wp\/v2\/tags?post=82"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}