Skip to content
This repository has been archived by the owner on Apr 12, 2023. It is now read-only.

閾値以下で接触通知の対象にならなかった接触を確認出来る画面を作る #605

Open
daisuke-nogami opened this issue Dec 16, 2021 · 52 comments
Assignees
Labels
wontfix 今のところ対応予定がないもの
Projects

Comments

@daisuke-nogami
Copy link
Collaborator

daisuke-nogami commented Dec 16, 2021

その機能リクエストは何らかの問題に関連しますか / Is your feature request related to a problem?

discussion #532接触通知が出なかった場合も含めた、接触状況を知らせる定期的な通知の追加 を起点とするIssue。
#532 (comment)

接触通知を発生させる閾値以下の接触があったことを(OSの設定画面ではなく)COCOA内で確認できるようにする。

解決策についてお書きください / Describe the solution you'd like

通知だけでは通知を消した後に内容が確認できなくなるので、どこかの画面で確認できるようにすべきだが、
その通知・画面で伝えることは以下の2点。

  • 動作状況の伝達
    • EN/COCOAが動作していることの伝達
  • 注意喚起
    • (閾値以下の接触があった場合)行動圏内に陽性登録者がいたので少しだけ注意を促す内容
    • (閾値以下の接触も無かった場合)行動圏内にも陽性登録者がいなかったのでリスクが非常に少ないことを伝える内容

※2022/01/05修正…「動作状況の伝達」をより上位の目的と変更

現在ある「陽性者との接触結果の確認」は、行政検査が受けられる、接触通知対象との接触を示すもので、
ここに混ぜてしまうとミスリードであるため、画面を新設する。

画面名称:「陽性者とのリスクが極めて低い接触の状況」

画面に表示する情報:

  • 見出し:陽性者とのリスクが極めて低い接触の状況
  • 数値:直近14日間に合計◯分間
    • 有無だけでは不安が増えるだけなので接触の内容は示す必要がある
    • 発生した日数を示す(「◯日間」)のでは、長時間にわたった接触という誤解をしそう
    • exposure_data内にある SecondsSinceLastScan の値を全て合計して60で除算した数値を表示する
  • 説明文:接触有無により出し分け
    • 直近14日間に、リスクが極めて低い陽性者との接触がありました
      • 陽性者のスマートフォンの信号を受信しましたが、数m以上離れておりリスクはありません。行動圏内には陽性者がいましたので、引き続き感染予防に留意しながらお過ごし下さい。
    • 直近14日間には、リスクの低いものを含め陽性者の接触がありませんでした
      • 行動圏内には、陽性登録者はいなかったようです。引き続き感染予防に留意しながらお過ごし下さい。

そして、週次等で通知を出す場合には説明文をそのまま通知の文面とする。

あなたが考える代替案についてご説明ください / Describe alternatives you've considered

画面を追加せず通知のみとする。

その他 / Additional context

@keiji keiji added the COCOA2 label Dec 16, 2021
@b-wind
Copy link

b-wind commented Dec 16, 2021

そして、週次等で通知を出す場合には説明文をそのまま通知の文面とする。

本題とはずれてしまうのですが、こちらについて違和感を覚えました。

現状 iOS/Android 共に通知をロック画面に表示する設定があり、ロックを解除出来ない第三者が見られる可能性があります。
また Android では他のアプリから通知文面を取得することが出来ると認識しています。

また、ゲーム配信などで画面を映す機会が増え通知メッセージがそのまま表示されてしまうという事故も耳にします。

これら状況を踏まえ、特に閾値以下の接触があった場合の通知文面は別 Issue で別途検討することを提案致します。

@b-wind
Copy link

b-wind commented Dec 16, 2021

こちらのページは所謂濃厚接触に対する物では無いので、提示戴いているユーザー自身の情報に加え
COCOA全般の統計情報を表示してしまって良いのかなと考えました。

まず考えたのは期間内に発生したCOCOAからの陽性者登録数です。
全国の数値を念頭に置いて居ますが、いずれ県ごとの数字などが見られる様になると良いなと。

また、データ取得�を行う事が前提になりますがCOCOAが濃厚接触を判定し、通知した数等も表示されると実感しやすいかなと。

@daisuke-nogami
Copy link
Collaborator Author

通知の文言については以下のようにあまりCOCOAでの対応という感覚がないのですが、
他の問題も含めてIssueを立てていただけますとありがたいと思います。

