Merge branch 'develop' into feature-NEWDWH2021-1182-backend

This commit is contained in:
shimoda.m@nds-tyo.co.jp 2023-08-21 18:17:39 +09:00
commit d848719bfd
28 changed files with 310 additions and 102 deletions

View File

@ -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]

View File

@ -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]

View File

@ -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]

View File

@ -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]

View File

@ -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
)

View File

@ -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)

View File

@ -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 ''

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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%;
}

View 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%;
}

View File

@ -81,6 +81,7 @@ table{
margin-left: 3%;
margin-top: 0.8%;
margin-bottom: 0.8%;
text-align: center;
}
.notFind{

View File

@ -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";
}

View File

@ -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停止'
}

View File

@ -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>

View 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>

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>