Version: 2.3
Last Updated: Mei 2026

1. Introduction

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.

Key Features:
  • Extreme Speed & Timeout Guard: Executes clinical data entry in under 3 seconds, with a 15-second safety timeout for slow-loading portals.
  • Clinical Safety Guards: Includes a strict IC Match Guard and an "Unseen" patient bypass to prevent cross-patient data errors.
  • Three-Way Integration: Supports Inpatient (P.DALAM), Outpatient (P.LUAR), and Group Counseling (MNT BERKUMPULAN).
  • Audit Trail: Built-in history log to track your recent successful entries.
  • Registration Automation: Auto-generates sequential Registration Numbers (e.g., DT10001).

2. Installation Guide

Prerequisite: Dual Account Setup
Before installing, please ensure you are logged into two Google accounts in your Chrome browser simultaneously:
  1. Your official Workspace email (@moh.gov.my)
  2. A personal Gmail account (e.g., yourname@gmail.com)

You can install the SMRP Automator directly from the Chrome Web Store.

Step 1: Download from Store

  1. Visit the Chrome Web Store Link.
  2. Click the blue "Add to Chrome" button.
  3. Confirm by clicking "Add extension" in the popup.
Add to Chrome Button
Figure 2.0: Clicking 'Add to Chrome'

Step 2: Troubleshooting "Access Denied" Errors

Problem: When visiting the store link, you may see an error message saying:
"We are sorry, but you do not have access to Chrome Web Store."
Access Denied Error Screen
Figure 2.1: The Access Denied Error

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.

  1. Click your Profile Icon at the top right of the Chrome browser.
  2. Select your personal account.
  3. Once switched to the personal profile, reload the Web Store link.
  4. You will now be able to click "Add to Chrome".
Switching to Personal Account
Figure 2.2: Switching Chrome Profiles

3. Google Sheet Configuration

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:

Sheet Name Configuration
Figure 3.0: E-Pelaporan Structure Overview

A. Inpatient Data (Sheet: P.DALAM)

  • The extension reads data from Columns: C, E, G, H, J, K, L, M, O, Q

B. Outpatient Data (Sheet: P.LUAR)

  • The extension reads data from Columns: B, E, F, G, H, I, K, N

C. Group Counseling Data (Sheet: MNT BERKUMPULAN)

  • The extension reads data from Columns: B, D, E, F, H

4. Initial Setup

  1. Open Settings: Click the Gear Icon inside the extension.
    Setting Icon
    Figure 4.0: Opening Settings
  2. Link Spreadsheet: Paste your Spreadsheet ID from your Google Sheet URL (the string between /d/ and /edit) and select the Sheet Name.
    Spreadsheet ID
    Figure 4.1: Finding the Google Sheet ID
  3. Safety & Submission Toggles:
    • Auto-Submit Data: (Checked by default) The extension will automatically click the final save/submit buttons for you. Uncheck this if you prefer the automation to pause right before submission, allowing you to manually review the filled form.
    • Strict IC Match Guard: (Checked by default) A critical safety feature that extracts the patient's IC from your Google Sheet and compares it to the IC displayed on the SMRP Portal. If they do not match, the automator instantly aborts to prevent entering data into the wrong patient's file.
    Safety Toggles
    Figure 4.2: Configuring Safety Toggles
  4. AHP Number (Allied Health Practitioner):

    Enter your own IC Number (without dashes) or AHP Number into the "AHP Number" field in the settings menu.

    This is the unique identifier (IC / AHP Number) for the Dietitian performing the entry. It is NOT the patient's IC.
    AHP Setup
    Figure 4.3: Therapist Name & AHP
  5. RN Configuration (Registration Number):

    When you click "Add Clinical Support" to register a patient, the system generates a unique RN string. The extension automates the custom suffix part of this number.

    Format Example: HTAR110126SSDT10001
    • HTAR: Facility Location (Auto-generated by SMRP).
    • 110126: Date (Auto-generated by SMRP).
    • SS: System Code (Fixed).
    • DT10: DT Prefix (Configured in Extension Settings).
    • 001: Next RN Seq (Configured in Extension Settings).

    To Configure:

    • DT Prefix: Enter your department code (e.g., DT01, DT10, DT30).
    • Next RN Seq: Enter the starting number for the day (e.g., 001). This number auto-increments after every successful registration.
    RN Configuration
    RN Configuration Detail
    Figure 4.4: Configuring Registration Prefix and Sequence
  6. Authorize (CRITICAL STEP): Click Test Connection. A Google sign-in window will appear. You MUST log in using your official Workspace Email (@moh.gov.my). Do NOT use the personal email that you used to download the extension.
    Initial Setup
    Google Workspace Access Permission
    Google Workspace Access Success
    Figure 4.5: Successful Connection using Workspace Email
