患者ジャーニーのデータテンプレート
患者ジャーニーのデータテンプレート
- 推奨される臨床属性
- 欠かせないプロセス上の節目
- MEDITECHからのデータ抽出ガイド
患者ジャーニーの属性
| 名前 | 説明 | ||
|---|---|---|---|
| アクティビティ名 ActivityName | 実行された具体的な診療上または管理上の操作です。 | ||
| 説明 この属性は、患者ジャーニー内で発生したイベントまたはタスクの名称を表します。「Patient Registered」「Medication Administered」「Discharge Order Written」など、個別のステップを記録します。アクティビティを正確に識別することは、プロセスフローをマッピングするうえで重要です。これらの値は、電子カルテ内のトランザクションコード、オーダーステータス、記録された介入などから取得することが多くあります。 重要な理由 プロセスのステップを定義し、プロセスマップを可視化するために必要です。 入手先 さまざまなトランザクションログ(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 | データを最後に抽出または更新した時点のタイムスタンプです。 | ||
| 説明 レコードが最後に処理された時点、またはプロセスマイニングツールに読み込まれた時点を示します。データの鮮度を監査し、システムの最新状態を反映した分析を行うのに役立ちます。Event Timestampとは異なり、診療イベントが発生した時刻ではなく、技術的なデータパイプラインの時刻を示します。 重要な理由 データガバナンスと、最新データに基づく分析を確保するうえで重要です。 入手先 ETL実行時のシステム日時です。 例 2023-11-01T00:00:00Z2023-11-02T12:00:00Z | |||
| 患者エピソード PatientEpisode | 特定の診療期間または受診を識別する一意の識別子です。 | ||
| 説明 Patient Episodeは、プロセス分析における中心的なケース識別子です。1回の入院または外来受診に関連する診療、管理、会計上のすべてのイベントを1つの患者ジャーニーとしてまとめます。MEDITECHシステムでは、Account NumberまたはVisit IDに対応することが多くあります。この属性は、登録から退院までの患者ジャーニーを再構成し、在院日数の計算や診療経路の分析を行うための基盤です。 重要な理由 異なるイベントを1つのプロセスインスタンスに関連付けるために必要な、必須のケースキーです。 入手先 MEDITECHのAdmissionsまたはRegistrationモジュール。通常はAccount Numberフィールドです。 例 V100938475AC29384755E993847211O229384711 | |||
| トリアージ緊急度レベル TriageAcuityLevel | トリアージ時に患者へ割り当てられた重症度評価です。 | ||
| 説明 患者の状態の緊急度を示します。通常は1~5などの尺度で表し、1が最も重篤です。この属性は「救急部門フロー分析」の中心となります。 待ち時間と患者の重症度を関連付けて分析できるため、重症患者が適切に優先されているかを確認できます。 重要な理由 救急部門の優先順位付けと安全面のコンプライアンス分析に欠かせません。 入手先 救急部門またはトリアージ看護評価画面です。 例 1 - 蘇生2 - 緊急3 - 至急4 - やや緊急 | |||
| 主診断 PrimaryDiagnosis | 患者のエピソードで特定された主な病状です。 | ||
| 説明 受診の主な理由を示すICD-10コードまたは説明を含みます。「臨床経路のバリアント分析」の基盤となるデータです。 主診断ごとにケースをグループ化することで、臨床管理者は実際の治療経路を、その病状に対する理想的な臨床経路と比較できます。 重要な理由 臨床経路を分析するためのケース分類に欠かせません。 入手先 Medical RecordsまたはAbstractingモジュールです。 例 J18.9 - 肺炎I21.9 - 急性心筋梗塞S72.0 - 大腿骨骨折 | |||
| 再入院かどうか IsReadmission | 前回の退院から30日以内に発生したエピソードかどうかを示すフラグです。 | ||
| 説明 患者の現在の登録日が、前回のエピソードの退院日から30日以内であればtrueを返すブール型属性です。「再入院とケア品質」ダッシュボードを支えます。 再入院を特定することで、前回のエピソードにさかのぼり、退院計画やフォローアップケアの不足を確認できます。 重要な理由 償還額と患者の転帰に影響する、重要な品質指標です。 入手先 同じMedicalRecordNumberについて、現在のStartTimeと前回のCase EndTimeを比較して算出します。 例 truefalse | |||
| 医療記録番号 MedicalRecordNumber | すべての受診にわたって患者を一意に識別する番号です。 | ||
| 説明 医療組織内で患者を一意に識別する医療記録番号(MRN)です。エピソードごとに付与されるIDとは異なります。同じ患者に関する複数のエピソードを時系列で関連付けることができます。 この属性は「再入院とケア品質」ダッシュボードに欠かせません。退院後30日以内に患者が再び来院したことを検出できます。 重要な理由 エピソードをまたいだ分析と、患者を中心としたビューを可能にします。 入手先 患者マスターインデックスまたは登録テーブルです。 例 MRN-100293MRN-55928388291002 | |||
| 患者区分 PatientType | 患者の受診区分です。例として、入院、外来、救急があります。 | ||
| 説明 病院受診の種類を分類します。一般的な値には、入院、外来、救急、経過観察があります。区分によって標準的なケアや想定所要時間が大きく異なるため、プロセスの絞り込みや比較に欠かせません。 このフィールドは「退院計画の最適化」ダッシュボードで、在院日数の想定を区分ごとに確認する際に役立ちます。 重要な理由 プロセス比較に欠かせない区分です(入院と外来)。 入手先 AdmissionまたはVisitテーブルです(例:AdmVisits.Status)。 例 入院緊急外科外来経過観察 | |||
| 担当医療従事者 AttendingProvider | アクティビティを担当する主な臨床担当者または医療従事者です。 | ||
| 説明 タスクを実施した、またはケアを監督した医師、看護師、技師の氏名またはIDを記録します。この属性により、速度や効率の指標を特定の職員または役割に関連付け、「治療計画策定速度」ダッシュボードで確認できます。 リソース分析にも役立ち、業務量の均衡化や臨床スタッフの研修ニーズの特定につながります。 重要な理由 リソースのパフォーマンス分析と業務量の均衡化を可能にします。 入手先 アクティビティログのProviderまたはUserフィールドです。 例 Smith医師Jones看護師Adams技師 | |||
| 病院部門 HospitalDepartment | アクティビティが発生した特定の病棟または部門です。 | ||
| 説明 アクティビティを担当した機能単位を識別します。例として、救急、放射線科、ICU、一般病棟などがあります。この属性は「部門別リソース処理量」ダッシュボードに欠かせません。 単位ごとにパフォーマンス指標を分けて確認できるため、院内搬送やリソース利用におけるボトルネックの特定に役立ちます。 重要な理由 組織分析や、特定の単位におけるボトルネックの特定に役立ちます。 入手先 トランザクションテーブルのLocationまたはDepartmentフィールドです。 例 救急部門放射線科集中治療室外科病棟3 | |||
| 退院先・退院時区分 DischargeDisposition | 退院時の患者の行き先または状態です。 | ||
| 説明 エピソード終了後の患者の行き先を示します。例として、自宅、熟練看護施設、在宅医療、死亡があります。「退院計画の最適化」ダッシュボードにおける重要な成果指標です。 分析することで、急性期後のケア施設の確保における遅延が在院日数の長期化につながっているかを特定できます。 重要な理由 在院日数と再入院リスクを分析するための重要な成果指標です。 入手先 退院時の要約または登録画面です。 例 自宅へ退院短期一般病院へ転院死亡医師の指示に反して退院 | |||
| オーダー区分 OrderCategory | 臨床オーダーの分類です。例として、検査、放射線、コンサルテーションがあります。 | ||
| 説明 検査、放射線、食事、コンサルテーションなど、オーダーを大きな区分に分類します。「診断サービスの処理時間」ダッシュボードに欠かせません。 ワークフローを分けて、画像検査と血液検査それぞれのサイクルタイムを分析できます。両者ではボトルネックが異なることが多いためです。 重要な理由 診断および治療のワークフローを区分します。 入手先 Order Entry(OE)モジュールの区分フィールドです。 例 検査室放射線科看護部薬剤部 | |||
| トリアージ待ち時間 TriageWaitTime | 登録からトリアージ完了までの所要時間です。 | ||
| 説明 「患者登録」イベントから「トリアージ完了」イベントまでの所要時間を算出します。「平均トリアージ処理時間」KPIに直接反映されます。 この時間を監視することで、救急部門の管理者は繁忙時間帯の人員配置を調整し、患者の安全基準を満たせます。 重要な理由 救急部門における重要な業務指標です。 入手先 特定のアクティビティのタイムスタンプ間の差分として算出します。 例 15分1時間20分 | |||
| 入院元 AdmitSource | 患者がどこから来たかを示します。例として、自宅、転院、紹介があります。 | ||
| 説明 医師からの紹介、救急外来、他院からの転院など、患者の入院元を示します。患者がどのようにシステムへ入ってくるかを把握できます。 流入パターンと、それが「救急部門フロー分析」やリソース計画に与える影響を理解する際に役立ちます。 重要な理由 患者の流入と需要チャネルを把握するための背景情報を提供します。 入手先 入院登録データです。 例 救急外来クリニックからの紹介熟練看護施設からの転院 | |||
| 薬剤名 MedicationName | 投与された医薬品の名称です。 | ||
| 説明 「薬剤投与」イベントに含まれる具体的な薬剤を記録します。「薬剤投与コンプライアンス」ダッシュボードに必要なデータです。 敗血症に対する抗菌薬など、リスクが高い薬剤や時間管理が必要な薬剤が、適切な治療時間内に投与されたかを看護部門の管理者が確認できます。 重要な理由 臨床上のコンプライアンスと安全性の分析に必要です。 入手先 Pharmacy(PHA)またはBedside Verification(BMV)モジュールです。 例 アセトアミノフェンバンコマイシンヘパリンインスリン | |||
| 請求金額 ChargeAmount | 特定のアクティビティまたはサービスに関連する金額です。 | ||
| 説明 検査や病室料金など、特定のイベントに計上された費用または請求額を示します。主に財務情報ですが、リソースの投入量にも関係します。 集計することで、プロセスのばらつきが財務に与える影響を把握できます。ただし、対象ビューの主な焦点は臨床フローです。 重要な理由 プロセス分析に財務面の指標を加えます。 入手先 BillingまたはBAR(Billing/Accounts Receivable)モジュールです。 例 150.001200.5045.00 | |||
| 遵守違反かどうか IsAdherenceViolation | ケースが標準的な臨床経路から逸脱したかどうかを示すフラグです。 | ||
| 説明 アクティビティの順序が、患者の主診断に定義された参照モデルと一致しない場合にtrueとなるブール型フラグです。「臨床経路のバリアント分析」を支えます。 「不適合」ケースをすばやく絞り込み、標準的なケアが実施されなかった理由を調査できます。 重要な理由 プロセスの逸脱やばらつきをすばやく特定します。 入手先 適合性チェックアルゴリズムによって算出します。 例 truefalse | |||
患者ジャーニーのアクティビティ
| アクティビティ | 説明 | ||
|---|---|---|---|
| オーダー登録 | 臨床医がサービス、薬剤、または診断検査を依頼したことを記録します。後続の診療アクティビティを開始するイベントです。 | ||
| 重要な理由 「Diagnostic Services Turnaround」KPIの基準時点になります。実施時刻と比較することで、サービス提供の遅延を特定できます。 入手先 MEDITECH OE(オーダー入力)モジュール。「OeOrders」テーブルのOrder Date/Timeフィールドから取得します。 取得 Order Enterトランザクションの実行時に記録 イベントタイプ explicit | |||
| トリアージ完了 | 救急部門で初回の看護評価が完了したことを示します。患者の緊急度と重症度スコアを確定します。 | ||
| 重要な理由 処理能力と待ち時間を測定する救急部門フロー分析ダッシュボードに欠かせません。 入手先 MEDITECH EDM(救急部門管理)モジュール。EDMトラッカーのステータス変更、またはTriage Assessment文書のタイムスタンプから取得します。 取得 ステータスフィールドがTriagedに変更された時点で記録 イベントタイプ explicit | |||
| 患者登録完了 | このイベントは、システム上で患者エピソードまたは受診記録が管理上作成されたことを示します。MEDITECH ADM(入院管理)モジュールへの最初の登録時点を記録します。 | ||
| 重要な理由 患者ジャーニーとサイクルタイムの計算開始点を定めます。総在院日数の計算に欠かせません。 入手先 MEDITECH ADMモジュール。「Admissions」テーブルの「AdmitDateTime」、またはトランザクションログの作成タイムスタンプから取得します。 取得 New Visitトランザクションの実行時に記録 イベントタイプ explicit | |||
| 患者転棟 | 患者がある場所(ユニット、病室、ベッド)から別の場所へ実際に移動したことを示します。院内の流れを追跡します。 | ||
| 重要な理由 「Internal Transfer Bottlenecks」の分析に重要です。転棟にかかる時間が長い場合、リソースの競合や搬送の遅延が考えられます。 入手先 MEDITECH ADM(入院管理)。「Location History」または「RoomBed」のトランザクションログから取得します。 取得 Transfer Patientトランザクションの実行時に記録 イベントタイプ explicit | |||
| 患者退院 | 受診記録を管理上クローズします。患者が実際に退院し、病床が解放された状態です。 | ||
| 重要な理由 プロセスの正式な終了点です。最終的な在院日数の計算と、30日間の再入院期間の定義に使います。 入手先 MEDITECH ADM(入院管理)。受診記録の「DischargeDateTime」フィールドです。 取得 Discharge Patientトランザクションの実行時に記録 イベントタイプ explicit | |||
| 薬剤投与 | 看護スタッフが患者に薬剤を実際に投与したことを記録します。通常はベッドサイドでバーコードをスキャンして取得します。 | ||
| 重要な理由 「Medication Administration Compliance」を支援します。看護ユニットにおける安全上のリスクやワークフローの中断を特定できます。 入手先 MEDITECH PHA(薬剤部)またはeMAR(電子薬剤投与記録)。投与履歴の「AdminDateTime」を使用します。 取得 Med Adminトランザクションの実行時に記録 イベントタイプ explicit | |||
| 診断結果確認済み | 診断検査(検査室または放射線科)が実施され、技師または放射線科医が結果を承認したことを示します。診断オーダーを完了するイベントです。 | ||
| 重要な理由 「Diagnostic Services Turnaround」の終了点です。関連部門のボトルネック分析に欠かせません。 入手先 MEDITECH LABまたはITS(画像・治療サービス)モジュール。結果ステータスがVerifiedまたはSignedに変更された時点から取得します。 取得 ステータスフィールドがVerifiedに変更された時点で記録 イベントタイプ explicit | |||
| 診断記録入力 | 臨床医が患者記録にコード化された診断(ICD-10)を入力した時点です。特定の診療経路を開始することがあります。 | ||
| 重要な理由 症例を分類し、「Clinical Pathway Variant Analysis」を可能にします。比較対象となる患者をグループ化するうえで重要です。 入手先 MEDITECH ABS(要約)またはMedical Records。診断コードがアカウントに関連付けられた時点で取得します。 取得 Diagnosis Enterトランザクションの実行時に記録 イベントタイプ explicit | |||
| 退院オーダー記入 | 医師が患者の退院を承認するオーダーに署名した時点のタイムスタンプです。「Discharge Planning」段階の開始点になります。 | ||
| 重要な理由 「Discharge Planning Lead Time」の基準時点になります。ここから実際の退院までの時間が、業務上の非効率を示します。 入手先 MEDITECH OE(オーダー入力)。Category = Dischargeでオーダーを絞り込みます。 取得 Order Enterトランザクションの実行時に記録 イベントタイプ explicit | |||
| ケアプラン開始 | 特定の看護計画または多職種によるケアプランを作成または割り当てたことを示します。「Treatment Plan Developed」に相当します。 | ||
| 重要な理由 「Treatment Plan Development Velocity」を測定します。ここでの遅延は、臨床上の意思決定における不足を示す可能性があります。 入手先 MEDITECH PCS(患者ケアシステム)またはCare Manager。標準Plan of Careを患者に適用した時点のタイムスタンプです。 取得 Care Plan Addトランザクションの実行時に記録 イベントタイプ explicit | |||
| コンサルテーション依頼送信 | 専門医の意見を求める特定の種類のオーダーです。「Specialist Consultation Response」ダッシュボードの計測を開始します。 | ||
| 重要な理由 多職種によるケア調整のボトルネックを特定します。ここでの待ち時間が長いと、在院日数が延びます。 入手先 MEDITECH OE(オーダー入力)。「OeOrders」をCategory = Consultで絞り込んで特定します。 取得 Order Enterトランザクションの実行時に記録 イベントタイプ explicit | |||
| コンサルテーション完了 | 専門医による評価が完了したことを示します。通常は、特定の文書種別(例:「Cardiology Consult Note」)が登録されたことから推定します。 | ||
| 重要な理由 専門医の対応速度を測定する終了点です。診療を適時に進めるうえで重要です。 入手先 MEDITECH PCM(医療提供者オーダー管理)またはEMR。特定のタイトルが付いた文書の作成タイムスタンプから推定します。 取得 前後のステータスフィールドを比較 イベントタイプ inferred | |||
| フォローアップ予約確定 | 患者の将来の受診を予約したことを示します。退院後の継続的なケアを支えるアクティビティです。 | ||
| 重要な理由 「Follow-up Appointment Scheduling」の分析を支援します。再入院率の低下と関連します。 入手先 MEDITECH SCH(スケジューリング)。退院日付近に作成された新しいAppointmentレコードを患者IDに関連付けて推定します。 取得 Appointment Created DateとDischarge Dateのフィールドを比較して導出 イベントタイプ inferred | |||
| 検体採取 | 検査室で分析する生体試料を実際に採取したことを示します。オーダーから処理までをつなぐアクティビティです。 | ||
| 重要な理由 診断プロセスの遅延原因になりやすい詳細なステップです。看護業務による遅延と検査室による遅延を切り分けるのに役立ちます。 入手先 MEDITECH LABモジュール。通常は、採血担当者がバーコードをスキャンした時点、または検体ステータスをCollectedに更新した時点で取得します。 取得 Collect Specimenトランザクションの実行時に記録 イベントタイプ 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などです。クエリでは、Patient Episodeの基準としてAdmVisitsを使用します。
SQL環境の準備:SSMSを開き、DRに接続します。新しいクエリウィンドウを開き、正しいデータベース(多くの場合、livedbなど)にコンテキストを切り替えていることを確認します。
パラメーターの設定:提供されたSQLスクリプトで、日付範囲(例:「2023-01-01」)と、DRが複数施設をホストしている場合の施設識別子のプレースホルダーを置き換えます。
抽出の実行:T-SQLスクリプト全体を実行します。スクリプトでは、Common Table Expressions(CTE)で対象母集団を定義した後、複数のデータソースをUNION ALLで結合し、標準化されたイベントログを作成します。
NULL属性の処理:クエリには、タイムスタンプがNULLになる可能性に対応するロジック(必要に応じたCOALESCEの使用)が含まれています。また、重要な結合キー(SourceID/VisitID)が存在することも確認します。
トリアージと救急データの確認:MEDITECHでは、救急外来データが特定のモジュールに格納されています。救急業務を分析する場合は、EdVisitsまたはNurInterventionsテーブルにデータが登録されていることを確認します。
オーダーカテゴリの検証:クエリでは、Categoryのurnまたはメモニックに基づき、一般オーダー、コンサルテーション、退院オーダーを分けています。施設固有のメモニック辞書に合わせて、WHERE句を調整する必要がある場合があります。
データのエクスポート:結果が返されたら、SSMSの結果グリッドを右クリックし、「Save Results As CSV」を選択します。ヘッダーが含まれていることを確認します。
最終的な整形:CSVを開き、インポート前に日付形式がISO 8601(YYYY-MM-DD HH:MM:SS)に準拠していることを確認します。
設定
- データベースアクセス:MEDITECH DR SQLデータベースでdb_datareader権限が必要です。
- 日付範囲:完了したサイクルを確保するため、退院済み患者の抽出期間は3~6か月を推奨します。
- 施設フィルタリング:DRに複数施設のデータが含まれる場合は、FacilityIDまたはSourceSystemIDでBaseVisits CTEを絞り込みます。
- エピソードの定義:スクリプトでは、一意のVisitID(Account NumberまたはEpisode Numberと呼ばれることがあります)をケースIDとして使用します。
- パフォーマンス:クエリでは、CTEを基準にスキャン範囲を制限しています。最適なパフォーマンスを得るため、AdmVisitsテーブルのAdmitDateとDischargeDateにインデックスがあることを確認します。
- 遅延:データリポジトリからの転送には、施設の設定によって15分から24時間の遅延が発生する場合があります。LastDataUpdateタイムスタンプを確認してください。
a サンプルクエリ 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%短縮し、病院業務の効率を向上
クレジットカードは必要ありません。数分で始められます。