医師検索画面の側だけ

This commit is contained in:
野間 2023-05-30 14:34:50 +09:00
parent 5a92b2c263
commit 87364d7e83
6 changed files with 1569 additions and 2 deletions

View File

@ -0,0 +1,90 @@
from typing import Optional
from fastapi import APIRouter, Depends, HTTPException, Request
from fastapi.exceptions import HTTPException
from starlette import status
from src.depends.services import get_service
from src.model.internal.session import UserSession
from src.model.request.bio import BioModel
from src.model.view.bio_view_model import BioViewModel
from src.router.session_router import AuthenticatedRoute
from src.services.batch_status_service import BatchStatusService
from src.services.bio_view_service import BioViewService
from src.services.session_service import set_session
from src.system_var import constants
from src.templates import templates
router = APIRouter()
router.route_class = AuthenticatedRoute
#########################
# Views #
#########################
@router.get('/docSearch')
def ultmarc_view(
request: Request,
# batch_status_service:BatchStatusService=Depends(get_service(BatchStatusService)),
# bio_service: BioViewService=Depends(get_service(BioViewService))
):
session: UserSession = request.session
# バッチ処理中の場合、機能を利用させない
# if batch_status_service.is_batch_processing():
# raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=constants.LOGOUT_REASON_BATCH_PROCESSING)
# # 検索項目の取得
# bio = bio_service.prepare_bio_view(session)
# セッション書き換え
session.update(
actions=[
UserSession.last_access_time.set(UserSession.new_last_access_time()),
UserSession.record_expiration_time.set(UserSession.new_record_expiration_time()),
]
)
session_key = set_session(session)
templates_response = templates.TemplateResponse(
'docSearch.html', {
'request': request,
# 'bio': bio,
},
headers={'session_key': session_key}
)
return templates_response
@router.post('/BioSearchList')
def search_bio(
request: Request,
bio_form: Optional[BioModel] = Depends(BioModel.as_form),
bio_service: BioViewService = Depends(get_service(BioViewService)),
batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService))
):
# error_log(date("Y/m/d H:i:s") . " [INFO] UserId:" . $UserId . "\r\n", 3, "$execLog");
session: UserSession = request.session
# バッチ処理中の場合、機能を利用させない
if batch_status_service.is_batch_processing():
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=constants.LOGOUT_REASON_BATCH_PROCESSING)
# 生物由来データを検索
bio_sales_view_data = bio_service.search_bio_data(bio_form)
# 検索項目などのデータを取得
bio: BioViewModel = bio_service.prepare_bio_view(session)
bio.bio_data = bio_sales_view_data
bio.form_data = bio_form
# セッション書き換え
session.update(
actions=[
UserSession.last_access_time.set(UserSession.new_last_access_time()),
UserSession.record_expiration_time.set(UserSession.new_record_expiration_time()),
]
)
session_key = set_session(session)
templates_response = templates.TemplateResponse(
'bioSearchList.html', {
'request': request,
'bio': bio
},
headers={'session_key': session_key}
)
return templates_response

View File

@ -5,7 +5,7 @@ from fastapi.staticfiles import StaticFiles
from starlette import status
import src.static as static
from src.controller import bio, bio_download, healthcheck, login, logout, menu
from src.controller import bio, bio_download, healthcheck, ultmarc, login, logout, menu
from src.core import tasks
from src.error.exception_handler import http_exception_handler
from src.error.exceptions import UnexpectedException
@ -22,6 +22,8 @@ app.include_router(logout.router, prefix='/logout')
app.include_router(menu.router, prefix='/menu')
# 生物由来関連のルーター
app.include_router(bio.router, prefix='/bio')
# アルトマークデータ照会のルーター
app.include_router(ultmarc.router, prefix='/ultmarc')
# 生物由来のダウンロード用APIルーター。
# クライアントから非同期呼出しされるため、共通ルーターとは異なる扱いとする。
app.include_router(bio_download.router, prefix='/bio')

View File

