知らなかった

さて、MySQL databaseより UTF-8で文字コード化されているデータを取得し、それを .csv形式で出力するこにより、Excelで読み込みたいと思っているのです。

しかし、先日 uploadしたようにこれはなかなかの難物なのです。普通にやれば必ず激しい文字化けで使い物になりません。ようやく、local database/serverで走らせて文字化けしないようになりましたが、これを Internet Serverに uploadして走らせると、HTTP ERROR: 500という訳の分からないエラーが出て走らないのです。

そこで検索して、かろうじてこのページにヒットしました。これによれば、サーバー処理で時間がかかったりメモリーを消費したりしてエラーが出るようです。ここに書いているように

set_time_limit(600); 
ini_set('memory_limit', '2048M');

この二行を書き加えることにより見事に解決しました。

これで光がさした

PHPと Excelの関係はなかなか厄介なものがあります それと言うのも、Excelでは昔の 16-bits DOSの名残でずっと日本語文字コードとしてはいわゆる Shift-JISを用いているのです。これは別名 CP932とも呼ばれているものです。

ビジネスの世界では、Excelがデファクト・スタンダードであり、膨大なビジネス文書でこの Shift-JISが用いられているため、今更それを世界標準の UTF-8という文字コードに変更することができないのです

要するに悪しき昔の名残を引きずっているのですね

このことが実際のブログラミングでは問題となります もっとも英語圏の人々には「何言っているの?」てなもんで関係無いのですが、我々のように日本語を用いていると即刻問題となるのです。

何故ならばデータベースからデータを取得し、それを加工してから表計算ファイルに出力しても、その出力は UTF-8でされるので、Shift-JISで開く Excelでは途端に文字化けするのです。これを防ぐためには勿論、Excelが UTF-8を正しく読み取れれは良いのですが、それがそうは行かないのです。あるいは UTF-8から Shift-JISに変換してファイルに書き込めばいいはずですが、それまで自分で試したブログラムではなかなかうまく行かないのです。

しかし、今回ようやくめぐり逢いました それはこんなテスト・プログラムで検証しました

// https://qiita.com/ikemonn/items/f2bc4f9f834c989084ff
$rows[ 0 ][ 0 ] = "00";
$rows[ 0 ][ 1 ] = "齋藤 滋";
$rows[ 0 ][ 2 ] = "齋藤 滋です";
$rows[ 1 ][ 0 ] = "10";
$rows[ 1 ][ 1 ] = "SAITO SHIGERU";
$rows[ 1 ][ 2 ] = "さいとう";

$header = "Content-Type: text/plain";
$fp = fopen( 'isample.csv', 'w' );
stream_filter_prepend( $fp, 'convert.iconv.utf-8/cp932' );
fputcsv( $fp, $header );
foreach ( $rows as $row ) {
  fputcsv( $fp, $row );
}
fclose( $fp );

これでバッチリです。

もちろんこのコードのままですと、Excel内部でも csv形式となっているので、これを Excel標準形式で saveすればよいのです。

焦ったあ

今朝は焦りました

何時ものように早朝自宅出発し、自転車で6:40AMには病院到着したのです そして着替えようとしてい突然、「あっ。今朝はTAVIプロクタで○○病院に行かねばならない」と思い出したのです。

急いで自宅に戻り、仕切り直しでした。

伊勢志摩ライブ

11月09日土曜日は 5:30AM自宅出発し、新横浜駅から名古屋に「のぞみ」で移動、名古屋で名鉄特急に乗り換え、松坂まで急ぎ、9:00AM過ぎには「伊勢志摩ライブ」が開催された「三重ハートセンター」に到着しました。

通常三重まで入るには前日夜には入ることが多いと思いますが、このような早朝移動は伊勢志摩ライブでも既に3回目のように記憶しています。あまり時間に追われるのは人生にとって良くないとは思うのですが金曜日の夜も仕事があったため仕方無いのです。

まずは、20分間の講演を行い、その後 60歳男性の左冠動脈前下行枝慢性完全閉塞病変に対して経橈骨動脈冠動脈インターベンションで挑みました。患者さんは三枝病変であり、既に右冠動脈と左冠動脈回旋枝に関しては治療終了していましたが、左冠動脈前下行枝#7の10数ミリに及ぶ石灰化高度で、しかもその部位でクランク状に屈曲した病変は見るからに難物でした。まあうまく行かないでもそれは自分の能力であり、仕方無い、とすぐに割り切り、リラックスした気持ちで望みました。幸い、第一助手には「伊勢赤十字病院循環器内科」の「泉 大介」先生がついて下さり、なおリラックスして手技を行うことができました。泉先生と言葉を交わすことは初めてのように思いますが、とても助けて頂きました。

手技は例によって何となく成功裏に終了しました。もちろん、ワイヤー先端には、僕の40年間に及ぶPCI手技の経験と、絶妙なコントロールが働いているのでしょうが、何も考えずにそれらが意識しないレイヤーで出てくるのです。

手技終了後、松坂市外れにある「蕎麦「紀乃国屋」」という蕎麦屋さんで昼食を摂り、また鎌倉に戻りました。

蕎麦「紀乃国屋」
蕎麦「紀乃国屋」

この店では未だ30歳前半と思える若いご夫婦がその場で蕎麦を打ち、10割蕎麦を出して下さいます。とてもおいしく頂きましたよ、是非皆様方も訪れて下さい。

対談

11月02日土曜日には、京都で胸部外科学会が開催されたのに併せて、京都国際会議場において、大阪大学心臓血管外科 澤 教授と二人での対談収録および、JTVT理事会が開催されましたので、前日夜より京都に入りました。

澤教授は僕の出身大学 大阪大学医学部卒業であり、僕よりも5年間後輩ということになります。普段はそれ程親しく話す機会も無いのですが、今回はいろいろなことをお話する機会がありました。座談会ビデオ収録は40分程度でスムーズに終了しました。

澤教授との対談
澤教授との対談

仙台ネットワークライブ

19日土曜日は朝 品川である新規冠動脈デバイス治験の会を主催し、そのまま東京駅から新幹線の乗り、仙台に向かいました そして仙台からはタクシーで「坂総合病院」に向かい、そのままライブ術者として一例治療をさせて頂きました これかその後の写真です

ライブ放映後皆で
ライブ放映後皆で
坂総合病院と仙石線
坂総合病院と仙石線

Ajaxに悩んだ二年間

現代のWeb PageはAjax通信を用いてページの書き換え無しに表示データを更新する仕組みが広く使われています。Ajax = Asynchronous JavaScript and XMLという訳の分からない言葉の頭文字をつなげた造語です。Ajaxが提唱されたのは、古く Internet Explorer5.0の時代に遡ります。ここいら辺に関しては、やはり Microsoft社とIBM社の功績が大きいようです。このIBMのエンジニアが投稿されたブログに詳しく書かれています。

僕もjQueryを用いてこのAjaxという仕組みを用い、データをデータベースから読み出しそれを用いてホームページのDOMを書き換え、動的にページを画面更新無く刷新するようなページをいくつも作成してきました。実はこれもIBMのエンジニアのブログを読んで出来るようになったのです。

さて、jQuery + PHP + MySQLを用いたAjaxはこれまでに色々なサイトで作成してきました。そのほとんどは期待した通りに動作してきたのですが、一つだけ躓く場面があったのです。現在の鎌倉ライブHpは2017年に原型を作り、それを踏襲してきたのですが、基本的概念は、Web上のMySQL databaseにデータを入力して、ユーザー・ページではその databaseからデータを読み出してHpに反映する、そのようにしたのです。

もちろん DBにデータ入力する時にはPWで保護された部分にアクセスし、一般ではアクセスできないようにしています。この時問題となったのは、下記のプログラム部分です。それが不思議なことにうまく行ったり、行かなかったりするのです。

 function ajax_search() {
$( "#search_results" ).show();
var search_val = $( "#search_term" ).val();

$.post( "tri_chair_mod_add01new_backend.php", {
    search_term: search_val
}, function ( data ) {
    if ( data.length > 0 ) {
        $( "#search_results" ).html( data );
    }
} );

  }

これが時にうまく動作して時に動作しないのです。この原因についてどうしても難しすぎて分からなかったのですが、色々考えている内に、Ajaxとは Asynchronous (=非同期)とうのが本質だと思ったのです。Web pageは非同期で表示していかないとユーザーが待たされることになります。ですから、ある画面を描く時にも、あるいはデータを受け取る時にもどちらかがどちらかの完了を待つ(=同期)することが無く、どんどん進んで行くのです。これが原因ではないかと思いました。そこで以下のように変更したのです。

  function ajax_search() {
$( "#search_results" ).show();
var search_val = $( "#search_term" ).val();
        $.ajax({
            type: 'POST',
            url: "tri_chair_mod_add01new_backend.php",
            dataType: 'html',
            data: {
                search_term: search_val
            },
            async: false,
            success: function(data) {
                if ( data.length > 0 ) {
       $( "#search_results" ).html( data );
                }
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                alert("Ajax error happened!");
            }
        });
  }

