2023年10月26日木曜日

変則2交代一般化パターンの検討と最終実装案

<目的>

長日、ロング日勤を使用するパターンは、近年色々出ていますが、勤怠システムのサポート問題があります。様々な制約実装パターンに対して、最も実装が容易な形態について考察、考案しその普及を促すことを目的とします。

■列制約長入明数が同じならば、長入明パターンとするのが望ましい

例えば、長入明が(3,3,3)ならば、長入明パターンだけを用いて列数を揃えることはできる。

長入明しかないのであれば、前月との貸し借りでみれば、+-0であり、補償項(非番、半休)が必要ない。(今月という枠で見ると、長入り差は+-1発生する。これを勤怠システムの都合で、同じとすることは、解空間を狭めること、実装が重いこと、により推奨しない。勤務シフト上良いことは何もない。勤怠システムのために、看護師が余計に難しいシフトを強制されることは不条理)

より一般的な変則2交代では、このほかにパターン上のシフトを導入する。単長と、単入である。また遅番が必要な病棟もある。単長と単入は、長入明パターンにあてはまらない全ての長日と、入りシフトを表す。

■同じでない(例えば、長入明(4,3,3)あるいは、曜日により異なる)ならば、単長を導入する

列数が全て同じであれば、長入明パターンだけで実現できるが、そうでない場合は、必要な列数を過不足なく実現するには、単長の導入が必須となる。

単長に関しては、1.5Dayが必要となり、就業日数の増加に対する補償が必要とも考えられる。同値制約にこれを月内で自動補償するやり方、単長数=2*非番、も案としてはあるが、全スタッフに適用するにはソルバ負荷が重過ぎるので採用しない

そこで、非番、半休に関しての補償は、月累計にて、希望非番数、希望半休数という制約で、月毎に行うものとする。具体的には、非番数をスタッフプロパティシートに記載し、累計結果を見ながら適宜、補償を行う。

■単入の発生箇所

単入は、就業日数の減少を生むので、勤怠システムでも補償がしにくく発生自体をなるべく避けるべきと考える。

単入が発生するのは、次である

1)長日を行わないスタッフが少なくとも一人いる

2)休入を予定に入れてくるスタッフ

3)長遅入明パターンが一人でもいる


<単長が定常的に発生する職場>

単長が定常シフトとして存在する職場では、単長により列を揃えることは障害とならない。

<単長が定常的に発生しない職場>


長入明しかないパターンの職場では、列を揃えるため、他のスタッフに単長が必要となる。つまり、あるスタッフの単入を実現するために、単長が他のスタッフで必須となる。上を認めるか?禁止とするか?、で単入が必要かどうかが決まる。

いずれにせよ、単入に関しては、勤怠システムのサポートが必須となる。

設計例

      )2)可。3)禁止

   全夜勤スタッフが単長サポート。 ただし  単長数<=2

         列制約が長日数==入り数の場合、制約最終日の単長数は0にソフト制約する  

        単入は、自動アサインしない 

        (長日がないスタッフは、予定入力で、シフト集合[でない]を用いて夜勤可能候補日を指定する。)

   半休は、自動アサインしない

        非番数は、スタッフプロパティシート管理(繰越計算による指定)

     遅番3回連続禁止、遅番の後は、遅番または休みとする

このシステムでは、長入明の列数が同じであれば、パターンも基本、長入明だけになる。単長、単入も各スタッフは、アサイン可能であっても自然にそうなる。単入は、自動アサインにしないので、予定入力されたときだけ発生する。単入がなければ、単長があっても列を揃えることは出来ないので、自然に長入明だけになる。但し、制約最終日だけは、自然にそうはならないので、ソフト制約する。

長入明が揃わない例えば、(4,3,3)では、単長が1日一個生成されることによる。また、長入明を乱す上記1)2)3)の入力も可能とすることも可能とする実装にすることも可能ではあるが、単入りは、自動アサインしないので、余計に単入、単長が生成されることを抑制する効果がある。

単長と単入は、勤怠システムでのサポートが必要となるが、シフトとして区別可能で計数は容易である。(単にそのシフト数を計数すればよい。)

以上の実装と各種仕様への変更の仕方を示したプロジェクトの公開を行う予定。




      



3)に関しては、他のスタッフでの補償が必須となり影響度が大きいことから禁止とすべきと考える。





0 件のコメント:

コメントを投稿