いつもこちらではお世話になっております。
SQL serverを使用しています。
膨大なデータの中から、「変化のあったとき」を抽出したいと考えています。
同じ薬剤を連続して投与することが基本となっており、それを逸脱した状況を拾いたいです。
下記のようなデータがあります(元データは数万件あります)。
患者 薬 投与量 投与日
a かぜ薬A 1錠 5月1日
a かぜ薬A 1錠 5月2日
a かぜ薬A 1錠 5月3日
a かぜ薬A 2錠 5月4日
b かぜ薬B 1錠 4月4日
b かぜ薬C 1錠 4月5日
c かぜ薬A 1錠 6月5日
c かぜ薬A 1錠 6月6日
c かぜ薬A 1錠 6月7日
c かぜ薬A 1錠 6月8日
c かぜ薬A 1錠 6月15日
例1)
患者Aの投与量が変わった
例2)
患者Bの薬が変わった
例3)
患者Cの投与日が連続ではなく投与された
このように「連続して同じ薬剤を同じ投与量使用しなかったとき」を知りたいです。
最低限、
1 その患者が、連続(毎日)して同じ薬剤・投与量を投与し続けたか否か?
(数日で一般的な投与期間は終わります)
が知りたいですが、追加で
2 連続して投与した日数(同じ薬剤・投与量で1セットとして)
が知りたいです。
自分でも考えてみたのですが、妙案が思いつきませんでした。
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
計画は存在しないのでしょうか?
計画が存在しててその計画と実績に差異があるのを見つけるのは難しくないですが
提示されている例だと結局全てのデータを一つ一つ洗い出し照合する必要があります
これはデータベース化する意味がありません
大量のデータの中から条件を絞って抽出する
抽出したデータを加工する
こういうのはデータベースとして得意分野ですが
例の場合だと、一人一人の患者に関して抽出して
その後は前後関係の比較を行うので・・・・
やってやれないことはないですが
SQL Server単独ではなく、抽出して判断するプログラムを別途準備する必要があるでしょう
No.1
- 回答日時:
条件が複雑なのと、曖昧で、そのような柔軟なニーズにDBのみで対応することは私は得策ではないと思います。
あくまで例だとしても、仮に実現するとすれば、一つの解決策はVIEWだと思いますが、その都度、集計が走ることになります。
OracleのマテリアライズドビューのようなものがSQLServerにあれば少しは負荷を減らせるかもしれません。
「最低限」を見ると、1日1回のバッチで対応できそうなので、夜間バッチで、アプリで対応するのが普通に感じます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server SQL 期間内の実施数を合計したい 2 2023/03/03 22:28
- 統合失調症 精神薬の一つにエビリファイの液剤?有るみたいなのですが、投与期間はどの程度? 上記の薬品をもう13年 1 2023/05/03 03:16
- 呼吸器・消化器・循環器の病気 高齢者の肺マック症と気管支鏡検査のリスクについて 3 2022/11/12 19:58
- がん・心臓病・脳卒中 腫瘍マーカーの上昇について 4 2022/08/27 09:17
- 犬 犬 慢性腎不全に抗生剤? 1 2022/06/15 02:00
- 医学 発がん性物質のエビデンスなのですが、①と②の違いを教えて下さい。 ①雌雄のラットに本物質を2年間混餌 1 2022/04/04 21:35
- 健康保険 随時改定・月変 について教えて下さい。 1 2023/01/15 14:54
- がん・心臓病・脳卒中 乳がん治療にジーラスタは不可欠なのか? 1 2023/04/09 22:39
- 英語 Results: microCT analysis demonstrated that the ma 3 2023/01/05 23:05
- 医療事務・調剤薬局事務 どちらの薬局の方が安いか、判定お願いします 1 2022/09/22 17:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
抽出したデータを修正して元の...
-
エクセル関数 文字(ハイフン...
-
空白文字とスペースの検索
-
MS-DOSコマンドプロンプトを途...
-
ACCESSの集計クエリで3件ある...
-
SQLServerからエクセルにデータ...
-
<SQL>条件付きで最小値レコード...
-
LIKE *ABC* が ACCESSでは使え...
-
商品テーブルからカテゴリ別の...
-
ACCESSのクエリで同じSQL文だが...
-
GROUP BYを行った後に結合した...
-
Accessで別テーブルの値をフォ...
-
SELECTで1件のみ取得するには?
-
select句副問い合わせ 値の個...
-
SQL文で右から1文字だけ削除す...
-
Oracleでの文字列連結サイズの上限
-
Excelでセルの書式設定を使用し...
-
GROUP BYを使ったSELECT文の総...
-
レコードが存在しなかった場合
-
キーが同じを複数行を1行にま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
抽出したデータを修正して元の...
-
ACCESSの集計クエリで3件ある...
-
エクスプローラーで「2つの条件...
-
SQLを駆使したデータ抽出ってど...
-
<SQL>条件付きで最小値レコード...
-
エクセル関数 文字(ハイフン...
-
MS-DOSコマンドプロンプトを途...
-
アクセス クエリ-で空白以外の...
-
SQLServerからエクセルにデータ...
-
空白文字とスペースの検索
-
ACCESSのクエリで同じSQL文だが...
-
LIKE *ABC* が ACCESSでは使え...
-
Excel VBA:セルを新旧1つずつ...
-
商品テーブルからカテゴリ別の...
-
HTMLファイルから、特定の部分...
-
VBA CSVファイルを文字列に
-
エクセルデータの末尾の改行を...
-
ACCESSで「"」を検索する
-
日付データの抽出方法を教えて...
-
【Oracle】欲しいデータを含め...
おすすめ情報
コメントありがとうございます。
既に収集されているデータを1患者ごとに1列に集約後、別のデータを突合する予定です。
そのため、今回挙げさせて頂いている「例」では中途半端な状態になることも承知しておりますm(_ _)m
補足させて頂きます。
基本的に連続して数日間、投与することは決まっていますので、
1 「連続投与が途切れた日」
2 「連続投与した日数」
3 「(同一患者で)薬剤の種類が変わった日」
4 「薬剤の量が変わった日(薬剤も一緒に変わっていてもOK)」
これらの4点を、それぞれで「条件に合うなら1、それ以外は0」といった列を4つ追加でも大丈夫です。
よろしくお願いします。