2025年3月30日日曜日

改善のアイデア コマ数計算

コマ数計算を行っている師長さんと行っていない師長さんがいらっしゃるということでした。

https://www.nurse-scheduling-software.com/japanese/publications/lecture_notes_for_basic_project_file_description.pdf#page=7

では、実際問題として、夜勤回数がハード制約化されていて、それでいて、コマ数計算がされていないために解がないという面倒が起きてしまっています。

また、夜勤間隔も、現在は一律に設定していますが、


本来は、夜勤回数によって設定されるべきです。ダイナミックにやると難しいので、最大夜勤回数によって、夜勤間隔を分ける、というのが実際的かな、と思います。

そこで、
■コマ数計算を自動で行うことを考えたい
■最大夜勤回数によって夜勤間隔制約を振り分ける

ということが出来ないかを考えてみます。ソルバではなくGUI側のみにフォーカスします。







2025年3月28日金曜日

変則2交代コア勤務表の解説編

さきほどレクチャさせて頂いた資料になります。

こちらの職場では、副師長が師長さんの作った勤務表をチェックするのだそうです。

現場のスタッフの組み合わせは、副師長の方が分かっている、ということらしいです。 

https://www.nurse-scheduling-software.com/japanese/publications/lecture_notes_for_basic_project_file_description.pdf

これで、3稿のうち2稿が終わりました。ここまで6時間程かかっています。

最後の稿については、5月初めを予定します。

ここ1年位、研究にかまけてメンテしていなかったのですが、久しぶりにいじってみて変えた方がよいな、と思う点が2-3ありました。また、パラレル版のKissatも導入してみたいと思っています。出来ればDPSもいじりたい、...色々やり残していることがあります。

2025年3月27日木曜日

変則2交代講義操作編資料

昨日講義させていただきました。私の不手際もあったりしたりしたのですが、休憩を入れながら、講義と実習を行いました。(3時間超) 

鋭いご質問も頂いたりしながら、楽しく自分の思いを語らせて頂きました。また、RPAという言葉を教えて頂きました。スタッフの希望を勤怠システムからスケジュールナースにインポートするのに使えないか検討中とのことでした。

講義は3篇を予定しており、最初の一稿になります。

 変則2交代勤務表の作成操作編

今回に限らず、実際に操作して頂きながらのレクチャは、時間としてはよりかかってしまいますが、理解のし易さ、記憶に残りやすいという点においては、教育効果が高いと感じています。

5月以降、一連の講義を動画としてアップしていきたいと思います。



2025年3月25日火曜日

委員会の実装

Pythonを使わない実装も考えたのですが、委員会の数が10個の場合もあり、シフト化数 が多くなってしまうので、唯一これだけは、Pythonの記述で残すことにしました。BlackBoxとして使用可能と思います。その他については、一点だけ、現状のGUIでは、あまりよろしくない実装があったので、アップデートを予定しています。4月下旬頃の予定です。これにより、ほぼ全ての制約をGUIで記述可能となります。

通常、委員会は、固定日に開催すると思いますが、頂いた仕様は、委員会の数が10個もあり、ダイナミックに決定する、とのことでした。

仕様:

プロジェクトファイル
機能

委員会の指定

                


委員の指定


候補日の指定

    


長日勤を委員会開催日に含むかの指定


ハード制約にするかどうかの指定


解の出力例

明示的な出力はありません。求解右ペインに出力される情報により、実際の開催日を決めてください。


現任委員会の解の例
                     
新任委員会の解の例





2025年3月24日月曜日

Q. プロジェクト作成依頼をお断りさせていただく場合もある

 Q.条件をもとに、作成いただけますでしょうか?

当院、当直表(今後シフト制)というスケジュールを作成したいです。

今週土曜日にZOOMをこちらで設定しますので、いろいろとご教示いただけますとたすかりますが、いかがでしょうか?

Ans.

申し訳ありませんが、土曜日のZOOMは、キャンセルとさせてください。

仕様をお出し頂くようお願いしたのですが、全く理解できません。

