サードパーティーデータのインポート

CDB を使用すると、サードパーティ製システムからデータをインポートして、CDB ワークベンチアプリケーションでクリーニングやレポートを作成することができます。これは、Vault EDC の症例のケースブックの外部に存在する症例データ (IRT システムからの症例に関するデータなど) をインポートするためのものです。

可用性: 臨床データベース (CDB) は CDB ライセンスを保有するお客様のみにご利用いただけます。詳細は Veeva のサービス担当者までお問い合わせください。

前提条件

CDB にデータをインポートする前に、組織で以下の作業を行う必要があります:


CDMS リードデータマネージャ標準治験ロールを持つユーザは、デフォルトで下記のアクションを実行することができます。組織がカスタムロールを使用する場合、そのロールには以下の権限を付与することが必要です:

タイプ 権限ラベル 制御
機能権限 ワークベンチタブ

ワークベンチタブからデータワークベンチアプリケーションにアクセスする権限

機能権限 インポートの表示

インポートページにアクセスする権限

機能権限 API アクセス

Vault CDMS API にアクセスし使用する権限(この許可は CDB 使用時にも必要です)。

機能権限 インポートの承認

設定変更を含むインポートパッケージを承認または却下する権限

機能権限 インポートパッケージのダウンロード

インポートパッケージをダウンロードする権限


インポート用データの準備

データは、一連の CSV ファイルとして CDB Vault の FTP サーバーにインポートすることができます。データをインポートするには、まず臨床データが記載された CSV ファイルに加え、データと CDB の処理方法が記述されたマニフェストファイル (.json) を作成する必要があります。次に、これらのファイルをすべて含むZIPパッケージ (.zip) を作成して、CDBにインポートします。

マニフェストビルダー: CDB には、ファイル作成を容易にするための CDB マニフェストビルダーが同梱されています。CDB マニフェストビルダーは、すべてのマニフェストファイルの設定に関する選択肢をユーザフレンドリーなインターフェイスでガイドする、ステップバイステップ式のウィザードです。CDB マニフェストビルダーでは、CDB によってあらゆるインポートに関する選択肢が提示されるため、設定に際して JSON に対する理解は不要です。

CSV データ

治験のデータコレクションフォームごとに、EDC から独立した CSV を作成します。CSV ごとに 4 つの必須列を含め、さらに実行データ項目ごとに列を含める必要があります。4 つの必須列には、各 CSV のマニフェストファイルでこれらの名前を定義することで任意の名前を付けることができます。注: これらの列名は大文字と小文字を区別するため、マニフェストファイルで提供される値と完全に一致する必要があります。CDB は、治験、施設、症例、イベント、およびシーケンスの各列以外のすべての列をデータ項目と見なしてインポートします。

説明 マニフェストファイルのキー
治験

この列内で、スタディ名前を入力します。スタディには、スタディレコードの名前 (study__v) を記入します。スタディ名に空白文字が含まれている場合、マニフェストファイルでは空白文字を含む値を使用する必要がありますが、データファイルでは空白文字をアンダースコア (_) に置き換える必要があります。

治験
施設

この列には、(Vault EDC の施設レコードからの) 施設名前 (施設番号) を入力します。

マニフェストファイルで施設列を定義せずに CSV ファイルからカラムを除外した場合、ワークベンチは症例列に基づいて一致させることができます。その際、ワークベンチは症例 ID が治験レベルで一意であることを想定してします。

施設
症例

この列には、(Vault EDC の症例レコードの名前フィールドからの) 症例に対する症例 ID を入力します。

症例
事象 この列には、データ行に関連するイベント (来院) を記載します。マニフェストファイルの edc_matching の設定に応じて、EDC イベント定義名前または外部 ID、EDC イベントイベント日、またはこの列のイベントを使用して、ワークベンチで EDC スケジュールとは別のイベントを作成することができます。また、マニフェストファイルのすべての行にデフォルトのイベントを設定し、この列を完全に除外することで、すべての行をそのイベントに割り当てることができます。イベントマッチングの詳細については以下を参照してください。 事象
フォーム
*任意
この列には、(Vault EDC のフォーム定義名前から) データ行に関連付けられたフォームを指定します。この列は、1 つのCSVで複数のフォームのデータをインポートする場合にのみ必要です。この列を含めない場合、ワークベンチは各データ行が単一のフォームのものであると見なします。

フォームマッピングの詳細については以下を参照してください。
フォーム
フォーム順序
*繰り返しフォームでは必須で、繰り返しのないフォームでは任意です。

フォームが繰り返しである場合、フォームシーケンス番号です。繰り返しフォームとは、1 つの症例に対する 1 つのイベント中に同じデータが 2 回以上収集されるものを指します。次に、シーケンス番号によってデータ行が一意に識別されます。症例イベントに複数の行 (フォーム) がある場合、ワークベンチはフォームが繰り返しであると見なし、この列を使用してシーケンス番号を設定します。この列は、フォームが繰り返しである場合は必須ですが、フォームが繰り返しでない場合は任意となります。この場合、ワークベンチはデフォルトで各行のシーケンス番号を「1」に設定します。

ワークベンチのデフォルトのシーケンス番号は「1」であるため、繰り返しフォームにこの列を含めない場合直積集合になることがあり、結果として同じ症例/施設/フォーム/フォームのシーケンス番号識別子を持つ行が生成されます。

20R1 リリースで、「sequence」は「formsequence」に改名されています。20R2 リリース (2020年8月) までは、引き続き「sequence」を使用してデータをインポートすることができます。

formsequence
項目グループ
*任意
この列には、(Vault EDC の項目グループ定義名前から) 後に項目列に関連付けられた項目グループを指定します。この列は、複数の項目グループを持つデータをインポートする場合にのみ必要です。この列を含めない場合、ワークベンチでは、データ行のすべての項目が 1 つの項目グループにあると見なされます。

項目グループマッピングの詳細については以下を参照してください
項目グループ
項目グループ順序
*繰り返し項目グループでは必須で、繰り返しのない項目グループでは任意です。

項目グループが繰り返しである場合、項目グループシーケンス番号です。繰り返し項目グループとは、1 つの症例に対する 1 つのフォーム中に同じデータが 2 回以上収集されるものを指します。次に、シーケンス番号によってデータ行が一意に識別されます。症例イベントのフォーム行に項目が 1 セット以上ある場合、ワークベンチはフォームが繰り返しであると見なし、この列を使用してシーケンス番号を設定します。