通知画面で文字が見える見えないについては、iOS/Androidともに、通知画面に詳細を表示するか否かの設定があり、利用者に委ねる話かとも思いました。ゲーム配信で画面を写すときについても、どちらかといえばゲーム配信アプリ側の方の課題にも思えます。

また、他のアプリからの情報取得ですが、個人的に利用しているwena3はAndroid/iOSともに通知の文言を拾って手元に送ってくれるもので、これはこれで「重要なものほど手元にすぐに見せて欲しい」ものですので、こちらについても、他のアプリに見せる見せないについてはCOCOA側で考慮すべきなのかなやましいと感じます。
(設定を作ったとしても、そういう配慮を必要とする利用者ほどそういう設定を気にしないのではないか)

@daisuke-nogami
Copy link
Collaborator Author

このページを情報提供ページにすべき、というアイデアはまさに同じことを考えており、discussionでも、

#532 (comment)

「通知が出たことがない!」という声を多数聞くがそれは当たり前で、第5波のピークで満員電車に乗っていたとしても同じ車両に5,6人しかいない計算になり、距離的に濃厚接触にならない(OSの画面上では閾値以下の接触あり、と表示されうるが)。
そして、感染者の分布に偏りがあることを考えると、接触がある可能性はより低くなる。
試算の根拠:
人口当たり新規感染者数が最も多かった沖縄県でも人口10万人あたり7日間合計3,000人、東京都は7日間合計2,500人
一般的な通勤列車は長さ20m、6人で割っても5m。最も長い駅間でも20分程度か。

というようなラフな試算を書いた通り、

  • 全国の直近7日間の新規感染者数 ◯人
  • 全国の直近7日間の新規陽性者登録数 ◯件
  • 全国の直近7日間の「濃厚接触の可能性」通知件数 ◯件
  • 行動圏(◯◯県)の直近7日間の新規感染者数 ◯人
  • 想定される行動圏(◯◯県)での直近7日間での通知件数 ◯件

のような感じで、自分の身近なところのリスクを認識する画面に発展できれば、とは個人的に思っています。

@daisuke-nogami
Copy link
Collaborator Author

こちらも画面イメージを作って貼り付けてみます。

image

@keiji
Copy link
Collaborator

keiji commented Dec 19, 2021

現状 iOS/Android 共に通知をロック画面に表示する設定があり、ロックを解除出来ない第三者が見られる可能性があります。
また Android では他のアプリから通知文面を取得することが出来ると認識しています。
また、ゲーム配信などで画面を映す機会が増え通知メッセージがそのまま表示されてしまうという事故も耳にします。

そうですね。
これを防ぐためにAndroid版では通知ドットを表示しないとか、ヘッドアップ通知を出さないとかケアしていますが、iOSの方は一筋縄ではいかず、なにせENv1のシステムからの通知がロック画面からも見えてしまっていましたからね。

通知文面については「COCOAから今週のレポートです」みたいな表示に統一するのはどうでしょうか。前述の「通知を知られたくない問題」は、COCOAが通知を出すときは接触の可能性が あるとき という前提です。いっそ週次レポートのような形で定期的に出るようにすれば、通知そのものを隠す必要はなくなると思います(文面のケアは引き続き必要)。

と、そんな思想で初期のENでは「接触確認やってますよ」とか「今月はなにもなかったですよ」みたいな通知を出していた記憶がありますが、やはり利用者層が厚いと「通知が出るだけでパニックになる利用者」もいるようです。最近iOSでもAndroidでも、システムからはそういう通知を出さなくなってきましたね。

ここは結構悩ましいのですが、「なにもなかった(ネガティブ)レポートを出す」ということであれば、なるべく利用者以外が目にしても問題ない通知内容に合わせておいたがいいですよねと言うことで。

@b-wind
Copy link

b-wind commented Dec 20, 2021

通知文面については「COCOAから今週のレポートです」みたいな表示に統一するのはどうでしょうか。

案として同様の文面を検討していました。

ここは結構悩ましいのですが、「なにもなかった(ネガティブ)レポートを出す」ということであれば、なるべく利用者以外が目にしても問題ない通知内容に合わせておいたがいいですよねと言うことで。

同感です。デフォルト設定では「COCOAからの通知自体はあるが、文面からは(少なくとも)濃厚接触があったか無かったかは推測出来ない」状態が望ましいと考えます。

また、他のアプリからの情報取得ですが、個人的に利用しているwena3はAndroid/iOSともに通知の文言を拾って手元に送ってくれるもので、これはこれで「重要なものほど手元にすぐに見せて欲しい」ものですので

