元となるCSVファイルについて

概要

このPythonパッケージは、入退院、処方オーダー、検体検査結果など最小限の臨床データをもとに、ダミーデータを追加し、SS-MIX2ストレージを構築します。
最小限の臨床データをご自身でご準備いただく必要があります。準備するデータは、下記のCSVファイル定義を満たしていればどのように準備されたものでも問題ありません。
例えば、実データを匿名加工したもの、手作業で作成したものなど、さまざまな方法で準備できます。目的に応じて、ふさわしいデータをご準備ください。
生成AIを用いてCSVファイルを準備することも可能です。例えばWatcher( https://github.com/yuakagi/Watcher )など、忠実度の高い医療データを生成できるAIモデルが公開されています。

CSVファイルの定義

一つのCSVファイルに一人の患者のデータを格納してください。ファイル名は以下のように命名してください:

<患者の最初の年齢>_<性別:M/F>_<ファイル番号>.csv

ここで、<患者の最初の年齢>はデータの最初の診療日における患者の年齢を指し、0~120の整数値を指定してください。 性別は男性ならM、女性ならFを使用してください (そのほかに、O:その他、U:不明、A:両性具有、N:適応外、も使用可能です)。

ファイル番号は、ファイル名の重複を避けるためのもので、どのような文字列でも問題ありません。ssmixtwinsのアプリケーション内で使用されることはありません。

例えば、以下のようなファイル名になります:

30_M_001.csv
45_F_002.csv
60_F_003.csv

全てのCSVファイルは、同じディレクトリに配置してください。サブディレクトリを持っていても問題ありません。ssmixtwinsは、指定されたディレクトリ内の全てのCSVファイルを再帰的に読み込みます。

次に、CSVファイルの内容を定義します。以下のコラムを持つCSVファイルを準備してください:

ベースとなる患者データ

コラム名

データ型

詳細

備考

timestamp

文字列

YYYYMMDDHHMMSSFFFFFF形式(20桁)のタイムスタンプ

ゼロ埋めで20桁にする。

type

整数

レコードの種別を表すための整数値

0:入院, 1:退院, 2:診断, 3:処方オーダー, 4:注射オーダー, 6:検体検査結果

text

文字列

イベントのテキスト表現

診断では病名、処方及び注射オーダーでは薬剤名、検体検査結果では検査項目名を格納し、そのほかの種別では空文字列。

icd10

文字列

診断のICD-10コード

type==3でのみ使用し、空欄も許容される。その他の行では空文字列。

mdcdx2

文字列

診断の病名管理番号(8桁)

type==3でのみ使用し、空欄も許容される。その他の行では空文字列。

provisional

文字列

疑い病名フラグ

type==3の行のみ使用し、疑い病名の場合は’1’を、そうでない病名は空文字列。その他の行では空文字列。

hot

文字列

薬剤コードであるHOTコードを格納する。

HOT7やHOT9など、桁数は問わない。type==4, 5の行で使用し、空欄も許容される。その他の行では空文字列。

jlac10

文字列

検体検査のJLAC10コード(17桁,ハイフンなし)

type==6の行ので必須。空欄は許容されれず、17桁である必要がある。その他の行では空文字列。

lab_value

文字列

検体検査の検査値

単位を含まない検査値を格納する。type==6の行で必須であり、空欄は許容されない。その他の行では空文字列。

unit

文字列

検体検査の単位

type==6の行で使用し、空欄も許容される。その他の行では空文字列。

discharge_disposition

文字列

退院時の処置を表す文字列

生存退院なら’01’、死亡退院なら’20’などの退院区分を表すコード。type==1の行で必須であり、空欄は許容されない。その他の行では空文字列。使用可能なコードはSSMIX-2ガイドラインの使用者定義表「0112-退院区分」を参照のこと。

ここで、入院と退院は交互に出現する必要があります。例えば、入院が一度出現した後、退院レコードが出現する前にもう一度入院レコードが出現する場合、ssmixtwinsはエラーを出力します。

コードに関しては、欠損が許容されている場合、欠損値としてそのままHL7メッセージに記録されるか、ssmixtoolsがランダムなローカルコードを割り振ります。

CSVファイルの例

以下は、CSVファイルの例です。各行は、患者の診療記録を表しています。

48_F_001.csv

timestamp

type

text

icd10

mdcdx2

provisional

hot

jlac10

lab_value

unit

discharge_disposition

20240101123000000000

5

白血球数

2A010000001930901

12300

/μL

20240101123000000000

5

赤血球数

2A020000001930901

500×10^4

/μL

20240101123000000000

5

C反応性蛋白(CRP)定量

5C070000002306201

10.0

mg/dL

20240101151700000000

0

20240101153100000000

2

急性肺炎

J189

20058577

1

20240101165500000000

3

アセトアミノフェン

1163414010202

20240101165500000000

4

セフトリアキソンナトリウム静注用1g

1198744010101

20240101165500000000

4

生理食塩水

1076790020102

20240102093000000000

5

白血球数

2A010000001930901

9000

/μL

20240102093000000000

5

赤血球数

2A020000001930901

480×10^4

/μL

20240102093000000000

5

C反応性蛋白(CRP)定量

5C070000002306201

8.0

mg/dL

20240102100000000000

4

セフトリアキソンナトリウム静注用1g

1198744010101

20240102100000000000

4

生理食塩水

1076790020102

20240103093000000000

1

01

行数に制限はありません。