{"id":323777,"date":"2026-06-19T01:00:19","date_gmt":"2026-06-19T01:00:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/cnx-medical-clinic-patient-management-system\/"},"modified":"2026-06-19T01:00:05","modified_gmt":"2026-06-19T01:00:05","slug":"cnxmedical","status":"publish","type":"plugin","link":"https:\/\/es-hn.wordpress.org\/plugins\/cnxmedical\/","author":23513374,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.19.6","stable_tag":"0.19.6","tested":"7.0","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"CNX Medical Lite - Clinic EHR & Appointments","header_author":"CNX Medical","header_description":"Self-hosted clinic management for WordPress by CNX Medical \u2014 patient records (EHR), appointments, screening, treatment, labs, X-ray, drug stock and billing. Bilingual Thai\/English.","assets_banners_color":"f7f6fe","last_updated":"2026-06-19 01:00:05","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/cnxmedical.com","header_plugin_uri":"","header_author_uri":"https:\/\/cnxmedical.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":37,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.19.6":{"tag":"0.19.6","author":"joerocknpc","date":"2026-06-19 01:00:05"}},"upgrade_notice":{"0.19.0":"<p>Plugin renamed and uninstall now fully cleans up all tables and options.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3577982,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3577982,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3577982,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3577982,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.19.6"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3577982,"resolution":"1","location":"assets","locale":"","width":1200,"height":735},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3577982,"resolution":"2","location":"assets","locale":"","width":1200,"height":735},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3577982,"resolution":"3","location":"assets","locale":"","width":1200,"height":735}},"screenshots":{"1":"Dashboard \u2014 today's clinic overview with queues, revenue and low-stock alerts.","2":"Patient records list.","3":"Screening \u2014 vital signs and chief complaint.","4":"Treatment room \u2014 diagnosis, examinations, prescription, lab and X-ray orders.","5":"Billing \u2014 invoice and payment.","6":"Settings \u2014 manage doctors, rooms, labs, drugs, ICD-10 and currency."}},"plugin_section":[],"plugin_tags":[8132,43578,8324,267805,234510],"plugin_category":[],"plugin_contributors":[267806],"plugin_business_model":[],"class_list":["post-323777","plugin","type-plugin","status-publish","hentry","plugin_tags-appointments","plugin_tags-clinic","plugin_tags-ehr","plugin_tags-medical-records","plugin_tags-patient-management","plugin_contributors-joerocknpc","plugin_committers-joerocknpc"],"banners":{"banner":"https:\/\/ps.w.org\/cnxmedical\/assets\/banner-772x250.png?rev=3577982","banner_2x":"https:\/\/ps.w.org\/cnxmedical\/assets\/banner-1544x500.png?rev=3577982","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/cnxmedical\/assets\/icon-128x128.png?rev=3577982","icon_2x":"https:\/\/ps.w.org\/cnxmedical\/assets\/icon-256x256.png?rev=3577982","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/cnxmedical\/assets\/screenshot-1.png?rev=3577982","caption":"Dashboard \u2014 today's clinic overview with queues, revenue and low-stock alerts."},{"src":"https:\/\/ps.w.org\/cnxmedical\/assets\/screenshot-2.png?rev=3577982","caption":"Patient records list."},{"src":"https:\/\/ps.w.org\/cnxmedical\/assets\/screenshot-3.png?rev=3577982","caption":"Screening \u2014 vital signs and chief complaint."}],"raw_content":"<!--section=description-->\n<p>CNX Medical turns your WordPress site into a complete, <strong>self-hosted<\/strong> clinic management system (EHR). All data stays in your own WordPress database \u2014 nothing is sent to any third-party service.<\/p>\n\n<p>The whole clinic workflow runs inside one fast single-page app, opened from your site at <code>\/cnxmedical\/<\/code>. It is fully <strong>bilingual (Thai \/ English)<\/strong> with a one-click language switch, and a configurable display currency.<\/p>\n\n<h4>Complete outpatient workflow<\/h4>\n\n<ul>\n<li><strong>Patients<\/strong> \u2014 full medical records: HN, national ID, demographics, allergies, chronic disease, current medication, emergency contact.<\/li>\n<li><strong>Appointments<\/strong> \u2014 schedule with status tracking (pending \/ arrived \/ postponed \/ cancelled).<\/li>\n<li><strong>Screening<\/strong> \u2014 open a visit, record vital signs (BP, pulse, temp, weight\/height with auto-BMI), chief complaint and history; alert the doctor.<\/li>\n<li><strong>Treatment room<\/strong> \u2014 diagnose (ICD-10), order examinations, prescribe drugs with stock awareness, add procedures, and order labs \/ X-rays, then send to billing. Order follows clinical flow: diagnosis \u2192 examination \u2192 drugs \u2192 procedure \u2192 lab \u2192 X-ray.<\/li>\n<li><strong>Lab room<\/strong> \u2014 enter results for single-value, choice and multi-detail (panel) labs with sex\/age reference ranges.<\/li>\n<li><strong>X-ray room<\/strong> \u2014 read studies and attach images (PNG\/JPG).<\/li>\n<li><strong>Billing<\/strong> \u2014 auto-generated invoices from the visit, take payment (cash \/ transfer \/ QR \/ card) with change calculation and payment history.<\/li>\n<li><strong>Dashboard<\/strong> \u2014 today's appointments, visits, queues, pending invoices, revenue and low-stock alerts at a glance.<\/li>\n<\/ul>\n\n<h4>Master data you control<\/h4>\n\n<p>A built-in <strong>Settings<\/strong> area lets the clinic owner manage everything: doctors, rooms, lab tests (with reference ranges), X-ray items, drugs &amp; stock, ICD-10 diagnosis codes, medical procedures, examination\/service fees, and the display currency.<\/p>\n\n<h4>Privacy &amp; self-hosting<\/h4>\n\n<ul>\n<li>No external API calls, trackers, or analytics.<\/li>\n<li>Fonts are bundled and served from your own server (no Google Fonts \/ CDN requests).<\/li>\n<li>All patient and clinical data lives in your WordPress database.<\/li>\n<\/ul>\n\n<h4>Pro version<\/h4>\n\n<p>A separate <strong>CNX Medical Pro<\/strong> add-on (hosted on <a href=\"https:\/\/cnxmedical.com\">cnxmedical.com<\/a>) extends the free plugin with advanced reporting, a patient portal, multi-branch support and more. The free plugin is fully functional on its own and never disables features to force an upgrade.<\/p>\n\n<h4>Open-source components<\/h4>\n\n<p>This plugin bundles the following open-source libraries (no external requests):<\/p>\n\n<ul>\n<li>Vue 3 \u2014 MIT License<\/li>\n<li>Vue Router \u2014 MIT License<\/li>\n<li>Pinia \u2014 MIT License<\/li>\n<li>Kanit font \u2014 SIL Open Font License 1.1<\/li>\n<\/ul>\n\n<h3>Source Code &amp; Build<\/h3>\n\n<p>This plugin's admin app is built with Vue 3 + Vite. The full, uncompiled human-readable source is shipped inside the plugin in the <code>src\/<\/code> directory. The production bundle in <code>dist\/<\/code> (admin.js, admin.css) is generated from it.<\/p>\n\n<p>To build it yourself from the plugin folder:<\/p>\n\n<ol>\n<li><code>npm install<\/code><\/li>\n<li><code>npm run build<\/code><\/li>\n<\/ol>\n\n<p>This regenerates <code>dist\/admin.js<\/code> and <code>dist\/admin.css<\/code> from <code>src\/<\/code>. Build configuration is in <code>package.json<\/code> and <code>vite.config.js<\/code>, both included in the plugin.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>cnxmedical<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the ZIP via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress. Activation creates the database tables and seeds sample master data (rooms, doctors, labs, X-ray items, drugs, ICD-10 codes, procedures and examination fees).<\/li>\n<li>Open the clinic app from the <strong>\"Open app\"<\/strong> link on the Plugins list, or visit <code>https:\/\/your-site.com\/cnxmedical\/<\/code>.<\/li>\n<li>If you get a 404 on the app URL, go to <strong>Settings \u2192 Permalinks<\/strong> and click <strong>Save<\/strong> once to flush rewrite rules.<\/li>\n<\/ol>\n\n<p>Requires PHP 8.0+ and WordPress 6.0+. The <code>mbstring<\/code> PHP extension is recommended for Thai text.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20open%20the%20clinic%20app%3F\"><h3>Where do I open the clinic app?<\/h3><\/dt>\n<dd><p>After activation, open <code>https:\/\/your-site.com\/cnxmedical\/<\/code> (or click \"Open app\" on the Plugins screen). It is a full-page application for clinic staff and requires a logged-in WordPress user.<\/p><\/dd>\n<dt id=\"does%20it%20send%20any%20data%20to%20external%20services%3F\"><h3>Does it send any data to external services?<\/h3><\/dt>\n<dd><p>No. CNX Medical is fully self-hosted. There are no third-party API calls, trackers or analytics, and the Kanit font is served from your own server \u2014 not Google Fonts.<\/p><\/dd>\n<dt id=\"is%20it%20available%20in%20english%3F\"><h3>Is it available in English?<\/h3><\/dt>\n<dd><p>Yes. The interface is bilingual Thai \/ English. Use the TH \/ EN toggle in the top bar; the choice is remembered per browser. Thai is the default.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20currency%20shown%20on%20invoices%3F\"><h3>Can I change the currency shown on invoices?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>Settings \u2192 General<\/strong> and pick a currency symbol (\u0e3f, $, \u20ac, \u00a3, \u00a5 \u2026) or enter your own. It updates across invoices and every money display instantly.<\/p><\/dd>\n<dt id=\"who%20can%20access%20patient%20data%3F\"><h3>Who can access patient data?<\/h3><\/dt>\n<dd><p>Only logged-in WordPress users. Master-data settings require the <code>manage_options<\/code> capability (administrators).<\/p><\/dd>\n<dt id=\"where%20is%20patient%20data%20stored%3F\"><h3>Where is patient data stored?<\/h3><\/dt>\n<dd><p>In custom tables in your own WordPress database (prefixed <code>cnxmedical_<\/code>). Nothing leaves your server.<\/p><\/dd>\n<dt id=\"how%20do%20i%20build%20the%20front-end%20from%20source%3F\"><h3>How do I build the front-end from source?<\/h3><\/dt>\n<dd><p>The Vue source lives in <code>src\/<\/code>. Run <code>npm install<\/code> then <code>npm run build<\/code> to regenerate the compiled assets in <code>dist\/<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.19.6<\/h4>\n\n<ul>\n<li>Fixed the Kanit font not applying after the prefix rename (standalone body class mismatch).<\/li>\n<\/ul>\n\n<h4>0.19.5<\/h4>\n\n<ul>\n<li>Renamed all internal prefixes (namespace, constants, options, database tables, asset handles) from the 3-letter <code>cnx<\/code>\/<code>CNX<\/code> to <code>cnxmedical<\/code>\/<code>CNXMEDICAL<\/code> to avoid collisions.<\/li>\n<li>Escaped late: hardened the self-hosted font inline style output.<\/li>\n<li>Documented the build process and bundled source in the readme.<\/li>\n<\/ul>\n\n<h4>0.19.4<\/h4>\n\n<ul>\n<li>Renamed to \"CNX Medical Lite - Clinic EHR &amp; Appointments\" (more distinctive).<\/li>\n<li>Dedicated capability \"manage_cnxmedical\" for clinic data (no longer generic edit_posts); X-ray upload also requires upload_files.<\/li>\n<li>Self-hosted fonts now enqueued via wp_add_inline_style (no inline style tag).<\/li>\n<li>Admin menu moved to a lower position.<\/li>\n<\/ul>\n\n<h4>0.19.3<\/h4>\n\n<ul>\n<li>Renamed to \"CNX Medical Lite\" with a Lite badge in the app header.<\/li>\n<li>Blood group options simplified to A \/ B \/ AB \/ O.<\/li>\n<\/ul>\n\n<h4>0.19.2<\/h4>\n\n<ul>\n<li>Header: the company site is now the Author URI (no separate plugin URI).<\/li>\n<\/ul>\n\n<h4>0.19.1<\/h4>\n\n<ul>\n<li>Header clean-up: removed a duplicate URI.<\/li>\n<\/ul>\n\n<h4>0.19.0<\/h4>\n\n<ul>\n<li>Renamed the plugin to \"CNX Medical - clinic &amp; patient management system\".<\/li>\n<li>Uninstall now removes every plugin table and option for a complete clean-up.<\/li>\n<\/ul>\n\n<h4>0.18.2<\/h4>\n\n<ul>\n<li>The patient list now starts empty on a fresh install (sample master data is still seeded; demo patients removed).<\/li>\n<\/ul>\n\n<h4>0.18.1<\/h4>\n\n<ul>\n<li>Self-hosted the Kanit font (bundled woff2) \u2014 removed all Google Fonts \/ external requests.<\/li>\n<li>Treatment room: examination tab now appears before prescribing, matching clinical flow.<\/li>\n<li>Settings: new \"Examinations\" (service\/exam fees) manager with sample data.<\/li>\n<\/ul>\n\n<h4>0.17.0<\/h4>\n\n<ul>\n<li>New <strong>Settings \u2192 General<\/strong>: configurable display currency (\u0e3f \/ USD \/ EUR \/ custom) used across the whole app; removed hard-coded currency.<\/li>\n<\/ul>\n\n<h4>0.16.0<\/h4>\n\n<ul>\n<li>Settings: manage <strong>ICD-10<\/strong> diagnosis codes (with ~70 seeded common codes, paginated) and <strong>medical procedures<\/strong>.<\/li>\n<li>Full Thai \/ English bilingual UI across every page with a TH\/EN switch.<\/li>\n<\/ul>\n\n<h4>0.14.0<\/h4>\n\n<ul>\n<li>Appointments module.<\/li>\n<li>Dashboard with live clinic metrics.<\/li>\n<\/ul>\n\n<h4>0.13.0<\/h4>\n\n<ul>\n<li>Billing \/ invoices with payment recording.<\/li>\n<\/ul>\n\n<h4>0.10.0<\/h4>\n\n<ul>\n<li>Lab and X-ray rooms with result entry and image upload.<\/li>\n<\/ul>\n\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>Treatment room: diagnosis, prescriptions, procedures, examinations, lab\/X-ray ordering.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release: patients, screening and clinic settings.<\/li>\n<\/ul>","raw_excerpt":"Self-hosted clinic management for WordPress by CNX Medical \u2014 patient records (EHR), appointments, screening, treatment, labs, X-ray and billing in one &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/323777","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=323777"}],"author":[{"embeddable":true,"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/joerocknpc"}],"wp:attachment":[{"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=323777"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=323777"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=323777"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=323777"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=323777"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es-hn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=323777"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}