一方でこちらのような要望も理解出来ます。確実に自分しか触らない端末ならその方が都合がよいとも思います。
ただ、あまり設定を増やしたりするのもCOCOAとして好ましくない様に感じました。
上手く両方のニーズを満たせる方法があれば良いのですが。

@b-wind
Copy link

b-wind commented Dec 20, 2021

本題の表示内容ですが、以下の3件は内容の分かりやすさもあって候補として有るとよいと思いました。

  • 全国の直近7日間の新規感染者数 ◯人
  • 全国の直近7日間の新規陽性者登録数 ◯件
  • 全国の直近7日間の「濃厚接触の可能性」通知件数 ◯件

欲を言うとグラフ化されているとイメージとして掴みやすいかも知れません。

行動圏毎の物に関しては、提供して貰えていると言う前提であれば全国の数字と置き換えて優先してしまって良いのでは無いかと思います。

@daisuke-nogami
Copy link
Collaborator Author

ありがとうございます。

新規感染者数については既にダッシュボード https://covid19.mhlw.go.jp/extensions/public/index.html がありますが、
アプリから利用するには生データなのがネックなのと、
新規陽性者登録数・「濃厚接触の可能性」数はダッシュボードがないのも含めて
サーバ側の追加開発が必要なのがいまのところのネックです。

ただ、そのあたりが揃ってくればダッシュボードでグラフ形式表示なども提供していくのは
そこまで難しくないかとは思いました。

@kazuhiro4949
Copy link
Collaborator

kazuhiro4949 commented Dec 23, 2021

@daisuke-nogami とりあえず各々のExposureWindowでSecondsSinceLastScanを集計して、更に全ExposureWindowの集計値を足し合わせる形で「合計◯分間」を計算しました。個別には扱ってないのですがそれで大丈夫ですかね?(少しだけ注意を促す画面)

https://github.com/cocoa-mhlw/cocoa/pull/629/files#diff-1bb98eeda90b892d6c10bd879a590b66f7f14aefecfee4031881d24ef86f80cbR38-R55

@kazuhiro4949
Copy link
Collaborator

画面イメージをそのまま素直にXamarin.Formに当てはめるとこんな感じに

@daisuke-nogami
Copy link
Collaborator Author

ありがとうございます!

各々のExposureWindowでSecondsSinceLastScanを集計して、更に全ExposureWindowの集計値を足し合わせる形で「合計◯分間」を計算しました。個別には扱ってないのですがそれで大丈夫ですかね

はい。仕様上も1個1個のScanInstanceの合計時間がExposureWindowになっていますし、手元で実際に出力させたExposureWindowも整合が取れる数値になっています。

ただ、表示する単位は工夫したいですね…
複数台×12時間以上だと24時間を越えてしまうなど、「◯分間」では違和感がでる表記がでてしまうので。
厳密に言えば「◯分・台」ではあるのですが、あまり分かりやすいとは思えないです。

そして、通知画面をみて気づきましたが、タイトルは「陽性者との、リスクが極めて低い接触」じゃないと
日本語の意味が変になりますね…ここも含めて、Githubに加えて開発・行政サイドの意見を聞いて
詰めて行く必要がありますね。

@kazuhiro4949
Copy link
Collaborator

@daisuke-nogami 以下の変更を加えてみましたがこんな感じでどうでしょう?

  • デザインを「過去14日間の接触」に似せる
  • ナビゲーションタイトルを「リスクが極めて低い接触」に変更 (幅狭端末でも表示できるように)
  • 本文タイトルと「陽性者とリスクが極めて低い接触がありました」に変更(14日間というワードが繰り返し出てきていたので削る)

表示方法ですが、〇〇時間〇〇分と表示させるようにしてみたんですがこれだとどうでしょう?時間と分はそれぞれ存在する時だけ表示される感じにしました。
テストコード内に表示パターンを書いてみました。

https://github.com/cocoa-mhlw/cocoa/pull/629/files#diff-8071b26b9b7f03d2fa682dd4233492ae5cde6dca053ed658ebee13153d8c95d4R45-R52

@kazuhiro4949
Copy link
Collaborator

kazuhiro4949 commented Dec 27, 2021

@daisuke-nogami 細かいですが、合計接触時間が数秒の時の扱いは0分表示で大丈夫ですかね。(そういうケースは正常系としてはなさそうでしたっけ?)

@daisuke-nogami
Copy link
Collaborator Author

はい、流石に数十秒で感染という事例はないので…
なお、現時点ではScanInstanceは60秒単位で出ているので、0分表示というのは現時点の正常系では存在しなさそうです。

