Flatten nested repos
This commit is contained in:
@@ -0,0 +1,473 @@
|
||||
<template>
|
||||
<v-layout class="fill-height" column>
|
||||
<v-card class="grow">
|
||||
<!-- <v-subheader>
|
||||
<h3 class="title">DAFTAR PASIEN</h3>
|
||||
</v-subheader> -->
|
||||
<hr style="border-top:0px solid #c8c8c8;" />
|
||||
<v-data-table
|
||||
:headers="headers" :items="pxs"
|
||||
:loading="isLoading"
|
||||
hide-actions class="xelevation-1">
|
||||
<template slot="items" slot-scope="props">
|
||||
<td class="text-xs-left pt-2 pb-2 pr-2 green--text" v-bind:class="[margin_left(props.item), verification_color(props.item)]"
|
||||
@click="select(props.index, props.item)" v-if="props.item.is_result == 'N'" colspan="8">
|
||||
{{ props.item.t_testname }}
|
||||
</td>
|
||||
|
||||
<td class="text-xs-left pt-2 pb-2 pr-2 green--text" v-bind:class="[margin_left(props.item), verification_color(props.item)]"
|
||||
@click="select(props.index, props.item)" v-if="props.item.is_result == 'Y'">
|
||||
{{ props.item.t_testname }}
|
||||
</td>
|
||||
|
||||
<td class="text-xs-left pa-2" v-bind:class="[is_selected(props.item), verification_color(props.item)]"
|
||||
@click="select(props.index, props.item)" v-if="props.item.is_result == 'Y'" style="position: relative">
|
||||
<span class="body-1">{{init_result(props.item)}}</span>
|
||||
<!-- <v-textarea
|
||||
label=""
|
||||
solo
|
||||
rows=1
|
||||
hide-details
|
||||
v-on:keyup="update_result(props.index, $event.target.value)"
|
||||
:value="props.item.result"
|
||||
flat
|
||||
readonly
|
||||
></v-textarea> -->
|
||||
</td>
|
||||
|
||||
<td class="text-xs-left pa-2" v-bind:class="[is_selected(props.item), verification_color(props.item)]"
|
||||
@click="select(props.index, props.item)" v-if="props.item.is_result == 'Y'">
|
||||
{{ !init_blank(props.item) ? props.item.result_flag : '' }}
|
||||
</td>
|
||||
|
||||
<td class="text-xs-left pa-2" v-bind:class="[is_selected(props.item), verification_color(props.item)]"
|
||||
@click="select(props.index, props.item)" v-if="props.item.is_result == 'Y'">
|
||||
{{ !init_blank(props.item) ? props.item.normal_note : '' }}
|
||||
</td>
|
||||
|
||||
<td class="text-xs-left pa-2" v-bind:class="[is_selected(props.item), verification_color(props.item)]"
|
||||
@click="select(props.index, props.item)" v-if="props.item.is_result == 'Y'">
|
||||
{{ !init_blank(props.item) ? props.item.unit_name : '' }}
|
||||
</td>
|
||||
|
||||
<td class="text-xs-left pa-2" v-bind:class="[is_selected(props.item), verification_color(props.item)]"
|
||||
@click="select(props.index, props.item)" v-if="props.item.is_result == 'Y'">
|
||||
{{ !init_blank(props.item) ? props.item.methode_name : '' }}
|
||||
</td>
|
||||
|
||||
|
||||
|
||||
<td class="text-xs-left pa-2" v-bind:class="[is_selected(props.item), verification_color(props.item)]"
|
||||
@click="select(props.index, props.item)" v-if="props.item.is_result == 'Y'">
|
||||
<!-- <v-textarea
|
||||
label=""
|
||||
solo
|
||||
rows=1
|
||||
hide-details
|
||||
v-on:keyup="update_note(props.index, $event.target.value)"
|
||||
:value="props.item.note"
|
||||
flat
|
||||
readonly
|
||||
></v-textarea> -->
|
||||
<span class="body-1">{{props.item.note}}</span>
|
||||
</td>
|
||||
|
||||
<td class="text-xs-left pa-1" v-if="props.item.is_result == 'Y' && props.item.result != '' && props.item.result != null" @click="select(props.index, props.item)" v-bind:class="[verification_color(props.item)]">
|
||||
<div class="text-xs-center">
|
||||
<div class="text-xs-center">
|
||||
<v-btn fab
|
||||
:dark="props.item.verification_old != 'Y'"
|
||||
:disabled="props.item.verification_old == 'Y'"
|
||||
small color="red" class="ma-0 float-left" @click="reject(props.item)">
|
||||
<v-icon>clear</v-icon>
|
||||
</v-btn>
|
||||
|
||||
<v-btn fab
|
||||
:dark="verification(props.item) == 'Y' && props.item.validation != 'Y'"
|
||||
:disabled="props.item.validation == 'Y'"
|
||||
small :color="verification(props.item) == 'Y' ? 'green' : 'white'" class="ml-1 ma-0 float-left" @click="verification_change(props.index)" >
|
||||
<v-icon>done</v-icon>
|
||||
</v-btn>
|
||||
<!-- <v-checkbox label="" :input-value="verification(props.item)" value="Y" false-value="N" @change="verification_change($event, props.index)" class="mt-1 mr-1 ml-0 mb-0 cb-auto-ver" hide-details></v-checkbox> -->
|
||||
|
||||
<v-btn fab
|
||||
:dark="props.item.sample_handling_perfect == 'Y'"
|
||||
|
||||
small :color="delta_color(props.item)+' lighten-2'" class="ma-0 ml-3" @click="select(props.index, props.item); trend(props.item.id)">
|
||||
<v-icon>equalizer</v-icon>
|
||||
</v-btn>
|
||||
|
||||
<v-btn fab
|
||||
:dark="props.item.sample_handling_perfect == 'Y'"
|
||||
|
||||
small :color="delta_color(props.item)+' lighten-2'" class="ma-0" @click="select(props.index, props.item); delta(props.item.id)">
|
||||
<span class="icon-delta"></span>
|
||||
</v-btn>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</td>
|
||||
|
||||
<td class="text-xs-left pa-1" v-if="props.item.is_result == 'Y' && (props.item.result == '' || props.item.result == null)" v-bind:class="[verification_color(props.item)]">
|
||||
|
||||
</td>
|
||||
</template>
|
||||
|
||||
</v-data-table>
|
||||
|
||||
</v-card>
|
||||
|
||||
<one-process-re-rerun-result></one-process-re-rerun-result>
|
||||
<one-process-re-history></one-process-re-history>
|
||||
<v-snackbar
|
||||
v-model="snackbar"
|
||||
:timeout="5000"
|
||||
bottom right
|
||||
>
|
||||
{{ save_text }}
|
||||
<v-btn
|
||||
color="pink"
|
||||
flat
|
||||
@click="snackbar = false"
|
||||
>
|
||||
Close
|
||||
</v-btn>
|
||||
</v-snackbar>
|
||||
|
||||
<v-snackbar
|
||||
v-model="snackbar_err"
|
||||
:timeout="5000"
|
||||
bottom right
|
||||
color="red"
|
||||
>
|
||||
{{ err_text }}
|
||||
<v-btn
|
||||
color="pink"
|
||||
flat
|
||||
@click="snackbar_err = false"
|
||||
>
|
||||
Close
|
||||
</v-btn>
|
||||
</v-snackbar>
|
||||
|
||||
<one-process-rv-dialog-trend></one-process-rv-dialog-trend>
|
||||
<one-process-rv-dialog-reject></one-process-rv-dialog-reject>
|
||||
</v-layout>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
div.v-table__overflow {
|
||||
height:640px!important;
|
||||
overflow-y:scroll;
|
||||
}
|
||||
.searchbox .v-input.v-text-field .v-input__slot{
|
||||
min-height:60px;
|
||||
}
|
||||
.searchbox .v-btn {
|
||||
min-height:60px;
|
||||
}
|
||||
table.v-table tbody td,table.v-table tbody th {
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
table.v-table thead tr {
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.btn_rerun {
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
right: 2px
|
||||
}
|
||||
|
||||
.v-btn--floating {
|
||||
border-radius: 0%;
|
||||
}
|
||||
|
||||
.cb-auto-ver {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.cb-auto-ver .v-icon {
|
||||
font-size: 40px;
|
||||
}
|
||||
|
||||
.v-btn--floating.v-btn--small {
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
.float-left {
|
||||
float: left !important
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
components : {
|
||||
'one-process-re-rerun-result': httpVueLoader('./oneProcessReRerunResult.vue'),
|
||||
'one-process-re-history': httpVueLoader('./oneProcessReHistory.vue'),
|
||||
'one-process-rv-dialog-trend': httpVueLoader('./oneProcessRvDialogTrend.vue'),
|
||||
'one-process-rv-dialog-reject': httpVueLoader('./oneProcessRvDialogReject.vue')
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
query: "",
|
||||
save_text: "Data berhasil dikonfirmasi.",
|
||||
err_text: "Tidak ada data yang perlu dikonfirmasi !",
|
||||
items: [],
|
||||
headers: [
|
||||
{
|
||||
text: "NAMA PEMERIKSAAN",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "15%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "HASIL",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "15%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "FLAG",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "10%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "NILAI NORMAL",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "15%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "UNIT",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "7%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "METODE",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "10%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "CATATAN",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "10%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "VERIFIKASI",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "18%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
}
|
||||
],
|
||||
|
||||
};
|
||||
},
|
||||
|
||||
methods : {
|
||||
oneMoment : function(d) {
|
||||
return window.oneMoment(d)
|
||||
},
|
||||
|
||||
select (idx, item) {
|
||||
this.$store.commit('re_px/update_selected_px', item)
|
||||
this.$store.commit('re_px/update_selected_px_idx', idx)
|
||||
// this.$store.commit('ver_verification/update_selected_sent_sample', item)
|
||||
},
|
||||
|
||||
is_selected (item) {
|
||||
|
||||
return ''
|
||||
},
|
||||
|
||||
margin_left (item) {
|
||||
if (item.level == 3 || item.level == 2)
|
||||
return 'pl-5'
|
||||
|
||||
return 'pl-2'
|
||||
},
|
||||
|
||||
rerun_me () {
|
||||
this.$store.commit('re_px/update_dialog_rerun', true)
|
||||
},
|
||||
|
||||
update_result(idx, result) {
|
||||
|
||||
let x = this.$store.state.re_px.pxs
|
||||
x[idx]['result'] = result
|
||||
|
||||
this.$store.commit('re_px/update_pxs', {records:x})
|
||||
},
|
||||
|
||||
update_note(idx, note) {
|
||||
|
||||
let x = this.$store.state.re_px.pxs
|
||||
x[idx]['note'] = note
|
||||
|
||||
this.$store.commit('re_px/update_pxs', {records:x})
|
||||
},
|
||||
|
||||
verification(i) {
|
||||
|
||||
// console.log("test name = " + i.t_testname + " | verification = " + i.verification + " | sample handling = " + i.sample_handling_perfect + " | delta = " + i.delta_check + " | trend = "+ i.trend_analysis)
|
||||
|
||||
if (i.verification == "N" || i.verification == "Y")
|
||||
return i.verification
|
||||
|
||||
if (i.sample_handling_perfect != "Y")
|
||||
return "N"
|
||||
|
||||
if (i.delta_check == "N" || i.trend_analysis == "N")
|
||||
return "N"
|
||||
|
||||
return "Y"
|
||||
},
|
||||
|
||||
async verification_change(idx) {
|
||||
let x = this.$store.state.re_px.pxs
|
||||
let e = x[idx].verification
|
||||
x[idx].verification = e == 'Y' ? 'N' : 'Y'
|
||||
let prm = { order_id : x[idx].id , verification: x[idx].verification}
|
||||
await this.$store.dispatch("re_px/single_verification",prm)
|
||||
if ( e == 'Y' ) {
|
||||
x[idx].verification_old = 'N'
|
||||
} else {
|
||||
x[idx].verification_old = 'Y'
|
||||
}
|
||||
|
||||
this.$store.commit("re_px/update_pxs", {records:x})
|
||||
},
|
||||
|
||||
verification_show(idx) {
|
||||
this.$store.commit("re_verification/update_dialog_verification", true)
|
||||
},
|
||||
|
||||
trend(x) {
|
||||
this.$store.dispatch('re_px/trend_analysis');
|
||||
// this.$store.commit('re_px/update_dialog_trend', true)
|
||||
},
|
||||
|
||||
delta(x) {
|
||||
this.$store.dispatch('re_px/delta_check')
|
||||
this.$store.commit('re_px/update_dialog_trend', true)
|
||||
},
|
||||
|
||||
delta_color(x) {
|
||||
if (x.sample_handling_perfect == "N")
|
||||
return "grey"
|
||||
|
||||
if (x.delta_check == "N")
|
||||
return "red"
|
||||
|
||||
return "green"
|
||||
},
|
||||
|
||||
init_result(x) {
|
||||
if (x.verification_old == "Y" || x.validation == "Y")
|
||||
return x.result
|
||||
|
||||
// Override
|
||||
if (x.resample == "Y") {
|
||||
if (x.resample_status == "N")
|
||||
return "Bahan belum"
|
||||
if (x.resample_status == "R")
|
||||
return "Hasil Menyusul"
|
||||
if (x.resample_status == "W")
|
||||
return x.result
|
||||
}
|
||||
|
||||
if (x.sample_receive != 'Y')
|
||||
return "Bahan belum"
|
||||
if (x.sample_receive == 'Y' && !x.pre_analytic)
|
||||
return "Belum Pre Analitik"
|
||||
if (x.sample_receive == 'Y' && x.pre_analytic)
|
||||
{
|
||||
if (x.sample_worklist_receive == "Y")
|
||||
return x.result
|
||||
else
|
||||
return "Hasil Menyusul"
|
||||
}
|
||||
},
|
||||
|
||||
init_blank(x) {
|
||||
if (x.verification_old == "Y" || x.validation == "Y")
|
||||
return x.result
|
||||
|
||||
// Override
|
||||
if (x.resample == "Y") {
|
||||
if (x.resample_status == "N" || x.resample_status == "R")
|
||||
return true
|
||||
}
|
||||
|
||||
if (x.sample_receive != 'Y' || !x.pre_analytic || x.sample_worklist_receive != "Y" ||
|
||||
x.result == '' || x.result == null)
|
||||
return true
|
||||
|
||||
return false
|
||||
},
|
||||
|
||||
reject(x) {
|
||||
this.$store.commit('re_px/update_dialog_reject', true)
|
||||
},
|
||||
|
||||
verification_color(i) {
|
||||
if (i.validation == "Y")
|
||||
return "green lighten-4"
|
||||
if (i.verification_old == "Y")
|
||||
return "red lighten-4"
|
||||
|
||||
return""
|
||||
}
|
||||
},
|
||||
|
||||
computed : {
|
||||
isLoading() {
|
||||
return this.$store.state.re_px.search_status == 1
|
||||
},
|
||||
pxs () {
|
||||
return this.$store.state.re_px.pxs
|
||||
},
|
||||
|
||||
icon_info () {
|
||||
return window.BASE_URL + '/one-ui/apps/image/info.png'
|
||||
},
|
||||
|
||||
snackbar : {
|
||||
get () { return this.$store.state.re_px.snackbar },
|
||||
set (v) { this.$store.commit('re_px/update_snackbar', v) }
|
||||
},
|
||||
|
||||
snackbar_err : {
|
||||
get () { return this.$store.state.re_px.snackbar_err },
|
||||
set (v) { this.$store.commit('re_px/update_snackbar_err', v) }
|
||||
}
|
||||
},
|
||||
|
||||
mounted () {
|
||||
// this.$store.dispatch('re_patient/search')
|
||||
}
|
||||
}
|
||||
</script>
|
||||
Reference in New Issue
Block a user