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

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

EFファイル統合を自力でやってみる SQLでの実装(1)

PostgreSQLを使ってEFファイル統合を自力でやってみましょう。

まず、Eファイル・Fファイルを収納するテーブルを作ります。

CREATE TABLE ETEST
(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,
入外区分 VARCHAR(8),
施設タイプ VARCHAR(8),
PRIMARY KEY (id));
CREATE TABLE FTEST
(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,
PRIMARY KEY (id));

もしベンダーが2016年度のEFファイルを吐き出した場合は、Fファイルの最後に行為明細区分情報を追加する 必要があります。たぶんINTEGERで読み込めばいいと思いますが、うちのベンダーはまだそこまで対応してないので・・・

さて、次にEファイルとFファイルを読み込みましょう。 ベンダーがヘッダ付きのテキストファイルを吐き出していればよし、吐き出していなければ以下のヘッダを流用して、Excel等で貼り付けて下さい。

Eファイル

id 施設コード データ識別番号 退院年月日 入院年月日 データ区分 順序番号 病院点数マスタコード レセプト電算コード 解釈番号 診療行為名称 行為点数 行為薬剤料 行為材料料 円・点区分 行為回数 保険者番号 レセプト種別コード 実施年月日 レセプト科区分 診療科区分 医師コード 病棟コード 病棟区分 入外区分 施設タイプ

Fファイル

id 施設コード データ識別番号 退院年月日 入院年月日 データ区分 順序番号 行為明細番号 病院点数マスタコード レセプト電算コード 解釈番号 診療明細名称 使用量 基準単位 行為明細点数 行為明細薬剤料 行為明細材料料 円・点区分 出来高実績点数

本来ファイルに存在しないid項目が頭に入っています。 SQLで読み込む際は、重複のないid列が必要になるので入れてあります。Excel上で連番を作るなどしてください。 あとはエンコーディングutf-8にして読み込みます。

最後に、空のEF統合テーブルを用意しておきましょう。

CREATE TABLE EFTEST
(施設コード 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),
id SERIAL PRIMARY KEY);

EFファイルは普段と違い、SQL上でデータを追加していく形になるので、idを自動生成するように 設定してあります。 これで一通りの準備完了です。次は実際にファイルを作ってみます。