ワークベンチのデフォルトのシーケンス番号は「1」であるため、繰り返し項目グループにこの列を含めない場合直積集合になることがあり、結果として同じ症例/施設/フォーム/フォームのシーケンス/項目グループ/項目グループのシーケンス番号識別子を持つ行が生成されます。

繰り返しのない項目グループの場合、この列は任意であるため、アイテムグループに繰り返しがない場合は空欄のままにすることも、指定しないこともできます。この場合、ワークベンチはデフォルトで各行のシーケンス番号を「1」に設定します。

itemgroupsequence
行 ID
*任意
21R2 以前
値を組み合わせて、ワークベンチが行を一意に識別するために使用できる列のリストを指定します。シーケンスを識別するための数値キーがない場合に有効です。例えば、ラボデータをインポートする際に、治験症例LAB 検査を使用して行を一意に識別することができます。rowid 列のマッピングを含めると、ワークベンチはシーケンスの値を無視して、シーケンスを自動的に「1」に設定します。省略した場合、ワークベンチはデフォルトの配列治験症例イベントフォームフォームシーケンスを使用して行を識別します。

rowid への単一列リストの提供は現在もサポートされておりますが、将来のリリースで削除を予定しています。代わりに、groupiddistinctidrowid の列のリストとして定義します。行については以下を参照してください。
rowid
行 ID
*任意
21R3 以降

グループ ID: ワークベンチが治験施設症例イベントを超えてレコードをグループ化するために使用できる列のリストを指定します。ワークベンチでは、distinctidと組み合わせた groupid を使用して、レコードのシーケンス番号が自動的に増加されます。

Distinct ID: 列の値を組み合わせてワークベンチがグループのコンテキスト内でレコードを一意に識別するために使用できる列のリストを指定します (groupid治験施設症例イベントによって定義されます)。ワークベンチによって、グループ内 (groupid) で一意に識別された各繰り返しフォームまたは項目グループ (distinctid) に差分のシーケンス番号が割り当てられます。

行外部 ID: EDC からの外部 ID と同様に、外部 ID をデータ行に割り当てることができます。これは、サードパーティのデータに対するクエリのソースを識別する上で役立ちます。行の外部 ID の値を含む列を rowexternalid に提供します。CQLは、この値をコアのクエリリスティングで返します (@QRY.RowExternalID)。

groupiddistinctid、および rowexternalid を持つrowid

CSV ファイルの例:

STUDY_ID 施設 SUBJECT_ID ビジット イニシャル DOB 性別 人種
S.Deetoza 101 101-1001 スクリーニング CDA 03-27-1991 F ヒスパニック

この例では、次のように列をマッピングをしています:

  • 治験: STUDY_ID
  • 施設: SITE
  • 症例: SUBJECT_ID
  • イベント: VISIT

INITIALS、DOB、GENDER、RACE 列はすべてデータ項目です。

マニフェストファイル

マニフェストファイルは、CDB の治験ソースを提供し、ZIP 内のファイルを一覧表示するとともに、各ファイルについて、どの列が必要なデータ ポイントにマッピングされるかを一覧表示します。

ソースは、パッケージの内容を識別するためのカスタム定義値です。この値はワークベンチのソースフィールドに格納されるため、CQLを介してワークベンチでこのパッケージからのデータを特定するために使用することができます。 CQL.ソースの値は、治験内で一意である必要があります。

スタディには、スタディレコードの名前 (study__v) を記入します。スタディには、スタディレコードの名前 (study__v) を記入します。スタディ名に空白文字が含まれている場合、マニフェストファイルでは空白文字を含む値を使用する必要がありますが、データファイルでは空白文字をアンダースコア (_) に置き換える必要があります。

ソースには、データのソースを指定します。このソースは、インポートされたすべてのデータに適用されます。次に、各 CSV ファイルのファイル名 (拡張子付き) とその列のマッピングを「データ」の値として配列で一覧化します。

インポートファイルに、各データ項目に関する設定メタデータを含めるまたは含めないかを選択することができます。詳しくは以下を参照してください。

このファイルを「manifest.json」として保存します。

注: ワークベンチは、この正確なファイル名 (大文字と小文字を区別) と拡張子を持つマニフェストファイルのみを受け入れます。

マニフェストの例: 単一のフォーム

以下は、調査票を含む、eCOA からパッケージをインポートする、Deetoza の治験に関するマニフェストファイルの例です:

{
  "study": "Deetoza",
  "source": "eCOA",
  "data": [
    {
      "filename": "Survey.csv",
      "study": "protocol_id",
      "site": "site_id",
      "subject": "patient",
      "event": "visit_name"
    }  
  ]   
}

マニフェストの例: 複数のフォーム

以下は、化学および血液学フォームを含む、研究所ベンダーからパッケージをインポートする、Deetoza の治験に関するマニフェストファイルの例です:

{
  "study": "Deetoza",
  "source": "lab",
  "data": [
    {
      "filename": "Chemistry.csv",
      "study": "STUDY_ID",
      "site": "SITE_ID",
      "subject": "SUBJECT_ID",
      "event": "VISIT",
      "formsequence": "LAB_SEQ"
    },
    {
      "filename": "Hematology.csv",
      "study": "STUDY_ID",
      "site": "SITE_ID",
      "subject": "SUBJECT_ID",
      "event": "VISIT",
      "formsequence": "LAB_SEQ"
    }
  ]
}

また、行 ID のマッピングを使用することで、1つの CSV ファイルで 化学 & 血液学研究所データをインポートすることもできます。CSV ファイルでは、Lab Test Set 列を使用して、行の科学または血液学を示すことができます。

{
  "study": "Deetoza",
  "source": "lab",
  "data": [
    {
      "filename": "Labs.csv",
      "study": "STUDY_ID",
      "site": "SITE_ID",
      "subject": "SUBJECT_ID",
      "event": "VISIT",
      "rowid": ["LAB_TEST_SET", "LAB_TEST_SEQ"]
    }
  ]
} 

任意: イベントのマッチング