@daisuke-nogami
Copy link
Collaborator Author

接触通知がでている(閾値を超える)接触があったときの仕様を定義していなかったことに気づきました…
すいません。

当該14日間に接触通知がでる(閾値を超える)接触があったときには

  • 画面表示を変える
    • 「!」マークと黄色は閾値越えがあるときに使う
    • 閾値以下のみのときは別の配色・マークをつかう
      • ※アクセシビリティ対応などをしている担当者の方の意見を聞きたい
    • 閾値以下もない場合は緑色系・マーク無し
  • 閾値以上の接触があるときは「陽性者との接触の表示」画面に遷移するボタンを設ける
  • 表示する時間は閾値以下のもののみに限る

そして、これらを踏まえると、COCOA2の接触通知の閾値を変える設定を作る必要がありました。
こちらは別Issueで立てます。

@kazuhiro4949
Copy link
Collaborator

@daisuke-nogami 既存の接触なし画面では以下の2つのコンポーネントが存在しています。

  • ピクトグラム画像
  • 共有ボタン

これらは引き続き低リスクと接触なし両方にあってもいいかなと思いましたがいかがでしょうか。

スクリーンショット 2021-12-29 10 29 55

@kazuhiro4949
Copy link
Collaborator

kazuhiro4949 commented Dec 29, 2021

閾値以下のみのときは別の配色・マークをつかう

一般的には単なる情報のみであれば青もしくは灰色や白を使うのがwebでよくある配色のように思います。
cocoaの場合、青はすでにボタンの色として使われているため、既存の接触なし画面と合わせて台座なし白背景でがいいように思います。

@kazuhiro4949
Copy link
Collaborator

@daisuke-nogami 既存の接触なし画面に合わせる形で、レイアウト微調整しつつ文言を変更して新接触なし画面を作ってみました。
こんな感じでどうでしょう。(低リスク画面にも同じ画像をつけた方が良さそう?)

スクリーンショット 2021-12-29 11 12 31

@kazuhiro4949
Copy link
Collaborator

kazuhiro4949 commented Dec 30, 2021

@daisuke-nogami ホームにある既存の「陽性者との接触結果を確認」から遷移するイメージで進めていますが大丈夫でしょうか?
その中で新しく「閾値以下接触の画面」をだしわけつつ、「接触なし画面」の差し替えをおこなっています。

その上で、現状ではリスク計算ロジック自体は接触さえあれば既存の接触通知画面に遷移するようになっています。

@daisuke-nogami
Copy link
Collaborator Author

@kazuhiro4949
位置づけとして、リスクを示すのではなくCOCOAの動作状況を示すものとしていたので、
遷移方法も画面も別のものになるのを想定していました。

遷移ルート

  • ハンバーガーメニューに別の項目を立ててそこから遷移
  • ホーム画面では動作状況を示すボタンからの遷移
  • 陽性者との接触結果確認画面からも遷移

厚生労働省側との議論の中でも、リスクの大きさを適切に認識して貰う(どちらかといえば過剰に反応して、検査・相談依頼が必要以上に増えることへの懸念)があり、少し違う画面であることはうまく伝えたいなと考えています。

@daisuke-nogami
Copy link
Collaborator Author

上記のコメント内で「厚生労働省側との議論」という記載をしましたが、

リスクの大きさを適切に認識していただくためには、14日間の合計分数ではなく違う表現が必要ではないか?
(例えば、日付別に時間が分かる、接触距離が分かる、数値ではなくグラフで表示される、など)
グラフ表示…時間・距離の2軸の概念であっても、1軸にまとめることはできないか?
という問題提起を受けて、違う表現が出来ないかを考えており、整理しきれていないのですが、どのような形式が望ましそうかのご意見をいただけますと幸いです。

閾値以下の接触についてどのように表現するか

表示内容

  • 有無のみ
  • 合計分数のみ
  • 合計分数と、最も強い(近接した)ときの電波強度
  • 合計分数と、最も強い(近接した)ときの距離(電波強度より理論値を計算)

分解能

  • 14日間合計して表示
  • 1日ごとに分解して表示

※電波強度まで示すと、陽性者との接触結果確認画面よりも情報量が多いことになるので両方変える必要がでてくる

@kvaluation
Copy link
Contributor

こちら、この機能に限らない話ですが、COCOAが出す情報を踏まえた行動の案内は大きな課題になっています。

非常に重要な話題で、別のdiscussionsがよいでしょうか。都道府県に行動案内の選択肢を持っていただくことで、より積極的なCOCOAへの関与を期待できると思います。

