検索項目がサーバーに渡るようになった

This commit is contained in:
野間 2023-05-30 17:45:13 +09:00
parent 1cb9046402
commit 6497a0b86d
3 changed files with 82 additions and 27 deletions

View File

@ -6,7 +6,7 @@ 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.request.ultmarc_doctor import UltmarcDoctorModel
from src.model.view.bio_view_model import BioViewModel
from src.router.session_router import AuthenticatedRoute
from src.services.batch_status_service import BatchStatusService
@ -25,7 +25,7 @@ router.route_class = AuthenticatedRoute
@router.get('/docSearch')
def ultmarc_view(
def ultmarc_doctor_view(
request: Request,
batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService)),
ultmarc_service: UltmarcViewService = Depends(get_service(UltmarcViewService))
@ -59,25 +59,30 @@ def ultmarc_view(
return templates_response
@router.post('/BioSearchList')
def search_bio(
@router.post('/docSearch')
def search_doc(
request: Request,
bio_form: Optional[BioModel] = Depends(BioModel.as_form),
bio_service: BioViewService = Depends(get_service(BioViewService)),
ultmarc_doctor_form: Optional[UltmarcDoctorModel] = Depends(UltmarcDoctorModel.as_form),
ultmarc_service: UltmarcViewService = Depends(get_service(UltmarcViewService)),
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)
# is_batch_processing = batch_status_service.is_batch_processing()
# 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)
ultmarc_doctor_data = []
# 検索項目などのデータを取得
bio: BioViewModel = bio_service.prepare_bio_view(session)
bio.bio_data = bio_sales_view_data
bio.form_data = bio_form
ultmarc = ultmarc_service.prepare_ultmarc_doctor_view(session)
ultmarc.is_batch_processing = batch_status_service.is_batch_processing()
ultmarc.doctor_data = ultmarc_doctor_data
# bio: BioViewModel = bio_service.prepare_bio_view(session)
# bio.bio_data = ultmarc_doctor_data
# bio.form_data = bio_form
# セッション書き換え
session.update(
actions=[
@ -87,9 +92,9 @@ def search_bio(
)
session_key = set_session(session)
templates_response = templates.TemplateResponse(
'bioSearchList.html', {
'docSearch.html', {
'request': request,
'bio': bio
'ultmarc': ultmarc,
},
headers={'session_key': session_key}
)

View File

@ -0,0 +1,51 @@
from typing import Optional
from fastapi import Form
from pydantic import BaseModel
from src.util.sanitize import sanitize
@sanitize
class UltmarcDoctorModel(BaseModel):
dcf_pcf_dr_cd: Optional[str]
dr_name: Optional[str]
dr_name_kana: Optional[str]
dcf_dsf_inst_cd: Optional[str]
form_inst_name_kanji: Optional[str]
form_inst_name_kana: Optional[str]
prefc_cd: Optional[str]
blng_sec_name: Optional[str]
trt_course_name: Optional[str]
alma: Optional[str]
grad_y: Optional[str]
@classmethod
def as_form(
cls,
ctrl_dcf_pcf_dr_cd: str = Form(None),
ctrl_dr_name: str = Form(None),
ctrl_dr_name_kana: str = Form(None),
ctrl_dcf_dsf_inst_cd: str = Form(None),
ctrl_form_inst_name_kanji: str = Form(None),
ctrl_form_inst_name_kana: str = Form(None),
ctrl_prefc_cd: str = Form(None),
ctrl_blng_sec_name: str = Form(None),
ctrl_trt_course_name: str = Form(None),
ctrl_alma: str = Form(None),
ctrl_grad_y: str = Form(None)
):
return cls(
dcf_pcf_dr_cd=ctrl_dcf_pcf_dr_cd,
dr_name=ctrl_dr_name,
dr_name_kana=ctrl_dr_name_kana,
dcf_dsf_inst_cd=ctrl_dcf_dsf_inst_cd,
form_inst_name_kanji=ctrl_form_inst_name_kanji,
form_inst_name_kana=ctrl_form_inst_name_kana,
prefc_cd=ctrl_prefc_cd,
blng_sec_name=ctrl_blng_sec_name,
trt_course_name=ctrl_trt_course_name,
alma=ctrl_alma,
grad_y=ctrl_grad_y
)

View File

@ -180,15 +180,14 @@ if (!isset($isDBSuccess)) {
<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()">
<input class="text docSearchTextbox" style="ime-mode:disabled;" type="text" name="ctrl_dcf_pcf_dr_cd" 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)">
<input class="text docSearchTextbox" type="text" name="ctrl_dr_name" value="" oninput="formBtDisabled()">
<!-- <?php if(isset($_SESSION["docTextbox_3"])) {
echo $_SESSION["docTextbox_2"];
} ?> -->
@ -196,7 +195,7 @@ if (!isset($isDBSuccess)) {
<!-- アルトマーク課題管理表No.8の修正 氏名(カナ)→氏名(かな・カナ) -->
<td class="docSearchColumnTd">氏名(かな・カナ)</td>
<td class="docSearchTextboxTd">
<input class="text docSearchTextbox" type="text" name="textbox_3" value="" oninput="formBtDisabled(controlCount)">
<input class="text docSearchTextbox" type="text" name="ctrl_dr_name_kana" value="" oninput="formBtDisabled()">
<!-- <?php if(isset($_SESSION["docTextbox_3"])) {
echo $_SESSION["docTextbox_3"];
} ?> -->
@ -205,14 +204,14 @@ if (!isset($isDBSuccess)) {
<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()">
<input class="text docSearchTextbox" style="ime-mode:disabled;" type="text" name="ctrl_dcf_dsf_inst_cd" 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)">
<input class="text docSearchTextbox" type="text" name="ctrl_form_inst_name_kanji" value="" oninput="formBtDisabled()">
<!-- <?php if(isset($_SESSION["docTextbox_5"])) {
echo $_SESSION["docTextbox_5"];
} ?> -->
@ -220,7 +219,7 @@ if (!isset($isDBSuccess)) {
<!-- アルトマーク課題管理表No.8の修正 勤務先名(カナ)→勤務先名(かな・カナ) -->
<td class="docSearchColumnTd">勤務先名(かな・カナ)</td>
<td class="docSearchTextboxTd">
<input class="text docSearchTextbox" type="text" name="textbox_6" value="" oninput="formBtDisabled(controlCount)">
<input class="text docSearchTextbox" type="text" name="ctrl_form_inst_name_kana" value="" oninput="formBtDisabled()">
<!-- <?php if(isset($_SESSION["docTextbox_6"])) {
echo $_SESSION["docTextbox_6"];
} ?> -->
@ -231,7 +230,7 @@ if (!isset($isDBSuccess)) {
<td class="docSearchColumnTd">勤務先都道府県:</td>
<td class="search_tb">
<!-- 都道府県のドロップダウン -->
<select class="text search_dropdown" name="textbox_11" onchange="formBtDisabled()" onkeyup="formBtDisablead()">
<select class="text search_dropdown" name="ctrl_prefc_cd" onchange="formBtDisabled()" onkeyup="formBtDisablead()">
<!--ToDo 都道府県ドロップダウンの中身を作成(マスタからとってこれる) -->
<option value=""></option>
{% for prefc in ultmarc.prefc_models %}
@ -253,14 +252,14 @@ if (!isset($isDBSuccess)) {
<!-- アルトマーク課題管理表No.2の追加 End -->
<td class="docSearchColumnTd">所属部科(漢字)</td>
<td class="docSearchTextboxTd">
<input class="text docSearchTextbox" type="text" name="textbox_7" value="" oninput="formBtDisabled(controlCount)">
<input class="text docSearchTextbox" type="text" name="ctrl_blng_sec_name" value="" oninput="formBtDisabled()">
<!-- <?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)">
<input class="text docSearchTextbox" type="text" name="ctrl_trt_course_name" value="" oninput="formBtDisabled()">
<!-- <?php if(isset($_SESSION["docTextbox_8"])) {
echo $_SESSION["docTextbox_8"];
} ?> -->
@ -269,18 +268,18 @@ if (!isset($isDBSuccess)) {
<tr>
<td class="docSearchColumnTd">出身大学(漢字)</td>
<td class="docSearchTextboxTd">
<input class="text docSearchTextbox" type="text" name="textbox_9" value="" oninput="formBtDisabled(controlCount)">
<input class="text docSearchTextbox" type="text" name="ctrl_alma" value="" oninput="formBtDisabled()">
<!-- <?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>
<td class="docSearchTextboxTd"><input class="text docSearchTextbox" style="ime-mode:disabled;" type="text" name="ctrl_grad_y" value="" maxlength='4' oninput="formBtDisabled()"></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="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>
</tr>