Connection Failed?
If your connection fails, it almost always means you accidentally selected the wrong email address during the sign-in prompt.

How to fix: You must uninstall and reinstall the extension. This clears the browser cache and resets the Google login prompt, allowing you to click "Test Connection" again and properly select your @moh.gov.my email.

Activity Log (History): Click the clock icon (left of the settings gear) at any time to view a log of your most recently submitted data entries.

Activity Log
Figure 4.6: Activity Log Panel

5. Workflows

Before You Begin: Preparation

1. Understanding Row Numbers (Row Num):

The 'Row Num' field in the extension tells the automator exactly which patient's data to grab from your Google Sheet. Look at your spreadsheet, find the specific row number on the far left edge for the patient you are working on (e.g., Row 14), and type that exact number into the extension.

Row Number Explanation
Figure 5.0: How to locate the Row Number

2. Portal Navigation:

  1. Log in to the SMRP portal as usual.
  2. You must land on the Patient Search Page. The extension will start by auto search for patient IC number if you trigger it from this specific page.
    Patient Summary Page
    Step 3: The SMRP Patient Summary Page

Workflow A: Outpatient & Group Counseling Registration

Use this workflow for new outpatient or Group Counseling cases that need a new Registration Number (RN).

[Video: Outpatient Registration Workflow]
Video 5.0: Step-by-step Registration Workflow
Warning: Do NOT click "Start Outpatient Reg" for Inpatient (Ward) cases. Inpatients are already registered by the hospital registry. Only perform this action if the inpatient registration was not performed by the hospital registry.
  1. Ensure you are on the Patient Summary Page.
    Patient Summary Page
    Step 1: Ensure you are on the Summary Page
  2. Click the gear icon, then change the sheet name to P.LUAR or MNT BERKUMPULAN, and set the Row Num to the patient's row in your Google Sheet.
    Change sheet name to P.LUAR or MNT BERKUMPULAN
    Step 2: Change Sheet Name and Row Num
  3. Check that the Next RN Seq is correct.
    Check RN Sequence
    Step 3: Verify the RN Sequence
  4. Click Start Outpatient Reg.
    Start Outpatient Reg Button
    Step 4: Execute Registration
πŸ€– Automator Action (No user action required):
The extension will automatically click "Add Clinical Support", fill in the Date (08:00 AM), generate the RN using your DT Prefix + Sequence, and hit Submit.
Automated Registration Process
Automator running registration process

Workflow B: Clinical Data Entry

Scenario 1: Outpatient (Individual)

[Video: Outpatient Clinical Data Entry Workflow]
Video 5.1: Step-by-step Clinical Entry Workflow
  1. Ensure you are on the Patient Summary Page.
    Patient Summary Page
    Step 1: Ensure you are on the Summary Page
  2. Click the gear icon, then change the sheet name to P.LUAR, and set the Row Num to the patient's row.
    Change sheet name to P.LUAR
    Step 2: Change Sheet Name and Row Num
  3. Click Fetch & Fill Clinical Data.
    Fetch and Fill Button
    Step 3: Execute Clinical Filling
πŸ€– Automator Action (No user action required):
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.
Automated Outpatient Entry
Automator filling outpatient forms

