0

現在、患者の病気、優先順位、および待機時間に関するデータを保持するデータベースに 3 つのテーブルがあります。患者の優先度と病気を予想される待ち時間に割り当てたいとします。たとえば、患者の優先度が低く、緊急でない場合、expected_waiting_time = 3 時間です。

以下は、優先順位、病気、待ち時間に関する情報を保持するテーブルです。

Priority Table
High
Moderate 
Low 

Illness Table
Critical 
Immediate 
Non-urgent

Expected_Waiting_time
0 - 10 (mins)
30 - 60
60 - 90
etc 

編集:

出力例

PatientID  Illness      Priority   Expected waiting time 
 1         non-urgent    Low        3 hours 
 2         non-urgent     Low       3 hours 
 3         Critical       High      0
 4         Immediate      Moderate  1-2 hours
4

3 に答える 3

0

待機病気および優先度を関連付ける表を作成します。次に、他の 2 つの値に基づいて「待機」を選択します。

病気 = <値> および優先度 = <値> の wait_table から待機を選択します。

テーブルには、適切な値のwaitに割り当てられた、病気優先度の一意の組み合わせがすべて含まれます。

ここにフィドルがあります。それはかなり簡単です。

于 2013-03-09T13:47:06.157 に答える
0

あなたのデータベース


最初から始めましょう。テーブルは、クライアントの待機時間を正常に計算して保存するために必要なすべてのバックエンド データです。

あなたのプライオリティテーブル

値が 1 つのpriorityテーブルがあります。それが最初の警報です。値が1つしかない場合は、別のテーブルのフィールドとして良くないですか? おそらくこれを患者の詳細と組み合わせると、クライアントの詳細だけですべての情報にアクセスできることになります。おそらく次のようなものです:

Client Table
ClientID    ClientName    ClientPriority

これは、クライアントの名前を使用して、その優先度を推測できることを意味します。

病気の表

Illness Table  
IllnessID    IllnessName     IllnessLevel

これは、クライアントの病気で、あなたが彼らの IllnessLevel に到達できることを意味します。

あなたの待ち時間表

このままでいいと思います。別のテーブルに待ち時間があるということは、必要に応じて変更できることを意味します。私がお勧めするのは、それを変更することです。そのため、このようになります。数値は任意であり、優先順位に使用する値と病気の重症度に応じて、必要に応じて変更できます。

Expected_Waiting_time
Waiting_Time    PatientScore
0 - 10 (mins)   10
30 - 60         5
60 - 90         1

あなたのプログラミングロジック


必要な情報を取得する

ここで、患者の詳細とその状態を取得する必要があります。たとえば、クライアントが自分の名前または ID をあなたに教えたとしましょう。通常、医師では、何らかの会員カードを提供し、そこから詳細を取得するため、ID を要求することはまったく普通のことです。

Client Inputs: ID 1
Client Illness: A Cold

クライアントの ID から、SQL を使用してデータベースを呼び出します。

SELECT * FROM Clients WHERE ClientID=:ID

ここで、準備済みステートメントを使用していることに注意してください。これらが何であるかわからない場合は、ここでそれらについて読む必要があります。

お客様の詳細を要求すると、お客様が優先されます。次に、あなたは彼らの病気に移ります。

SELECT * FROM Illness WHERE IllnessID = :IllnessID

ここでも単純な SQL ステートメントを使用して、病気に関するすべての詳細を取得します。

計算の実行

このセクションでは、スコアを計算するために、取得した値を使用して何かを行う必要があります。たとえば、患者の優先度が 10 で、患者がCritical病気を示している場合、スコアは 20 であると言えます。

単純にデータベースにクエリを実行して、20 に最も近い値を取得します。これを行う方法がわからない場合は、この質問を読んで助けを求めてください。

そして出来上がり、待ち時間があります。

于 2013-03-09T13:50:24.677 に答える
0

私の最初の観察は、あなたのデータポイントが意味をなさないように見えるということです. 誰かが重要な場合、定義により優先度が高く、緊急でない場合は優先度が低くなります。あなたのテーブルは、同じ情報を別の方法で繰り返しているようです。

また、「60~90分」というデータセットから「3時間」という絶対的な待ち時間を求めることはできません。あなたは範囲で終わる必要があります。

ただし、重大な低優先度または緊急ではない高優先度が存在する可能性があると仮定すると、次のようになります。

優先度や病気を待ち時間に関連付けるテーブルが必要です。それらが累積的かどうか、またはペアリングに基づいて異なるかどうかを示す例を示していません。前者の場合は、Illness テーブルと Priority テーブルのそれぞれに時間列を追加するだけで、値を合計できます。後者の場合は、病気と優先度のすべての可能な組み合わせを含むテーブルを作成し、それに参加します。

于 2013-03-09T13:51:23.673 に答える