2024-12-25 03:04:59 +00:00
< ? php
use common\models\ConstDoctor ;
use common\models\ConstHospital ;
use common\models\ConstNationality ;
use common\models\ConstRace ;
use common\models\ConstRights ;
use common\models\ConstWard ;
use common\models\PatientTitle ;
use common\models\SurgicalDiagnosis ;
use common\models\SurgicalImg ;
use dosamigos\ckeditor\CKEditor ;
use kartik\datetime\DateTimePicker ;
use kartik\select2\Select2 ;
use yii\bootstrap5\ActiveForm ;
use yii\helpers\ArrayHelper ;
use yii\helpers\Html ;
use yii\helpers\Url ;
use yii\widgets\MaskedInput ;
$this -> title = Html :: encode ( 'Surgical Revised Report : ' . $model -> id_case . ' - ' . isset ( $model -> surgical ) ? $model -> surgical -> getFullname () : '' );
$this -> params [ 'breadcrumbs' ][] = [ 'label' => Html :: encode ( $model -> id_case ), 'url' => [ 'surgical' , 'id_case' => $model -> id_case ]];
$this -> params [ 'breadcrumbs' ][] = $this -> title ;
?>
< ? = $this -> render ( '_all_report_surgical' , [
'dataProviderReport' => $dataProviderReport ,
'case_surgical' => $case_surgical
]) ?>
< ? php $form = ActiveForm :: begin ([
'id' => 'diagnosis-form' ,
'options' => [ 'onsubmit' => 'handleFormSubmit(event)' ] // ไม่คืนค่าจาก function
]) ?>
< ? = Html :: hiddenInput ( 'surgical' , '' , [ 'id' => 'surgical-hidden-input' ]) ?>
< ? = $this -> render ( '_js_pass_surgical' ) ?>
< ? php /* $this -> render ( '_patient_surgical_form' , [
'form' => $form ,
'case_surgical' => $case_surgical
]) */ ?>
< ? = $form -> errorSummary ( $case_surgical ) ?>
< div class = " card shadow mb-5 " >
< div class = " card-header " >
< h5 class = " card-title " >< i class = " ri-file-text-line " ></ i > Gross Description </ h5 >
</ div >
< div class = " card-body " >
< div class = " row " >
< ? php
if ( is_dir ( Yii :: getAlias ( '@webroot' ) . '/GrossPhoto/' . $case_surgical -> id_case )) {
$files = \yii\helpers\FileHelper :: findFiles ( Yii :: getAlias ( '@webroot' ) . '/GrossPhoto/' . $case_surgical -> id_case );
if ( isset ( $files [ 0 ])) {
foreach ( $files as $index => $file ) {
$nameFicheiro = substr ( $file , strrpos ( $file , '\\' ) + 1 );
echo " <div class= \" col-md-2 \" > " . ( Html :: a ( Html :: img ( Yii :: getAlias ( '@web' ) . '/GrossPhoto/' . $case_surgical -> id_case . '/' . $nameFicheiro , [ 'class' => 'img-fluid' ]), Url :: base () . '/GrossPhoto/' . $case_surgical -> id_case . '/' . $nameFicheiro , [ 'target' => '_blank' ])) . " </div> " ; // render do ficheiro no browser
}
}
}
?>
</ div >
< br >
< ? php if ( ! empty ( $case_surgical -> files )) { ?>
< h6 class = " mt-4 " ></ span > Request file </ h6 >
< i class = " ri-link-m " ></ i >< ? php
foreach ( $case_surgical -> getFiles () as $file => $val ) {
?>
< li >< ? = Html :: a ( $val , Yii :: getAlias ( '@web' ) . '/uploads/surgical/file/' . $val , [ 'target' => '_blank' ]); ?>
</ li >
< ? php } ?>
< ? php } ?>
< div class = " row " >
< ? php
$directoryPath = Yii :: getAlias ( '@webroot' ) . '/uploads/surgical/gross/' . $case_surgical -> id_case ;
if ( is_dir ( $directoryPath )) {
$files = \yii\helpers\FileHelper :: findFiles ( $directoryPath );
if ( ! empty ( $files )) {
foreach ( $files as $index => $file ) {
$nameFicheiro = basename ( $file );
$filePath = Yii :: getAlias ( '@web' ) . '/uploads/surgical/gross/' . $case_surgical -> id_case . '/' . $nameFicheiro ;
echo " <div class= \" col-md-2 \" > " . Html :: a ( Html :: img ( $filePath , [ 'class' => 'img-fluid' ]), $filePath , [ 'target' => '_blank' ]) . " </div> " ;
}
}
}
?>
</ div >
< div class = " mt-4 " >
< ? php
$surgical_img = SurgicalImg :: find () -> where ([ 'id_case' => $case_surgical -> id_case ]) -> all ();
if ( $surgical_img ) { ?>
< h5 class = " mt-4 " >< i class = " ri-image-fill " ></ i ></ span > รูปภาพชิ้นเนื้อ </ h5 >
< ? php foreach ( $surgical_img as $item ) { ?>
< ? = Html :: a ( Html :: img ( Yii :: getAlias ( '@web' ) . '/uploads/surgical/img/' . $item -> file_path , [ 'class' => 'img-fluid' , 'width' => 300 ]), Yii :: getAlias ( '@web' ) . '/uploads/surgical/img/' . $item -> file_path , [ 'target' => '_blank' ]) ?>
< ? php } ?>
< ? php } ?>
</ div >
< ? php if ( ! empty ( $case_surgical -> gross_img )) { ?>
< h6 class = " mt-4 " >< i class = " ri-image-fill " ></ i ></ span > Gross Image </ h6 >
< div style = " width: 250px " >< ? = $case_surgical -> getGrossImgs () ?> </div>
< ? php } ?>
< ? = $form -> field ( $model , 'is_edit_patient_information' ) -> checkbox ()
?>
< ? php $this -> registerJs ( '
if ( $ ( " #' . Html::getInputId( $model , 'is_edit_patient_information') . ' " ) . is ( " :checked " )) {
$ ( " .patient-information " ) . show ( 200 );
} else {
$ ( " .patient-information " ) . hide ( 300 );
}
$ ( " #' . Html::getInputId( $model , 'is_edit_patient_information') . ' " ) . on ( " click " , function () {
if ( $ ( this ) . is ( " :checked " )) {
$ ( " .patient-information " ) . show ( 200 );
} else {
$ ( " .patient-information " ) . hide ( 300 );
}
});
' ) ?>
< div class = " patient-information " style = " display: none " >
< h5 class = " mt-4 " >< i class = " ri-file-user-line " ></ i > ข้อมูลผู้ป่วย
( Patient ) </ h5 >
< div class = " mt-4 " >
< div class = " row " >
< div class = " col-md-2 " >
< ? = $form -> field ( $case_surgical , 'hospital_id' ) -> widget ( Select2 :: class , [
'data' => ArrayHelper :: map ( ConstHospital :: find () -> orderBy ([ 'name' => SORT_ASC ]) -> all (), 'id' , 'name' ), //->where('id > 1')
'options' => [ 'placeholder' => 'เลือกหน่วยงาน' ],
//'initValueText' => (!$model->isNewRecord ? ConstHospital::findOne($model->hospital_id)->name : ''),
'theme' => Select2 :: THEME_BOOTSTRAP ,
'pluginOptions' => [
'allowClear' => true ,
//'minimumInputLength' => 3,
],
]) ?>
</ div >
< div class = " col-md-2 " >
< ? = $form -> field ( $case_surgical , 'title_id' ) -> dropDownList ( ArrayHelper :: map ( PatientTitle :: find () -> orderBy ([ 'name' => SORT_ASC ]) -> all (), 'id' , 'name' )) ?>
</ div >
< div class = " col-md-3 " >< ? = $form -> field ( $case_surgical , 'given_name' ) ?> </div>
< div class = " col-md-3 " >< ? = $form -> field ( $case_surgical , 'surname' ) ?> </div>
< div class = " col-md-2 " >
< ? = $form -> field ( $case_surgical , 'gender' ) -> dropDownList ([ 'U' => '' , 'M' => 'ชาย' , 'F' => 'หญิง' ]) ?>
</ div >
</ div >
< div class = " row " >
< div class = " col-md-2 " >
< ? = $form -> field ( $case_surgical , 'nation' ) -> dropDownList ( ArrayHelper :: map ( ConstNationality :: find () -> all (), 'code' , 'name' ), [ 'prompt' => 'Select Nationality...' ]) ?>
</ div >
< div class = " col-md-2 " >
< ? = $form -> field ( $case_surgical , 'race' ) -> dropDownList ( ArrayHelper :: map ( ConstRace :: find () -> all (), 'code' , 'name' ), [ 'prompt' => 'Select Nationality...' ]) ?>
</ div >
< div class = " col-md-3 " >< ? = $form -> field ( $case_surgical , 'id_card' ) -> widget ( MaskedInput :: class , [
'mask' => '9-9999-99999-99-9'
]) ?> </div>
< div class = " col-md-2 " >< ? = $form -> field ( $case_surgical , 'birthdate' ) -> widget ( MaskedInput :: class , [
'mask' => '99/99/9999' ,
'options' => [
'id' => 'patient-birthdate' ,
],
])
?>
</ div >
< div class = " col-md-2 " >< ? = $form -> field ( $case_surgical , 'age' ) -> textInput ([ 'id' => 'patient-age' ]) ?>
</ div >
< div class = " col-md-1 " >
< ? = $form -> field ( $case_surgical , 'age_unit' ) -> dropDownList ([ 'ปี' => 'ปี' , 'เดือน' => 'เดือน' , 'วัน' => 'วัน' ], [ 'id' => 'patient-age_unit' ]) ?>
</ div >
< div class = " col-md-3 " >< ? = $form -> field ( $case_surgical , 'h_n' ) ?> </div>
< div class = " col-md-3 " >< ? = $form -> field ( $case_surgical , 'a_n' ) ?> </div>
< div class = " col-md-3 " >
< ? = $form -> field ( $case_surgical , 'doctor_id' ) -> widget ( Select2 :: class , [
'data' => ArrayHelper :: map (
ConstDoctor :: find () -> orderBy ([ 'surname' => SORT_ASC ]) -> all (),
'id' ,
function ( $case_surgical ) {
return $case_surgical -> prefix . ' ' . $case_surgical -> surname . ' ' . $case_surgical -> lastname ;
}
), //->where('id > 1')
'theme' => Select2 :: THEME_BOOTSTRAP ,
'pluginOptions' => [
'allowClear' => true ,
//'minimumInputLength' => 3,
'placeholder' => 'เลือกแพทย์เจ้าของคนไข้....'
],
]) ?>
< ? php // $form->field($model, 'clinician')->textInput()
?>
</ div >
< div class = " col-md-3 " >
< ? = $form -> field ( $case_surgical , 'ward_id' ) -> widget ( Select2 :: class , [
'data' => ArrayHelper :: map ( ConstWard :: find () -> orderBy ([ 'name' => SORT_ASC ]) -> all (), 'id' , 'name' ), //->where('id > 1')
/* 'options' => [
'placeholder' => 'เลือกสิทธิ์การรักษา ....' ,
], */
'theme' => Select2 :: THEME_BOOTSTRAP ,
'pluginOptions' => [
'allowClear' => true ,
//'minimumInputLength' => 3,
'placeholder' => 'เลือกแผนก....'
],
]) ?>
</ div >
< div class = " col-md-3 " >
< ? = $form -> field ( $case_surgical , 'rights_id' ) -> widget ( Select2 :: class , [
'data' => ArrayHelper :: map ( ConstRights :: find () -> orderBy ([ 'name' => SORT_ASC ]) -> all (), 'id' , 'name' ), //->where('id > 1')
'theme' => Select2 :: THEME_BOOTSTRAP ,
'pluginOptions' => [
'allowClear' => true ,
'placeholder' => 'เลือกสิทธิ์การรักษา....'
],
]) ?>
</ div >
<!--< div class = " col-md-3 " >< ? php // $form->field($case_surgical, 'specimen')
?> </div>-->
< div class = " col-md-3 " >
< ? = $form -> field ( $case_surgical , 'collected_at' ) -> widget ( DateTimePicker :: class , [
'options' => [ 'placeholder' => 'เลือกวันที่เก็บสิ่งส่งตรวจ ...' ],
'pluginOptions' => [
'format' => 'dd/mm/yyyy' ,
'allowClear' => true ,
'autoclose' => true ,
'todayHighlight' => true ,
'todayBtn' => true ,
'endDate' => date ( 'd/m/Y' )
]
])
?>
</ div >
< div class = " col-md-3 " >
< ? = $form -> field ( $case_surgical , 'receive_at' ) -> widget ( DateTimePicker :: class , [
'options' => [ 'placeholder' => 'เลือกวันที่รับสิ่งส่งตรวจ ...' ],
'pluginOptions' => [
'format' => 'dd/mm/yyyy' ,
'allowClear' => true ,
'autoclose' => true ,
'todayHighlight' => true ,
'todayBtn' => true ,
'endDate' => date ( 'd/m/Y' )
]
]) ?>
</ div >
< div class = " col-md-3 " >
< ? = $form -> field ( $case_surgical , 'his_ln' ) -> textInput ([ 'readonly' => true ]) ?>
</ div >
</ div >
< div class = " row " >
< div class = " col-md-12 " >
< ? = $form -> field ( $case_surgical , 'review_remark' ) -> textarea ([ 'rows' => 5 , 'cols' => 50 ]) ?>
</ div >
</ div >
</ div >
</ div >
< h6 class = " mb-3 " >< strong > Specimen And
Clinical Information </ strong >
</ h6 >
< ? = $form -> field ( $case_surgical , 'clinical_diagnosis' ) -> label ( false ) -> textarea ([ 'spellcheck' => true ]) -> widget ( CKEditor :: className (), [
'preset' => 'custom' ,
'clientOptions' => [
'height' => 150 ,
'removePlugins' => 'scayt' ,
'disableNativeSpellChecker' => false ,
'extraPlugins' => 'font,justify,colorbutton,iframe,dialogadvtab,liststyle' ,
'removeButtons' => 'Source,Save,NewPage,Preview,Print,Templates,Find,SelectAll,Form,Checkbox,Radio,TextField,Textarea,Select,Button,ImageButton,HiddenField,CopyFormatting,Blockquote,CreateDiv,BidiLtr,BidiRtl,Language,Link,Unlink,Anchor,Image,Flash,Table,HorizontalRule,Smiley,PageBreak,Iframe,ShowBlocks,About,Replace,Snippet' ,
'toolbarGroups' => [
[ 'name' => 'clipboard' , 'groups' => [ 'undo' , 'redo' , 'cut' , 'copy' , 'paste' , 'clipboard' ]],
[ 'name' => 'styles' , 'groups' => [ 'font' ]],
[ 'name' => 'colors' , 'groups' => [ 'TextColor' , 'BGColor' ]],
[ 'name' => 'basicstyles' , 'groups' => [ 'basicstyles' , 'cleanup' ]],
[ 'name' => 'paragraph' , 'groups' => [ 'list' , 'align' , 'bidi' , 'paragraph' ]],
[ 'name' => 'editing' , 'groups' => [ 'find' , 'selection' , /*'spellchecker'*/ ]],
//['name' => 'tools', 'groups' => ['dialogadvtab', 'devtools', 'div']],
[ 'name' => 'insert' , 'groups' => [ 'specialchar' ]],
//['name' => 'tools', 'groups' => ['maximize']],
],
]
]) ?>
< h6 class = " mb-3 " >< strong >< span data - feather = " file " style = " width: 17px; margin-bottom: -5px; " ></ span > Gross
Description </ strong >
</ h6 >
< div class = " mb-3 " >
< ? = $form -> field ( $case_surgical , 'gross_description' ) -> label ( false ) -> textarea ([ 'spellcheck' => true ]) -> widget ( CKEditor :: className (), [
'preset' => 'custom' ,
'clientOptions' => [
'height' => 150 ,
'removePlugins' => 'scayt' ,
'disableNativeSpellChecker' => false ,
'extraPlugins' => 'font,justify,colorbutton,iframe,dialogadvtab,liststyle' ,
'removeButtons' => 'Source,Save,NewPage,Preview,Print,Templates,Find,SelectAll,Form,Checkbox,Radio,TextField,Textarea,Select,Button,ImageButton,HiddenField,CopyFormatting,Blockquote,CreateDiv,BidiLtr,BidiRtl,Language,Link,Unlink,Anchor,Image,Flash,Table,HorizontalRule,Smiley,PageBreak,Iframe,ShowBlocks,About,Replace,Snippet' ,
'toolbarGroups' => [
[ 'name' => 'clipboard' , 'groups' => [ 'undo' , 'redo' , 'cut' , 'copy' , 'paste' , 'clipboard' ]],
[ 'name' => 'styles' , 'groups' => [ 'font' ]],
[ 'name' => 'colors' , 'groups' => [ 'TextColor' , 'BGColor' ]],
[ 'name' => 'basicstyles' , 'groups' => [ 'basicstyles' , 'cleanup' ]],
[ 'name' => 'paragraph' , 'groups' => [ 'list' , 'align' , 'bidi' , 'paragraph' ]],
[ 'name' => 'editing' , 'groups' => [ 'find' , 'selection' , /*'spellchecker'*/ ]],
//['name' => 'tools', 'groups' => ['dialogadvtab', 'devtools', 'div']],
[ 'name' => 'insert' , 'groups' => [ 'specialchar' ]],
//['name' => 'tools', 'groups' => ['maximize']],
],
]
]) ?>
</ div >
< ? = Html :: button ( '<i class="ri-file-text-line"></i> Gross Template' , [ 'class' => 'btn btn-info activity-select-gross-template' , 'data' => [ 'bs-toggle' => 'modal' , 'bs-target' => '#activity-modal-gross' ]]) ?>
<!--< div class = " gorss-by " >
Write gross by : < ? php /* isset ( $case_surgical -> gross ) ? Html :: encode ( $case_surgical -> gross -> realname ) : '' ?>
at : < ? = $case_surgical -> gross_at ?>
< ? php if ( isset ( $case_surgical -> cut )) { ?>
Cut by : < ? = $case_surgical -> cut -> report_name ?>
< ? php } ?>
< ? php if ( isset ( $case_surgical -> write )) { ?>
Write by : < ? = $case_surgical -> write -> report_name ?>
< ? php } */ ?>
</ div >-->
</ div >
</ div >
< div class = " card shadow mb-5 " >
< div class = " card-header " >
< h5 class = " card-title " >< i class = " ri-file-text-line " ></ i > Revised Report </ h5 >
</ div >
< div class = " card-body " >
< div class = " mb-3 " >
< h6 class = " mb-3 " >
Microscopic
Description </ strong ></ h6 >
< ? = $form -> field ( $model , 'microscopic_description' ) -> label ( false ) -> textarea ([ 'spellcheck' => true ]) -> widget ( CKEditor :: className (), [
'preset' => 'custom' ,
'clientOptions' => [
'height' => 200 ,
'removePlugins' => 'scayt' ,
'disableNativeSpellChecker' => false ,
'extraPlugins' => 'font,justify,colorbutton,iframe,dialogadvtab,liststyle' ,
'removeButtons' => 'Source,Save,NewPage,Preview,Print,Templates,Find,SelectAll,Form,Checkbox,Radio,TextField,Textarea,Select,Button,ImageButton,HiddenField,CopyFormatting,Blockquote,CreateDiv,BidiLtr,BidiRtl,Language,Link,Unlink,Anchor,Image,Flash,Table,HorizontalRule,Smiley,PageBreak,Iframe,ShowBlocks,About,Replace,Snippet' ,
'toolbarGroups' => [
[ 'name' => 'clipboard' , 'groups' => [ 'undo' , 'redo' , 'cut' , 'copy' , 'paste' , 'clipboard' ]],
[ 'name' => 'styles' , 'groups' => [ 'font' ]],
[ 'name' => 'colors' , 'groups' => [ 'TextColor' , 'BGColor' ]],
[ 'name' => 'basicstyles' , 'groups' => [ 'basicstyles' , 'cleanup' ]],
[ 'name' => 'paragraph' , 'groups' => [ 'list' , 'align' , 'bidi' , 'paragraph' ]],
[ 'name' => 'editing' , 'groups' => [ 'find' , 'selection' , /*'spellchecker'*/ ]],
//['name' => 'tools', 'groups' => ['dialogadvtab', 'devtools', 'div']],
[ 'name' => 'insert' , 'groups' => [ 'specialchar' ]],
//['name' => 'tools', 'groups' => ['maximize']],
],
]
]) ?>
</ div >
< div class = " col-md-6 " >
< ? = Html :: button ( '<i class="ri-file-text-line"></i> Microscopic Template' , [ 'class' => 'btn btn-info mb-4 activity-select-microscopic-template' , 'data' => [ 'bs-toggle' => 'modal' , 'bs-target' => '#activity-modal-microscopic' ]]) ?>
< ? = Html :: submitButton ( '<i class="ri-image-add-fill"></i> เพิ่มรูปภาพ Micro' , [ 'class' => 'btn btn-danger mb-4' , 'value' => 'micro' , 'name' => 'surgical' ]) ?>
</ div >
< br >
< div class = " alert alert-info d-flex align-items-center fade show " >
< i class = " ri-alert-line fs-3 me-2 lh-1 " ></ i > กรุณาเลือกรูปภาพ
Microscopic และกดปุ่ม Save เข้าระบบก่อน จึงจะสามารถใส่ Caption ของภาพแล้วกดปุ่ม Save
อีกครั้ง
</ div >
< ? php if ( ! empty ( $model -> microscopic_img )) { ?>
< div class = " micro-img my-1 " >
< ? = $model -> getMicroImageUpdate () ?>
</ div >
< ? php } ?>
< h6 class = " mb-3 " >< strong >
Revised Diagnosis </ strong ></ h6 >
< ? = $form -> field ( $model , 'diagnosis' ) -> label ( false ) -> textarea ([ 'spellcheck' => true ]) -> widget ( CKEditor :: className (), [
'preset' => 'custom' ,
'clientOptions' => [
'height' => 200 ,
'removePlugins' => 'scayt' ,
'disableNativeSpellChecker' => false ,
'extraPlugins' => 'font,justify,colorbutton,iframe,dialogadvtab,liststyle' ,
'removeButtons' => 'Source,Save,NewPage,Preview,Print,Templates,Find,SelectAll,Form,Checkbox,Radio,TextField,Textarea,Select,Button,ImageButton,HiddenField,CopyFormatting,Blockquote,CreateDiv,BidiLtr,BidiRtl,Language,Link,Unlink,Anchor,Image,Flash,Table,HorizontalRule,Smiley,PageBreak,Iframe,ShowBlocks,About,Replace,Snippet' ,
'toolbarGroups' => [
[ 'name' => 'clipboard' , 'groups' => [ 'undo' , 'redo' , 'cut' , 'copy' , 'paste' , 'clipboard' ]],
[ 'name' => 'styles' , 'groups' => [ 'font' ]],
[ 'name' => 'colors' , 'groups' => [ 'TextColor' , 'BGColor' ]],
[ 'name' => 'basicstyles' , 'groups' => [ 'basicstyles' , 'cleanup' ]],
[ 'name' => 'paragraph' , 'groups' => [ 'list' , 'align' , 'bidi' , 'paragraph' ]],
[ 'name' => 'editing' , 'groups' => [ 'find' , 'selection' , /*'spellchecker'*/ ]],
//['name' => 'tools', 'groups' => ['dialogadvtab', 'devtools', 'div']],
[ 'name' => 'insert' , 'groups' => [ 'specialchar' ]],
//['name' => 'tools', 'groups' => ['maximize']],
],
]
]) ?>
< ? = Html :: button ( '<i class="ri-file-text-line"></i> Diagnosis Template' , [ 'class' => 'btn btn-info mb-4 activity-select-diagnosis-template' , 'data' => [ 'bs-toggle' => 'modal' , 'bs-target' => '#activity-modal-diagnosis' ]]) ?>
< div class = " mt-4 " >
< ? = $this -> render ( '_coder_surgical_form' , [
'form' => $form ,
'model' => $model ,
]) ?>
</ div >
< h6 class = " mt-4 " > Critical Diagnosis </ h6 >
< ? = $form -> field ( $model , 'is_critical_diagnosis' ) -> checkbox ([
'labelOptions' => [
'style' => 'color:red'
]
]) ?>
< div class = " mt-4 " >
< i class = " ri-map-pin-user-fill " ></ i > Register by
: < ? = isset ( $case_surgical -> register ) ? $case_surgical -> register -> realname : ' ' ?>
at : < ? = $case_surgical -> register_at ?>
</ div >
</ div >
</ div >
<!-- slide qa -->
< div class = " row m-t-20 " >
< div class = " col-md-12 " >
< div class = " accordion mb-4 " id = " accordion " role = " tablist " aria - multiselectable = " true " >
< div class = " card shadow " >
< div class = " card-header " role = " tab " id = " headingOne " >
< h5 class = " card-title " >
< a role = " button " data - bs - toggle = " collapse " data - parent = " #accordion " href = " #collapseSlideOne "
aria - expanded = " false " aria - controls = " collapseSlideOne " >
< i class = " ri-checkbox-multiple-fill " ></ i >
ประเมินคุณภาพสไลด์ กลุ่มงานจุลพยาธิ
</ a >
</ h5 >
</ div >
< div id = " collapseSlideOne " class = " panel-collapse collapse " role = " tabpanel " aria - labelledby = " headingOne " >
< div class = " card-body " >
< ? = $form -> errorSummary ( $slide_qa_he ) ?>
< div class = " table-responsive " >
< br />
< h6 class = " mt-4 " >< strong > หมายเลข </ strong ></ h6 >
< ? = $form -> field ( $slide_qa_he , 'slide_no' ) -> label ( false ) -> inline () -> textarea () ?>
< br />
< table class = " table table-bordered table-hover table-striped " >
< thead >
< tr >
< th >
NO
</ th >
< th >
งานย้อมธรรมดา
</ th >
< th >
</ th >
</ tr >
</ thead >
< tbody >
< tr >
< td >
1
</ td >
< td >
การติดสีย้อมH & Eซีด / เข้มเกินไป
</ td >
< td >
< ? = $form -> field ( $slide_qa_he , 'q1' ) -> label ( false ) -> inline () -> radioList ([ 1 => 'ผ่าน' , '2' => 'ไม่ผ่าน' ]) ?>
</ td >
</ tr >
< tr >
< td >
2
</ td >
< td >
มีเศษชิ้นเนื้อปะปนในบล็อก
</ td >
< td >
< ? = $form -> field ( $slide_qa_he , 'q2' ) -> label ( false ) -> inline () -> radioList ([ 1 => 'ผ่าน' , '2' => 'ไม่ผ่าน' ]) ?>
</ td >
</ tr >
< tr >
< td >
3
</ td >
< td >
มีเศษชิ้นเนื้อปะปนในสไลด์
</ td >
< td >
< ? = $form -> field ( $slide_qa_he , 'q3' ) -> label ( false ) -> inline () -> radioList ([ 1 => 'ผ่าน' , '2' => 'ไม่ผ่าน' ]) ?>
</ td >
</ tr >
< tr >
< td >
4
</ td >
< td >
สไลด์มีฟองอากาศ
</ td >
< td >
< ? = $form -> field ( $slide_qa_he , 'q4' ) -> label ( false ) -> inline () -> radioList ([ 1 => 'ผ่าน' , '2' => 'ไม่ผ่าน' ]) ?>
</ td >
</ tr >
< tr >
< td >
5
</ td >
< td >
ติดสติ๊กเกอร์ผิด
</ td >
< td >
< ? = $form -> field ( $slide_qa_he , 'q5' ) -> label ( false ) -> inline () -> radioList ([ 1 => 'ผ่าน' , '2' => 'ไม่ผ่าน' ]) ?>
</ td >
</ tr >
< tr >
< td >
6
</ td >
< td >
มีเศษชิ้นเนื้อปะปนในบล็อก
</ td >
< td >
< ? = $form -> field ( $slide_qa_he , 'q6' ) -> label ( false ) -> inline () -> radioList ([ 1 => 'ผ่าน' , '2' => 'ไม่ผ่าน' ]) ?>
</ td >
</ tr >
< tr >
< td >
7
</ td >
< td >
ชิ้นเนื้อพับย้น
</ td >
< td >
< ? = $form -> field ( $slide_qa_he , 'q7' ) -> label ( false ) -> inline () -> radioList ([ 1 => 'ผ่าน' , '2' => 'ไม่ผ่าน' ]) ?>
</ td >
</ tr >
< tr >
< td >
8
</ td >
< td >
ชิ้นเนื้อไม่เต็มหน้า
</ td >
< td >
< ? = $form -> field ( $slide_qa_he , 'q8' ) -> label ( false ) -> inline () -> radioList ([ 1 => 'ผ่าน' , '2' => 'ไม่ผ่าน' ]) ?>
</ td >
</ tr >
< tr >
< td >
9
</ td >
< td >
Permountล้นขอบสไลด์
</ td >
< td >
< ? = $form -> field ( $slide_qa_he , 'q9' ) -> label ( false ) -> inline () -> radioList ([ 1 => 'ผ่าน' , '2' => 'ไม่ผ่าน' ]) ?>
</ td >
</ tr >
< tr >
< td >
10
</ td >
< td >
ปัญหาอื่นๆ
</ td >
< td >
< ? = $form -> field ( $slide_qa_he , 'q10' ) -> label ( false ) -> inline () -> radioList ([ 1 => 'ผ่าน' , '2' => 'ไม่ผ่าน' ]) ?>
< ? php $this -> registerJs ( "
$ ( \ " input[name=' " . Html :: getInputName ( $slide_qa_he , 'q10' ) . " '] \" ).change(function() {
if ( $ ( \ " input[name=' " . Html :: getInputName ( $slide_qa_he , 'q10' ) . " ']:checked \" ).val() == '2') {
$ ( '.cancle_other' ) . show ();
} else {
$ ( '.cancle_other' ) . hide ();
}
});
" ) ?>
< div class = " cancle_other "
< ? = ! $slide_qa_he -> isNewRecord && $slide_qa_he -> q10 == '2' ? '' : 'style="display: none;"' ?> >
< ? = $form -> field ( $slide_qa_he , 'q10_reason' ) -> textarea ([ 'rows' => 2 ]) -> label ( false ) ?>
</ div >
</ td >
</ tr >
</ tbody >
</ table >
< div class = " mb-3 mt-4 " >
< h6 >* กรุณากรอกหมายเลขไลด์ ก่อนทำการบันทึก </ h6 >
</ div >
< br />
< h6 class = " mt-4 " >< strong > หมายเหตุ </ strong ></ h6 >
< ? = $form -> field ( $slide_qa_he , 'note' ) -> label ( false ) -> inline () -> textarea ([ 'rows' => 5 , 'cols' => 50 ]) ?>
</ div >
</ div >
</ div >
</ div >
</ div >
</ div >
< div class = " col-md-12 " >
< div class = " accordion mb-4 " id = " accordion " role = " tablist " aria - multiselectable = " true " >
< div class = " card shadow " >
< div class = " card-header " role = " tab " id = " headingTwo " >
< h5 class = " card-title " >
< a role = " button " data - bs - toggle = " collapse " data - parent = " #accordion " href = " #collapseSlideTwo "
aria - expanded = " false " aria - controls = " collapseSlideOne " >
< i class = " ri-checkbox-multiple-fill " ></ i >
ประเมินคุณภาพสไลด์ กลุ่มงานพยาธิวิทยากายวิภาค
</ a >
</ h5 >
</ div >
< div id = " collapseSlideTwo " class = " panel-collapse collapse " role = " tabpanel " aria - labelledby = " headingTwo " >
< div class = " card-body " >
< ? = $form -> errorSummary ( $slide_qa_immuno ) ?>
< div class = " table-responsive " >
< br />
< h5 class = " mt-4 " >< strong > หมายเลข </ strong ></ h5 >
< ? = $form -> field ( $slide_qa_immuno , 'slide_no' ) -> label ( false ) -> inline () -> textarea () ?>
< br />
< table class = " table table-bordered table-hover table-striped " >
< thead >
< tr >
< th >
NO
</ th >
< th >
งานย้อม ( IHC )
</ th >
< th >
</ th >
</ tr >
</ thead >
< tbody >
< tr >
< td >
1
</ td >
< td >
หมายเลขสิ่งส่งตรวจและหมายเลขสไลด์ไม่ตรงใบสั่งย้อม
</ td >
< td >
< ? = $form -> field ( $slide_qa_immuno , 'q1' ) -> label ( false ) -> inline () -> radioList ([ 1 => 'ผ่าน' , '2' => 'ไม่ผ่าน' ]) ?>
</ td >
</ tr >
< tr >
< td >
2
</ td >
< td >
ชื้นเนื้อหลุด
</ td >
< td >
< ? = $form -> field ( $slide_qa_immuno , 'q2' ) -> label ( false ) -> inline () -> radioList ([ 1 => 'ผ่าน' , '2' => 'ไม่ผ่าน' ]) ?>
</ td >
</ tr >
< tr >
< td >
3
</ td >
< td >
ไม่มี Positive Control
</ td >
< td >
< ? = $form -> field ( $slide_qa_immuno , 'q3' ) -> label ( false ) -> inline () -> radioList ([ 1 => 'ผ่าน' , '2' => 'ไม่ผ่าน' ]) ?>
</ td >
</ tr >
< tr >
< td >
4
</ td >
< td >
Positive Control ย้อมไม่ติดหรือจาง
</ td >
< td >
< ? = $form -> field ( $slide_qa_immuno , 'q4' ) -> label ( false ) -> inline () -> radioList ([ 1 => 'ผ่าน' , '2' => 'ไม่ผ่าน' ]) ?>
</ td >
</ tr >
< tr >
< td >
5
</ td >
< td >
มี Non - specific staining ( ให้ระบุประเภท )
</ td >
< td >
< ? = $form -> field ( $slide_qa_immuno , 'q5' ) -> label ( false ) -> inline () -> radioList ([ 1 => 'ผ่าน' , '2' => 'ไม่ผ่าน' ]) ?>
</ td >
</ tr >
< tr >
< td >
6
</ td >
< td >
Internal Positive Control ไม่ติดสีหรือติดสีผิดไป
</ td >
< td >
< ? = $form -> field ( $slide_qa_immuno , 'q6' ) -> label ( false ) -> inline () -> radioList ([ 1 => 'ผ่าน' , '2' => 'ไม่ผ่าน' ]) ?>
</ td >
</ tr >
< tr >
< td >
7
</ td >
< td >
ชิ้นเนื้อปนเปื้อนจากรายอื่น
</ td >
< td >
< ? = $form -> field ( $slide_qa_immuno , 'q7' ) -> label ( false ) -> inline () -> radioList ([ 1 => 'ผ่าน' , '2' => 'ไม่ผ่าน' ]) ?>
</ td >
</ tr >
< tr >
< td >
8
</ td >
< td >
สไลด์ชำรุด แตกหัก
</ td >
< td >
< ? = $form -> field ( $slide_qa_immuno , 'q8' ) -> label ( false ) -> inline () -> radioList ([ 1 => 'ผ่าน' , '2' => 'ไม่ผ่าน' ]) ?>
</ td >
</ tr >
< tr >
< td >
9
</ td >
< td >
ปัญหาอื่นๆ
</ td >
< td >
< ? = $form -> field ( $slide_qa_immuno , 'q9' ) -> label ( false ) -> inline () -> radioList ([ 1 => 'ผ่าน' , '2' => 'ไม่ผ่าน' ]) ?>
< ? php $this -> registerJs ( "
$ ( \ " input[name=' " . Html :: getInputName ( $slide_qa_immuno , 'q9' ) . " '] \" ).change(function() {
if ( $ ( \ " input[name=' " . Html :: getInputName ( $slide_qa_immuno , 'q9' ) . " ']:checked \" ).val() == '2') {
$ ( '.cancle_other2' ) . show ();
} else {
$ ( '.cancle_other2' ) . hide ();
}
});
" ) ?>
< div class = " cancle_other2 "
< ? = ! $slide_qa_immuno -> isNewRecord && $slide_qa_immuno -> q9 == '2' ? '' : 'style="display: none;"' ?> >
< ? = $form -> field ( $slide_qa_immuno , 'q9_reason' ) -> textarea ([ 'rows' => 2 ]) -> label ( false ) ?>
</ div >
</ td >
</ tr >
< tr >
< td >
10
</ td >
< td >
ไม่พบปัญหา
</ td >
< td >
< ? = $form -> field ( $slide_qa_immuno , 'q10' ) -> label ( false ) -> inline () -> radioList ([ 1 => 'ผ่าน' , '2' => 'ไม่ผ่าน' ]) ?>
</ td >
</ tr >
</ tbody >
</ table >
< div class = " mb-3 mt-4 " >
< h6 >* กรุณากรอกหมายเลขไลด์ ก่อนทำการบันทึก </ h6 >
</ div >
< br />
< h6 class = " mt-4 " >< strong > หมายเหตุ </ strong ></ h6 >
< ? = $form -> field ( $slide_qa_immuno , 'note' ) -> label ( false ) -> inline () -> textarea ([ 'rows' => 5 , 'cols' => 50 ]) ?>
</ div >
</ div >
</ div >
</ div >
</ div >
</ div >
</ div >
< ? = $form -> errorSummary ( $case_surgical ) ?>
< div class = " row " >
< div class = " col-sm-6 " >
< ? = Html :: submitButton ( '<i class="ri-save-line"></i> Save' , [ 'class' => 'btn btn-success btn-block' , 'value' => 'save' , 'name' => 'surgical' ]) ?>
</ div >
< div class = " col-sm-6 text-end " >
< ? = Html :: submitButton ( '<i class="ri-checkbox-line"></i> Approve' , [ 'class' => 'btn btn-primary btn-block' , 'value' => 'approve' , 'name' => 'surgical' ]) ?>
</ div >
</ div >
< ? php ActiveForm :: end () ?>
< ? php $this -> registerJs ( " CKEDITOR.config.scayt_autoStartup = true; " ) ?>
< div class = " card shadow mt-4 " >
< div class = " card-header " >
< h5 class = " card-title " id = " report " >< i class = " ri-file-pdf-2-line " ></ i > Preview Revised Report </ h5 >
</ div >
< div class = " card-body pdf-scroll " >
< ? php if ( ! $model -> isNewRecord && SurgicalDiagnosis :: findOne ([
'id_case' => $case_surgical -> id_case ,
'report_type' => 'revised' ,
'status_id' => 3 ,
'id' => $model -> id ,
])) { ?>
< embed
src = " <?= Url::to(['/report/case/surgical-pdf', 'id_case' => $case_surgical->id_case , 'report_type' => 'revised', 'id' => $model->id , 'mode' => 'preview', 'file' => false, 'watermark' => false]) ?> "
type = " application/pdf " width = " 100% " height = " 1200 " >
< ? php } else { ?>
< div class = " alert bg-info text-white alert-dismissible d-flex fade show " >
< span class = " ri-alarm-warning-line fs-3 me-2 lh-1 " ></ span >
ผลการตรวจวินิจฉัยนี้ยังไม่ได้ถูกบันทึกในระบบ < br />
หากต้องการออกผล
Revised Report ให้กดปุ่ม Save เพื่อแสดงตัวอย่าง Revised Report
</ div >
< ? php } ?>
</ div >
</ div >
< div class = " mt-3 " >
< div class = " card shadow " >
< div class = " card-header " >
< h5 class = " card-title " >< i class = " ri-file-history-line " ></ i >
ประวัติการส่งตรวจของคนไข้ :
< ? = $case_surgical -> id_case . ' ' . Html :: encode ( $case_surgical -> getFullname ()) ?>
</ h5 >
</ div >
< div class = " card-body " >
< div class = " row " >
< div class = " col-md-12 " >
< div class = " mt-4 " >
< ? = $this -> render ( 'history' , [ 'case' => $case_surgical ,]) ?>
</ div >
</ div >
</ div >
</ div >
</ div >
</ div >
2024-12-26 04:45:57 +00:00
< ? php /* $this -> render ( 'history-his' , [
2024-12-25 03:04:59 +00:00
'case' => $case_surgical ,
2024-12-26 04:45:57 +00:00
]) */ ?>
2024-12-25 03:04:59 +00:00
< ? = $this -> render ( '_template_surgical' , [
'searchModelGross' => $searchModelGross ,
'dataProviderGross' => $dataProviderGross ,
'searchModelMicroscopic' => $searchModelMicroscopic ,
'dataProviderMicroscopic' => $dataProviderMicroscopic ,
'searchModelDiagnosis' => $searchModelDiagnosis ,
'dataProviderDiagnosis' => $dataProviderDiagnosis
]) ?>