デフォルトでは、ワークベンチはフォームの CSV ファイルのイベントを、Vault EDC の一致するイベント定義レコードの名前と照合します。また、ワークベンチがイベント定義の外部 ID に基づいてイベントと照合するように選択することもできます。また、マニフェストファイルにデフォルトのイベントを定義し、すべての行をそのイベントに自動的に割り当てることもできます。データが EDC でスケジュールされたイベント以外で収集された場合、どの EDC イベントにもマッピングしないように選択し、必要に応じてインポートパッケージ内のイベントと一致するようにイベントを作成することもできます。

イベントが繰り返しイベントグループ内にある場合、ワークベンチはイベント定義の外部 ID を使用し、照合するためのシーケンス番号を付加します。シーケンス番号は、ファイル内の一意のイベントごとに増加します。イベントが複数のイベントグループで再利用される場合は繰り返しとはみなされません。代わりに、ワークベンチは EDC スケジュールの最初に一致するイベントとマッチングさせます。

デフォルトの挙動

マニフェストファイルにイベントマッチングの設定を含めない場合、次のデフォルトが適用されます:

  • ワークベンチは、イベント定義名前を使用して照合を行います。
  • ワークベンチは、既存の EDC イベントとの照合を試みます。EDC に一致するイベントがない場合、ワークベンチは新しいイベントを作成します。

このデフォルトの挙動は、次のマニフェスト設定と同等です:

{
  "study": "Deetoza",
  "source": "Labs", 
  "edc_matching": {
    "event": {
      "target": ["name"],
      "generate": true
    } 
  }
}

名前との照合 (デフォルト)

マニフェストファイルに edc_matching を含めない場合、ワークベンチは自動的にイベント定義名前を使用して照合します。マニフェストファイルで名前ベースのバッチ処理を指定することも可能です。

{
  "study": "Deetoza",
  "source": "Labs", 
  "edc_matching": {
    "event": {
      "target": ["name"]
    } 
  }
}

外部 ID との照合

イベント定義外部 ID (旧 OID) で照合するには、edc_matching を含め、イベントターゲットを external_id に設定する必要があります。以下の抜粋例をご確認ください:

{
  "study": "Deetoza",
  "source": "Labs", 
  "edc_matching": {
    "event": {
      "target": ["external_id"]
    } 
  }
}

デフォルトのイベントを設定します

CSV にイベントを記載する代わりに、マニフェストファイルからイベントをデフォルトのイベントとして選択することができます。すると、ワークベンチによってその CSV ファイルのすべての行にそのイベントが割り当てられます。これは、デフォルトキーによって制御されます。デフォルトには、イベント定義名前を使用します。特定のデータファイルに対するデフォルトを設定することも、パッケージレベルでデフォルトを設定することも可能です。

例: パッケージレベルのデフォルトイベント

{
  "study": "Deetoza",
  "source": "lab",
  "edc_matching": {
     "event": {
       "default": "treatment_visit"
     }
   },
  "data": [
    {
      "filename": "Labs.csv",
      "study": "STUDY_ID",
      "site": "SITE_ID",
      "subject": "SUBJECT_ID",
      "event": "VISIT",
      "rowid": ["LAB_TEST_SET", "LAB_TEST_SEQ"]
    }
  ]
} 

例: ファイルレベルのデフォルトイベント

{
  "study": "Deetoza",
  "source": "Labs",
  "edc_matching": {
    "event": {
      "default": "treatment_visit",
    }
  }
}

一致しないイベントの処理

デフォルトでは、ワークベンチが名前または外部 ID で EDC 内のイベントと一致させることができない場合、ワークベンチはソースに固有の EDC 以外のイベントに対して新しいイベントを作成します。作成された新しいイベントは、ワークベンチヘッダーイベントレコード全体の一部になります (@HDR.Eventから CQL 経由でアクセス可能)。これは、生成キーによって制御されます。デフォルトの挙動に対するマニフェストの設定は generate: trueです。データが EDC イベントスケジュール以外で収集された場合、generatefalse に設定することで、どの EDC イベントとも照合しないように選択することができます。Generatefalse にした場合、ワークベンチは新しいイベント定義を作成しなくなります。代わりに、一致する EDC イベントがない行のインポートが失敗するようになります。

例: 外部 ID で照合し、一致しないイベントを無視します

{
  "study": "Deetoza",
  "source": "Labs",
  "edc_matching": {
    "event": {
      "target": ["external_id"],
      "generate": false
    }
  }
}

すべてのデータが EDC のスケジュール以外で収集されたものである場合、ワークベンチに EDC イベントとの照合をさせずに、各イベントに対して新しいイベントを作成させるように選択することができます。これを行うには、以下の例に示すように、イベントfalse に設定します:

{
  "study": "Deetoza",
  "source": "Labs", 
  "edc_matching": {
    "event": false
  }
}

任意: フォームと項目グループのマッピング

データセット内の繰り返しフォームと項目グループのワークベンチでの解釈方法の定義を含め、CSV の行を異なるフォーム項目グループにマッピングするよう選択することができます。これによりワークベンチは 1 つの CSV を、単一のフォームと単一項目グループではなく、複数のフォーム項目グループに変換できるようになります。

例えば、LABフォームには、複数の項目グループ (各LABテストカテゴリごとに 1 つの項目グループ) を設定することができます。行のデータ項目がどの項目グループに属するかを示すには、itemgroup 列を使用します。ワークベンチでは、行内のマッピングされていない列はすべて項目として扱います。ワークベンチは、行の指定された項目グループ内のそれらの項目をインポートします。これらの列には、項目設定で追加のメタデータを指定することができます。詳しくは以下を参照してください。

以下の表は、フォーム項目グループの構成シナリオが異なる場合、ワークベンチがどのようにデータを扱うかを理解するためのものです:

フォームの定義 項目グループの定義 結果
いいえ いいえ ワークベンチでは、各行が 1 つのフォームのものであるとして扱われます。
はい いいえ ワークベンチでは各行は異なるフォームとして扱われ、フォーム列によってフォームが特定されます。フォーム列の一意な値は、それぞれ別のフォームとして扱われます。
いいえ はい ワークベンチは、各行を (itemgroup 列で定義された) 項目グループのインスタンスとして扱い、これらの行を症例フォームでグループ化します。各項目グループを繰り返し項目グループとして扱うには、itemgroupsequence 列を使用します。
はい はい ワークベンチは、行を症例フォーム、および itemgroup でグループ化します。フォーム列の一意の値は別のフォームとして扱われ、itemgroup列の一意の値は項目グループになります。