@daisuke-nogami
Copy link
Collaborator Author

導線はこんな感じで2つ作ってみましたがどうでしょう。リンクタイトルはiOSの設定アプリの接触確認の表現に寄せています
動作状況のモジュールはテキストが3つ並んでしまって読み難いようにも思うので変えた方がいいかもしれないですが。

  • ホームの動作中の下にテキストリンク配置
  • メニューのホームの下に項目追加

ありがとうございます。動作状況はおっしゃる通りテキストが3つ並んでいるのが読みにくいのと、
この文字を見て期待する画面とは情報が違う(たぶん「◯時間稼働中!」みたいなものをイメージする)ので、
メニューの項目追加だけを実装してみましょうか @kazuhiro4949

@daisuke-nogami
Copy link
Collaborator Author

こちら、2mより1.5mの方が距離測定が安定する、という資料はなにかお持ちでしょうか。
資料ですが、わたしはこちらの情報を信頼して繰り返し見ています。 https://shizuk.sakura.ne.jp/bluetooth/beacon/proximity.html 「電波の減衰 距離毎に 実測で求めたRSSI値を元に作成した グラフ」 信頼できる区間、175cmぐらいまででしょうか。

長距離の不安定性はこちらでご報告しておりました。 #532 (comment)

ありがとうございます。
私の方では、こちらの資料のp.12のFigure 4の説明文にある数式を元に判断していました。
https://arxiv.org/pdf/2007.05057.pdf

この数式をもとに、1.0m, 1.5m, 2.0mなどの特定の距離においてdBがどのようにブレるかの幅を計算して、
「0.5mと1.0mは区別がつく」「1.0mと2.0mは区別がつくが、1.0mと1.5mは区別がつかない」などを考えていました。
計算結果を簡易化して図にすると、以下のようになります。
※図は個人で作成したもので、誤りがあった場合の責任は私にあります

image

そして、Exposure Notification APIの出力する電波強度の実データも合計280時間分くらい取得したところ、
おおむね似た傾向がみられていました(図の「実測値」の部分です)。

ですので、1.5mという値を示されていたのは、なにか別のデータがあるのか、と気になった次第ですが、

1mと2mをしきい値とするのが良いかと思いました。

という結論が同じでなによりでした。

なお、Androidのv1のログの閾値ですが、

電波強度(の差)50(約45cm), 70(約250cm)の3区分
45cm以内で経過時間がでると、COCOAでも接触通知がでたり、陽性登録者さんとの会食をご自身で把握していたり

これをみるに、50dBにスコアがある方であれば、1m以内の接触があり、多少電波の揺らぎがあってもv1の現在の閾値(63dB)より弱くなることがないので、確実にCOCOAの濃厚接触通知がでるのも理解できます。

@daisuke-nogami
Copy link
Collaborator Author

こちら、この機能に限らない話ですが、COCOAが出す情報を踏まえた行動の案内は大きな課題になっています。

非常に重要な話題で、別のdiscussionsがよいでしょうか。都道府県に行動案内の選択肢を持っていただくことで、より積極的なCOCOAへの関与を期待できると思います。

はい、別のdiscussionがよいですね。
COCOA自体の画面遷移などを変えやすくするような機能拡張が手段になってくるかとは思います。
ただ、現時点では、都道府県別でCOCOAが動作を変える/データを取得することが難しいことなどから、都道府県が案内の選択肢を切り替えることは考えにくく、その結果として「どのような機能があるべきか」というアイデアも得にくいことから、議論は難しいと思います。

それよりは(最近さまざまなサイトでみかけるような)チャットボットなどの方がより効果的でしょうけれど、だとすると尚更COCOAに限らない話になってきてしまいますが…

@kazuhiro4949
Copy link
Collaborator

kazuhiro4949 commented Jan 5, 2022

@daisuke-nogami こちらのプルリクエストでメニューからの遷移を想定した画面の実装をしました。(途中指摘いただいていた文言修正もついでにしています)
#647 (comment)

現在の未実装部分は

  • メニューからの導線
    • 画面などの実装は既にfeature/cocoa2へ入っているので、出す出さないも含め内部で仕様が決定した時点で削除している導線をつける段取りにしようと思います
  • 低リスクとの接触の判定
    • 現在接触があれば必ず「低リスクとの接触画面」を出すようにしています
    • ここってどうしましょうか?読み飛ばしていただけかもしれないですが議論されてましたっけ。

@daisuke-nogami
Copy link
Collaborator Author

はい、pull-requestが生えて対応いただいているのは見ておりました。

