社内システム育成日記

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

中間テーブルを使って集計するときの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

 

機能は充実してきたけれど…

ファイルメーカーで社内システムを作り始めてから1年が経ちました。

以前は紙とエクセルで管理をしていて、統一された利用者マスタというものもなく、色んなところにご利用者様の一覧があって、それらは更新されていたりしなかったりする‥といった状態でした。

そのころに比べるとかなり情報が整理され、業務フローにしたがって情報がうまく流れるようになったなー、と思っているところです。

ただ、この1年間の間にどんどん機能が追加されデータの量もたまってきたところで、ちょっと見直しが必要だなと思っています。

全くの初心者であった作り始めの時期は、とにかく「やりたいことが実装されること」を急いでいて、データの構造がきれいじゃないんです😅

 

ファイルメーカーの勉強はこの本(これのもう一つ最新のもの)と

 

 

 わからないことはネットで調べたり、掲示板で質問したり、カンファレンスの動画を見る、ということくらいです。

本当に手探りで、誰か詳しい人が近くにいてくれたらな~と思うこともしばしばです。

 

とりあえず一番手をつけやすく、あまり更新されない利用者マスタから見直していこうと思います。

 

pdfから表だけを取り出す方法

今回はファイルメーカーとは関係ないのですが、備忘録です。

行政が出している事業所の住所を使って、広告を送ろうとしたのですが、その形式がPDFだったんです。

二次利用を簡単にさせないためなのか、わからないですが、公開するのにPDFって…

 

PDFをエクセルで開く方法があったので、記録しておきます。

***********************

まずPDFの資料をダウンロード。

ファイルを右クリックし、wordで開く。

ワードで開いたら、欲しい表をコピー

エクセルを開いてペースト

必要があればエクセルを整える。

***********************

エクセルに落とし込めば、あとはワードの差し込み文書ですぐに宛名シールができました。

通所介護計画書もファイルメーカーでサクサクと。署名もipadで!

通所介護計画書をファイルメーカーで作りました。

印刷はこのようなレイアウトです。

f:id:hotspiringday:20180912145814p:plain

 

この書類を作るのに、4つのテーブルを作りました。

通所介護計画書、②サービス提供内容、③利用目標、④プログラム

それぞれ以下のようにリレーションを組み、これらをA4に詰め込みました。

利用者マスタや利用者の週間スケジュールなど、すでにある情報はそちらを表示させています。

f:id:hotspiringday:20180912150858p:plain

書類作成のための画面はこんなかんじ。

記入したいところのフィールド枠にボタンを設定していて、新規ウィンドウで入力フォームが出てきます。あらかじめ用意されたフレーズテンプレートを使ってサクサク入力していきます。

f:id:hotspiringday:20180912153514p:plain

 

プログラムもほとんど皆同じようなスケジュールなので、ボタン一発でチャチャッと作成!

f:id:hotspiringday:20180912154203p:plain

 

そして、署名はipadで!!

f:id:hotspiringday:20180912154922p:plain

お年寄りは画面に文字を書いた経験のない人がほとんどなので、若い人ほどスムーズとはいきません。(タッチペンや指で書いてもらっていますが、手があたってしまう、お年寄りは水分が少ないので指が感知されにくい、手があたってしまうと書けないということが理解できない・・・など一筋縄ではいかない様子)

しかし、なかなか書けないからといって、イラついたり反発をするような利用者さんは今のところおらず、便利な道具に興味を持ってくれて、一生懸命書こうとしてくれています。

 

誰から署名をもらって、誰からもらっていないかということも一目でわかります。

f:id:hotspiringday:20180912160637p:plain

 

【備忘録】ipad用レイアウトでテンキーを手作り。ポップオーバーで表示

ipadでのシステム設計には、コツがいるみたいです。

 

 

標準で「入力は数字10キーを使用する」という設定はできますが、ipadを横にしたときには、画面のほとんどが下から出てくるテンキーに隠されてしまいます。

 

そこで、このような自作のテンキーを実装しました。

f:id:hotspiringday:20180905111708p:plain

フィールドの上に、透明なポップオーバーボタンを設置しています。

テンキーボタンには、スクリプト引数に1,2,3,4,5...をそれぞれ入れておいて、

変数として$値=1のように入れ込んでいきます。

体温なら、体温&$値...というようにフィールドを設定することで、テンキーのような動きを実現しました。

Cは フィールド内容を空にする。フィールド設定[体温=””]

⇦はフィールド内容を一文字消す。フィールド設定[体温=Left(体温;Length(体温)-1)]

です。

OKボタンには最初「ポップオーバーを閉じる」というスクリプトを仕込んでいたのですが、それでは体温フィールドが選択された状態のままになり、その状態ではテンキーで入力された値がフィールドに反映されないので、オブジェクトを選択解除するために、

[検索モードに切替]

[ブラウズモードに切替]

という裏技的な動作をさせています。(ネット探して拾った手法です)

 

ipad用のレイアウトは、

①文字を大きく

②なるべく入力はボタンで

③必要な情報だけ

というように限られたスペースのなかで、ユーザーの注文にも答えながら作らなければならず、苦労しています。

 

ポップオーバーボタンは省スペースにはとても役に立っており、

f:id:hotspiringday:20180905114039p:plain

このようなヘルプ画面もポップオーバーボタンを使用しています。

 

とくに年配の介護スタッフには、紙からの脱却が難しいのか、システムに抵抗があるようで、ipadを使ってもらうのにも苦労しています。

標準機能以上の使いやすさを提供することで、使ってもらえればいいなと思っています。