何とも不思議な

日本を10月18日金曜日の0:30AMに羽田より出発し、バンコク経由で、デリーで更に乗り継いで、昨日10月18日金曜日の14:00にアーマダバード空港に降り立ちました 暑い 一年ぶりのアーマダバードということになります

とっても疲れていて、最近の度重なる出張で体はゾンビのようになっていました その中で意識だけが鮮明で、頭脳は高速回転していました しかしながら流石にこのままだと大変なことになる、という予感がしましたので、15:30頃より、寝ました 夕食の19:30にも一度起きたけど、そのまままた寝ました 次に覚せいしたのは 0:00AM頃ですが、また寝ました 最終的に起床したのが、10月19日土曜日の 5:00AMでした いやあ すごく寝ましたねー こんなに長い時間眠りをとったのは何年ぶりでしょうか いや10年ではきかないですね

本日から慢性完全閉塞二例、分岐部二例を含むライブデモンストレーションをTRICO 2013で行わねばなりません 今朝朝食の時に、色々な先生が世界中から参加されているので驚きました 全力を尽くし、恥をかかないようにせねばなりませんが、なんにせよ患者さんに対して良くすることが最大の目標です 残念ながら慢性完全閉塞用ガイドワイヤーがあまり揃っていないような事前情報です その中でやれるだけやるしか仕方ありませんね ここで喚いたりしても、何も事態は変わらないのですから・・・

それにしても不思議なエラーを潰すのに格闘してきました それは、飛行機の中で既に格闘してきたのです 未だに解決していませんが、エラーをバイパスする方法をとりました エラーというのは Ajax通信に関わるエラーであり、しかも、Safari, Chrome, Firefoxとブラウザを試した中で、Firefoxでのみ確認されるものなのです

Firefoxは僕の知る限り一番html標準に近いブラウザだと思うのですが、そのブラウザで走らないと話になりませんので、エラーを回避する道を選びました それにしても Ajax通信のエラー原因特定は本当に難しいですね

再び Ajaxに挑戦

ある臨床試験サイト構築中です その中で、登録症例一覧を出力し、その症例に飛ばす、というインターフェースが必要と感じました

それ自体は簡単なことですが、問題はいわゆるページングです ページングの問題は、ある程度大きなデータを扱うサイトを構築する時には何時も突き当たる難問です CakePHPなどのフレームワークを使用すれば、フレームワークに内在した機能で、簡単に作成できますが、PHPを用いてゼロから構築するとなるとそのような訳には行きません

想像してみて下さい 300件登録されたデータを一枚のページに出力するのは簡単ですが、通信の時間がかかるのと、もっと問題は、探しにくく閲覧しにくい、ということなのです 従って、優しいインターフェースとしては、たとえば、10ページ目20症例分を出力する、というようにページを選択できるようにするのです

もちろん、これをHTML + PHP + MySQLのみで実現するのは難しくありませんが、問題は、ページ切り替えの度に、ページ遷移が起こるので、通信トラフィックが増加するだけでなく、ユーザーから見れば、画面全体が書きなおされるので不愉快です

そこで出てくるのが Ajax (Asynchronous Javascript and XML)という技術です これまでにも何回か紹介していますが、この技術を使います

苦労の末、思い通りのインターフェースが構築できました

Ajax

Ajaxを用いて NAUSICA AMI試験の監査ツールを実装しました。Ajaxの仕組みなんてすっかり忘れていたのですが、プログラム書いている内にすぐに回復しました。やはりAjaxを用いると従来の Webページからは信じられないような画面の書き換えが行われ、プログラムを書いた甲斐があります。

その骨子は三つのパートです

  1. 主要画面
    1. ここではデータベースから受け取ったデータを cssを用いて見てくれを整えて出力する
    2. さらに、データを受信するためのボタンをつける
  2. データを受け取る Javascript (Ajax)
    1. ここがAjaxの根幹です
    2. ブラウザの Document Object Model (DOM)を用いてダイナミックに画面を書き換えます
  3. 裏で動くデータ加工プログラム
    1. データベース MySQLに対して SQLを発行してデータを得ます
    2. それを一定の形に加工します
    3. 加工の仕方としては、 JSONや HTMLを用いるのが一般的ですが、 TEXTでも良いのです 今回は HTMLを用いました

    忘れないようにおいおいプログラムを書き記します

またまた羽田空港ラウンジ

今朝も早く起き、札幌に入るため、朝から羽田空港ラウンジにいます。今試みていることは、NASICA AMI試験に絡め、インターフェース改善のために、例の Ajaxを用いてデータベースと遣り取りする部分をコーディングしています。
以前 Ajaxを触ったのは半年以上前なのですっかり忘れておりました。しかし、以前書いたコードを読みながらそのロジックを紐解くと、再び理解できるようになりました。流石に自分で書いたコードなので読み返すことができます。
自分が呆けてしまわない内 (誰だっ、「もう呆けているよ」などと言うのは!)に、以前やりかけ、その難しさにひとまず棚に上げていた DICOM Viewerの作成に再びとりかかりたいのです。今度は万全の準備の下で入るつもりです。コンパイルなどは Qtを用いようかと思っています。以前は VisualStudio C++だったのですが、これだと Windows platformでしか動きませんので・・・ 折角だから MacOsや Linuxでも動けばいいですものね。
しかし、プログラミングしている時はどうしてこんなに楽しいのでしょうか? やはり世界がどんどん広がっていくからですね。