低リスクとの接触の判定
現在接触があれば必ず「低リスクとの接触画面」を出すようにしています
ここってどうしましょうか?読み飛ばしていただけかもしれないですが議論されてましたっけ。

はい、接触があれば、その内容を問わず表示します。
というのも、そもそもの目的が

・動作状況の伝達
 ・EN/COCOAが動作していることの伝達

であるため、少しでもスコアがあったらそのことが見えるようにする必要があるためです。

@daisuke-nogami
Copy link
Collaborator Author

そして、接触について合計分数を示している部分についても行政側とも議論をしましたが、

  • 分数や距離に相当する情報を示すと、どうしても、なんらかの感染リスクを伝える画面となって、検査対象でないことなども含めて示しにくい
  • 目的のうち「ENが正しく動作している」の方を優先して伝えるなら、単純にスコアを示して、それが閾値を下回っていると説明するのがよいのではないか、

という観点で、添付の図のようなイメージに実装できないかと議論しております。

image

※2段組になっているのはあくまでスライド上の都合で、現在の「陽性者との接触結果確認」画面と同じような1段組の実装でも問題ありません。

これは、

・注意喚起
 ・(閾値以下の接触があった場合)行動圏内に陽性登録者がいたので少しだけ注意を促す内容
 ・(閾値以下の接触も無かった場合)行動圏内にも陽性登録者がいなかったのでリスクが非常に少ないことを伝える内容

この目的の観点からすると後退になってしまって申し訳ないです…
(ただ、表現が難しいのも事実でして…)

まずは(現在は不具合の連絡等に使っている方の)動作ログにExposure Dataを含めた出力がでるようにし、
本人がExcel等を使う、あるいはCOCOAログチェッカーの様な別のアプリで整理・可視化するなどして、
適切に伝わる良い表現方法を探った上で、COCOA本体にその見せ方を取り込む方がよいのではないか、
とも考えています。

@kvaluation
Copy link
Contributor

目的のうち「ENが正しく動作している」の方を優先して伝えるなら、単純にスコアを示して、それが閾値を下回っていると説明するのがよいのではないか、

接触日ごとのスコア、見やすくて良いと思います。調整ありがとうございます。

おなじ接触日に別の2名の陽性登録者Aさん、Bさんと接触して、それぞれの診断キーAさんTEKa、BさんTEKbが異なる日に配信されて、それぞれはスコアが20に満たないけれど、単純に加算すると20を超えてしまう場合、COCOAの接触にならないのに、○日前のスコアが20を超える可能性があるかなと思いました(配信日が同じでも)。

1日前 TEKaで15点

1日経過して、

2日前 TEKaの15点と、TEKbの10点が重なって25点が表示されると、何が起きたのか分かりにくくなると思いました。

ただ、TEKaの15点は、15日前になって(接触日から15日経過して)やっと消える方が、配信日当日のみ表示するより、動作確認としても良さそうに感じます。TEKaの15点と、TEKbの10点を加算せず別に表示すると、新しい接触なのかどうか、分かりやすいです。

@kazuhiro4949
Copy link
Collaborator

@daisuke-nogami 了解です。UX的にも技術的にも2段組みではなくリストにした方が良いので、リストでスコアを表示するUIを検討して実装してみます。
既存の文言に関しても現状の形より感染リスクに関する画面でないことが伝わるようにした方がいいように思いましたが、とりあえずまずリストを埋め込む形で実装します

@daisuke-nogami
Copy link
Collaborator Author

文言は最後に差し替えていきますのでUIの方はよろしくお願いいたします。

おなじ接触日に別の2名の陽性登録者Aさん、Bさんと接触して、それぞれの診断キーAさんTEKa、BさんTEKbが異なる日に配信されて、それぞれはスコアが20に満たないけれど、単純に加算すると20を超えてしまう場合、COCOAの接触にならないのに、○日前のスコアが20を超える可能性があるかなと思いました(配信日が同じでも)。

Exposure Notificationの実装 & あるべき接触確認の両面で、この挙動という理解でよいのか確認が必要ですね…
少なくとも同じ配信日であれば、AさんBさんとの接触スコア合計が閾値を超えたら通知が出るはずですし、
感染リスクとしては人は違っても時間が長ければある、と見なすべきですので…

@kazuhiro4949
Copy link
Collaborator

kazuhiro4949 commented Jan 8, 2022

@daisuke-nogami プルリクの方に現状で僕の方で実装した仕様をまとめておきました。多分不都合ありそうだと思うのでお手隙にご確認お願いしますmm

