社内システム育成日記

デイサービスでの簡単なシステムをファイルメーカーで作成しています。備忘録を綴っていきます。

ファイルメーカーの便利な機能を教えてもらいました!

先日、熊本に行ってファイルメーカーの集まりに参加しました。

そこで、ボタンバー名の計算式が使えるよ~という情報を教えてもらい、最近使っているのですが、非常に役立っています。

 

f:id:hotspiringday:20190620101832p:plain

寿商会さんのこの記事をお手本に、今までもタブ名の計算指定は使っていました。

https://kotovuki.co.jp/archives/840

 

これと同じことをボタンバーですると何が良いかというと、見た目が洗練されるということはもちろんですが、ポータルの中にいれてもポータル内のレコードに関連して動いてくれるんです。(タブだと動いてくれない)

 

見た目が整形しやすいので、表示さえすれば良い計算結果はフィールドにする必要がなくなり、データベースが整理できそうです。

f:id:hotspiringday:20190620103700p:plain

例えば年齢は日々変化するもので、表示さえされればいいものですよね。

それをフィールドと同じような見た目で表示することができています。

 

 

【準備メモ】FileMaker Serverの安全な運用のために無停電電源装置を購入しました。

先日、雷による停電でFileMakerServerが予期せぬシャットダウンをしてしまい、FileMakerServerをインストールしなおしました。

 

hotspiringday.hatenablog.com

 

以前には誤ってコンセントを抜かれてしまったこともあり(泣)、そういったアクシデントの備えとしても無停電電源装置を購入しました。

 

無停電電源装置を設置するのに一度FileMakerServerをホストしているmac miniを一回シャットダウンしなければいけないんですね。

弊社ではほとんど休みなくシステムが働いており(真夜中も泊まっている方の排泄管理をしている)、システムを止めても差し障りの少ない時間帯を見計らって、また休日の早朝に出てこなければならないようです笑。

 

 今回は自分のメモとして、無停電電源装置を設置する段取りを予習したいと思います。

 

1.無停電電源装置を取り付けるものを選ぶ

今のところFileMakerServerをホストしているmac miniwifiルーターだけで良さそうです。この2つが今離れたところに設置してあるので、場所の確保をどうするのか考えなくてはなりません。

 

2.FileMakerServerの閉じ方を念のために確認

まずmac mini にモニターやキーボードなど取り付け、Admin Consoleから公開しているファイルをすべて閉じ、ターミナルで以下のコマンドを打ち込んでFileMakerServerを止める

net stop "FileMaker Server"

 ※FileMakerのHelpより

この動作をするためには、mac miniの管理者権限が必要なので事前にちゃんとそれも用意しておく。

 

そしてmac mini の電源を落とす

 

3.無停電電源装置に機器を取りつけ、動作確認

無停電電源装置の電源を入れるとブザーがなるみたいです。その後、守りたい機器の電源を入れ動作状態にして、問題ないか確認します。

 

4.停電発生を擬似した動作確認を行う

無停電電源装置の電源をコンセントから抜いてみる

→状態の表示を確認(バックアップ中という表示がちゃんとでるかどうか?)

 

ちゃんとバックアップ運転ができることを確認

 

5.再び無停電電源装置をコンセントに挿す

6.mac miniやwifiルータの電源を入れ、FileMakerServerを起動し、ファイルを開く

先ほどと同様にターミナルから操作できます。

net start "FileMaker Server"

 

以上のような流れで大丈夫だと思います。

これを書きながら予行練習をしています。笑

 

なるべく早く取り付けたいと思います。

 

 

 

 

 

 

FileMaker Serverを再インストールしました

ほぼ休みなく働いてくれているFileMaker Serverを一度アンインストールするというのはかなり勇気がいることですが、ドキドキしながらやってみました。

 

mac miniFileMaker Serverをホストしているのですが、無停電電源装置UPS)というのを使っておらず、先日雷による停電で不正にシャットダウンされてしまったんです。それ以来「システムの動きが遅い」という声があがり、FileMaker社に問い合わせた結果、とりあえずFileMaker Serverを一回入れ直そうということになったのです。

 

