読者です 読者をやめる 読者になる 読者になる

DPCデータの分析とかやるブログ

DPCデータの分析なんかをテキトーにやってます。

EFファイル/Dファイルのテーブル定義(PostgreSQL用)

PostgreSQLへ取り込むことを前提にしたテーブル定義例

 

・EFファイル

CREATE TABLE EF1601
(id INTEGER,
施設コード VARCHAR(255),
データ識別番号 INTEGER,
退院年月日 DATE,
入院年月日 DATE,
データ区分 DOUBLE PRECISION,
順序番号 DOUBLE PRECISION,
行為明細番号 DOUBLE PRECISION,
病院点数マスタコード DOUBLE PRECISION,
レセプト電算コード DOUBLE PRECISION,
解釈番号 VARCHAR(255),
診療明細名称 VARCHAR(255),
使用量 DOUBLE PRECISION,
基準単位 DOUBLE PRECISION,
明細点数・金額 DOUBLE PRECISION,
円点区分 DOUBLE PRECISION,
出来高実績点数 DOUBLE PRECISION,
出来高包括フラグ DOUBLE PRECISION,
行為点数 DOUBLE PRECISION,
行為薬剤料 DOUBLE PRECISION,
行為材料料 DOUBLE PRECISION,
行為回数 DOUBLE PRECISION,
保険者番号 DOUBLE PRECISION,
レセプト種別コード DOUBLE PRECISION,
実施年月日 DATE,
レセプト科区分 DOUBLE PRECISION,
診療科区分 DOUBLE PRECISION,
医師コード VARCHAR(255),
病棟コード DOUBLE PRECISION,
病棟区分 DOUBLE PRECISION,
入外区分 VARCHAR(8),
施設タイプ VARCHAR(8),
PRIMARY KEY (id));

 

・Dファイル

CREATE TABLE D1601
(id INTEGER,
施設番号 VARCHAR(255),
データ識別番号 INTEGER,
退院年月日 DATE,
入院年月日 DATE,
データ区分 DOUBLE PRECISION,
順序番号 DOUBLE PRECISION,
点数マスタコード DOUBLE PRECISION,
レセ電算処理コード DOUBLE PRECISION,
解釈番号 VARCHAR(255),
診療行為名称 VARCHAR(255),
行為点数 DOUBLE PRECISION,
行為薬剤料 DOUBLE PRECISION,
行為材料料 DOUBLE PRECISION,
円点区分 DOUBLE PRECISION,
行為回数 DOUBLE PRECISION,
保険者番号 DOUBLE PRECISION,
レセプト種別コード DOUBLE PRECISION,
実施年月日 DATE,
レセプト科区分 DOUBLE PRECISION,
診療科区分 DOUBLE PRECISION,
医師コード VARCHAR(255),
病棟コード DOUBLE PRECISION,
病棟区分 DOUBLE PRECISION,
入外区分 DOUBLE PRECISION,
施設タイプ DOUBLE PRECISION,
算定開始日 VARCHAR(8),
算定終了日 VARCHAR(8),
算定起算日 VARCHAR(8),
分類番号 VARCHAR(255),
医療機関係数 VARCHAR(255),
PRIMARY KEY (id));

 

注意点とか
  1. SQLに取り込むには、データ上重複することのない値が各行に必要だが、EFファイル・Dファイルともにそんな値はない。なので、一番左にid列を作り、Excelで連番を作成してやる必要がある。
  2. 月末時点で退院していない患者データは、退院年月日が0になっている。そのままでは読み込み時にエラーになるので、エディタかExcelで0をinfinityに置換してやると、PostgreSQL上では特殊な時間データとして読み込んでくれる。(別に2100/12/31とかにしてもいいけど…)
  3. 算定開始日・算定終了日・算定起算日は空白行が多くて、エラーになりまくるのでVARCHAR(可変文字列)にして逃げてる。VARCHARなら空白行も読んでくれるが、それ以外だとエラーの元に。医師コードや病院コードは、病院によってはINTEGERでもいいはず。うちは英数字混在なので…