Scenario 2: Inpatient (Ward)

  1. Ensure you are on the Patient Summary Page.
    Patient Summary Page
    Step 1: Ensure you are on the Summary Page
  2. Click the gear icon, then change the sheet name to P.DALAM, and set the Row Num to the patient's row.
    Change sheet name to P.DALAM
    Step 2: Change Sheet Name and Row Num
  3. Click Fetch & Fill Clinical Data.
    Fetch and Fill Button
    Step 3: Execute Clinical Filling
Possible Error: If a popup appears saying "No Inpatient Visit found earlier than ...... Check portal dates.", it means the portal could not locate the hospital visit.
Click here to jump to the Troubleshooting Guide for the solution.
πŸ€– Automator Action (No user action required):
The extension checks Column Q to ensure the patient is not marked "Unseen". It then scans for "Pesakit Dalam" rows earlier than your admission date, verifies the patient's IC, and fills the clinical form.
Automated Inpatient Entry
Automator filling inpatient forms

Scenario 3: Group Counseling

  1. Ensure you are on the Patient Summary Page.
    Patient Summary Page
    Step 1: Ensure you are on the Summary Page
  2. Click the gear icon, then change the sheet name to MNT BERKUMPULAN, and set the Row Num to the patient's row.
    Change sheet name to MNT
    Step 2: Change Sheet Name and Row Num
  3. Click Fetch & Fill Clinical Data.
    Fetch and Fill Button
    Step 3: Execute Clinical Filling
πŸ€– Automator Action (No user action required):
The extension finds the correct date row, verifies the IC, auto-sets "Consultation Type" to Group Class, and fills the rest of the form.
Automated Group Entry
Automator filling group forms

6. Troubleshooting Guide

Navigation & Safety Errors

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.
IC Mismatch Error
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.
Unseen Patient Alert
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.
Expand View Setting
Additional Expand View 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 Reg" button. After creating the RN, click the "Add SS" button > "Dietetic" to enter the data entry page, then click the "Fetch & Fill Clinical Data" button.
Manual RN and Fetch
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.
Timeout Alert
Figure 6.4: Timeout Safety Alert

Data & Connection Errors

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.
Auth Failed Error
Figure 6.5: Connection Failed Error

7. View Modes

You can customize how the extension appears on your screen.

Option A: Sidebar Mode (Recommended)

Best for continuous data entry. The panel stays open while you navigate.

  1. Right-click the SMRP Automator icon.
  2. Check "Open in Side Panel".
  3. Click the icon to open the persistent side panel.
Side bar mode
Figure 7.0: Sidebar Mode

Option B: Popup Mode

Best for quick, single-use actions.

  1. Right-click the extension icon.
  2. Uncheck "Open in Side Panel".
  3. Click the icon to open as a floating window.
Popup mode menu
Popup mode active
Figure 7.1: Popup Mode

8. Features Settings

You can toggle the following automation features directly from the settings panel:

The extension will automatically click the final save/submit buttons for you. Uncheck this if you prefer the automation to pause right before submission, allowing you to manually review the filled form.

A critical safety feature that extracts the patient's IC from your Google Sheet and compares it to the IC displayed on the SMRP Portal. If they do not match, the automator instantly aborts to prevent entering data into the wrong patient's file.

Sets items per page view in Patient Summary Page to 'All' automatically.


9. Data Mapping Logic

The Automator uses a "Mapping Engine" to translate your Google Sheet terminology into the specific clinical categories required by the MyHDW portal.

Exact Match Required: Data in your spreadsheet must match the "Sheet Value" column below exactly (case-sensitive).

A. Discipline Mapping (`disciplineMap`)

