Files
2026-01-27 15:48:29 +07:00

4.3 KiB

Debug Guide: INACBG Modal - Existing Codes Not Displaying

Problem

When clicking "Edit INACBG" button, the modal opens but existing INACBG codes from the database are not appearing. The modal shows "Belum ada kode INA CBG yang dipilih" instead of displaying saved codes.

Solution: Comprehensive Logging Added

I've added detailed console logging throughout the data flow to help identify where the data is being lost.

How to Debug

Step 1: Open Browser Developer Console

  • Press F12 or Right-click → "Inspect" → "Console" tab
  • Keep this open while testing

Step 2: Trigger the Data Load

  1. In the application, select a patient record
  2. Load a billing record
  3. Look for these console logs in order:
📊 Billing data from API: { ... complete object ... }
📊 data.kode_inacbg: (value or undefined)
📊 data.kode_inacbg type: (string, array, undefined, etc)
📊 data.kode_inacbg is Array?: (true/false)

If you see codes here: API is returning data correctly

Step 3: Click "Edit INACBG" Button

You should see:

🔓 Edit INACBG button clicked
📋 originalInacbgCodes: [code1, code2, ...]
📋 originalInacbgCodes length: (number)
📋 totalKlaimOriginal: (number)

If you see codes in originalInacbgCodes: Parent component has loaded data correctly

Step 4: Modal Opens

Look for:

📋 Edit INACBG Modal opened
📋 currentData received: { 
    kode_inacbg: [...], 
    tipe_inacbg: "...", 
    kelas: "...", 
    total_klaim: ... 
}
📋 currentData.kode_inacbg: [code1, code2, ...]
📋 currentData.kode_inacbg is Array?: true
📋 Codes to set in modal: [code1, code2, ...]
📋 Codes length: (number)

Step 5: Monitor State Changes

Watch for:

🎯 selectedInacbgCodes updated: [code1, code2, ...]
🎯 selectedInacbgCodes length: (number)

These logs appear every time the state changes.

Diagnostic Checklist

Log Message Indicates If Missing = Problem
📊 Billing data from API: API returned data successfully API not returning response
📊 data.kode_inacbg type: Format of kode_inacbg from database Data structure issue
📝 Loaded INACBG codes from DB: Codes successfully parsed Parsing/parsing logic failed
🔓 Edit INACBG button clicked Button click registered Button handler not triggering
originalInacbgCodes length: (> 0) Parent component has data State not loading correctly
📋 currentData received: Modal received props Props not being passed
📋 Codes to set in modal: Modal initialized with codes Modal initialization failed
🎯 selectedInacbgCodes updated: Modal state updated with codes React state not updating

Common Issues & Solutions

Issue 1: API logs show kode_inacbg: undefined

Cause: Backend not returning kode_inacbg field Solution: Check backend API response format

Issue 2: Codes loaded but originalInacbgCodes is empty

Cause: State not setting correctly Solution: May need to check React component lifecycle

Issue 3: Modal shows empty but currentData received has codes

Cause: Data not flowing from props to component state Solution: Check setSelectedInacbgCodes initialization

Issue 4: selectedInacbgCodes shows codes but UI is empty

Cause: Rendering logic issue Solution: Check the display condition that shows codes in template

Data Flow Path

Backend Database
        ↓
API Response (kode_inacbg: [])
        ↓
INACBG_Admin_Ruangan component loads data
        ↓
setOriginalInacbgCodes([...])
        ↓
User clicks "Edit INACBG"
        ↓
Modal receives: currentData={{ kode_inacbg: originalInacbgCodes, ... }}
        ↓
edit-INACBG Modal setSelectedInacbgCodes(codes)
        ↓
UI displays codes with delete buttons

Next Steps

  1. Run the application
  2. Open F12 console
  3. Follow the steps above
  4. Screenshot the console output
  5. Identify which logs are missing or show wrong values
  6. Share the logs with specific details about what's missing

Based on the logs, we can pinpoint exactly where the data flow is broken and fix it accordingly.

Files Modified

  • INACBG_Admin_Ruangan.tsx - Added detailed logging at API fetch and button click
  • edit-INACBG.tsx - Added detailed logging in modal initialization and state updates