2008/07/30

ダイナミクスと特定健診簡易入力システムの連携

特定健診簡易入力システムと、ダイナミクスを連携させるソフトウェアの開発が終了し、Ver.1がリリースされます。

ダイナミクス側から、健診患者の保険情報そのほかをすべて取り出し、また血液データなどを抽出して
特定健診簡易入力システムに自動入力するソフトウェアです。

一例あたりデータの電子化には数百円のコストを要求する代行業者がおりますが、これにより無料で電子化できることとなるでしょう。

<要件>
ダイナミクスを使用している。
特定健診を行っている。
特定健診簡易入力システムをインストール済み。
ダイナミクスで血液データが管理できる。
(今まで管理していなくても、検査会社のCSVファイルをダイナミクスに読み込めば良い)

<準備>
特定健診簡易入力システムでの請求の仕方について、マニュアルを読んだ。
同システムでマスターの整備が終了している。

2008/07/04

特定健診ソフトマスターとの連携

特定健診ソフトに、自動的に検査データが入力されるようにしなければ、意味がない。
ミスも生じる。
国保は検査会社からデータが直接いく仕組みを作らなかったから、エラー率はおそらく数%にのぼる。
社保は逆に検査会社とまず契約してデータを直行させるようにしたようだ。これにはいろいろ裏もあるのだろうが、統計に耐えるようなデータを得られるとすれば後者だろう。
一人当たり数百円支払って業者に代行入力させるというが、エラーを容認するということか。まあ良い。

そこで、自前でエラーが出ないような仕組みを用意するとなれば、採血データを健診システムに自動入力することしか考えられない。

ところが健診システムのコードは、レセプトの厚生労働省コードとは違っていた。
例えばGOT(GOTは全角文字)は厚生労働省コード160022510である。
ところがT_KENSHINMASTERをみると、GOTの表記はGOT(AST)(GOTは半角、それ以後全角)であって、1:紫外吸光光度法(JSCC標準化対応法)で測定した場合のコードは3B035000002327201である。
また、当院は昭和メディカルに検査をお願いしているが、この場合のコードは27であり、表記はGOT(全角)である。

このバラバラのデータを関連づけせねばならない。

このために作ったのが以下のフォームです。

このテーブルが各医院共通なのか、当院だけなのか、それがわかりません。

こういうテーマがずっとダイナミクスにもあって、ようやく最近マスター互助会が作られた。これはエポックメイキングな出来事だといえる。
次はフォーム互助会という噂もあり、楽しみです。

ソフトウェアを作る際に、自分の医院で作るだけならばわざわざこんな仕組みも、リンクするための仕組みも、ドキュメントも必要ない。ところが人が使うとなると、膨大な作業が生じます。こんなフォームを作らなくちゃいけない。
ダイナミクスをあんなに安価で提供している吉原先生はすごいと思うし、CCIを無料で提供しちゃっている久納先生もすごいと思う。

いつもソフトウェアを作るときのハードルは、「自分以外の人が使う」「ドキュメント」です。
自分で使うだけなら、昨日であらかたできてると思う。

フリーソフトウェア作者という職能ジャンルがあるけれど、あれはボランティアだと思います。

2008/07/03

特定健診ソフトとの連結開始

そこでまず作ったのが、外部のmdbだ。
特定健康診断システムと、ダイナミクスのリンク設定をして、橋渡しをするソフトウェアだ。
題して、「徳大名」。tokudyna.mdbとしておいた。


今一通り見たところでは、
UKETUKE_ID
というデータが患者のインデックスになっているらしい。
したがって患者データを入れる際には、
1)ダイナミクスの患者IDとUKETUKE_IDとをリンクさせること。
2)検査項目のコードとダイナミクス内のコードとの変換テーブルを作ること。
3)エラー値を入れぬように注意深くチェックすること。
を気をつければ良いことになる。
データベースの構造としては非常に素直なので、作業しやすい。

2008/07/02

特定健診ソフト~はじめに~

特定健康審査システムはダイナミクスと連動が恐らく可能である。

まずは[⑨マスタメンテナンス]をクリックしよう。

⑨ー①健診機関情報マスタメンテにいこう。

■データ入力項目
「項目名」に対応する「値」を入力する。
特定健診機関番号 :10 桁までの数字を入力する。自分の健診機関番号を入力する。
 たぶん、県番号+1+7桁の医療機関番号を入れるのだ。
特定健診送付元機関 :10 桁までの数字を入力する。通常は、上と同じ自分の健診機関番号を入力すること。
特定健診機関名称 :200 桁までの文字を入力する。
特定健診機関郵便番号 :7 桁までの数字を入力する。
 ハイフンは不要だ。
特定健診機関所在地① :200 桁までの文字を入力する。
特定健診機関所在地② :所在地情報が長い場合に、残りの部分を適宜ここに200 桁までの文字を入力する。入力しなくてもよい。
特定健診機関電話番号 :15 桁までの数字を入力する。
 ハイフン、括弧は不要だ。

これらをダイナミクスから取り出すには、

INSERT INTO T_KIKAN ( TKIKAN_NO, SMOTO_KIKAN, KIKAN_NAME, POST, ADR, TEL )
SELECT 医院情報!県番 & "1" & TrimPlus(医院情報!医療機関コード) AS TKIKAN_NO, 医院情報!県番 & "1" & TrimPlus(医院情報!医療機関コード) AS SMOTO_KIKAN, 医院情報.医院名称 AS KIKAN_NAME, TrimPlus([医院郵便番号]) AS POST, 医院情報!医院所在地 AS ADR, trimplus(医院情報!医院電話番号) AS TEL
FROM 医院情報;

注:先に「医院情報」とリンクするのをお忘れなく。


それから、関数はTrimPlusを作成する。

Public Function TrimPlus(strS As String) As String
Dim intC As Integer
TrimPlus = ""
For intC = 1 To Len(strS)
Select Case Mid(strS, intC, 1)
Case IsNumeric(Mid(strS, intC, 1))
TrimPlus = TrimPlus & Mid(strS, intC, 1)
Case "0"
TrimPlus = TrimPlus & Mid(strS, intC, 1)
Case Else
End Select
Next
End Function

このTrimPlusという関数は自作関数だけれど、文字列から数字のみを取り出す物でとても便利だ。