我正在为医疗记录管理应用程序构建管理界面。我的客户要求我提供一种方法来轻松选择用户想要与之合作的患者,而不必在每次他想要执行操作时都选择患者。因此,举例来说,他想存储患者当前状态(体重、体型等)的记录,然后将同一患者分配给不同的医生或更改患者当前工作的公司。他不想选择同一位患者全部 3 次......他想要为患者选择下拉菜单并为该患者执行不同的操作。
我认为这应该以某种方式存储在会话变量中。我有一张患者表,我正在使用 LinqtoSql 类……你推荐什么?请帮忙。
我正在为医疗记录管理应用程序构建管理界面。我的客户要求我提供一种方法来轻松选择用户想要与之合作的患者,而不必在每次他想要执行操作时都选择患者。因此,举例来说,他想存储患者当前状态(体重、体型等)的记录,然后将同一患者分配给不同的医生或更改患者当前工作的公司。他不想选择同一位患者全部 3 次......他想要为患者选择下拉菜单并为该患者执行不同的操作。
我认为这应该以某种方式存储在会话变量中。我有一张患者表,我正在使用 LinqtoSql 类……你推荐什么?请帮忙。
听起来你想在Session 中加入一些东西——也许是一些基本的“最近的病人”信息,比如病人 ID、病人姓名等。
一定要看看这篇文章,了解如何以一种非常优雅的方式做到这一点。
您可以使用会话来保留给定用户会话的最近活动患者记录列表。每次用户选择新患者时,只需将该患者的姓名添加到“最近”列表中。由于您可以控制会话的长度,您可以只允许列表在用户会话到期时过期。只要不让用户再次选择客户,只需让它自动选择最近客户列表中的最新(最后一个条目)。
就个人而言,我会考虑将缓存作为一种选择。通过它的声音,您想要为所有患者加载所有数据,这对于少量数据来说很好,但不会优雅地扩展。
考虑在第一次需要患者数据时访问数据库,并从缓存中获取数据以进行后续查询...
最好的方法是在路由中有 id。
注册路由时使用这样的东西:
routes.MapRoute(
"Standard",
"{controller}/{action}/{PatientId}",
new
{
controller = "home",
action = "index",
PatientId = ""
}
);
当您选择一个患者时,您发布到在 RouteParameterCollection 中设置 PatientID 的操作,并重定向到显示更改患者表单的操作。这样,您始终在 URL 中有患者 ID。
使用 session 有一些缺点: