新型コロナ感染症とオープンソースソフト(Open Source Software: OSS)の絡みでいうと、ちょっと話題になったのは、東京都の新型コロナ対策サイトだろうか。
『東京都公式の新型コロナ対策サイトはオープンソースで作られた!』
サイトの雛形になったソースコード(日経的には「設計図」)が GitHub というサイトで公開され、修正提案なども歓迎されているため、参加はしやすい。
そこに台湾の天才デジタル大臣と名高いオードリー・タン氏が降臨したものだから、一気に盛り上がってしまった。(実際には、一文字修正しただけなんだが)
地域版への展開
プロジェクトが始まった当初は東京都版の多言語対応だとか「縦」方向の進化を続けていたのだが、現在(2020/03/20)は、東京都サイトのソースコードを流用しての「横」展開、つまり、各自治体バージョンの開発・公開の方向に向かっているようだ。
いくつか紹介。
・本家東京都
https://stopcovid19.metro.tokyo.lg.jp/
・神奈川は有志がつくっていたものが県公式となりました(→すみません、別物のようです。)
https://www.pref.kanagawa.jp/osirase/1369/
神奈川版の病院稼働表示は各方面からの評価も高く、
に取り入れられたようです。これは、かっこいい。
ただ、もうこうなるとオープンソースでもなんでもない。
・アイキャッチがカッコイイと評判の北海道
https://stopcovid19.hokkaido.dev/
・三重県は高専生が立ち上げてちょっとした話題に
https://covid19-mie.netlify.com/
・千葉は、なんと
千葉県(公式) https://covid19.civictech.chiba.jp/
千葉県(非公式) https://chiba-covid19.mypl.net/
千葉市(非公式) https://stopcovid19.code4chiba.org/
三つが並行して動いている(他にもあるという説もあり)。
・3/31 にいきなり陽性者が出てちょっと驚かれた山形県
https://stopcovid19-yamagata-unofficial.netlify.app/
・新潟県(非公式)もまったり更新中
https://stopcovid19-niigata-unofficial.netlify.com/
・アクティブに図版の追加が行われている富山県。
https://stopcovid19-toyama.netlify.app/
他にも色々と動きがみられます。
ただ、栃木・茨城は何の動きもみられない(ぼそっ)。
【追記】地域版サイトは、新規のリリースや URL の異動が激しいため、『政府 CIO ポータルのページ』やここなどでチェックしてください。
stopcovid19.jp は自治体「公式」ではない!
横方向に広がってくると何らかの統一感が欲しいという欲求は出てくる。
Code For Japan で URL が xxxx.stopcovid19.jp となるよう開発者にサブドメインを払い出すようになった。
が、これは URL の張り替えを伴う(=一手間かかる)ことやそもそも Code For Japan とは無関係に自身のサイトを開発してしまった一般市民(高校生や大学生などはその典型でしょう)も多くいて、必ずしも浸透はしていないようだ。
Code For Japan は開発者に作成サイトを各自治体の「公式」サイトになるように奨励する傾向があるようなのだが、たとえ技術はあるにしてもぶっちゃけそこまではしたくないという人は多い。
例えば、某県では CodeFor 「某県」 が自治体にアピールしていたようなのだが、実際に自治体の側から要請を受けたのは、別の個人開発の方(といってもかなり実績のあるエンジニア)のサイト。しかし、その開発者は、メンテの煩雑さを予想してか「公式ではなく公認」程度を希望していた。行政が開示したデータとはいえ、医療に密接に関係する情報であることを考慮するとこういった態度は一つの見識だと思う。
また、別の某県では県公式HPからリンクされたのは、CodeFor の方ではなくて、有志の手によるサイトだった。
そういった経緯があるので、URL 末尾が stopcovit19.jp だからといって必ずしも信用できるものはないし、自治体公式でもないことや個人や小グループで開発・運用されたサイトでも信頼のおけるサイトはあるということは注意しておく必要がある。
その他、問題点
前にもちょっと触れたが、オーバーシュート時の対応が示唆された段階でもまったく動きの見られない地域もある。素(設計図)があるだけに地域版カスタマイズの敷居は低いのだが、立ち上げた地域でもそれだけでいっぱいいっぱいになっているところも目立つ。たぶん、技術者の地域間偏在・スキルの格差がこういったことの背景にあるのではないだろうか。ここらへんはいわゆる「シビックテック」の限界の一つだろう。
また、サイトの準備はほぼ整っているのに自治体側のデータの開示が今一つで、うまく情報を発信できない地域もけっこうある。
さらに、東京都や総務省あたりはこういった取り組みに一定の理解があると思うのだが、日本医療の総元締め的存在の厚生労働省は関与はしていない。
医療に関係するソフトでありがちなのは、経産省や総務省が焚きつけても実際の医療現場からするとピンがボケていて、医療関係者や厚労省あたりからまったく相手にされず、結果、大した成果もあげられないっていうパターンだろうか。
今回のケースで言うと、厚労省が広域対策を打ち出した時点で(『新型コロナウイルス感染症の患者数が大幅に増えたときに備えた入院医療提供体制等の整備について』)、少なくとも『横展開』に関してはピンがボケた感がある。
厚労省が言いたいのは、患者搬送なども県を超えて広域で対応しなさいよってことなのだが、「自治体」だけにこだわっているとこういった変化に対応しにくい。(それだけ SARS-CoV-2 の「感染」速度が、オープンソースの「感染」速度より速かったということなんでしょうけれど)
例えば、NHK のサイトは、かなり以前からこんなマップを提示している。
交通量の影響だとか地勢学的な伝染のしやすさみたいなものがうっすらと想像できると思う。
別に NHK の回し者でも何でもないが、やはりみやすいよね。
オープンソースのメリットが生きた点
やはり、ソースコードを直接改変して機能追加がしやすいところだろう。
「非」公式をあえて強調している(↓)ような兵庫県版は(ちなみにドメインも .org)、
いち早く(本家東京より早く)病床数と入院患者数に注目、わかりやすい円グラフの形で視覚化してくれた。
こういう工夫は厚労省のお達しにも合致していて良いですよね。
なお、ここらへんのお話は、『新型コロナとシビックテック』あたりの記述がリアルです。
広域連携のもう一つの形 -東北・新潟共同緊急宣言-
広域連携に関連して言えば、首都圏では実際に県・都を跨いで患者の受け入れなどは行われていた。IT がどの程度関与できたかは知るよしもないが、泥臭い人海戦術で行われたと聞いている。IT で全てが解決できるわけではないのだ。
興味深かったのは、4/24 に東北6県(青森・秋田・岩手・山形・宮城・福島)と新潟県が共同で緊急宣言を発出したこと(厳密には政令指定都市である仙台市と新潟市と共同)。
ネットでは戊辰戦争になぞらえて「令和の奥羽越列藩同盟」と話題になった。
「なんで、この組み合わせ? Why?」と不思議に思った人も多いようだったが、この地域はなぜかうまく感染拡大を封じ込んでいて、他地域からの流入や地域内での往来を制限してこの地域でブロックを組んでしまえば、感染拡大をある程度は乗り切れると考えたからだろう。例えば、(引き合いに出してちょっと申し訳ない気もするんだが)新潟のお隣の富山県はかなりの間、陽性者を出していなかったのだが、3/30 に初めて観測されてから 4/25 までで累計 169 人、陽性率も比較的高めで推移している。同じ時期に初感染者を出した山形県とは対照的だ。山形県関係者の相当の努力があったのではないかと推測する。
【参考】厚労省『新型コロナウイルス陽性者数(チャーター便帰国者を除く)とPCR検査 実施人数(都道府県別)』より。ただし、1/15 – 4/21 の集計。
しばしば「粘り強い」と称されるこの地域の県民気質も考慮すると、これはこれで「あり」な戦略なんではないかと思う。
サイトを支える技術 – Nuxt.js・Vue.js –
サイト自体は Nuxt.js (ナクストあるいはヌクストと読む)というフレームワークを使っている。技術的に感心したのは、このフレームワークのできのよさ。
各種グラフがモダンな感じで高速で描画できるのは、このフレームワークのおかげ。
ところで、最近、某先生が Laravel に凝っておられるようなのだが、最初、記事を読んだとき、正直、何のことかさっぱりわからなかった。
Laravel 自体は PHP のフレームワークで、やはりモダンな感じで洗練されている。WordPress サイトを Laravel + Nuxt で置き換えるのが最近のトレンドのようだ。
【実録】WordPressサイトをAWS+Laravel+Nuxtにフルリプレイスした話
などググればよく出てくる。
んー、私もそのうち着手しないといけないのかなあ。
しばらく WordPress + Nuxt あたりでごまかしたいんだが・・・。
とりあえず、東京都サイトのカードを WordPress に取り込むとこんな感じになる。
確かにカッコ良くはある。(もう消えてますね)
なお、そもそもサーバサイド JavaScript がわからん、という人は
あたりを参照。
node の存在意義や ES6 あたりの新しい文法の必要性あたりが理解する上でのポイントでしょうか。
ライセンスと著作権表記
なお、東京都のソースコード自体は MIT ライセンスというもので公開されています。
著作権表記はどの団体も (C) 開発・リリースした団体 としている。プロジェクトに貢献した人(contributor などという)は多すぎるので Web ページには表記せず、「設計図」を納めたサイト(リポジトリ)に別ファイルに記載されてます。
当然だと思うのだが、これを違うと解釈する人たちもいるので、念のため。
猪股弘明(精神保健指定医)
“COVID-19 とオープンソース” への1件の返信
コメントを投稿するにはログインが必要です。