経験上、「部外者」にご自身の職場のルールを説明できないプロジェクトは必ず失敗します。申し訳ありませんが、理解できる仕様を頂かない限りお仕事はお受けできません。

<仕様とは?>

部外者にご自分がつくる勤務表のルールを説明してみてください。それが「仕様」です。部外者ですから、部内の暗黙ルールは何も分かっていません。何も分からない部外者に、分かるように言葉で伝えること、それが仕様になります。その仕様文書を手に入れることが出来れば、誰もが、同じく内容を理解することが出来る、違う場所で、同じ勤務ルールを再現出来る、ということになります。

仕様は、誰が受け取っても、別な解釈を生まない、ことが重要です。必要にして十分かつ正確な情報伝達文書、それが仕様になります。仕様はソフトウェアに依存しません。

<仕様が全てのスタート>
ある大学病院では、添付のような仕様を頂いて仕事がスタートしました。仕様とは、実現したいルールを言葉で書いたものです。(例は、添付シート参照)

この全てを実装した訳ではありませんが、お客さまとの了承を得ながら、実装し易い形に記述したのが、スケジュールナース上での制約になります。

この立ち上げには、数か月間でブラシュアップしていたと記憶しています。この期間は、お客さまとの共同開発作業で一般的なものです。仕様に基づいて実装しますが、その仕様で全てを網羅している訳ではなく暗黙知や、漏れ、意識していなかったが脳内では実装していた..等が必ずと言ってよいほど在るのが普通のプロジェクトです。当直表や勤務表というのは、実は、作成者は多くのことを考慮しており、かなり知的で複雑なことをしています。それを整理せずに、そのままとりかかることは、お互いに時間の無駄です。

このプロジェクトは、5年ほど前になりますが、現在も担当者が変わって使われ続けていると認識しています。ルールを言葉で残すことは、引継ぎの場面でも必要かと思います。

まずは、しっかりと、ルールをまとめるところから始めることをお勧めします。

また、上記プロジェクトを元にしたサンプルプロジェクト例もアップしておりますので参考になるかと思います。

https://www.nurse-scheduling-software.com/japanese/constraints_faqs/chapter23/

このスケジュールナース解も添付していますので、出力される解イメージの参考になると思います。

以上、大変失礼なことを申し上げました。

ご検討の程よろしくお願いいたします。

2025年3月23日日曜日

ロックは過ぎ去った過去には掛けない

 基本的には、今より後の未来にのみ掛けることを原則とします。

この理由として、「予定」は、シフト集合、ソフト制約により非決定のセルが含まれることがあります。これに対して、「解」は、決定したセルになります。で、それを予定に送るとすれば、ロックが掛かっていると予定は非決定のままとなってしまいます。ロックのままでは上書きできないので、ロックを外しておくことが必要です。

先月部についても、この基本原則に則れば、

今月の勤務表作成時から過去なのでロックしない

ということにしたいと思います。これまでのサンプルで、先月部にロックを掛けてしまっている例がありますが、修正します。下図のように先月部はロックしないでください。


<ロックが掛かっていると問題の例>

スタッフ24が、今月から夜勤なしの日勤のみになったとします。


日勤のみなので、予定FILLINすることにして全ての数値設定をクリアします。

スタッフ毎の当該シフトをクリアします。

                             しかし、求解するとエラーが出てしまいます。


当該箇所に飛ぶと、
                            
                                ロックを外せば、「先月部の矛盾するシフトをソフト化」が効いて


                        ということで、最初からロックがかかっていなければ、防げる問題でした。




2025年3月21日金曜日

3月末のリリース予定改善7

 改善前:

https://schedule-nurse.blogspot.com/2025/03/q.html


改善後:

IntelGraphicsDriverでは、特定のRGB領域で、真っ黒背景になるセルが出てきます。この暫定対策として、1年ほど前に、特定のRGBを似た色に内部で変換することを実施しました。今回この暫定対策を実施するか否かを決定するオプションを設けました。現象は、IntelGraphicsで、特定のRGBが黒になる、ということだけですので、この色の使用を避ければ足ります。また、Intel以外では、本現象は確認されていないので、AMDやNVIDIAでは、暫定対策を行う必要はありませんでした。


