![]() |
【心電図の遠隔監視の実験】 |
更新日 /2006/03/25/ |
|
||
【内容】 ●固定IPアドレス202.215.26.52のパソコン上で以前に測定した心電図データを持ったEXCELマクロが実行されています。このマクロは1秒毎に画像ファイル(ECGwave.bmp)に測定波形を描画し、ファイルを更新します。Internet Explorer(IE)のリロードを適当な間隔で行ってください。下の心電図波形の表示が変化していくはずです。リロードはIEの赤丸で囲ったボタンをクリックすることにより行われます。 |
||
![]() |
||
●使用しているEXCELマクロのダウンロードはこちら ECGwave.bmpの作成されるディレクトリは適当に変更してお使い下さい。 |
【遠隔監視中の心電図】 | (サービス停止中。。現在、マクロを停止していますので、リロードしても更新しません。) かわりに動画をご覧ください。図をクリックすると開始します。 |
【プログラムの説明】 |
|
使用しているプログラムでは、Win32APIとLib_2DGraphicの2つのモジュールが使用されています。Win32APIで使用しているのはSleep関数だけです。Sleep 1000
とすれば1000ミリ秒間何もせず待機します。単なるタイマーとして使用しています。Lib_2DGraphicモジュールはRGB24bit形式のBITMAPファイルを作成し、画面消去や直線描画を行うために使用しています。 |
|
マクロの中では、まず■の処理で配列Wave()の領域を確保し、心電図計測データを格納しています。処理の高速化のためです。 BuildBitMapの処理で画素数600x200画素のBITMAP構造データを作成します。この処理の中で、描画に使用する基本色の定義も行っています。 時間ループ(無限ループにしています。)中で、FillBitMapImageにより12秒毎に画像の消去を行い、DrawLineでx軸を描画しています。 さらに、DrawLineにより1秒毎に1秒分の心電図データの描画を行っています。 描画されたRGB24bitBITMAP構造体のデータをCreateBitMapFileによりファイル化しています。 1秒単位の処理を行うためWin32APIのSleep関数で時間待ちをしています。 |
Private MyPic As RGB24bitBitMap '
RGB24bit形式のBITMAP構造体(Colorテーブルも含む) Private s As String ' BITMAPファイル名称を格納するための文字列型変数 Private Const Dx As Long = 600 ' x方向画素数 Private Const Dy As Long = 200 ' y方向画素数 Private Const Dc As Long = 65 ' Private Const T0 As Long = 13000 ' Private Const Tw As Long = 13000 ' Private Const Tcycle As Long = 1000 ' Private Const nColor As Long = 300 ' カラーパレットの色数 Private Wave() As Long ' Private Const nSample As Long = 30214 Sub Auto_Start() Dim ix As Long, iy0 As Long, iy1 As Long, j As Long, k As Long '*** 処理の高速化のためSheet1から心電図データを配列Wave()に読み込む Sheet1.Activate ReDim Wave(nSample - 1) For j = 0 To nSample - 1 Wave(j) = CLng(Dc + 330 * Sheet1.Cells(j + 2, 2).Value) Next j '*** Graphic処理 s = "C:\MyDoc\NeoTechLab\20060101\ECGwave.files\ECGwave.bmp" BuildBitMap Dx, Dy, MyPic CreateMonopoleScale MyPic, nColor Loop1: FillBitMapImage MyPic, MyPic.Yellow DrawLine MyPic, 0, Dc, Dx - 1, Dc, MyPic.Black For j = 0 To 11 iy0 = Wave(T0 + Tcycle * j) For k = T0 + Tcycle * j + 1 To T0 + Tcycle * (j + 1) iy1 = Wave(k) ix = CLng((k - T0) * Dx / Tw) DrawLine MyPic, ix, iy0, ix, iy1, MyPic.Blue iy0 = iy1 Next k CreateBitMapFile MyPic, s Sleep Tcycle Next j GoTo Loop1 End Sub |
|
|
私設研究所Neo-Tech-Lab.com |
検索キーワード: Neo-Tech-Lab.com (NeoTechLab) 上田智章 心電図 遠隔監視 インターネット 高齢化社会 安否確認 心筋梗塞 心不全 虚血性心疾患 |