(57)【特許請求の範囲】
【請求項１】
各医療従事者の公休日の設定を受け付け、
前記各医療従事者から、受け付けた前記公休日以外の希望休暇日、及び前記希望休暇日の優先順位の設定を受け付け、
前記希望休暇日の設定対象となる全期間を複数の期間に分割し、
分割した期間ごとに、分割期間の希望休暇日の日数と全期間の希望休暇日の総日数との比率である、前記希望休暇日の優先順位の重みづけの値を算出し、
算出した優先順位の重みづけの値が所定閾値以上であると判断した場合、前記優先順位を上げて補正し、
補正後の優先順位に従い前記各医療従事者の休暇日を設定する
処理をコンピュータに実行させるプログラム。
【請求項２】
休日及び勤務未定日に基づいて夜勤候補日を設定する
処理を実行させる請求項１に記載のプログラム。
【請求項３】
休日の２日前に勤務未定日であると判定した場合、前記勤務未定日を第１夜勤候補日に設定し、
前記第１夜勤候補日以外の勤務未定日が２日間連続すると判定した場合、前記勤務未定日を、前記第１夜勤候補日より優先順位が低い第２夜勤候補日に設定する
処理を実行させる請求項２に記載のプログラム。
【請求項４】
前記夜勤候補日の設定対象となる全期間を複数の期間に分割し、
分割した期間ごとに各医療従事者が夜勤可能な最大回数及び最小回数の設定を受け付け、
受け付けた最大回数及び最小回数と、前記第１夜勤候補日及び前記第２夜勤候補日とを含む第１制約条件に基づいて、期間ごとに夜勤担当者を設定する
処理を実行させる請求項３に記載のプログラム。
【請求項５】
休日及び勤務未定日に基づいて早番候補日を設定する
処理を実行させる請求項１から４までのいずれかひとつに記載のプログラム。
【請求項６】
休日の翌日が勤務未定日であると判定した場合、前記勤務未定日を第１早番候補日に設定し、
休日の翌々日以降が勤務未定日であると判定した場合、前記勤務未定日を、前記第１早番候補日より優先順位が低い第２早番候補日に設定する
処理を実行させる請求項５に記載のプログラム。
【請求項７】
前記早番候補日の設定対象となる全期間を複数の期間に分割し、
分割した期間ごとに各医療従事者が早番可能な最大回数及び最小回数の設定を受け付け、
受け付けた最大回数及び最小回数と、前記第１早番候補日及び前記第２早番候補日とを含む第２制約条件に基づいて、期間ごとに早番担当者を設定する
処理を実行させる請求項６に記載のプログラム。
【請求項８】
遅番は、第１種類の遅番及び前記第１種類の遅番より遅めの勤務時間帯である第２種類の遅番を含み、
早番の日、休日及び勤務未定日に基づいて前記第１種類の遅番における遅番候補日を設定し、
前記第１種類の遅番の日、早番の日、夜勤の日、休日及び勤務未定日に基づいて前記第２種類の遅番における遅番候補日を設定する
処理を実行させる請求項１から７までのいずれかひとつに記載のプログラム。
【請求項９】
前記第１種類の遅番における遅番候補日は、第１遅番候補日及び前記第１遅番候補日より優先順位が低い第２遅番候補日を含み、
早番の日の翌日が勤務未定日であると判定した場合、前記勤務未定日を前記第１遅番候補日に設定し、
休日の翌日に早番が設定されていないと判定した場合、前記休日の翌日を前記第１遅番候補日に設定し、
早番の日または休日の翌々日以降が勤務未定日であると判定した場合、前記勤務未定日を前記第２遅番候補日に設定する
処理を実行させる請求項８に記載のプログラム。
【請求項１０】
前記第２種類の遅番における遅番候補日は、第３遅番候補日及び前記第３遅番候補日より優先順位が低い第４遅番候補日を含み、
前記第１種類の遅番の日の翌日、または、夜勤の日若しくは休日の前日が勤務未定日であると判定した場合、前記勤務未定日を前記第３遅番候補日に設定し、
早番の日の翌日が勤務未定日であると判定した場合、前記勤務未定日を前記第４遅番候補日に設定する
処理を実行させる請求項８に記載のプログラム。
【請求項１１】
前記遅番候補日の設定対象となる全期間を複数の期間に分割し、
分割した期間ごとに各医療従事者が遅番可能な最大回数及び最小回数の設定を受け付け、
受け付けた最大回数及び最小回数と、前記第１遅番候補日及び前記第２遅番候補日とを含む第３制約条件に基づいて、期間ごとに前記第１種類の遅番における遅番担当者を設定する
処理を実行させる請求項９に記載のプログラム。
【請求項１２】
前記遅番候補日の設定対象となる全期間を複数の期間に分割し、
分割した期間ごとに各医療従事者が遅番可能な最大回数及び最小回数の設定を受け付け、
受け付けた最大回数及び最小回数と、前記第３遅番候補日及び前記第４遅番候補日とを含む第４制約条件に基づいて、期間ごとに前記第２種類の遅番における遅番担当者を設定する
処理を実行させる請求項１０に記載のプログラム。
【請求項１３】
各医療従事者の公休日の設定を受け付ける第１受付部と、
前記各医療従事者から、受け付けた前記公休日以外の希望休暇日、及び前記希望休暇日の優先順位の設定を受け付ける第２受付部と、
前記希望休暇日の設定対象となる全期間を複数の期間に分割する分割部と、
分割した期間ごとに、分割期間の希望休暇日の日数と全期間の希望休暇日の総日数との比率である、前記希望休暇日の優先順位の重みづけの値を算出する算出部と、  算出した優先順位の重みづけの値が所定閾値以上であると判断した場合、前記優先順位を上げて補正する補正部と、
補正後の優先順位に従い前記各医療従事者の休暇日を設定する設定部と
を備えることを特徴とする情報処理装置。
【請求項１４】
各医療従事者の公休日の設定を受け付け、
前記各医療従事者から、受け付けた前記公休日以外の希望休暇日、及び前記希望休暇日の優先順位の設定を受け付け、
前記希望休暇日の設定対象となる全期間を複数の期間に分割し、
分割した期間ごとに、分割期間の希望休暇日の日数と全期間の希望休暇日の総日数との比率である、前記希望休暇日の優先順位の重みづけの値を算出し、
算出した優先順位の重みづけの値が所定閾値以上であると判断した場合、前記優先順位を上げて補正し、  補正後の優先順位に従い前記各医療従事者の休暇日を設定する
処理をコンピュータに実行させることを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
特許文献１には、入力された作成条件に基づいて、一般分類に従う出勤休暇区分が表された勤務表を作成する勤務表作成支援システムが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−０９９５６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に係る発明は、勤務表を作成した際に、勤務者の希望休暇日の優先順位（優先度）を考慮しない問題がある。
【０００５】
一つの側面では、勤務者の休暇日を適当に設定することが可能なプログラム等を提供することにある。
【課題を解決するための手段】
【０００６】
一つの側面に係るプログラムは、各医療従事者の公休日の設定を受け付け、前記各医療従事者から、受け付けた前記公休日以外の希望休暇日、及び前記希望休暇日の優先順位の設定を受け付け、前記希望休暇日の設定対象となる全期間を複数の期間に分割し、分割した期間ごとに、分割期間の希望休暇日の日数と全期間の希望休暇日の総日数との比率である、前記希望休暇日の優先順位の重みづけの値を算出し、算出した優先順位の重みづけの値が所定閾値以上であると判断した場合、前記優先順位を上げて補正し、補正後の優先順位に従い前記各医療従事者の休暇日を設定する処理をコンピュータに実行させる。
【発明の効果】
【０００７】
一つの側面では、勤務者の休暇日を適当に設定することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】コンピュータの構成例を示すブロック図である。
【図２】各医療従事者の休暇日を設定する動作を示す機能ブロック図である。
【図３】分割期間における休暇日を設定する際の処理手順を示すフローチャートである。
【図４】優先順位を補正するサブルーチンの処理手順を示すフローチャートである。
【図５】公休日の入力の受付画面の一例を示す説明図である。
【図６】優先順位の入力の受付画面の一例を示す説明図である。
【図７】休暇日の設定画面の一例を示す説明図である。
【図８】夜勤担当者を設定する際の処理手順を示すフローチャートである。
【図９】夜勤候補日を設定するサブルーチンの処理手順を示すフローチャートである。
【図１０】夜勤候補日の設定画面の一例を示す説明図である。
【図１１】夜勤担当者の設定画面の一例を示す説明図である。
【図１２】早番担当者を設定する際の処理手順を示すフローチャートである。
【図１３】早番候補日を設定するサブルーチンの処理手順を示すフローチャートである。
【図１４】早番候補日の設定画面の一例を示す説明図である。
【図１５】早番担当者の設定画面の一例を示す説明図である。
【図１６】遅番担当者を設定する際の処理手順を示すフローチャートである。
【図１７】第１種類の遅番における遅番候補日を設定するサブルーチンの処理手順を示すフローチャートである。
【図１８】第２種類の遅番における遅番候補日を設定するサブルーチンの処理手順を示すフローチャートである。
【図１９】第１種類の遅番における遅番候補日の設定画面の一例を示す説明図である。
【図２０】第１種類の遅番における遅番担当者の設定画面の一例を示す説明図である。
【図２１】第２種類の遅番における遅番候補日の設定画面の一例を示す説明図である。
【図２２】夜勤の重複チェック画面の一例を示す説明図である。
【発明を実施するための形態】
【０００９】
以下、本発明をその実施形態を示す図面に基づいて詳述する。
【００１０】
（実施形態１）
実施形態１は、各医療従事者の希望休暇日の優先順位に従い休暇日を設定する形態に関する。なお、本実施形態では、医療従事者の例を説明するが、これに限るものではない。例えば、２４時間３６５日無休で稼働している交代制（シフト制）勤務形態を採用している工場または店舗等での勤務者にも同様に適用される。
【００１１】
本実施形態のシステムは、情報処理装置１を含む。情報処理装置１は、種々の情報に対する処理、記憶及び送受信を行う情報処理装置である。情報処理装置１は、例えばサーバ装置、パーソナルコンピュータ等である。本実施形態において、情報処理装置１はパーソナルコンピュータであるものとし、以下では簡潔のためコンピュータ１と読み替える。
【００１２】
本実施形態に係るコンピュータ１は、各医療従事者の公休日の設定を受け付ける。コンピュータ１は各医療従事者から、受け付けた公休日以外の希望休暇日及び該希望休暇日の優先順位の設定を受け付ける。コンピュータ１は、受け付けた複数の優先順位に応じて優先順位を補正し、補正後の優先順位に従い各医療従事者の休暇日を設定する。
【００１３】
図１は、コンピュータ１の構成例を示すブロック図である。コンピュータ１は、制御部１１、記憶部１２、通信部１３、入力部１４、表示部１５及び読取部１６を含む。各構成はバスＢで接続されている。
【００１４】
制御部１１はＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro-Processing Unit）、ＧＰＵ（Graphics Processing Unit）等の演算処理装置を含み、記憶部１２に記憶された制御プログラム１Ｐを読み出して実行することにより、コンピュータ１に係る種々の情報処理、制御処理等を行う。なお、図１では制御部１１を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。
【００１５】
記憶部１２はＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等のメモリ素子を含み、制御部１１が処理を実行するために必要な制御プログラム１Ｐ又はデータ等を記憶している。また、記憶部１２は、制御部１１が演算処理を実行するために必要なデータ等を一時的に記憶する。通信部１３は通信に関する処理を行うための通信モジュールである。
【００１６】
入力部１４は、マウス、キーボード、タッチパネル、ボタン等の入力デバイスであり、受け付けた操作情報を制御部１１へ出力する。表示部１５は、液晶ディスプレイ又は有機ＥＬ（electroluminescence）ディスプレイ等であり、制御部１１の指示に従い各種情報を表示する。
【００１７】
読取部１６は、ＣＤ（Compact Disc）−ＲＯＭ又はＤＶＤ（Digital Versatile Disc）−ＲＯＭを含む可搬型記憶媒体１ａを読み取る。制御部１１が読取部１６を介して、制御プログラム１Ｐを可搬型記憶媒体１ａより読み取り、記憶部１２に記憶しても良い。また、ネットワークＮ等を介して他のコンピュータから制御部１１が制御プログラム１Ｐをダウンロードし、記憶部１２に記憶しても良い。さらにまた、半導体メモリ１ｂから、制御部１１が制御プログラム１Ｐを読み込んでも良い。
【００１８】
図２は、各医療従事者の休暇日を設定する動作を示す機能ブロック図である。コンピュータ１は、医療従事者の休暇日の設定対象期間となる全期間（例えば、「１−末日」）の入力を受け付ける。コンピュータ１は、受け付けた全期間に対して、各日付に対応する曜日情報を取得し、取得した曜日情報を日付に対応付けて表示する。なお、全期間が予め記憶部１２に記憶された場合、コンピュータ１は該全期間を記憶部１２から取得しても良い。
【００１９】
コンピュータ１は、休暇を取る対象者となる複数の医療従事者の入力を受け付ける。コンピュータ１は、各医療従事者の公休日の設定を受け付ける。公休日とは、事業または企業等が従業員に対して定めている休日である。一般的には土日を公休とされ、祝日、お盆及び年末年始も公休とされる。２４時間３６５日無休で稼働している工場、店舗または病院等での交代制（シフト制）勤務形態が採用された場合、指定された曜日が公休日とされる。
【００２０】
コンピュータ１は、各医療従事者から、受け付けた公休日以外の希望休暇日及び該希望休暇日の優先順位の設定を受け付ける。優先順位は、休暇希望の強さを示す順位である。例えば、五つの優先順位が設定された場合、優先順位５は、休暇希望の強さが最も強い順位である。優先順位４は、休暇希望の強さが２番目に強い順位である。優先順位３は、休暇希望の強さが中程度の順位である。優先順位２は、休暇希望の強さが弱い順位である。優先順位１は、優先順位が設定されていない場合のデフォルト順位である。
【００２１】
コンピュータ１は、受け付けた複数の優先順位に応じて優先順位を補正する。具体的には、コンピュータ１は、全期間を複数の期間に分割する。例えば、全期間が一ヵ月である場合、全期間を「１−１０日」期間、「１１−２０日」期間及び「２１−末日」期間に分割する。または、全期間が「１−１５日」期間及び「１６−末日」期間に分割されても良い。なお、上述した期間の分割方式に限らず、実際のニーズに応じて期間を分割しても良い。コンピュータ１は、分割した期間ごとに各優先順位の重みづけの値を算出する。優先順位の重みづけの値は、分割期間の希望休暇日の日数と全期間の希望休暇日の総日数との比率で算出される。優先順位の重みづけの値は以下の式（１）で表される。
【００２２】
優先順位の重みづけの値  ＝  分割期間の希望休暇日の日数／全期間の希望休暇日の総日数×１００％  …（１）
【００２３】
以下では、「１１−２０日」期間における優先順位４の重みづけの値を算出する例を説明する。コンピュータ１は、「１１−２０日」期間における優先順位４の希望休暇日の日数、及び全期間における優先順位４の希望休暇日の総日数それぞれを集計する。例えば、「１１−２０日」期間における優先順位４の希望休暇日の日数が１であり、全期間における優先順位４の希望休暇日の総日数が１である場合、コンピュータ１は、上述した式（１）を用いて、優先順位４の重みづけの値が１００％であると算出する。または、例えば「１１−２０日」期間における優先順位４の希望休暇日の日数が１であり、全期間における優先順位４の希望休暇日の総日数が２である場合、コンピュータ１は、上述した式（１）を用いて、優先順位４の重みづけの値が５０％であると算出する。
【００２４】
コンピュータ１は、算出した各優先順位の重みづけの値が所定閾値（例えば、１００％）以上であるか否かを判定する。コンピュータ１は、算出した各優先順位の重みづけの値が所定閾値以上であると判定した場合、該優先順位を上げる。上述した例で、「１１−２０日」期間における優先順位４の重みづけの値が１００％である場合、コンピュータ１は、「１１−２０日」期間における優先順位４から優先順位５に上げる。
【００２５】
コンピュータ１は、日別に休暇取得できる人数、各優先順位に対応する点数、期間ごとに各医療従事者が休暇取得できる最小回数及び最大回数を含む制約条件を取得する。コンピュータ１は、取得した制約条件に基づいて、期間ごとにソルバー計算を実行して各医療従事者の休暇日を設定する。
【００２６】
なお、複数の閾値を設け、各閾値に応じて優先順位を変更しても良い。例えば、第１閾値を６０％とし、第２閾値を９０％とする。重みづけの値が第１閾値を超える場合、優先順位を１増加させ、第２閾値を超える場合、優先順位を更に大きく２増加させても良い。また、優先順位の変更は、加減算に限るものではなく、係数を乗じる形態であっても良い。
【００２７】
ソルバーとは、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌ（登録商標）をはじめとする表計算ソフトの機能の一種で、複数の変数を含む数式において、目標とする値を得るための、最適な変数の値を求めることができる機能のことである。ソルバーでは、複数の変数の値を変化させながら変数の相互関係を判断し、最適な値を算出することができる。ある変数に特定の制約条件をつけたり、あるいは特定の変数が最大値・最小値を得るために他の変数の値を変化させたりすることもできる。ソルバーを用いれば、連立方程式の解または複数の項目が連動する事業計画の試算といった複雑な演算ができる。
【００２８】
なお、本実施形態では、ソルバー計算の例を示したが、これに限るものではない。他の数理計画問題を解くアルゴリズムを利用しても良い。
【００２９】
図３は、分割期間における休暇日を設定する際の処理手順を示すフローチャートである。なお、休暇日の分割期間は、例えば「１−１０日」期間、「１１−２０日」期間または「２１−末日」期間である。コンピュータ１の制御部１１は、休暇日の設定対象の分割期間（例えば、「１−１０日」期間）を取得する（ステップＳ１０１）。制御部１１は、複数の医療従事者の入力（例えば、医療従事者ＩＤまたは名前）を入力部１４により受け付ける（ステップＳ１０２）。
【００３０】
制御部１１は、各医療従事者の公休日の設定を入力部１４により受け付ける（ステップＳ１０３）。制御部１１は、各医療従事者から、受け付けた公休日以外の希望休暇日及び該希望休暇日の優先順位の設定を入力部１４により受け付ける（ステップＳ１０４）。制御部１１は、受付順に受け付けた複数の医療従事者から一人の医療従事者を取得し（ステップＳ１０５）、取得した該医療従事者に対して各優先順位の補正処理を行う（ステップＳ１０６）。なお、優先順位補正のサブルーチンについては後述する。制御部１１は、複数の医療従事者中で該医療従事者が最後の医療従事者であるか否かを判定する（ステップＳ１０７）。
【００３１】
制御部１１は、該医療従事者が最後の医療従事者でないと判定した場合（ステップＳ１０７でＮＯ）、ステップＳ１０５処理に戻り、受付順に次の医療従事者を取得する。制御部１１は、該医療従事者が最後の医療従事者であると判定した場合（ステップＳ１０７でＹＥＳ）、制約条件を記憶部１２から取得する（ステップＳ１０８）。なお、制御部１１は入力部１４を介して、制約条件の入力を受け付けても良い。制約条件は、日別に休暇取得できる人数、各優先順位に対応する点数、期間ごとに各医療従事者が休暇取得できる最小回数及び最大回数を含む。
【００３２】
制御部１１は制約条件に基づいて、ソルバー計算を実行して各医療従事者の休暇日を設定する（ステップＳ１０９）。具体的には、制御部１１は、各優先順位に対応する点数を制約条件から取得する。例えば、五つの優先順位が設定された場合、優先順位１〜５に対応する点数それぞれは１〜５点であっても良い。制御部１１は、点数が最大となるように、分割期間に対してすべての医療従事者の優先順位の点数の合計を計算する。制御部１１は、計算した最大点数、各日の休暇取得できる人数、各医療従事者が休暇取得できる最小回数及び最大回数を含む制約条件に基づいてソルバー計算を実行して各医療従事者の休暇日を自動で設定する。制御部１１は、設定した各医療従事者の休暇日を表示部１５により表示する（ステップＳ１１０）。
【００３３】
図４は、優先順位を補正するサブルーチンの処理手順を示すフローチャートである。コンピュータ１の制御部１１は、優先順位の降順に受け付けた複数の優先順位から一つの優先順位を取得する（ステップＳ１１）。制御部１１は、分割期間における希望休暇日の日数を集計する（ステップＳ１２）。制御部１１は、全期間における希望休暇日の総日数を集計する（ステップＳ１３）。制御部１１は、上述した式（１）を用いて、分割期間の希望休暇日の日数と全期間の希望休暇日の総日数との優先順位の重みづけの値（比率）を算出する（ステップＳ１４）。
【００３４】
制御部１１は、算出した優先順位の重みづけの値が所定閾値（例えば、１００％）以上であるか否かを判定する（ステップＳ１５）。制御部１１は、優先順位の重みづけの値が所定閾値未満であると判定した場合（ステップＳ１５でＮＯ）、複数の優先順位中で該優先順位が最後の優先順位であるか否かを判定する（ステップＳ１７）。制御部１１は、該優先順位が最後の優先順位でないと判定した場合（ステップＳ１７でＮＯ）、ステップＳ１１処理に戻り、優先順位の降順に次の優先順位を取得する。制御部１１は、該優先順位が最後の優先順位であると判定した場合（ステップＳ１７でＹＥＳ）、サブルーチンを呼び出した元の処理にリターンする。制御部１１は、優先順位の重みづけの値が所定閾値以上であると判定した場合（ステップＳ１５でＹＥＳ）、優先順位を上げて（ステップＳ１６）、例えば、優先順位４から優先順位５に上げる。
【００３５】
図５は、公休日の入力の受付画面の一例を示す説明図である。公休日の入力の受付画面は、公休日入力欄１０ａ及び公休日・勤務日表示欄１０ｂを含む。コンピュータ１は、公休日入力欄１０ａにより入力された公休日を公休日・勤務日表示欄１０ｂに表示する。例えば、公休日入力欄１０ａに「水」及び「木」が入力された場合、当月分のすべての水曜日及び木曜日が公休日に設定され、公休日・勤務日表示欄１０ｂに反映させる。図示のように、「福島  五郎」氏に対して「日」及び「月」が公休日に設定された場合、公休日・勤務日表示欄１０ｂで３月１日及び３月２日に「公休」が表示される。なお、図５では、二つの公休日の入力例を説明したが、これに限るものではない。実際のニーズに応じて任意の数量の公休日が設定されても良い。
【００３６】
図６は、優先順位の入力の受付画面の一例を示す説明図である。優先順位の入力の受付画面は、優先順位入力欄１１ａ、日数集計表示欄１１ｂ及び重みづけ表示欄１１ｃを含む。
【００３７】
なお、図６では優先順位４の入力例を説明したが、他の優先順位にも同様に適用される。コンピュータ１は、各医療従事者から優先順位４の入力を優先順位入力欄１１ａから受け付ける。図６の例では、３月３日に「青森  一郎」氏に対して優先順位４が入力され、３月８日に「福井  八郎」氏に対して優先順位４が入力され、３月４日に「静岡  十一郎」氏に対して優先順位４が入力されている。コンピュータ１は、各医療従事者に対して、期間（「１−１０日」、「１１−２０日」及び「２１−末日」）ごとに優先順位４に対応する希望休暇日の日数、及び優先順位４に対応する全期間の希望休暇日の総日数を集計する。
【００３８】
コンピュータ１は、集計した期間ごとの希望休暇日の日数及び全期間の希望休暇日の総日数を日数集計表示欄１１ｂに表示する。図示のように、「青森  一郎」氏に対して、優先順位４に対応する「１−１０日」期間の希望休暇日の日数が「１」であり、全期間の希望休暇日の日数が「１」である。また、「福井  八郎」氏に対して、優先順位４に対応する「１−１０日」期間の希望休暇日の日数が「１」であり、全期間の希望休暇日の日数が「１」である。また、「静岡  十一郎」氏に対して、優先順位４に対応する「１−１０日」期間の希望休暇日の日数が「１」であり、全期間の希望休暇日の日数が「２」ある。
【００３９】
コンピュータ１は、上述した式（１）を用いて、各医療従事者に対して、期間ごとの希望休暇日の日数と全期間の希望休暇日の総日数との重みづけの値（比率）を算出する。コンピュータ１は、算出した各医療従事者の重みづけの値を重みづけ表示欄１１ｃに表示する。図示のように、「１−１０日」期間において、「青森  一郎」氏の優先順位４の重みづけの値が「１００％」であり、「福井  八郎」氏の優先順位４の重みづけの値が「１００％」であり、「静岡  十一郎」氏の優先順位４の重みづけの値が「５０％」である。
【００４０】
コンピュータ１は、各医療従事者に対して、算出した優先順位４の重みづけの値が所定閾値（例えば、１００％）以上であるか否かを判定する。コンピュータ１は、算出した優先順位４の重みづけの値が所定閾値以上であると判定した場合、該医療従事者に対して優先順位４から優先順位５に上げる。図示のように、「青森  一郎」氏に対して、優先順位４の重みづけの値が１００％であるため、３月３日に入力された優先順位４から優先順位５に上げる。また、「福井  八郎」氏に対して、優先順位４の重みづけの値が１００％であるため、３月８日に入力された優先順位４から優先順位５に上げる。コンピュータ１は、上げた優先順位５を優先順位入力欄１１ａに表示する。
【００４１】
また、「静岡  十一郎」氏に対して、優先順位４の重みづけの値が５０％であり、該重みづけの値が所定閾値未満（例えば、１００％）であるため、入力された優先順位４をそのままにする。
【００４２】
なお、本実施形態では、コンピュータ１は、各医療従事者の氏名、公休日及び希望休暇日の優先順位等の入力を直接受け付けたが、これに限るものではない。例えば、各医療従事者の端末は、医療従事者の氏名、公休日及び希望休暇日の優先順位等の入力を受け付け、受け付けた上述の情報をコンピュータ１に送信しても良い。または、コンピュータ１は、ブラウザを経由して各医療従事者が入力した氏名、公休日及び希望休暇日の優先順位等を取得しても良い。
【００４３】
図７は、休暇日の設定画面の一例を示す説明図である。休暇日の設定画面は、休暇日表示欄１６ａ、最大・最小休暇回数入力欄１６ｂ、休暇取得人数入力欄１６ｃ、第１期間休暇日設定ボタン１６ｄ、第２期間休暇日設定ボタン１６ｅ及び第３期間休暇日設定ボタン１６ｆを含む。休暇日表示欄１６ａは、設定された休暇日を表示する表示欄である。最大・最小休暇回数入力欄１６ｂは、期間ごとに各医療従事者が休暇取得できる最小回数及び最大回数の入力を受け付ける入力欄である。休暇取得人数入力欄１６ｃは、日別に休暇取得できる人数の入力を受け付ける入力欄である。
【００４４】
第１期間休暇日設定ボタン１６ｄは、第１期間（「１−１０日」期間）における各医療従事者の休暇日を設定するためのボタンである。第２期間休暇日設定ボタン１６ｅは、第２期間（「１１−２０日」期間）における各医療従事者の休暇日を設定するためのボタンである。第３期間休暇日設定ボタン１６ｆは、第３期間（「２１−末日」期間）における各医療従事者の休暇日を設定するためのボタンである。なお、休暇日設定ボタンは、分割期間により設けられても良い。例えば、全期間が「１−１５日」期間及び「１６−末日」期間に分割された場合、「１−１５日」期間休暇日設定ボタン及び「１６−末日」期間休暇日設定ボタンが設けられても良い。
【００４５】
コンピュータ１は、所定の制約条件を記憶部１２から取得する。コンピュータ１は、期間ごとに各医療従事者が休暇取得できる最小回数及び最大回数の入力を最大・最小休暇回数入力欄１６ｂから受け付ける。コンピュータ１は、日別に休暇取得できる人数の入力を休暇取得人数入力欄１６ｃから受け付ける。コンピュータ１は、受け付けた各医療従事者の休暇の最大回数及び最小回数と、受け付けた各日の休暇取得できる人数とを制約条件に追加する。
【００４６】
コンピュータ１は、例えば第１期間休暇日設定ボタン１６ｄのタッチ操作を受け付けた場合、制約条件に定義された各優先順位に対応する点数に基づいて、優先順位の入力の受付画面（図６）で設定された優先順位に対して点数が最大となるように計算する。なお、希望休暇日の優先順位が補正された場合、コンピュータ１は補正後の優先順位に対して最大点数を計算する。
【００４７】
コンピュータ１は、計算した最大点数、休暇取得人数入力欄１６ｃにより入力された各日の休暇取得できる人数、最大・最小休暇回数入力欄１６ｂにより入力された各医療従事者が休暇取得できる最小回数及び最大回数を含む制約条件に基づいてソルバー計算を実行し、第１期間（「１−１０日」期間）における各医療従事者の休暇日を設定する。なお、上述した処理は、第２期間及び第３期間における各医療従事者の休暇日の設定処理にも同様に適用される。
【００４８】
コンピュータ１は、設定した各医療従事者の休暇日を「１」で休暇日表示欄１６ａに表示する。なお、設定された休暇日が「休暇日」または「休」等の文字で休暇日表示欄１６ａに表示されても良い。
【００４９】
本実施形態によると、希望休暇日の優先順位に従い各医療従事者の休暇日を適当に設定することが可能となる。
【００５０】
本実施形態によると、希望休暇日の優先順位を補正して各医療従事者の休暇日を設定することにより、休暇日の設定精度が高くなる。
【００５１】
（実施形態２）
実施形態２は、夜勤担当者を設定する形態に関する。なお、実施形態１と重複する内容については説明を省略する。
【００５２】
コンピュータ１は、休日（公休日または休暇日）及び勤務未定日に基づいて夜勤候補日を設定する。具体的には、コンピュータ１は、休日の２日前に勤務未定日であると判定した場合、該勤務未定日を第１夜勤候補日に設定する。例えば、コンピュータ１は、公休日が水曜日及び木曜日であり、且つ、月曜日が勤務未定日であると判定した場合、月曜日を第１夜勤候補日に設定する。また、コンピュータ１は、第１夜勤候補日以外の勤務未定日が２日間連続すると判定した場合、２日間連続する勤務未定日を第２夜勤候補日に設定する。第２夜勤候補日は、第１夜勤候補日より優先順位が低い。例えば、コンピュータ１はソルバー計算に対して、第１夜勤候補日を２点、第２夜勤候補日を１点として計算する。
【００５３】
コンピュータ１は、夜勤担当者の設定対象となる全期間（例えば、一ヵ月）を複数の期間に分割する。例えば、実施形態１と同様に、一ヵ月である全期間を「１−１０日」期間、「１１−２０日」期間及び「２１−末日」期間に分割する。
【００５４】
コンピュータ１は、所定の制約条件（第１制約条件）を取得する。制約条件は、例えば「既に設定済みの勤務・休日と夜勤が重なる回数は０にする」、「夜勤の必要数と各日の夜勤担当者の人数は一致する」、「期間ごとに各医療従事者の夜勤の回数は最大回数及び最小回数の範囲内で設定される」、及び「第１夜勤候補日を２点、第２夜勤候補日を１点として計算する」等を含む。
【００５５】
コンピュータ１は、分割した期間ごとに各医療従事者が夜勤可能な最大回数及び最小回数の設定を受け付ける。コンピュータ１は、受け付けた夜勤の最大回数及び最小回数を制約条件に追加する。コンピュータ１は、制約条件に基づいてソルバー計算を実行することにより、期間ごとに夜勤担当者を設定する。
【００５６】
図８は、夜勤担当者を設定する際の処理手順を示すフローチャートである。コンピュータ１の制御部１１は、夜勤担当者の設定期間（例えば、「１−１０日」期間）を取得する（ステップＳ１２１）。例えば、制御部１１は、後述する図１１での第１期間夜勤担当者設定ボタン１２ｃ（「夜勤担当者設定_１日から１０日」）のタッチ操作を受け付けた場合、「１−１０日」設定期間を取得する。制御部１１は、複数の医療従事者の入力（例えば、医療従事者ＩＤまたは名前）を入力部１４により受け付ける（ステップＳ１２２）。制御部１１は、休日及び勤務未定日に基づいて夜勤候補日を設定する（ステップＳ１２３）。なお、夜勤候補日設定のサブルーチンについては後述する。
【００５７】
制御部１１は、所定の制約条件を記憶部１２または入力部１４により取得する（ステップＳ１２４）。制御部１１は、設定期間に対する各医療従事者の夜勤の最大回数及び最小回数の設定を入力部１４により受け付け（ステップＳ１２５）、受け付けた夜勤の最大回数及び最小回数を制約条件に追加する。
【００５８】
制御部１１は、制約条件に基づいてソルバー計算を実行することにより、該設定期間に対して夜勤担当者を設定する（ステップＳ１２６）。具体的には、制御部１１は、第１夜勤候補日及び第２夜勤候補日に対応する点数（例えば、第１夜勤候補日：２点、第２夜勤候補日：１点）を制約条件から取得し、点数が最大となるように、設定期間に対してすべての夜勤候補日の点数の合計を計算する。制御部１１は、計算した最大点数、各日の夜勤担当者の必要人数、各医療従事者が夜勤可能な最大回数及び最小回数を含む制約条件に基づいてソルバー計算を実行して夜勤担当者を自動で設定する。制御部１１は、設定した夜勤担当者を表示部１５により表示する（ステップＳ１２７）。
【００５９】
なお、上述した処理は、設定期間に対して夜勤担当者を設定した例を説明したが、これに限るものではない。全期間（例えば、一ヵ月）に対して夜勤担当者を設定しても良い。
【００６０】
図９は、夜勤候補日を設定するサブルーチンの処理手順を示すフローチャートである。コンピュータ１の制御部１１は、受付順に受け付けた複数の医療従事者から一人の医療従事者を取得する（ステップＳ２１）。制御部１１は、夜勤担当者の設定期間から日付の昇順に日を取得する（ステップＳ２２）。制御部１１は、取得した日が勤務未定日であるか否かを判定する（ステップＳ２３）。
【００６１】
制御部１１は、該日が勤務未定日でないと判定した場合（ステップＳ２３でＮＯ）、ステップＳ２２処理に戻る。制御部１１は、該日が勤務未定日であると判定した場合（ステップＳ２３でＹＥＳ）、該日が休日の２日前であるか否かを判定する（ステップＳ２４）。制御部１１は、該日が休日の２日前であると判定した場合（ステップＳ２４でＹＥＳ）、取得した医療従事者に対して、該日を第１夜勤候補日に設定する（ステップＳ２５）。制御部１１は、該日が設定期間の中で最後の日であるか否かを判定する（ステップＳ２８）。
【００６２】
制御部１１は、該日が最後の日でないと判定した場合（ステップＳ２８でＮＯ）、ステップＳ２２処理に戻る。制御部１１は、該日が最後の日であると判定した場合（ステップＳ２８でＹＥＳ）、取得した医療従事者が複数の医療従事者の中で最後の医療従事者であるか否かを判定する（ステップＳ２９）。制御部１１は、取得した医療従事者が最後の医療従事者であると判定した場合（ステップＳ２９でＹＥＳ）、サブルーチンを呼び出した元の処理にリターンする。制御部１１は、取得した医療従事者が最後の医療従事者でないと判定した場合（ステップＳ２９でＮＯ）、ステップＳ２１処理に戻り、受付順に次の医療従事者を取得する。
【００６３】
制御部１１は、該日が休日の２日前でないと判定した場合（ステップＳ２４でＮＯ）、該日の次の日が勤務未定日であるか否かを判定する（ステップＳ２６）。制御部１１は、次の日が勤務未定日であると判定した場合（ステップＳ２６でＹＥＳ）、取得した医療従事者に対して、該日を第２夜勤候補日に設定し（ステップＳ２７）、ステップＳ２８処理を実行する。制御部１１は、次の日が勤務未定日でないと判定した場合（ステップＳ２６でＮＯ）、ステップＳ２８処理に遷移する。
【００６４】
図１０は、夜勤候補日の設定画面の一例を示す説明図である。コンピュータ１は、休日の２日前に勤務未定日であると判定した場合、該勤務未定日を第１夜勤候補日に設定する。例えば、コンピュータ１は、３月４日が「秋田  二郎」氏の休日であり、且つ、該公休日の２日前に勤務未定日であると判定した場合、「秋田  二郎」氏に対して３月２日を第１夜勤候補日に設定する。コンピュータ１は、設定した第１夜勤候補日を「２」点に表示する。
【００６５】
また、コンピュータ１は、第１夜勤候補日以外の勤務未定日が２日間連続すると判定した場合、２日間連続する勤務未定日を第２夜勤候補日に設定する。例えば、コンピュータ１は、「新潟  六郎」氏に対して３月４日及び３月５日が第１夜勤候補日以外の勤務未定日であると判定した場合、３月４日及び３月５日を第２夜勤候補日に設定する。コンピュータ１は、設定した第２夜勤候補日を「１」点に表示する。
【００６６】
図１１は、夜勤担当者の設定画面の一例を示す説明図である。夜勤担当者（夜勤者）の設定画面は、最大・最小夜勤回数入力欄１２ａ、夜勤担当者表示欄１２ｂ、第１期間夜勤担当者設定ボタン１２ｃ、第２期間夜勤担当者設定ボタン１２ｄ、第３期間夜勤担当者設定ボタン１２ｅ及び夜勤必要数入力欄１２ｆを含む。最大・最小夜勤回数入力欄１２ａは、期間ごとに各医療従事者が夜勤可能な最大回数及び最小回数の入力を受け付ける入力欄である。夜勤担当者表示欄１２ｂは、設定された夜勤担当者を表示する表示欄である。夜勤必要数入力欄１２ｆは、日別に夜勤担当者の必要人数の入力を受け付ける入力欄である。
【００６７】
第１期間夜勤担当者設定ボタン１２ｃは、第１期間（「１−１０日」期間）における夜勤担当者を設定するためのボタンである。第２期間夜勤担当者設定ボタン１２ｄは、第２期間（「１１−２０日」期間）における夜勤担当者を設定するためのボタンである。第３期間夜勤担当者設定ボタン１２ｅは、第３期間（「２１−末日」期間）における夜勤担当者を設定するためのボタンである。なお、夜勤担当者設定ボタンは、分割期間により設けられても良い。例えば、全期間が「１−１５日」期間及び「１６−末日」期間に分割された場合、「１−１５日」期間夜勤担当者設定ボタン及び「１６−末日」期間夜勤担当者設定ボタンが設けられても良い。
【００６８】
コンピュータ１は、所定の制約条件を記憶部１２から取得する。コンピュータ１は、期間ごとに各医療従事者が夜勤可能な最大回数及び最小回数の入力を最大・最小夜勤回数入力欄１２ａから受け付ける。コンピュータ１は、日別に夜勤担当者の必要人数の入力を夜勤必要数入力欄１２ｆから受け付ける。コンピュータ１は、受け付けた各医療従事者の夜勤の最大回数及び最小回数と、受け付けた各日の夜勤担当者の必要人数とを制約条件に追加する。
【００６９】
コンピュータ１は、例えば第１期間夜勤担当者設定ボタン１２ｃのタッチ操作を受け付けた場合、制約条件に定義された第１夜勤候補日及び第２夜勤候補日の点数に基づいて、夜勤候補日の設定画面（図１０）で設定した第１夜勤候補日及び第２夜勤候補日に対して点数が最大となるように計算する。コンピュータ１は、計算した最大点数、夜勤必要数入力欄１２ｆにより入力された各日の夜勤担当者の必要人数、最大・最小夜勤回数入力欄１２ａにより入力された各医療従事者が夜勤可能な最大回数及び最小回数を含む制約条件に基づいてソルバー計算を実行し、「１−１０日」期間における夜勤担当者を設定する。
【００７０】
なお、上述した処理は、第２期間及び第３期間における夜勤担当者の設定処理にも同様に適用される。コンピュータ１は、設定した夜勤担当者を「１」で夜勤担当者表示欄１２ｂに表示する。なお、設定された夜勤担当者が「夜勤」または「夜」等の文字で夜勤担当者表示欄１２ｂに表示されても良い。
【００７１】
本実施形態によると、休日を考慮して夜勤担当者を設定することにより、夜勤明けに身体が疲労から早めに回復することが可能となる。
【００７２】
（実施形態３）
実施形態３は、早番担当者を設定する形態に関する。なお、実施形態１〜２と重複する内容については説明を省略する。
【００７３】
コンピュータ１は、休日及び勤務未定日に基づいて早番候補日を設定する。具体的には、コンピュータ１は、休日の翌日が勤務未定日であると判定した場合、該勤務未定日を第１早番候補日に設定する。また、コンピュータ１は、休日の翌々日以降が勤務未定日であると判定した場合、該勤務未定日を第２早番候補日に設定する。第２早番候補日は、第１早番候補日より優先順位が低い。例えば、コンピュータ１はソルバー計算に対して、第１早番候補日を２点、第２早番候補日を１点として計算する。
【００７４】
コンピュータ１は、実施形態２と同様に、早番担当者の設定対象となる全期間を複数の期間に分割する。コンピュータ１は、所定の制約条件（第２制約条件）を取得する。第２制約条件は、例えば「既に設定済みの勤務・休日と早番が重なる回数は０にする」、「早番の必要数と各日の早番担当者の人数は一致する」、「期間ごとに各医療従事者の早番の回数は最大回数及び最小回数の範囲内で設定される」、及び「第１早番候補日を２点、第２早番候補日を１点として計算する」等を含む。
【００７５】
コンピュータ１は、分割した期間ごとに各医療従事者が早番可能な最大回数及び最小回数の設定を受け付ける。コンピュータ１は、受け付けた早番の最大回数及び最小回数を制約条件に追加する。コンピュータ１は、制約条件に基づいてソルバー計算を実行することにより、期間ごとに早番担当者を設定する。
【００７６】
図１２は、早番担当者を設定する際の処理手順を示すフローチャートである。コンピュータ１の制御部１１は、早番担当者の設定期間（例えば、「１−１０日」期間）を取得する（ステップＳ１３１）。制御部１１は、複数の医療従事者の入力を入力部１４により受け付ける（ステップＳ１３２）。制御部１１は、休日及び勤務未定日に基づいて早番候補日を設定する（ステップＳ１３３）。なお、早番候補日設定のサブルーチンについては後述する。
【００７７】
制御部１１は、所定の制約条件を記憶部１２または入力部１４により取得する（ステップＳ１３４）。制御部１１は、設定期間に対する各医療従事者の早番の最大回数及び最小回数の設定を入力部１４により受け付け（ステップＳ１３５）、受け付けた早番の最大回数及び最小回数を制約条件に追加する。
【００７８】
制御部１１は、制約条件に基づいてソルバー計算を実行することにより、該設定期間に対して早番担当者を設定する（ステップＳ１３６）。具体的には、制御部１１は、第１早番候補日及び第２早番候補日に対応する点数（例えば、第１早番候補日：２点、第２早番候補日：１点）を制約条件から取得し、点数が最大となるように、設定期間に対してすべての早番候補日の点数の合計を計算する。制御部１１は、計算した最大点数、各日の早番担当者の必要人数、各医療従事者が早番可能な最大回数及び最小回数を含む制約条件に基づいてソルバー計算を実行して早番担当者を自動で設定する。制御部１１は、設定した早番担当者を表示部１５により表示する（ステップＳ１３７）。
【００７９】
図１３は、早番候補日を設定するサブルーチンの処理手順を示すフローチャートである。コンピュータ１の制御部１１は、受付順に受け付けた複数の医療従事者から一人の医療従事者を取得する（ステップＳ３１）。制御部１１は、早番担当者の設定期間から日付の昇順に日を取得する（ステップＳ３２）。制御部１１は、取得した日が勤務未定日であるか否かを判定する（ステップＳ３３）。制御部１１は、該日が勤務未定日でないと判定した場合（ステップＳ３３でＮＯ）、ステップＳ３２処理に戻る。制御部１１は、該日が勤務未定日であると判定した場合（ステップＳ３３でＹＥＳ）、該日が休日の翌日であるか否かを判定する（ステップＳ３４）。制御部１１は、該日が休日の翌日であると判定した場合（ステップＳ３４でＹＥＳ）、取得した医療従事者に対して、該日を第１早番候補日に設定する（ステップＳ３５）。
【００８０】
制御部１１は、該日が設定期間の中で最後の日であるか否かを判定する（ステップＳ３８）。制御部１１は、該日が最後の日でないと判定した場合（ステップＳ３８でＮＯ）、ステップＳ３２処理に戻る。制御部１１は、該日が最後の日であると判定した場合（ステップＳ３８でＹＥＳ）、取得した医療従事者が複数の医療従事者の中で最後の医療従事者であるか否かを判定する（ステップＳ３９）。制御部１１は、取得した医療従事者が最後の医療従事者であると判定した場合（ステップＳ３９でＹＥＳ）、サブルーチンを呼び出した元の処理にリターンする。制御部１１は、取得した医療従事者が最後の医療従事者でないと判定した場合（ステップＳ３９でＮＯ）、ステップＳ３１処理に戻り、受付順に次の医療従事者を取得する。
【００８１】
制御部１１は、該日が休日の翌日でないと判定した場合（ステップＳ３４でＮＯ）、該日が休日の翌々日以降であるか否かを判定する（ステップＳ３６）。制御部１１は、該日が休日の翌々日以降であると判定した場合（ステップＳ３６でＹＥＳ）、取得した医療従事者に対して、該日を第２早番候補日に設定し（ステップＳ３７）、ステップＳ３８処理を実行する。制御部１１は、該日が休日の翌々日以降でないと判定した場合（ステップＳ３６でＮＯ）、ステップＳ３８処理に遷移する。
【００８２】
図１４は、早番候補日の設定画面の一例を示す説明図である。コンピュータ１は、休日の翌日が勤務未定日であると判定した場合、該勤務未定日を第１早番候補日に設定する。例えば、コンピュータ１は「青森  一郎」氏に対し、３月６日が休日の翌日であり、且つ、該日が勤務未定日であると判定した場合、３月６日を第１早番候補日に設定する。コンピュータ１は、設定した第１早番候補日を「２」点に表示する。
【００８３】
また、コンピュータ１は、休日の翌々日以降が勤務未定日であると判定した場合、該勤務未定日を第２早番候補日に設定する。例えば、コンピュータ１は「青森  一郎」氏に対し、３月７日〜３月１０日が休日の翌々日以降であり、且つ、該複数の日が勤務未定日であると判定した場合、３月７日〜３月１０日を第２早番候補日に設定する。コンピュータ１は、設定した第２早番候補日を「１」点に表示する。
【００８４】
図１５は、早番担当者の設定画面の一例を示す説明図である。早番担当者の設定画面は、最大・最小早番回数入力欄１３ａ、早番担当者表示欄１３ｂ、第１期間早番担当者設定ボタン１３ｃ及び早番必要数入力欄１３ｄを含む。最大・最小早番回数入力欄１３ａは、期間ごとに各医療従事者が早番可能な最大回数及び最小回数の入力を受け付ける入力欄である。なお、図１５は、第１期間（「１−１０日」期間）の入力欄を表示したが、他の期間（例えば、「１１−２０日」期間、「２１−末日」期間）の入力欄の表示を省略する。
【００８５】
早番担当者表示欄１３ｂは、設定された早番担当者を表示する表示欄である。第１期間早番担当者設定ボタン１３ｃは、第１期間（「１−１０日」期間）における早番担当者を設定するためのボタンである。なお、他の期間における早番担当者を設定するためのボタンを省略する。早番必要数入力欄１３ｄは、日別に早番担当者の必要人数の入力を受け付ける入力欄である。
【００８６】
コンピュータ１は、所定の制約条件を記憶部１２から取得する。コンピュータ１は、期間ごとに各医療従事者が早番可能な最大回数及び最小回数の入力を最大・最小早番回数入力欄１３ａから受け付ける。コンピュータ１は、日別に早番担当者の必要人数の入力を早番必要数入力欄１３ｄから受け付ける。コンピュータ１は、受け付けた各医療従事者の早番の最大回数及び最小回数と、受け付けた各日の早番担当者の必要人数とを制約条件に追加する。
【００８７】
コンピュータ１は、第１期間早番担当者設定ボタン１３ｃのタッチ操作を受け付けた場合、制約条件に定義された第１早番候補日及び第２早番候補日の点数に基づいて、早番候補日の設定画面（図１４）で設定した第１早番候補日及び第２早番候補日に対して点数が最大となるように計算する。コンピュータ１は、計算した最大点数、早番必要数入力欄１３ｄにより入力された各日の早番担当者の必要人数、最大・最小早番回数入力欄１３ａにより入力された各医療従事者が早番可能な最大回数及び最小回数を含む制約条件に基づいてソルバー計算を実行し、「１−１０日」期間における早番担当者を設定する。
【００８８】
コンピュータ１は、設定した早番担当者を「１」で早番担当者表示欄１３ｂに表示する。なお、設定された早番担当者が「早番」または「早」等の文字で早番担当者表示欄１３ｂに表示されても良い。
【００８９】
本実施形態によると、休日を考慮して早番担当者を設定することにより、身体が疲労から早めに回復することが可能となる。
【００９０】
（実施形態４）
実施形態４は、遅番担当者を設定する形態に関する。なお、実施形態１〜３と重複する内容については説明を省略する。本実施形態での遅番は、第１種類の遅番及び第１種類の遅番より遅めの勤務時間帯である第２種類の遅番を含む。例えば、第１種類の遅番が「１７：００〜２２：００」勤務時間帯であり、第２種類の遅番が「２２：００〜翌２：００」勤務時間帯である。
【００９１】
まず、早番の日、休日及び勤務未定日に基づいて第１種類の遅番における遅番担当者を設定する処理を説明する。コンピュータ１は、第１種類の遅番における遅番候補日を設定する。第１種類の遅番における遅番候補日は、第１遅番候補日及び第２遅番候補日を含む。第２遅番候補日は、第１遅番候補日より優先順位が低い。例えば、コンピュータ１はソルバー計算に対して、第１遅番候補日を２点、第２遅番候補日を１点として計算する。
【００９２】
具体的には、コンピュータ１は、早番の日の翌日が勤務未定日であると判定した場合、該勤務未定日を第１遅番候補日に設定する。または、コンピュータ１は、休日の翌日に早番が設定されていないと判定した場合、該休日の翌日を第１遅番候補日に設定する。または、コンピュータ１は、早番の日または休日の翌々日以降が勤務未定日であると判定した場合、該勤務未定日を第２遅番候補日に設定する。
【００９３】
コンピュータ１は、実施形態２と同様に、遅番担当者の設定対象となる全期間を複数の期間に分割する。コンピュータ１は、所定の制約条件（第３制約条件）を取得する。第３制約条件は、例えば「既に設定済みの勤務・休日と第１種類の遅番が重なる回数は０にする」、「第１種類の遅番の必要数と各日の第１種類の遅番の担当者の人数は一致する」、「期間ごとに各医療従事者の第１種類の遅番の回数は最大回数及び最小回数の範囲内で設定される」、及び「第１遅番候補日を２点、第２遅番候補日を１点として計算する」等を含む。
【００９４】
コンピュータ１は、分割した期間ごとに各医療従事者が遅番（第１種類の遅番）可能な最大回数及び最小回数の設定を受け付ける。コンピュータ１は、受け付けた第１種類の遅番の最大回数及び最小回数を制約条件に追加する。コンピュータ１は、制約条件に基づいてソルバー計算を実行することにより、期間ごとに第１種類の遅番における遅番担当者を設定する。
【００９５】
次に、第１種類の遅番の日、早番の日、夜勤の日、休日及び勤務未定日に基づいて第２種類の遅番における遅番担当者を設定する処理を説明する。コンピュータ１は、第２種類の遅番における遅番候補日を設定する。第２種類の遅番における遅番候補日は、第３遅番候補日及び第４遅番候補日を含む。第４遅番候補日は、第３遅番候補日より優先順位が低い。例えば、コンピュータ１はソルバー計算に対して、第３遅番候補日を２点、第４遅番候補日を１点として計算する。
【００９６】
具体的には、コンピュータ１は、第１種類の遅番の日の翌日、または、夜勤の日若しくは休日の前日が勤務未定日であると判定した場合、前記勤務未定日を第３遅番候補日に設定する。または、コンピュータ１は、早番の日の翌日が勤務未定日であると判定した場合、該勤務未定日を第４遅番候補日に設定する。
【００９７】
コンピュータ１は、実施形態２と同様に、遅番担当者の設定対象となる全期間を複数の期間に分割する。コンピュータ１は、所定の制約条件（第４制約条件）を取得する。第４制約条件は、例えば「既に設定済みの勤務・休日と第２種類の遅番が重なる回数は０にする」、「第２種類の遅番の必要数と各日の第２種類の遅番の担当者の人数は一致する」、「期間ごとに各医療従事者の第２種類の遅番の回数は最大回数及び最小回数の範囲内で設定される」、及び「第３遅番候補日を２点、第４遅番候補日を１点として計算する」等を含む。
【００９８】
コンピュータ１は、分割した期間ごとに各医療従事者が遅番（第２種類の遅番）可能な最大回数及び最小回数の設定を受け付ける。コンピュータ１は、受け付けた第２種類の遅番の最大回数及び最小回数を制約条件に追加する。コンピュータ１は、制約条件に基づいてソルバー計算を実行することにより、期間ごとに第２種類の遅番における遅番担当者を設定する。
【００９９】
図１６は、遅番担当者を設定する際の処理手順を示すフローチャートである。コンピュータ１の制御部１１は、遅番担当者の設定期間（例えば、「１−１０日」期間）を取得する（ステップＳ１４１）。制御部１１は、複数の医療従事者の入力を入力部１４により受け付ける（ステップＳ１４２）。制御部１１は、早番の日、休日及び勤務未定日に基づいて遅番候補日（第１種類の遅番における遅番候補日、または第２種類の遅番における遅番候補日）を設定する（ステップＳ１４３）。なお、遅番候補日設定のサブルーチンについては後述する。
【０１００】
制御部１１は、所定の制約条件を記憶部１２または入力部１４により取得する（ステップＳ１４４）。制御部１１は、設定期間に対する各医療従事者の遅番の最大回数及び最小回数の設定を入力部１４により受け付け（ステップＳ１４５）、受け付けた遅番の最大回数及び最小回数を制約条件に追加する。
【０１０１】
制御部１１は、制約条件に基づいてソルバー計算を実行することにより、該設定期間に対して遅番担当者を設定する（ステップＳ１４６）。以下では、第１種類の遅番における遅番担当者の例を説明するが、第２種類の遅番における遅番担当者にも同様に適用される。制御部１１は、第１遅番候補日及び第２遅番候補日に対応する点数（例えば、第１遅番候補日：２点、第２遅番候補日：１点）を制約条件から取得し、点数が最大となるように、設定期間に対してすべての遅番候補日の点数の合計を計算する。制御部１１は、計算した最大点数、各日の第１種類の遅番の担当者の必要人数、各医療従事者が遅番（第１種類の遅番）可能な最大回数及び最小回数を含む制約条件に基づいてソルバー計算を実行し、第１種類の遅番における遅番担当者を自動で設定する。制御部１１は、設定した遅番担当者を表示部１５により表示する（ステップＳ１４７）。
【０１０２】
図１７は、第１種類の遅番における遅番候補日を設定するサブルーチンの処理手順を示すフローチャートである。コンピュータ１の制御部１１は、受付順に受け付けた複数の医療従事者から一人の医療従事者を取得する（ステップＳ４１）。制御部１１は、第１種類の遅番における遅番担当者の設定期間から日付の昇順に日を取得する（ステップＳ４２）。制御部１１は、取得した日が勤務未定日であるか否かを判定する（ステップＳ４３）。
【０１０３】
制御部１１は、該日が勤務未定日であると判定した場合（ステップＳ４３でＹＥＳ）、該日が早番の日の翌日であるか否かを判定する（ステップＳ４６）。制御部１１は、該日が早番の日の翌日であると判定した場合（ステップＳ４６でＹＥＳ）、取得した医療従事者に対して、該日を第１遅番候補日に設定する（ステップＳ４７）。制御部１１は、該日が設定期間の中で最後の日であるか否かを判定する（ステップＳ５０）。制御部１１は、該日が最後の日でないと判定した場合（ステップＳ５０でＮＯ）、ステップＳ４２処理に戻る。
【０１０４】
制御部１１は、該日が最後の日であると判定した場合（ステップＳ５０でＹＥＳ）、取得した医療従事者が複数の医療従事者の中で最後の医療従事者であるか否かを判定する（ステップＳ５１）。制御部１１は、取得した医療従事者が最後の医療従事者であると判定した場合（ステップＳ５１でＹＥＳ）、サブルーチンを呼び出した元の処理にリターンする。制御部１１は、取得した医療従事者が最後の医療従事者でないと判定した場合（ステップＳ５１でＮＯ）、ステップＳ４１処理に戻り、受付順に次の医療従事者を取得する。
【０１０５】
制御部１１は、該日が早番の日の翌日でないと判定した場合（ステップＳ４６でＮＯ）、該日が早番の日または休日の翌々日以降であるか否かを判定する（ステップＳ４８）。制御部１１は、該日が早番の日または休日の翌々日以降であると判定した場合（ステップＳ４８でＹＥＳ）、取得した医療従事者に対して、該日を第２遅番候補日に設定し（ステップＳ４９）、ステップＳ５０処理を実行する。制御部１１は、該日が早番の日または休日の翌々日以降でないと判定した場合（ステップＳ４８でＮＯ）、ステップＳ５０処理に遷移する。
【０１０６】
制御部１１は、該日が勤務未定日でないと判定した場合（ステップＳ４３でＮＯ）、該日が休日の翌日であるか否かを判定する（ステップＳ４４）。制御部１１は、該日が休日の翌日でないと判定した場合（ステップＳ４４でＮＯ）、ステップＳ４６処理に遷移する。制御部１１は、該日が休日の翌日であると判定した場合（ステップＳ４４でＹＥＳ）、該日に早番が設定されたか否かを判定する（ステップＳ４５）。制御部１１は、該日に早番が設定されたと判定した場合（ステップＳ４５でＹＥＳ）、ステップＳ４２処理に戻る。制御部１１は、該日に早番が設定されていないと判定した場合（ステップＳ４５でＮＯ）、ステップＳ４７処理に遷移する。
【０１０７】
図１８は、第２種類の遅番における遅番候補日を設定するサブルーチンの処理手順を示すフローチャートである。コンピュータ１の制御部１１は、受付順に受け付けた複数の医療従事者から一人の医療従事者を取得する（ステップＳ６１）。制御部１１は、第２種類の遅番における遅番担当者の設定期間から日付の昇順に日を取得する（ステップＳ６２）。制御部１１は、取得した日が勤務未定日であるか否かを判定する（ステップＳ６３）。制御部１１は、該日が勤務未定日でないと判定した場合（ステップＳ６３でＮＯ）、ステップＳ６２処理に戻る。
【０１０８】
制御部１１は、該日が勤務未定日であると判定した場合（ステップＳ６３でＹＥＳ）、該日が第１種類の遅番の日の翌日であるか否かを判定する（ステップＳ６４）。制御部１１は、該日が第１種類の遅番の日の翌日であると判定した場合（ステップＳ６４でＹＥＳ）、取得した医療従事者に対して、該日を第３遅番候補日に設定する（ステップＳ６６）。制御部１１は、該日が設定期間の中で最後の日であるか否かを判定する（ステップＳ６９）。
【０１０９】
制御部１１は、該日が最後の日でないと判定した場合（ステップＳ６９でＮＯ）、ステップＳ６２処理に戻る。制御部１１は、該日が最後の日であると判定した場合（ステップＳ６９でＹＥＳ）、取得した医療従事者が複数の医療従事者の中で最後の医療従事者であるか否かを判定する（ステップＳ７０）。制御部１１は、取得した医療従事者が最後の医療従事者であると判定した場合（ステップＳ７０でＹＥＳ）、サブルーチンを呼び出した元の処理にリターンする。制御部１１は、取得した医療従事者が最後の医療従事者でないと判定した場合（ステップＳ７０でＮＯ）、ステップＳ６１処理に戻り、受付順に次の医療従事者を取得する。
【０１１０】
制御部１１は、該日が第１種類の遅番の日の翌日でないと判定した場合（ステップＳ６４でＮＯ）、該日が夜勤の日または休日の前日であるか否かを判定する（ステップＳ６５）。制御部１１は、該日が夜勤の日または休日の前日であると判定した場合（ステップＳ６５でＹＥＳ）、ステップＳ６６処理を実行する。制御部１１は、該日が夜勤の日または休日の前日でないと判定した場合（ステップＳ６５でＮＯ）、該日が早番の日の翌日であるか否かを判定する（ステップＳ６７）。
【０１１１】
制御部１１は、該日が早番の日の翌日であると判定した場合（ステップＳ６７でＹＥＳ）、取得した医療従事者に対して、該日を第４遅番候補日に設定し（ステップＳ６８）、ステップＳ６９処理を実行する。制御部１１は、該日が早番の日の翌日でないと判定した場合（ステップＳ６７でＮＯ）、ステップＳ６９処理に遷移する。
【０１１２】
図１９は、第１種類の遅番における遅番候補日の設定画面の一例を示す説明図である。コンピュータ１は、早番の日の翌日が勤務未定日であると判定した場合、該勤務未定日を第１遅番候補日に設定する。例えば、コンピュータ１は「青森  一郎」氏に対し、３月７日が早番の日の翌日であり、且つ、該日が勤務未定日であると判定した場合、３月７日を第１遅番候補日に設定する。また、コンピュータ１は「山梨  十郎」に対し、３月２日が休日の翌日であり、且つ、該日に早番が設定されていないと判定した場合、３月２日を第１遅番候補日に設定する。コンピュータ１は、設定した第１遅番候補日を「２」点に表示する。
【０１１３】
また、コンピュータ１は、早番の日または休日の翌々日以降が勤務未定日であると判定した場合、該勤務未定日を第２遅番候補日に設定する。例えば、コンピュータ１は「青森  一郎」氏に対し、３月８日〜３月１０日が早番の日の翌々日以降であり、且つ、該複数の日が勤務未定日であると判定した場合、３月８日〜３月１０日を第２遅番候補日に設定する。また、コンピュータ１は「山梨  十郎」氏に対し、３月３日〜３月５日が休日の翌々日以降であり、且つ、該複数の日が勤務未定日であると判定した場合、３月３日〜３月５日を第２遅番候補日に設定する。コンピュータ１は、設定した第２遅番候補日を「１」点に表示する。
【０１１４】
図２０は、第１種類の遅番における遅番担当者の設定画面の一例を示す説明図である。遅番担当者の設定画面は、最大・最小遅番回数入力欄１４ａ、遅番担当者表示欄１４ｂ、第１期間遅番担当者設定ボタン１４ｃ及び遅番必要数入力欄１４ｄを含む。最大・最小遅番回数入力欄１４ａは、期間ごとに各医療従事者が遅番可能な最大回数及び最小回数の入力を受け付ける入力欄である。なお、図１５では、第１期間（「１−１０日」期間）の入力欄を表示したが、他の期間（例えば、「１１−２０日」期間、「２１−末日」期間）の入力欄の表示を省略する。
【０１１５】
遅番担当者表示欄１４ｂは、設定された遅番担当者を表示する表示欄である。第１期間遅番担当者設定ボタン１４ｃは、第１期間（「１−１０日」期間）における遅番担当者を設定するためのボタンである。なお、他の期間における遅番担当者を設定するためのボタンを省略する。遅番必要数入力欄１４ｄは、日別に遅番担当者の必要人数の入力を受け付ける入力欄である。
【０１１６】
コンピュータ１は、所定の制約条件を記憶部１２から取得する。コンピュータ１は、期間ごとに各医療従事者が遅番（第１種類の遅番）可能な最大回数及び最小回数の入力を最大・最小遅番回数入力欄１４ａから受け付ける。コンピュータ１は、日別に第１種類の遅番における遅番担当者の必要人数の入力を遅番必要数入力欄１４ｄから受け付ける。コンピュータ１は、受け付けた各医療従事者の第１種類の遅番の最大回数及び最小回数と、受け付けた各日の第１種類の遅番の担当者の必要人数とを制約条件に追加する。
【０１１７】
コンピュータ１は、第１期間遅番担当者設定ボタン１４ｃのタッチ操作を受け付けた場合、制約条件に定義された第１遅番候補日及び第２遅番候補日の点数に基づいて、第１種類の遅番における遅番候補日の設定画面（図１９）で設定した第１遅番候補日及び第２遅番候補日に対して点数が最大となるように計算する。コンピュータ１は、計算した最大点数、遅番必要数入力欄１４ｄにより入力された各日の第１種類の遅番の担当者の必要人数、最大・最小遅番回数入力欄１４ａにより入力された各医療従事者が遅番（第１種類の遅番）可能な最大回数及び最小回数を含む制約条件に基づいてソルバー計算を実行し、「１−１０日」期間における第１種類の遅番の担当者を設定する。
【０１１８】
コンピュータ１は、設定した第１種類の遅番の担当者を「１」で遅番担当者表示欄１４ｂに表示する。なお、設定された第１種類の遅番の担当者が「遅番１」または「遅１」等の文字で遅番担当者表示欄１４ｂに表示されても良い。なお、図２０では、第１種類の遅番における遅番担当者設定の例を説明したが、第２種類の遅番における遅番担当者設定にも同様に適用される。
【０１１９】
図２１は、第２種類の遅番における遅番候補日の設定画面の一例を示す説明図である。コンピュータ１は、第１種類の遅番の日の翌日、または、夜勤の日若しくは休日の前日が勤務未定日であると判定した場合、前記勤務未定日を第３遅番候補日に設定する。例えば、コンピュータ１は「青森  一郎」氏に対し、３月８日が第１種類の遅番の日の翌日であり、且つ、該日が勤務未定日であると判定した場合、３月８日を第３遅番候補日に設定する。また、コンピュータ１は「新潟  六郎」に対し、３月６日が夜勤の日の前日であり、且つ、該日が勤務未定日であると判定した場合、３月６日を第３遅番候補日に設定する。また、コンピュータ１は「鹿児島  十二郎」に対し、３月７日が休日の前日であり、且つ、該日が勤務未定日であると判定した場合、３月７日を第３遅番候補日に設定する。コンピュータ１は、設定した第３遅番候補日を「２」点に表示する。
【０１２０】
また、コンピュータ１は、早番の日の翌日が勤務未定日であると判定した場合、該勤務未定日を第４遅番候補日に設定する。例えば、コンピュータ１は「鹿児島  十二郎」氏に対し、３月６日が早番の日の翌日であり、且つ、該日が勤務未定日であると判定した場合、３月６日を第４遅番候補日に設定する。コンピュータ１は、設定した第４遅番候補日を「１」点に表示する。
【０１２１】
本実施形態によると、休日、早番及び夜勤を考慮して遅番担当者を適当に設定することが可能となる。
【０１２２】
（実施形態５）
実施形態５は、勤務日を重複チェックする形態に関する。なお、実施形態１〜４と重複する内容については説明を省略する。コンピュータ１は、設定された夜勤、早番または遅番が既に設定済みの勤務日及び休日と重複しているか否かを判定し、判定した判定結果を表示する。なお、本実施形態では、夜勤の重複チェック処理の例を説明するが、早番及び遅番の重複チェック処理にも同様に適用される。
【０１２３】
図２２は、夜勤の重複チェック画面の一例を示す説明図である。なお、図１１と重複する内容については同一の符号を付して説明を省略する。夜勤の重複チェック画面は、勤務・休日設定済み表示欄１５ａ、及びチェック結果表示欄１５ｂを含む。勤務・休日設定済み表示欄１５ａは、既に設定済みの勤務または休日を表示するための表示欄である。図示のように、設定済みの勤務または休日が「１」で表示され、勤務未定日が空欄で表示される。チェック結果表示欄１５ｂは、夜勤の重複チェック結果を表示する表示欄である。
【０１２４】
以下では、「１−１０日」期間における夜勤の重複チェック処理を説明するが、他の期間にも同様に適用される。コンピュータ１は、「１−１０日」期間における設定済みの勤務日及び休日を記憶部１２から取得する。コンピュータ１は、取得した設定済みの勤務日及び休日を「１」で勤務・休日設定済み表示欄１５ａに表示する。コンピュータ１は、第１期間夜勤担当者設定ボタン１２ｃのタッチ操作を受け付けた場合、実施形態２の処理と同様にソルバー計算処理を実行することにより、「１−１０日」期間における夜勤担当者を設定する。コンピュータ１は、設定した夜勤担当者を「１」で夜勤担当者表示欄１２ｂに表示する。
【０１２５】
コンピュータ１は、「１−１０日」期間内の各日に対応付けて、夜勤担当者ごとに勤務・休日設定済み表示欄１５ａに表示された「１」と、夜勤担当者表示欄１２ｂに表示された「１」とを比較し、重複個数を集計する。コンピュータ１は、集計した重複個数をチェック結果表示欄１５ｂに表示する。なお、コンピュータ１は、重複個数が０であると判定した場合、「０」または空欄でチェック結果表示欄１５ｂに表示しても良い。
【０１２６】
本実施形態によると、勤務日の重複チェックを行うことにより、たとえ夜勤、早番または遅番の設定ミス等を発生したとしても、早速対処することが可能となる。
【０１２７】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１２８】
１        情報処理装置（コンピュータ）
１１      制御部
１２      記憶部
１３      通信部
１４      入力部
１５      表示部
１６      読取部
１ａ      可搬型記憶媒体
１ｂ      半導体メモリ
１Ｐ      制御プログラム
【要約】
【課題】勤務者の休暇日を適当に設定することが可能なプログラム等を提供すること。
【解決手段】一つの側面に係るプログラムは、各医療従事者の公休日の設定を受け付け、前記各医療従事者から、受け付けた前記公休日以外の希望休暇日、及び前記希望休暇日の優先順位の設定を受け付け、受け付けた複数の優先順位に応じて優先順位を補正し、補正後の優先順位に従い前記各医療従事者の休暇日を設定する処理をコンピュータに実行させる。
【選択図】図２【図１】
0006877062.tif 000002
【図２】
0006877062.tif 000003
【図３】
0006877062.tif 000004
【図４】
0006877062.tif 000005
【図５】
0006877062.tif 000006
【図６】
0006877062.tif 000007
【図７】
0006877062.tif 000008
【図８】
0006877062.tif 000009
【図９】
0006877062.tif 000010
【図１０】
0006877062.tif 000011
【図１１】
0006877062.tif 000012
【図１２】
0006877062.tif 000013
【図１３】
0006877062.tif 000014
【図１４】
0006877062.tif 000015
【図１５】
0006877062.tif 000016
【図１６】
0006877062.tif 000017
【図１７】
0006877062.tif 000018
【図１８】
0006877062.tif 000019
【図１９】
0006877062.tif 000020
【図２０】
0006877062.tif 000021
【図２１】
0006877062.tif 000022
【図２２】
0006877062.tif 000023