つまり、Ajaxのdefaultである async: trueというのを敢えて async: falseにしたのです。つまり同期をとるようにしたのです。これで長年の懸案が解決しました。とっても難しい概念です。

San Francisco、そして日立の後はメキシコ

10月06日日曜日からはメキシコに飛びました そして、11日金曜日早朝成田に戻ったのです。今回は、メキシコ心臓病センター (INC)においてのワークショップと、その後の学会に招聘されたためです。メキシコには何回もこれまで行っているのですが、かれこれ1年ぶりでしょうか? 懐かしい気分でした。

中南米諸国にTRIを普及せんと活動してきました。大分疲れましたね。でもその成果は大きく、INCの中には Simulatorを含め、TRIトレーニング室が、日本国政府と共同で設立され、既に2年間が経過し、その間に、メキシコ全土でのTRI普及率は当初の数%から現在では70%に達しているのです。これにより、入院期間が短縮され、治療可能な患者さんの数も増加したのです。このインパクトは心臓発作が国民の主要死因であるメキシコではとても大きいのです。最後の日には、メキシコの先生方と僕が集まり、レストランで食事食べながらこれまでの総括と、今後の方針の話し合いをしました。とても有意義な会でした。

メキシコ医師たちとの話し合い

そして、金曜日は6:50AMに成田空港に到着し、それから自宅に一旦戻りシャワーを浴びて、そして病院に出勤、10:00AMより外来診療を開始しました。流石にその日は疲れました。

9月の忘備録-2

さてCVITの翌週9月24日には、羽田空港からサンフランシスコに飛びました。これはどうしても避けて通れないインターベンションの学会 TCT (Transcatheter Cardiovascular Therapeutics)に参加するためです。しかも、今回は日本人として唯一の Geoffry O. Hartzler Mater Clinical Operator Award 2019という非常に栄誉ある賞を受賞したのです。

この授賞式準備のために、たくさんの写真を送ることを要請されました。昔の写真、実はあまり無いのですが・・・・、それをスキャンして贈りました。これも大変な作業でした。そして、主催者である Colombia Universityの Martin Leon先生と、Gregg Stone先生から当日何千人という聴衆のいる Main Arenaでインタビューかされる、そのようにも聞かされていました。これは無茶苦茶なストレスでした。実際僕はこの TCTにおいてライブ症例を衛星中継して会場に流したこともあります。しかし、インタビューというのはまた別の経験だったのです。本当に大変でした。

Main Arenaでの受賞記念インタビュー
Main Arenaでの受賞記念インタビュー

正直に言いましょう、このために背広を一着誂えました。これまではスーツと言えば、町中の量販店でした購入したことはありませんでしたが、今回は藤沢駅周辺のデパートで、きちんと order-madeのスーツを仕立てました。人生始めての経験だったのです。スーツの仕立てに3週間以上かかる、ということを初めて知りました。

授賞式を終えて、たくさん方々がお祝いの言葉を投げかけてきました。嬉しいのですが、とても恥ずかしい気分だったのです。まあ何はともあれ僕の方にずしりとのしかかっていたストレスとはこれで開放されたのです。この時のビデオは下記にあります

Master Operator Award 2019 in Main Arena

Master Operator Award 2019 Main Screen

9月の忘備録

9月19から21日は名古屋国際会議場においてCVIT(日本心血管インターベンション治療学会)が開催され、僕もさまざまな役割で出席しました。でももう自分自身で演題を発表することもほとんど無くなっています。皆の発表の座長したり、新たな薬剤溶出性ステント治験のとりまとめしたり、そんな役割です。

夜は「味仙」という中華料理で夕食を摂りました。名古屋市内に3店舗あるらしいのですが、とても賑わっており活気のある非常に大衆的な中華料理の店でした。ラーメンにはとても辛いものもあり、その隠語が「イタリアン」なのです。

味仙のイタリアン
味仙のイタリアン

辛い辛いとは聞いていたのですが、僕には辛くありませんでしたし、翌朝必ず「***が***なる」と散々言われていたのですが、そんなこともありませんでした。

今回のCVITは何だか運営に無理があり、スケジュール管理も重複していたり、どちらかと言えば無茶苦茶な運営でした。今までこんな学会経験したことがありません。それほどひどい運営でした。