目前发现影响版本是 9.0 标版,如果有这种情况出现,可以参考解决。

1、问题界面路径:在HIS系统中,【门诊药房】安全组中--【库存相关】菜单下--【查询与统计】--【库存统计】

2、在【药品--批次】界面,选择具体药品后,一直转圈,无法加载具体明细数据。

如图 1:

如图 2:f12 中也有具体数据返回,前台就是一直转圈不显示

3、正确解决后效果,

4、解决方法:原本的后台方法没有报错,属于代码数据结构组织有问题,不报错也不展示,浏览器调试界面和后台都正常,只有界面转圈不加载。

在json格式化工具里面返回值没有问题,此问题不易排查错误的地方。

只需重写后台代码如下即可(也可以直接替换掉整个方法):

/// Description: 库存查询-科室批次明细(全部)
/// Debug:       w ##class(PHA.IN.Query.LocItmStk).IncItmLcBat({"locId":"181","date":"2025-07-16","scg":"3","stkCat":"","inciDesc":"","manf":"","poisonIdStr":"","phcForm":"","generic":"","useFlag":true,"notUseFlag":false,"vendor":"","genePHCCat":"","phcInstruc":"","importFlag":"","outLockFlag":false,"inLockFlag":false,"origin":"","arcItmCat":"","inci":"","stkbin":"","baseDrugFlag":false,"highPriceFlag":false,"incil":"1||1","batFlag":"NotEmpty"}).%ToJSON()
ClassMethod IncItmLcBat(pJson) As %DynamicObject
{
	s date = $$$zdh(pJson.%Get("date"))
	s incil = pJson.%Get("incil")
	s batFlag = pJson.%Get("batFlag")
	s locId = ##class(PHA.COM.Data.INCIL).%New(incil).LocId()	
	s hospId = $p(^CTLOC(locId), "^", 22)	s totalSpAmt = 0, totalRpAmt = 0
	s rows = []
	s total = 0
	s inci = $p(incil, "||", 1)
	s il = $p(incil, "||", 2)
	q:((inci = "")||(il = "")) rows
	q:('##class(Filter).CheckIncItm(inci, pJson)) ..EmptyGrid()
	q:('##class(Filter).CheckIncItmLoc(incil, pJson)) ..EmptyGrid()
	s total = 0
	s lb = 0
	for {
		s lb = $o(^INCI(inci, "IL", il, "LB", lb)) 
		q:(lb = "")
		s inclb = inci_"||"_il_"||"_lb
		continue:((batFlag = "Empty") && (##class(PHA.COM.Data.Stock).INCLBQty(inclb, date) > 0))	  // 无库存
		continue:((batFlag = "NotEmpty") && (##class(PHA.COM.Data.Stock).INCLBQty(inclb, date) <= 0)) // 有库存
		continue:('##class(Filter).CheckIncItmLcBt(inclb, pJson))
		s row = ##class(Data).IncItmLcBtData(inclb, date)
		d rows.%Push(row)
		s total = total + 1
		s totalRpAmt = totalRpAmt + row.rpAmt
		s totalSpAmt = totalSpAmt + row.spAmt
	}
	s footer = {
		"batNo": (..Get("合计:")_total),
		"TSpAmt": (##class(PHA.COM.Data.Format).TSpAmt(totalSpAmt, hospId, "")),
		"TRpAmt": (##class(PHA.COM.Data.Format).TRpAmt(totalRpAmt, hospId, ""))	
	}	
	q {
		"total": (total),
		"rows": (rows),
		"footer": [(footer)]
	}
}

5、具体类文件路径,方法是上面代码中的方法,替换里面方法里面内容即可。

PHA.IN.Query.LocItmStk