Merge branch 'develop' into feature-NEWDWH2021-1182-backend
This commit is contained in:
commit
d848719bfd
@ -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]
|
||||
|
||||
@ -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]
|
||||
|
||||
@ -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]
|
||||
|
||||
@ -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]
|
||||
|
||||
@ -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
|
||||
)
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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 ''
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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%;
|
||||
}
|
||||
21
ecs/jskult-webapp/src/static/css/loading.css
Normal file
21
ecs/jskult-webapp/src/static/css/loading.css
Normal file
@ -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%;
|
||||
}
|
||||
@ -81,6 +81,7 @@ table{
|
||||
margin-left: 3%;
|
||||
margin-top: 0.8%;
|
||||
margin-bottom: 0.8%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.notFind{
|
||||
|
||||
@ -1,8 +1,75 @@
|
||||
// ローディング
|
||||
|
||||
/**
|
||||
* ローディングクラス
|
||||
* @param {string} loading_elem_id ローディングのHTML要素
|
||||
*/
|
||||
class Loading {
|
||||
constructor(loadingElemId = '_loading') {
|
||||
this.loadingElemId = loadingElemId;
|
||||
// ロード中かどうか
|
||||
this.isLoading = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* ローディングを開始する。<br>
|
||||
* 開始済みの場合と、ローディングの要素が見つからない場合は何もしない。
|
||||
*/
|
||||
start() {
|
||||
if (this.isLoading)
|
||||
return;
|
||||
|
||||
const loadingElem = document.getElementById(this.loadingElemId);
|
||||
|
||||
if (loadingElem) {
|
||||
this.isLoading = true;
|
||||
loadingElem.style.display = 'block';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* ローディングを停止する。<br>
|
||||
* 開始されていない場合と、ローディングの要素が見つからない場合は何もしない。
|
||||
*/
|
||||
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";
|
||||
}
|
||||
|
||||
|
||||
@ -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停止'
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css">
|
||||
<link rel="stylesheet" href="/static/css/pagenation.css">
|
||||
<link rel="stylesheet" href="/static/css/datepicker.css">
|
||||
<link rel="stylesheet" href="/static/css/loading.css">
|
||||
<script src="https://code.jquery.com/jquery-3.6.3.min.js" integrity="sha256-pvPw+upLPUjgMXY0G+8O0xUf+/Im1MZjXxxgOcBQBXU=" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js" integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN" crossorigin="anonymous"></script>
|
||||
<script src="https://pagination.js.org/dist/2.5.0/pagination.min.js" crossorigin="anonymous"></script>
|
||||
|
||||
5
ecs/jskult-webapp/src/templates/_loading.html
Normal file
5
ecs/jskult-webapp/src/templates/_loading.html
Normal file
@ -0,0 +1,5 @@
|
||||
<div class="_loading" id="{{id or '_loading'}}">
|
||||
<div class="_loading_content">
|
||||
<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>{{progress_message}}
|
||||
</div>
|
||||
</div>
|
||||
@ -198,10 +198,12 @@
|
||||
<input type="checkbox" name="ikoFlg" value="true" {{bio.is_checked_iko_flg()}} style="display: none;">
|
||||
</form>
|
||||
|
||||
<!-- CSV/Excelダウンロードボタン。ここはajaxでやってる -->
|
||||
<!-- CSV/Excelダウンロード処理-->
|
||||
<script type="text/javascript">
|
||||
function download(filename, ext) {
|
||||
$(`#loading`).toggle()
|
||||
// ローディング開始
|
||||
const loading = new Loading();
|
||||
loading.start();
|
||||
|
||||
// 検索パラメータを取得
|
||||
const formData = $('#bio_download').serializeArray()
|
||||
@ -237,7 +239,8 @@
|
||||
}
|
||||
// S3の期限付き署名URLがレスポンスされる
|
||||
window.location.href = data.download_url;
|
||||
$(`#loading`).toggle();
|
||||
// ローディング停止
|
||||
loading.stop();
|
||||
$(`#modal_${ext}`).modal('toggle');
|
||||
} catch (e) {
|
||||
alert("エラーが発生しました。:" + e.message);
|
||||
@ -246,20 +249,20 @@
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
const responseJson = jqXHR.responseJSON
|
||||
if (responseJson?.detail?.error === 'db_error') {
|
||||
$(`#loading`).toggle();
|
||||
loading.stop()
|
||||
$(`#modal_${ext}`).modal('toggle');
|
||||
$(`#ErrorModal_DB`).modal('toggle');
|
||||
return
|
||||
}
|
||||
if (responseJson?.detail?.error === 'aws_error') {
|
||||
$(`#loading`).toggle();
|
||||
loading.stop();
|
||||
$(`#modal_${ext}`).modal('toggle');
|
||||
$(`#ErrorModal_AWS`).modal('toggle');
|
||||
return
|
||||
}
|
||||
|
||||
// 予期せぬエラーが発生した場合
|
||||
$(`#loading`).toggle();
|
||||
loading.stop();
|
||||
$(`#modal_${ext}`).modal('toggle');
|
||||
$(`#ErrorModal_Unexpected`).modal('toggle');
|
||||
return
|
||||
|
||||
@ -45,7 +45,7 @@
|
||||
<!-- 上部のボタン -->
|
||||
<table class="instHeaderTable">
|
||||
<tr>
|
||||
<form id="instInfo" name="instInfo" method="post" action="/ultmarc/docInfo">
|
||||
<form id="instInfo" name="instInfo" method="post" action="/ultmarc/docInfo" onsubmit="showLoading()">
|
||||
<input type="hidden" name="doc_id" value="{{ultmarc.doc_id}}">
|
||||
<input type="hidden" name="page_num" id="page_num" value="{{ultmarc.page_num}}">
|
||||
<td class="instHeaderTd">
|
||||
@ -58,7 +58,7 @@
|
||||
<input type="button" name="next" id="next" value="次" class="transitionBt" {{ultmarc.is_disabled_next()}}>
|
||||
</td>
|
||||
</form>
|
||||
<form id="instSearch" name="instSearch" method="post" action="/ultmarc/docSearch">
|
||||
<form id="instSearch" name="instSearch" method="post" action="/ultmarc/docSearch" onsubmit="showLoading()">
|
||||
<script>
|
||||
var form = document.getElementById("instSearch");
|
||||
for (var i = 0, length = sessionStorage.length; i < length; ++i) {
|
||||
@ -94,6 +94,8 @@
|
||||
<td><input type="text" readonly="readonly" value="{{ultmarc.doctor_info_data.sex or ''}}"></td>
|
||||
<td>生年月日:</td>
|
||||
<td><input type="text" readonly="readonly" value="{{ultmarc.is_input_birthday_format()}}"></td>
|
||||
<td>利用停止区分:</td>
|
||||
<td><input type="text" readonly="readonly" value="{{ultmarc.is_input_use_stop_div_category_name()}}"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6" class="docInfoTd">
|
||||
@ -185,19 +187,21 @@
|
||||
<th>職位</th>
|
||||
<th>開始年月日</th>
|
||||
<th>終了年月日</th>
|
||||
<th>DM不可</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<script>
|
||||
function OnLinkClick(){
|
||||
function transitionWithClearSearchItem(link) {
|
||||
sessionStorage.clear();
|
||||
return true;
|
||||
transitionTo(link)
|
||||
return false;
|
||||
}
|
||||
</script>
|
||||
<tbody>
|
||||
{% for doctor_wrkplace_data in ultmarc.doctor_wrkplace_data %}
|
||||
{% if doctor_wrkplace_data.dcf_dsf_inst_cd %}
|
||||
<tr>
|
||||
<td><a href="/ultmarc/instInfo?id={{doctor_wrkplace_data.dcf_dsf_inst_cd or ''}}" onclick="OnLinkClick();">
|
||||
<td><a href="javascript:void(0);" onclick="transitionWithClearSearchItem('/ultmarc/instInfo?id={{doctor_wrkplace_data.dcf_dsf_inst_cd}}');">
|
||||
{{doctor_wrkplace_data.dcf_dsf_inst_cd or ''}}</a></td>
|
||||
<td>{{doctor_wrkplace_data.inst_name_kanji or ''}}</td>
|
||||
<td>{{doctor_wrkplace_data.blng_sec_name or ''}}</td>
|
||||
@ -205,13 +209,14 @@
|
||||
<td>{{doctor_wrkplace_data.post_name or ''}}</td>
|
||||
<td>{{ultmarc.is_input_aply_start_ymd_format(doctor_wrkplace_data.aply_start_ymd)}}</td>
|
||||
<td>9999/99/99</td>
|
||||
<td>{{ultmarc.is_input_notdm_flg_name(doctor_wrkplace_data.notdm_flg)}}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% for doctor_wrkplace_his_data in ultmarc.doctor_wrkplace_his_data %}
|
||||
{% if doctor_wrkplace_his_data.dcf_dsf_inst_cd %}
|
||||
<tr>
|
||||
<td><a href="/ultmarc/instInfo?id={{doctor_wrkplace_his_data.dcf_dsf_inst_cd or ''}}" onclick="OnLinkClick();">
|
||||
<td><a href="javascript:void(0);" onclick="transitionWithClearSearchItem('/ultmarc/instInfo?id={{doctor_wrkplace_his_data.dcf_dsf_inst_cd}}');">
|
||||
{{doctor_wrkplace_his_data.dcf_dsf_inst_cd or ''}}</a></td>
|
||||
<td>{{doctor_wrkplace_his_data.inst_name_kanji or ''}}</td>
|
||||
<td>{{doctor_wrkplace_his_data.blng_sec_name or ''}}</td>
|
||||
@ -219,12 +224,16 @@
|
||||
<td>{{doctor_wrkplace_his_data.post_name or ''}}</td>
|
||||
<td>{{ultmarc.is_input_his_aply_start_ymd_format(doctor_wrkplace_his_data.aply_start_ymd)}}</td>
|
||||
<td>{{ultmarc.is_input_his_aply_end_ymd_format(doctor_wrkplace_his_data.aply_end_ymd)}}</td>
|
||||
<td>{{ultmarc.is_input_notdm_flg_name(doctor_wrkplace_his_data.notdm_flg)}}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- ローディング -->
|
||||
{% with progress_message = ''%}
|
||||
{% include '_loading.html' %}
|
||||
{% endwith %}
|
||||
</body>
|
||||
</html>
|
||||
@ -35,7 +35,7 @@
|
||||
<td class="docHeaderTd docHeaderTdRight"><button class="docHeader_bt" onclick="backToMenu()">メニューへ</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
<form id="doctor_search" class="_form" name="search" action="/ultmarc/docSearch" method="POST">
|
||||
<form id="doctor_search" class="_form" name="search" action="/ultmarc/docSearch" method="POST" onsubmit="showLoading()">
|
||||
<table class="docSearchTableDivTwo">
|
||||
<tbody>
|
||||
<tr>
|
||||
@ -105,9 +105,12 @@
|
||||
value="{{ultmarc.is_input_alma()}}" oninput="formBtDisabled()">
|
||||
</td>
|
||||
<td class="docSearchColumnTd">卒年:</td>
|
||||
<td class="docSearchTextboxTd"><input class="text docSearchTextbox" style="ime-mode:disabled;" type="text" name="ctrl_grad_y"
|
||||
<td class="docSearchTextboxTd">
|
||||
<input class="text docSearchTextbox" style="ime-mode:disabled;" type="text" name="ctrl_grad_y"
|
||||
value="{{ultmarc.is_input_grad_y()}}" maxlength='4' oninput="formBtDisabled()"></td>
|
||||
<td class="search_btTd" colspan="2">
|
||||
<td class="docSearchColumnTd"><label><input type="checkbox" name="use_stop_div_ctrl" value="true"
|
||||
{{ultmarc.is_checked_use_stop_div()}}> 利用停止区分を含む</label></td>
|
||||
<td class="search_btTd">
|
||||
<input class="text ult_bt search_bt" id="clear" type="button" name="clear_bt" value="クリア" onclick="clr();">
|
||||
<input class="ult_bt search_bt" id="search_bt" name="search_bt" value="検索" type="submit">
|
||||
</td>
|
||||
@ -140,6 +143,7 @@
|
||||
<th>役職名</th>
|
||||
<th>出身大学</th>
|
||||
<th>卒年</th>
|
||||
<th>利用停止区分</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="result_data" class="result_data"></tbody>
|
||||
@ -180,6 +184,7 @@
|
||||
sessionStorage.setItem('ctrl_trt_course_name','{{ultmarc.is_input_trt_course_name()}}');
|
||||
sessionStorage.setItem('ctrl_alma','{{ultmarc.is_input_alma()}}');
|
||||
sessionStorage.setItem('ctrl_grad_y','{{ultmarc.is_input_grad_y()}}');
|
||||
sessionStorage.setItem('use_stop_div_ctrl','{{ultmarc.is_input_use_stop_div()}}');
|
||||
|
||||
// ページネーションのページ番号取得
|
||||
let pagination_page_number = Number('{{ultmarc.init_pagination_page_number()}}');
|
||||
@ -213,13 +218,16 @@
|
||||
// ページ送りしたときにヘッダがずれるのを修正
|
||||
FixedMidashi.remove();
|
||||
FixedMidashi.create();
|
||||
// ページ送りしたときに医師情報ボタンを非活性化
|
||||
resultBtDisabled();
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
function OnLinkClick(){
|
||||
function transitionWithClearSearchItem(link) {
|
||||
sessionStorage.clear();
|
||||
return true;
|
||||
transitionTo(link)
|
||||
return false;
|
||||
}
|
||||
|
||||
function pagination_content(datas) {
|
||||
@ -231,15 +239,19 @@
|
||||
'trt_course_name',
|
||||
'form_post_name',
|
||||
'alma',
|
||||
'grad_y'
|
||||
'grad_y',
|
||||
'use_stop_div'
|
||||
];
|
||||
const useStopDivCategoryName = JSON.parse('{{ultmarc.get_use_stop_div_category_name_short()|safe}}');
|
||||
return datas.map(function (data) {
|
||||
let td = display_keys.map((key) =>{
|
||||
let inner_content = data[key];
|
||||
if(key=='dcf_pcf_dr_cd')
|
||||
inner_content = `<a href="/ultmarc/docInfo?id=${data['dcf_pcf_dr_cd']}">${data['dcf_pcf_dr_cd'] || ''}</a>`;
|
||||
if(key=='dcf_dsf_inst_cd')
|
||||
else if(key=='dcf_dsf_inst_cd')
|
||||
inner_content = `<a href="/ultmarc/instInfo?id=${data['dcf_dsf_inst_cd']}" onclick="OnLinkClick()">${data['form_inst_name_kanji'] || ''}</a>`;
|
||||
else if(key=='use_stop_div')
|
||||
inner_content = useStopDivCategoryName[inner_content] || '';
|
||||
return `<td>${inner_content || ''}</td>`
|
||||
});
|
||||
return `
|
||||
@ -287,7 +299,13 @@
|
||||
vals.push( $(this).val() ); // 配列に値を追加
|
||||
});
|
||||
$("#doc_id").val(vals.join(','));
|
||||
// ローダー表示
|
||||
showLoading();
|
||||
}
|
||||
</script>
|
||||
<!-- ローディング -->
|
||||
{% with progress_message = ''%}
|
||||
{% include '_loading.html' %}
|
||||
{% endwith %}
|
||||
</body>
|
||||
</html>
|
||||
@ -29,7 +29,7 @@
|
||||
function Form_Submit_Disp_Dialog(){
|
||||
var msg = 'CSVファイルを出力しますか?';
|
||||
if (confirmDialog(msg)) {
|
||||
document.getElementById("loading").style.display = "block";
|
||||
showLoading();
|
||||
document.getElementById("csvOutputMsg").style.display = "none";
|
||||
} else {
|
||||
return false;
|
||||
@ -45,7 +45,7 @@
|
||||
<table class="headerTable">
|
||||
<tr>
|
||||
<td class="headerTdLeft"><h1>施設担当者データCSVダウンロード</h1></td>
|
||||
<td class="headerTdRight"><input type="button" name="back" class="header_buttonSize" value="メニューへ" onclick="backToMainteMenu()"></td>
|
||||
<td class="headerTdRight"><input type="button" name="back" class="header_buttonSize" value="メニューへ" onclick="backToMainteMenu('_loading_for_back')"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</h1>
|
||||
@ -179,9 +179,14 @@
|
||||
<div id="csvOutputMsg" class="csvOutputMessage">{{mainte_csv_dl.result_msg}}</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<div id="loading" class="csvOutputMessage" style="display:none;">
|
||||
<p>処理中...<br>しばらくお待ち下さい。</p>
|
||||
</div>
|
||||
</p>
|
||||
<!-- ダウンロード用 -->
|
||||
{% with progress_message = '処理中...しばらくお待ち下さい。'%}
|
||||
{% include '_loading.html' %}
|
||||
{% endwith %}
|
||||
<!-- 戻るボタン用 -->
|
||||
{% with progress_message = '', id = '_loading_for_back' %}
|
||||
{% include '_loading.html' %}
|
||||
{% endwith %}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@ -36,7 +36,7 @@
|
||||
var element = document.getElementById("upload_form")
|
||||
sessionStorage.setItem("ctrl_select_function", element.ctrl_select_function.value);
|
||||
sessionStorage.setItem("ctrl_select_table", element.ctrl_select_table.value);
|
||||
document.getElementById("loading").style.display = "block";
|
||||
showLoading();
|
||||
if (document.getElementById("ulMsg") !== null) {
|
||||
document.getElementById("ulMsg").style.display = "none";
|
||||
}
|
||||
@ -45,7 +45,7 @@
|
||||
function Form_Submit_Disp_Dialog(){
|
||||
var msg = '{{ mainte_csv_up.select_function_message }}';
|
||||
if (confirmDialog(msg)) {
|
||||
document.getElementById("loading").style.display = "block";
|
||||
showLoading();
|
||||
if (document.getElementById("ulMsg") !== null) {
|
||||
document.getElementById("ulMsg").style.display = "none";
|
||||
}
|
||||
@ -66,7 +66,7 @@
|
||||
{% if mainte_csv_up.is_verified and mainte_csv_up.is_error_message_list_empty() %}
|
||||
<input type="button" class="header_buttonSize" onclick="location.href='/masterMainte/instEmpCsvUL' " value="戻る">
|
||||
{% else %}
|
||||
<input type="button" class="header_buttonSize" onclick="backToMainteMenu()" value="メニューへ" />
|
||||
<input type="button" class="header_buttonSize" onclick="backToMainteMenu('_loading_for_back')" value="メニューへ" />
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
@ -165,9 +165,6 @@
|
||||
</form>
|
||||
<p>
|
||||
<!-- 処理中メッセージ表示 -->
|
||||
<div id="loading" class="csvOutputMessage" style="display:none;">
|
||||
<p>処理中...<br>しばらくお待ち下さい。</p>
|
||||
</div>
|
||||
{% if not mainte_csv_up.is_error_message_list_empty() %}
|
||||
<div id="ulMsg" class="footerMsg errorColor">
|
||||
{% for error_message in mainte_csv_up.error_message_list %}
|
||||
@ -203,5 +200,14 @@
|
||||
</div>
|
||||
{% endif %}
|
||||
</p>
|
||||
<!-- ローディング -->
|
||||
<!-- 登録処理用 -->
|
||||
{% with progress_message = '処理中...しばらくお待ち下さい。'%}
|
||||
{% include '_loading.html' %}
|
||||
{% endwith %}
|
||||
<!-- 戻るボタン用 -->
|
||||
{% with progress_message = '', id = '_loading_for_back' %}
|
||||
{% include '_loading.html' %}
|
||||
{% endwith %}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@ -41,13 +41,14 @@
|
||||
<!-- 上部のボタン -->
|
||||
<table class="instHeaderTable">
|
||||
<tr>
|
||||
<form name="docSearch" method="post" action="/ultmarc/docSearch">
|
||||
<form name="docSearch" method="post" action="/ultmarc/docSearch" onsubmit="showLoading()">
|
||||
<td class="instHeaderTd">
|
||||
<input type="hidden" name="ctrl_dcf_dsf_inst_cd" value="{{ultmarc.inst_info_data.dcf_dsf_inst_cd or ''}}">
|
||||
<input type="hidden" name="use_stop_div_ctrl" value="true">
|
||||
<input name="docSearchBt" class="transitionBt" type="submit" value="勤務医師" {{ultmarc.is_disabled_doctor_wrkplace()}}>
|
||||
</td>
|
||||
</form>
|
||||
<form id="instInfo" name="instInfo" method="post" action="/ultmarc/instInfo">
|
||||
<form id="instInfo" name="instInfo" method="post" action="/ultmarc/instInfo" onsubmit="showLoading()">
|
||||
<input type="hidden" name="inst_id" value="{{ultmarc.inst_id}}">
|
||||
<input type="hidden" name="page_num" id="page_num" value="{{ultmarc.page_num}}">
|
||||
<td class="instHeaderTd">
|
||||
@ -86,6 +87,8 @@
|
||||
}else{
|
||||
$('#instSearch').attr('method', 'POST');
|
||||
}
|
||||
// ローディングを表示
|
||||
showLoading();
|
||||
return true;
|
||||
}
|
||||
</script>
|
||||
@ -283,5 +286,9 @@
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<!-- ローディング -->
|
||||
{% with progress_message = ''%}
|
||||
{% include '_loading.html' %}
|
||||
{% endwith %}
|
||||
</body>
|
||||
</html>
|
||||
@ -37,7 +37,7 @@
|
||||
</tr>
|
||||
</table>
|
||||
<!-- 入力フォーム -->
|
||||
<form id="inst_search" class="_form" name="search" action="/ultmarc/instSearch" method="POST">
|
||||
<form id="inst_search" class="_form" name="search" action="/ultmarc/instSearch" method="POST" onsubmit="showLoading()">
|
||||
<table class="search_table">
|
||||
<tbody>
|
||||
<tr>
|
||||
@ -211,6 +211,8 @@
|
||||
// ページ送りしたときにヘッダがずれるのを修正
|
||||
FixedMidashi.remove();
|
||||
FixedMidashi.create();
|
||||
// ページ送りしたときに施設情報ボタンを非活性化
|
||||
resultBtDisabled();
|
||||
}
|
||||
})
|
||||
});
|
||||
@ -232,7 +234,7 @@
|
||||
let td = display_keys.map((key) =>{
|
||||
let inner_content = data[key];
|
||||
if(key=='dcf_dsf_inst_cd')
|
||||
inner_content = `<a href="/ultmarc/instInfo?id=${data['dcf_dsf_inst_cd']}">${data['dcf_dsf_inst_cd'] || ''}</a>`;
|
||||
inner_content = `<a href="javascript:void(0);" onclick="transitionTo('/ultmarc/instInfo?id=${data['dcf_dsf_inst_cd']}')">${data['dcf_dsf_inst_cd'] || ''}</a>`;
|
||||
if(key=='abolish_ymd' && data[key] != null)
|
||||
inner_content = '削除';
|
||||
return `<td>${inner_content || ''}</td>`
|
||||
@ -281,9 +283,14 @@
|
||||
vals.push( $(this).val() ); // 配列に値を追加
|
||||
});
|
||||
$("#inst_id").val(vals.join(','));
|
||||
// ローダー表示
|
||||
showLoading();
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
</body>
|
||||
<!-- ローディング -->
|
||||
{% with progress_message = ''%}
|
||||
{% include '_loading.html' %}
|
||||
{% endwith %}
|
||||
</html>
|
||||
@ -13,7 +13,7 @@
|
||||
Mainte Login
|
||||
</h1>
|
||||
<br><br>
|
||||
<form name="login" class="text-center" method="post" action="/login/maintlogin">
|
||||
<form name="login" class="text-center" method="post" action="/login/maintlogin" onsubmit="showLoading()">
|
||||
<div class="form-group">
|
||||
<input type="text" name="ctrl_username" maxlength='10' style="ime-mode:disabled;" placeholder="UserID" class="form_login" onchange="formBtDisabled('login_button', 'login', true)">
|
||||
<input type="password" name="ctrl_password" style="ime-mode:disabled;" placeholder="Password" class="form_login" onchange="formBtDisabled('login_button', 'login', true)" onkeyup="formBtDisabled('login_button', 'login', true)" oninput="checkPassForm(this)">
|
||||
@ -21,5 +21,9 @@
|
||||
<input type="submit" id="login_button" name="login" class="btn btn-info btn-lg btn_width" id="submit" value="Login">
|
||||
</form>
|
||||
</div>
|
||||
<!-- ローディング -->
|
||||
{% with progress_message = ''%}
|
||||
{% include '_loading.html' %}
|
||||
{% endwith %}
|
||||
</body>
|
||||
</html>
|
||||
@ -10,16 +10,17 @@
|
||||
<h1>MeDaCA<br/>マスターメンテメニュー</h1>
|
||||
<br><br>
|
||||
<!-- 施設担当者データCSVアップロード -->
|
||||
<a href="/masterMainte/instEmpCsvUL" class="btn btn-primary btn-lg btn_width">施設担当者データCSVアップロード</a><br><br>
|
||||
|
||||
<a href="javascript:void(0);" onclick="transitionTo('/masterMainte/instEmpCsvUL')" class="btn btn-primary btn-lg btn_width">施設担当者データCSVアップロード</a><br><br>
|
||||
<!-- 施設担当者データCSVダウンロード -->
|
||||
<a href="/masterMainte/instEmpCsvDL" class="btn btn-primary btn-lg btn_width">施設担当者データCSVダウンロード</a><br><br>
|
||||
|
||||
<a href="javascript:void(0);" onclick="transitionTo('/masterMainte/instEmpCsvDL')" class="btn btn-primary btn-lg btn_width">施設担当者データCSVダウンロード</a><br><br>
|
||||
<!-- データ上書きコピー -->
|
||||
<a href="/masterMainte/tableOverride" class="btn btn-primary btn-lg btn_width">テーブル上書きコピー</a><br><br>
|
||||
|
||||
<a href="javascript:void(0);" onclick="transitionTo('/masterMainte/tableOverride')" class="btn btn-primary btn-lg btn_width">テーブル上書きコピー</a><br><br>
|
||||
<!-- 機能メニューへ -->
|
||||
<br><br><a href="/menu/" class="btn btn-info btn-lg btn_width">メニューへ</a>
|
||||
<br><br><a href="javascript:void(0);" onclick="transitionTo('/menu/')" class="btn btn-info btn-lg btn_width">メニューへ</a>
|
||||
</div>
|
||||
<!-- ローディング -->
|
||||
{% with progress_message = ''%}
|
||||
{% include '_loading.html' %}
|
||||
{% endwith %}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@ -11,14 +11,14 @@
|
||||
<h1>MeDaCA<br/>機能メニュー</h1>
|
||||
<br><br>
|
||||
{% if menu.is_available_ult_doctor_menu() %}
|
||||
<a href="/ultmarc/docSearch" class="btn btn-primary btn-lg btn_width">Ultmarc照会(医師)</a><br><br>
|
||||
<a href="javascript:void(0);" onclick="transitionTo('/ultmarc/docSearch')" class="btn btn-primary btn-lg btn_width">Ultmarc照会(医師)</a><br><br>
|
||||
{% endif %}
|
||||
{% if menu.is_available_ult_inst_menu() %}
|
||||
<a href="/ultmarc/instSearch" class="btn btn-primary btn-lg btn_width">Ultmarc照会(施設)</a><br><br>
|
||||
<a href="javascript:void(0);" onclick="transitionTo('/ultmarc/instSearch')" class="btn btn-primary btn-lg btn_width">Ultmarc照会(施設)</a><br><br>
|
||||
{% endif %}
|
||||
{% if menu.is_available_bio_menu() %}
|
||||
{% if not menu.is_batch_processing() %}
|
||||
<a href="/bio/BioSearchList" class="btn btn-primary btn-lg btn_width">生物由来データ参照</a><br><br>
|
||||
<a href="javascript:void(0);" onclick="transitionTo('/bio/BioSearchList')" class="btn btn-primary btn-lg btn_width">生物由来データ参照</a><br><br>
|
||||
{% else %}
|
||||
<div class="notUseBioMsg">生物由来データ参照は <br> 日次バッチ処理中のため利用出来ません</div>
|
||||
{% endif %}
|
||||
@ -29,10 +29,14 @@
|
||||
{% elif menu.is_backup_processing() %}
|
||||
<div class="notUseMainteMsg"> バックアップ取得を開始しました。 <br>日次バッチ更新が終了するまでマスターメンテメニューは利用できません</div>
|
||||
{% else %}
|
||||
<a href="/masterMainte/masterMainteMenu" class="btn btn-primary btn-lg btn_width">マスターメンテメニュー</a><br><br>
|
||||
<a href="javascript:void(0);" onclick="transitionTo('/masterMainte/masterMainteMenu')" class="btn btn-primary btn-lg btn_width">マスターメンテメニュー</a><br><br>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<br><br><a href="/logout/?reason=do_logout" class="btn btn-info btn-lg btn_width">Logout</a>
|
||||
<br><br><a href="javascript:void(0);" onclick="transitionTo('/logout/?reason=do_logout')" class="btn btn-info btn-lg btn_width">Logout</a>
|
||||
</div>
|
||||
<!-- ローディング -->
|
||||
{% with progress_message = ''%}
|
||||
{% include '_loading.html' %}
|
||||
{% endwith %}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
function Form_Submit_Disp_Dialog(){
|
||||
var msg = "ダミー従業員担当施設マスタのデータがすべて上書きされます。よろしいですか?"
|
||||
if (confirmDialog(msg)) {
|
||||
document.getElementById("loading").style.display = "block";
|
||||
showLoading();
|
||||
document.getElementById("overRided").style.display = "none";
|
||||
} else {
|
||||
return false;
|
||||
@ -25,7 +25,7 @@
|
||||
<table class="headerTable">
|
||||
<tr>
|
||||
<td class="headerTdLeft"><h1>テーブル上書きコピー</h1></td>
|
||||
<td class="headerTdRight"><input type="button" name="back" class="header_buttonSize" value="メニューへ" onclick="backToMainteMenu()"></td>
|
||||
<td class="headerTdRight"><input type="button" name="back" class="header_buttonSize" value="メニューへ" onclick="backToMainteMenu('_loading_for_back')"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</h1>
|
||||
@ -53,9 +53,13 @@
|
||||
<div id="overRided" class="csvOutputMessage">ダミー従業員担当施設マスタのデータを本番従業員担当施設マスタのデータで上書きしました</div>
|
||||
</p>
|
||||
{% endif %}
|
||||
<div id="loading" class="csvOutputMessage" style="display:none;">
|
||||
<p>データ上書き中...<br>しばらくお待ち下さい。</p>
|
||||
</div>
|
||||
|
||||
<!-- 上書き用 -->
|
||||
{% with progress_message = 'データ上書き中...しばらくお待ち下さい。'%}
|
||||
{% include '_loading.html' %}
|
||||
{% endwith %}
|
||||
<!-- 戻るボタン用 -->
|
||||
{% with progress_message = '', id = '_loading_for_back' %}
|
||||
{% include '_loading.html' %}
|
||||
{% endwith %}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user