医師検索画面の側だけ
This commit is contained in:
parent
5a92b2c263
commit
87364d7e83
90
ecs/jskult-webapp/src/controller/ultmarc.py
Normal file
90
ecs/jskult-webapp/src/controller/ultmarc.py
Normal 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
|
||||
@ -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')
|
||||
|
||||
671
ecs/jskult-webapp/src/static/css/ultStyle.css
Normal file
671
ecs/jskult-webapp/src/static/css/ultStyle.css
Normal file
@ -0,0 +1,671 @@
|
||||
body {
|
||||
background-color: LightCyan;
|
||||
font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "MS 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;
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
744
ecs/jskult-webapp/src/templates/docSearch.html
Normal file
744
ecs/jskult-webapp/src/templates/docSearch.html
Normal 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>
|
||||
@ -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>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user