マニフェストの例: 複数のフォーム

次の例では、「Labs.csv」ファイルに複数のフォームが含まれています。これらは、「Labs.csv」ファイルのフォーム列で識別されます。

{
  "study": "Deetoza",
  "source": "lab",
  "data": [
    {
      "filename": "Labs.csv",
      "study": "protocol_id",
      "site": "site_id",
      "subject": "subject_id",
      "event": "visit",
      "form": "form"
    }
  ]
}

Labs.csv

マニフェストの例: 複数の項目グループ

次のマニフェストファイルの例では、Labs フォームに複数の項目グループがあります。これらは、「Labs.csv」ファイルのlab_category列で識別されます。

{
  "study": "Deetoza",
  "source": "lab",
  "data": [
    {
      "filename": "Labs.csv",
      "study": "protocol_id",
      "site": "site_id",
      "subject": "subject_id",
      "event": "visit",
      "item_group": "lab_category"
    }
  ]
}

Labs.csv

任意: 項目の設定

CDB マニフェストファイル内に、データワークベンチでのデータ項目の処理方法を知らせる項目メタデータを含めることができます。各項目にデータ型を指定したり、選択したデータ型に応じて追加のプロパティを指定することもできます。

項目の設定を省略した場合、CDB ワークベンチはすべての項目をテキストとして扱います。

シンプルな構成と詳細な設定の比較

項目「config」オブジェクトには、simple (簡易) と advanced (詳細) の2つの構成形式があります。簡易設定では、項目のデータ型のみを指定します。項目のプロパティにはデフォルト値を使用します。詳細設定では、データ型とプロパティを指定します。

簡易:
"items" {
    "Weight": "float"
}
詳細:
"items" {
    "Weight": {
        "type": "float",
        "precision": 2
    }
}

データ型別の利用可能可能なプロパティ

データ型ごとに使用可能な設定プロパティが異なります。

データタイプ 設定例: プロパティ プロパティの説明
テキスト
"items": {
    "Subject_Initials": {
        "type": "text",
        "length": 3
    }
}
長さ 使用できる文字数。デフォルト長さは 1500 です。
整数
"items": {
   "Actual_Dosage": {
      "type": "integer",
      "min": 1,
      "max": 1000
   }
}
最低 使用できる最小 (最低) 値。デフォルトは -4,294,967,295 です。
最高 使用できる最大 (最高) 値。デフォルトは 4,294,967,295 です。
浮動
"items": {
    "Weight": {
        "type": "float",
        "length": 4,
        "precision": 1,
        "min": 80,
        "max": 400
    }
}
長さ

小数点の左右両方に使用できる最大桁数。

最大値がこのプロパティよりも桁数が多い場合、ワークベンチはその数値を代わりに使用します。

精度

使用できる小数点以下の桁数.デフォルトは 5 です。

最大値がこのプロパティよりも小数点以下の桁数が多い場合、ワークベンチはその数値を代わりに使用します。

最低 使用できる最小 (最低) 値。デフォルトは -4,294,967,295 です。
最高 使用できる最大 (最高) 値。デフォルトは 4,294,967,295 です。
日付
"items": {
    "Start_Date": {
        "type": "date",
        "format": "yyyy-MM-dd"
    }
}
フォーマット

日付値の変換に使用するフォーマットパターン。サポートされている日付形式の一覧については以下を参照してください。

デフォルトは「yyyy-MM-dd」です。

日時
"items": {
    "End_DateTime": {
        "type": "datetime",
        "format": "MM-dd-yyyy HH:mm"
    }
}
フォーマット

日時値の変換に使用するフォーマットパターン。サポートされている日時形式の一覧については以下を参照してください。

デフォルトは「yyyy-MM-dd HH:mm」です。

時間
"items": {
    "Time_Collected": {
        "type": "time",
        "format": "HH:mm:ss"
    }
}
フォーマット

時間値の変換に使用するフォーマットパターン。サポートされている時間形式の一覧については以下を参照してください。

デフォルトは「HH:mm」です。

ブーリアン
"items": {
    "Exam_Performed": "boolean"
}
該当なし

ブーリアンデータ型には、設定プロパティはありません。

ワークベンチはブーリアン値に「true」/「false」、「yes」/「no」、「1」/「0」を許可しています。

サポートされている日時のフォーマットパターン

日付、日時、時刻の項目には、次のフォーマットパターンがあります。日時項目の場合、日付と時刻のパターンを組み合わせます。例:「yy-MM-dd HH:mm」。日付に時刻フォーマットパターン (またはその逆) を使用した場合、インポートはエラー (D-012) で失敗します。