@ -0,0 +1,671 @@
body {
background-color: LightCyan;
font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, " Pゴシック", "MS PGothic", sans-serif;
}
h1 {
font-size: 150%;
margin-left: 2%;
margin-top: 0%;
margin-bottom: 0%;
}
table{
border-collapse : collapse;
}
.header_bt{
width: 8%;
margin-bottom: 0.8%;
margin-left: 78.5%;
}
.search_textbox{
width: 100%;
}
.search_dropdown{
width: 100%;
}
.search_longtextbox{
width: 100%
}
.instSearchResult {
width: 100%;
}
.scroll_table{
overflow: auto;
white-space: nowrap;
margin-bottom: 2%;
/*スクロール時カラムが動く問題の修正 width: 100%;をコメントアウト*/
width: 100%;
height: 250px;
}
.scroll_table::-webkit-scrollbar {
height: 5px;
width: 10px;
}
.scroll_table::-webkit-scrollbar-track {
border-radius: 5px;
background: #eee;
}
.scroll_table::-webkit-scrollbar-thumb {
border-radius: 5px;
background: #666;
}
.ult_bt {
width: 20%;
height: 80%;
}
.info_bt{
width: 10%
}
.search_bt{
margin-left: 3%;
margin-top: 0.8%;
margin-bottom: 0.8%;
}
.notFind{
margin-top: 5%;
text-align: center;
font-size: 150%;
}
.search_table {
margin-bottom: 1%;
padding-bottom: 1%;
border-bottom: solid 1px gray;
width: 100%;
}
.search_tb {
padding-right: 2%;
padding-top: 0.2%;
padding-bottom: 0.2%;
}
.leftSearch_tb{
width: 35%;
}
.batchMsg{
color: red;
font-size: 120%;
text-align: center;
}
._form {
width: 95%;
margin-left: 3%;
}
.result_info {
text-align: right;
}
/*施設検索一覧ヘッダー*/
.instSearchHeaderTable{
width: 100%;
}
.instSearchHeaderTd{
width: 24%;
}
.instSearchHeaderTdCenter{
text-align: center;
width: 50%;
}
.instSearchHeaderTdRight{
text-align: right;
padding-right: 2%;
}
.instSearchButchMsg{
font-size: 80%;
color: red;
}
.instSearchHeader_bt{
width: 40%;
}
/*施設詳細*/
.instInfoTable{
margin-top: 1%;
margin-left: 5%;
margin-right: 2%;
margin-bottom: 2%;
width: 93%;
}
.instInfoTableHalf1{
margin-top: 1%;
margin-left: 5%;
margin-right: 2%;
width: 93%;
}
.instInfoTableHalf2{
margin-top: -0.05%;
margin-left: 5%;
margin-right: 2%;
margin-bottom: 2%;
width: 93%;
}
.instInfoColumn {
width : 9%;
height: 40px;
background : rgb(225, 233, 250);
border : solid 1px;
}
.instData {
background : rgb(244, 244, 244);
border : solid 1px;
padding-left : 0.5%;
padding-right : 0.5%;
padding-top: 0.25%;
padding-bottom: 0.25%;
}
.instDataMid{
/*NO5修正前 width: 51%;*/
width: 20%;
}
/*NO5にて追加 START*/
.instDataLarge{
width: 85%;
}
.instDataLeft{
width: 20%;
}
.instDataCenter{
width: 7%;
}
.instDataRight{
width: 25%;
}
/*NO5にて追加 END*/
.instDataSmallTextbox{
width: 45%;
}
/*NO5にて追加 START*/
.instDataCenterTextbox{
width: 80%;
}
/*NO5にて追加 END*/
.instInfoTextbox{
width: 98%;
padding-right: 1%;
padding-left: 1%;
}
.instCdTextbox{
/*NO5修正前 width: 13%;*/
width: 35%;
margin-left: 0.5%;
margin-right: 2%;
}
.delReasonCdTextbox{
/*NO5修正前 width: 2%;*/
width: 5%;
margin-left: 0.5%;
margin-right: 1%;
}
.delReasonTextbox{
/*NO5修正前 width: 43%;*/
width: 88%;
margin-left: 0.5%;
margin-right: 2%;
}
.manageTextbox{
width: 40%;
}
.textboxMargin {
margin-left : 0.1%;
}
.transitionBt{
width: 98%;
height: 30px;
}
.instHeaderTable{
margin-left: 40%;
}
.instHeaderTd{
width: 10%;
font-size: 140%;
text-align: center;
padding-right: 2%;
}
.trtCourseTextbox{
width: 6%;
}
.bedTd{
width: 46%;
}
.bedTextbox{
width: 70%;
}
.xSmallTd{
width: 9%;
}
.xSmallTextbox{
width: 75%;
}
.reExamTd{
width: 13%;
}
.repreTd{
width: 50%;
}
.repreTextbox{
width: 95%;
}
.trtTextbox{
width: 5%;
margin-right: 1.2%;
}
.parentCdTextBox{
width: 15%;
}
.parentNameTextBox{
width: 75%;
}
.hpInfoColumn{
width : 12%;
height: 40px;
background : rgb(225, 233, 250);
border : solid 1px;
}
.hpAssrtTd{
width: 12%;
}
.hpAssrtTextbox{
width: 85%;
}
.border_bottom_none {
border-bottom-style:none;
}
.numberBox{
text-align: right;
}
/*医師検索*/
/*ヘッダー*/
.docHeaderTable{
width: 100%;
}
.docHeaderTd{
width: 24%;
}
.docHeaderTdCenter{
text-align: center;
width: 50%;
}
.docHeaderTdRight{
text-align: right;
padding-right: 2%;
}
.docButchMsg{
/* font-size: 80%; */
color: red;
}
.docHeader_bt{
width: 40%;s
}
/* アルトマーク課題管理表No.2の修正 8% → 10% */
/* アルトマーク課題管理表No.8の修正 10% → 14% */
.docSearchColumnTd{
width: 14%;
}
.docSearchTextboxTd{
width: 18%;
}
.docSearchTextbox_td{
width: 94%;
}
.docSearchTextbox{
width: 90%;
margin-right: 5%;
margin-top: 0.8%;
margin-bottom: 0.8%;
}
.docSearchTableDivOne{
width: 100%;
}
.docSearchTableDivTwo{
margin-bottom: 1%;
padding-bottom: 1%;
border-bottom: solid 1px gray;
width: 100%;
}
.docSearchScroll{
overflow: auto;
white-space: nowrap;
margin-bottom: 2%;
width: 100%;
height: 270px;
}
.docSearchScroll::-webkit-scrollbar {
height: 5px;
width: 10px;
}
.docSearchScroll::-webkit-scrollbar-track {
border-radius: 5px;
background: #eee;
}
.docSearchScroll::-webkit-scrollbar-thumb {
border-radius: 5px;
background: #666;
}
.allOnOffButton{
width: 6%;
}
/*医師情報*/
.docInfoTable{
margin-top: 1%;
margin-left: 5%;
margin-right: 2%;
margin-bottom: 1%;
width: 93%;
border-bottom: solid 1px gray;
}
.docInfoTd{
padding-bottom: 0.5%;
}
.docInfoTextBox{
margin-left: 0.5%;
margin-right: 2%;
width: 8%;
}
.docInfoTrtTextBox{
margin-left: 0.5%;
}
.docBelongTable{
margin-left: 1%;
width: 98%;
border-bottom: solid 1px gray;
}
.docBelongTd{
width: 49%;
height: 150px;
}
.docSocietyTable{
width: 100%;
}
.scroll{
overflow: auto;
height: 120px;
width: 90%;
margin-left: 7%;
margin-bottom: 4%;
}
.scroll::-webkit-scrollbar {
height: 5px;
width: 10px;
}
.scroll::-webkit-scrollbar-track {
border-radius: 5px;
background: #eee;
}
.scroll::-webkit-scrollbar-thumb {
border-radius: 5px;
background: #666;
}
.rightBoderLine{
border-right: solid 1px gray;
}
.wrkplaceH1{
margin-top: 0.3%;
}
.wrkplaceTable{
width: 100%;
}
/* 生物由来検索、施設検索共通*/
.clear_bt{
margin-left: 120px;
width: 60px
}
.back_bt{
margin-left: 1042px;
width: 80px
}
.noLine{
text-decoration: none;
}
/*アルトマーク施設検索*/
/*共通:アルトマーク施設検索,医師検索,施設詳細*/
.maxWidth_tb {
width: 100%;
}
/*アルトマーク施設検索,医師検索共通*/
.search_btTd {
text-align: right;
}
.selection {
display: none;
}
#page-1 {
display: block;
}
/*医師検索*/
.search_middleTd {
padding-right: 25px;
width : 450px;
}
.docSearchScroll_div {
overflow: auto;
height: 200px;
width: 1132px;
}
/*共通:施設詳細、医師詳細*/
.transition{
text-align: right;
margin-right: 60px;
}
.data_width_middle {
width : 300px;
}
.border_top_none {
border-top-style:none;
}
.textbox_margin_short {
margin-left : 5px;
}
.label_margin {
margin-left: 10px;
margin-right: 10px;
}
/*医師詳細*/
.docInfo_table{
margin-bottom: 30px;
border-bottom: solid 1px gray;
width: 1132px;
}
.small_tb{
width: 100px;
}
.docBelongScroll_div {
overflow: auto;
height: 100px;
width: 500px;
margin: 0px 30px 0px 30px;
}
.rightPadding_table{
padding-right: 50px;
}
.docPlaceScroll_div {
overflow: auto;
height: 150px;
width: 700px;
margin: 0px 30px 0px 30px;
}
.result_tr{
overflow-y: scroll;
overflow-x: scroll;
}
.result_data{
overflow-y: scroll;
overflow-x: scroll;
width: 50px;
}
/* tablesoter */
table.tablesorter {
font-family:arial;
background-color: #CDCDCD;
font-size: 8pt;
text-align: left;
}
table.tablesorter thead tr th, table.tablesorter tfoot tr th {
background-color: #e6EEEE;
border: 0.1px solid silver;
font-size: 8pt;
padding: 4px;
padding-right: 20px;
}
table.tablesorter thead tr .header {
background-image: url(bg.gif);
background-repeat: no-repeat;
background-position: center right;
cursor: pointer;
}
table.tablesorter tbody td {
color: #3D3D3D;
padding: 4px;
background-color: #FFF;
border: 0.1px solid silver;
vertical-align: top;
}
table.tablesorter tbody tr.odd td {
background-color:#F0F0F6;
}
table.tablesorter thead tr .headerSortUp {
background-image: url(asc.gif);
}
table.tablesorter thead tr .headerSortDown {
background-image: url(desc.gif);
}
table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp {
background-color: #8dbdd8;
}