これを機に、これまで16を使っていたのを17にアップデートしようと思いましたが、17をインストールするために必要なリンクが貼ってあるはずのご案内メールが見当たらず(汗)、結局16を一回アンインストールしてもう一度インストールしただけになってしまいました。

 

 

ゴールデンウィーク真っ只中の日曜の朝に出てきて、以下のような作業しました。

1.Admin ConsoleからFileMaker Serverにアップしているファイルのバックアップをとる

2.Serverを止める

3.Uninstallerを実行

4.ご案内メール(16はちゃんと保存していましたw)に載っているインストールページのリンクを開いて、FileMaker Serverをインストール

5.Admin Console で色々と設定する(バックアップスケジュールなど)

6.ファイルをアップロード

 

その間、mac mini のターミナルでsudoコマンドを使用するための権限をもった管理者パスワードがわからなくて、探し回ったりしていました笑。

 

FileMaker Serverの環境構築って素人には結構難しいというか、ライセンスキーとかユーザー名とかだけではなくて、リンクも保管しておかないといけなかったり、料金体系が複雑だったり、その辺を理解することが私は難しく感じています。

Serverを止めている間も業務が止まらないため、いじることができる時間も限られていて、そういう意味でもなかなか疲れました笑。

 

FileMaker Serverの再インストールをしたところで、動きが改善されたかは微妙なところではありますが、とにかく次はUPSを買ってもらってとりつけたいと思います!

 

 

 

自社システムを使ってもらうために、サインインの要求をしていません

介護施設で働いている人はアナログ派の人が多く、ipadやパソコンを使って業務を進めるということに最初はかなり反発がありました。

例えば、利用者さんのバイタルを測って記録する、ということを以前は一度紙にメモして、それを事務スタッフがエクセルのシートに打ち込んでいました。

 

※今ではipadで打ち込んでいます。

f:id:hotspiringday:20180905111708p:plain

 

そのような環境なので、少しでも手間と感じられる要素がある段取りはできるだけ排除しています。

特に、FileMakerGoでファイルを開こうとすると、起動センターからファイルを選択しサインインをするという段取りがありますが、その段階で「使いたくない」という気持ちになるようです。

その状況を解決するために、ipad上にアイコンを作っておいて、そのアイコンにファイルの指定やパスワードを仕込んでいます。

今はパスワードはほとんど誰も知らない状況で、ipadのアプリみたいな感覚で使っています。

パソコンでも、それぞれのユーザー名やパスワードを入れ込んだショートカットを用意しています。

 

パソコンでの設定は普通にWEBショートカットを作るだけなのですが、ipad(FileMaker Go)はちょっと複雑で、こちらのプラグインを使わせてもらっています。

http://qbxxdp.blogspot.com/2014/08/iphone-webfilemaker-go-13.html

 

少し離れたところにある事業所でも1台ipadを導入しており、そちらはVPNでFileMakerServerにアクセスしていて、セキュリティーを考えると不安な面もありますが今のところは使いやすさを優先させています。

 

FilemakerでSQL関数を使う練習をしてみました。

ExecuteSQLという関数にもちょっと挑戦してみようと思い、練習してみました。

f:id:hotspiringday:20190413174439p:plain

ハッカーっぽいデザインにしてみました(笑)

 

このテーブルの内容はこんなかんじで、なにも計算式とかはありません。

f:id:hotspiringday:20190413174755p:plain

スクリプトはこの2つです。

単一ステップなので、スクリプトにする必要もないくらいですが。

f:id:hotspiringday:20190413175038p:plain

f:id:hotspiringday:20190413175104p:plain


それで、SQL文というフィールドの中に計算したい内容を書きこんで練習しています。

?を引数に使うことが出来ます。

 

例えば、体験利用をされた方のうち契約につながった方の割合を計算してみました。

記録を取り始めたのが最近なのでサンプル数は少ないですが、こんな風に計算しました。

f:id:hotspiringday:20190415105152p:plain

