<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="Format 1 dengan header" value="format-1"></v-radio>
                        <v-radio label="Format 2 dengan header" value="format-2"></v-radio>
                        <v-radio label="Format 1 tanpa header" value="format-3"></v-radio>
                        <v-radio label="Format 2 tanpa header" value="format-4"></v-radio>
                    </v-radio-group>
                    <div class="emailbox" style="padding:15px;background-color: #f1fab4;border-radius:5px;">
                       <span class="title">Format Email 
                          <span v-if="email_format==''" style='color:red'> [ belum di pilih !!! ] </span>
                       </span> 
                       <v-radio-group v-model="email_format" row>
                           <v-radio label="Format 1 dengan header" value="format-1"></v-radio>
                           <v-radio label="Format 2 dengan header" value="format-2"></v-radio>
                           <v-radio label="Format 1 tanpa header" value="format-3"></v-radio>
                           <v-radio label="Format 2 tanpa header" value="format-4"></v-radio>
                       </v-radio-group>
                       <span style="font-style:italic;color:brown"  >*) format yang akan digunakan dalam pengiriman email</span> 
                    </div>
                </v-card-text>
                <v-card-actions>
                <v-spacer></v-spacer>
                    <v-btn color="blue-grey" flat @click="doSaveEmailFormat()">Simpan Format Email</v-btn>
                    <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-layout row mb-2 wrap>
            <v-flex xs12 pr-1>
                <v-card>
                     <v-layout class="align-center" pt-1 pb-1 row>
                         <v-flex pt-1 pb-1 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-1 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-1 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-1 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-1 pl-2 pr-1 xs3>
                                <v-text-field ma-1
                                label="PENGIRIM"
                                class="text-uppercase"
                                :value="patient.doctor_sender"
                                hide-details
                                ></v-text-field>
                            </v-flex>
                    </v-layout>
                </v-card>
            </v-flex>
        </v-layout>
        <v-layout mb-2 row v-for="(test,index) in xtests" 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="test.status === 'NEW'" label color="grey" text-color="white">
                                <v-icon left>label</v-icon>{{test.test_name}}
                            </v-chip>
                            <v-chip v-if="test.status === 'VAL1'" label color="warning" text-color="white">
                                <v-icon left>label</v-icon>{{test.test_name}}
                            </v-chip>
                            <v-chip v-if="test.status === 'VAL2'" label color="success" text-color="white">
                                <v-icon left>label</v-icon>{{test.test_name}}
                            </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"
                                >
                                {{selectedlangName(test)}}
                                </v-btn>
                                </template>

                                <v-list>
                                <v-list-tile
                                v-for="(lang, i) in xlangs(test)"
                                :key="i"
                                @click="selectLang(test,lang)"
                                >
                                <v-list-tile-title>{{ lang.name }}</v-list-tile-title>
                                </v-list-tile>
                                </v-list>
                            </v-menu>
                            <v-tooltip left>
                                <template v-slot:activator="{ on }">
                                    <v-icon v-on="on" @click="pasteTemplate(test,index)" style="cursor: pointer;" large>assignment</v-icon>
                                </template>
                                <span>pasang template</span>
                            </v-tooltip>
                            <v-flex text-md-right>
                                <span  v-if="test.status === 'VAL1' || test.status === 'VAL2'" @click="print(test,'print')"  class="icon-medium-fill-base-small xs1 white--text blue-grey icon-print"></span>
                                <!--<v-btn v-if="test.status === 'VAL2'" @click="unval2(test,'unval2')" small outline class="icon-unval" color="success"></v-btn>-->
                                <!--<span  v-if="test.status === 'VAL2'" @click="unval2(test,'unval2')"  class="icon-medium-fill-base-small xs1 white--text success icon-unval"></span>-->
                                <!--<v-btn v-if="test.status === 'VAL1'" @click="val2(test,'val2')" small color="success">Validasi</v-btn>-->
                                <!--<span  v-if="test.status === 'VAL1'" @click="val2(test,'val2')"  class="icon-medium-fill-base-small xs1 white--text success icon-vv"></span>-->
                                <!--<v-btn v-if="test.status === 'VAL1'" @click="unval1(test,'unval1')" small outline color="warning">Batalkan Verifikasi</v-btn>-->
                                <span  v-if="test.status === 'VAL1'" @click="unval1(test,'unval1')"  class="icon-medium-fill-base-small xs1 white--text warning icon-unval"></span>
                                <!--<v-btn v-if="test.status === 'NEW'" @click="val1(test,'val1')" small color="warning">Verifikasi</v-btn>-->
                                <span  v-if="test.status === 'NEW' && check_saved(test)" @click="val1(test,'val1')"  class="icon-medium-fill-base-small xs1 white--text warning icon-v"></span>
                                <!--<v-btn v-if="test.status === 'NEW'" @click="saveResult(test,'save')" small color="info">Simpan</v-btn>-->
                                <span  v-if="test.status === 'NEW'" @click="saveResult(test,'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 pa-2 pt-1>
                                    <v-layout  align-center justify-center v-for="(result,idxresult) in test.details" row>
                                        <!--<v-flex class="text-xs-center" xs1>
                                            <v-tooltip left>
                                            <template v-slot:activator="{ on }">
                                                <v-icon v-on="on" @click="pasteTemplate(result,index)" style="cursor: pointer;" large>assignment</v-icon>
                                            </template>
                                            <span>pasang template</span>
                                            </v-tooltip>
                                            
                                        </v-flex>-->
                                        <v-flex pl-2 class="text-xs-center" xs1>
                                            <v-switch
                                                v-model="result.flag_print === 'Y'"
                                                @change="changeFlagPrint(result.flag_print,idxresult,index)"
                                            ></v-switch>
                                            
                                        </v-flex>
                                        <v-flex xs11 pr-2 pb-2 >
                                            <v-textarea
                                                filled
                                                outline
                                                hide-details
                                                :label="result.result_label"
                                                @change="changeResult()"
                                                :disabled="test.status !== 'NEW' || test.doctor_id === '0'"
                                                v-model="result.result_value"
                                                rows="3"
                                            ></v-textarea>
                                        </v-flex>
                                    </v-layout>
                                </v-flex>
                            </v-layout>
                            <v-divider></v-divider>
                        </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,
        print_format:'format-1',
        printtitle:'',
        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: {
       email_format: {
          get() {
             return this.$store.state.email.format
          },
          set(v) {
             this.$store.commit("email/update_format",v)
          }
       },
        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
        }
    },
    methods : {
       async doSaveEmailFormat() {
            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]
            let idx = trx.trx_id
            let user = one_user()
            var d = new Date();
            var n = d.getTime()
            var rptname = 'rpt_hasil_so_elmd_email'   
             if(this.print_format === 'format-2')
                rptname = 'rpt_hasil_so_elmd_2_email'
            if(this.print_format === 'format-3')
                rptname = 'rpt_hasil_so_elmd_non_2_email'
            if(this.print_format === 'format-3')
                rptname = 'rpt_hasil_so_elmd_non_email'
            if(this.xselectedlang.code === 'EN'){
                rptname = 'rpt_hasil_so_elmd_eng_email'
            }
            url = "/birt/run?__report=report/one/lab/"+rptname+".rptdesign&__format=pdf&username="+user.M_UserUsername+"&PID="+idx+'&PLang='+trx.language_id+'&tm='+n
            let prm_email = {
               orderID: trx.orderid,
               type: trx.type,
               url: url,
               re_id: trx.trx_id,
               format: this.email_format
            }
            await this.$store.dispatch("email/save",prm_email)
            
       },
        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,
                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 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)
        },
        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 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)
        },
        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.trx_id
            let user = one_user()
            var d = new Date();
            var n = d.getTime()
            var rptname = ''
            var rptname = 'rpt_hasil_so_elmd'   
             if(this.print_format === 'format-2')
                rptname = 'rpt_hasil_so_elmd_2'
            if(this.print_format === 'format-3')
                rptname = 'rpt_hasil_so_elmd_non_2'
            if(this.print_format === 'format-3')
                rptname = 'rpt_hasil_so_elmd_non'
            if(this.xselectedlang.code === 'EN'){
                rptname = 'rpt_hasil_so_elmd_eng'
            }

            this.urlprint = "/birt/run?__report=report/one/lab/"+rptname+".rptdesign&__format=pdf&username="+user.M_UserUsername+"&PID="+idx+'&PLang='+trx.language_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.language_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>
