我们的组织致力于健康护理RCM业务。在这方面,我们用来接收医疗记录(称为账户,这是一个商业用语),我们的员工(医疗编码员)用来根据收到的账户进行医疗编码。
每天,客户都会收到来自多个客户的大量订单,并将其推到库存表中。帐户将根据应用程序中创建的业务规则分配给编码者。
根据业务需要,业务人员可以创建任何规则。在将帐户分配给编码器之前,可能会执行数百条规则。目前,这在Postgres表中通过将规则作为“WHERE”子句存储在表中来处理。请在下面找到一些示例规则。
- 高度复杂的帐户应分配给经验丰富的编码员
规则条件:WHERE c.cpt_code=“00100”,e.experience_type=“experied”
- 具有高额索赔的账户应以高优先级完成
规则条件:WHERE claim_amount>;5000
- 关于到期的帐户已紧急完成
规则条件:WHERE expiry_date=NOW()
- 必须为员工“john.mathew”分配从“达拉斯”来的账户
规则条件:WHERE u.staffname=“john.mathew”,l.location=“Dallas”
当编码器点击“获取帐户”按钮时,将执行适用于相应编码器的规则(针对帐户的库存),并且当帐户满足规则条件时,将向编码器分配帐户。
但是,由于上述体系结构,我们面临着许多性能问题,因为规则会针对库存执行多次。
为了解决这个问题,我们计划通过开发一个独立的规则引擎来重新构建它,它应该与我们的核心应用程序松散耦合
建议可以是任何东西,任何开发内部或任何开源工具的建议(对付费工具“否”),但它应该满足以下标准
我们的技术堆栈是,
应用程序平台:.Net core 6.0
数据库:Postgres
如果您的建议是开发内部工具,请建议技术堆栈开发最适合我们需要的规则引擎我们对MongoDB、ElasticSearch或任何开源开放