とりあえずのメモ

きちんとまとめる前に現時点で私の考えることのメモです



 健康ノートは、罫線も引いてない「白紙のノート」をイメージしてください。 ここに何でも書き込んだり、医療機関からもらった検査データなどを自由に べたべた貼ったりできます。

  1. 自由なデータ・フォーマットで何でも放り込める

    HL7, MML, XML, CSV, PDF, JPEG その他、何でもどうぞご自由に

  2. 雑多なフォーマットのデータでも適切に閲覧できる

    データを開く時、それぞれのデータフォーマットに応じた viewer が反応します

  3. ただし守って頂かなければならないこと

    世の中標準の viewer が使えるCSV, PDF などのフォーマットはよいが、 それ以外の場合は

    1. viewer も一緒に提供すること
    2. XML 形式へ相互変換するアプリも提供すること

    ここが自由度を守るための重要なポイントです。 これにより、そのデータをクリックすれば専用ビューアが立ち上がって参照できます。 また、他のデータと互換をとることができるようになります。 JPEG などバイナリーデータに関しては、 付随するコメントやキーワードに関してのみ XML と相互変換できればよいでしょう。

  4. データは定められたコンテナーに入れて放り込むこと

    宅急便業者が用意するダンボール箱をイメージしてください。 箱の上にはラベルが貼付され、 送り主、タイムスタンプ、内容説明、その他が記述されます (ユーザは宅急便へデータを渡すだけ。これを意識することはありません)。

    コンテナーは入れ子にできます。 「書物」「食品」「雑貨」などをそれぞれのコンテナーに入れ、 それらコンテナーをさらにひとつのコンテナーに入れて渡すなど。

    実装上、コンテナーやラベルの記述には規定されたフォーマットが必要です。 とりあえずは XML 形式で規定するのが現実的かと。

    健康ノートは配送を目的としたものではなく蓄積を目的としたものですが、 このような仕組みで倉庫に効率的に収納・管理でき、 ついでに配送にも効率的に対応できます。

  5. XMLのタグ名は厳しく規定しない

    少なくとも「人間が読んで間違いなく判断できること」を最低限の条件とします。 異なるタグ同士の相互参照は、 別途相互翻訳アプリ(Data Mapping System) が処理することとします。 この概念も「実用化のための大きなポイント」です。

    「ではどうやってシステムは判断するのか」とのご質問を頂きました。 data mapping の場合は、 想定されたフォーマット間での翻訳になるでしょうから、 あらかじめ作成されたタグ相互の参照テーブルを元に判断されます。 それ以外などでシステムが判断できない場合は、人間に助けを求めてきます。 人間が判断してやると、それをシステムはしっかり記憶してしまいます。 それ以降は正確に判断し、2度と聞いてきません。

    この世界は多岐にわたりますから、 必要なタグは無限に湧いてくるに違いありません。 それにきっちり対応する事は不可能でしょう。 可能としても、実際に対応したタグが決められるまでは かなりのタイムラグが発生するはず。とても実用になりません。 誰が標準タグを決めるかなどの問題も発生します。 ここで提案するような処理法の方が、 はるかに実際的で効率的と思います。

    もちろん人間による誤訳の可能性もあるでしょうから、 翻訳前のオリジナル・タグ名もわかるような仕組みは必要でしょう。

  6. データベースは基本的に無構造

    健康ノートを収納する DB は基本的に無構造です。 データの構造化は、コンテナーの入れ子で実現します。 「データは段ボール箱に入れ、どんどん放り込んでしまえ」 「ただしラベルだけはしっかり書いてね」というスタンスです。

    データハンドリングのため DB に多少の構造化が必要でしょうが、 収納物のデータ構造に依存するものではありません。 重要なのはデータ構造ではなく、 裏方としてコンテナーを効率的に管理・ハンドリングするエンジンとなるでしょう。

    どうしても「決められたデータ構造」を必要とする人は、 「決められた入れ子構造のコンテナー」を用意します。 「お子様ランチ」のイメージですかね。 たとえば「血液検査」結果などが、このような扱いになるのでしょう。

    複雑な入れ子構造のコンテナーが放り込まれても、 裏方のデータ・ハンドリング・エンジンは入庫時にそれらをスキャンし、 フラットに近い形で管理・ハンドリングします。

  7. Virus を持ち込まないための仕組みが必要

    コンテナーに Virus などが入っていた場合、 保存している間は凍結状態のようなもので何ら危険を及ぼしませんが、 閲覧やデータ相互参照時などに活動を始める危険性があります。

    従って、バイナリーデータの場合は Virus などを持ち込まないための 何らかの仕組みが必要となるでしょう。

  8. 完全を求めるより実用レベルで

    E-mail も Web も そのやりとりの仕掛けは、 ほんの数行の文字列を受け渡しするだけです。 そのようにシンプルなベースの上で、 どんどん複雑な作業もできるよう進化してきました。 健康ノートも、このようでないと絶対に「普及・発展はない」と確信しています。

     「さらにやりたい」と考えている「より複雑な作業」は、 ひとまずシンプルなシステムを確立した上で、 そこへ「入れ子にできる独立したシステム」として 別途追加すべきです(暗号化とかデータ圧縮とか、 その他特殊なデータハンドリングのアプリケーションとか、 いろいろあるでしょう)。 Virus プロテクトなどセキュリティー関連も、そこに属するのかも知れません。



2007-09-23 07:08:42 +0900