世界のデータは、まだバラバラ。5つ星オープンデータによってつながる未来、創りましょう!

対策ダッシュボード和歌山県、奈良県、埼玉県の速報連携を実施し、連携先都道府県は18になりました。 これで18/47、38%が連携できたことになります。(連携条件、オープンデータとして新型コロナウイルス対策を公開していて、退院数・死亡数がデータから分かること)

この条件の都道府県の連携は完了。オープンデータと明記はなくても、政府・行政の公開は、オープンバイデフォルト。次は、オープンデータとみなし、連携拡大を図ります。


COVID-19 Vocabulary 新型コロナウイルス対策ボキャブラリー
HTMLによるオープンデータは、5つ星オープンデータにおいて、星いくつか?実は、1つ星にも5つ星にもなりえます。 肝心なデータが画像であれば1つ星ですし、きちんと他とつながる語彙(ボキャブラリー)が設定されていれば、5つ星オープンデータです。

埼玉県のサイトを例に、実際にHTMLを5つ星にしてみます。
感染確認状況や関連情報 - 埼玉県
公式サイトにある、累積陽性者数、累積退院数、累積死亡者数、更新日。これらデータがあれば新型コロナウイルス対策ダッシュボードは更新可能です。


「ソースを表示」で、HTMLを確認すると、outlineというクラスは設定されていますが、基本的に人間向けのテキスト文章のみとなっています。画像ではないので、2つ星オープンデータです。 こちらを読み取ってデータ化するプログラムを作って、連携しましたが「parseInt(text.match(/県内の陽性確認者数:(\d+)人/)[1])」と文の書き方を決め打ちして作っているので、表現が変わってしまうと読み取れなくなります(src on GitHub)。

このHTMLを見た目を一切変えずに、5つ星オープンデータ化します。鍵は、itemscope itemprop itemtype (Microdata)と語彙(ボキャブラリー)。「COVID-19 Vocabulary 新型コロナウイルス対策ボキャブラリー」を使って、サンプルを作ってみました。

<table class="outline" itemscope itemtype="https://wvw.stopcovid19.jp/schema/"> <tbody> <tr> <td> <span itemprop="pref" value="Saitama"></span> <p><span class="txt_big">県内の陽性確認者数:<font color="#c51f1f"><span itemprop="npatients">868</span></font></span><span class="txt_big"><span class="txt_red">人</span><br /> (<span itemprop="lastUpdate" value="2020-05-01">5月1日</span>公表分:<font color="#c51f1f">5</font><span class="txt_red">人</span>)</span></p> </td> <td> <p>入院:280人(うち重症者:16人) 宿泊療養:50人 自宅療養:202人</p> <p>退院・療養終了:<span itemprop="nexits">295</span>人 死亡:<span itemprop="ndeaths">36</span>人 調整中:5人<br /> &nbsp; ※<a href="https://www.pref.saitama.lg.jp/a0701/covid19/jokyo.html">県内の発生状況(陽性確認者の状況・一覧)</a></p> </td> </tr> </tbody> </table>

データを囲むタグの属性として、itemscope と語彙を指定した itemtype を設定し、データにあたる部分を表示に影響を与えない span タグを使って囲み、itemprop属性で意味を指定します。(参考「最新のSEO事情!schema.orgで構造化マークアップせよ! - Qiita」「サイトをエンジニアフレンドリーにしよう!robots.txt / sitemap.xml / itemscope / opensearch で機会判読可能に改良する」)

こうしてできたHTMLであれば、下記のプログラムで簡単に新型コロナウイルス対策のデータとして、すぐ活用できます!

const html = await (await fetch(url)).text() const res = htmlparser.parseItem(html, 'https://wvw.stopcovid19.jp/schema/') console.log(res)

urlからhtmlを取得(fetch)して、対策語彙をデータを抜き出し(parseItem)する JavaScript のプログラム例 (src on Github)