この問題のため、下記のチェックがDefaultで入っています。

このチェックが入った状態では、次のようになります。全ての色が若干変わりますが、黒のセルは無くなります。


上記チェックを外すと、色は、素のままに出てきます。


2025年3月20日木曜日

3月末のリリース予定改善6

改善前: 

特別の日のリンクチェックなし

https://schedule-nurse.blogspot.com/2025/01/q_13.html

改善後:

参照リンクがある場合は、編集ができないようにしました。

(削除する場合は、先ず参照先を削除することを強制します。)


例:



元に戻ります。

適用を外したり、行削除しても同様です。

2025年3月19日水曜日

3月末のリリース予定改善5

改善前:

 Excelから予定読み出し時、ラベルの有効性のチェックなし。定義していないラベルは無視され警告等出ません。

改善後:

定義していないラベルは、エラーとして該当箇所を表示し、Excelシート全体の読み込みを行いません。

 Excelシート

 エラーメッセージ

2025年3月18日火曜日

3月末のリリース予定改善4

 改善前

予定の保存ではロック情報が保存されません。従いロック付予定を保存しても読みだし時は、ロックが解除されます。


改善後

■予定右クリックに予定入出力のメニューを追加

■書き出し時に、ロック情報も保存されます。

■読みだし時も、ロック情報が読みだされます。


Excelファイルです。フォント赤字はロック部、背景色部は、ソフトレベルに対応しています。

ところで、今回の変更とは関係のない話です。

この予定入力シートの読み込みでは、実は名前を見ていません。スケジュールナースが自身が出力したことを前提としており、単に順番に読み込んでいるだけです。つまり、名前が違っていたとしても問題なく読み込めます。

サポートに何か相談したいことがある場合、プロジェクトファイルを送付しますが、その際、匿名にしたい場合があるかと思います。その際、名前を書き替えると、予定がなくなってしまいます。しかし、この機能で保存しておいて、匿名化した後に再び読み込めば、予定を再現させることができます。

2025年3月17日月曜日

3月末のリリース予定改善3

改善前:

入力比較で、ツールチップはありません。



改善後: 


入力比較(相違部)にツールチップが付きます。予定入力画面では、解がツールチップされます。

解画面では、相違部(赤)で、予定入力がツールチップされます。



2025年3月16日日曜日

3月末のリリース予定改善2

改善前:

入力比較を行うとロックが失われる

改善後:

入力比較を行ってもロックは失われません。


ロックは、セルの背景を黄色、予定と解の齟齬部分はセル背景を赤と、同じセル背景を使っているのは、変更がありません。しかし、ロックしているのは、大抵の場合ハード制約なので、解があるなら、予定と解は一致します。つまりロックと予定変更が重なることはありませんので、このような実装でも問題なく表示することが出来ます。

ソフト制約の場合は、この原則に当てはまらないのですが、解側では、ロックはないので、正しく表示することが出来ます。一方、予定の側は、ロック優先なので、ロックしているソフト予定セルが変更された場合、予定と解の齟齬を示す赤背景を表示することは出来ません。

2025年3月15日土曜日

3月末リリース予定の改善1

 ■Excelへのユーザフォーマット出力は、半角スペース・全角スペース含めて完全に一致している必要がありました。改善後は、半角・全角の有無に関係なく出力されるようになります。



スペースの有無に関係なく、ユーザフォーマット順に出力します。


スケジュールナース側が全角スペース、Excel側がスペースなし/半角スペースだとしても問題なく出力されます。


2025年3月14日金曜日

変則2交代コアプロジェクトのダウンロード

 任意のプロジェクトで、Githubプロジェクトを開くをクリックします。




後は、適当なフォルダを作って名前を適当につけて保存してください。

これで、プロジェクトのダウンロードが終了しました。

