Kindle本に記載の仕様から、■当直、■日直、■遅出 仕様が変更になっています。

■当直

変更前 変更後
当直について 昼から翌朝まで院内)
昼から翌朝まで院内
勤務時間の内訳:
勤務時間の内訳:
勤務1  8:30~17:00
勤務1  8:30~17:00
当 直 17:00~ 8:30
勤務2 17:00~24:00
勤務2  8:30~12:30
連続の時間外勤務 24:00~ 8:30
振休:なし
振休:あり
振休のケース1 当直明けの朝帰宅 明け当日が振替休日
明け8:30~翌8:30まで休日(セカンド、遅出、当直のアサインが無い完全休暇)
振休のケース2 当直明けがそもそも休日
金曜日の当直 土曜のAM8:30時で帰宅 → 平日に振替休日取得
土曜日の当直 日曜のAM8:30時で帰宅 → 平日に振替休日取得
休日前日の当直 休日のAM8:30で帰宅  → 平日に振替休日取得



■日直

変更前 変更後
日直について 土日祝日の日直)> 日直について 土日祝日の日直
振休:あり  ・・・ 平均1週間に2人は振替休 振休:なし  ・・・  連続の時間外勤務 とする。 振休はなしとする
勤務1  8:30~17:00
勤務1  8:30~17:00



■日直

変更前 変更後
8:30~12:30まで休み 12:30~22:00まで勤務 このうち17:00~22:00まではER当番(救外当番) 8:30~22:00まで勤務
このうち17:00~22:00までは時間外勤務 残業手当
遅出は廃止してER当番を平日1名アサイン。
前述の当直の振替え休日では遅出はERへ読み替え



振休の仕様整理

■ 日~木の平日の当直は翌日が完全休日 =振休
■ 金土の当直、および 祝前当直は平日に完全休日 =振休
■ 振休は「臨時出勤」の時にも必要



実装検討

上記仕様について、振休実装は、下記のようにパターン振休と代休的振休の二つに分けて考えます。

■ 日~木の平日の当直は翌日が完全休日 =パターン振休 パターンとして実装
■ 金土の当直、および 祝前当直は平日に完全休日 =代休的振休 
■ 振休は「臨時出勤」の時にも必要=代休的振休



パターン振休の実装

同直(A)後は、振休(B)というパターンABを実装します。Kindle本のパターンABCDのパターンABの実装部を参照します。


ところで、休み前当直は、代休的振休なので、上記パターンを禁止する必要があります。



代休的振休の実装

同値制約 ΣAi==ΣBi で記述します。

臨出+休み前当直 ==代休的振休数



休み前

休みの前日は、休み集合に対してオペレータ -1 を作用させればよいのですが、-1オペレータについて下記注意が必要です。

制約終了日以降の休みは定義できないので、仮に次月が1日が休みであったとしても、休みとして認識されない問題がある。制約終了日を次月1日する案も考えられるが、それも面倒。

そこで、対策として、年間カレンダで、次月1日が休みとなる日を定義し、それとのORを取っています。


最後の2行が欲しい集合になります。 今月内で、互いに排他的(ANDは、空集合で、ORは、全体集合=今月となる)であることに注意してください。この排他集合があって、初めて、上のパターン振休と、代休的振休が調和的に動作します。




プロジェクト

プロジェクトは、以下です。

ダウンロード して、実装の参考にしてください。