#PowerApps ワクチン接種後の状態記録アプリ メモ

コロナワクチン2回目接種の直前に Power Apps の自動生成アプリをサクッとカスタマイズして「ワクチン接種後の自分メモ」アプリを作りました。そのアプリについて、ポイントだけ紹介する記事です。思いつきでプリ作成したので詳細に時間計測しておりませんが、動作確認含めて 30分 ～ 1時間ぐらいで完成しているハズです。
※デザイン整える系の細かい作業に時間かけたような…（おぼえてない）

# データソース
データソースは SharePoint Online のカスタムリストにしました。自分専用の Power Apps データソース用サイトが準備してあったので「そこでいいや」って理由です。深い意味は無いのです。

■リストの定義情報

| 列名          | 種類（型）   | 必須 | 備考                                                                    |
|-------------|---------|----|-----------------------------------------------------------------------|
| タイトル        | 1 行テキスト | 〇  | デフォルトのモノ<br />User().Email を登録してます(※)                                 |
| LogDateTime | 日付と時刻   |    | 記録時間<br />登録ボタン押した時間ではない記録が取りたいコトもあるでしょう                                 |
| Temperature | 数値      |    | 体温                                                                    |
| Condition   | 選択肢     |    | 平常 <br />頭痛 <br />倦怠感 <br />腹痛 <br />寒気・悪寒 <br />吐き気 <br />その他 <br /> |
| Remarks     | 複数行テキスト |    | メモ欄                                                                   |

データソース(※)の箇所は、タイトル任意にするのがメンドウだっただけですｗ
なお、英語苦手マンなのでスペルは調べましたが...、その単語だと意味合い的に間違ってるよ！みたいなモノがあれば、そっと教えていただけると学びになるので嬉しいです。(欲しいデータは取れてるから細かいこたぁいいんだよ汗、というのもあるけどもｗ）

実際のリストはこんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/aaf12c25-fbc2-4da3-96f0-dfea662936e6.png)

アプリでログというか、メモを取ろうと思ったのがワクチン接種1回目の後だったので、接種1回目の情報は保持してません。もし、ワクチン接種1回目からログ取りしたいよ、って方は回数の列を追加すれば良いと思います。その追加した回数の列で表示を絞り込めば「ｎ回目の情報だけ欲しい」などが対応可能ですよねー。
（ワクチン接種3回目の話題もあるので、当方も回数の列を追加しておこうかなぁ・・・）

# Power Apps アプリ
上記のデータソースから自動生成して、体裁を整えただけなので詳細は割愛です。一覧画面（BrowseScreen1）のみですが Twitter でスクショがあります。興味がある方はソチラを参照ください。
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">15:30　ワクチン2回目インストール。<br>17:15　現状、問題無し。むしろ AM より調子が良いｗ<br><br>なお <a href="https://twitter.com/hashtag/PowerApps?src=hash&amp;ref_src=twsrc%5Etfw">#PowerApps</a> でサクッと作った自分用メモアプリはこんな感じ。自動生成をチョッと修正してます。<br>1回目の体温が虚偽なんだけど、まぁいっかｗ（脇ではかった時は37度、接種会場の非接触型は36.4度でした） <a href="https://t.co/TxYZR0NPcN">pic.twitter.com/TxYZR0NPcN</a></p>&mdash; やま (Yama)📢書籍『Power Apps入門』10/20発売 (@yamad365) <a href="https://twitter.com/yamad365/status/1438419353804816385?ref_src=twsrc%5Etfw">September 16, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

前述どおり、タイトル列（Title）は任意に変更してないのですが、データカードコントロールの Default プロパティに User().Email を強制的に登録させることで必須登録にしてます。

## 接種後からｎ時間の求め方
下記の画像で囲んだ”接種後 約ｎ時間”だけ解説しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/7f9310b8-847b-fff0-f02f-3198409ef61f.png)

### 仕様 あるいは 発想
「最初のデータが必ずワクチン接種タイミグである」という前提で、

　「接種時間＝1番最初のデータ」と「現データのLogDateTime」の差

を求めれば、何時間経過したか？が把握できますよね。

(´ω‘)。○○（あれ？これ回数の列を入れたら仕様が破綻するんじゃね？）
(´ω‘)。○○（いや、そんなコトはない…な？）
(´ω`)。○○（Filter関数で絞った後で最初取れば良いか(※未検証））

### 設定してある関数
前後の文字列は除外してあります。

```
DateDiff(
   First(COVID19VaccinationLog).LogDateTime
 , ThisItem.LogDateTime
 , Hours
)
```

### DateDiff 関数
利用している関数です。引数が、開始、終了の順番なのでご注意ください。

・参考URL
　[Power Apps での DateAdd、DateDiff、および TimeZoneOffset 関数](https://docs.microsoft.com/ja-jp/powerapps/maker/canvas-apps/functions/function-dateadd-datediff?WT.mc_id=BA-MVP-5004053)

***DateDiff( StartDateTime, EndDateTime [, Units ] )***

- StartDateTime - 必須。 開始の日付/時刻値。
- EndDateTime - 必須。 終了の日付/時刻値。
- Units - オプション。 除算する 単位 の種類: Milliseconds、Seconds、Minutes、Hours、Days、Months、Quarters、または Years。 指定しない場合は、日 が使用されます。

ちなみに、当方は厳密な数字では取り扱わず”おおよそｎ時間経過”で十分と判断してます。細かいコト言いたい系な「詳細な経過時間じゃなきゃダメだ」という方は、厳密な時間計算と表示を是非ともトライしてください。

# まとめ
思いついたらアプリが完成していた。何を言っているのか（以下略

ってノリで作ったアプリですが、実際に使ってみたところ「状態が記録されている」というのは安心感がありますね。
特に、解熱鎮痛剤は”次はｎ時間あけてください”等の制約があると思います。当方は1回目の摂取後に激しい頭痛にさいなまれて、自分がまったく使いモノにならなかった経験があったので、はやめはやめで薬を飲んでいくようにしていました。その際に「前に薬飲んだのイツだっけ？」を覚えておく必要が無いのが非常に便利で安心でした。

定期的なリマインドが必要であれば Automate でフロー組むなどが良いでしょう。しかし、解熱鎮痛剤は「ｎ時間経過 かつ 状態が悪かったら服用」ですからある種の不定期ですよね。アプリ作っておいたおかげで、記録をみて状況にあわせてスピーディーに判断できた、って感じです。こういうパターンは業務でもあると思うので、その場合はアプリ作成時のアイディアとして利用できるんじゃないかな、と考えてます。

いやー、何はともあれ、はやく新型コロナ落ち着いてほしいですよね。

それでは、皆さま。素晴らしい Power Platform Life を！