Version: 2.5
Last Updated: July 2026
Version: 2.5
Last Updated: July 2026
The SMRP Automator is a Chrome Extension designed to streamline data entry for Dietetic modules within the Ministry of Health's SMRP Portal (MyHDW). It integrates directly with Google Sheets to eliminate manual double-entry, automates patient registration, and ensures data accuracy.
P.DALAM), Outpatient (P.LUAR), and Group Counseling (MNT BERKUMPULAN).DT10001).@moh.gov.my)yourname@gmail.com)You can install the SMRP Automator directly from the Chrome Web Store.
Why is this happening?
Your browser is currently signed in with your official Ministry of Health account (@moh.gov.my). The system administrator for MOH has blocked access to the Chrome Web Store for security reasons.
The Solution:
You must switch to your personal Gmail account to perform the download.
Enter your own IC Number or AHP Number into the "Dietitian IC/ AHP Number" field in the settings menu.
Enter your department code (e.g., DT01, DT10, DT30).
1. Locate Row Numbers: Find the row containing the desired patient data in your Google Sheet by checking the row index on the left (e.g., Row 4). Enter that row number into the workspace field.
2. Launch Point: Access your SMRP account portal. You MUST open the base Patient Search Page before clicking any execution buttons; the extension will start by auto search for patient IC number if you trigger it from this specific page.
Applies to new outpatient (P.LUAR) or group (MNT BERKUMPULAN) cases that require a valid sequential Registration Number (RN) generated beforehand.
P.LUAR or MNT BERKUMPULAN.The extension will automatically click "Add Clinical Support", fill in the Date (08:00 AM), generate the RN using your DT Prefix + Sequence, and submit the form.
rn already exists / telah wujud),
the script automatically increments the sequence number
(for example,
DT10001 → DT10002)
and resubmits without interrupting the automation cycle.
Processes complete clinical fields entries directly into the SMRP website
Scenario 1: Outpatient Modules (Individual Records)
P.LUAR sheet parameter and specify the row number.The extension scans for "Sokongan Klinikal" and "SSDT" in the RN list, finds the visit row matching your Sheet Date, verifies the patient's IC matches, opens the form, and fills out all clinical data instantly.
Scenario 2: Inpatient Modules (Ward Records)
P.DALAM and enter the row index.The extension checks Column Q to ensure the patient is not marked "Unseen". It then scans for "Pesakit Dalam" rows earlier than your seen date in E-Pelaporan, verifies the patient's IC, and fills the clinical form.
Scenario 3: Group Counseling Modules (Classes Records)
MNT BERKUMPULAN and enter the row index.The extension finds the correct date row, verifies the IC, auto-sets "Consultation Type" to "Kumpulan / Kelas", and fills the rest of the form automatically.
Specific dietary information (Diet Type or Specific Diet) may be unavailable in your E-Pelaporan Google Sheet at the time of automated data entry. The Automator is equipped with an "Allow Incomplete" Bypass specifically for these two columns.
Depending on which sheet you are using, the Automator looks for the "Diet Type" (e.g., MODIFIKASI_KONSISTENSI, TERAPUTIK) and the specific sub-diet (e.g., Diet Lembut, Diet Diabetik) in the following locations:
| Sheet Name | Diet Type Column | Specific Diet Column |
|---|---|---|
| P.DALAM (Inpatient) | Column J | Column K |
| P.LUAR (Outpatient) | Column G | Column H |
| MNT BERKUMPULAN (Group) | Column F | Column G |
Please note that these columns are temporarily hidden in your E-Pelaporan Google Sheet. They will remain hidden while the Apps Script is under development and the dependent dropdown menus are being finalized.
| Error / Symptom | Solution |
|---|---|
| Popup: "❌ IC Mismatch Guard!" | The IC number in your Google Sheet does not match the patient currently open in the MyHDW Portal. Verify you are on the correct patient's file. If the portal is genuinely missing the IC, you can bypass this by unchecking the Strict IC Match Guard in settings.
Figure 6.0: IC Mismatch Guard Alert
|
| Popup: "⏸️ The data in row is Unseen..." | Column Q in the P.DALAM sheet is marked as "True". The automator safely aborted to prevent filling out a blank form.
Figure 6.1: Unseen Patient Bypass Alert
|
| Popup: "No Inpatient Visit found earlier than ...... Check portal dates." |
1. Check Dates: Ensure Sheet date matches Portal. 2. Expand View: Scroll down in SMRP and change items per page to All or 20 or Toggle the "Enable Auto-Expand Grid" option under setting.
Figure 6.2: Expanding items per page in SMRP
3. Not Registered as Inpatient: If the error persists even after changing the items per page setting to 'All', it means the hospital registry didn't register this patient as 'Pesakit Dalam'. You are required to create an RN using the "Start Outpatient Registration" button. After creating the RN, toggle the "Inpatient: Data Entry Under "Sokongan Klinikal"" option, then click the "Fetch & Fill Clinical Data" button.
Figure 6.3: Manually registering and entering Dietetic page
|
| "⏳ Timeout: MyHDW Portal took too long..." | The portal took longer than 15 seconds to load the form. Refresh the portal page and try clicking the extension button again.
Figure 6.4: Timeout Safety Alert
|
| Error / Symptom | Solution |
|---|---|
| "Auth Failed" / Connection Failed |
You authorized the wrong Google account. Click Sign Out button in the extension, then click Test Connection and select your @moh.gov.my email.
Figure 6.5: Connection Failed Error
|
You can customize how the extension appears on your screen.
Best for continuous data entry. The panel stays open while you navigate.
Best for quick, single-use actions.
You can enable or disable the following features from the Setup panel.
The automation is tailored according to the E-Pelaporan Google Sheet Layout. Based on the Sheet Name selected, the extension will read data from the following specific columns:
The Automator uses a "Mapping Engine" to translate your Google Sheet terminology into the specific clinical categories required by the MyHDW portal.
| Sheet Value (Malay) | Portal Category (English) |
|---|---|
| PEDIATRIK | Paediatrics |
| GENETIK / METABOLIK | Clinical Genetics |
| OBSTETRIK / GENEKOLOGI | Obstetrics & Gynaecology |
| PEMBEDAHAN AM | Surgery |
| ORAL SURGIKAL | Oral Maxillofacial Surgery |
| ORTOPEDIK | Orthopaedics |
| MEDIKAL | Medicine |
| HEMATOLOGI | Clinical Haematology |
| REHABILITASI | General Rehabilitation Medicine |
| HEPATOBILIARI | Hepatopancreatobiliary (HPB) Surgery |
| PLASTIK SURGIKAL | Plastic & Reconstructive Surgery |
| PSIKIATRIK | General Psychiatry |
| ORL | Otorhinolaryngology |
| ONKOLOGI | Surgical Oncology |
| RAWATAN RAPI | Adult Intensive Care |
| KECEMASAN | Emergency Medicine |
| RESPIRATORI | Respiratory Medicine |
| NEFROLOGI | Nephrology |
| UROLOGI | Urology |
| DERMATOLOGI | Dermatology |
| KARDIOLOGI | Cardiology |
| NEURO SURGIKAL | Neurosurgery |
| NEUROLOGI | Neurology |
| OFTALMOLOGI | Ophthalmology |
| GERIATRIK | Geriatric |
| Hepatology | Hepatology |
| Sheet Value | Portal Selection |
|---|---|
| MODIFIKASI_KONSISTENSI | Diet Modifikasi Konsistensi |
| TERAPUTIK | Diet Teraputik |
| PIAWAI | Diet Piawai |
Multiple codes can be entered in one cell (e.g., DD, LSD).
| Sheet Code | Full Clinical Diet Name |
|---|---|
| DD | Diet diabetik |
| LSD | Diet rendah garam |
| LCHOL | Diet rendah kolesterol |
| LFD | Diet rendah lemak |
| LCD | Diet rendah kalori |
| HCD | Diet tinggi kalori |
| LPD | Diet rendah protein |
| HPD | Diet tinggi protein |
| LPUR | Diet rendah purin |
| LK | Diet rendah potasium |
| HK | Diet tinggi potasium |
| LCOPPER | Diet rendah kuprum |
| LPO4 | Diet rendah fosfat |
| LVK | Diet rendah vitamin K |
| LFIBRE | Diet rendah serat |
| HFIBRE | Diet tinggi serat |
| LOXALATE | Diet rendah oksalat |
| IEM | Diet inborn error metabolisme (IEM) |
| KETO | Diet ketogenik |
| Bland | Diet bland |
| LSALICYLATE | Diet rendah salicylate |
| LACTOSEF | Diet tanpa laktose |
| GLUTENF | Diet tanpa gluten |
| TONSILECTOMY | Diet tonsilektomi |
| NEUTROPENIC | Diet neutropanik |
| UCAT | Diet ujian UCAT |
| REGIM FORMULA ENTERAL | Regim formula enteral |
| DIET CECAIR JERNIH | Diet cecair jernih |
| DIET MINUMAN BERKHASIAT | Diet minuman berkhasiat |
| DIET KISAR | Diet kisar |
| DIET BUBUR CAMPUR | Diet bubur campur |
| DIET CINCANG | Diet cincang |
| DIET LEMBUT | Diet lembut |
| DIET PUREE | Diet puree |
| Sheet Value | Portal Selection |
|---|---|
| OPD, Walk In | General Outpatient Department |
| AEC, ANT, CAPD, CKD, CRP, ERAS, FEES, GDM, GERIATRIK, HFC, IMD, MEC, MND, OBESE, ONCOLOGY, PDC, PPC, PRE IMD, PWS, RT, SARCOPENIA, SURGICAL, TRANSPLANT | Specialized Clinic |
This manual guides you step-by-step through operating the multi-row data entry system safely and efficiently.
Follow these simple clicks to hand your data-entry workload over to the bot:
You can watch the bot enter information in real-time right on your screen:
001, then 002, then 003).001 for that new day automatically.If the SMRP page slows down, freezes for more than 35 seconds, or you need to take back control of your computer immediately, you can stop the bot safely at any time:
Once the bot finishes typing out your list, it will show a summary of your session:
If a batch run completes and a few rows were skipped or failed due to network lag, you do not have to look up the missing patients or type their files manually!
While running multi-row automation, the bot might skip a row if it runs into an issue with the data or the SMRP Page. Below is the complete list of every error message you might see in your logs, why it happened, and exactly how to fix it:
| What the Log Says | What It Actually Means | What Action You Need to Take |
|---|---|---|
| "Missing IC Number in spreadsheet" | The row you are trying to process does not have a patient Identity Card (IC) number typed into your sheet. | Open your E-Pelaporan, fill in the missing IC number for that patient row, and hit the Retry button. |
| "Skipped. Future date error found in encounter date..." | The date entered in the spreadsheet is later than the today's date, causing the SMRP system to reject the record. | Correct the typo in E-Pelaporan's date column. |
| "Patient not found in SMRP" | The bot searched for the patient's IC number inside the SMRP portal, but the website replied that no such person is registered in the system. | Verify if the IC number was typed correctly in your E-Pelaporan. If it is correct, you are require to manually registered the patient details in the SMRP directory before retry. |
| "Universal IC Guard: Mismatch on..." |
|
Retry this row by toggle off the option Strict IC Match Guard in Setup tab and click Fetch & Fill Clinical Data button. |
| "Universal IC Guard: Mismatch on Data Entry Form. Sheet: xxxxxx vs SMRP Page: Unknown/Not Found" |
Possible causes:
|
|
| "Patient Summary Page failed to load" / "Patient Search Timeout" | Network slow or congestion. | No manual changes are needed. Simply click the Retry These Rows button once the batch completes to attempt entry again. |
| "Registration form failed to load" / "Add Clinical Support Button not found" | Network slow or congestion. | Simply click the Retry These Rows button. |
| "Dietetic form not available..." / "Dietetic Data Entry Form failed to load" | Network slow or congestion. | Simply click the Retry These Rows button. |
| "Timeout: SMRP Page failed 5 consecutive times" / "Timeout waiting for..." | Network slow or congestion, forcing the bot to max out its internal multi-attempt safety cap. | Simply click the Retry These Rows button. |
| "Skipped. Record already existed" / "Clinical Note Already Exists" | The bot discovered that this exact patient record, registration number, or clinical note was already typed and saved in the system previously. | No action needed! |
| "Skipped. Incomplete data." | The SMRP portal rejected the submission because mandatory clinical questions on the screen were left completely blank. | Ensure that all informations in E-Pelaporan are filled out properly before executing the automation. |
| "Failed to register after 15 auto-increment attempts." | The background script automatically tried 15 different registration numbers to bypass duplicates, but all of them were already taken in the system. Note: this limit will be increase to 50 in next updates. | Go to the extension setup dashboard and update your Next RN Sequence text box to a higher number block to avoid collisions. |