View File

@ -211,3 +211,63 @@ function DisplayErrorDialog(strMesssage) {
$("#errorTxt").html(strMesssage);
$("#error").dialog("open");
}
/* ult.jsから移植 */
// チェックボックス全選択関数
// 条件:チェックボックスのクラス名に"selected"というのがついていること
// 条件:ボタンにクラス名 send がついていること
function allOn(){
$(".selected").prop("checked", true);
$(".send").prop('disabled',false);
}
// チェックボックス全解除関数
// 条件:チェックボックスのクラス名に"selectedページ数"というのがついていること
// 条件:ボタンにクラス名 send がついていること
function allOff(){
$(".selected").prop("checked", false);
$(".send").prop('disabled',true);
}
// 検索結果のところのボタンをチェックが1個でも付いたら押せるようにして、チェックがなければ押せないようにする関数
// 条件:チェックボックスのクラス名に"selected"というのがついていること
// 条件:ボタンにクラス名 send がついていること
function resultBtDisablead(){
var cnt1 = $('.checkNum input:checkbox:checked').length;
console.log(cnt1);
if(cnt1 == 0) {
$(".send").prop('disabled',true);
}
else {
$(".send").prop('disabled',false);
}
}
// Enter押下時にsubmitさせなくする
$(function() {
$(document).on("keypress", "input:not(.allow_submit)", function(event) {
return event.which !== 13;
});
});
// 数字-以外を許さない入力チェック
function checkNumberForm($this)
{
var str=$this.value;
while(str.match(/[^\d\-]/))
{
str=str.replace(/[^\d\-]/,"");
}
$this.value=str;
}
// 数字以外を許さない入力チェック
function checkNumberOnlyForm($this)
{
var str=$this.value;
while(str.match(/[^\d]/))
{
str=str.replace(/[^\d]/,"");
}
$this.value=str;
}

View File