フォーマットパターン 説明
dd MM yy 02 18 20 2 桁の日、2 桁の月、2 桁の年、区切り文字に空白 ( ) を使用
dd MM yyyy 02 18 2020 2 桁の日、2 桁の月、4 桁の年、区切り文字に空白 ( ) を使用
dd MMM yyyy 02 Feb 2020 2 桁の日、略称月 (テキスト)、4 桁の年、区切り文字に空白 ( ) を使用
dd-MM-yy 18-02-20 2 桁の日、2 桁の月、2 桁の年、区切り文字にダッシュ (-) を使用
dd-MM-yyyy 18-02-2020 2 桁の日、2 桁の月、4 桁の年、区切り文字にダッシュ (-) を使用
dd-MMM-yyyy 18-Feb-2020 2 桁の日、略称月 (テキスト)、4 桁の年、区切り文字にダッシュ (-) を使用
dd-MMM-yyyy HH:mm:ss 18-Feb-2020 12:10:50 2 桁の日、略称月 (テキスト)、4 桁の年、区切り文字にダッシュ (-) を使用、時間に秒を含める
dd/MMM/yy 18/Feb/20 2 桁の日、略称月 (テキスト)、2 桁の年、区切り文字にスラッシュ (/) を使用
dd-MMM-yy 18-Feb-20 2 桁の日、略称月 (テキスト)、2 桁の年、区切り文字にダッシュ (-) を使用
ddMMMyy 18Feb20 2 桁の日、略称月 (テキスト)、2 桁の年 (区切り文字なし)
dd MMM yy 18 Feb 20 2 桁の日、略称月 (テキスト)、2 桁の年、区切り文字に空白 ( ) を使用
dd.MM.yy 18.02.20 2 桁の日、2 桁の月、2 桁の年、区切り文字にピリオド (.) を使用区切り文字
dd.MM.yyyy 18.02.2020 2 桁の日、2 桁の月、4 桁の年、区切り文字にピリオド (.) を使用区切り文字
dd/MM/yy 18/02/20 2 桁の日、2 桁の月、2 桁の年、区切り文字にスラッシュ (/) を使用
dd/MM/yyyy 18/02/2020 2 桁の日、2 桁の月、4 桁の年、区切り文字にスラッシュ (/) を使用
ddMMMyyyy 18Feb2020 2 桁の日、略称月 (テキスト)、4 桁の年 (区切り文字なし)
ddMMyy 180220 2 桁の日、2 桁の月、2 桁の年 (区切り文字なし)
ddMMyyyy 18022020 2 桁の日、2 桁の月、4 桁の年 (区切り文字なし)
MM/dd/yy 02/18/20 2 桁の月、2 桁の日、2 桁の年、区切り文字にスラッシュ (/) を使用
MM/dd/yyyy 02/18/2020 2 桁の月、2 桁の日、4 桁の年、区切り文字にスラッシュ (/) を使用
MMddyy 021820 2 桁の月、2 桁の日、2 桁の年 (区切り文字なし)
MMddyyyy 02182020 2 桁の月、2 桁の日、4 桁の年 (区切り文字なし)
MMM dd yyyy Feb 18 2020 略称月 (テキスト)、2 桁の日、4 桁の年、区切り文字に空白 ( ) を使用
MMM/dd/yyyy Feb/18/2020 完全な月 (テキスト)、2 桁の日、4 桁の年、区切り文字にスラッシュ (/) を使用
MMMddyyyy Feb182020 完全な月 (テキスト)、2 桁の日、4 桁の年 (区切り文字なし)
yy-MM-dd 20-02-18 2 桁の年、2 桁の月、2 桁の日、区切り文字にダッシュ (-) を使用
yy/MM/dd 20/02/18 2 桁の年、2 桁の月、2 桁の日、区切り文字にスラッシュ (/) を使用
yyyy MM dd 2020 02 18 4 桁の年、2 桁の月、2 桁の日、区切り文字に空白 ( ) を使用
yyyy-MM-dd 2020-02-18 4 桁の年、2 桁の月、2 桁の日、区切り文字にダッシュ (-) を使用
yyyy-MM-dd'T'HH:mm 2020-02-18T12:10 4 桁の年、2 桁の月、2 桁の日、区切り文字にダッシュ (-) を使用、時間付き
yyyy.dd.MM 2020.18.02 4 桁の年、2 桁の日、2 桁の月、区切り文字にピリオド (.) を使用
yyyy.MM.dd 2020.02.18 4 桁の年、2 桁の月、2 桁の日、区切り文字にピリオド (.) を使用使用
yyyy/MM/dd 2020/02/18 4 桁の年、2 桁の月、2 桁の日、区切り文字にスラッシュ (/) を使用
yyyyMMdd 20200218 4 桁の年、2 桁の月、2 桁の日 (区切り文字なし)
yyyyMMdd'T'HH:mm 2020218T12:10 4 桁の年、2 桁の月、2 桁の日 (区切り文字なし) 時間付き
dd/MM/yyyy HH:mm 18/02/2020 18:30 2 桁の日、2 桁の月、4 桁の年、区切り文字にスラッシュ (/) を使用、24時間表記の時間
MM/dd/yyyy HH:mm 02/18/2020 18:30 2 桁の月、2 桁の日、4 桁の年、区切り文字にスラッシュ (/) を使用、24時間表記の時間
yyyy-MM-dd'T'HH:mm:ss+HH:mm 2020-02-18T18:30:22+00:00

4 桁の年、2 桁の月、2 桁の日、区切り文字にダッシュ (-) を使用、24時間表記の時間と秒、UTC からの時刻オフセット (+HH:mm)

: マニフェストファイルでは、T を一重引用符 (‘) で囲む必要がありますが、CSV ファイルでは使用しないでください。

yyyy-MM-dd'T'HH:mm:ssZ 2020-02-18T18:30:22Z

4 桁の年、2 桁の月、2 桁の日、区切り文字にダッシュ (-) を使用、24時間表記の時間と秒 (UTC 時間)

: マニフェストファイルでは、T を一重引用符 (‘) で囲む必要がありますが、CSV ファイルでは使用しないでください。

yyyyMMdd'T'HH:mm:ssZ 20200218T18:30:22Z

4 桁の年、2 桁の月、2 桁の日、24時間表記の時間と秒 (UTC 時間)

: マニフェストファイルでは、T を一重引用符 (‘) で囲む必要がありますが、CSV ファイルでは使用しないでください。

HH:mm 18:30 24 時間表記
HH:mm:ss 18:30:15 24時間表記の時間と秒

パッケージの例: 単一のフォーム、項目メタデータ

ここでは、Verteo Pharma のランダム化ベンダーからの (項目のメタデータを含むランダム化フォームを含む) インポートパッケージの例を紹介します:

manifest.json:

{
  "study": "Cholecap",
  "source": "IRT",
  "data": [{
    "filename": "Randomization.csv",
    "study": "protocol_id",
    "site": "site_id",
    "subject": "patient",
    "event": "visit_name",
    "items": {
      "randomization_number": {
        "type": "integer",
        "length": "14"
      },
      "date_of_randomization": {
        "type": "date",
        "format": "yyyy-MM-dd"
      }
    }
  }]
}

Randomization.csv:

上記の manifest.json ファイルの Randomization.csv

任意: データの制限 (盲検化)

項目、行、リストデータファイル、ソースレベルでデータを制限 (盲検化) して、制限付きデータへのアクセス権を持たないユーザに対してデータを非表示にすることができます。例えば、治験では、該当する治験薬を使用している被験者の研究所のみを指定して注文する場合があります。被験者がどの研究所に所属しているかを知ることで、被験者の盲検を解除することができます。この情報を制限することで、盲検化済みユーザがこれらの被験者を識別できないようにすることができます。

