diff --git a/ecs/jskult-webapp/src/model/db/ultmarc_doctor.py b/ecs/jskult-webapp/src/model/db/ultmarc_doctor.py
index f5576a02..16b120c0 100644
--- a/ecs/jskult-webapp/src/model/db/ultmarc_doctor.py
+++ b/ecs/jskult-webapp/src/model/db/ultmarc_doctor.py
@@ -15,5 +15,6 @@ class UltmarcDoctorDBModel(BaseDBModel):
form_post_name: Optional[str]
alma: Optional[str]
grad_y: Optional[str]
+ use_stop_div: Optional[str]
prefc_name: Optional[str]
blng_sec_cd: Optional[str]
diff --git a/ecs/jskult-webapp/src/model/db/ultmarc_doctor_info.py b/ecs/jskult-webapp/src/model/db/ultmarc_doctor_info.py
index 6f20dfb9..7999de13 100644
--- a/ecs/jskult-webapp/src/model/db/ultmarc_doctor_info.py
+++ b/ecs/jskult-webapp/src/model/db/ultmarc_doctor_info.py
@@ -14,5 +14,6 @@ class UltmarcDoctorInfoDBModel(BaseDBModel):
alma: Optional[str]
hometown: Optional[str]
grad_y: Optional[str]
+ use_stop_div: Optional[str]
drday_y: Optional[str]
estab_y: Optional[str]
diff --git a/ecs/jskult-webapp/src/model/db/ultmarc_doctor_wrkplace.py b/ecs/jskult-webapp/src/model/db/ultmarc_doctor_wrkplace.py
index b0c8a5d1..103cd9f1 100644
--- a/ecs/jskult-webapp/src/model/db/ultmarc_doctor_wrkplace.py
+++ b/ecs/jskult-webapp/src/model/db/ultmarc_doctor_wrkplace.py
@@ -11,3 +11,4 @@ class UltmarcDoctorWrkplaceDBModel(BaseDBModel):
univ_post_name: Optional[str]
post_name: Optional[str]
aply_start_ymd: Optional[date]
+ notdm_flg: Optional[str]
diff --git a/ecs/jskult-webapp/src/model/db/ultmarc_doctor_wrkplace_his.py b/ecs/jskult-webapp/src/model/db/ultmarc_doctor_wrkplace_his.py
index 9572bb5d..04450f9a 100644
--- a/ecs/jskult-webapp/src/model/db/ultmarc_doctor_wrkplace_his.py
+++ b/ecs/jskult-webapp/src/model/db/ultmarc_doctor_wrkplace_his.py
@@ -11,3 +11,4 @@ class UltmarcDoctorWrkplaceHisDBModel(BaseDBModel):
post_name: Optional[str]
aply_start_ymd: Optional[str]
aply_end_ymd: Optional[str]
+ notdm_flg: Optional[str]
diff --git a/ecs/jskult-webapp/src/model/request/ultmarc_doctor.py b/ecs/jskult-webapp/src/model/request/ultmarc_doctor.py
index 6015731e..b670c126 100644
--- a/ecs/jskult-webapp/src/model/request/ultmarc_doctor.py
+++ b/ecs/jskult-webapp/src/model/request/ultmarc_doctor.py
@@ -17,6 +17,7 @@ class UltmarcDoctorSearchModel(RequestBaseModel):
trt_course_name: Optional[str]
alma: Optional[str]
grad_y: Optional[str]
+ use_stop_div: Optional[str]
pagination_page_number: Optional[int]
@classmethod
@@ -33,6 +34,7 @@ class UltmarcDoctorSearchModel(RequestBaseModel):
ctrl_trt_course_name: str = Form(None),
ctrl_alma: str = Form(None),
ctrl_grad_y: str = Form(None),
+ use_stop_div_ctrl: str = Form(None),
pagination_page_number: str = Form(None)
):
@@ -48,6 +50,7 @@ class UltmarcDoctorSearchModel(RequestBaseModel):
trt_course_name=ctrl_trt_course_name,
alma=ctrl_alma,
grad_y=ctrl_grad_y,
+ use_stop_div=use_stop_div_ctrl,
pagination_page_number=pagination_page_number
)
diff --git a/ecs/jskult-webapp/src/model/view/ultmarc_doctor_info_view_model.py b/ecs/jskult-webapp/src/model/view/ultmarc_doctor_info_view_model.py
index eca9c1f6..687d50ef 100644
--- a/ecs/jskult-webapp/src/model/view/ultmarc_doctor_info_view_model.py
+++ b/ecs/jskult-webapp/src/model/view/ultmarc_doctor_info_view_model.py
@@ -11,7 +11,7 @@ from src.model.db.ultmarc_sosiety import UltmarcSosietyDBModel
from src.model.db.ultmarc_specialist_license import \
UltmarcSpecialistLicenseDBModel
from src.model.db.ultmarc_trt_course import UltmarcDrTrtCourseDBModel
-from src.system_var import environment
+from src.system_var import constants, environment
class UltmarcDoctorInfoViewModel(BaseModel):
@@ -45,36 +45,54 @@ class UltmarcDoctorInfoViewModel(BaseModel):
def is_input_birthday_format(self):
return self._format_date_string(self.doctor_info_data.birthday)
+ # 利用停止区分
+ def is_input_use_stop_div_category_name(self):
+ if not self.doctor_info_data.use_stop_div:
+ return ''
+ return constants.DISPLAY_USER_STOP_DIV.get(self.doctor_info_data.use_stop_div, '')
+
# 開始年月日
def is_input_aply_start_ymd_format(self, aply_start_date: datetime):
- if aply_start_date:
- return self._format_date(aply_start_date)
- else:
+ if not aply_start_date:
return ''
+ return self._format_date(aply_start_date)
# 医師勤務先履歴_開始年月日
def is_input_his_aply_start_ymd_format(self, aply_start_date_string: str):
- if aply_start_date_string:
- try:
- # 医師勤務先履歴の適用開始年月日は文字列型なので、日付に変換してから渡す
- aply_start_date = datetime.strptime(aply_start_date_string, '%Y%m%d')
- except Exception:
- return aply_start_date_string
- return self._format_date(aply_start_date)
- else:
+ if not aply_start_date_string:
return ''
+ try:
+ # 医師勤務先履歴の適用開始年月日は文字列型なので、日付に変換してから渡す
+ aply_start_date = datetime.strptime(aply_start_date_string, '%Y%m%d')
+ except Exception:
+ return aply_start_date_string
+ return self._format_date(aply_start_date)
+
+ # 医師勤務先履歴の適用開始年月日は文字列型なので、日付に変換してから渡す
+ aply_start_date = datetime.strptime(aply_start_date_string, '%Y%m%d')
+ return self._format_date(aply_start_date)
# 医師勤務先履歴_終了年月日
def is_input_his_aply_end_ymd_format(self, aply_end_date_string: str):
- if aply_end_date_string:
- try:
- # 医師勤務先履歴の適用開始年月日は文字列型なので、日付に変換してから渡す
- aply_end_date = datetime.strptime(aply_end_date_string, '%Y%m%d')
- except Exception:
- return aply_end_date_string
- return self._format_date(aply_end_date)
- else:
+ if not aply_end_date_string:
return ''
+ try:
+ # 医師勤務先履歴の適用開始年月日は文字列型なので、日付に変換してから渡す
+ aply_end_date = datetime.strptime(aply_end_date_string, '%Y%m%d')
+ except Exception:
+ return aply_end_date_string
+ return self._format_date(aply_end_date)
+
+ # 医師勤務先履歴の適用開始年月日は文字列型なので、日付に変換してから渡す
+ aply_end_date = datetime.strptime(aply_end_date_string, '%Y%m%d')
+ return self._format_date(aply_end_date)
+
+ # DM不可フラグ
+ def is_input_notdm_flg_name(self, notdm_flg: str):
+ if not notdm_flg:
+ return ''
+ if notdm_flg == '1':
+ return '不可'
def is_input_trt_course_data_size(self):
return len(self.trt_coursed_data)
diff --git a/ecs/jskult-webapp/src/model/view/ultmarc_doctor_search_view_model.py b/ecs/jskult-webapp/src/model/view/ultmarc_doctor_search_view_model.py
index 801b9cec..cecfd77d 100644
--- a/ecs/jskult-webapp/src/model/view/ultmarc_doctor_search_view_model.py
+++ b/ecs/jskult-webapp/src/model/view/ultmarc_doctor_search_view_model.py
@@ -6,7 +6,7 @@ from pydantic import BaseModel
from src.model.db.prefc_master import PrefcMasterModel
from src.model.db.ultmarc_doctor import UltmarcDoctorDBModel
from src.model.request.ultmarc_doctor import UltmarcDoctorSearchModel
-from src.system_var import environment
+from src.system_var import constants, environment
class UltmarcDoctorSearchViewModel(BaseModel):
@@ -112,6 +112,20 @@ class UltmarcDoctorSearchViewModel(BaseModel):
return ''
return self.form_data.grad_y or ''
+ # 利用停止区分
+ def is_checked_use_stop_div(self):
+ if not self.is_form_submitted():
+ return 'checked'
+ return self._checked_value(self.form_data.use_stop_div)
+
+ def is_input_use_stop_div(self):
+ if not self.is_form_submitted():
+ return ''
+ return self.form_data.use_stop_div or ''
+
+ def get_use_stop_div_category_name_short(self):
+ return json.dumps(constants.DISPLAY_USER_STOP_DIV_SHORT, ensure_ascii=False)
+
def disabled_button(self):
return 'disabled' if self.is_data_empty() or self.is_data_overflow_max_length() else ''
@@ -126,3 +140,6 @@ class UltmarcDoctorSearchViewModel(BaseModel):
def _selected_value(self, form_value: str, current_value: str):
return 'selected' if form_value == current_value else ''
+
+ def _checked_value(self, form_value: str):
+ return 'checked' if form_value else ''
diff --git a/ecs/jskult-webapp/src/repositories/ultmarc_doctor_repository.py b/ecs/jskult-webapp/src/repositories/ultmarc_doctor_repository.py
index 9ad3ce16..810f045d 100644
--- a/ecs/jskult-webapp/src/repositories/ultmarc_doctor_repository.py
+++ b/ecs/jskult-webapp/src/repositories/ultmarc_doctor_repository.py
@@ -25,6 +25,7 @@ class UltmarcDoctorRepository(BaseRepository):
com_post.form_post_name,
com_alma.alma,
com_dr.grad_y,
+ com_dr.use_stop_div,
mst_prefc.prefc_name,
com_dr_wrkplace.blng_sec_cd
FROM
@@ -141,6 +142,12 @@ class UltmarcDoctorRepository(BaseRepository):
parameter.grad_y = f'%{parameter.grad_y}%'
where_clauses.append(SQLCondition('grad_y', condition.LIKE, 'grad_y'))
+ # 利用停止区分
+ if is_not_empty(parameter.use_stop_div) is False:
+ # 01・03・04を対象外とする
+ where_clauses.append(SQLCondition(
+ '', '', "(com_dr.use_stop_div NOT IN ('01','03','04') OR com_dr.use_stop_div IS NULL)", literal=True))
+
# 廃業除外
if where_clauses:
where_clauses.append(SQLCondition(
@@ -162,6 +169,7 @@ class UltmarcDoctorRepository(BaseRepository):
com_alma.alma,
com_hometown.hometown,
com_dr.grad_y,
+ com_dr.use_stop_div,
com_dr.drday_y,
com_dr.estab_y
FROM src05.com_dr
diff --git a/ecs/jskult-webapp/src/repositories/ultmarc_dr_wrkplace_his_repository.py b/ecs/jskult-webapp/src/repositories/ultmarc_dr_wrkplace_his_repository.py
index 054c9d74..cd2464cd 100644
--- a/ecs/jskult-webapp/src/repositories/ultmarc_dr_wrkplace_his_repository.py
+++ b/ecs/jskult-webapp/src/repositories/ultmarc_dr_wrkplace_his_repository.py
@@ -16,7 +16,8 @@ class UltmarcDoctorWrkplaceHisRepository(BaseRepository):
univ_post.form_post_name as univ_post_name,
post.form_post_name as post_name,
com_dr_wrkplace_his.aply_start_ymd,
- com_dr_wrkplace_his.aply_end_ymd
+ com_dr_wrkplace_his.aply_end_ymd,
+ com_dr_wrkplace_his.notdm_flg
FROM src05.com_dr
LEFT JOIN src05.com_dr_wrkplace_his ON com_dr.dcf_pcf_dr_cd = com_dr_wrkplace_his.dcf_pcf_dr_cd
LEFT JOIN src05.com_inst ON com_dr_wrkplace_his.dcf_dsf_inst_cd = com_inst.dcf_dsf_inst_cd
diff --git a/ecs/jskult-webapp/src/repositories/ultmarc_dr_wrkplace_repository.py b/ecs/jskult-webapp/src/repositories/ultmarc_dr_wrkplace_repository.py
index 4798c467..0e98f64b 100644
--- a/ecs/jskult-webapp/src/repositories/ultmarc_dr_wrkplace_repository.py
+++ b/ecs/jskult-webapp/src/repositories/ultmarc_dr_wrkplace_repository.py
@@ -16,7 +16,8 @@ class UltmarcDoctorWrkplaceRepository(BaseRepository):
com_blng_sec.blng_sec_name,
univ_post.form_post_name AS univ_post_name,
post.form_post_name AS post_name,
- com_dr_wrkplace.aply_start_ymd
+ com_dr_wrkplace.aply_start_ymd,
+ com_dr_wrkplace.notdm_flg
FROM src05.com_dr
LEFT JOIN src05.com_dr_wrkplace ON com_dr.dcf_pcf_dr_cd = com_dr_wrkplace.dcf_pcf_dr_cd
LEFT JOIN src05.com_inst ON com_dr_wrkplace.dcf_dsf_inst_cd = com_inst.dcf_dsf_inst_cd
diff --git a/ecs/jskult-webapp/src/static/css/bioStyle.css b/ecs/jskult-webapp/src/static/css/bioStyle.css
index 55fea870..1314057c 100644
--- a/ecs/jskult-webapp/src/static/css/bioStyle.css
+++ b/ecs/jskult-webapp/src/static/css/bioStyle.css
@@ -317,25 +317,3 @@ table.tablesorter thead tr .headerSortDown {
table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp {
background-color: #8dbdd8;
}
-
-#loading {
- z-index: 10000;
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- background-color: #FFF;
- overflow-x: hidden;
- overflow-y: auto;
- outline: 0;
- text-align: center;
- display: none;
- opacity: 0.7;
-}
-
-#loading_content {
- position: absolute;
- top: 50%;
- left: 50%;
-}
\ No newline at end of file
diff --git a/ecs/jskult-webapp/src/static/css/loading.css b/ecs/jskult-webapp/src/static/css/loading.css
new file mode 100644
index 00000000..8f081d29
--- /dev/null
+++ b/ecs/jskult-webapp/src/static/css/loading.css
@@ -0,0 +1,21 @@
+._loading {
+ z-index: 10000;
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-color: #FFF;
+ overflow-x: hidden;
+ overflow-y: auto;
+ outline: 0;
+ text-align: center;
+ display: none;
+ opacity: 0.7;
+}
+
+._loading_content {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+}
diff --git a/ecs/jskult-webapp/src/static/css/ultStyle.css b/ecs/jskult-webapp/src/static/css/ultStyle.css
index c0c4649a..036df4a4 100644
--- a/ecs/jskult-webapp/src/static/css/ultStyle.css
+++ b/ecs/jskult-webapp/src/static/css/ultStyle.css
@@ -81,6 +81,7 @@ table{
margin-left: 3%;
margin-top: 0.8%;
margin-bottom: 0.8%;
+ text-align: center;
}
.notFind{
diff --git a/ecs/jskult-webapp/src/static/function/businessLogicScript.js b/ecs/jskult-webapp/src/static/function/businessLogicScript.js
index 56d971e4..1ca36656 100644
--- a/ecs/jskult-webapp/src/static/function/businessLogicScript.js
+++ b/ecs/jskult-webapp/src/static/function/businessLogicScript.js
@@ -1,8 +1,75 @@
+// ローディング
+
+/**
+ * ローディングクラス
+ * @param {string} loading_elem_id ローディングのHTML要素
+ */
+class Loading {
+ constructor(loadingElemId = '_loading') {
+ this.loadingElemId = loadingElemId;
+ // ロード中かどうか
+ this.isLoading = false;
+ }
+
+ /**
+ * ローディングを開始する。
+ * 開始済みの場合と、ローディングの要素が見つからない場合は何もしない。
+ */
+ start() {
+ if (this.isLoading)
+ return;
+
+ const loadingElem = document.getElementById(this.loadingElemId);
+
+ if (loadingElem) {
+ this.isLoading = true;
+ loadingElem.style.display = 'block';
+ }
+ }
+
+ /**
+ * ローディングを停止する。
+ * 開始されていない場合と、ローディングの要素が見つからない場合は何もしない。
+ */
+ stop() {
+ if (!this.isLoading)
+ return;
+
+ const loadingElem = document.getElementById(this.loadingElemId);
+
+ if (loadingElem) {
+ this.isLoading = false;
+ loadingElem.style.display = 'none';
+ }
+ }
+}
+
+
+/**
+ * ローダーを表示する
+ * @param {string} loadingElemId ローディング要素のID
+ */
+function showLoading(loadingElemId = '_loading') {
+ const loading = new Loading(loadingElemId);
+ loading.start();
+}
+
+// 汎用画面遷移
+
+function transitionTo(link){
+ // ローディング表示
+ showLoading();
+ location.href = link;
+ return false;
+}
+
// 検索フォーム
// 戻るボタンの関数
// 機能概要:メニュー画面に遷移する
function backToMenu(){
+ // ローディング表示
+ showLoading();
location.href = "/menu/";
}
@@ -16,7 +83,7 @@ function clr() {
if (formInput.name.startsWith('ctrl_')) {
formInput.value = "";
}
- if(formInput.name == 'ikoFlg' || formInput.name == 'delFlg_ctrl'){
+ if (formInput.type === 'checkbox') {
formInput.checked = false;
}
}
@@ -224,8 +291,10 @@ function checkNumberOnlyForm($this)
// メニューへボタンの関数
// 機能概要:マスターメンテメニュー画面に遷移する
-function backToMainteMenu(){
+function backToMainteMenu(loadingElemId = '_loading'){
sessionStorage.clear();
+ // ローディング表示
+ showLoading(loadingElemId);
location.href = "/masterMainte/masterMainteMenu";
}
diff --git a/ecs/jskult-webapp/src/system_var/constants.py b/ecs/jskult-webapp/src/system_var/constants.py
index e421bd70..3756facb 100644
--- a/ecs/jskult-webapp/src/system_var/constants.py
+++ b/ecs/jskult-webapp/src/system_var/constants.py
@@ -194,3 +194,16 @@ MENTE_CSV_DOWNLOAD_FILE_NAME = 'instEmpData.csv'
# CSVアップロードの制限サイズ=20MB
MENTE_CSV_UPLOAD_MAX_FILE_SIZE_BYTE = 20971520
+
+# 利用停止区分
+DISPLAY_USER_STOP_DIV = {
+ '01': '全面的に利用停止',
+ '03': '特定の項目について利用停止',
+ '04': '全てのDM等利用停止'
+}
+
+DISPLAY_USER_STOP_DIV_SHORT = {
+ '01': '全面停止',
+ '03': '特定項目停止',
+ '04': '全DM停止'
+}
diff --git a/ecs/jskult-webapp/src/templates/_header.html b/ecs/jskult-webapp/src/templates/_header.html
index 01a1521a..c2476734 100644
--- a/ecs/jskult-webapp/src/templates/_header.html
+++ b/ecs/jskult-webapp/src/templates/_header.html
@@ -8,6 +8,7 @@
+
diff --git a/ecs/jskult-webapp/src/templates/_loading.html b/ecs/jskult-webapp/src/templates/_loading.html
new file mode 100644
index 00000000..437c7e50
--- /dev/null
+++ b/ecs/jskult-webapp/src/templates/_loading.html
@@ -0,0 +1,5 @@
+