次にユーザフォーマットの出力用のExcelをダウンロードします。Github上の同じフォルダにあるのですが、直接ダウンロードが出来ません。少々面倒ですが以下のように行ってください。



解.xlsxをダウンロードします。



解.xlsxは、同じフォルダーに入れます。

これで、学習準備完了です。予定.xlsxは、ダウンロードする必要ありません
その他のExcelファイルも同様に同じフォルダにダウンロード・コピーしてください。
これらは、トレーニング時使用します。プロジェクトファイルは最新の版に更新しています。読み込めない場合は、サイトに行って手動で更新を行ってください。

2025年3月13日木曜日

変則2交代コアプロジェクトの仕様

解の例です。今年4月のプロジェクトにしてみました。




スタッフ数:30

長入明け:各4人

チーム数:2 A/B

平日日勤者数:7

休日日勤者数:

週休数、夜勤回数、年休数:スタッフプロパティで指定

明け後の2連休が出来ない数:スタッフプロパティで指定


出来る限りシンプルにしています。




長日と入り回数の一致は、敢えて実装していません。

<スタッフ数>
夜勤を4人で廻す場合、過去のプロジェクトを調べた限りで30-36人となっています。30人が恐らく実仕様上の最低人数になると思います。(夜勤5回キープの範囲内で)一般に大学病院の勤務はキツく、地方の公立病院だと割に緩やかな感じの傾向を感じています。希望も出しまくりのところが多いと思います。

<明けの後の2連休>
この実装は、出来ないパターンの禁止のソフト制約のところもあります。祝を週休数に加えることができる職場は、潤沢な休み数があります。そういう職場では、そのような実装でも、ブランク予定でエラーを0に出来る可能性がありますが、そうでない職場では、如何に年休数をプラスしたところで追いつきません。なので、そういう職場の場合は、2連休が可能な数をスタッフプロパティで指定していたのですが、今回は、出来ない数に変更しました。各々夜勤回数が違う中で、負荷平準の考え方からすれば、出来ない数を平等化する方がよいと思ったからです。

また、ある職場では、明け後の遅番パターンもあり得る仕様を頂きました。しかし、この場合

■日長入明遅休

となり、5日連続勤務となります。娘の夜勤明けを見ていて、流石に明け後も働くのは辛いし、連続勤務制約の月跨ぎパターンも考慮する必要が出てきます。なので敢えてお客さま仕様を無視して明け2連休優先の実装としています。

<夜勤間隔パターン>
長めのパターンも入れてみました。従来、「4日休み連続解」が出てくるということで、対処療法的なパターン禁止を入れてきたのですが、考えてみると、夜勤の数が少なくて休日の数が潤沢にあれば、そのようなパターンが出てくるのは自然なことです。ならば、夜勤の間隔を広げてやれば、自然にそのような解が出にくくなるであろう、ということが予測できます。
制約はシンプルな方が、ソルバ上もメンテンナンス上からも望ましいので、夜勤パターン間隔のみで、記述できるならばその方がベターです。
ただし、月末から月始めに関しては、その制約も苦しくなるのは事実なので、敢えて目をつぶる意味で、通常のパターン数で決まる日数は見ないことにします。これで、ブランク予定では、エラー0にすることが出来ます。

<日勤連続5日>
これも、制約しなければ、日勤連続5日は出現するのが通常ですが、軽めに禁止しています。

<長入パターン>

長入明パターンのうち、遅番の可能性が入るのは、長入だけです。また、このパターンから外れる長休単独もありえます。それらは、拡張仕様で実装することにしてコア仕様では実装しません。が望ましいのは、長入明パターンであろうということで、ソフト制約にしています。

従来、長単独を別シフトとする実装も行っていたのですが、煩雑過ぎて分かりずらいと反省し変更しました。単純にソフト制約にするのは、違和感があったからなのですが、シンプルな方が良い、と判断しました。

<救急外来、外来>

他の職場に応援に行く職場もあります。従来、これらはタスクで実装していたのですが、分かりずらい点を反省、今回はシフト追加で行こうと思います。