@daisuke-nogami
Copy link
Collaborator Author

実装いただいた仕様について確認をしました。
#647 (comment)

一点、こちらのpull-requestでのご相談ですが、「リスクスコアは数字として大きすぎない方がよいか」というものです。

ENv2のスコア(ScoreSum)の通常取り得る最大値は 21.6万 (60秒×60分×24時間×weight 250%、2名以上同時に接触すればこれを上回る)と、かなり大きな数字になり、結果として閾値は1000を越えた数字になります。
とはいえ、一般的な感覚では、スコアに数百という数字がでると「大きい値」のような印象を与えるのではないかと思いました。
そうすると、たとえば数百というスコアがでて、これが閾値より低かったとしても、なにか心配を与えるのではないか、という感覚があり、閾値・スコア両方とも100で割って表示すれば肌感に合うのでは、と考えました(ので実装イメージでは100で割った数字にしている)。

これが、考えすぎとか、本来の数字をそのまま見せた方がよい、という意見が多ければスコアをそのまま表示しようと思います(し、もっと見え方を緩和すべきというのがあれば違う見せ方を考えないといけないかもしれませんが)。

@keiji
Copy link
Collaborator

keiji commented Jan 9, 2022

ぼくは無加工派です。本当にENからその値がでたなら、そのまま利用者に知らせる方が良いと思います。

ぼくはアプリを作る上で、必要のない計算はすべきではない。という立場です。
例えば21万という値がでたとして、100分の1しても相当大きな値です。
利用者に過度な不安を与えないためという目的を達成するために、元の値が大きくなればなるほど除する数も大きくしていく。みたいな話になりそうですが、値を階段グラフのようにして取るのか、対数のように取るのか、議論になりそうです。

そして、その議論をしても特に得るものがありません。
仮に今検討している利用者から接触データの収集のご協力をお願いできるとなれば、そのときにExposureWindowやScanInstanceから独自スコアを算出することもできます。
そのとき大いに議論すればよいと考えます。

@daisuke-nogami
Copy link
Collaborator Author

ひとつ誤解を与えてしまったので補足しますと、小さく見せたいのは閾値です。閾値超えたらいくらでも大きくて構いません(だって不安を持つのが正しいですから)。なので対数軸とかそういう意見には発展しません(させません)。

@daisuke-nogami
Copy link
Collaborator Author

あと、質問を受けて、縮めるのがなぜ二桁なのかに気づいたのですが、リスクスコアは有効数字が2-3桁だということです。
電波の強度は有効数字は2桁、
時間(分単位)は閾値を超えないときには1桁-2桁、
そうすると閾値の有効数字も2桁、
ここまでは意味がある数字・ここから下は意味がないけど生の数字は見せてる数字、
というのを暗黙で考えてました。

(丸一日の接触なら時間の有効数字は3-4桁になりますので、最大が4桁でも整合します)

@keiji
Copy link
Collaborator

keiji commented Jan 10, 2022

ぼくは表示の時に閾値を小さく見せる必要性はないと考えています。

EN自体の計算式は公開されており、ExposureConfigurationもパブリックな場所に置くので、取りうる値域も、わかるひとには分かります。

https://developer.apple.com/documentation/exposurenotification/enexposureconfiguration

表示のときだけ数値を加工するということは、何か意図があるということです。その意図が違ったところにある(リスクを小さく見せようとしている)と議論を呼ぶことは避けたいです。

もし100分の1にするのであれば、Infectiousness weightかReportType weightの段階で最終的に100分の1になる値を設定するので良いのではないでしょうか。

ExposureConfigurationについては決めの問題なので、そこから先は出てくる値に応じて閾値を決めているという話になり、議論になりにくいと考えています。

@kvaluation
Copy link
Contributor

@daisuke-nogami

少なくとも同じ配信日であれば、AさんBさんとの接触スコア合計が閾値を超えたら通知が出るはずですし、

EN2のExposureWindowの仕様がそうなっているのを確認しました。日次ですべての接触した陽性登録者さんのスコアを加算して接触通知の判定をするのですね。失礼しました。ありがとうございます。

EN1では、複数の、例え4人の陽性登録者さんと1m以内に同時に6分間同席しても接触通知はされないが、
EN2では、1m以内6分間のスコアが4人分加算されて接触通知ありのスコアになるのかな、と考えています。
この陽性登録者さん4名は、同一日に検査・陽性登録するとは限らないので、接触日を10日として、

