【心電図の遠隔監視の実験】

更新日 /2006/03/25/
最終更新日 /2009/01/29/


【内容】
  ●固定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) 上田智章 心電図 遠隔監視 インターネット 高齢化社会 安否確認 心筋梗塞 心不全 虚血性心疾患