コンテンツへスキップ

paperChart 関連ツール

管理人 斎藤が paperChart の 解析や 運用に使用している関連ツールを公開します.
どれも簡単なツールで,ソースも公開しますので参考にしてください.
(あまりきれいなコードではありませんが,お許しください)
転載,改変など自由にしてくださって結構です.利用される場合,連絡いただけるとありがたいです.
なお,これらのプログラムを使用して生じた如何なる不具合も,作者斎藤は責任を負わないものとします.

実行ファイル,ソースファイルともに ZIP形式で圧縮しています.使用する Visual Studio のバージョンによってはプロジェクトの変換ウィザードが起動されることがあります.指示に従って変換しコンパイルを実行してください.

1) Visual C++ Win32API,2) Visual C++ MFC,3) Visual C# (.net framework 4.0)
システム寄りの簡単なツールはC++で,汎用的なコードのプロトタイプは C#で作成しています.
paperChartへのデータ送信プログラム等は,汎用利用を考えて,C#で作成したコードを公開する予定です.

ウィンドウハンドル,ウィンドウクラス情報取得ツール GetAppInfo (VC++ 2005 [ソース])
目的とするウィンドウにマウスをドラッグ&ドロップすることでドロップされたウィンドウのウィンドウハンドル,ウィンドウクラス名を取得するユーティリティです.テキストボックスやボタンのIDを取得することもできます.ウィンドウのテキストや左ボタンの押下,終了メニューなどのメッセージを送信することができます.外部ソフトを制御するための参考にしてください.
アプリを実行後,ウィンドウ上のコントロール以外(ラベル部分は除く)部分をクリックして,そのまま目的とするアプリケーションのウィンドウ上までドラッグしてください.マウス直下のウィンドウハンドル,クラス名,ウィンドウテキスト,子ID,スクリーン座標を表示します.ウィンドウテキストは,変更することも可能です.ボタンなどのコントロールに SC_CLOSE メッセージを送ると,アプリケーションからボタンが消えてしまいますので注意してください.
シリアルポートチェックツール CheckComPort (VC++ 2010 [ソース])
PC上にインストールされているシリアルポート(COMポート)を調べ,その名称と,使用可能かどうかを調べるツールです.
デバイスマネージャで表示される Friendly Name にも対応しています.
まず,SetupDiGetClassDevs()関数を使用してレジストリ内から,PORTとして割り当てられているデバイスを取得し,COMポート番号を取得したうえで,QueryDosDevice()関数を使用してデバイス名を取得,CreateFile()関数を使用して,ポートが利用できるかどうかをチェックしています.アプリ上の[QueryDosDevice]/[ComPortOpen]ボタンは,SetupDiClassDev でうまく情報が取得できない場合に,QueryDosDevice()あるいは CreateFile()関数を COM1 – COM99に対して順に行ってポート状態を取得するためのものです.
MenuID取得ツール CheckMenuItem (C# 2010 [ソース])
プログラムのメニューIDを取得するユティリティです.実行中のプログラムのウィンドウハンドルから取得する方法と,exeファイルのリソースモジュールから取得する方法の2種類の方法でメニューIDを取得します.メニューがプログラム実行後,ダイナミックに作成される場合,実行中のウィンドウハンドルから取得したほうがいいでしょう.NV.exe のメニューは,設定ファイルを読み込むことでダイナミックに作成されています.薬剤や記号メニューは項目を変更するたびにメニューIDが変更されます.NV.exe にメニュー項目を送信する場合には注意してください.メニューを実行ファイルのリソースから読み込むと,実行後も変更されない固定メニューを調べることができます.
このツールは,リボンなどを使用しない比較的旧式のプログラムのメニューを取得することはできますが,モダンなUIを有する最近のプログラムのメニューを得ることはできないようです.Windows 付属の メモ帳や電卓のメニューを取得し制御することは可能です.
paperChartへのテキストデータ送信サンプル TextDataToPaperChart (C# 2010 [ソース]), 使用方法
paperChart にテキストデータを送信するためのサンプルプログラムです.paperChartへのデータ送信は Win32API SendMessage()関数を使用しますが,C#で使用できるようにしています.
送信できるテキストデータには,患者情報 /demographs/,イベント情報 /remarks/,投薬情報 /administrations/ があります.paperChart が保存するデータファイル xxxx.txt を参考に,同じ形式で送信すれば,paperChart NV.exe は,外部からのテキストデータを処理することができます.このプログラムにはサンプルデータも設定してあります.
送信テキストの内容は症例データファイルを参考にしてください.このサンプルを使用して NV.exeへのデータ送信プログラムを作成された方は,一報くだされば幸いです.
もし,便利なツールを作成された場合,本サイトで紹介したいと思っております.