FさんとGさん 12日に検査結果判明、陽性登録、13日に配信: 単純計算で12分間分で、EN2でも接触通知なし
HさんとIさん 13日に検査結果判明、陽性登録、14日に配信: FさんGさん分のExposureWindowのスコアを含めて加算して、24分間分で、接触日10日で接触通知あり

色々確認しないと、分からない部分はありますが、思考テスト用の事例案です。EN1だと濃厚接触なし、キーの一致は4件でるのかなと思います。

有効数字ですが、ExposureWindowのスコアの有効数字のあとは、足し算・引き算しかしないので、有効数字の桁は足すだけ増えていくと考えても良いかと思います。(銀行口座の残高について、金利計算をした後、残高は加減しかしないため、金利の有効数字による誤差は伝搬しないという実務的な立場)

(参考)
https://developers.google.com/android/exposure-notifications/exposure-notifications-api

・ExposureWindow: Each ExposureWindow corresponds to a single diagnosis key.
1つのExposureWindowは1つの診断キー

・getExposureWindows(): The link between them (in other words, the fact that they all correspond to the same key) is lost because those windows are shuffled before being returned and the underlying keys are not exposed.
30分を超える連続した接触では複数のExposureWindowに分割されるが、ExposureWindowはシャッフルされ診断キーとの関係は失われる。(ExposureWindowが2つ以上あるとき、同一の陽性登録者さんとの接触であるかどうかは特定できない)

@kvaluation
Copy link
Contributor

表示のときだけ数値を加工するということは、何か意図があるということです。その意図が違ったところにある(リスクを小さく見せようとしている)と議論を呼ぶことは避けたいです。

ExposureWindowの数(30分以内の陽性登録者さんとの接触の延べ人数)を併記しておくと、スコアの大きさだけで判断される可能性を減らせるかなと思いました。

@daisuke-nogami
Copy link
Collaborator Author

先にENの仕様について、実機の動作を踏まえてコメントしようと思って出来ていなかった部分について書きます。

EN1では、複数の、例え4人の陽性登録者さんと1m以内に同時に6分間同席しても接触通知はされないが、
EN2では、1m以内6分間のスコアが4人分加算されて接触通知ありのスコアになるのかな、と考えています。

はい、同じ認識です。

この陽性登録者さん4名は、同一日に検査・陽性登録するとは限らないので、接触日を10日として、
FさんとGさん 12日に検査結果判明、陽性登録、13日に配信: 単純計算で12分間分で、EN2でも接触通知なし
HさんとIさん 13日に検査結果判明、陽性登録、14日に配信: FさんGさん分のExposureWindowのスコアを含めて加算して、24分間分で、接触日10日で接触通知あり

はい、このイメージに合います。
手元の、接触者役端末1台(a)・陽性者役端末2台(b,c)で接触を模擬して、bの陽性登録⇒aの通知発生⇒日付が変わる⇒cの陽性登録⇒aの通知発生、という手順を踏むと、以下の様に、それぞれの日のスコアが追いかけで変わります。

image

@daisuke-nogami
Copy link
Collaborator Author

リスクスコアを除算するかどうかについて、

表示のときだけ数値を加工するということは、何か意図があるということです。その意図が違ったところにある(リスクを小さく見せようとしている)と議論を呼ぶことは避けたいです。

という懸念は確かにそのとおりで、
このアイデアも、私が勝手に余分に気を回したというところで要件・仕様として上がったものでは無いので、
そのままリスクスコアを表示する方向で内部の確認を進めます。

ただ、リスクスコアの下2桁くらいは有効数字ではなく、その変動はほとんど意味がない割に、
閾値は10の位まで数字が入って意味があるように見えてしまうので、その点は説明文などで
適切に意味を伝えつつ、多くの人がなにかミスリードな読み方をするなど問題が見えてきたら、
その問題に合わせて対応を検討しようと思います。

よろしくお願いいたします。

@keiji
Copy link
Collaborator

keiji commented Jun 2, 2022

本Issueについては行政内で検討を進めていましたが、このたび廃案となり、COCOAには実装しないという結論となりました。
この決定により現在COCOAに実装され、無効化されている「閾値未満の接触(広範な接触)の表示」に関するコードは、すべて取り除かれる予定です。

本Issueは関連コードの除去が完了し次第、Closeします。

関連するDiscussionです。
#859 (reply in thread)

@keiji keiji added wontfix 今のところ対応予定がないもの and removed COCOA2 labels Jun 18, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
wontfix 今のところ対応予定がないもの
Projects
No open projects
COCOA2
  
Done
Development

No branches or pull requests

5 participants