1

医療記録管理アプリの管理インターフェイスを構築しています。私のクライアントは、アクションを実行するたびに患者を選択することなく、ユーザーが作業したい患者を簡単に選択する方法を私に求めました。たとえば、患者の現在の状態 (体重、サイズなど) の記録を保存してから、同じ患者を別の医師に割り当てたり、患者が現在勤務している会社を変更したりしたいとします。同じ患者を 3 回すべて... 彼は、患者の選択ドロップダウンを必要とし、その患者に対して異なるアクションを実行します。

私はこれを何らかの方法でセッション変数に保存する必要があると考えています..患者のテーブルがあり、LinqtoSqlクラスを使用しています....何をお勧めしますか?? 助けてください。

4

4 に答える 4

2

セッションに何かを入れたいようですね。おそらく、患者 ID や患者名など、基本的な「最近の患者」情報のいくつかです。

非常に優雅な方法でそれを行う方法については、この投稿を必ずご覧ください。

于 2010-01-24T02:28:10.017 に答える
0

最善の方法は、ルートに ID を含めることです。

ルートを登録するときは、次のように使用します。

   routes.MapRoute(
        "Standard",                                             
        "{controller}/{action}/{PatientId}",           
        new
          {
            controller = "home", 
            action = "index", 
            PatientId = ""
          }
      );

患者を選択すると、RouteParameterCollection に PatientID を設定するアクションに投稿し、患者を変更するためのフォームを表示するアクションにリダイレクトします。この方法では、常に URL に患者 ID が含まれています。

セッションの使用にはいくつかの欠点があります。

  • 2 つのウィンドウを開いている場合、両方が同じセッションを使用します。これは、ユーザーを混乱させる可能性があります。
  • ページをブックマークすることはできません
  • セッションは通常、アプリサーバーのメモリに保存されます。これを頻繁に使用すると、パフォーマンスの問題が発生する可能性があります。
于 2010-01-24T09:03:58.470 に答える
0

セッションを使用して、特定のユーザー セッションの最近アクティブな患者記録のリストを保持できます。ユーザーが新しい患者を選択するたびに、その患者の名前を「最近」リストに追加するだけです。セッションの長さを制御できるため、ユーザーのセッションが終了したときにリストの有効期限が切れるのを許可できます。ユーザーに顧客を再度選択させない限り、最近の顧客のリストで最新 (最後のエントリ) を自動選択するだけです。

于 2010-01-24T02:13:26.477 に答える
0

個人的には、ここでキャッシュをオプションとして検討します。当然のことながら、すべての患者のすべてのデータをロードする必要があります。これは、少量のデータには問題ありませんが、適切にスケーリングすることはできません。

最初に患者のデータが必要なときにデータベースにアクセスし、その後のクエリのためにキャッシュからデータを取得することを検討してください...

于 2010-01-24T02:14:12.280 に答える