制限レベル マニフェストファイルの設定
項目
"items": {
  "itemname": {
    "type": "text",
    "blinded": true
  }
}
フォームレコード *インポートされる特定のフォームレコードのデータを制限します。その行が盲検化済みかどうかを示す列を使用します。
{
  "study": "Deetoza",
  "source": "Labs"
  {
    ...
    "event": "visit",
    "row_blinded": "column_id"
  }
}
データファイルの一覧化
{
  "study": "Deetoza",
  "source": "Labs"
  {
    "filename": "chempanel.csv",
    "blinded": true,
    ...
  }
}
ソースパッケージ
{
  "study": "Deetoza",
  "source": "Labs",
  "blinded": true
  ...
}

制限付きデータへのアクセス権を持つユーザ (通常はリードデータ管理者) に対しては、制限付きデータも制限の無いデータと同じように動作します。盲検化済みユーザ (制限付きデータへのアクセス権を持たないユーザ) の場合、インポートされた制限付きデータには次の動作ルールが適用されます:

  • 項目 (列) が制限付きの場合:
    • CQL プロジェクションは、制限付き項目の列を返しません。
    • CQL プロジェクションは、制限付き項目を参照する派生列を返しません。
    • 盲検化済みユーザが CQL 文で制限付き項目を参照した場合も、CQL はその列を返しません。
    • SHOW および DESCRIBE は制限付き項目を返しません。
  • 行が制限されている場合:
    • 結果セットは、フォームまたは項目グループから行を返しません。
  • リストファイル (csv) が制限されている場合:
    • デフォルトの @HDR 列はリストに含まれますが、項目列はリストに含まれません。
  • ソース (パッケージ) が制限されている場合:
    • CQL は、制限付きソース項目または列は、どのリストからも結果を返しません。
    • CDB は、ソース内のすべての項目定義項目グループ定義フォーム定義を制限付きとしてマークします。
    • すべてのデータ行が制限付きとしてマークされます。
    • デフォルトの @HDR 列は、引き続きコアリストに表示されます。

ZIP パッケージ

マニフェストファイルと CSV の作成が完了したら、ファイルをまとめて zip 圧縮します。zip 圧縮する前にこれらのファイルをフォルダ内に置かないでください。この ZIP フォルダには任意の名前を付けることができます。ただし、「Study-Name_Source_datetime.zip」のように、一意となる識別子を使用して命名することをお勧めします。ZIP フォルダ内にはフォルダを含めないでください。すべての CSV ファイルとマニフェストファイルは同じレベルにある必要があります。

Deetoza 治験の研究所インポート用 ZIP ファイル

Vault の FTP サーバへのアクセス

ドメイン内の各 Vault には、独自の FTP ステージングサーバがあります。FTP サーバは、Vault へアップロードするファイルまたは Vault から抽出するファイル用の一時的なストレージ領域です。

サーバ URL

各ステージングサーバの URL は、対応する Vault と同じです。例: veepharm.veevavault.com

FTP サーバにアクセスする方法

ステージングサーバは、お使いの FTP クライアントまたはコマンドラインからアクセスできます。

以下の設定を FTP クライアントに使用する:

  • プロトコル: FTP (ファイル転送プロトコル)
  • 暗号化: TLS に対して明示的な FTP を必要とします (FTPS)。これはセキュリティ要件です。お使いのネットワークインフラストラクチャが FTPS トラフィックをサポートしている必要があります。
  • ポート: 通常は追加する必要はなく、Port 21 にデフォルト設定されます。
  • ホスト: {DNS}.veevavault.com。例: “veepharm” は veepharm.veevavault.com の DNS です。
  • ユーザ: {DNS}.veevavault.com+{USERNAME}。これはログインしたユーザ名と同じものを使用します。例: veepharm.veevavault.com+tchung@veepharm.com。
  • パスワード: この Vault にログインするためのパスワード。これは、標準ログインに使用されているのと同じパスワードです。
  • ログインタイプ: 通常
  • ファイルの転送タイプ: バイナリとしてファイルを転送

大容量ファイルをアップロードする際に問題が発生した場合、FTP クライアントのタイムアウト設定を 180 秒に増やしてください。

プロキシまたはファイアウォールでリモート検証を有効にしている場合、ネットワーク上のコンピューターから Veeva FTP サーバへの FTP トラフィックが拒否される可能性があります。リモート検証を無効化する際には IT 部門にご相談ください。無効化できない場合、Veeva サポートにお問合せください。

FTP のディレクトリ構造

ユーザディレクトリの中には、「workbench」ディレクトリがあります。ここに、サードパーティのデータをアップロードします。ここに置かれたファイルは CDB に自動的に認識されます。

ワークベンチ用ディレクトリ

インポートが正常に終了すると、ファイルは「workbench/_processed」に移動されます。詳しくは以下を参照してください。

データのインポート

データをインポートするには、任意の FTP クライアントを使用して、ZIP ファイルを FTP ステージングサーバの「workbench」ディレクトリにアップロードします。ZIP を FTP ステージングサーバにアップロードすると、CDB によってインポートとデータ変換が行われます。

インポートが完了すると、ワークベンチから、あなたとソースに登録されている他のユーザ宛てに電子メール通知が送信されます。パッケージの再処理の結果、以前の読み込み内容から変更があった場合、ワークベンチからあなたとそのソースに登録されているユーザ宛てに通知が送信されます。

インポートの成功

