2024-12-25 03:04:59 +00:00
< ? php
use common\models\FrozenDiagnosis ;
2024-12-27 10:46:28 +00:00
use yii\helpers\Url ;
2024-12-25 03:04:59 +00:00
use yii\helpers\Html ;
2024-12-27 10:46:28 +00:00
use common\models\User ;
use kartik\date\DatePicker ;
use kartik\select2\Select2 ;
use common\models\FrozenImg ;
use yii\helpers\ArrayHelper ;
2024-12-25 03:04:59 +00:00
use yii\bootstrap5\ActiveForm ;
2024-12-27 10:46:28 +00:00
use dosamigos\ckeditor\CKEditor ;
2024-12-25 03:04:59 +00:00
2024-12-27 10:46:28 +00:00
$this -> title = Html :: encode ( 'Frozen Final Report : ' . $model -> id_case . ' - ' . ( isset ( $model -> frozen ) ? $model -> frozen -> getFullname () : '' ));
$this -> params [ 'breadcrumbs' ][] = [ 'label' => Html :: encode ( $model -> id_case ), 'url' => [ 'frozen' , 'id_case' => $model -> id_case ]];
2024-12-25 03:04:59 +00:00
$this -> params [ 'breadcrumbs' ][] = $this -> title ;
?>
2024-12-27 10:46:28 +00:00
< ? php //$this->render('_spellcheck')
?>
2024-12-25 03:04:59 +00:00
< ? = $this -> render ( '_all_report_frozen' , [
'dataProviderReport' => $dataProviderReport ,
'case_frozen' => $case_frozen
]) ?>
< ? php $form = ActiveForm :: begin ([
2024-12-27 10:46:28 +00:00
'id' => 'diagnosis-form' ,
//'options' => ['onsubmit' => 'handleFormSubmit(event)'] // ไม่คืนค่าจาก function
2024-12-25 03:04:59 +00:00
]) ?>
2024-12-27 10:46:28 +00:00
< ? php // Html::hiddenInput('frozen', '', ['id' => 'frozen-hidden-input'])
?>
< ? php // $this->render('_js_pass_frozen')
?>
2025-04-22 05:40:41 +00:00
<!--
2024-12-27 10:46:28 +00:00
< div class = " card mb-4 " >
< div class = " card-header " >
< h5 class = " card-title mb-0 " >
< i class = " ri-file-user-line " ></ i > Patient Information
2025-04-22 05:40:41 +00:00
: < ? php /* Html :: encode ( $case_frozen -> getFullname ()) ?> / <?= $case_frozen->id_case ?>
2024-12-27 10:46:28 +00:00
</ h5 >
</ div >
< div class = " card-body " >
2025-04-22 05:40:41 +00:00
< ? = $this -> render ( '../../../pathologist/views/do/_patient_frozen' , [ 'model' => $case_frozen ]) */ ?>
2024-12-27 10:46:28 +00:00
</ div >
</ div >
2025-04-22 05:40:41 +00:00
-->
2024-12-27 10:46:28 +00:00
< ? php /* $this -> render ( '_patient_frozen_form' , [
2024-12-25 03:04:59 +00:00
'form' => $form ,
'case_frozen' => $case_frozen
2024-12-27 10:46:28 +00:00
]) */ ?>
2024-12-25 03:04:59 +00:00
2025-04-22 05:40:41 +00:00
< ? php /* if ( Yii :: $app -> user -> identity -> username == 'pathologist' ) { ?>
2024-12-27 10:46:28 +00:00
< ? = $this -> render ( '_slide' , [ 'case_frozen' => $case_frozen ]) ?>
2025-04-22 05:40:41 +00:00
< ? php } */ ?>
< ? = $this -> render ( '_patient_frozen_form' , [
'form' => $form ,
'case_frozen' => $case_frozen
]) ?>
2024-12-25 03:04:59 +00:00
2024-12-27 10:46:28 +00:00
< div class = " card mt-4 " >
2024-12-25 03:04:59 +00:00
< div class = " card-header " >
2024-12-27 10:46:28 +00:00
< h5 class = " card-title " >< i class = " ri-user-add-line " ></ i > พยาธิแพทย์ ( Pathologist ) </ h5 >
2024-12-25 03:04:59 +00:00
</ div >
2024-12-27 10:46:28 +00:00
2024-12-25 03:04:59 +00:00
< div class = " card-body " >
2024-12-27 10:46:28 +00:00
< ? = $form -> errorSummary ( $case_frozen ) ?>
2024-12-25 03:04:59 +00:00
< ? php if ( ! empty ( $case_frozen -> files )) { ?>
2024-12-27 10:46:28 +00:00
< h6 >< i class = " ri-file-text-line " ></ i > ใบส่งตรวจ ( Request ) </ h6 >
< ul >
< ? php
foreach ( $case_frozen -> getFiles () as $file => $val ) {
?>
< li >< ? = Html :: a ( $val , Yii :: getAlias ( '@web' ) . '/uploads/frozen/file/' . $val , [ 'target' => '_blank' ]); ?>
</ li >
< ? php } ?>
</ ul >
2024-12-25 03:04:59 +00:00
< ? php } ?>
2024-12-27 10:46:28 +00:00
< div class = " row " >
< ? php
$directoryPath = Yii :: getAlias ( '@webroot' ) . '/uploads/frozen/gross/' . $case_frozen -> 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/frozen/gross/' . $case_frozen -> id_case . '/' . $nameFicheiro ;
echo " <div class= \" col-md-2 \" > " . Html :: a ( Html :: img ( $filePath , [ 'class' => 'img-fluid' ]), $filePath , [ 'target' => '_blank' ]) . " </div> " ;
}
}
}
?>
</ div >
< ? php
$frozen_img = FrozenImg :: find () -> where ([ 'id_case' => $case_frozen -> id_case ]) -> all ();
if ( $frozen_img ) { ?>
< h6 >< i class = " ri-image-2-line " ></ i > รูปภาพชิ้นเนื้อ </ h6 >
< ? php foreach ( $frozen_img as $item ) { ?>
< div style = " width: 250px " >
< ? = Html :: a ( Html :: img ( Yii :: getAlias ( '@web' ) . '/uploads/frozen/img/' . $item -> file_path , [ 'class' => 'img-fluid' ]), Yii :: getAlias ( '@web' ) . '/uploads/frozen/img/' . $item -> file_path , [ 'target' => '_blank' ]) ?>
</ div >
< ? php } ?>
< ? php } ?> <br />
< ? php if ( ! empty ( $case_frozen -> gross_img )) { ?>
< h5 >< i class = " ri-image-2-fill " ></ i > Gross Image </ h5 >
< div style = " width: 250px " >< ? = $case_frozen -> getGrossImgs () ?> </div><br />
< ? php } ?>
< h6 class = " mb-3 " >< strong >< i class = " ri-align-justify " ></ i > Specimen And Clinical Information </ strong ></ h6 >
< ? = $form -> field ( $case_frozen , 'clinical_diagnosis' ) -> label ( false ) -> textarea ([ 'spellcheck' => true ]) -> widget ( CKEditor :: class , [
'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 >< i class = " ri-align-justify " ></ i > Gross Description </ strong ></ h6 >
< div class = " mb-3 " >
< ? = $form -> field ( $case_frozen , 'gross_description' ) -> label ( false ) -> textarea ([ 'spellcheck' => true ]) -> widget ( CKEditor :: class , [
2024-12-25 03:04:59 +00:00
'preset' => 'custom' ,
2024-12-27 10:46:28 +00:00
//'options' => ['id' => 'frozendiagnosis-gross_description'],
2024-12-25 03:04:59 +00:00
'clientOptions' => [
2024-12-27 10:46:28 +00:00
'height' => 150 ,
2024-12-25 03:04:59 +00:00
'removePlugins' => 'scayt' ,
'disableNativeSpellChecker' => false ,
'extraPlugins' => 'font,justify,colorbutton,iframe,dialogadvtab,liststyle' ,
2024-12-27 10:46:28 +00:00
'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' ,
2024-12-25 03:04:59 +00:00
'toolbarGroups' => [
[ 'name' => 'clipboard' , 'groups' => [ 'undo' , 'redo' , 'cut' , 'copy' , 'paste' , 'clipboard' ]],
2024-12-27 10:46:28 +00:00
[ 'name' => 'styles' , 'groups' => [ 'font' ]],
[ 'name' => 'colors' , 'groups' => [ 'TextColor' , 'BGColor' ]],
2024-12-25 03:04:59 +00:00
[ 'name' => 'basicstyles' , 'groups' => [ 'basicstyles' , 'cleanup' ]],
2024-12-27 10:46:28 +00:00
[ 'name' => 'paragraph' , 'groups' => [ 'list' , 'align' , 'bidi' , 'paragraph' ]],
2024-12-25 03:04:59 +00:00
[ 'name' => 'editing' , 'groups' => [ 'find' , 'selection' , /*'spellchecker'*/ ]],
//['name' => 'tools', 'groups' => ['dialogadvtab', 'devtools', 'div']],
[ 'name' => 'insert' , 'groups' => [ 'specialchar' ]],
//['name' => 'tools', 'groups' => ['maximize']],
],
]
]) ?>
</ div >
2024-12-27 10:46:28 +00:00
< ? php $this -> registerJs ( "
$ ( '#checkGrossButton' ) . on ( 'click' , function ( event ) {
event . preventDefault ();
var text = CKEDITOR . instances [ 'frozendiagnosis-gross_description' ] . getData ();
$ . ajax ({
url : '" . Url::to([' / site / spell - checker ']) . "' ,
type : 'POST' ,
data : { text : text },
//dataType: 'json',
success : function ( data ) {
//highlightMisspelledWords(data);
$ ( '#misspelledGrossWords' ) . html ( data );
}
});
});
" ) ?>
< div id = " misspelledGrossWords " ></ div >
< ? = Html :: button ( '<i class="ri-list-check-3"></i> Check Spelling' , [ 'id' => 'checkGrossButton' , 'class' => 'btn btn-warning' ]) ?>
< ? = 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' ]]) ?>
< ? php if ( ! empty ( $case_frozen -> gross_description )) { ?>
<!--
< div class = " gross-description " >
< ? php // \yii\helpers\HtmlPurifier::process($case_frozen->gross_description)
?>
</ div >< br />
-->
< div class = " gorss-by " >
Write gross
by : < ? = isset ( $case_frozen -> gross ) ? Html :: encode ( $case_frozen -> gross -> realname ) : '' ?>
at : < ? = $case_frozen -> gross_at ?>
< ? php if ( isset ( $case_frozen -> cut )) { ?>
Cut by : < ? = $case_frozen -> cut -> report_name ?>
< ? php } ?>
< ? php if ( isset ( $case_frozen -> write )) { ?>
Write by : < ? = $case_frozen -> write -> report_name ?>
< ? php } ?>
2024-12-25 03:04:59 +00:00
2024-12-27 10:46:28 +00:00
</ div >
<!--
< br >
< h5 class = " mt-4 " >< span data - feather = " image " style = " width: 17px; margin-bottom: 4px; " ></ span > Gross Image
</ h5 >
< ? php /* if ( ! empty ( $case_frozen -> gross_img )) { ?>
< ? = $case_frozen -> getGrossImgs () ?>
< ? php } ?>
< div class = " row " >
< ? php
if ( is_dir ( Yii :: getAlias ( '@webroot' ) . '/GrossPhoto/' . $case_frozen -> id_case )) {
$files = \yii\helpers\FileHelper :: findFiles ( Yii :: getAlias ( '@webroot' ) . '/GrossPhoto/' . $case_frozen -> 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_frozen -> id_case . '/' . $nameFicheiro , [ 'class' => 'img-fluid' ]), Url :: base () . '/GrossPhoto/' . $case_frozen -> id_case . '/' . $nameFicheiro , [ 'target' => '_blank' ])) . " </div> " ; // render do ficheiro no browser
}
}
}
*/ ?>
</ div >
-->
< br >
< ? php // Html::a('<span class="fa fa-refresh"></span> Reject Gross', ['order/frozen-gross-reject', 'id_case' => $case_frozen->id_case, 'report_type' => $model->report_type, 'id' => $model->id], ['class' => 'btn btn-danger', 'name' => 'frozen', 'value' => 'reject-gross'])
?>
< ? php } ?>
< h6 class = " mt-4 " >< i class = " ri-align-justify " ></ i > Microscopic Description </ h6 >
< ? = $form -> field ( $model , 'is_no_microscopic' ) -> checkbox () ?>
2024-12-25 03:04:59 +00:00
< div class = " mb-3 " >
2024-12-27 10:46:28 +00:00
< ? = $form -> field ( $model , 'microscopic_description' ) -> label ( false ) -> textarea ([ 'spellcheck' => true ]) -> widget ( CKEditor :: class , [
2024-12-25 03:04:59 +00:00
'preset' => 'custom' ,
2024-12-27 10:46:28 +00:00
//'options' => ['id' => 'microscopic_description_editor'],
2024-12-25 03:04:59 +00:00
'clientOptions' => [
2024-12-27 10:46:28 +00:00
'height' => 200 ,
2024-12-25 03:04:59 +00:00
'removePlugins' => 'scayt' ,
'disableNativeSpellChecker' => false ,
'extraPlugins' => 'font,justify,colorbutton,iframe,dialogadvtab,liststyle' ,
2024-12-27 10:46:28 +00:00
'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,HorizontalRule,Smiley,PageBreak,Iframe,ShowBlocks,About,Replace,Snippet' ,
2024-12-25 03:04:59 +00:00
'toolbarGroups' => [
[ 'name' => 'clipboard' , 'groups' => [ 'undo' , 'redo' , 'cut' , 'copy' , 'paste' , 'clipboard' ]],
2024-12-27 10:46:28 +00:00
[ 'name' => 'styles' , 'groups' => [ 'font' ]],
[ 'name' => 'colors' , 'groups' => [ 'TextColor' , 'BGColor' ]],
2024-12-25 03:04:59 +00:00
[ 'name' => 'basicstyles' , 'groups' => [ 'basicstyles' , 'cleanup' ]],
2024-12-27 10:46:28 +00:00
[ 'name' => 'paragraph' , 'groups' => [ 'list' , 'align' , 'bidi' , 'paragraph' ]],
2024-12-25 03:04:59 +00:00
[ 'name' => 'editing' , 'groups' => [ 'find' , 'selection' , /*'spellchecker'*/ ]],
//['name' => 'tools', 'groups' => ['dialogadvtab', 'devtools', 'div']],
2024-12-27 10:46:28 +00:00
[ 'name' => 'insert' , 'groups' => [ 'table' , 'specialchar' ]],
2024-12-25 03:04:59 +00:00
//['name' => 'tools', 'groups' => ['maximize']],
],
]
]) ?>
</ div >
2024-12-27 10:46:28 +00:00
< div id = " misspelledMicroWords " ></ div >
2024-12-25 03:04:59 +00:00
2024-12-27 10:46:28 +00:00
< ? php $this -> registerJs ( "
$ ( '#checkMicroButton' ) . on ( 'click' , function ( event ) {
event . preventDefault ();
var text = CKEDITOR . instances [ 'frozendiagnosis-microscopic_description' ] . getData ();
$ . ajax ({
url : '" . Url::to([' / site / spell - checker ']) . "' ,
type : 'POST' ,
data : { text : text },
//dataType: 'json',
success : function ( data ) {
//highlightMisspelledWords(data);
$ ( '#misspelledMicroWords' ) . html ( data );
}
});
});
" ) ?>
2024-12-25 03:04:59 +00:00
2024-12-27 10:46:28 +00:00
< ? = Html :: button ( '<i class="ri-list-check-3"></i> Check Spelling' , [ 'id' => 'checkMicroButton' , 'class' => 'btn btn-warning' ]) ?>
< ? = Html :: button ( '<i class="ri-file-text-line"></i> Microscopic Template' , [ 'class' => 'btn btn-info 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' , 'value' => 'micro' , 'name' => 'frozen' ]) ?>
2024-12-25 03:04:59 +00:00
2024-12-27 10:46:28 +00:00
< h6 class = " mt-4 " >< strong >< i class = " ri-align-justify " ></ i > Pathological Diagnosis </ strong ></ h6 >
< ? = $form -> field ( $model , 'diagnosis' ) -> label ( false ) -> textarea ([ 'spellcheck' => true ]) -> widget ( CKEditor :: class , [
2024-12-25 03:04:59 +00:00
'preset' => 'custom' ,
2024-12-27 10:46:28 +00:00
//'options' => ['id' => 'microscopic_description_editor'],
2024-12-25 03:04:59 +00:00
'clientOptions' => [
'height' => 200 ,
'removePlugins' => 'scayt' ,
'disableNativeSpellChecker' => false ,
'extraPlugins' => 'font,justify,colorbutton,iframe,dialogadvtab,liststyle' ,
2024-12-27 10:46:28 +00:00
'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,HorizontalRule,Smiley,PageBreak,Iframe,ShowBlocks,About,Replace,Snippet' ,
2024-12-25 03:04:59 +00:00
'toolbarGroups' => [
[ 'name' => 'clipboard' , 'groups' => [ 'undo' , 'redo' , 'cut' , 'copy' , 'paste' , 'clipboard' ]],
2024-12-27 10:46:28 +00:00
[ 'name' => 'styles' , 'groups' => [ 'font' ]],
[ 'name' => 'colors' , 'groups' => [ 'TextColor' , 'BGColor' ]],
2024-12-25 03:04:59 +00:00
[ 'name' => 'basicstyles' , 'groups' => [ 'basicstyles' , 'cleanup' ]],
2024-12-27 10:46:28 +00:00
[ 'name' => 'paragraph' , 'groups' => [ 'list' , 'align' , 'bidi' , 'paragraph' ]],
2024-12-25 03:04:59 +00:00
[ 'name' => 'editing' , 'groups' => [ 'find' , 'selection' , /*'spellchecker'*/ ]],
//['name' => 'tools', 'groups' => ['dialogadvtab', 'devtools', 'div']],
2024-12-27 10:46:28 +00:00
[ 'name' => 'insert' , 'groups' => [ 'table' , 'specialchar' ]],
2024-12-25 03:04:59 +00:00
//['name' => 'tools', 'groups' => ['maximize']],
],
]
]) ?>
2024-12-27 10:46:28 +00:00
< ? php $this -> registerJs ( "
$ ( '#checkDiagButton' ) . on ( 'click' , function ( event ) {
event . preventDefault ();
var text = CKEDITOR . instances [ 'frozendiagnosis-diagnosis' ] . getData ();
$ . ajax ({
url : '" . Url::to([' / site / spell - checker ']) . "' ,
type : 'POST' ,
data : { text : text },
//dataType: 'json',
success : function ( data ) {
//highlightMisspelledWords(data);
$ ( '#misspelledDiagWords' ) . html ( data );
}
});
});
" ) ?>
< div id = " misspelledDiagWords " ></ div >
2024-12-25 03:04:59 +00:00
2024-12-27 10:46:28 +00:00
< ? = Html :: button ( '<i class="ri-list-check-3"></i> Check Spelling' , [ 'id' => 'checkDiagButton' , 'class' => 'btn btn-warning' ]) ?>
< ? = Html :: button ( '<i class="ri-file-text-line"></i> Diagnosis Template' , [ 'class' => 'btn btn-info activity-select-diagnosis-template' , 'data' => [ 'bs-toggle' => 'modal' , 'bs-target' => '#activity-modal-diagnosis' ]]) ?>
2024-12-25 03:04:59 +00:00
2024-12-27 10:46:28 +00:00
< div class = " mt-4 " ></ div >
2024-12-25 03:04:59 +00:00
< ? = $this -> render ( '_coder_frozen_form' , [
'form' => $form ,
'model' => $model ,
]) ?>
< h6 class = " mt-4 " > Critical Diagnosis </ h6 >
< ? = $form -> field ( $model , 'is_critical_diagnosis' ) -> checkbox ([
'labelOptions' => [
'style' => 'color:red'
]
]) ?>
2025-05-02 10:20:54 +00:00
< ? = $this -> render ( '_is_ca_confirm' , [
'form' => $form ,
'model' => $model ,
]) ?>
2024-12-27 10:46:28 +00:00
< div class = " mt-4 " >
< i class = " ri-map-pin-user-fill " ></ i > Register by
: < ? = isset ( $case_frozen -> register ) ? $case_frozen -> register -> realname : ' ' ?>
at : < ? = $case_frozen -> register_at ?>
</ div >
</ div >
<!-- card body -->
</ div >
<!-- card -->
<!-- slide qa -->
< div class = " accordion mb-0 " id = " accordion " role = " tablist " aria - multiselectable = " true " >
< div class = " card mt-4 " >
< 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 >
2024-12-25 03:04:59 +00:00
</ div >
2024-12-27 10:46:28 +00:00
< 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 />
< h5 class = " mt-4 " >< strong > หมายเลข </ strong ></ h5 >
< ? = $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 " >
< h5 >* กรุณากรอกหมายเลขไลด์ ก่อนทำการบันทึก </ h5 >
</ div >
< br />
< h5 class = " mt-4 " >< strong > หมายเหตุ </ strong ></ h5 >
< ? = $form -> field ( $slide_qa_he , 'note' ) -> label ( false ) -> inline () -> textarea () ?>
</ div >
2024-12-25 03:04:59 +00:00
2024-12-27 10:46:28 +00:00
</ div >
</ div >
</ div >
</ div >
2024-12-25 03:04:59 +00:00
2024-12-27 10:46:28 +00:00
< div class = " accordion my-4 " id = " accordion " role = " tablist " aria - multiselectable = " true " >
< div class = " card " >
< 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 " >
< h5 >* กรุณากรอกหมายเลขไลด์ ก่อนทำการบันทึก </ h5 >
</ div >
< br />
< h5 class = " mt-4 " >< strong > หมายเหตุ </ strong ></ h5 >
< ? = $form -> field ( $slide_qa_immuno , 'note' ) -> label ( false ) -> inline () -> textarea () ?>
</ div >
2024-12-25 03:04:59 +00:00
2024-12-27 10:46:28 +00:00
</ div >
</ div >
2024-12-25 03:04:59 +00:00
</ div >
</ div >
< ? = $form -> errorSummary ( $case_frozen ) ?>
< div class = " row " >
2024-12-27 10:46:28 +00:00
< div class = " col-sm-6 " >
< ? = Html :: submitButton ( '<i class="ri-save-line"></i> Save' , [ 'class' => 'btn btn-success btn-block' , 'value' => 'save' , 'name' => 'frozen' ]) ?>
2024-12-25 03:04:59 +00:00
</ div >
2024-12-27 10:46:28 +00:00
< 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' => 'frozen' ]) ?>
2024-12-25 03:04:59 +00:00
</ div >
</ div >
2024-12-27 10:46:28 +00:00
< ? php ActiveForm :: end () ?> <br />
2024-12-25 03:04:59 +00:00
2024-12-27 10:46:28 +00:00
< ? php
$check_gross = Yii :: $app -> pathology -> isFindText ( $case_frozen -> gross_description , '***' );
2024-12-25 03:04:59 +00:00
?>
2024-12-27 10:46:28 +00:00
< ? php if ( $check_gross == true ) { ?>
< div class = " alert alert-warning " >
< span data - feather = " alert-circle " style = " width: 17px; margin-bottom: 4px; " ></ span > ข้อมูล Gross Description
ไม่สมบูรณ์ กรุณาตรวจสอบข้อความที่มีเครื่องหมาย *** หลังจากแก้ไขแล้วให้กดปุ่ม Save ก่อน
ปุ่ม Final จึงจะสามารถใช้งานได้ตามปกติ
</ div >
< ? php } ?>
2024-12-25 03:04:59 +00:00
2024-12-27 10:46:28 +00:00
< div class = " card mt-4 " >
2024-12-25 03:04:59 +00:00
< div class = " card-header " >
2024-12-27 10:46:28 +00:00
< h5 class = " card-title " id = " report " >< i class = " ri-file-pdf-2-line " ></ i > Preview Final Report </ h5 >
2024-12-25 03:04:59 +00:00
</ div >
< div class = " card-body pdf-scroll " >
< ? php if ( ! $model -> isNewRecord && FrozenDiagnosis :: findOne ([
'id_case' => $case_frozen -> id_case ,
2024-12-27 10:46:28 +00:00
'report_type' => 'final' ,
2024-12-25 03:04:59 +00:00
'status_id' => 3 ,
'id' => $model -> id ,
])) { ?>
2024-12-27 10:46:28 +00:00
< embed
src = " <?= Url::to(['/report/case/frozen-pdf', 'id_case' => $case_frozen->id_case , 'report_type' => 'final', 'id' => $model->id , 'mode' => 'preview', 'watermark' => 0, 'file' => false]) ?> "
type = " application/pdf " width = " 100% " height = " 1200 " >
2024-12-25 03:04:59 +00:00
< ? php } else { ?>
2024-12-27 10:46:28 +00:00
< 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 >
2024-12-25 03:04:59 +00:00
ผลการตรวจวินิจฉัยนี้ยังไม่ได้ถูกบันทึกในระบบ < br />
หากต้องการออกผล Final Report ให้กดปุ่ม Save เพื่อแสดงตัวอย่าง Final Report
</ div >
< ? php } ?>
</ div >
2024-12-27 10:46:28 +00:00
</ div >
< div class = " card mt-3 " >
< div class = " card-header " >
< h5 class = " card-title " >< i class = " ri-file-copy-2-line " ></ i > ประวัติการส่งตรวจของคนไข้ :
< ? = $case_frozen -> id_case . ' ' . Html :: encode ( $case_frozen -> getFullname ()) ?> </h5>
</ div >
< div class = " card-body " >
< ? = $this -> render ( 'history' , [ 'case' => $case_frozen ,]) ?>
</ div >
</ div >
< ? php /* $this -> render ( 'history-his' , [
'case' => $case_frozen ,
]) */ ?>
< ? php $this -> registerJs ( " CKEDITOR.config.scayt_autoStartup = false; " ) ?>
< ? = $this -> render ( '_template_frozen' , [
'searchModelGross' => $searchModelGross ,
'dataProviderGross' => $dataProviderGross ,
'searchModelMicroscopic' => $searchModelMicroscopic ,
'dataProviderMicroscopic' => $dataProviderMicroscopic ,
'searchModelDiagnosis' => $searchModelDiagnosis ,
'dataProviderDiagnosis' => $dataProviderDiagnosis
]) ?>