患者の診療プロセス向けデータテンプレート
患者の診療プロセス向けデータテンプレート
- 推奨される診療属性
- 主なプロセス上の節目
- MEDITECHからのデータ抽出ガイド
患者の診療プロセスの属性
| 名前 | 説明 | ||
|---|---|---|---|
| アクティビティ名 ActivityName | 実施された臨床上または事務上の具体的な対応です。 | ||
| 説明 患者の診療過程で発生したイベントまたはタスクの名前を示す属性です。「患者登録」「薬剤投与」「退院オーダー作成」など、個々のステップを記録します。 プロセスの流れをマッピングするには、アクティビティを正しく特定する必要があります。これらの値は、電子カルテ内のトランザクションコード、オーダーのステータス、記録された処置などから取得します。 重要な理由 プロセスの各ステップを定義し、プロセスマップの可視化に必要です。 入手先 各種トランザクションログ(OE Orders、NUR Interventions、ADM Events)から取得します。 例 患者登録トリアージ完了薬剤投与診断結果の確認完了 | |||
| イベントのタイムスタンプ EventTimestamp | アクティビティが発生した具体的な日時です。 | ||
| 説明 アクティビティが発生した正確な時刻を記録する属性です。イベントを時系列に並べ、プロセスの各ステップ間の所要時間を計算するために使います。 トリアージから評価までの時間や、診断結果が出るまでの所要時間など、待ち時間を正確に分析するには精度の高いタイムスタンプが必要です。 重要な理由 イベントの順序付けと、サイクルタイムおよび処理量の計算に必要です。 入手先 ソーステーブルのトランザクション日時列 例 2023-10-15T08:30:00Z2023-10-15T09:15:22Z2023-10-16T14:45:00Z | |||
| ソースシステム SourceSystem | データの取得元システムを識別する項目です。 | ||
| 説明 イベントデータを抽出したMEDITECHのインスタンスまたは特定のモジュールを識別します。複数の病院で運用している場合、施設やシステムのバージョンごとのデータを区別するのに役立ちます。 単一システムからデータを抽出する場合、この属性の値は固定です。一方、病院ネットワーク全体を統合して把握するためにデータを統合する場合は、重要な属性となります。 重要な理由 複数のシステムを利用する環境で、データの来歴と追跡可能性を確保します。 入手先 データ抽出時、またはシステムIDの設定時に固定値を設定します。 例 MEDITECH_ExpanseMEDITECH_6.1Hospital_A_Main | |||
| 最終データ更新日時 LastDataUpdate | データを最後に抽出または更新した日時です。 | ||
| 説明 レコードを最後に処理した日時、またはプロセスマイニングツールに読み込んだ日時を示します。データの鮮度を監査し、分析にシステムの最新状態が反映されていることを確認するのに役立ちます。 イベントタイムスタンプとは異なり、臨床上のイベント発生時刻ではなく、技術的なデータパイプライン上の時刻を示します。 重要な理由 データガバナンスを確保し、最新のデータに基づいて分析するために重要です。 入手先 ETL実行時のシステム日付 例 2023-11-01T00:00:00Z2023-11-02T12:00:00Z | |||
| 患者エピソード PatientEpisode | 特定の診療期間または受診を識別する一意の識別子です。 | ||
| 説明 患者エピソードは、プロセス分析の中心となるケース識別子です。1回の入院または外来受診に関する臨床、事務、財務上のイベントをまとめ、1つの一連の診療過程として扱います。 MEDITECHでは、アカウント番号または受診IDに対応することがよくあります。この属性は、登録から退院までの患者の診療過程を再構成するうえで基本となり、在院日数の計算や診療経路の分析に使われます。 重要な理由 関連のない複数のイベントを1つのプロセスインスタンスに結び付けるために必須のケースキーです。 入手先 MEDITECHの入院管理または登録モジュール。通常はアカウント番号欄を使用します。 例 V100938475AC29384755E993847211O229384711 | |||
| トリアージ緊急度 TriageAcuityLevel | トリアージ時に患者に割り当てられる重症度です。 | ||
| 説明 患者の状態の緊急度を示します。通常は段階で評価し、例として1~5の尺度では1が最も重篤です。この属性は「救急部門のフロー分析」の中心となります。 待ち時間と患者の重症度を関連付けて分析できるため、重症度の高い患者が適切に優先されているかを確認できます。 重要な理由 救急部門の優先順位付けと安全基準への適合性を分析するうえで重要です。 入手先 救急部門またはトリアージ看護師の評価画面 例 1:蘇生2:緊急3:準緊急4:低緊急 | |||
| 主治医 AttendingProvider | アクティビティを担当する主な臨床医または医療従事者です。 | ||
| 説明 タスクを実施する、またはケアを監督する医師、看護師、技師の名前またはIDを記録します。この属性を使うと、特定のスタッフやロールに速度や効率の指標を関連付けられるため、「治療計画策定の所要時間」ダッシュボードに役立ちます。 リソース分析にも利用でき、業務負荷の調整や臨床スタッフの研修ニーズの特定に役立ちます。 重要な理由 リソースパフォーマンスの分析や業務負荷の調整に役立ちます。 入手先 アクティビティログの医療従事者またはユーザーフィールド 例 Smith医師Jones看護師Adams技師 | |||
| 主病名 PrimaryDiagnosis | 患者のエピソードで特定された主な病状です。 | ||
| 説明 受診の主な理由を示すICD-10コードまたは説明が含まれます。「臨床経路のバリアント分析」の基礎となる属性です。 主病名ごとにケースをグループ化すると、臨床管理者は実際の治療経路を、その病状に対する理想的な臨床経路と比較できます。 重要な理由 臨床経路を分析するためのケース分類に欠かせません。 入手先 医療記録または診療情報管理モジュール 例 J18.9:肺炎I21.9:急性心筋梗塞S72.0:大腿骨骨折 | |||
| 再入院フラグ IsReadmission | 前回の退院から30日以内に発生したエピソードかどうかを示すフラグです。 | ||
| 説明 患者の今回の登録日が前回のエピソードの退院日から30日以内の場合にtrueとなるブール属性です。「再入院とケアの質」ダッシュボードで使用します。 再入院を特定すると、前回のエピソードをたどり、退院計画や退院後のケアに不足がなかったかを調べられます。 重要な理由 診療報酬と患者の転帰に影響する、重要な品質指標です。 入手先 同じMedicalRecordNumberの今回のStartTimeと前回のCase EndTimeを比較して算出します。 例 truefalse | |||
| 医療記録番号 MedicalRecordNumber | すべての受診を通じて患者を一意に識別する番号です。 | ||
| 説明 医療記録番号(MRN)は、医療機関内で患者を一意に識別します。エピソードごとのIDとは異なり、同じ患者に関する複数のエピソードを時系列で関連付けることができます。 この属性は、退院後30日以内に再入院した患者を特定する「再入院とケアの質」ダッシュボードに欠かせません。 重要な理由 複数のエピソードを横断した分析や、患者単位での表示が可能になります。 入手先 患者マスターインデックスまたは登録テーブル 例 MRN-100293MRN-55928388291002 | |||
| 患者区分 PatientType | 患者の受診区分(入院、外来、救急など)です。 | ||
| 説明 入院、外来、救急、経過観察など、受診の種類を分類します。区分によって標準的なケアや想定所要時間が大きく異なるため、プロセスの絞り込みや比較に欠かせません。 「退院計画の最適化」ダッシュボードでは、このフィールドを使って入院期間の想定を区分ごとに確認できます。 重要な理由 プロセス比較の基本となる区分(入院と外来など)です。 入手先 入院または受診テーブル(例:AdmVisits.Status) 例 入院救急外来手術経過観察 | |||
| 病院の診療科 HospitalDepartment | アクティビティが発生した具体的な部門または診療科です。 | ||
| 説明 アクティビティを担当する機能単位を識別します。例として、「救急」「放射線科」「ICU」「一般病棟」などがあります。この属性は「診療科別リソース処理状況」ダッシュボードに欠かせません。 部門ごとにパフォーマンス指標を分けて確認できるため、院内搬送やリソース利用におけるボトルネックの特定に役立ちます。 重要な理由 組織分析や、特定の部門におけるボトルネックの特定に役立ちます。 入手先 トランザクションテーブルの場所または部門フィールド 例 救急部門放射線科集中治療室外科病棟3 | |||
| 退院先 DischargeDisposition | 退院時の患者の行き先または状態です。 | ||
| 説明 「自宅」「介護施設」「在宅医療」「死亡」など、エピソード終了後の患者の行き先を示します。「退院計画の最適化」ダッシュボードで確認する主要なアウトカム指標です。 分析すると、退院後のケア先の確保に時間がかかることで入院期間が長引いていないかを特定できます。 重要な理由 入院期間や再入院リスクの分析に用いる主要なアウトカム指標です。 入手先 退院時の診療情報入力画面または登録画面 例 自宅へ退院短期総合病院へ転院死亡医師の指示に反して退院 | |||
| オーダー区分 OrderCategory | 臨床オーダーの分類(検査、放射線、診療科への相談など)です。 | ||
| 説明 オーダーを「検査」「放射線」「食事」「診療科への相談」などの大分類に分けます。「診断サービスの所要時間」ダッシュボードに欠かせない属性です。 画像検査と血液検査ではサイクルタイムやボトルネックが異なることが多いため、ワークフローを分けて分析できます。 重要な理由 診断と治療のワークフローを区分します。 入手先 オーダー入力(OE)モジュールのカテゴリーフィールド 例 検査放射線科看護薬剤 | |||
| トリアージ待ち時間 TriageWaitTime | 登録からトリアージ完了までの所要時間です。 | ||
| 説明 「患者登録」イベントから「トリアージ完了」イベントまでの所要時間を算出します。「トリアージ平均処理時間」重要業績評価指標(KPI)に直接反映されます。 この時間を監視すると、救急部門の管理者は混雑する時間帯に合わせて人員配置を調整し、患者の安全基準を満たせるようにできます。 重要な理由 救急部門の主要な業務指標です。 入手先 特定のアクティビティのタイムスタンプの差から算出します。 例 15分1時間20分 | |||
| 入院元 AdmitSource | 患者の来院元(自宅、転院、紹介など)です。 | ||
| 説明 「医師からの紹介」「救急外来」「他院からの転院」など、患者が入院に至った経緯を示します。患者がどのように医療機関に入るかを把握するための情報です。 患者の流入パターンと、それが「救急部門のフロー分析」やリソース計画に与える影響を把握するのに役立ちます。 重要な理由 患者の流入状況や受診経路を把握するための情報です。 入手先 入院登録データ 例 救急外来診療所からの紹介介護施設からの転院 | |||
| 標準経路逸脱フラグ IsAdherenceViolation | ケースが標準的な臨床経路から逸脱したかどうかを示すフラグです。 | ||
| 説明 アクティビティの順序が、患者の主病名に対して定義された参照モデルと一致しない場合にtrueとなるブールフラグです。「臨床経路のバリアント分析」で使用します。 適合性のないケースをすばやく絞り込み、標準的なケアが行われなかった理由を調査できます。 重要な理由 プロセス逸脱やばらつきをすばやく特定できます。 入手先 適合性チェックのアルゴリズムで算出します。 例 truefalse | |||
| 薬剤名 MedicationName | 投与された医薬品の名称です。 | ||
| 説明 「薬剤投与」イベントで使用された薬剤を記録します。「薬剤投与のコンプライアンス」ダッシュボードに必要な属性です。 看護部門の責任者は、抗菌薬などの高リスク薬や時間管理が重要な薬剤が、適切な治療時間内に投与されたかを確認できます。 重要な理由 臨床上のコンプライアンスと安全性の分析に必要です。 入手先 薬剤部(PHA)またはベッドサイド照合(BMV)モジュール 例 アセトアミノフェンバンコマイシンヘパリンインスリン | |||
| 請求額 ChargeAmount | 特定のアクティビティまたはサービスに関連する金額です。 | ||
| 説明 検査や病室の利用料など、特定のイベントに計上された費用または請求額を示します。主に財務上の情報ですが、リソースの使用状況にも関係します。 集計すると、プロセスの違いが財務に与える影響を把握できます。ただし、このビューでは主に臨床フローを確認します。 重要な理由 プロセス分析に財務面の情報を加えます。 入手先 請求またはBAR(請求/売掛金)モジュール 例 150.001200.5045.00 | |||
患者の診療プロセスのアクティビティ
| アクティビティ | 説明 | ||
|---|---|---|---|
| オーダー登録 | 臨床医がサービス、薬剤、または診断検査を依頼したことを記録します。後続の臨床活動を開始するイベントです。 | ||
| 重要な理由 「診断サービス所要時間」のKPIのベースラインとなります。実施時刻と比較することで、サービス提供の遅れを特定できます。 入手先 MEDITECH OE(オーダー入力)モジュール。「OeOrders」テーブルの「Order Date/Time」欄から取得します。 記録 Order Enterトランザクションの実行時に記録 イベントタイプ explicit | |||
| トリアージ完了 | 救急部門で初回の看護評価が完了したことを示します。患者の緊急度と重症度スコアを定めます。 | ||
| 重要な理由 救急部門のフロー分析ダッシュボードで、患者の処理状況や待ち時間を測定するために重要です。 入手先 MEDITECH EDM(救急部門管理)モジュール。EDMトラッカーのステータス変更、またはトリアージ評価文書のタイムスタンプから取得します。 記録 ステータス欄がTriagedに変更された時点で記録 イベントタイプ explicit | |||
| 患者の転棟 | 患者がある場所(病棟・部屋・ベッド)から別の場所へ実際に移動したことを示します。病院内の患者の流れを追跡します。 | ||
| 重要な理由 「院内転棟のボトルネック」の分析に重要です。転棟に時間がかかる場合、リソースの競合や搬送の遅れが考えられます。 入手先 MEDITECH ADM(入院管理)。「Location History」または「RoomBed」のトランザクションログから取得します。 記録 Transfer Patientトランザクションの実行時に記録 イベントタイプ explicit | |||
| 患者の退院 | 受診記録を事務的に終了した時点です。患者は実際に退院し、病床が空きます。 | ||
| 重要な理由 プロセスの正式な終了点です。最終的な在院日数の計算と、30日以内の再入院期間の設定に使います。 入手先 MEDITECH ADM(入院管理)。受診記録の「DischargeDateTime」欄を使用します。 記録 Discharge Patientトランザクションの実行時に記録 イベントタイプ explicit | |||
| 患者登録 | 患者エピソードまたは受診記録がシステム上で事務的に作成されたことを示すイベントです。MEDITECH ADM(入院管理)モジュールへの最初の登録時点を記録します。 | ||
| 重要な理由 患者の診療過程の開始点となり、サイクルタイムの計算に使います。総在院日数の算出に欠かせません。 入手先 MEDITECH ADMモジュール。「Admissions」テーブルの「AdmitDateTime」、またはトランザクションログの作成タイムスタンプから取得します。 記録 New Visitトランザクションの実行時に記録 イベントタイプ explicit | |||
| 薬剤投与 | 看護スタッフが患者に薬剤を実際に投与したことを記録します。通常、ベッドサイドでバーコードをスキャンして記録します。 | ||
| 重要な理由 「薬剤投与のコンプライアンス」分析に役立ちます。看護部門における安全上のリスクやワークフローの中断を特定できます。 入手先 MEDITECH PHA(薬剤部)またはeMAR(電子薬剤投与記録)。投与履歴の「AdminDateTime」欄を使用します。 記録 Med Adminトランザクションの実行時に記録 イベントタイプ explicit | |||
| 診断結果の確認完了 | 検査(検査室または放射線科)が実施され、技師または放射線科医が結果を承認したことを示します。これにより、診断オーダーに関する一連の処理が完了します。 | ||
| 重要な理由 「診断サービス所要時間」の終点です。付帯部門のボトルネック分析に欠かせません。 入手先 MEDITECH LABまたはITS(画像診断・治療サービス)モジュール。結果のステータスがVerifiedまたはSignedに変更された時点から取得します。 記録 ステータス欄がVerifiedに変更された時点で記録 イベントタイプ explicit | |||
| 診断記録 | 臨床医が患者記録にコード化された診断(ICD-10)を入力した時点です。これをきっかけに、特定の診療経路が開始されることがあります。 | ||
| 重要な理由 症例を分類し、「診療経路のバリアント分析」を可能にします。患者を比較するためのグループ分けに欠かせません。 入手先 MEDITECH ABS(診療情報管理)またはMedical Records。診断コードがアカウントに関連付けられた時点で取得します。 記録 Diagnosis Enterトランザクションの実行時に記録 イベントタイプ explicit | |||
| 退院オーダー作成 | 医師が患者の退院を許可するオーダーに署名した時刻です。「退院計画」段階の開始を示します。 | ||
| 重要な理由 「退院計画のリードタイム」のベースラインとなります。この時刻から実際の退院までの差は、業務の非効率を示します。 入手先 MEDITECH OE(オーダー入力)。オーダーをCategory = Dischargeで絞り込みます。 記録 Order Enterトランザクションの実行時に記録 イベントタイプ explicit | |||
| ケアプラン開始 | 看護または多職種による個別のケアプランを作成、または割り当てたことを示します。「治療計画の策定」に相当します。 | ||
| 重要な理由 「治療計画の策定速度」を測定します。ここでの遅れは、臨床上の意思決定に課題があることを示す場合があります。 入手先 MEDITECH PCS(患者ケアシステム)またはCare Manager。標準ケアプランが患者に適用された時点のタイムスタンプです。 記録 Care Plan Addトランザクションの実行時に記録 イベントタイプ explicit | |||
| フォローアップ予約確定 | 患者の次回診療を予約したことを示します。退院後も継続してケアを受けられるようにするアクティビティです。 | ||
| 重要な理由 「フォローアップ予約」の分析に役立ちます。再入院率の低下との関連を確認できます。 入手先 MEDITECH SCH(予約管理)。退院日近くに作成された新しい予約記録を患者IDに関連付けて推定します。 記録 Appointment Created Date欄とDischarge Dateを比較して推定 イベントタイプ inferred | |||
| 専門医の診察完了 | 専門医による評価が完了した時点です。「循環器科診察記録」など、特定の文書タイプの登録から推定することがよくあります。 | ||
| 重要な理由 専門医の対応速度を測定する終点です。診療を適切なタイミングで進めるために重要です。 入手先 MEDITECH PCM(医療提供者オーダー管理)またはEMR。特定のタイトルが付いた文書の作成タイムスタンプから推定します。 記録 変更前後のステータス欄を比較 イベントタイプ inferred | |||
| 検体採取 | 検査のために生体試料を実際に採取したことを示します。オーダーから検査処理までの間をつなぐアクティビティです。 | ||
| 重要な理由 診断プロセスの遅れの原因となることが多い詳細なステップです。看護側と検査室側の遅れを切り分けるのに役立ちます。 入手先 MEDITECH LABモジュール。通常、採血担当者がバーコードをスキャンした時点、または検体のステータスをCollectedに更新した時点で記録します。 記録 Collect Specimenトランザクションの実行時に記録 イベントタイプ explicit | |||
| 診療依頼送信 | 専門医の意見を求める特定の種類のオーダーです。「専門医の診察対応」ダッシュボードで所要時間の計測を開始するイベントです。 | ||
| 重要な理由 多職種間の診療調整におけるボトルネックを特定します。ここでの待ち時間が長いと、入院期間が延びます。 入手先 MEDITECH OE(オーダー入力)。「OeOrders」をCategory = Consultで絞り込んで特定します。 記録 Order Enterトランザクションの実行時に記録 イベントタイプ explicit | |||
データ抽出ガイド
ステップ
データリポジトリサーバーの特定:MEDITECHデータリポジトリ(DR)をホストするMicrosoft SQL Serverのインスタンスを特定します。これは、トランザクション処理用のM-ATやファイルベースのデータベースとは別のものです。読み取り専用の認証情報(通常はサービスアカウント)が必要です。
スキーマのバージョン確認:MEDITECH DRの構造は、Magic、Client/Server(6.x)、Expanseの間で多少異なります。以下のクエリでは、AdmVisitsやOeOrdersなどの標準的な命名規則を使用しています。ローカルのSQL Server Management Studio(SSMS)のオブジェクトエクスプローラーで、これらのテーブル名を確認してください。
対象範囲の定義:患者の受診情報を格納するプライマリテーブルを特定します。DRの設定によって、通常はAdmVisits、RegAcct、またはAbstractDataという名前です。このクエリでは、患者エピソードの起点としてAdmVisitsを使用します。
SQL環境の準備:SSMSを開いてDRに接続し、新しいクエリウィンドウを開きます。正しいデータベース(多くの場合、livedbなどの名前)に接続していることを確認してください。
パラメーターの設定:付属のSQLスクリプトで、日付範囲(例:「2023-01-01」)や施設識別子のプレースホルダーを置き換えます。DRが複数の施設をホストしている場合は、施設識別子も指定してください。
データの抽出:T-SQLスクリプト全体を実行します。共通テーブル式(CTE)で対象データを定義した後、複数のデータソースをUNION ALLで結合し、標準化されたイベントログを作成します。
NULL属性への対応:クエリには、必要に応じてCOALESCEを使い、タイムスタンプのNULL値に対応する処理が含まれています。また、結合に必要なキー(SourceID/VisitID)が存在することも確認します。
トリアージと救急データの確認:MEDITECHでは、救急外来のデータは専用モジュールに保存されます。救急外来のワークフローを分析する場合は、EdVisitsまたはNurInterventionsテーブルにデータがあることを確認してください。
注文カテゴリの検証:クエリでは、カテゴリのURNまたは略号に基づいて、一般注文、診療科への相談、退院時の注文を分けています。施設固有の略号辞書に合わせて、WHERE句を調整する必要がある場合があります。
データのエクスポート:結果が表示されたら、SSMSの結果グリッドを右クリックし、「Save Results As CSV」を選択します。ヘッダーを含めてください。
最終的な形式確認:CSVを開き、ProcessMindにインポートする前に、日付がISO 8601形式(YYYY-MM-DD HH:MM:SS)になっていることを確認します。
設定
- データベースへのアクセス:MEDITECH DRのSQLデータベースに対するdb_datareader権限が必要です。
- 日付範囲:完了したサイクルを分析できるよう、退院済み患者の過去3~6か月分の抽出を推奨します。
- 施設による絞り込み:DRに複数施設のデータが含まれる場合は、BaseVisits CTEでFacilityIDまたはSourceSystemIDを指定してください。
- エピソードの定義:スクリプトでは、一意のVisitID(Account NumberまたはEpisode Numberとも呼ばれます)をケースIDとして使用します。
- パフォーマンス:スキャン範囲を限定するため、クエリではCTEを起点にしています。処理速度を高めるため、AdmVisitsテーブルのAdmitDateとDischargeDateにインデックスがあることを確認してください。
- データの遅延:データリポジトリからの転送には、施設の設定によって15分から24時間の遅延が生じる場合があります。LastDataUpdateのタイムスタンプを確認してください。
クエリの例 sql
/* MEDITECH Data Repository T-SQL Extraction for ProcessMind */
/* Process: Patient Journey */
/* Dialect: T-SQL */
WITH BaseVisits AS (
/* Define the population: Discharged patients within a date range */
SELECT
V.VisitID,
V.PatientID,
V.AccountNumber AS MedicalRecordNumber,
V.AdmitDateTime,
V.DischargeDateTime,
V.FacilityID,
V.PatientType,
V.AttendingProviderID,
V.DischargeDisposition,
NULLIF(DATEDIFF(MINUTE, V.AdmitDateTime, V.DischargeDateTime), 0) / 1440.0 AS LengthOfStay,
/* Flag readmissions logic would go here, simplified as 0 for base script */
0 AS IsReadmission
FROM
[YourDatabaseName].[dbo].[AdmVisits] V
WHERE
V.DischargeDateTime >= '2023-01-01'
AND V.DischargeDateTime < '2023-04-01'
AND V.Status = 'DIS' /* Discharged Status */
),
PatientDiagnoses AS (
/* Helper CTE for Primary Diagnosis to avoid duplicates in joins */
SELECT
D.VisitID,
MAX(D.ICDCode) AS PrimaryDiagnosis
FROM
[YourDatabaseName].[dbo].[AbsDiagnoses] D
WHERE
D.Rank = 1 /* Primary Diagnosis Rank */
GROUP BY
D.VisitID
),
TriageData AS (
/* Helper CTE for Triage Acuity */
SELECT
T.VisitID,
MAX(T.AcuityLevel) AS TriageAcuityLevel
FROM
[YourDatabaseName].[dbo].[EdTriage] T
GROUP BY
T.VisitID
)
/* 1. Patient Registered */
SELECT
V.VisitID AS PatientEpisode,
'Patient Registered' AS ActivityName,
V.AdmitDateTime AS EventTimestamp,
'MEDITECH_ADM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
V.FacilityID AS HospitalDepartment,
V.AttendingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
BaseVisits V
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
V.AdmitDateTime IS NOT NULL
UNION ALL
/* 2. Triage Completed */
SELECT
V.VisitID AS PatientEpisode,
'Triage Completed' AS ActivityName,
ED.TriageDateTime AS EventTimestamp,
'MEDITECH_ED' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
'Emergency Department' AS HospitalDepartment,
ED.TriageNurseID AS AttendingProvider,
V.PatientType,
ED.AcuityLevel AS TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[EdTriage] ED
INNER JOIN BaseVisits V ON ED.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
WHERE
ED.TriageDateTime IS NOT NULL
UNION ALL
/* 3. Order Placed (General) */
SELECT
V.VisitID AS PatientEpisode,
'Order Placed' AS ActivityName,
O.OrderDateTime AS EventTimestamp,
'MEDITECH_OE' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
O.Department AS HospitalDepartment,
O.OrderingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[OeOrders] O
INNER JOIN BaseVisits V ON O.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
O.Category NOT IN ('CONSULT', 'DISCHARGE') /* Exclude specific types handled elsewhere */
UNION ALL
/* 4. Specimen Collected */
SELECT
V.VisitID AS PatientEpisode,
'Specimen Collected' AS ActivityName,
L.CollectionDateTime AS EventTimestamp,
'MEDITECH_LAB' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
'Laboratory' AS HospitalDepartment,
L.CollectedBy AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[LabSpecimens] L
INNER JOIN BaseVisits V ON L.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
L.CollectionDateTime IS NOT NULL
UNION ALL
/* 5. Diagnostic Result Verified */
SELECT
V.VisitID AS PatientEpisode,
'Diagnostic Result Verified' AS ActivityName,
R.VerifiedDateTime AS EventTimestamp,
'MEDITECH_LAB' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
'Laboratory' AS HospitalDepartment,
R.VerifiedBy AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[LabResults] R
INNER JOIN BaseVisits V ON R.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
R.VerifiedDateTime IS NOT NULL
UNION ALL
/* 6. Diagnosis Documented */
SELECT
V.VisitID AS PatientEpisode,
'Diagnosis Documented' AS ActivityName,
DX.EntryDateTime AS EventTimestamp,
'MEDITECH_ABS' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
V.FacilityID AS HospitalDepartment,
DX.ProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[AbsDiagnoses] DX
INNER JOIN BaseVisits V ON DX.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
DX.EntryDateTime IS NOT NULL
UNION ALL
/* 7. Care Plan Initiated */
SELECT
V.VisitID AS PatientEpisode,
'Care Plan Initiated' AS ActivityName,
N.CreateDateTime AS EventTimestamp,
'MEDITECH_NUR' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
N.NurseUnit AS HospitalDepartment,
N.NurseID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[NurPlan] N
INNER JOIN BaseVisits V ON N.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
N.CreateDateTime IS NOT NULL
UNION ALL
/* 8. Medication Administered */
SELECT
V.VisitID AS PatientEpisode,
'Medication Administered' AS ActivityName,
M.AdminDateTime AS EventTimestamp,
'MEDITECH_PHA' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
M.AdminLocation AS HospitalDepartment,
M.AdministeredBy AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[PhaMedAdmin] M
INNER JOIN BaseVisits V ON M.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
M.Status = 'ADMINISTERED'
UNION ALL
/* 9. Consult Request Sent */
SELECT
V.VisitID AS PatientEpisode,
'Consult Request Sent' AS ActivityName,
O.OrderDateTime AS EventTimestamp,
'MEDITECH_OE' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
O.Department AS HospitalDepartment,
O.OrderingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[OeOrders] O
INNER JOIN BaseVisits V ON O.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
O.Category = 'CONSULT'
UNION ALL
/* 10. Consultation Completed */
SELECT
V.VisitID AS PatientEpisode,
'Consultation Completed' AS ActivityName,
O.CompletedDateTime AS EventTimestamp,
'MEDITECH_OE' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
O.Department AS HospitalDepartment,
O.OrderingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[OeOrders] O
INNER JOIN BaseVisits V ON O.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
O.Category = 'CONSULT'
AND O.Status = 'COMPLETED'
AND O.CompletedDateTime IS NOT NULL
UNION ALL
/* 11. Patient Transferred */
SELECT
V.VisitID AS PatientEpisode,
'Patient Transferred' AS ActivityName,
TX.TransferDateTime AS EventTimestamp,
'MEDITECH_ADM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
TX.ToLocation AS HospitalDepartment,
NULL AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[AdmRoomTx] TX
INNER JOIN BaseVisits V ON TX.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
TX.TransferDateTime IS NOT NULL
UNION ALL
/* 12. Discharge Order Written */
SELECT
V.VisitID AS PatientEpisode,
'Discharge Order Written' AS ActivityName,
O.OrderDateTime AS EventTimestamp,
'MEDITECH_OE' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
O.Department AS HospitalDepartment,
O.OrderingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[OeOrders] O
INNER JOIN BaseVisits V ON O.VisitID = V.VisitID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
O.Category = 'DISCHARGE'
OR O.Mnemonic LIKE '%DISCHARGE%'
UNION ALL
/* 13. Patient Discharged */
SELECT
V.VisitID AS PatientEpisode,
'Patient Discharged' AS ActivityName,
V.DischargeDateTime AS EventTimestamp,
'MEDITECH_ADM' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
V.FacilityID AS HospitalDepartment,
V.AttendingProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
BaseVisits V
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
V.DischargeDateTime IS NOT NULL
UNION ALL
/* 14. Follow-up Booked */
SELECT
V.VisitID AS PatientEpisode,
'Follow-up Booked' AS ActivityName,
S.BookDateTime AS EventTimestamp,
'MEDITECH_SCH' AS SourceSystem,
GETDATE() AS LastDataUpdate,
V.MedicalRecordNumber,
S.ApptDepartment AS HospitalDepartment,
S.ProviderID AS AttendingProvider,
V.PatientType,
T.TriageAcuityLevel,
D.PrimaryDiagnosis,
V.DischargeDisposition,
V.LengthOfStay,
V.IsReadmission
FROM
[YourDatabaseName].[dbo].[SchAppt] S
INNER JOIN BaseVisits V ON S.PatientID = V.PatientID
LEFT JOIN PatientDiagnoses D ON V.VisitID = D.VisitID
LEFT JOIN TriageData T ON V.VisitID = T.VisitID
WHERE
S.BookDateTime > V.AdmitDateTime
AND S.BookDateTime <= DATEADD(day, 30, V.DischargeDateTime) /* Logic to link appt to episode */
AND S.Status NOT IN ('CANCELLED', 'NOSHOW'); 準備はできましたか?
このテンプレートをMEDITECHのデータに適用し、診療業務の改善に取り組みましょう。病院業務の効率を高めるためのデータ抽出方法について、当社チームがご相談を承ります。
患者の診療プロセスを最適化し、遅延を今すぐ削減
サイクルタイムを30%短縮し、病院業務の効率を向上
クレジットカード不要。数分で開始できます。