体験利用記録というテーブルの中にある利用票№(主キー)の数を数えています。

"Fg成果"というフィールドで契約したかどうかを記録していて、ここではフラグにチェックが入っている数を結果として抽出しています。

電卓みたいなですね。

 

日常的に行う必要のないけど、ちょっと知りたいな、というような集計をするのに使いたいと思います。

 

 

 

 

 

中間テーブルを使って集計するときのUI

例えば、月ごとの利用者さんの情報を一覧でみたいという要望があれば、

・基準年月(年*12+月)

・利用者ID

を含む中間テーブルを使うとリレーションで情報を引っ張ってくることができて便利です。

 

このようなレイアウトで事業所と年月、利用者IDを指定して、バイタル情報や利用時間を参照しています。

利用者選択のためには別ウィンドウでマスタを表示させています。

 

f:id:hotspiringday:20190306162026p:plain

 

 

中間テーブルのレコードは最大同時接続数個あらかじめ作っておくのですが、同じレコードを複数の人が触ってしまうと排他制御がかかりますので、棲み分けをする必要があります。


そこで若干ださい気もするのですが、このように仮想的な部屋みたいなイメージでそれぞれ違うレコードを選択するような仕組みを作っています。

f:id:hotspiringday:20190306161430p:plain

 

中間テーブルに使用中フラグを作って、同じレコードを同時に使用しないようにしています。

 

ださい気はしますが、このUIでレクチャーなしでも自然に使ってもらえています。

利用者マスタから見直してみる

まずは利用者マスタからです。

 

利用者さんに関する情報もそれぞれの性質によって取扱は変わってきます。

固定情報なのか更新される情報なのか?

1人の利用者さんに対して1つの情報なのか、複数あるかもしれない情報なのか?

考える必要があります。

利用者マスタで必要な情報のうち、固定された情報でかつ1人の利用者さんに対して1つしかない項目は

といったところです。これが利用者マスタの核になります。

例えば、住所は本当はその人固定の情報ではないですんですけど、このレベルの情報は固定情報として扱いたいと思います。(正規化すればいいっていうものでもないみたい)

 

例えば、生年月日さえわかっていれば年齢は計算できるので、これは計算フィールドにしておき、以下のように組み込みます。

年齢を計算する

Let (
[
%今日=Get ( 日付 ) ;
%今年=Year ( %今日 );
%誕生年=Year ( 生年月日 );
%誕生月=Month ( 生年月日 );
%誕生日=Day ( 生年月日 );
%今年の誕生日=Date ( %誕生月 ; %誕生日 ; %今年 )
] ;


Case (

IsEmpty ( 生年月日 ); "";

/*今年の誕生日が来た場合*/
%今年の誕生日 ≤ %今日;%今年-%誕生年;
/*今年の誕生日がまだ来ていない場合*/
%今年の誕生日 > %今日;%今年-%誕生年-1;
))

 

以前はLet関数も使っておらず、計算の中にコメントをつけるということもしていなかったので、今回はきちんとしていこうと思います😏

 

あとは、利用者IDを外部キーにもつ詳細テーブルを作ります。

  • アセスメント(利用者IDと作成日)
  • 介護度(利用者IDと有効期間)
  • 電話番号(1つとは限らないので)
  • 家族マスタ
  • 利用プラン(何曜日にどんな利用をするか?)

などなど色々ぶら下がってきます。

 

システムを初めて作ったときは売上の計算など先のことまで考えていなくて、介護度を利用者マスタの核に設置してしまったんですけど、有効期限があるのでこれは別テーブルにする必要がありますよね😅

必要なところは別テーブルで管理できるよう、少しずつ改修していきます。

 

 

【追記】

利用者マスタに誕生日というフィールドを作るのはやめて、ボタンバー名に計算を入れて表示だけさせるようにしました。

エクセルで管理していたときからあったので、当たり前のように誕生日フィールドを入れていましたが、(これが動的に動くだけで大進歩だったw)顧客管理のデータとしては不要なものですよね。

hotspiringday.hatenablog.com