2025年3月12日水曜日

変則2交代勤務 トレーニング構想

 過去、全ての変則2交代勤務表をもう一度見渡して、共通する仕様が、根幹的な変則2交代プロジェクトの仕様と考えることが出来ます。そこから出発することにして、足りない仕様と制約を付け加えていけば、自身が使うプロジェクトになる、と考えます。



過去、変則2交代に関して取り扱ったのは、大体10病棟位だと思います。そこから共通する仕様を取り出して、基本プロジェクトを作ります。


トレーニングは、以下の二つになります。

1)スケジュールナース使い方編 

2)スケジュールナース制約編 


最初に変則2交代コア勤務プロジェクトを基に、スケジュールナースの使い方を学びます。

次に、コア勤務表に対して、仕様追加変更をしていくやり方を説明します。制約の仕方は、説明を聞いた段階では、分かったような気になるのですが、実際に自分でやってみないと身につかないことは、いくら強調しても良いくらいです。






2025年3月11日火曜日

Q. スケジュールナース サブスクエラー

Q. ホームページに記載されておりました通り、マイクロソフトストアから

スケジュールナースをダウンロード、のちインストールを行いました。

[image: image.png]


スケジュールナースを起動しますと、スケジュールナースIIIが立ち上がります。

すると「サブスクリプションを購入しますか?」と問われますので

「はい」と答えております。

[image: image.png]


すると2つのサブスクリプションがあり、1か月分でよいか聞かれますので

こちらでも「はい」を選択いたします。

[image: image.png]


すると支払い画面へ移行しますので、クレジットカードを選択

[image: image.png]

クレジットカード会社から認証コードが送られてきますので

コードを打ち込んで認証します。

※下記画面から金額が¥0となってます。クレジットカード認証がおかしいのでは?

[image: image.png]

すると下記の画面が出て、動かなくなります。

サブスクリプション管理画面でも御社のソフトがありませんので、課金処理が

うまくいかないようです。なおクレジットカードは数種類(VISAのみ)試しましたがどれもダメでした。

[image: image.png]

なお、一週間ほどの試用期間があるとの事でしたが、

起動すると直ちにサブスクリプション画面が立ち上がり「はい」を選ぶと

上記の通りエラー、「いいえ」を選ぶと「ライセンスが無効」と出てソフトが終了して

しまうため起動できません。

[image: image.png]

使用環境はWindows11 Ver24H2で

CPUは最新のCore Urtla 7 265kとなります。

よろしくお願いいたします。


Ans.

詳細にご説明頂きありがとうございます。

こちらで再現が出来ておりませんので、適切なアドバイスが出来ず申し訳ありません。


同様のエラーが報告されているようですが、解決には至っていないようです。

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13311941798

https://answers.microsoft.com/en-us/windows/forum/all/microsoft-store-payment-problem/1d6519d6-3ca6-4163-bca4-bbe7dabbbee5



一般的な手順になってしまいます。以下をお試しいただけないでしょうか?



1)アプリのリセット

https://faq.nec-lavie.jp/qasearch/1007/app/servlet/qadoc?QID=023825






2)マイクロソフトストア自体のリセットコマンド


それでも復旧しない場合は、大変申し訳ないので、買い切り版を提供させて頂きます。(クレジットカードは必要ありません。)

https://www.nurse-scheduling-software.com/japanese/service2/onetime_purchase/


切りのよいご使用期間毎(Ex.ご使用期間後12カ月後 12x@480=5760円を振り込んで頂ければ結構です。)

買い切り版ソフトは、サブスクとは別物となります。インストール自体が若干面倒ですが、サブスク自体はインストール出来ているので、さして困難ではありません。マイクロソフトアカント名を送付頂ければ、永続的に使用できるようになります。


これについては、上の操作で復旧しない場合の特別対応となります。その際は、改めて手順を送付します。


大変お手数をおかけして申し訳ございません。

ご検討の程よろしくお願い申し上げます。