当直室無線LAN
以前医局内LANの速度を確認いたしました。
http://orlwmu.hatenablog.com/entry/2017/10/07/121837
同じく当直室についても、専用線配下に無線ルータをおき、接続としています。
------ BNRスピードテスト (ダウンロード速度) ------
測定サイト: http://www.musen-lan.com/speed/ Ver5.6001
測定日時: 2019/06/17 20:08:01
回線/ISP/地域:
--------------------------------------------------
1.NTTPC(WebARENA)1: 32.43Mbps (4.04MB/sec)
2.NTTPC(WebARENA)2: 27.76Mbps (3.47MB/sec)
推定転送速度: 32.43Mbps (4.04MB/sec)
早くはないけど、一般に動画ストリーミング程度の負荷なら、0.5Mbpsから25Mbps(Netflix)とか。余裕はないけど、まあ、可能なレベルだと思われます。
自動接続がないと接続が断続的になるという話を聞きましたが、何故かはよくわかりません。
ActiveMailの容量が足りなくなる
大学のウェブメールはActiveMailのサーバを使っています。
定期的に事務よりサーバの個人割り当て容量が足りなくなると通達がきて、いちいちメールを消去しなくてはなりません。
gmailへ転送している関係で、サーバにメールのコピーを残す必要があり、半年に一度程度大掃除となります。100通ごと消去を手作業で行うため、自動化できないか気になっておりました。
自動アーカイブ機能
とやらがあるようです。
https://www.qualitia.co.jp/support/am/2015/02/27_1438.html
ヘルプを見ると、バージョンは、BuildInfo: 6.57.02007946(normal)
と表示されており、要件を満たしていると思われます。
「管理者インタフェースから利用するように設定を行ってから、自動アーカイブコマンドを実行することでご利用が可能です。また、cron に登録することで、期限の過ぎたメールを定期的にアーカイブすることが可能です。
設定の詳細については、管理者マニュアル『5.1 自動アーカイブコマンド』をご参照頂き、設定をお願い致します。
尚、複数 Web サーバ構成の場合で、cron登録を行なう場合は、各サーバで実行する時間をずらしてください。」
もしかしたら、サーバ側でだけ実行できるのでしょうか?
とりあえず、サーバ管理者に問い合わせつつ、ユーザ側でできそうな、filteringをしてみました。2019.5以前のメールをゴミ箱に移すというfilterを作成し、Inboxに適応しました。
しかしメールが多すぎるのか、error code -3で返ってきました。。。
だめかな。。。と思いましたが、reloadすると、ごみ箱に1万8千件が!
empty trashbox!で一撃!
これで、とりあえずは解決しました。あとはcronかどうかです。
GASを使ってやりたいことを探りながら、エラーデバッグ
ときどき、以下のエラーがでてスクリプトが進まないことがあります。
メソッド getEvents(string,object) が見つかりません。(行 15、ファイル「派遣医スケジュール」)
きっと変数がDate属性になっていないからだと思うのですが、指定の方法がわかりません。ときどきできるのもなぜかわからないのですが、まあ、ほかの事をやりながら謎が解けたりするだろうと思って、
1.重複抽出 => アラート
2.月間予定表などのスプレッドシート作成
3.表示カレンダーパターンの切り替え
以上のテーマを考えてみたいと思います。
1. 重複抽出 => アラート 作成
特定の日でおなじ名前のイベントの時間が重複していればダメというもの。
Gsuiteなどにすれば問題にもならないのでしょうが、そういうわけにもいかないので、イベント名に含まれる各医師名の重複を見ることにします。
そろそろ夏休みも終わりますが、結局できたのは、Date属性の宣言と、1週間予定の終了日設定でした。以下、参考にしました。
var startDate = new Date(sheet.getRange('B'+(3)).getValue());
Logger.log(startDate)
var endDate = new Date(startDate);
endDate.setDate(startDate.getDate() + 7);
Logger.log(endDate)
var events = calendar.getEvents(startDate,endDate);
やれやれ、Loggerlogでのエラーデバッグも慣れてきました。
GASでカレンダーイベントをスプレッドシートに二次元配置
スケジュールは月間と週間を作っています。
グーグルカレンダーに入力するところまでは行きましたが、実際人はカレンダーをクリックしません。結局エクセルシートをプリントアウトしたものを見に行くようです。
人の行動を変えるのは不可能のようで、GASを使って、スプレッドシートで一目で流れがわかる表を作らないといけないと考えました。
外勤先ごとに、個別のカレンダーがあり、派遣医の名前をいれたイベントが各日付に入力されています。これをスプレッドシートに書き出すのは、以前できましたが、もう少し整形してみたいと思います。
曜日の決まっているイベントはそのstarttimeを取得してもいいし、event[i]として曜日欄に順に入れもいいと思います。
以下のリファレンスをみると、カレンダー名は
Class Calendar | Apps Script | Google Developers
Class CalendarEvent | Apps Script | Google Developers
getNameで。
nameという変数に入れ込んで、setValueで書き込みました。
次に曜日指定ですが、こればjavascriptの様式にのっとる感じです。
これで、getDayを実行すると、日曜なので、0が返されるのがわかりました。
外勤の曜日に合わせて所定の列に表示させてみます。GASのリファレンスでもinteger: 整数と書いてありました。
Class DateField | Apps Script | Google Developers
// Logs the day of the birthday for contact 'John Doe'
var contacts = ContactsApp.getContactsByName('John Doe');
var birthday = contacts[0].getDates(ContactsApp.Field.BIRTHDAY)[0];
Logger.log(birthday.getDay());
これを見ると、連絡先からもひっぱってこれるようです。
カレンダーのevents[i]から曜日はひっぱれず、startTimeからひっぱります。
大体、完成なんですが、イベントを取得する週の指定をしてみたいと思います。
スプレッドシートで、日曜の日付は入力規則でカレンダーから選ぶ形とし、月曜以降は+1で日を足していき一週間を表示させます。
この初日を
getEvents(new Date('2018/07/22'), new Date('2018/07/29'))
セル指定でいれると、
getRangeでセルを指定したのち、getValue()で値をとり、初日と最終日で範囲を指定しました。
Class CalendarApp | Apps Script | Google Developers
なんとか出来てきました。
学校健診
学会出張 などが病棟、外来スタッフと共有すべきスケジュールだと思われ、カレンダーの整理をしました。
機能更新のたびにSQL
外来マシンが3月以来の機能更新で、1803へアップデート、またぞろ、SQLを忘れておりました。
今度は再起動をしてから再挑戦し、無事アップデートができました。
いいかげん3Dプリンター使わないといけないのかもしれませんが、まだまだ手にしたこともありません。
Windows 10 の 3D で創造、リミックス、共有 | ペイント 3D 、フォト、 Remix 3D 、 Office の 3D と Mixed Reality ビューアー