Files
FE_CPONE/mockup/one-mcu-resume-individu-v8/components/oneResultEntrySoForm.vue
2026-04-27 10:13:31 +07:00

964 lines
45 KiB
Vue

<template>
<div>
<v-dialog v-model="dialognote"
width="40%"
>
<v-card>
<v-card-title
class="headline white--text error"
primary-title
>
</v-card-title>
<v-card-text>
<v-layout mb-2 row>
<v-flex mb-2 xs3>
<span style="color: #0e6fbc" class="mono name">Catatan </span>
</v-flex>
<v-flex xs9>
<v-layout v-if="patient.sampling_note && patient.fo_note != ''" row>
<v-flex mb-1 xs12>
<code style="box-shadow: none !important;color: #0e6fbc !important;background-color: #2196f34d !important;">fo registration</code>
<div class="v-markdown">
<p style="margin-top:2px;margin-bottom:0">{{patient.fo_note}}</p>
</div>
</v-flex>
</v-layout>
<v-layout v-if="patient.sampling_note && patient.sampling_note != ''" row>
<v-flex mb-1 xs12>
<code style="box-shadow: none !important;color: #0e6fbc !important;background-color: #2196f34d !important;">specimen collection</code>
<div class="v-markdown">
<p style="margin-top:2px;margin-bottom:0">{{patient.sampling_note}}</p>
</div>
</v-flex>
</v-layout>
</v-flex>
</v-layout>
</v-card-text>
<v-divider></v-divider>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn
color="grey"
dark
flat
text
@click="dialognote = false"
>
Tutup
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
<v-dialog v-model="dialogtemplates" persistent max-width="450">
<v-card class="align-center justify-center">
<v-card-title style="padding:0px;" primary-title dark color="primary" class="primary white--text">
<v-subheader style="color:#fff!important">PILIH TEMPLATE</v-subheader>
</v-card-title>
<v-card-text>
<v-select class="ma-1 mini-select" :items="xtemplates"
item-text="label"
return-object
v-model="xselectedtemplate"
label="Template" outline hide-details>
</v-select>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="grey ligthen-1" flat @click="dialogtemplates = false">Batal</v-btn>
<v-btn color="blue-grey" flat @click="doPasteTemplate()">Terapkan</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
<v-dialog v-model="dialoghistories" persistent max-width="80%">
<v-card class="align-center justify-center">
<v-card-title style="padding:0px;" primary-title dark color="info" class="info white--text">
<v-subheader style="color:#fff!important">
RIWAYAT PEMERIKSAAN
</v-subheader>
</v-card-title>
<v-card-text class="pa-1" style=" background: rgb(245, 232, 223) !important;">
<v-layout pl-2 pr-2 pt-2 pb-2 row>
<v-flex pa-1 xs6>
<v-card class="pa-2">
<v-data-table
:headers="headers"
:items="xhistories"
:loading="isLoading"
hide-actions
class="elevation-1">
<template slot="items" slot-scope="props">
<td class="text-xs-left pl-2 pr-2 pb-1 pt-1" v-bind:class="{'amber lighten-4':isSelected(props.item)}" @click="selectMe(props.item)">{{ props.item.noreg }}</td>
<td class="text-xs-left pl-2 pr-2 pb-1 pt-1" v-bind:class="{'amber lighten-4':isSelected(props.item)}" @click="selectMe(props.item)">{{ props.item.order_date}}</td>
<td class="text-xs-left pl-2 pr-2 pb-1 pt-1" v-bind:class="{'amber lighten-4':isSelected(props.item)}" @click="selectMe(props.item)">{{props.item.tests}}</td>
</template>
</v-data-table>
<v-divider></v-divider>
<v-pagination
style="margin-top:10px;margin-bottom:10px"
v-model="curr_page_histories"
:length="xtotal_page_histories"
></v-pagination>
</v-card>
</v-flex>
<v-flex pa-1 xs7>
<v-card v-for="(test,index) in xselectedhistory.details">
<v-layout mb-2 row>
<v-flex xs12>
<v-subheader red--text text--lighten-1>
<v-chip color="blue grey" label text-color="white">
{{test.test_name}}
</v-chip>
<v-chip label outline >
<v-icon left>assignment_ind</v-icon>{{test.doctor_fullname}}
</v-chip>
<v-flex text-md-right>
<v-icon @click="showMore(index)" style="cursor:pointer">more_horiz</v-icon>
</v-flex>
</v-subheader>
<v-divider></v-divider>
<v-layout v-if="test.xshow === 'Y'" pl-2 row wrap>
<v-flex v-for="result in test.details" xs12 pa-2>
<div style="font-weight:bold;font-size:10px!important">{{result.result_label.toUpperCase()}}</div>
<div class="v-markdown pl-2">
<p class="mono" style="margin-bottom:0;font-size:14px">{{result.result_value}}</p>
</div>
</v-flex>
</v-layout>
</v-flex>
</v-layout>
</v-card>
</v-flex>
</v-layout>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="grey ligthen-1" flat @click="dialoghistories = false">Tutup</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
<v-dialog v-model="dialogprintlang" persistent max-width="450">
<v-card class="align-center justify-center">
<v-card-title style="padding:0px;" primary-title dark color="blue-grey" class="blue-grey white--text">
<v-subheader style="color:#fff!important">PILIH BAHASA</v-subheader>
</v-card-title>
<v-card-text>
<!--<v-select class="ma-1 mini-select" :items="dialoglangs"
item-text="name"
return-object
v-model="xselectedlang"
label="Bahasa" outline hide-details>
</v-select>-->
<v-switch style="margin-top:0;padding-top:0" @change="changeSwitch(lang.chex,index)" v-for="(lang,index) in dialoglangs" v-model="lang.chex === 'Y'" :label="lang.name"></v-switch>
<hr>
<v-radio-group v-model="print_format" row>
<v-radio label="Calon Pegawai" value="cp"></v-radio>
<v-radio label="Pegawai" value="p"></v-radio>
<v-radio label="Calon Pegawai Tanpa Tulisan" value="cpp"></v-radio>
</v-radio-group>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="grey ligthen-1" flat @click="dialogprintlang = false">Batal</v-btn>
<v-btn color="blue-grey" flat @click="doPrintAfterLang()">Cetak</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
<v-dialog v-model="xdialogaction" persistent max-width="350">
<v-card>
<v-card-title color="warning" class="headline">Konfirmasi</v-card-title>
<v-card-text v-html="xmsgaction">
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="primary darken-1" flat @click="closeDialogAction()">Ya</v-btn>
<v-btn color="error darken-1" flat @click="xdialogaction = false">Tutup</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
<v-dialog v-model="xdialogimage" persistent max-width="650" max-height="500">
<v-card color="amber lighten-5">
<v-container grid-list-sm fluid>
<v-layout row wrap>
<v-flex>
<v-card flat tile class="d-flex">
<v-img
:src="ximage"
aspect-ratio="1"
class="grey lighten-2"
>
<template v-slot:placeholder>
<v-layout
fill-height
align-center
justify-center
ma-0
>
<v-progress-circular indeterminate color="grey lighten-5"></v-progress-circular>
</v-layout>
</template>
</v-img>
</v-card>
</v-flex>
</v-layout>
</v-container>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="black" dark @click="xdialogimage = false">Tutup</v-btn>
</v-card-actions>
<v-card>
</v-dialog>
<v-dialog v-model="xdialogdoctor" persistent max-width="350">
<v-card class="align-center justify-center">
<v-card-title primary-title dark color="warning" class="warning white--text headline">PILIH DOKTER</v-card-title>
<v-card-text>
<p v-if="requiredoctor" class="error pl-2 pr-2" style="color:#fff">Dokter harus dipilih salah satu dong</p>
<v-select class="ma-1 mini-select" :items="xdoctors"
item-text="doctor_fullname"
return-object
v-model="xselecteddoctor"
label="DOKTER" outline hide-details></v-select>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="red darken-1" flat @click="savedoctor">Tutup</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
<v-layout row mb-2 wrap>
<v-flex xs12 pr-1>
<v-card>
<v-layout class="align-center" pt-1 row>
<v-flex pt-1 pb-2 pl-2 pr-2 xs12>
<span class="left" style="font-size:x-large;padding-top: 3px;">
<v-icon title="riwayat" v-if="parseInt(patient.has_histories) > 0" @click="showHistories()" style="font-size:28px;cursor:pointer" large>today</v-icon>
{{patient.ordernumber}}
<v-icon title="catatan" @click="dialognote = true" v-if="(patient.fo_note && patient.fo_note != '') || (patient.sampling_note && patient.sampling_note != '')" style="font-size:20px;cursor:pointer" large color="error">info</v-icon>
</span>
<span class="right">
<!--<v-chip label color="pink" text-color="white">
{{patient.deliveries}}
</v-chip>-->
</span>
</v-flex>
</v-layout>
<v-divider></v-divider>
<v-layout pt-1 pb-2 row>
<v-flex pt-1 pb-2 pl-2 xs4>
<v-text-field ma-1
label="NAMA PASIEN"
class="text-uppercase"
:value="patient.patient_fullname"
hide-details
></v-text-field>
</v-flex>
<v-flex pt-1 pb-2 pl-2 xs2>
<v-text-field ma-1
label="JENIS KELAMIN"
class="text-uppercase"
:value="patient.sexname"
hide-details
></v-text-field>
</v-flex>
<v-flex pt-1 pb-2 pl-2 pr-1 xs4>
<v-text-field ma-1
label="UMUR"
class="text-uppercase"
:value="patient.umur"
hide-details
:title="patient.dob"
></v-text-field>
</v-flex>
<v-flex pt-1 pb-2 pl-2 pr-1 xs3>
<v-text-field ma-1
label="PERUSAHAAN"
class="text-uppercase"
:value="patient.company_name"
hide-details
></v-text-field>
</v-flex>
</v-layout>
</v-card>
</v-flex>
</v-layout>
<v-layout mb-2 row wrap>
<v-flex xs12 pr-1>
<v-card>
<v-layout row>
<v-flex xs12>
<v-subheader red--text text--lighten-1>
<v-chip v-if="patient.status === 'NEW'" label color="grey" text-color="white">
<v-icon left>label</v-icon>RESUME
</v-chip>
<v-chip v-if="patient.status === 'VAL1'" label color="warning" text-color="white">
<v-icon left>label</v-icon>RESUME
</v-chip>
<v-chip v-if="patient.status === 'VAL2'" label color="success" text-color="white">
<v-icon left>label</v-icon>RESUME
</v-chip>
<v-chip v-if="patient.status === 'NEW'" @click="opendialogdoctor()" label color="info" outline >
<v-icon left>assignment_ind</v-icon>{{patient.doctor_fullname}}
</v-chip>
<v-chip style="color:white" v-if="patient.status !== 'NEW'" label color="grey" >
<v-icon left>assignment_ind</v-icon>{{patient.doctor_fullname}}
</v-chip>
<!--<v-chip label color="info" outline >
<v-icon left>assignment_ind</v-icon>{{test.doctor_fullname}}
</v-chip>-->
<v-menu
bottom
origin="center center"
transition="scale-transition"
>
<template v-slot:activator="{ on }">
<v-btn
color="primary"
dark
depressed
style="margin-left:4px;height:32px;padding:2px 8px"
small
v-on="on"
>
{{patient.lang_name}}
</v-btn>
</template>
<v-list>
<v-list-tile
v-for="(lang, i) in patient.langs"
:key="i"
@click="selectLang(patient,lang)"
>
<v-list-tile-title>{{ lang.name }}</v-list-tile-title>
</v-list-tile>
</v-list>
</v-menu>
<v-flex text-md-right>
<span v-if="patient.status === 'VAL1' || patient.status === 'VAL2'" title="cetak cover" @click="print(patient,'print_cover')" class="icon-medium-fill-base-small xs1 white--text blue icon-print"></span>
<span v-if="patient.status === 'VAL1' || patient.status === 'VAL2'" title="cetak cover foto" @click="print(patient,'print_cover_foto')" class="icon-medium-fill-base-small xs1 white--text teal icon-print"></span>
&nbsp;&nbsp;&nbsp;&nbsp;
<span v-if="patient.status === 'VAL1' || patient.status === 'VAL2'" title="cetak pdf" @click="print(patient,'print')" class="icon-medium-fill-base-small xs1 white--text blue-grey icon-print"></span>
<span v-if="patient.status === 'VAL1' || patient.status === 'VAL2'" title="cetak doc" @click="print(patient,'print_doc')" class="icon-medium-fill-base-small xs1 mt-1 white--text pink icon-print"></span>
<span v-if="patient.status === 'VAL1'" @click="unval1(patient,'unval1')" class="icon-medium-fill-base-small xs1 white--text warning icon-unval"></span>
<span v-if="patient.status === 'NEW' && (patient.re_id != '0' || patient.re_id != 0) && show_save" @click="saveResult(patient,'val1')" class="icon-medium-fill-base-small xs1 white--text warning icon-v"></span>
<span v-if="patient.status === 'NEW' && show_save" @click="saveResult(patient,'save')" class="icon-medium-fill-base-small xs1 white--text info icon-save"></span>
</v-flex>
</v-subheader>
<v-divider></v-divider>
<v-layout row wrap>
<v-flex xs12 v-for="(detail,index) in details" v-if="detail.length > 0" pa-2>
<v-layout row>
<v-flex xs11 pl-2 pr-2 pb-2 >
<h3 v-if="detail.length > 0" class="subtitle-2">{{index}}</h3>
</v-flex>
</v-layout>
<v-layout v-for="test in detail" mb-2 row>
<v-flex xs12 pl-2 pr-2>
<v-textarea
filled
outline
hide-details
:label="test.test_name"
@change="changeResult()"
:disabled="patient.status !== 'NEW'"
v-model="test.result"
auto-grow
rows="1"
></v-textarea>
</v-flex>
</v-layout>
</v-flex>
</v-layout>
<v-layout row>
<v-flex xs12 pa-2 pt-1>
<v-layout row>
<v-flex xs11 pl-2 pr-2 pb-2 >
<h3 class="subtitle-2">Kesimpulan</h3>
</v-flex>
</v-layout>
<v-layout row>
<v-flex xs12 pl-2 pr-2 pb-2 >
<v-textarea
filled
box
hide-details
label="Tuliskan kesimpulan"
@change="changeResult()"
:disabled="patient.status !== 'NEW'"
v-model="conclusions.kesimpulan"
auto-grow
rows="1"
></v-textarea>
</v-flex>
</v-layout>
</v-flex>
</v-layout>
<v-layout row>
<v-flex xs12 pa-2 pt-1>
<v-layout row>
<v-flex xs11 pl-2 pr-2 pb-2 >
<h3 class="subtitle-2">Rekomendasi</h3>
</v-flex>
</v-layout>
<v-layout row>
<v-flex xs12 pl-2 pr-2 pb-2 >
<v-textarea
filled
box
hide-details
label="Tuliskan rekomendasi"
@change="changeResult()"
:disabled="patient.status !== 'NEW'"
v-model="conclusions.rekomendasi"
auto-grow
rows="1"
></v-textarea>
</v-flex>
</v-layout>
</v-flex>
</v-layout>
<v-layout row>
<v-flex xs12 pa-2 pt-1>
<v-layout row>
<v-flex xs11 pl-2 pr-2 pb-2 >
<h3 class="subtitle-2">Saran</h3>
</v-flex>
</v-layout>
<v-layout row>
<v-flex xs12 pl-2 pr-2 pb-2 >
<v-textarea
filled
box
hide-details
label="Tuliskan saran"
@change="changeResult()"
:disabled="patient.status !== 'NEW'"
v-model="conclusions.saran"
auto-grow
rows="1"
></v-textarea>
</v-flex>
</v-layout>
</v-flex>
</v-layout>
</v-flex>
</v-layout>
</v-card>
</v-flex>
</v-layout>
<one-dialog-print :title="printtitle" :width="printwidth" :height="500" :status="openprint" :urlprint="urlprint" @close-dialog-print="closePrint"></one-dialog-print>
</div>
</template>
<style scoped>
table, td, th {
border: 1px solid #ddd;
text-align: left;
}
table {
border-collapse: collapse;
width: 100%;
}
th, td {
padding-top: 5px;
padding-bottom: 5px;
padding-left: 8px;
padding-right: 5px;
}
.mini-input .v-input{
margin-top: 0px;
}
.mini-input .v-input, .mini-input .v-input--selection-controls,.mini-input .v-input__slot{
margin-top: 0px;
margin-bottom:0px;
margin-left:3px;
}
.mini-input .v-messages{
min-height:0px;
}
input.fhm-input{
border: 1px solid black;
border-radius: 2px;
-webkit-box-shadow:
inset 0 0 2px rgba(0,0,0,0.1),
0 0 4px rgba(0,0,0,0.1);
-moz-box-shadow:
inset 0 0 2px rgba(0,0,0,0.1),
0 0 4px rgba(0,0,0,0.1);
box-shadow:
inset 0 0 2px rgba(0,0,0,0.1),
0 0 4px rgba(0,0,0,0.1);
padding: 2px 4px;
background: rgba(255,255,255,0.5);
margin: 0 0 1px 0;
width:30px;
text-align:center;
}
</style>
<script>
module.exports = {
components : {
'one-dialog-print':httpVueLoader('../../common/oneDialogPrintX.vue')
},
data: () => ({
openprint:false,
urlprint:'',
isLoading:false,
printtitle:'',
requiredoctor:false,
print_format:'cp',
printwidth:600,
selected_template:{},
idx_test:0,
headers: [
{
text: "NO REG",
align: "left",
sortable: false,
width: "10%",
class: "pl-2 pr-2 pb-1 pt-1 blue lighten-3 white--text"
},
{
text: "TANGGAL ORDER",
align: "left",
sortable: false,
width: "10%",
class: "pl-2 pr-2 pb-1 pt-1 blue lighten-3 white--text"
},
{
text: "PEMRIKSAAN",
align: "left",
sortable: false,
width: "35%",
class: "pl-2 pr-2 pb-1 pt-1 blue lighten-3 white--text"
},
],
}),
computed: {
show_save: {
get() {
return this.$store.state.sample.show_save
},
set(val) {
this.$store.commit("sample/update_show_save",val)
}
},
conclusions: {
get() {
return this.$store.state.sample.conclusions
},
set(val) {
this.$store.commit("sample/update_conclusions",val)
}
},
xhistories: {
get() {
return this.$store.state.sample.histories
},
set(val) {
this.$store.commit("sample/update_histories",val)
}
},
dialoghistories: {
get() {
return this.$store.state.sample.dialog_histories
},
set(val) {
this.$store.commit("sample/update_dialog_histories",val)
}
},
dialognote: {
get() {
return this.$store.state.sample.dialog_note
},
set(val) {
this.$store.commit("sample/update_dialog_note",val)
}
},
dialogtemplates:{
get() {
return this.$store.state.sample.dialog_template
},
set(val) {
this.$store.commit("sample/update_dialog_template",val)
}
},
xtemplates(){
return this.$store.state.sample.templates
},
xselectedtemplate:{
get() {
return this.$store.state.sample.selected_template
},
set(val) {
this.$store.commit("sample/update_selected_template",val)
}
},
xdialogaction:{
get() {
return this.$store.state.sample.dialog_action
},
set(val) {
this.$store.commit("sample/update_dialog_action",val)
}
},
xmsgaction:{
get() {
return this.$store.state.sample.msg_action
},
set(val) {
this.$store.commit("sample/update_msg_action",val)
}
},
xtests(){
return this.$store.state.sample.selected_transaction.details
},
patient(){
return this.$store.state.sample.selected_transaction
},
xdialogimage:{
get() {
return this.$store.state.sample.dialog_image
},
set(val) {
this.$store.commit("sample/update_dialog_image",val)
}
},
ximage() {
return this.$store.state.sample.image
},
dialoglangs:{
get() {
return this.$store.state.sample.langs
},
set(val) {
this.$store.commit("sample/update_item_langs",val)
}
},
xselectedlang:{
get() {
return this.$store.state.sample.selected_lang
},
set(val) {
this.$store.commit("sample/update_selected_lang",val)
}
},
dialogprintlang:{
get() {
return this.$store.state.sample.dialog_print_lang
},
set(val) {
this.$store.commit("sample/update_dialog_print_lang",val)
}
},
curr_page_histories: {
get() {
return this.$store.state.sample.current_page_histories
},
set(val) {
this.$store.commit("sample/update_current_page_histories",val)
this.$store.dispatch("sample/search_histories",{
search:'',
patientid:this.patient.patientid,
orderid:this.patient.trx_id,
current_page:val,
lastid:-1
})
}
},
xtotal_page_histories: {
get() {
return this.$store.state.sample.total_page_histories
},
set(val) {
this.$store.commit("sample/update_total_page_histories",val)
}
},
xselectedhistory(){
return this.$store.state.sample.selected_history
},
details: {
get() {
return this.$store.state.sample.details
},
set(val) {
this.$store.commit("sample/update_details",val)
}
},
xdoctors(){
return this.$store.state.sample.doctors
},
xselecteddoctor:{
get() {
return this.$store.state.sample.selected_doctor
},
set(val) {
this.$store.commit("sample/update_selected_doctor",val)
}
},
xdialogdoctor:{
get() {
return this.$store.state.sample.dialog_doctor
},
set(val) {
this.$store.commit("sample/update_dialog_doctor",val)
}
},
},
methods : {
savedoctor(){
var patient = this.patient
patient.doctor_id = this.xselecteddoctor.doctor_id
patient.doctor_name = this.xselecteddoctor.doctor_name
patient.doctor_fullname = this.xselecteddoctor.doctor_fullname
this.$store.commit("sample/update_selected_transaction",patient)
this.xdialogdoctor = false
//this.$store.dispatch("sample/savedoctor",prm)
},
opendialogdoctor(){
var patient = this.patient
this.$store.commit("sample/update_doctors",patient.doctors)
this.xselecteddoctor = {}
if(patient.doctor_id !== 0 || patient.doctor_id !== '0'){
this.xselecteddoctor = {doctor_id:patient.doctor_id,doctor_fullname:patient.doctor_fullname}
}
this.xdialogdoctor = true
},
showMore(index){
var selected_history = this.$store.state.sample.selected_history
var old_value = selected_history.details[index].xshow
selected_history.details[index].xshow = old_value === 'Y'?'N':'Y'
},
showHistories(){
this.xhistories = []
this.dialoghistories = true
this.curr_page_histories = 1
this.xtotal_page_histories = 0
},
isSelected(p) {
return p.orderid == this.$store.state.sample.selected_history.orderid
},
selectMe(trx) {
this.$store.commit("sample/update_selected_history",trx)
this.$store.commit("sample/update_details_histories", trx.details)
},
changeSwitch(value,idx){
//console.log(value)
_.forEach(this.dialoglangs, function(num) { num.chex = 'N' })
this.dialoglangs[idx].chex = value === 'Y' ?'N':'Y'
},
changeFlagPrint(value,rst_idx,test_idx){
var selected_patient = this.$store.state.sample.selected_transaction
console.log(selected_patient)
selected_patient.details[test_idx].details[rst_idx].flag_print = value === 'Y' ?'N':'Y'
//console.log(selected_patient[test_idx][rst_idx])
this.$store.dispatch("sample/save_flagprint",{selected_trx:selected_patient,row:selected_patient.details[test_idx].details[rst_idx]})
},
xlangs(test){
return test.langs
},
check_saved(test){
var arrdetails = test.details
var notempty = _.filter(arrdetails, function(o) { return o.result_value_before !== '' })
//console.log(notempty)
if(notempty.length === 0)
return false
else
return true
},
selectedLang(value){
return {id:value.language_id,name:value.language_name}
},
selectedlangName(value){
return value.language_name
},
selectLang(trx,lang){
console.log(trx)
var arr = this.$store.state.sample.selected_transaction
var arrdetails = arr.details
let idx = _.findIndex(arrdetails, function(o) { return o.trx_id == trx.trx_id })
console.log("aye")
this.$store.dispatch("sample/getrstbylang",{
trx:trx,
lang:lang,
selected_trx:this.$store.state.sample.selected_transaction,
idx:idx,
detail:arrdetails[idx]})
},
changeResult(){
this.$store.commit("sample/update_no_save",1)
},
saveResult(trx,act){
var ar = this.$store.state.sample.transactions
var arr = this.$store.state.sample.selected_transaction
let idx = _.findIndex(ar, function(o) { return o.trx_id == arr.trx_id })
this.$store.dispatch("sample/saveresult",{
startdate:this.$store.state.sample.start_date,
enddate: this.$store.state.sample.end_date,
search:this.$store.state.sample.name_lab,
stationid:this.$store.state.sample.selected_station.id,
groupid:this.$store.state.sample.select_item_group.id,
subgroupid:this.$store.state.sample.select_item_subgroup.id,
lastid:arr.trx_id,
trx:trx,
trx_numbering:arr.ordernumber,
details:this.$store.state.sample.details,
conclusions:this.$store.state.sample.conclusions,
act:act
})
},
val1(trx,act){
console.log(act)
this.$store.commit("sample/update_act",act)
this.$store.commit("sample/update_last_trx",trx)
var arr = this.$store.state.sample.selected_transaction
var msg = "Anda yakin akan melakukan validasi untuk pasien "+arr.patient_fullname+" ?"
this.$store.commit("sample/update_msg_action",msg)
this.$store.commit("sample/update_dialog_action",true)
},
unval1(trx,act){
console.log(act)
this.$store.commit("sample/update_act",act)
this.$store.commit("sample/update_last_trx",trx)
var arr = this.$store.state.sample.selected_transaction
var msg = "Anda yakin akan membatalkan validasi untuk pasien "+arr.patient_fullname+" ?"
this.$store.commit("sample/update_msg_action",msg)
this.$store.commit("sample/update_dialog_action",true)
},
val2(trx,act){
console.log(act)
this.$store.commit("sample/update_act",act)
this.$store.commit("sample/update_last_trx",trx)
var arr = this.$store.state.sample.selected_transaction
var msg = "Anda yakin akan melakukan validasi untuk pemeriksaan "+trx.test_name+" dari pasien "+arr.patient_fullname+" ?"
this.$store.commit("sample/update_msg_action",msg)
this.$store.commit("sample/update_dialog_action",true)
},
unval2(trx,act){
console.log(act)
this.$store.commit("sample/update_act",act)
this.$store.commit("sample/update_last_trx",trx)
var arr = this.$store.state.sample.selected_transaction
var msg = "Anda yakin akan membatalkan validasi untuk pemeriksaan "+trx.test_name+" dari pasien "+arr.patient_fullname+" ?"
this.$store.commit("sample/update_msg_action",msg)
this.$store.commit("sample/update_dialog_action",true)
},
doPrintAfterLang(){
this.dialogprintlang = false
var trx = this.$store.state.sample.selected_test
var idx_true = _.findIndex(this.dialoglangs, item => item.chex === 'Y')
this.xselectedlang = this.dialoglangs[idx_true]
this.printwidth = 1028
this.printtitle = ""
let idx = trx.re_id
let user = one_user()
var d = new Date();
var n = d.getTime()
var rptname = 'rpt_mcu_resume_'+this.print_format
if(this.$store.state.sample.act === 'print_cover'){
rptname = 'rpt_mcu_resume_cover'
}
if(this.$store.state.sample.act === 'print_cover_foto'){
rptname = 'rpt_mcu_resume_cover_foto'
}
if(this.xselectedlang.code === 'EN'){
}
// rptname = 'rpt_hasil_so_eng'
this.urlprint = "/birt/frameset?__report=report/one/mcu/"+rptname+".rptdesign&__format=pdf&username="+user.M_UserUsername+"&PID="+idx+'&PLang='+trx.lang_id+'&tm='+n
if(this.$store.state.sample.act === 'print_doc'){
this.urlprint = "/birt/frameset?__report=report/one/mcu/"+rptname+".rptdesign&__format=doc&username="+user.M_UserUsername+"&PID="+idx+'&PLang='+trx.lang_id+'&tm='+n
}
this.openprint = true
},
print(trx,act){
console.log(trx)
this.dialogprintlang = true
var nowlang = trx.langs
_.forEach(nowlang, function(num) { num.chex = 'N' })
var lang_idx = _.findIndex(nowlang, function(o) { return o.id == trx.lang_id })
nowlang[lang_idx].chex = 'Y'
this.$store.commit("sample/update_item_langs",nowlang )
this.xselectedlang = trx.langs[0]
this.$store.commit("sample/update_selected_test",trx)
this.$store.commit("sample/update_act",act)
this.$store.commit("sample/update_last_trx",trx)
},
closePrint(){
this.openprint = false
var prm = this.$store.state.sample.last_trx
this.$store.dispatch("sample/printcount",prm)
},
closeDialogAction(){
var trx = this.$store.state.sample.last_trx
var act = this.$store.state.sample.act
this.saveResult(trx,act)
},
openImage(value){
this.$store.commit("sample/update_selected_photo",value)
this.$store.commit("sample/update_image",value.newname)
this.$store.commit("sample/update_dialog_image",true)
},
pasteTemplate(rst,idx){
this.idx_test = idx
var seltrx = this.$store.state.sample.selected_transaction
var datax = seltrx.details[idx]
if(datax.status === 'NEW'){
var prm = {
idx:idx,
template_id:datax.template_id,
doctor_id:datax.doctor_id,
language_id:datax.language_id,
test_id:datax.test_id}
this.$store.dispatch("sample/gettemplate",prm)
}
},
doPasteTemplate(){
var seltrx = this.$store.state.sample.selected_transaction
//console.log(seltrx)
var temp_val = this.$store.state.sample.selected_template.details
var test_idx = this.idx_test
seltrx.details[test_idx].details.forEach(function(temp,index) {
var template_detail_id = seltrx.details[test_idx].details[index].template_detail_id
var value_now = seltrx.details[test_idx].details[index].result_value
var filter_temp = _.filter(temp_val, function(o) { return o.template_detail_id === template_detail_id })
//console.log(filter_temp)
if(filter_temp.length > 0 && ( !value_now || value_now === '')){
seltrx.details[test_idx].details[index].result_value = filter_temp[0].value
}
})
this.$store.commit("update_selected_transaction",seltrx)
this.dialogtemplates = false
}
}
}
</script>