人間も機械もうれしい、HTML5つ星オープンデータ、ぜひ使ってみてください!
失敗しても見た目に影響ないので大丈夫ですし、プログラムでの読み取りは成功するまでサポートしますのでご安心を。 (サポートメールアドレス fukuno@jig.jp、新型コロナウイルス対策語彙サポート宛 )


COVID-19 Japan - 都道府県別 新型コロナウイルス陽性患者数
退院者増加し、現在患者数が5%以上減少している都道府県は白下矢印が増えました。決して油断はできませんが、医療リソースのキャパを見て、自粛を段階的に緩める検討もありでしょう。

ただ、東京都はコールセンターや検査数が頭打ち、潜在患者数が多いことが想定されるので、注意が必要です。

都内の最新感染動向 | 東京都 新型コロナウイルス対策サイト」より、新型コロナコールセンター相談件数 4/30実績値

便利なプログラム集 npm の掲載数は、なんと127万。1週間の総ダウンロード数は、200億!

サーバーサイドでJavaScriptを使う人にはおなじみ npm、Node Package Manager の略(先月GitHubが買収)。 使っているライブラリの依存関係が明記されているので、細部まできっちり辿れ、問題が合った時の把握も簡単。今回は、初めて公開に挑戦!

grapheme-breaker-mjs - npm
先日のユニコードの書記素分解を Unicode 13.0.0 にも対応させて、公開完了!GitHubで管理しているリポジトリがあれば、npm set で、名前などを登録、メールアドレスを確認し npm へのユーザー登録を完了させたら、package.json を編集し、npm publish するだけ! 必要最小限の手間で使えて気持ち良い。

npm i grapheme-breaker-mjs

で、インストールして・・・

const GraphemeBreaker from 'grapheme-breaker-mjs' console.log(GraphemeBreaker.break('🍓'))

