<template>
   <div>
      <v-dialog v-model="dialogprintlang" persistent max-width="80%">
            <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 v-if="dialoglangs.length > 0" style="color:#fff!important">Laporan Hasil {{dialoglangs[0].name}}</v-subheader>
                </v-card-title>
                <v-card-text>
                    <v-layout row>
                        <v-flex xs3>
        
                            <v-layout row>
                                <v-flex xs12>
                                    <v-switch class="mt-1 mb-0" @change="doPrintAfterLangClick(print_format,$event)" v-model="print_format" value="format-1">
                                        <template v-slot:label>
                                            <div class="body-1">Format 1</div>
                                        </template>
                                    </v-switch>
                                    <v-switch class="mt-1 mb-0" @change="doPrintAfterLangClick(print_format,$event)" v-model="print_format" value="format-2">
                                        <template v-slot:label>
                                            <div class="body-1">Format 2</div>
                                        </template>
                                    </v-switch>
                                </v-flex>
                            </v-layout>
                        </v-flex>
                        <v-flex xs9>
                            <object  style="overflow: hidden;" height="540px"  width="100%"  :data="urlprint"></object>
                        </v-flex>
                    </v-layout>
                </v-card-text>
                <v-card-actions>
                <v-spacer></v-spacer>
                    <v-btn color="teal lighten-2" v-if="btnsaveemail" flat @click="doSaveEmailFormat()">E-DELIVERY FORMAT</v-btn>
                    <v-btn color="grey ligthen-1" flat @click="closePrint">TUTUP</v-btn>
                    
                </v-card-actions>
            </v-card>
        </v-dialog>
      <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 v-if="patient.fo_note && patient.fo_note !== ''" mb-2 row>
                  <v-flex mb-2 xs3>
                     <span style="color: #0f80db" class="mono name">FO</span>
                  </v-flex>
                  <v-flex xs9>
                     <v-layout row>
                           <v-flex mb-1 xs12>
                              <code style="box-shadow: none !important;color: #0f80db !important;background-color: #a8cfee6b !important;">{{patient.fo_note_user}}</code>
                              <div class="v-markdown">
                                 <p style="margin-top:2px;margin-bottom:0">
                                       {{patient.fo_note}}
                                 </p>
                              </div>
                           </v-flex>
                     </v-layout>
                  </v-flex>
               </v-layout>
               <v-layout v-if="patient.fo_ver_note && patient.fo_ver_note !== ''" mb-2 row>
                  <v-flex mb-2 xs3>
                     <span style="color: #0f80db" class="mono name">FO Verifikasi</span>
                  </v-flex>
                  <v-flex xs9>
                     <v-layout row>
                           <v-flex mb-1 xs12>
                              <code style="box-shadow: none !important;color: #0f80db !important;background-color: #a8cfee6b !important;">{{patient.fo_ver_note_user}}</code>
                              <div class="v-markdown">
                                 <p style="margin-top:2px;margin-bottom:0">{{patient.fo_ver_note}}</p>
                              </div>
                           </v-flex>
                     </v-layout>
                  </v-flex>
               </v-layout>
               <v-layout v-if="patient.sampling_note && patient.sampling_note !== ''" mb-2 row>
                  <v-flex mb-2 xs3>
                     <span style="color: #0f80db" class="mono name">Sampling</span>
                  </v-flex>
                  <v-flex xs9>
                     <v-layout row>
                           <v-flex mb-1 xs12>
                              <code style="box-shadow: none !important;color: #0f80db !important;background-color: #a8cfee6b !important;">{{patient.sampling_note_user}}</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="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="dialogdownload" persistent max-width="650" max-height="500">
         <v-card >
            <v-container grid-list-sm fluid>
               <v-layout row wrap>
                  <v-flex xs12>
                        <p class="mb-2">PILIH YANG DIINGINKAN : </p>
                        <v-layout class="pl-2 pt-2" row>
                           <v-flex xs12>
                              <v-radio-group v-model="selected_download">
                                 <v-radio
                                    v-for="report in reports"
                                    :label="report.test"
                                    :value="report.url"
                                 ></v-radio>
                              </v-radio-group>
                           </v-flex>
                        </v-layout>
                  </v-flex>
               </v-layout>
            </v-container>
            <v-card-actions>

               <v-spacer></v-spacer>
               <v-btn color="error darken-1" flat @click="dialogdownload = false">Tutup</v-btn>
               <v-btn color="teal lighten-2" flat @click="doDownloadRpt()">DOWNLOAD</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 dark v-for="delivery in patient.deliveries" @click="downloadRpt(delivery)" :title="delivery.destination" label
                           :color="delivery.color" text-color="white">
                           {{delivery.label}}
                        </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 style="font-size:12px" 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 style="font-size:12px" 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 style="font-size:12px" 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 style="font-size:12px" label="PENGIRIM" class="text-uppercase" :value="patient.doctor_sender"
                        hide-details></v-text-field>
                  </v-flex>
               </v-layout>
            </v-card>
         </v-flex>
      </v-layout>
      <div style="overflow-y:auto;max-height:635px">
        <v-layout v-if="!patient.T_OrderPromiseDateTime" row wrap>
            <v-flex pr-1 xs12>
                <v-card>
                   <v-layout pa-3 row>
                     <v-flex xs12>
               <h4 class="text-align-center font-weight-black title">JANJI YANG TAK PERNAH ADA</h4>
               <blockquote class="blockquote subheading font-weight-light font-italic">
                     Aku tak ingin, ketika aku tlah menyelesaikannya. 
                     Aku tak tahu, kapan harus ku berikan padanya.
                     Janji itu, mungkin sudah terucap.
                     Tapi tak pernah tertulis.
                     <span class="font-weight-bold">Koreksi janji itu</span>, agar ku bisa mengerti.
               </blockquote>
               <p class="mt-2 pb-1 pr-5 caption warning--text">*) silahkan isi janji hasil di menu koreksi janji hasil</p>
                     </v-flex>
                   </v-layout>
                 </v-card>
            </v-flex>
         </v-layout>
         <v-layout v-if="patient.T_OrderPromiseDateTime" 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 :title="test.test_name" v-if="test.status === 'NEW'" label color="grey"
                              text-color="white">
                              <v-icon left>label</v-icon>{{testfullname(test.test_name)}}
                           </v-chip>
                           <v-chip :title="test.test_name" v-if="test.status === 'VAL1'" label color="warning"
                              text-color="white">
                              <v-icon left>label</v-icon>{{testfullname(test.test_name)}}
                           </v-chip>
                           <v-chip :title="test.test_name" v-if="test.status === 'VAL2'" label color="success"
                              text-color="white">
                              <v-icon left>label</v-icon>{{test.test_name}}
                           </v-chip>
                           <v-chip :title="test.test_name" label color="info" outline>
                              <v-icon left>assignment_ind</v-icon>{{testfullname(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>
                              <span v-if="test.status === 'VAL1'" @click="unval1(test,'unval1')"
                                 class="icon-medium-fill-base-small xs1 white--text warning icon-unval"></span>
                              <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>
                              <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 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"
                                       auto-grow
                                       @change="changeResult(result.result_value,idxresult,index)"
                                       :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-if="test.is_mcu === 'Y'"></v-divider>
                        <v-layout v-if="test.is_mcu === 'Y'" align-center justify-end  row>
                          <v-flex xs8 class="text-xs-right">
                           </v-flex>
                           <v-flex xs4 pr-3 pt-2 pb-2 class="text-xs-right justify-end ">
                              <v-select
                                 :disabled="test.status !== 'NEW'"
                                 :items="status_results"
                                 v-model="test.status_result"
                                 return-object
                                 hide-details
                                 outline
                                 class="mini-select"
                                 item-text="name"
                                 label="Kategori Hasil"
                              ></v-select>
                           </v-flex>
                            
                        </v-layout>
                     </v-flex>
                  </v-layout>
               </v-card>
            </v-flex>
         </v-layout>
      </div>
      <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;
   }

   code, kbd {
   
    white-space: normal;

}
</style>

<script>
   module.exports = {
      components: {
         'one-dialog-print': httpVueLoader('../../common/oneDialogPrintX.vue')
      },
      data: () => ({
         dialogdownload:false,
         reports:[],
         selected_download:'',
         btnsaveemail:false,
         openprint: false,
         urlprint: '',
         isLoading: false,
         printtitle: '',
         printwidth: 600,
         selected_template: {},
         status_results:[{id:'X',name:'Belum ditentukan'},{id:'Y',name:'Normal'},{id:'N',name:'Tidak Normal'}],
         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() {
               let format = this.$store.state.email.format
               if (format) return format
               return ''
            },
            set(val) {
               this.$store.commit("email/update_format", val)
            }
         },
         print_format: {
            get() {
               return this.$store.state.sample.print_format
            },
            set(val) {
               this.$store.commit("sample/update_print_format", 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
         }
      },
      methods: {
         doDownloadRpt(){
            var eurl = this.selected_download
            var win = window.open(eurl, '_blank');
            win.focus();
         },
          downloadRpt(dx){
            this.reports = dx.url
            this.selected_download = ''
            if(dx.status_payment === 'Y' && dx.url.length > 0){
               if(dx.url.length === 1){
                  var eurl = dx.url[0].url
                  var win = window.open(eurl, '_blank');
                  win.focus();
               }
               else{
                  this.dialogdownload = true
               }

                
            }
        },
         testfullname(value) {
            var xx = value.length
            if (xx > 25)
               return value.substring(0, 25) + '...'
            else
               return value
         },
         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
            var trx =  this.$store.state.sample.selected_test
            var idx_true = _.findIndex(this.dialoglangs, item => item.chex === 'Y')
          
            //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", {
               lang:selected_patient.details[test_idx].language_id,
               selected_trx: selected_patient,
               row: selected_patient.details[test_idx].details[rst_idx]
            })
         },
         changeResult(value, rst_idx, test_idx) {
            var value = JSON.stringify(value)
            value = JSON.parse(value)
            var transactions = this.$store.state.sample.transactions
            var selected_patient = this.$store.state.sample.selected_transaction
            var idx = _.filter(transactions, function (o) {
               return o.trx_id === selected_patient.trx_id
            })
            //console.log(selected_patient)
            selected_patient.details[test_idx].details[rst_idx].result_value = value
            this.$store.commit("sample/update_transactions", transactions)
            //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,
               current_page: this.$store.state.sample.current_page,
               trx: trx,
               trx_numbering: arr.ordernumber,
               act: act
            })
         },
         val1(trx, act) {
            console.log(act)
            var go_cat = true
            if(trx.is_mcu === 'Y' && trx.status_result.id === 'X')
               go_cat = false

            if(go_cat){
               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)
            }
            else{
               var msg = "<p class='mb-0'>Belajar menggambar pakai pensil, menggambar daun pohon kelapa, tolong dilihat kategori hasil, pilih salah satu jangan lupa</p>"
                msg += "<p class='mb-1 mono caption' style='color:red' >*) Kategori hasil untuk rekap mcu</p>"
               this.$store.commit("sample/update_msg_info", msg)
               this.$store.commit("sample/update_open_dialog_info", 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)
         },
         async doSaveEmailFormat() {
            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.orderid
            let user = one_user()
            var d = new Date();
            var n = d.getTime()
            var rptname = ''
            this.email_format =  this.print_format
            if (trx.type === 'Rontgen')
               rptname = 'rpt_hasil_so_xray_email'
            if (trx.type === 'USG') {
               rptname = 'rpt_hasil_so_usg_email'
               idx = trx.trx_id
            }
            if (trx.type === 'BMD')
               rptname = 'rpt_hasil_so_bdm_email'
            if (trx.type === 'MRI')
               rptname = 'rpt_hasil_so_xray_mri_email'

            if (trx.type === 'Rontgen' && this.email_format === 'format-2')
               rptname = 'rpt_hasil_so_xray_2_email'
            if (trx.type === 'USG' && this.email_format === 'format-2')
               rptname = 'rpt_hasil_so_usg_2_email'
            if (trx.type === 'BMD' && this.email_format === 'format-2')
               rptname = 'rpt_hasil_so_bdm_2_email'
            if (trx.type === 'MRI' && this.email_format === 'format-2')
               rptname = 'rpt_hasil_so_xray_mri_2_email'

            if (this.xselectedlang.code === 'EN') {
               if (trx.type === 'Rontgen')
                  rptname = 'rpt_hasil_so_xray_eng_email'
               if (trx.type === 'USG')
                  rptname = 'rpt_hasil_so_usg_eng_email'
               if (trx.type === 'BMD')
                  rptname = 'rpt_hasil_so_bdm_eng_email'
               if (trx.type === 'MRI')
                  rptname = 'rpt_hasil_so_xray_mri_eng_email'

               if (trx.type === 'Rontgen' && this.email_format === 'format-2')
                  rptname = 'rpt_hasil_so_xray_2_eng_email'
               if (trx.type === 'USG' && this.email_format === 'format-2')
                  rptname = 'rpt_hasil_so_usg_2_eng_email'
               if (trx.type === 'BMD' && this.email_format === 'format-2')
                  rptname = 'rpt_hasil_so_bdm_2_eng_email'
               if (trx.type === 'MRI' && this.email_format === 'format-2')
                  rptname = 'rpt_hasil_so_xray_mri_2_eng_email'
            }
            let 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,
               format: this.email_format
            }
            if (trx.type === 'USG') {
               prm_email.re_id = trx.trx_id
            }
            await this.$store.dispatch("email/save", prm_email)
            this.dialogprintlang = false
         },
         async doPrintAfterLangClick(item,event) {
            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.orderid
            console.log(event)
            console.log(this.print_format)
            //this.print_format = event.target.value
            let user = one_user()
            var d = new Date();
            var n = d.getTime()
            var rptname = ''
            if (trx.type === 'Rontgen')
               rptname = 'rpt_hasil_so_xray'
            if (trx.type === 'USG') {
               rptname = 'rpt_hasil_so_usg'
               idx = trx.trx_id
            }
            if (trx.type === 'BMD')
               rptname = 'rpt_hasil_so_bdm'
            if (trx.type === 'MRI')
               rptname = 'rpt_hasil_so_xray_mri'

            if (trx.type === 'Rontgen' && this.print_format === 'format-2')
               rptname = 'rpt_hasil_so_xray_2'
            if (trx.type === 'USG' && this.print_format === 'format-2')
               rptname = 'rpt_hasil_so_usg_2'
            if (trx.type === 'BMD' && this.print_format === 'format-2')
               rptname = 'rpt_hasil_so_bdm_2'
            if (trx.type === 'MRI' && this.print_format === 'format-2')
               rptname = 'rpt_hasil_so_xray_mri_2'

            if (parseInt(trx.language_id) === 2) {
               if (trx.type === 'Rontgen')
                  rptname = 'rpt_hasil_so_xray_eng'
               if (trx.type === 'USG')
                  rptname = 'rpt_hasil_so_usg_eng'
               if (trx.type === 'BMD')
                  rptname = 'rpt_hasil_so_bdm_eng'
               if (trx.type === 'MRI')
                  rptname = 'rpt_hasil_so_xray_mri_eng'

               if (trx.type === 'Rontgen' && this.print_format === 'format-2')
                  rptname = 'rpt_hasil_so_xray_2_eng'
               if (trx.type === 'USG' && this.print_format === 'format-2')
                  rptname = 'rpt_hasil_so_usg_2_eng'
               if (trx.type === 'BMD' && this.print_format === 'format-2')
                  rptname = 'rpt_hasil_so_bdm_2_eng'
               if (trx.type === 'MRI' && this.print_format === 'format-2')
                  rptname = 'rpt_hasil_so_xray_mri_2_eng'
            }
            // rptname = 'rpt_hasil_so_eng'
            this.urlprint = "/birt/run?__report=report/one/lab/" + rptname + ".rptdesign&__format=pdf&username=" +
               user.M_StaffName + "&PID=" + idx + '&PLang=' + trx.language_id + '&tm=' + n

            //this.openprint = true
         },
         async doPrintAfterLang() {
            //console.log(this.print_format)
            //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.orderid
            this.print_format = 'format-1'
            let user = one_user()
            var d = new Date();
            var n = d.getTime()
            var rptname = ''
            if (trx.type === 'Rontgen')
               rptname = 'rpt_hasil_so_xray'
            if (trx.type === 'USG') {
               rptname = 'rpt_hasil_so_usg'
               idx = trx.trx_id
            }
            if (trx.type === 'BMD')
               rptname = 'rpt_hasil_so_bdm'
            if (trx.type === 'MRI')
               rptname = 'rpt_hasil_so_xray_mri'

            if (trx.type === 'Rontgen' && this.print_format === 'format-2')
               rptname = 'rpt_hasil_so_xray_2'
            if (trx.type === 'USG' && this.print_format === 'format-2')
               rptname = 'rpt_hasil_so_usg_2'
            if (trx.type === 'BMD' && this.print_format === 'format-2')
               rptname = 'rpt_hasil_so_bdm_2'
            if (trx.type === 'MRI' && this.print_format === 'format-2')
               rptname = 'rpt_hasil_so_xray_mri_2'

            if (parseInt(trx.language_id) === 2) {
               if (trx.type === 'Rontgen')
                  rptname = 'rpt_hasil_so_xray_eng'
               if (trx.type === 'USG')
                  rptname = 'rpt_hasil_so_usg_eng'
               if (trx.type === 'BMD')
                  rptname = 'rpt_hasil_so_bdm_eng'
               if (trx.type === 'MRI')
                  rptname = 'rpt_hasil_so_xray_mri_eng'

               if (trx.type === 'Rontgen' && this.print_format === 'format-2')
                  rptname = 'rpt_hasil_so_xray_2_eng'
               if (trx.type === 'USG' && this.print_format === 'format-2')
                  rptname = 'rpt_hasil_so_usg_2_eng'
               if (trx.type === 'BMD' && this.print_format === 'format-2')
                  rptname = 'rpt_hasil_so_bdm_2_eng'
               if (trx.type === 'MRI' && this.print_format === 'format-2')
                  rptname = 'rpt_hasil_so_xray_mri_2_eng'
            }
            // rptname = 'rpt_hasil_so_eng'
            this.urlprint = "/birt/run?__report=report/one/lab/" + rptname + ".rptdesign&__format=pdf&username=" +
               user.M_StaffName + "&PID=" + idx + '&PLang=' + trx.language_id + '&tm=' + n

            //this.openprint = true
         },
         print(trx, act) {
            // console.log(trx)
            let user = one_user()
             var d = new Date();
            var n = d.getTime()
            this.print_format = 'format-1'
            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
            })
             let idx = trx.orderid
            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)
            var seltrx =  this.$store.state.sample.selected_transaction
            var deliveries = seltrx.deliveries
            console.log(deliveries)
            this.btnsaveemail = false
            var e_del = _.filter(deliveries, function(o) { return o.code === 'EMAIL' || o.code === 'WHATSAPP' || o.code === 'TELEGRAM'  })
            console.log(e_del)
            if(e_del.length > 0){
                this.btnsaveemail = true
            }
            this.print_format = 'format-1' 
            if (trx.type === 'Rontgen')
               rptname = 'rpt_hasil_so_xray'
            if (trx.type === 'USG') {
               rptname = 'rpt_hasil_so_usg'
               idx = trx.trx_id
            }
            if (trx.type === 'BMD')
               rptname = 'rpt_hasil_so_bdm'
            if (trx.type === 'MRI')
               rptname = 'rpt_hasil_so_xray_mri'
            console.log(this.xselectedlang)
             if (parseInt(trx.language_id) === 2) {
               if (trx.type === 'Rontgen')
                  rptname = 'rpt_hasil_so_xray_eng'
               if (trx.type === 'USG')
                  rptname = 'rpt_hasil_so_usg_eng'
               if (trx.type === 'BMD')
                  rptname = 'rpt_hasil_so_bdm_eng'
               if (trx.type === 'MRI')
                  rptname = 'rpt_hasil_so_xray_mri_eng'

               if (trx.type === 'Rontgen' && this.print_format === 'format-2')
                  rptname = 'rpt_hasil_so_xray_2_eng'
               if (trx.type === 'USG' && this.print_format === 'format-2')
                  rptname = 'rpt_hasil_so_usg_2_eng'
               if (trx.type === 'BMD' && this.print_format === 'format-2')
                  rptname = 'rpt_hasil_so_bdm_2_eng'
               if (trx.type === 'MRI' && this.print_format === 'format-2')
                  rptname = 'rpt_hasil_so_xray_mri_2_eng'
            }
            this.urlprint = "/birt/run?__report=report/one/lab/" + rptname + ".rptdesign&__format=pdf&username=" +
               user.M_StaffName + "&PID=" + idx + '&PLang=' + trx.language_id + '&tm=' + n
            console.log(this.urlprint)
            this.print_format = 'format-1'
       
         },
         closePrint() {
            this.dialogprintlang = false
            //var prm = this.$store.state.sample.last_trx
            var prm = {
               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,
               companyid:this.$store.state.sample.selected_company.id,
               switch_exclude:this.$store.state.sample.switch_exclude,
               groupid: this.$store.state.sample.select_item_group.id,
               subgroupid:this.$store.state.sample.select_item_subgroup.id,
               current_page:this.$store.state.sample.current_page,
               typeresult:this.$store.state.sample.typeresult.id,
               lastid:this.$store.state.sample.last_id
            }
            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("sample/update_selected_transaction", seltrx)
            this.dialogtemplates = false
         }

      }
   }
</script>