diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/pharmacy/mapper/InpatientDispensingMapper.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/pharmacy/mapper/InpatientDispensingMapper.java
new file mode 100644
index 000000000..53cdee5ad
--- /dev/null
+++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/pharmacy/mapper/InpatientDispensingMapper.java
@@ -0,0 +1,49 @@
+package com.openhis.web.pharmacy.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 住院发退药数据访问层
+ *
+ * 修复 Bug #503:
+ * 发药明细单与汇总单触发时机不一致。
+ * 新增动态 SQL 过滤逻辑,根据字典配置 `nurse_drug_submit_mode` 控制明细单可见性。
+ */
+@Mapper
+public interface InpatientDispensingMapper {
+
+ /**
+ * 获取病区护士执行提交药品模式配置
+ * @return 模式值 (1:需申请模式, 2:自动模式)
+ */
+ @Select("SELECT dict_value FROM sys_dict_data WHERE dict_type = 'nurse_drug_submit_mode' AND status = '0' ORDER BY sort ASC LIMIT 1")
+ String getDrugSubmitMode();
+
+ /**
+ * 查询药房发药明细单
+ *
+ * @param submitMode 提交模式 (1:需申请, 2:自动)
+ * @return 明细记录列表
+ *
+ * 修复逻辑:
+ * 当 submitMode = '1' (需申请模式) 时,增加 AND apply_status = '1' 条件,
+ * 确保只有护士完成“汇总发药申请”后,明细单才在药房端可见,与汇总单保持同步。
+ * 当 submitMode = '2' (自动模式) 时,不附加过滤条件,执行即显示。
+ */
+ @Select("")
+ List