で、使える!(test.mjs など、ES Module専用なので、Common JSとの共存がちょっと問題。参考、jsからmjsへ


image - npm search
ウェブサイトのスクリーンショット作成を自動化したいので、image で検索。知名度、品質、メンテナンスという3軸で表示してくれる検索結果が、オープンデータ検索にも応用できそうで興味深い。 知名度高く、メンテナンスもされてそうで、依存関係なしのpureさがステキな Jimp を使おう。


ブラウジングを自動化する selenium-webdriver と組み合わせて、対策ダッシュボードのFacebook/Twitter用の画像を自動生成化、完了。(src on GitHub)

どんどん膨らむ、叡智の結晶。がんがん活かしていきましょう!

COVID-19 Japan 新型コロナウイルス対策ダッシュボード」の役目はまだ終わりません。対策病床数が増え、黒色は減ったものの医療機関への負担は非常に大きく、如何に新たな患者発生を抑えるかが引き続き重要です。 外出自粛の効果と退院が進み、減少傾向が見られる都道府県も出てきていますが、潜在患者による感染拡大が進む可能性もあり油断禁物。


COVID-19 Japan 新型コロナウイルス対策ダッシュボード
ひとまず東京都のみですが、都内の地域別患者発生数表示を参考に追加しました。発生の多い地域には注意が必要です。差分を取って新規発生のみにする、昼間人口や住人で割る、域内の病院数と合わせて表示するなど、表示方法は検討の余地ありです。


対策病床数の更新は、オープンデータがまだなく、手動更新となっています。
みなさまのご協力により、だいぶ充実してきています。こちらのデータもオープンデータとして自由に二次利用いただけます。
新型コロナウイルス対策病床オープンデータ
出展として「新型コロナウイルス対策ダッシュボード」の表記と可能であればリンクいただければ、自由に加工、活用いただいて構いません。


新型コロナウイルス患者数オープンデータ(公式サイト、オープンデータサイト、対応状況)
本サイトは、厚生労働省のデータと、都道府県のオープンデータなどを集約して作っています。オープンデータがあっても、形式の違いなどがあるため、データ変換し集約プログラムを作って、運用しています。

病床数オープンデータを含めた、データ定義書を作成していますので、よかったらこちらご活用ください。
新型コロナウイルス感染症対策に関するオープンデータ項目定義書」 by Code for Japan / 福野泰介追記


コロナ病床使用率サイトに100万超アクセス 全国の状況一目で 福井の男性作成 - 毎日新聞
毎日新聞さんに、ご紹介いただきました。オープンデータによる官民連携の新しい形。本対策ダッシュボード提供のデータや、地元のオープンデータを使って、ぜひみなさまもチャレンジしてみてください。


新型コロナウイルスに対する当社の対応 | NECソリューションイノベータ
NECソリューションイノベータさんによる「オープンデータに基づく国内感染状況の可視化」でもJSONデータ、活用いただいています!

対面が原則だった日本の医療、COVID-19対策としてオンライン診療がスタート。厚労省から対応医療機関の一覧がPDFで発表された。 まじめな所長@医療介護データ研究所さん公開のCSVデータを使って検索アプリを作成。


オンライン診療サーチ
元データの誤表記、表記ゆれ、変換による情報欠損などがある点にご注意ください。

こちらのアプリは「VS COVID-19 #民間支援情報ナビ」をベースに、CSVデータからの検索アプリをすばやく立ち上げるために、汎用化を進めたもの。 シンプルなJavaScriptで開発したオープンソース、どうぞいろいろとご活用ください。下記のようにデータの設定を加えるだけなので、JavaScriptのプログラミングの知識は不要。あとは、CSSやHTMLをデザインをいろいろ好みに合わせて修正するだけです。

window.onload = async function() { // CSVURL const URL = 'mhlwgojp_hospital_online.csv' // セレクトボックスを表示する項目名 const [ select, split ] = [ 1, 2 ] const SELECT_NAMES = { '都道府県': select, '対応診療科': split, '初診の対応可能': select, '再診の対応可能': select, } // タイトル const TITLE_NAME = '施設名' // 表示項目 const URL_NAME = 'ウェブサイトURL' // 非表示項目 const EXCEPT_NAMES = [ '行ID', '地方ID', '地方ID', '地方', 'ID地方', '都道府県ID', 'ID都道府県', '市区町村ID', '市区町村', 'ID市区町村', '二次医療圏ID', 'ID二次医療圏' ] // split の場合の区切り文字 const SPLIT_CHAR = '、・,//()()"◆  ' const SPLIT_MAX_LEN = 20 // データをランダムに並び替えるかどうか const DATA_SHUFFLE = true

SELECT_NAMES セレクトボックスを表示したい項目
TITLE_NAME タイトルになる項目
URL_NAME アクセスしてみるに使う項目
EXCEPT_NAMES 一覧には表示しない項目
SPLIT_CHAR 項目を split にしたものの区切り文字
SPLIT_MAX_LEN 区切ってもこれ以上長い値は採用しない


オンラインで学ぼう
時間割ガチャ」で使っている、オンライン教材リストオープンデータを使った、検索アプリもこの通り!

Let's code for ourselves!

links
- オンライン診療「初診解禁」で医療はどう変わる | コロナショック、企業の針路 | 東洋経済オンライン | 経済ニュースの新基準
- 【CSVデータ】全国のオンライン診療実施医療機関リストを公開します。|まじめな所長@医療介護データ研究所|note

新型コロナウイルス対策ダッシュボードで呼びかけている、医療関係の情報提供。「日本医師会総合政策研究機構」から、病床数やICTなど集中治療室の数、ピーク時予測患者数がまとまったデータが公開されたことを情報提供いただきました。 「地域の医療提供体制の現状 - 都道府県別・二次医療圏別データ集 - (2020 年4月版)

2020年4月現在、コロナウィルス新型感染症の感染拡大に伴う、医療資源の確保に向けて、地域の実データが対策のための資料に資することを願う。
とのことなので、こちらのデータを使わせていただき、現在病床数と合わせて表示してみた結果がこちら。

現状数値ではどの都道府県も足りません。各都道府県サイトで確保に向けての動きが掲載されているのでご確認ください。


軽症者は病床を使わないとして、重症者のみで表示した場合、いくつかの県で耐えられることが分かりますが、現在増加している病床が重症者向きになっているとは限らないので決して安心はできません。


コロナウイルス感染症ピーク時予測患者数と各種病床数(都道府県別)(PDF)(Excel)」
予測の計算や、ICUなど細かなデータが掲載されています。各都道府県ごとの医療体制も細かく記載があるので、合わせてご参照ください。


予測モデルは、官邸のサイトに資料があります「新型コロナウイルス感染症対策専門家会議(第5回)(持ち回り開催)日時:令和2年3月2日(月)
こちらのサイトもご参照ください。
西浦北大教授「3つのCOVID-19流行シナリオ、いずれも最悪の場合」|医療維新 - m3.comの医療コラム


新型コロナウイルス対策ダッシュボード
現場の一次情報、引き続き情報提供おまちしています。

福井県庁、新型コロナウイルス対策アプリに必要なオープンデータを、総務省推奨、Code for Japan 作成の推奨データセットに準拠する形で公開スタート!
新型コロナウイルス感染症のオープンデータを公開します! | 福井県ホームページ


COVID-19 Fukui 福井県 新型コロナウイルス対策ダッシュボード
早速、陽性患者オープンデータを使って、福井県カラム地図上で各市町の現在患者者数の多さを色の濃さで表現。


新型コロナウイルス感染症のオープンデータを公開します! | 福井県ホームページ
データはこちらからどなたでもオープンデータとしてご利用いただけます。


陽性患者情報、検査実施件数、陰性確認数、コールセンター相談件数、4つのデータセットがCSVで公開。


東京都版をベースに新たな定義された推奨データセットを使用(総務省資料より)


新型コロナウイルス感染症対策サイトのためのデータ公開について 令和2年3⽉31⽇総務省
詳細は「新型コロナウイルス感染症対策サイトのためのデータ公開について」「新型コロナウイルス感染症対策サイトのためのデータ公開支援 - Code for JapanCode for Japan」をご覧ください。 他の都道府県の担当の方もぜひご検討ください!(参考、オープンデータの作り方と育て方


福井新聞掲載された、福井高専学生開発の福井版対策サイトと共に、新型コロナウイルス対策ダッシュボードも連携サイトとして福井県庁からリンクいただきました。

コンピューターが少し分かれば、家の中でできることが無数にあります!
福井県内自粛でダメージが大きい外食産業との連携、森さんが集めた「#頑張ろう福井グルメ」のデータを使ってアプリ開発&公開。

TAKEOUT FUKUI 福井県のお持ち帰りグルメまとめました
スマホ、PC、タブレット、どれでも地図と合わせて使いやすいをテーマに作ったウェブアプリです。地図は、地理院地図/egmapjsを使用。素のJavaScriptなので、初心者の方でも改造簡単!


スマホなど縦長で見ると、画面下に地図が来ます。アイコンタップでページ内で詳細表示。使い勝手、もう少し良くする予定。


code4fukui/takeoutfukui: TAKEOUT FUKUI #頑張ろう福井グルメ
GoogleスプレッドシートからJSON/CSVへの変換を含めて、プログラムは、GitHubでオープンソースとして公開。Issuesにてご意見、ご要望と、改善自体もオープンに受け付けています。


COVID-19 Japan 新型コロナウイルス対策ダッシュボード
都道府県ごとの詳細画面に一般社団法人 日本耳鼻咽喉科学会が区分を定義した「ハイリスク地域」「ローリスク地域」の表示を追加。 現在患者数が10名以上の地域では、感染リスクが高いため、手術を延期したり、事前の検査が入念になるなどの、対応ガイドラインが公表され、本ダッシュボードへの案内も記載されています。 (学会からのお知らせ:一般社団法人 日本耳鼻咽喉科学会


「気管切開」の対応ガイド(2020 年 4 月 3 日版)一般社団法人 日本耳鼻咽喉科学会)」より
気管切開手術を行う場合の例、ハイリスク地域かローリスク地域かで、異なるフローが推奨されています。

標準PPEとSARS-CoV-2陽性症例への対応に必要となるfull-PPEについて

PPEとは個人防護具(Personal Protective Equipment)のこと。サージカルマスク、アイシールド、手術ガウン、手術用帽子、手袋による通常手術同様の防護が標準装備。

対して、full-PPEとは、感染症対策に強化した下記の装備のこと
- FFP2(N95)マスクあるいは電動ファン付呼吸用保護具
- 眼球保護としてのフェースシールド±ゴーグル
- 身体の保護としての不浸透性長袖ガウン
- 皮膚の露出の少ない手術用帽子

full-PPE 装着下での気管切開は,執刀医から関連する医療者の肉体的・精神的な負担となるため,複数例に対応する場合には同じ医療者に負担が重ならないような配慮も必要である.
医療関係者の負担を極力減らすための行動が必要です。 何か、データでご協力できることがあれば、ぜひお寄せください。


code4sabae/coughgathering: voice uploader web app and node.js server
国際チームで開発進む咳診断サービス、シリコンバレーにいるあみると改善した咳あつめアプリ「Virufy」(Virus + Verify)。 指示に合わせて音声を録音し、サーバーへアップロードし、アンケートシートへ連動する、シンプルでモダンなJavaScript/HTML/CSSのプログラムです(index.html on GitHub)。

緊急事態宣言が出され遠隔医療も解禁。テクノロジーでできること、一気に広げるチャンス!

全国の高専生や、エンジニア目指す小中学生、お家で地域に貢献してみよう!
興味ある方、こちらへどうぞ「Slack: Code for KOSEN

One Young World 2019の福井代表、永平寺エボリューション大使で、現在はシリコンバレーにいるあみるが呼びかける新型コロナウイルス対策プロジェクト。 咳の音から症状をAIで推測するチャレンジ。AI判定には多量のデータが不可欠。手軽にデータをアップロードできるwebアプリを開発し、Code for Sabae の GitHub で公開!


CoughGathering」(src on GitHub)
AI学習用途に使う咳の音声を集める目的のシンプルな録音アプリと、Node.jsで作ったファイル保存サーバープログラム。COVID-19の疾患がある方はチェックし、録音ボタンを押すと5秒録音し、自動的にアップロードされます。 健康な方の咳データも大事なので、よかったら「咳あつめ」ご協力ください。 独自にデータを集めたい方は、ソースからサーバーを立ててみてください。


COVID-19 JAPAN - 新型コロナウイルス対策ダッシュボード
日々更新している本アプリ、続々と寄せられる各自治体の対応データ「新型コロナウイルス感染症病床オープンデータ」の使用するチェックボックスを外すと、従来用意されていた感染症病床数で状況を見ることができます。 現在患者数が上回っている14都府県、それぞれの公式サイトで対応が発表されているので、最新状況をチェックしてください。

アメリカ、パキスタン、日本、3拠点で夢の24時間開発体制のできあがり!
家に居てもできること、探しましょう!

links
- 自治体・医療機関の方、新型コロナウイルス対策感染症病床数の一次情報の公開おねがいします → アプリ化します!

Code for Sabae主催のオープンデータを使ったコンテスト「カフモン2020」開催です!
2020/4/1〜2020/5/15までの福井市で計測されるヒノキ花粉量を当てるだけ。
差の合計が一番小さい人が優勝です!


福井県花粉データまとめ(福井市)」(src on GitHub)
2007年から2020年まで、14年分の1日ごとのスギ花粉とヒノキ花粉の飛散量のCSVデータが福井県のオープンデータとして公開されています。 スギ花粉は終息してしまいましたが、これから迎えるヒノキ花粉。こちらが今回コンテストのテーマです!


こちらが登録フォーム。APIを用意したいところでしたが、ひとまず誰でも参加できる形でスタート。

4/1 10 4/2 30 4/3 50 ... 5/15 0

このような日付と飛散量を書いたデータをフォームに追加するだけでOK!
登録日の翌日以降のみ有効になりますが、何度もデータ更新してOK。

参加お待ちしています!
カフモン - 花粉オープンデータチャレンジ


福井県花粉データまとめ(福井市)」(src on GitHub)
12年分のデータを単純に平均する?天気データと突き合わせてみる?どのデータがどう影響しているか?コンテストサイトや、花粉オープンデータの表示方法をかっこよくするフォーク、プルリクも大歓迎!

新型コロナによる症状と間違えられやすい花粉症。誰もが発症リスクある困りもの。

高専生、大学生や機械学習を使って人、家でじっくり取り組むテーマのひとつとして、ぜひ活用ください! 良いアルゴリズムが見つかれば、来年の花粉症対策にすぐ使えちゃうかも?

福井県での初感染者発表で言及された感染症病床数。厚生労働省に全国都道府県別のデータがありました。 「感染症指定医療機関の指定状況(平成31年4月1日現在)|厚生労働省
※ 政府オープンデータカタログ data.go.jp は3/23 8:00までメンテナンスでした。痛い。


COVID-19 JAPAN - 都道府県別 感染症病床数(カラム地図7x7、厚生労働省データ)
もしかしたら、使いやすいオープンデータがあったかもしれませんが、急ぐので公開されているHTMLからJSON化するプロラムを作って、アプリ化。


感染症指定医療機関の指定状況(平成31年4月1日現在)|厚生労働省
こちらがデータ出典元のサイトです。

<!-- ここから内容 --> <h2>感染症指定医療機関の指定状況(平成31年4月1日現在)</h2> <h4>○特定感染症指定医療機関 : 4医療機関(10床)&nbsp; <script type="text/javascript">dateCH("2015","4","1");</script></h4> <table class="table1"> <thead> <tr> <th scope="col">病院名</th> <th scope="col">病床数</th> <th scope="col">所在地</th> </tr> </thead> <tr> <td> 成田赤十字病院 </td> <td class="center"> 2床 </td> <td> 千葉県 </td> </tr>

このようにHTMLで書かれたデータを、プログラムで文字列処理して、構造化したデータへと変換します。JavaScriptのプログラムの一部抜き出すと、こんな感じです。(オープンソースのライブラリ cheerio 使用)

const parseTable = function(dom, tbl) { let state = 0 const res = [] const head = [] dom('tr', '', tbl).each((idx, ele) => { if (state == 0) { dom('th', '', ele).each((idx, ele) => { head.push(filterElement(dom(ele).text())) }) state = 1 } else { const data = {} dom('td', '', ele).each((idx, ele) => { data[head[idx]] = filterElement(dom(ele).text()) }) res.push(data) } }) return res }

定期的にウェブサイトをチェックし、更新があれば自動反映します。ただし、HTMLの書き方が大きく変わると変換プログラムを手直しする必要がでてきます。 こうしてできたJSON形式のデータの一部がこちら

total: { sum: 5809, sumi: 5373, sumt: 10, sum1: 103, sum2: 1758, sumk: 3502, sums: 436 }

計算済みの合計値を使ったり、都道府県別のデータを使ったり、アプリですぐに活用できる、3つ星オープンデータができました。詳しくは、ソース bedforinfection.js を参照ください。


COVID-19 JAPAN - 都道府県別 新型コロナウイルス陽性患者数 (カラム地図7x7、厚生労働省データ)
Code for Japan による、#StopCOVID19JP の掛け声の元、地域展開が進む新型コロナウイルス対策サイト。この度、厚生労働省データを纏めて作った「COVID-19 Japan」にルートのドメイン stopcovid19.jp を振ってもらいました!

感染状況を注目するにあたって、今回取得した各地の地域内の感染症病床数がひとつの防衛ラインになるように思うので、その割合での表示にしてみたいと思いますが、多くの目に触れるアプリになっているので、意見を聞いてみてからの反映にします。

このアプリも、Code for Sabae の GitHub にて、オープンライセンスで公開しているオープンソースです。自由に活用、意見送付、プルリクいただければとうれしいです!

links
- 病床使用率をモニタリング!福井で初の感染者、感染症病床数は48、みんなで打ち勝つ新型コロナ、Let's Code for 地元!

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / RSS