インポートに成功した場合:

  • CDB によって、すべての定義レコードとそれらの関係が作成されます。
  • CDB ではデータソースを一意に識別するため、インポートされたすべてのレコードのマニフェストで指定された値を使用してソースフィールドが自動的に設定されます。(Vault EDC から取り込んだフォームは、この値が自動的に「EDC」に設定されます。)
  • インポートパッケージ内の一意なフォームごとにコアリストが作成されます。詳しくは以下を参照してください。
  • CDB によって、インポート ZIP ファイルが「workbench」から「workbench/_processed/{study}/{source}」に移動されます (インポートが失敗した場合、ZIP ファイルは「workbench」ディレクトリのルートに残ります。また、CDB によってインポートの日付と時刻がファイル名に追加されます。

以上で、ワークベンチでリストを表示できるようになります。現在のリリースでは、ワークベンチに新しいリストがすぐに表示するわけではありません。まず、治験のリストページに移動し、別のコアリストをクリックして開いた後、リストページに戻ります。その後、新しいデータリストがリストに表示されます。以上で、リストの名前をクリックすることでそのリストを開くことができます。

失敗したインポート

インポートに成功した場合:

  • CDB によって ZIP ファイルのファイル名にインポートが試行された日時が付加されますが、ZIP ファイルはそのまま「workbench」ディレクトリのルートに保持されます。
  • CDB によってエラーログ (“__errors.csv”). が作成されます。

考えられるエラーの一覧とその解決方法を参照してください。

エラー制限: インポートログに取得できるエラーおよび警告の件数は最大 1 万件のみとなっており、このしきい値に達すると記録が停止されます。

変更を加えたインポートの確認と承認

CDB にインポートされるデータが、承認されたフォーマットや構造から変更されないようにするため、CDB は各サードパーティのソースごとに、ある時点の読み込み内容から次の時点の読み込み内容に対するパッケージ構成の変更を検出するようになっています。

システムがパッケージ、ファイル、または盲検化レベルでの設定の変更、または CSV ファイル構造の変更を検出した場合、CDB はインポート処理を一時停止します。承認権限を持つユーザがパッケージを承認または却下するまで、パッケージに対する処理は行われず、一時停止ステータスになります。ユーザがパッケージを承認すると、CDB は承認理由を記録した上でデータパッケージをインポートします。パッケージが承認されると、CDB は登録者に承認された変更内容をメールで通知します。CDB は、関連するすべてのリストビューに変更インジケータを表示します。このインジケーターを閉じて、任意のリストまたはビューのフォーム変更ログをダウンロードすることができます。ユーザがパッケージを却下すると、CDB は却下理由を記録した上でパッケージに拒否をマークし、未インポートステータスを割り当てます。その後、CDB はソースの最後に正常にインポートされたデータパッケージへと戻します。

パッケージのステータスが一時停止になると、同じソースに対してアップロードされた他のすべてのパッケージはキューに入り、一時停止されたパッケージが承認または却下されるまで待機します。一時停止中のパッケージが承認または却下されると、CDB は処理のために最後にキューに入れられたパッケージにスキップします。最後に一時停止されたパッケージとキュー内の最後のパッケージの間にあるパッケージは処理されません。例えば、「パッケージ 1」をアップロードして一時停止した後、「パッケージ 1」がまだ一時停止状態のままパッケージ 2~5 をアップロードした場合、「パッケージ1」が承認または却下されると、CDB は「パッケージ 5」にスキップし、パッケージ 2~4 は未処理のままとなります。

新規のソースを使用しはじめてアップロードされたパッケージの場合、CDB は自動的に一時停止ステータスを適用し、そのソースからのデータがシステムに表示される前に、ユーザはその初回のパッケージを承認または却下する必要があります。

ワークベンチでは、承認が必要なパッケージについて差分関連オブジェクトのタブを持つパッケージ詳細パネルが表示されるようになりました。差分タブには、マニフェストの現在と前回のパッケージの変更内容が表示されます。ユーザは、前回と現在の変更内容を確認して承認することができます。関連オブジェクトタブには、パッケージの変更によって影響を受ける可能性のあるエクスポート定義リストビューが表示されます。

インポートパッケージを承認または却下するには、デフォルトで CDMS スーパーユーザおよび CDMS リードデータマネージャ治験ロールに割り当てられているインポートの承認権限が必要です。

インポートの承認

インポートを承認するには:

  1. 治験で、インポート > パッケージへ移動します
  2. インポートパッケージのリストを承認保留中でフィルタリングします。
  3. パッケージ () メニューから、パッケージの詳細を表示を選択します。

  4. パッケージ詳細パネルで、差分をクリックして変更を表示します。
  5. 変更内容の確認
  6. パッケージの承認をクリックします。
  7. 任意: 理由を入力します。
  8. 承認をクリックします。

パッケージが承認され、処理のためにキューに入ります。

インポートの却下

インポートを却下するには:

  1. 治験で、インポート > パッケージへ移動します
  2. インポートパッケージのリストを承認保留中でフィルタリングします。
  3. パッケージ () メニューから、パッケージの詳細を表示を選択します。

  4. パッケージ詳細パネルで、差分をクリックして変更を表示します。
  5. 変更内容の確認
  6. パッケージの却下をクリックします。
  7. 任意: 理由を入力します。
  8. 却下をクリックします。
  9. パッケージの却下の確認ダイアログで、確認をクリックします。

関連オブジェクトの確認

インポートパッケージに関連付けられているオブジェクトは、パッケージ詳細パネルの関連オブジェクトタブで確認することができます。このタブには、パッケージの変更によって影響を受ける可能性のあるエクスポート定義リストビューが表示されます。

このタブにアクセスするには、パッケージ詳細パネルを開き、関連オブジェクトタブをクリックして開きます。

ワークベンチには、変更された各フォームのフォームピルに変更アイコン (オレンジの丸) のバッジが表示されます。

マニフェストファイルの「フォーム」属性にマッピングされているファイルについては、インポート済みのファイルで影響を受ける可能性のあるオブジェクトは、[関連オブジェクト] タブには表示されません。

インポートステータスを表示する

インポートパッケージのステータスは、インポート > パッケージで確認することができます。このページには、Vault EDC とサードパーティ製ツールの両方から行われたすべてのインポートパッケージのステータスが一覧表示されます。このページからインポートパッケージや問題ログ (エラーと警告) をダウンロードすることができます。

ステータスの作成: インポートパッケージをインポート完了ステータスに移行するには、治験内のワークベンチユーザがリストを開く必要があります。開かれない場合、インポートのステータスは進行中のままとなります。治験が自動スワップ機能を有効化済みの場合は、これは必須ではありません。

ダウンロード可能なインポートパッケージと問題ログには、制限付きデータへのアクセス権限を持つユーザがダウンロードした場合のみ、制限付き (盲検化済み) データが含まれます。

パッケージをワークベンチにインポートする都度、ワークベンチによって他のすべてのソースに対して最新のパッケージで自動的に再処理が行われます。例えば、ワークベンチエクスポート EDC の夜間ジョブを実行してワークベンチにインポートする場合、ワークベンチによって最新の Lab Data Imaging パッケージに対しても同様に再処理が行われます。同じソースからの以前のパッケージの場合、ワークベンチによってそれらは新しいパッケージによって置き換え済みとしてマークされます。

インポートステータスフィルタを使用して、リストを簡単にフィルタリングしてインポートが完了または失敗したものだけを表示することができます。失敗したインポートのみを表示するにはエラーをクリック、完了したインポートを表示するには完了をクリックします。

ワークベンチのインポートステータス

インポートパッケージが警告のみでインポートは可能である場合、ワークベンチは警告があることを示すためにオレンジ色でステータスを強調表示します。インポート完了後に問題ログをダウンロードして、警告内容を確認することができます。

ステータス 説明
キュー処理済み パッケージは処理キューにあります。このパッケージの前にも変更内容を含むパッケージが並んでおり、このパッケージは一時停止中のパッケージの承認または却下処理の待ち状態となります。
一時停止済み CDB がマニフェストの変更を検出したため、パッケージが承認または却下されるまでインポート処理は一時停止状態となります。
承認済 マニフェストの変更内容が承認されました。CDB がパッケージをインポートするようになります。
却下 マニフェストの変更内容が却下されました。
スキップされました パッケージはスキップされ、インポートされませんでした。このパッケージが処理される前に、別のパッケージがソース用にインポートされました。このステータスは、サードパーティ製のパッケージにのみ適用されます。
進行中 ワークベンチがエラーや警告を識別することなくこのパッケージのインポートプロセスが開始されました。
進行中 (警告あり) インポート処理は進行中ですが、ワークベンチは警告を確認しました。
エラー インポートパッケージに 1 つ以上のエラーがあるため、インポートに失敗しました。問題ログをダウンロードしてエラーを確認してください。
完了 ワークベンチはエラーや警告なしでパッケージを正常にインポートしました。
完了 (警告あり) ワークベンチはパッケージを正常にインポートしましたが、1 つ以上の警告があります。問題ログをダウンロードして警告を確認してください。
未インポート 処理が開始される前に同じソースの新しいパッケージがアップロードされたため、ワークベンチはこのパッケージをスキップしました。パッケージが未インポートステータスになった場合、ワークベンチは処理日を「置き換え済み」に書き換えます。
再処理進行中 別のソースから新しいパッケージがインポートされたため、ワークベンチによってこのパッケージの再処理が開始されました。
再処理完了 ワークベンチはエラーや警告なしでこのパッケージの再処理を完了しました。
再処理完了 (警告あり) ワークベンチはパッケージの再処理を完了しましたが、1 つ以上の警告があります。問題ログをダウンロードして警告を確認してください。
再処理エラー インポートパッケージに 1 つ以上のエラーがあるため、再処理に失敗しました。問題ログをダウンロードしてエラーを確認してください。

インポートパッケージのダウンロード

インポートパッケージをダウンロードするには:

  1. インポート > パッケージへ移動します。
  2. リスト内のインポートパッケージへ移動します。
  3. パッケージのリンクをクリックします。 クリックしてインポートパッケージをダウンロードします

  4. お好みのツールで ZIP フォルダからファイルを抽出して確認します。

ログのダウンロード

任意のインポートのインポートログ (CSV) と、失敗したインポートの問題ログ (CSV) のダウンロードが可能です。インポートログには、インポートジョブとワークベンチへのデータ取り込みに関する詳細が記載されています。

インポートログには以下の内容が記載されています:

  • 変換開始時刻
  • 変換完了時刻
  • 変換の所要時間
  • インポート開始時刻
  • インポート完了時刻
  • インポートの所要時間

インポートログをダウンロードするには:

  1. インポート > パッケージへ移動します。
  2. リスト内のインポートパッケージへ移動します。
  3. パッケージ () メニューから、パッケージの詳細を表示を選択します。
  4. パッケージの詳細パネルで、問題をクリックします。
  5. 任意: 問題タブでダウンロード () をクリックして問題ログの CSV ファイルをダウンロードします。

問題ログ

問題ログには、パッケージのインポート中にワークベンチで発生したすべてのエラーと警告が記載されています。考えられるエラーと警告のリストについてはこちらを参照してください。

問題ログを確認するには:

  1. インポート > パッケージへ移動します。
  2. リスト内のインポートパッケージへ移動します。
  3. パッケージ () メニューから、パッケージの詳細を表示を選択します。
  4. パッケージの詳細パネルで、問題をクリックします。
  5. 任意: 問題ログパネルでダウンロード () をクリックしてログの CSV ファイルをダウンロードします。

アプリケーションで問題ログを最初に表示せずにダウンロードするには:

  1. インポート > パッケージへ移動します。
  2. リスト内のインポートパッケージへ移動します。
  3. パッケージ () メニューから、問題ログのダウンロードを選択します。

インポートデータの表示

アップロード時に、ワークベンチはインポートパッケージ内の一意のファイルごとにフォームを作成します。ワークベンチは、そのフォームが Vault EDC からのものであるか、サードパーティ製システムからインポートされたものであるかにかかわらず、治験内の一意のフォームごとにコアリストを自動的に生成します。

これらのコアリストのデフォルトの CQL クエリは以下のとおりです:

SELECT @HDR, * from source.filename

上記の研究所のインポートの例では、CDB は次のクエリを使用して、科学および血液学 (各 CSV ファイルに 1 つ) の 2 つのコアリストを作成します:

化学
SELECT @HDR, * from labs.Chemistry
血液学
SELECT @HDR, * from labs.Hematology

定義

CDB は、インポートしたデータを CDB データワークベンチアプリケーション内で「フォーム」として定義するために、各 CSV ファイルのフォーム定義を作成します。これらのレコードでは、CSV ファイル名 (拡張子なし) を名前として使用します (例: 「hematology」)。また、CDB は、データ項目をフォーム内でグループ化するための項目グループ定義を作成します。CDB は、「ig_hematology」のように、CSVファイル名から拡張子を除き、先頭に「ig_」を付けた名前を付けます。

これらの定義 (form_name および ig_name) はどちらも、リスト内の列として表示されます。リストの CQL クエリを編集して、これらの列を非表示にすることができます。