Sheet Value (Malay) Portal Category (English)
PEDIATRIKPaediatrics
GENETIK / METABOLIKClinical Genetics
OBSTETRIK / GENEKOLOGIObstetrics & Gynaecology
PEMBEDAHAN AMSurgery
ORAL SURGIKALOral Maxillofacial Surgery
ORTOPEDIKOrthopaedics
MEDIKALMedicine
HEMATOLOGIClinical Haematology
REHABILITASIGeneral Rehabilitation Medicine
HEPATOBILIARIHepatopancreatobiliary (HPB) Surgery
PLASTIK SURGIKALPlastic & Reconstructive Surgery
PSIKIATRIKGeneral Psychiatry
ORLOtorhinolaryngology
ONKOLOGISurgical Oncology
RAWATAN RAPIAdult Intensive Care
KECEMASANEmergency Medicine
RESPIRATORIRespiratory Medicine
NEFROLOGINephrology
UROLOGIUrology
DERMATOLOGIDermatology
KARDIOLOGICardiology
NEURO SURGIKALNeurosurgery
NEUROLOGINeurology
OFTALMOLOGIOphthalmology
GERIATRIKGeriatric
HepatologyHepatology

B. Diet Type Mapping (`dietTypeMap`)

Sheet ValuePortal Selection
MODIFIKASI_KONSISTENSIDiet Modifikasi Konsistensi
TERAPUTIKDiet Teraputik
PIAWAIDiet Piawai

C. Specific Diet Codes (`specificDietMap`)

Multiple codes can be entered in one cell (e.g., DD, LSD).

Sheet Code Full Clinical Diet Name
DDDiet diabetik
LSDDiet rendah garam
LCHOLDiet rendah kolesterol
LFDDiet rendah lemak
LCDDiet rendah kalori
HCDDiet tinggi kalori
LPDDiet rendah protein
HPDDiet tinggi protein
LPURDiet rendah purin
LKDiet rendah potasium
HKDiet tinggi potasium
LCOPPERDiet rendah kuprum
LPO4Diet rendah fosfat
LVKDiet rendah vitamin K
LFIBREDiet rendah serat
HFIBREDiet tinggi serat
LOXALATEDiet rendah oksalat
IEMDiet inborn error metabolisme (IEM)
KETODiet ketogenik
BlandDiet bland
LSALICYLATEDiet rendah salicylate
LACTOSEFDiet tanpa laktose
GLUTENFDiet tanpa gluten
TONSILECTOMYDiet tonsilektomi
NEUTROPENICDiet neutropanik
UCATDiet ujian UCAT
REGIM FORMULA ENTERALRegim formula enteral
DIET CECAIR JERNIHDiet cecair jernih
DIET MINUMAN BERKHASIATDiet minuman berkhasiat
DIET KISARDiet kisar
DIET BUBUR CAMPURDiet bubur campur
DIET CINCANGDiet cincang
DIET LEMBUTDiet lembut
DIET PUREEDiet puree

10. Adhoc Query Reporting (Admins Only)

πŸ›‘ This section is for SMRP Administrators only. Regular dietitians cannot access the Adhoc Query Report builder module.

This section provides a guide for administrators on how to construct an adhoc crosstab report to visually audit data mapping results. To generate the exact report shown in the sequence, follow the steps below by dragging the correct tags from the list of available fields into the appropriate shelves.

Admin Reporting Sequence Reference
Figure 9.0: Visual guide for Admin reporting sequence

Configuration Sequence Instruction:

Log in to SMRP with administrator privileges, open the Adhoc Query tool, select the **"Dietetics Individual RN Reporting"** datasource, and perform the following sequence:

  1. Select Columns (Measures): Locate the **Measure** folder in the left panel. Drag the following numerical fields into the **"Column"** shelf:
    • DATE_ENCOUNTER_YEAR
    • NO_OF_ENCOUNTER
    • DATE_ENCOUNTER_MONTH_IN_YEAR
  2. Select Rows (Dimensions): Locate the **Dimension** folder in the left panel. Drag the following clinical grouping fields into the **"Row"** shelf, in this exact order to match the audit view:
    • THERAPIST_FULLNAME
    • DATE_ENCOUNTER
    • VISIT_SERVICE_L1
    • PATIENT_CLIENT_RN
    • DIET_CONSULTANT_TYPE
    • DISCIPLINE_NAME
    • PATIENT_TYPE
    • PATIENT_AGE_DETAIL
    • VISIT_TYPE
    • REFERRAL_SOURCE_TYPE
  3. Execute Report: Once the fields are correctly placed, click the **"Show"** button in the header bar to generate the cross-tabulation audit table.