9 返信 最新の回答 日時: Apr 2, 2012 8:12 AM ユーザー:mahsa828

    テーブルとリレーション

    mahsa828

      タイトル

      テーブルとリレーション

      フォーラムに投稿

      マーサの主治医です。 FM11AD Win7 で使用しています。

      現在

        テーブル名               フィールド名

       [飼主詳細]        飼主ID    飼主名    住所

                        | リレーション

       [ペット詳細]       飼主ID    ペットID   ペット名

                                | リレーション

        [カルテ]         カルテID   ペットID   診断名

                       | リレーション

        [稟告]          カルテID   稟告ID   ペットID   来院理由  主訴など30項目以上

       

      というようなテーブル、リレーション関係を作っています。

      これにより、[カルテ]テーブルに関連付けられた"カルテ"レイアウトにポータルで稟告の情報を表示しています。

      通常、カルテは診察時に作成され、同時に稟告のレコードも作製されます。

       

      診察前に受付で稟告をとろうと思った場合、カルテを作成しないとカルテにリレーションされた稟告のレコードが作れないと思います。この場合、受付はしたが、都合で診察を受けずに帰ってしまった患者さんのカルテができてしまうので、この方法はとりたくありません。

       

      [カルテ]と[稟告]のリレーションをやめ、[ペット詳細]と[稟告]をペットIDでリレーションさせ、稟告のレコードを作成し、[カルテ]においてレコード作成後稟告で作成したレコードにカルテIDを入力することでリレーションを作りカルテレイアウト上に稟告レコードをポータル表示できるでしょうか?(カルテレイアウト上でも稟告レコードの修正がしたい)

      いろいろリレーションを変えて試して見ましたが、うまくいきません。やり方が悪いのか、不可能なことをやっているのかわからなくなり相談させていただきました。

       

      また、まったく別の視点から解決策だあればお教えください。

       

       

       

       

        • 1. Re: テーブルとリレーション
          Shin

          稟告(ずいぶん難しい言葉をお使いですね)テーブルに、日付が入っていると思います。

          カルテテーブル上に、グローバル計算フィールドで日付フィールドを作り、IDと日付でリレーションした、稟告テーブルを関連フィールドして表示すればいかがでしょう。何らかの入力がされた時点で、そのID,日付で稟告のレコードが作製されます。

          • 2. Re: テーブルとリレーション
            mahsa828

            Shinさん、いつもありがとうございます。

            私にはちょっと難しそうですが、がんばってみます。わからないことがあったらまた質問させてください。

            稟告、年がばれそうです。いまは問診ですかね?

            • 3. Re: テーブルとリレーション
              mahsa828

              Shinさん、できました!!ありがとうございます。

              ただ、グローバル計算フィールドではなく、普通の日付フィールドでリレーションしました。グローバル計算フィールドにどういう式を入れるのかわからなかったのです。

              グローバル計算フィールドにするほうがよいのでしょうか?

               

              追加の質問で申し訳ないのですが、今のリレーションだと1日1カルテ、1稟告の場合問題は無いのでしょうが、ごくまれに1日に2カルテとなる場合があります。当然稟告も2つとなり個々のカルテに対応した稟告が表示されないのではないでしょうか?(すみません、確認もせずに質問してしまいました。)

              • 4. Re: テーブルとリレーション
                Shin

                日付の代わりに、タイムスタンプを使われれば良いでしょう。これでしたら、秒単位で区分できます。

                • 5. Re: テーブルとリレーション
                  mahsa828

                  マーサの主治医です。

                  タイムスタンプだと時間が正確になりすぎて逆にうまくいきません。

                   

                  1.稟告テーブルにて稟告作成 タイムスタンプ 2012/3/31/10:22:30

                  2.カルテテーブルにてカルテ作成 タイムスタンプ 2012/3/31/10:25:20

                  となると、タイムスタンプで = のリレーションではうまくいきません。

                  通常は1,2の順に作業が進みますが、時にはカルテ作成後稟告が作成されることもあります。

                   

                  タイムスタンプで近い時刻のテータとリレーションさせることができるのでしょうか?

                  • 6. Re: テーブルとリレーション
                    Shin

                    タイムスタンプの時刻部分を、適当な区切り時間に変換してはいかがでしょう。

                    必ず稟告テーブルで先に入力が行われるのでしたら、比較リレーションで同日の最新の物を採用する、というリレーションが作れますが、逆がありえるのでしたら、だめですね。

                    1日に複数回の受診がある状況で、同じ時刻帯に複数回は考えられますか?

                    • 7. Re: テーブルとリレーション
                      mahsa828

                      Shinさんこんばんは、いつもありがとうございます。

                      タイムスタンプのデータを加工して利用すればよいということですか、やってみます。

                       

                      複数回の受診は、通常AM PMで分かれることが多いですが、まれに同じAM PMになることもあります。時間帯もまちまちです。

                       

                      受付時に必ず稟告を作成するという決まりを作れば、比較リレーションで同日の最新の物を採用で簡単にいけそうですか? よろしければどのようなリレーションか教えていただけますか?

                      • 8. Re: テーブルとリレーション
                        Shin

                        > 受付時に必ず稟告を作成するという決まり

                        これがあれば、簡単です。

                        カルテ       稟告  

                         ID      = ID

                         タイムスタンプ ≧ タイムスタンプ

                        と言うリレーションで、タイムスタンプで降べきにソートしておけばいいでしょう。

                        それに1時間以内、という制限をつけるなら、

                         タイムスタンプ < タイムスタンプ + 3600

                        • 9. Re: テーブルとリレーション
                          mahsa828

                          早速のご回答ありがとうございます。

                          スタッフがきちっと稟告をとるようになるので、この方法で行きます。

                           

                          Shinさん、ほかみなさんのおかげでよい電子カルテになりそうです。

                           

                          PS.現在、在庫管理で悩んでいますので、また後日質問させてください。