...

列制約と曜日 設定 - スケジュールナース

by user

on
Category: Documents
17

views

Report

Comments

Transcript

列制約と曜日 設定 - スケジュールナース
自動勤務表アプリ匠シフ
タの使いかた
制作編:列制約と曜日
設定
2016.Apr.17 菅原システムズ
制約を書くにあたって
匠シフタでは、ご自分で制約を設定する必要があります。デスクトップPC用
のスケジュールナースよりは、モバイル用に分かりやすくしましたが、自動勤
務表を思い通りに動かすには、制約を設定することは、避けては通れません。
そのことは、プログラムを書くことと似ていますが、答えを探すプログラムを
書く必要はありません。その肝は、「欲しい答えが満たすルールを、必要かつ
十分に記述する」ことに尽きます。100の職場があれば、100のルールが
存在します。是非、職場に合致したルールを設定してください。
プログラムを作ったことがない方でも理解できるように、丁寧に説明していき
ます。一度、覚えれば、以降、紙と鉛筆、またはExcelで格闘することは、も
う必要ありません。必要なのは、学ぶ気持ちと少しの忍耐だけです。慣れると
、典型的な病棟で、15時間の作成時間が3時間程度にはなります。(そのうち
の半分は、希望入力と解(答え)の転記の時間です。)
スタッフ数が多ければ多いほど、その効果は大きくなります。たとえスタッフ
が5人しかいない職場でもトライする価値はあると言えます。
制約を最初から書く
一つの例として、15人スタッフの
2交代を最初から書いてみましょ
う。
初期状態から始めるために、再読
み込みボタンをタップしてくださ
い。
再読みボタンは、リセットボタン
です。プログラムが再読みされ、
データは初期化されます。
求解して解を出します
何も設定しないのですが、と
りあえず、求解して解を出す
と、左図のように求まるはず
です。
この状態では、スタッフ数36人、
シフト数36個になっています。ま
た、何の制約も書いていないので
、出鱈目な割り当てになっていま
す。
「制約を書いていないと何を割り
当ててもよい」と求解エンジンは
解釈します。
スクロールして、36人のデータがあ
ることを確認してください
メインメニューから設定をタップします
メインメニューに戻って設定ボ
タンをタップします。
スタッフの設定
スタッフプロパティ設定ボタン
をタップします。
スタッフプロパティの設定
名前の設定は、ここで行います
が、後で設定することにして、
今回はしません。とりあえず今
は、人数が重要なので、最初の
15人だけをオンのままにして、
残り全てをオフに設定します。
スタッフ数設定
解を求めます
スタッフは、オンにした15人分しかな
いことを確認してください。
メインメニューから設定➡シフト設定をタップ
シフト設定を編集します
初期状態では、全てのシフトが
オンになっているので、以下の
通りに設定します。
シフト設定
解を出してみます
これまでの操作により、スタッフ数
15人、シフト日勤、公休、入り、明
けだけの割り当てになっていること
を確認してください。
大分、見易くなりましたが、未だ何
も制約も書いていないので、法律的
にもQOL上もあり得ないシフトにな
っています。
名前をつけて保存・上書き保存
設定の途中ですが、ここで名前
をつけて保存します。
次回、作業の再開は、読み出し
から始めればよいです。
また、次回以降、ある程度設定
したら上書き保存を行います。
データは、何等かの原因により
失われることがあります。被害
をなるべく少なくするために、
作業中、時々上書き保存しましょ
う。
列制約の設定
列制約をタップします
列制約の設定その2
左の画面となりますので、---をタップ
します。
列制約の設定その3
左の画面となります。列制約名の--をタップして制約名「入り二人」を
入力します
列制約設定その4
Dayタイプは、今月を選びます
列制約設定その5
グループスキルタイプは、「全スタッ
フ」を選択します
列制約設定その6
シフトタイプは、「入り」を選
択します
制約タイプは、スタッフ
人数最大最小を選択しま
す
列制約設定その7
最大値・最小値、各々2を選択します
列制約設定その8
最終的に左図のように入力しました。
要するに、今月の各日、全スタッフ中
「入り」勤務をするスタッフが、2人
以上、2人以下である、という制約を
記述したことにになります。
保存をタップしてください。
列制約設定その9
スライドスイッチをオンにして制約の設
定終了です。
求解して解を出します
各日、入りの回数が2になっていることを確
認してください。
列制約結果表示をタップします。
列制約結果表示
入りの数が2になっているのは、「今月
」だけです。これは、制約の中で「今
月」を指定していたからです。制約さ
れていない前月には、何が入ってもよ
いことになります。
スクロール可
列制約設定その10
同様にして、「明け」についても左図・
下図のように設定してみてください。
求解して解を出します
下図のようになっていることを確認してくだ
さい。
列制約設定その11
同様にして、日勤者の数を下のように設定します。
列制約設定その12
こんな風にして設定していきますが、
そのうちページが足りなくなります。
ページをスワイプすると次のページが出て
くるので、新しい列制約グループのページ
に書き込んでください。
スワイプ
求解して解を得ます
下図のようになっている筈ですので確認してください。
曜日の定義を見る
今月、診療日、休診日といった定義はどこで
行っているのでしょうか?定義を見ていきま
しょう。
曜日関係は、スケジュール期間設定をタップ
します。
曜日設定その1
曜日設定をタップします
曜日設定その2
タップします。
これらの定義は、スケジュール開始
日とスケジュール終了日により自動
的に決まっておりユーザは、その定
義を変えることはできません。
ユーザ定義可能です。今月固有日を
定義したいときに使います。
曜日集合設定に飛びます
曜日設定その3
今月の内容を確認できます。
戻るをタップします。
曜日設定その4
曜日の設定その5
休診日をタップします。
休診日=祝日または週末 であること
が分かります。
曜日の設定その6
週末の定義を見てみると、
週末=土曜または日曜
であることが分かります。
つまり
休診日=土曜または日曜または祝日
ということになります。
中学校で「集合」を習いましたが、
休診日というのは、集合上の演算で出来て
いるということです。難しそうに聞こえま
すが、次のページを見ると分かると思いま
す
曜日の設定その7
休診日=土曜または日曜または祝日
曜日の設定その8
診療日=休診日でない
曜日設定その9
休診日と診療日は、お互いに否定の関係になっていることが分かります
。
曜日設定その10
このようにして、欲しい曜日は、集合演算により得ることが出来ます
。ユーザがカレンダで定義したその月の固有の曜日以外は、全て制約
開始日、制約終了日を基にしていますから、月が変わっても新たに定
義しなおす必要はないことが利点になります。集合演算しづらい場面
も出てくるかとは思いますが、なるべく集合演算で定義しておくこと
をお勧めします。どうしても定義できないときは、カレンダでその月
の固有の曜日を定義してください。固有の曜日は、定義し直す必要が
あることが注意を要します。
欲しい曜日は、なるべく集合演算で得る
これで、列制約と曜日設定の編は終了です。
Fly UP