@ -0,0 +1,744 @@
<?php
require_once('/home/nds_dwh/webroot/common/config/ultIniSet.inc');
require_once('/home/nds_dwh/webroot/common/function/sessionCheck.php');
require_once('/home/nds_dwh/webroot/common/function/timeout.php');
require_once('/home/nds_dwh/webroot/common/function/dbcls.php');
require_once('/home/nds_dwh/webroot/common/config/path.inc');
require_once('/home/nds_dwh/webroot/common/config/message.inc');
require_once('/home/nds_dwh/webroot/common/function/getDateBatchJSString.php');
?>
<!DOCTYPE html>
<html lang="ja">
<head>
{% with subtitle = '医師検索一覧' %}
{% include '_header.html' %}
{% endwith %}
<link rel="stylesheet" href="/static/css/ultStyle.css">
<link rel="stylesheet" href="/static/css/pagenation.css">
<link rel="stylesheet" href="/static/css/datepicker.css">
<script src="/static/lib/fixed_midashi.js"></script>
<!-- <link rel="stylesheet" type="text/css" href="<?php echo $ultCss ?>"> -->
<!-- <script type="text/javascript" src="<?php echo $ultJsPath ?>"></script> -->
<script type="text/javascript">
controlCount = 11; // 検索フォームの入力ボックスの数 アルトマーク課題管理表No.2の修正
// function DisplayErrorDialog(strMesssage) {
// $( "#errorTxt" ).html( strMesssage );
// $("#error").dialog("open");
// }
// function CreateDialog() {
// $("#error").dialog({
// autoOpen: false,
// width: 400,
// modal: true,
// open: function (event, ui) {
// $(".ui-dialog-titlebar-close").click(function(){
// $("#error").dialog("close");
// location.href = '<?php echo $logoutPath ?>';
// });
// },
// buttons: [
// {
// text: 'OK',
// click: function(){
// $("#error").dialog("close");
// location.href = '<?php echo $logoutPath ?>';
// }
// }
// ]
// });
// }
// function imgLoad(){
// $(".ConfirmImg").attr("src","/common/css/image/kakunin.png");
// $(".ErrorImg").attr("src","/common/css/image/error.png");
// }
window.onload = function(){
// 見出し固定初期化
FixedMidashi.create();
// ボタン、テキストボックス初期化
formBtDisabled();
// メッセージダイアログ初期化
// CreateDialog();
// imgLoad();
}
</script>
</head>
<!-- <?php
// 施設検索情報の削除 -->
<!-- $_SESSION['instDelFlg'] = true;
if (isset($_POST['docBackBt'])|| isset($_POST['currentPageNum'])) {
// 前回の検索結果をそのまま表示
}
else if (isset($_POST['search_bt'])) {
$_SESSION['docTextbox_1'] = htmlspecialchars($_POST['textbox_1'], ENT_QUOTES);
$_SESSION['docTextbox_2'] = htmlspecialchars($_POST['textbox_2'], ENT_QUOTES);
$_SESSION['docTextbox_3'] = htmlspecialchars($_POST['textbox_3'], ENT_QUOTES);
$_SESSION['docTextbox_4'] = htmlspecialchars($_POST['textbox_4'], ENT_QUOTES);
$_SESSION['docTextbox_5'] = htmlspecialchars($_POST['textbox_5'], ENT_QUOTES);
$_SESSION['docTextbox_6'] = htmlspecialchars($_POST['textbox_6'], ENT_QUOTES);
$_SESSION['docTextbox_7'] = htmlspecialchars($_POST['textbox_7'], ENT_QUOTES);
$_SESSION['docTextbox_8'] = htmlspecialchars($_POST['textbox_8'], ENT_QUOTES);
$_SESSION['docTextbox_9'] = htmlspecialchars($_POST['textbox_9'], ENT_QUOTES);
$_SESSION['docTextbox_10'] = htmlspecialchars($_POST['textbox_10'], ENT_QUOTES);
$_SESSION['docTextbox_11'] = htmlspecialchars($_POST['textbox_11'], ENT_QUOTES);
} else if(isset($_POST['docSearchBt'])){
$_SESSION['docTextbox_1'] = null;
$_SESSION['docTextbox_2'] = null;
$_SESSION['docTextbox_3'] = null;
$_SESSION['docTextbox_4'] = $_POST['id'];
$_SESSION['docTextbox_5'] = null;
$_SESSION['docTextbox_6'] = null;
$_SESSION['docTextbox_7'] = null;
$_SESSION['docTextbox_8'] = null;
$_SESSION['docTextbox_9'] = null;
$_SESSION['docTextbox_10'] = null;
$_SESSION['docTextbox_11'] = null;
} else{
$_SESSION['docTextbox_1'] = null;
$_SESSION['docTextbox_2'] = null;
$_SESSION['docTextbox_3'] = null;
$_SESSION['docTextbox_4'] = null;
$_SESSION['docTextbox_5'] = null;
$_SESSION['docTextbox_6'] = null;
$_SESSION['docTextbox_7'] = null;
$_SESSION['docTextbox_8'] = null;
$_SESSION['docTextbox_9'] = null;
$_SESSION['docTextbox_10'] = null;
$_SESSION['docTextbox_11'] = null;
} -->
<!-- // どのページを表示させるか -->
<!-- if (isset($_POST['currentPageNum'])) {
$_SESSION['pageNumber'] = $_POST['currentPageNum'];
} elseif (isset($_POST['instSearchBt']) || isset($_POST['docBackBt'])) {
// なにもしない
} else {
$_SESSION['pageNumber'] = 1;
}
$pageNumber = $_SESSION['pageNumber'];
// 表示するデータの位置決める
$limit = ($pageNumber - 1) * INST_DATA_PER_PAGE;
$instDataPerPage = INST_DATA_PER_PAGE; -->
<!-- // DB接続 -->
<!-- $sqlCls = new sqlClass();
$isDBSuccess = $sqlCls->dbConnection($dbs, $user, $pass, $docSearchPath, __LINE__);
if (!isset($isDBSuccess)) {
$isDBSuccess = true; -->
<!-- // アルトマーク課題管理表No.2の追加 Start
$sql = "SELECT DISTINCT COM_INST.PREFC_CD, MST_PREFC.PREFC_NAME FROM COM_INST JOIN MST_PREFC ON COM_INST.PREFC_CD = MST_PREFC.PREFC_CD ORDER BY MST_PREFC.PREFC_CD";
$info = array($sql);
$prefc = $sqlCls->dbSelect($info, $docSearchPath, __LINE__);
if ($prefc == false) {
$isDBSuccess = false;
}
// アルトマーク課題管理表No.2の追加 End
}
?> -->
<!--検索フォーム-->
<body>
<table class="docHeaderTable">
<tr>
<td class="docHeaderTd"><h1>医師検索一覧</h1></td>
<td class="docHeaderTdCenter docHeaderTdCenter">
<!-- <?php
// バッチ処理中判断
if(getDateBatchJSString($dbs, $user, $pass) && $isDBSuccess){
?> -->
<div class="docButchMsg">日次バッチ処理中のため、データが正しく表示されない可能性があります</div>
<!-- <?php
} -->
<!-- ?> -->
</td>
<td class="docHeaderTd docHeaderTdRight"><button class="docHeader_bt" onclick="backToMenu()">メニューへ</button></td>
</tr>
</table>
</h1>
<form class="_form" name="search" action="/ultmarc/docSearch" method="POST">
<table class="docSearchTableDivTwo">
<tbody>
<tr>
<td class="docSearchColumnTd">医師コード:</td>
<td class="docSearchTextboxTd">
<input class="text docSearchTextbox" style="ime-mode:disabled;" type="text" name="textbox_1" value="
" maxlength='10' oninput="formBtDisabled()">
<!-- <?php if(isset($_SESSION['docTextbox_1'])) {
echo $_SESSION['docTextbox_1'];
} ?> -->
</td>
<td class="docSearchColumnTd">氏名(漢字)</td>
<td class="docSearchTextboxTd">
<input class="text docSearchTextbox" type="text" name="textbox_2" value="" oninput="formBtDisabled(controlCount)">
<!-- <?php if(isset($_SESSION["docTextbox_3"])) {
echo $_SESSION["docTextbox_2"];
} ?> -->
</td>
<!-- アルトマーク課題管理表No.8の修正 氏名(カナ)→氏名(かな・カナ) -->
<td class="docSearchColumnTd">氏名(かな・カナ)</td>
<td class="docSearchTextboxTd">
<input class="text docSearchTextbox" type="text" name="textbox_3" value="" oninput="formBtDisabled(controlCount)">
<!-- <?php if(isset($_SESSION["docTextbox_3"])) {
echo $_SESSION["docTextbox_3"];
} ?> -->
</td>
</tr>
<tr>
<td class="docSearchColumnTd">勤務先コード:</td>
<td class="docSearchTextboxTd">
<input class="text docSearchTextbox" style="ime-mode:disabled;" type="text" name="textbox_4" value="" maxlength='11' oninput="formBtDisabled()">
<!-- <?php if(isset($_SESSION['docTextbox_4'])) {
echo $_SESSION['docTextbox_4'];
} ?> -->
</td>
<td class="docSearchColumnTd">勤務先名(漢字)</td>
<td class="docSearchTextboxTd">
<input class="text docSearchTextbox" type="text" name="textbox_5" value="" oninput="formBtDisabled(controlCount)">
<!-- <?php if(isset($_SESSION["docTextbox_5"])) {
echo $_SESSION["docTextbox_5"];
} ?> -->
</td>
<!-- アルトマーク課題管理表No.8の修正 勤務先名(カナ)→勤務先名(かな・カナ) -->
<td class="docSearchColumnTd">勤務先名(かな・カナ)</td>
<td class="docSearchTextboxTd">
<input class="text docSearchTextbox" type="text" name="textbox_6" value="" oninput="formBtDisabled(controlCount)">
<!-- <?php if(isset($_SESSION["docTextbox_6"])) {
echo $_SESSION["docTextbox_6"];
} ?> -->
</td>
</tr>
<tr>
<!-- アルトマーク課題管理表No.2の追加 Start -->
<td class="docSearchColumnTd">勤務先都道府県:</td>
<td class="search_tb">
<!-- 都道府県のドロップダウン -->
<select class="text search_dropdown" name="textbox_11" onchange="formBtDisabled()" onkeyup="formBtDisablead()">
<!--ToDo 都道府県ドロップダウンの中身を作成(マスタからとってこれる) -->
<option value=""></option>
<!-- <?php
foreach ($prefc as $value){
?>
<option value="<?php echo $value['PREFC_CD'] ?>" <?php if(isset($_SESSION['docTextbox_11'])) { if($_SESSION['docTextbox_11'] == $value['PREFC_CD']) { echo ' selected'; }}; ?> >
<?php echo $value['PREFC_NAME']; ?></option>
<?php
}
?> -->
</select>
</td>
<!-- アルトマーク課題管理表No.2の追加 End -->
<td class="docSearchColumnTd">所属部科(漢字)</td>
<td class="docSearchTextboxTd">
<input class="text docSearchTextbox" type="text" name="textbox_7" value="" oninput="formBtDisabled(controlCount)">
<!-- <?php if(isset($_SESSION["docTextbox_7"])) {
echo $_SESSION["docTextbox_7"];
} ?> -->
</td>
<td class="docSearchColumnTd">診療科目(漢字)</td>
<td class="docSearchTextboxTd">
<input class="text docSearchTextbox" type="text" name="textbox_8" value="" oninput="formBtDisabled(controlCount)">
<!-- <?php if(isset($_SESSION["docTextbox_8"])) {
echo $_SESSION["docTextbox_8"];
} ?> -->
</td>
</tr>
<tr>
<td class="docSearchColumnTd">出身大学(漢字)</td>
<td class="docSearchTextboxTd">
<input class="text docSearchTextbox" type="text" name="textbox_9" value="" oninput="formBtDisabled(controlCount)">
<!-- <?php if(isset($_SESSION["docTextbox_9"])) {
echo $_SESSION["docTextbox_9"];
} ?> -->
</td>
<td class="docSearchColumnTd">卒年:</td>
<td class="docSearchTextboxTd"><input class="text docSearchTextbox" style="ime-mode:disabled;" type="text" name="textbox_10" value="" maxlength='4' oninput="formBtDisabled(controlCount)"></td>
<!-- <?php if(isset($_SESSION["docTextbox_10"])) {
echo $_SESSION["docTextbox_10"];
} ?> -->
<td class="search_btTd" colspan="2">
<input class="text ult_bt search_bt" id="clear" type="button" name="clear_bt" value="クリア" onclick="clr(controlCount);">
<input class="ult_bt search_bt" id="search_bt" name="search_bt" value="検索" type="submit">
</td>
</tr>
</tbody>
</table>
</form>
<!-- <?php
// アルトマーク課題管理表No.2の修正(LEFT JOIN MST_PREFC…の2行追加&SELECT COM_DR.DCF_PCF_DR_CD…の最後の検索項目MST_PREFC.PREFC_NAME追加)
// アルトマーク課題管理表No.7の修正 旧ソース:$cntSql = "SELECT COUNT(*) AS countNum FROM (((((((COM_DR)
if ((isset($_POST['search_bt']) || isset($_POST['currentPageNum']) || isset($_POST['docSearchBt']) || isset($_POST['docBackBt'])) && $isDBSuccess && isset($_SESSION['id'])) {
$cntSql = "SELECT COUNT(countNum) AS countNum FROM (SELECT COUNT(*) AS countNum FROM (((((((COM_DR
LEFT JOIN MST_PREFC ON COM_DR.PREFC_CD = MST_PREFC.PREFC_CD)
LEFT JOIN COM_DR_WRKPLACE ON COM_DR.DCF_PCF_DR_CD = COM_DR_WRKPLACE.DCF_PCF_DR_CD)
LEFT JOIN COM_INST ON COM_DR_WRKPLACE.DCF_DSF_INST_CD = COM_INST.DCF_DSF_INST_CD)
LEFT JOIN COM_BLNG_SEC ON COM_DR_WRKPLACE.BLNG_SEC_CD = COM_BLNG_SEC.BLNG_SEC_CD)
LEFT JOIN COM_DR_TRT_COURSE ON COM_DR.DCF_PCF_DR_CD = COM_DR_TRT_COURSE.DCF_PCF_DR_CD)
LEFT JOIN COM_TRT_COURSE ON COM_DR_TRT_COURSE.TRT_COURSE_CD = COM_TRT_COURSE.TRT_COURSE_CD)
LEFT JOIN COM_POST ON COM_DR_WRKPLACE.POST_CD = COM_POST.POST_CD)
LEFT JOIN COM_ALMA ON COM_DR.ALMA_CD = COM_ALMA.ALMA_CD
WHERE ";
// アルトマーク課題管理表No.7の修正 旧ソースSELECT COM_DR.DCF_PCF_DR_CD, COM_DR.DR_NAME, COM_INST.FORM_INST_NAME_KANJI, COM_INST.DCF_DSF_INST_CD, COM_BLNG_SEC.BLNG_SEC_NAME, COM_TRT_COURSE.TRT_COURSE_NAME, COM_POST.FORM_POST_NAME, COM_ALMA.ALMA, COM_DR.GRAD_Y, MST_PREFC.PREFC_NAME
$sql = "
SELECT COM_DR.DCF_PCF_DR_CD, COM_DR.DR_NAME, COM_INST.FORM_INST_NAME_KANJI, COM_INST.DCF_DSF_INST_CD, COM_BLNG_SEC.BLNG_SEC_NAME, COM_TRT_COURSE.TRT_COURSE_NAME, COM_POST.FORM_POST_NAME, COM_ALMA.ALMA, COM_DR.GRAD_Y, MST_PREFC.PREFC_NAME, COM_DR_WRKPLACE.BLNG_SEC_CD
FROM (((((((COM_DR
LEFT JOIN MST_PREFC ON COM_DR.PREFC_CD = MST_PREFC.PREFC_CD)
LEFT JOIN COM_DR_WRKPLACE ON COM_DR.DCF_PCF_DR_CD = COM_DR_WRKPLACE.DCF_PCF_DR_CD)
LEFT JOIN COM_INST ON COM_DR_WRKPLACE.DCF_DSF_INST_CD = COM_INST.DCF_DSF_INST_CD)
LEFT JOIN COM_BLNG_SEC ON COM_DR_WRKPLACE.BLNG_SEC_CD = COM_BLNG_SEC.BLNG_SEC_CD)
LEFT JOIN COM_DR_TRT_COURSE ON COM_DR.DCF_PCF_DR_CD = COM_DR_TRT_COURSE.DCF_PCF_DR_CD)
LEFT JOIN COM_TRT_COURSE ON COM_DR_TRT_COURSE.TRT_COURSE_CD = COM_TRT_COURSE.TRT_COURSE_CD)
LEFT JOIN COM_POST ON COM_DR_WRKPLACE.POST_CD = COM_POST.POST_CD)
LEFT JOIN COM_ALMA ON COM_DR.ALMA_CD = COM_ALMA.ALMA_CD
WHERE ";
$notfirstFlg = false;
// もし医師コードが入力されていたら
if (!empty($_SESSION["docTextbox_1"])) {
$cntSql .= "COM_DR.DCF_PCF_DR_CD LIKE :drCd";
$sql .= "COM_DR.DCF_PCF_DR_CD LIKE :drCd";
$val[":drCd"] = '%' . htmlspecialchars($_SESSION['docTextbox_1'], ENT_QUOTES) . '%';
$notfirstFlg = true;
}
// もし医師名(漢字)が入力されていたら
if (!empty($_SESSION["docTextbox_2"])) {
if ($notfirstFlg) {
$cntSql .= " AND ";
$sql .= " AND ";
}
$cntSql .= "DR_NAME LIKE :drName";
$sql .= "DR_NAME LIKE :drName";
$val[":drName"] = '%' . htmlspecialchars($_SESSION['docTextbox_2'], ENT_QUOTES) . '%';
$notfirstFlg = true;
}
// もし医師名(カナ)が入力されていたら
if (!empty($_SESSION["docTextbox_3"])) {
if ($notfirstFlg) {
$cntSql .= " AND ";
$sql .= " AND ";
}
$cntSql .= "DR_NAME_KANA LIKE :drNameKana";
$sql .= "DR_NAME_KANA LIKE :drNameKana";
$val[":drNameKana"] = '%' . htmlspecialchars(mb_convert_kana($_SESSION['docTextbox_3'], "khs", "UTF-8"), ENT_QUOTES) . '%';
$notfirstFlg = true;
}
// もし勤務先コードが入力されていたら
if (!empty($_SESSION["docTextbox_4"])) {
if ($notfirstFlg) {
$cntSql .= " AND ";
$sql .= " AND ";
}
$cntSql .= "COM_INST.DCF_DSF_INST_CD LIKE :instCd";
$sql .= "COM_INST.DCF_DSF_INST_CD LIKE :instCd";
$val[":instCd"] = '%' . htmlspecialchars($_SESSION['docTextbox_4'], ENT_QUOTES) . '%';
$notfirstFlg = true;
}
// もし勤務先名(漢字)が入力されていたら
if (!empty($_SESSION["docTextbox_5"])) {
if ($notfirstFlg) {
$cntSql .= " AND ";
$sql .= " AND ";
}
$cntSql .= "FORM_INST_NAME_KANJI LIKE :instNameKanji";
$sql .= "FORM_INST_NAME_KANJI LIKE :instNameKanji";
$val[":instNameKanji"] = '%' . htmlspecialchars($_SESSION['docTextbox_5'], ENT_QUOTES) . '%';
$notfirstFlg = true;
}
// もし勤務先名(カナ)が入力されていたら
if (!empty($_SESSION["docTextbox_6"])) {
if ($notfirstFlg) {
$cntSql .= " AND ";
$sql .= " AND ";
}
$cntSql .= "FORM_INST_NAME_KANA LIKE :instNameKana";
$sql .= "FORM_INST_NAME_KANA LIKE :instNameKana";
$val[":instNameKana"] = '%' . htmlspecialchars(mb_convert_kana($_SESSION['docTextbox_6'], "khs", "UTF-8"), ENT_QUOTES) . '%';
$notfirstFlg = true;
}
// アルトマーク課題管理表No.2の追加 Start
// もし都道府県が入力されていたら
if ($_SESSION["docTextbox_11"] != null) {
if ($notfirstFlg) {
$cntSql .= " AND ";
$sql .= " AND ";
}
$cntSql .= "COM_INST.PREFC_CD = :prefcCd";
$sql .= "COM_INST.PREFC_CD = :prefcCd";
$val[":prefcCd"] = htmlspecialchars($_SESSION['docTextbox_11'], ENT_QUOTES);
$notfirstFlg = true;
}
// アルトマーク課題管理表No.2の追加 End
// もし所属部科(漢字)が入力されていたら
if (!empty($_SESSION["docTextbox_7"])) {
if ($notfirstFlg) {
$cntSql .= " AND ";
$sql .= " AND ";
}
$cntSql .= "COM_BLNG_SEC.BLNG_SEC_NAME LIKE :blngSecName";
$sql .= "COM_BLNG_SEC.BLNG_SEC_NAME LIKE :blngSecName";
$val[":blngSecName"] = '%' . htmlspecialchars($_SESSION['docTextbox_7'], ENT_QUOTES) . '%';
$notfirstFlg = true;
}
// もし診療科目(漢字)が入力されていたら
if (!empty($_SESSION["docTextbox_8"])) {
if ($notfirstFlg) {
$cntSql .= " AND ";
$sql .= " AND ";
}
$cntSql .= "TRT_COURSE_NAME LIKE :trtCourseName";
$sql .= "TRT_COURSE_NAME LIKE :trtCourseName";
$val[":trtCourseName"] = '%' . htmlspecialchars($_SESSION['docTextbox_8'], ENT_QUOTES) . '%';
$notfirstFlg = true;
}
// もし出身大学(漢字)が入力されていたら
if (!empty($_SESSION["docTextbox_9"])) {
if ($notfirstFlg) {
$cntSql .= " AND ";
$sql .= " AND ";
}
$cntSql .= "ALMA LIKE :alma";
$sql .= "ALMA LIKE :alma";
$val[":alma"] = '%' . htmlspecialchars($_SESSION['docTextbox_9'], ENT_QUOTES) . '%';
$notfirstFlg = true;
}
// もし卒年が入力されていたら
if (!empty($_SESSION["docTextbox_10"])) {
if ($notfirstFlg) {
$cntSql .= " AND ";
$sql .= " AND ";
}
$cntSql .= "GRAD_Y LIKE :gradY";
$sql .= "GRAD_Y LIKE :gradY";
$val[":gradY"] = htmlspecialchars($_SESSION['docTextbox_10'], ENT_QUOTES) . '%';
$notfirstFlg = true;
}
// テキストボックスが未入力なら
// アルトマーク課題管理表No.7の修正
//if (!(empty($_SESSION["docTextbox_1"]) AND empty($_SESSION["docTextbox_2"]) AND empty($_SESSION["docTextbox_3"]) AND empty($_SESSION["docTextbox_4"]) AND empty($_SESSION["docTextbox_5"]) AND empty($_SESSION["docTextbox_6"]) AND empty($_SESSION["docTextbox_7"]) AND empty($_SESSION["docTextbox_8"]) AND empty($_SESSION["docTextbox_9"]) AND empty($_SESSION["docTextbox_10"]))) {
if (!(empty($_SESSION["docTextbox_1"]) AND empty($_SESSION["docTextbox_2"]) AND empty($_SESSION["docTextbox_3"]) AND empty($_SESSION["docTextbox_4"]) AND empty($_SESSION["docTextbox_5"]) AND empty($_SESSION["docTextbox_6"]) AND empty($_SESSION["docTextbox_7"]) AND empty($_SESSION["docTextbox_8"]) AND empty($_SESSION["docTextbox_9"]) AND empty($_SESSION["docTextbox_10"]) AND empty($_SESSION["docTextbox_11"]))) {
$sql .=" AND (LENGTH(COM_INST.ABOLISH_YMD) = 0 OR COM_INST.ABOLISH_YMD IS NULL)
AND (LENGTH(COM_DR.ABOLISH_YMD) = 0 OR COM_DR.ABOLISH_YMD IS NULL)";
$cntSql .=" AND (LENGTH(COM_INST.ABOLISH_YMD) = 0 OR COM_INST.ABOLISH_YMD IS NULL)
AND (LENGTH(COM_DR.ABOLISH_YMD) = 0 OR COM_DR.ABOLISH_YMD IS NULL)
GROUP BY COM_DR.DCF_PCF_DR_CD, COM_INST.DCF_DSF_INST_CD) AS A;"; // アルトマーク課題管理表No.7の修正 GROUP BY の1行追加
// ソートの基準設定
// アルトマーク課題管理表No.7の修正
//$sql .= " ORDER BY COM_DR.DCF_PCF_DR_CD";
$sql .= " ORDER BY COM_DR.DCF_PCF_DR_CD, COM_DR_WRKPLACE.DCF_DSF_INST_CD, COM_DR_WRKPLACE.BLNG_SEC_CD,COM_DR_TRT_COURSE.TRT_COURSE_CD";
// アルトマーク課題管理表No.7の修正
//$sql .=" LIMIT {$limit} , {$instDataPerPage};";
} else {
$sql .= ";";
$cntSql .= ";";
}
// 取得件数を計算
$info = array($cntSql, $val);
$dtCnt = $sqlCls->dbCount($info, $docSearchPath, __LINE__);
if ($dtCnt == false) {
$isDBSuccess = false;
}
// 件数が500以上かどうか
if ($dtCnt['countNum'] > 500) {
$resultMaxFlg = true;
$dtCnt['countNum'] = 0;
$selectDt = array();
} else {
$resultMaxFlg = false;
// データを取得
$info = array($sql, $val);
$selectDt = $sqlCls->dbSelect($info, $docSearchPath, __LINE__);
if ($selectDt == false) {
$isDBSuccess = false;
}
}
} else{
$resultMaxFlg = false;
$dtCnt['countNum'] = 0;
$selectDt = array();
}
if (!$isDBSuccess) {
$selectDt = array();
$dtCnt['countNum'] = 0;
}
$sqlCls->dbExit();
// ページ数の計算
$pageCount = ceil( $dtCnt['countNum'] / INST_DATA_PER_PAGE );
?> -->
<!--検索結果-->
<form class="_form" name="result" action="/ultmarc/docSearch" method="POST">
<input type="button" name="allon" onclick="allOn()" value="全選択" class="ult_bt allOnOffButton" />
<!-- <?php if ($dtCnt['countNum'] <= 0){ echo "disabled"; } ?> -->
<input type="button" name="alloff" onclick="allOff()" value="全解除" class="ult_bt allOnOffButton" />
<!-- <?php if ($dtCnt['countNum'] <= 0){ echo "disabled"; } ?> -->
<!--検索件数-->
<!-- <div class="result_info">件数:<?php echo $dtCnt['countNum']; ?>件 ページ数:<?php echo "$pageCount"; ?><br></div> -->
<!--ページネーション-->
<div id="light-pagination" class="pagination"></div>
<!--検索結果表示テーブル-->
<div class="docSearchScroll">
<table class="tablesorter instSearchResult" _fixedhead="rows:1; cols:1">
<thead>
<tr>
<th></th>
<th>医師コード</th>
<th>氏名</th>
<th>勤務先名</th>
<th>所属部科</th>
<th>診療科目</th>
<th>役職名</th>
<th>出身大学</th>
<th>卒年</th>
</tr>
</thead>
<!-- <?php
if (isset($_POST['search_bt']) || isset($_POST['currentPageNum']) || isset($_POST['docSearchBt']) || isset($_POST['docBackBt'])) {
?> -->
<tbody id="result_data" class="result_data"></tbody>
<!-- <tbody>
<?php
// アルトマーク課題管理表No.7の修正 Start
// 同じ所属部課で複数の診療科目を担当する医師情報をマージする
$selectDtMerge = array();
$beforeDrCd = "";
$beforeInstCd = "";
$beforeSecCd = "";
$limitCount = 0;
$pageLastProcEndFlag = false; -->
<!-- foreach ($selectDt as $value) {
// 該当ページ内のデータであるかの判定 -->
<!-- if ($limit > $limitCount || $limitCount >= $limit + $instDataPerPage) {
if ($beforeDrCd != $value['DCF_PCF_DR_CD'] || $beforeInstCd != $value['DCF_DSF_INST_CD'] || $beforeSecCd != $value['BLNG_SEC_CD']) {
$beforeDrCd = $value['DCF_PCF_DR_CD'];
$beforeInstCd = $value['DCF_DSF_INST_CD'];
$beforeSecCd = $value['BLNG_SEC_CD'];
$limitCount++;
}
// 該当ページ内のデータでない場合一覧表示対象ではないのでスキップ
continue;
} -->
<!-- // 同じ医師情報の場合 -->
<!-- if ($beforeDrCd === $value['DCF_PCF_DR_CD'] && $beforeInstCd === $value['DCF_DSF_INST_CD'] && $beforeSecCd === $value['BLNG_SEC_CD']) {
// 医師情報が設定されていない場合、前のページの最後の医師データなのでスキップ
if (count($selectDtMerge) == 0) {
$limitCount++;
continue;
}
// 診療科目以外同じ情報という前提で、診療科目だけをマージ(・で区切って追加)
 SQLで取りましょう
$selectDtMerge[count($selectDtMerge) - 1]['TRT_COURSE_NAME'] .= $delimiterTrtCourceName . $value['TRT_COURSE_NAME'];
} -->
<!-- // 異なる医師情報の場合
else {
// 該当ページ内の最後のデータで、同じ医師情報がない場合、該当ページの処理は終わり
if ($pageLastProcEndFlag) {
$limitCount++;
$pageLastProcEndFlag = false;
continue;
}
// 医師情報を追加
$selectDtMerge[] = $value;
$beforeDrCd = $value['DCF_PCF_DR_CD'];
$beforeInstCd = $value['DCF_DSF_INST_CD'];
$beforeSecCd = $value['BLNG_SEC_CD'];
// 該当ページ内の最後のデータの場合、同じ医師情報がある可能性があるので次のデータを検索する為にカウントアップしない
if ($limitCount === $limit + $instDataPerPage - 1) {
$pageLastProcEndFlag = true;
}
else {
$limitCount++;
}
}
} -->
<!-- // アルトマーク課題管理表No.7の修正 End
$i = 0; // チェックボックスの名前つけに利用
// アルトマーク課題管理表No.7の修正
//foreach ($selectDt as $value) {
foreach ($selectDtMerge as $value) {
$i++;
?>
<tr>
<td><div class="checkNum"><input type="checkbox" class="checkbox selected" name="data<?php echo $i ?>" onclick="resultBtDisablead()" value="<?php echo $value['DCF_PCF_DR_CD'] ?>"></div></td>
<td><a href="<?php echo $docInfoPath . "/?id=" . $value['DCF_PCF_DR_CD'] ?>"><?php echo $value['DCF_PCF_DR_CD'] ?></a></td>
<td><?php echo $value['DR_NAME'] ?></td>
<td><a href="<?php echo $instInfoPath . "/?id=" . $value['DCF_DSF_INST_CD'] ?>"><?php echo $value['FORM_INST_NAME_KANJI'] ?></a></td>
<td><?php echo $value['BLNG_SEC_NAME'] ?></td>
<td><?php echo $value['TRT_COURSE_NAME'] ?></td>
<td><?php echo $value['FORM_POST_NAME'] ?></td>
<td><?php echo $value['ALMA'] ?></td>
<td><?php echo $value['GRAD_Y'] ?></td>
</tr>
<?php
}
?> -->
<!-- </tbody>
<?php
}
?> -->
</table>
<!--
※ ここに埋めよう
<?php
if ($resultMaxFlg && $isDBSuccess) {
?>
<div class="notFind"><?php echo $resultMaxMsg ?></div>
<?php
} else if (isset($_POST['search_bt']) && $dtCnt['countNum'] <= 0 && $isDBSuccess){
?>
<div class="notFind"><?php echo $notFindMsg ?></div>
<?php
} ?> -->
</div>
<!--操作ボタン-->
<input class="send ult_bt info_bt" type="submit" name="detail" value="医師情報">
</form>
<!-- ダイアログ -->
<!-- <div id="error" title="エラー">
<div style="float: left;width: 15%"><img class="ErrorImg" style="width: 50px;" src="/common/css/image/error.png"></div>
<div id="errorTxt" style="float: right; white-space: normal; width: 300px;"></div>
</div> -->
<!-- <?php
// DBエラーしていないか
if(!$isDBSuccess){
print "<script language=javascript>CreateDialog();</script>";
print "<script language=javascript>DisplayErrorDialog('$dbErrMsg');</script>";
}
?> -->
<!-- DB接続失敗エラーモーダル -->
<!-- {% with
modal_id='ErrorModal_DB',
modal_title='エラー',
message='DB接続に失敗しました。管理者にお問い合わせください。',
icon_key='warning',
modal_close_event='location.href="/logout?reason="',
buttons = [
{
'id': 'error_modal_db',
'class': 'btn btn-primary',
'text': 'OK',
'onclick_event': 'location.href="/logout?reason=''"'
}
]
%}
{% include '_modal.html' %}
{% endwith %} -->
<script type="text/javascript">
// <! --ページネーションの作成-- >
$(function() {
// スピナー出さない場合は以下、エスケープせず埋め込む
// {% autoescape False%}
let searchResultString = '{}'
// {% endautoescape%}
const searchResultData = JSON.parse(searchResultString)
if (searchResultData.length == 0) {
return
}
$(".pagination").pagination({
// 以下はテスト用コード
dataSource: function(done) {
done(searchResultData)
},
pageNumber: 1, // 初期ページ番号
pageSize: 50, //表示するコンテンツ数
pageRange: 2, //選択されているページネーション番号の両隣に表示する個数
ellipsisText: '...', //省略文字
prevText: 'Prev', //「前へ」の文字。エスケープ文字
nextText: 'Next', //「次へ」の文字。エスケープ文字
showNavigator: true,
formatNavigator: '件数: <%= totalNumber %>件 ページ数: <%= totalPage %>',
callback: function(data, pagination) {
$('#result_data').html(pagination_content(data))
}
})
});
function pagination_content(datas) {
const display_keys = [
'slip_org_kbn',
'slip_mgt_no',
'rec_ymd',
'rec_whs_cd',
'rec_whs_sub_cd',
'whs_nm',
'rec_whs_org_cd',
'rec_urag_no',
'rev_hsdnymd_srk',
'rec_tran_kbn',
'tran_kbn_nm',
'mkr_cd',
'rec_comm_cd',
'comm_nm',
'whs_rep_comm_nm',
'nnsk_cd',
'rec_nnskfcl_nm',
'whs_rep_nnskfcl_nm',
'rec_nnsk_fcl_addr',
'whs_rep_nnsk_fcl_addr',
'rec_lot_num',
'amt_fugo',
'expr_dt',
'data_kbn',
'lot_no_err_flg',
'bef_slip_mgt_no',
'ins_usr',
'ins_dt',
'inst_cd',
'inst_name_form',
'address',
'tel_no',
'v_whs_cd',
'v_whsorg_cd',
'whs_org_nm',
'v_tran_cd',
'iko_flg',
];
const tableRow = document.createElement('tr')
return datas.map(function (data) {
return `
<tr class="result_data">
${display_keys.map((key) =>`<td>${data[key] || ''}</td>`)}
</tr>
`
})
return tableRow
}
</script>
</body>
</html>

View File

@ -11,7 +11,7 @@
<h1>MeDaCA<br/>機能メニュー</h1>
<br><br>
{% if menu.is_available_ult_doctor_menu() %}
<a href="{{docSearchPath}}" class="btn btn-primary btn-lg btn_width">Ultmarc照会医師</a><br><br>
<a href="/ultmarc/docSearch" class="btn btn-primary btn-lg btn_width">Ultmarc照会医師</a><br><br>
{% endif %}
{% if menu.is_available_ult_inst_menu() %}
<a href="{{instSearchPath}}" class="btn btn-primary btn-lg btn_width">Ultmarc照会施設</a><br><br>