Initial import
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
<template>
|
||||
<v-dialog
|
||||
v-model="dialog"
|
||||
max-width="500px"
|
||||
>
|
||||
<v-card>
|
||||
<v-card-text>
|
||||
<v-layout row wrap>
|
||||
<v-flex xs12>
|
||||
<v-text-field
|
||||
label="Pemeriksaan"
|
||||
v-model="selected_px.t_testname"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs12>
|
||||
<v-text-field
|
||||
label="Metode sekarang"
|
||||
v-model="selected_px.methode_name"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs12>
|
||||
<v-select
|
||||
:items="methods"
|
||||
item-text="Nat_MethodeName"
|
||||
item-value="Nat_MethodeID"
|
||||
return-object
|
||||
v-model="selected_method"
|
||||
label="Pilih Metode baru"
|
||||
></v-select>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
|
||||
</v-card-text>
|
||||
<v-card-actions>
|
||||
<v-btn color="primary" flat @click="dialog=!dialog">Tutup</v-btn>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn color="primary" dark @click="save">Simpan</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
data () {
|
||||
return {
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
computed : {
|
||||
dialog : {
|
||||
get () { return this.$store.state.normal_method.dialog_method },
|
||||
set (v) { this.$store.commit('normal_method/update_dialog_method', v) }
|
||||
},
|
||||
|
||||
methods () {
|
||||
return this.$store.state.normal_method.methods
|
||||
},
|
||||
|
||||
selected_method : {
|
||||
get () { return this.$store.state.normal_method.selected_method },
|
||||
set (v) { this.$store.commit('normal_method/update_selected_method', v) }
|
||||
},
|
||||
|
||||
selected_px () {
|
||||
return this.$store.state.re_px.selected_px
|
||||
}
|
||||
},
|
||||
|
||||
methods : {
|
||||
save () {
|
||||
this.$store.dispatch('normal_method/save_method')
|
||||
}
|
||||
},
|
||||
|
||||
watch : {
|
||||
dialog(val, old) {
|
||||
if (val && !old) {
|
||||
this.$store.dispatch('normal_method/search_method')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,65 @@
|
||||
<template>
|
||||
<v-dialog
|
||||
v-model="dialog"
|
||||
max-width="500px"
|
||||
persistent
|
||||
>
|
||||
<v-card>
|
||||
<v-card-text>
|
||||
<v-layout row wrap>
|
||||
<v-flex xs12>
|
||||
<v-textarea
|
||||
rows="5"
|
||||
outline
|
||||
label="Catatan Proses"
|
||||
hide-details
|
||||
v-model="result_note"
|
||||
></v-textarea>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-card-text>
|
||||
|
||||
<v-card-actions>
|
||||
<v-btn color="primary" flat @click="dialog=!dialog">Tutup</v-btn>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn color="primary" @click="save">Simpan</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
</template>
|
||||
|
||||
<style>
|
||||
/* .v-overlay--active {
|
||||
z-index: 1005 !important;
|
||||
}
|
||||
|
||||
.v-dialog__content--active {
|
||||
z-index: 1006 !important;
|
||||
} */
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
data () {
|
||||
return {}
|
||||
},
|
||||
|
||||
computed : {
|
||||
dialog : {
|
||||
get () { return this.$store.state.re_patient.dialog_note },
|
||||
set (v) { this.$store.commit('re_patient/update_dialog_note', v) }
|
||||
},
|
||||
|
||||
result_note : {
|
||||
get () { return this.$store.state.re_patient.result_note },
|
||||
set (v) { this.$store.commit('re_patient/update_result_note', v) }
|
||||
}
|
||||
},
|
||||
|
||||
methods : {
|
||||
save () {
|
||||
this.$store.dispatch('re_patient/save_note')
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,97 @@
|
||||
<template>
|
||||
<v-dialog
|
||||
v-model="dialog"
|
||||
max-width="500px"
|
||||
persistent
|
||||
>
|
||||
<v-card>
|
||||
<v-card-text>
|
||||
<v-layout row wrap mb-2 v-show="info_req.note_fo != ''">
|
||||
<v-flex xs12>
|
||||
<h5 class="caption">Catatan FO</h5>
|
||||
<h3 class="title font-weight-regular">{{info_req.note_fo}}</h3>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
|
||||
<v-layout row wrap mb-2 v-show="info_req.note_sampling != ''">
|
||||
<v-flex xs12>
|
||||
<h5 class="caption">Catatan Specimen</h5>
|
||||
<h3 class="title font-weight-regular">{{info_req.note_sampling}}</h3>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
|
||||
<v-layout row wrap mb-2 v-show="info_req.req_fo.length > 0">
|
||||
<v-flex xs12>
|
||||
<h5 class="caption">Requirement FO</h5>
|
||||
<h3 class="title font-weight-regular">{{info_req.req_fo.join(', ')}}</h3>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
|
||||
<v-layout row wrap mb-2 v-show="info_req.req_spec_col.length > 0">
|
||||
<v-flex xs12>
|
||||
<h5 class="caption">Requirement Specimen Collection</h5>
|
||||
<h3 class="title font-weight-regular">{{info_req.req_spec_col.join(', ')}}</h3>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
|
||||
<v-layout row wrap mb-2 v-show="info_req.req_spec_ver.length > 0">
|
||||
<v-flex xs12>
|
||||
<h5 class="caption">Requirement Specimen Verification</h5>
|
||||
<h3 class="title font-weight-regular">{{info_req.req_spec_ver.join(', ')}}</h3>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
|
||||
<v-layout row wrap mb-2 v-show="info_req.req_samp_ver.length > 0">
|
||||
<v-flex xs12>
|
||||
<h5 class="caption">Requirement Sample Verification</h5>
|
||||
<h3 class="title font-weight-regular">{{info_req.req_samp_ver.join(', ')}}</h3>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
|
||||
<v-layout row wrap mb-2 v-show="info_req.req_pre_an.length > 0">
|
||||
<v-flex xs12>
|
||||
<h5 class="caption">Requirement Pre Analitik</h5>
|
||||
<h3 class="title font-weight-regular">{{info_req.req_pre_an.join(', ')}}</h3>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-card-text>
|
||||
|
||||
<v-card-actions>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn color="primary" flat @click="dialog=!dialog">Tutup</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
</template>
|
||||
|
||||
<style>
|
||||
/* .v-overlay--active {
|
||||
z-index: 1005 !important;
|
||||
}
|
||||
|
||||
.v-dialog__content--active {
|
||||
z-index: 1006 !important;
|
||||
} */
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
data () {
|
||||
return {}
|
||||
},
|
||||
|
||||
computed : {
|
||||
dialog : {
|
||||
get () { return this.$store.state.re_patient.dialog_req },
|
||||
set (v) { this.$store.commit('re_patient/update_dialog_req', v) }
|
||||
},
|
||||
|
||||
info_req () {
|
||||
return this.$store.state.re_patient.info_req
|
||||
}
|
||||
},
|
||||
|
||||
methods : {
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,137 @@
|
||||
<template>
|
||||
<v-dialog
|
||||
v-model="dialog"
|
||||
max-width="400px"
|
||||
>
|
||||
<v-card>
|
||||
<v-card-title primary-title class="grey darken-3 white--text">
|
||||
<h3 class="headliine">Tambah Template Hasil</h3>
|
||||
</v-card-title>
|
||||
|
||||
<v-card-text>
|
||||
<v-layout row wrap>
|
||||
<v-flex xs12>
|
||||
<v-text-field
|
||||
label="Pemeriksaan"
|
||||
readonly
|
||||
v-model="curr_px"
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs12>
|
||||
<v-text-field
|
||||
label="Keterangan Hasil"
|
||||
v-model="template_new_value"
|
||||
:error="error || dup_error"
|
||||
:error-messages="error_msg"
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-card-text>
|
||||
|
||||
<v-card-actions>
|
||||
<v-btn color="primary" flat @click="dialog=false">Tutup</v-btn>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn color="primary" dark @click="save">Simpan</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
data() {
|
||||
return {
|
||||
error_messages: ''
|
||||
}
|
||||
},
|
||||
|
||||
computed : {
|
||||
dialog : {
|
||||
get() {
|
||||
return this.$store.state.re_px.dialog_template_new
|
||||
},
|
||||
set (v) {
|
||||
this.$store.commit('re_px/update_dialog_template_new', v)
|
||||
}
|
||||
},
|
||||
|
||||
template_new_value : {
|
||||
get() {
|
||||
return this.$store.state.re_px.template_new_value
|
||||
},
|
||||
set (v) {
|
||||
this.$store.commit('re_px/update_template_new_value', v)
|
||||
}
|
||||
},
|
||||
|
||||
curr_px () {
|
||||
return this.$store.state.re_px.selected_px.t_testname
|
||||
},
|
||||
|
||||
error () {
|
||||
|
||||
if (this.template_new_value.length < 1) {
|
||||
this.error_messages = "Keterangan Isi Hasil tidak boleh kosong !"
|
||||
return true
|
||||
}
|
||||
|
||||
this.error_messages = ""
|
||||
return false
|
||||
},
|
||||
|
||||
error_msg () {
|
||||
if (this.error_messages != '')
|
||||
return this.error_messages
|
||||
|
||||
return this.dup_error_messages
|
||||
},
|
||||
|
||||
dup_error : {
|
||||
get() { return this.$store.state.re_px.dup_template_error.status },
|
||||
set (v) {
|
||||
let x = this.$store.state.re_px.dup_template_error
|
||||
x.status = v
|
||||
this.$store.commit('re_px/update_dup_template_error', x)
|
||||
}
|
||||
},
|
||||
|
||||
dup_error_messages : {
|
||||
get() { return this.$store.state.re_px.dup_template_error.messages },
|
||||
set (v) {
|
||||
let x = this.$store.state.re_px.dup_template_error
|
||||
x.messages = v
|
||||
this.$store.commit('re_px/update_dup_template_error', x)
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
methods : {
|
||||
save () {
|
||||
if (this.error) {
|
||||
return
|
||||
} else {
|
||||
this.$store.dispatch('re_px/save_template')
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
watch : {
|
||||
template_new_value (v, o) {
|
||||
|
||||
if (this.dup_error) {
|
||||
if (v != o)
|
||||
this.$store.commit('re_px/update_dup_template_error', {
|
||||
status: false,
|
||||
messages: ''
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
dialog (v, o) {
|
||||
if (v && !o)
|
||||
this.template_new_value = ''
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,159 @@
|
||||
<template>
|
||||
<v-dialog
|
||||
v-model="dialog"
|
||||
persistent
|
||||
max-width="500px"
|
||||
transition="dialog-transition"
|
||||
>
|
||||
|
||||
<v-layout class="fill-height" column>
|
||||
<v-card class="grow" color="blue-grey lighten-2">
|
||||
<v-card-title primary-title class="title white--text pb-2">
|
||||
HISTORI PEMERIKSAAN
|
||||
</v-card-title>
|
||||
<v-card-text class="pt-2 pb-2">
|
||||
<v-expansion-panel>
|
||||
<v-expansion-panel-content
|
||||
v-for="(px, i) in pxs"
|
||||
:key="i"
|
||||
>
|
||||
<template v-slot:header>
|
||||
<div class="subheading">{{ px.date }}</div>
|
||||
</template>
|
||||
<v-card>
|
||||
<v-card-text class="pt-1 pb-1">
|
||||
<v-data-table
|
||||
:headers="headers" :items="px.data"
|
||||
:loading="isLoading"
|
||||
hide-actions class="elevation-1 table-history"
|
||||
>
|
||||
<template slot="items" slot-scope="props">
|
||||
<td class="text-xs-left pl-2 pr-2 pa-1 green--text" v-bind:class="is_selected(props.item)">
|
||||
{{ props.item.px_name }}
|
||||
</td>
|
||||
<td class="text-xs-left pl-2 pr-2 pa-1" v-bind:class="is_selected(props.item)">
|
||||
{{ props.item.result }}
|
||||
</td>
|
||||
<td class="text-xs-left pl-2 pr-2 pa-1" v-bind:class="is_selected(props.item)">
|
||||
{{ props.item.flag }}
|
||||
</td>
|
||||
|
||||
</template>
|
||||
|
||||
</v-data-table>
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
</v-expansion-panel-content>
|
||||
</v-expansion-panel>
|
||||
|
||||
|
||||
</v-card-text>
|
||||
<v-card-actions>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn color="white" flat @click="dialog = false">Tutup</v-btn>
|
||||
<!-- <v-btn color="blue darken-1" :dark="btn_save_enabled" @click="save" :disabled="!btn_save_enabled">Simpan</v-btn> -->
|
||||
</v-card-actions>
|
||||
|
||||
|
||||
</v-card>
|
||||
</v-layout>
|
||||
</v-dialog>
|
||||
</template>
|
||||
|
||||
<style>
|
||||
|
||||
.table-history table td {
|
||||
height: 40px !important
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
data() {
|
||||
return {
|
||||
query: "",
|
||||
items: [],
|
||||
headers: [
|
||||
{
|
||||
text: "PEMERIKSAAN",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
width: "45%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "HASIL",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "35%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "FLAG",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "20%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
}
|
||||
],
|
||||
|
||||
|
||||
isLoading: false
|
||||
|
||||
};
|
||||
},
|
||||
|
||||
methods : {
|
||||
oneMoment : function(d) {
|
||||
return window.oneMoment(d)
|
||||
},
|
||||
|
||||
select (item) {
|
||||
// this.$store.commit('re_px/update_selected_rerun', item)
|
||||
// this.$store.commit('re_px/update_dialog_rerun', false)
|
||||
|
||||
// let x = this.$store.state.re_px.pxs
|
||||
// x[this.$store.state.re_px.selected_px_idx]['result'] = item.result
|
||||
// this.$store.commit('re_px/update_pxs', {records:x})
|
||||
},
|
||||
|
||||
is_selected (item) {
|
||||
// let x = this.$store.state.re_patient.selected_patient
|
||||
// if (!x)
|
||||
// return ''
|
||||
|
||||
// if (x.T_OrderHeaderID == item.T_OrderHeaderID)
|
||||
// return 'green lighten-4'
|
||||
|
||||
return ''
|
||||
}
|
||||
},
|
||||
|
||||
computed : {
|
||||
pxs () {
|
||||
return this.$store.state.re_history.pxs
|
||||
},
|
||||
|
||||
dialog : {
|
||||
get () { return this.$store.state.re_history.dialog_history },
|
||||
set (v) { this.$store.commit('re_history/update_dialog_history', v) }
|
||||
}
|
||||
},
|
||||
|
||||
mounted () {
|
||||
// this.$store.dispatch('re_px/search_rerun')
|
||||
},
|
||||
|
||||
watch : {
|
||||
dialog (n, o) {
|
||||
if (n && !o) {
|
||||
this.$store.dispatch('re_history/history')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,87 @@
|
||||
<template>
|
||||
<v-dialog
|
||||
v-model="dialog"
|
||||
persistent
|
||||
max-width="500px"
|
||||
transition="dialog-transition"
|
||||
>
|
||||
|
||||
<v-layout class="fill-height" column>
|
||||
<v-card class="grow" color="blue-grey lighten-2">
|
||||
<v-card-title primary-title class="title white--text pb-2">
|
||||
HISTORI PEMERIKSAAN
|
||||
</v-card-title>
|
||||
<v-card-text class="pt-2 pb-2">
|
||||
|
||||
|
||||
|
||||
</v-card-text>
|
||||
<v-card-actions>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn color="white" flat @click="dialog = false">Tutup</v-btn>
|
||||
</v-card-actions>
|
||||
|
||||
|
||||
</v-card>
|
||||
</v-layout>
|
||||
</v-dialog>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.v-card__actions { display:none }
|
||||
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
data() {
|
||||
return {
|
||||
query: "",
|
||||
items: [],
|
||||
headers: [
|
||||
{
|
||||
text: "PEMERIKSAAN",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
width: "45%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "HASIL",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "35%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "FLAG",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "20%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
}
|
||||
],
|
||||
|
||||
|
||||
isLoading: false
|
||||
|
||||
};
|
||||
},
|
||||
|
||||
methods : {
|
||||
|
||||
},
|
||||
|
||||
computed : {
|
||||
dialog : {
|
||||
get () { return this.$store.state.re_history.dialog_history },
|
||||
set (v) { this.$store.commit('re_history/update_dialog_history', v) }
|
||||
}
|
||||
},
|
||||
|
||||
mounted () {
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,295 @@
|
||||
<template>
|
||||
<v-layout row wrap>
|
||||
<v-flex xs12>
|
||||
<v-card class="pa-2" v-show="!detail">
|
||||
<v-layout row wrap>
|
||||
<v-flex xs3>
|
||||
<div class="caption font-weight-light">No Reg / Tanggal</div>
|
||||
<div class="subheading">{{selected_patient.T_OrderHeaderLabNumber}} / {{order_date}}</div>
|
||||
</v-flex>
|
||||
<v-flex xs3>
|
||||
<div class="caption font-weight-light">Nama / Jenis Kelamin</div>
|
||||
<div class="subheading">{{selected_patient.M_PatientName}} / {{selected_patient.M_SexName}}</div>
|
||||
</v-flex>
|
||||
<v-flex xs3>
|
||||
<div class="caption font-weight-light">DOB / Umur</div>
|
||||
<div class="subheading">{{dob_date}} / {{age}}</div>
|
||||
</v-flex>
|
||||
<v-flex xs3>
|
||||
<div class="caption font-weight-light">Pengirim</div>
|
||||
<div class="subheading">{{selected_patient.doctor_sender_name}} </div>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
<v-btn
|
||||
absolute
|
||||
dark
|
||||
top
|
||||
right
|
||||
color="black"
|
||||
flat
|
||||
depressed
|
||||
@click="detail=!detail"
|
||||
class="btn-detail"
|
||||
>
|
||||
<v-icon>keyboard_arrow_up</v-icon>
|
||||
</v-btn>
|
||||
</v-card>
|
||||
</v-flex>
|
||||
<v-flex xs12 v-show="detail">
|
||||
<v-card class="pa-2">
|
||||
<v-layout row wrap>
|
||||
<v-flex xs6>
|
||||
<div class="caption font-weight-light">No Reg / Tanggal</div>
|
||||
<div class="subheading">{{selected_patient.T_OrderHeaderLabNumber}} / {{order_date}}</div>
|
||||
|
||||
<div class="caption font-weight-light mt-2">Nama / Jenis Kelamin</div>
|
||||
<div class="subheading">{{selected_patient.M_PatientName}} / {{selected_patient.M_SexName}}</div>
|
||||
|
||||
<div class="caption font-weight-light mt-2">DOB / Umur</div>
|
||||
<div class="subheading">{{dob_date}} / {{age}}</div>
|
||||
|
||||
<div class="caption font-weight-light mt-2">Phone / Janji hasil</div>
|
||||
<div class="subheading">{{selected_patient.M_PatientHP}} / {{selected_patient.order_promise?selected_patient.order_promise.join(', '):''}}</div>
|
||||
</v-flex>
|
||||
<v-flex xs6>
|
||||
<div class="caption font-weight-light">Kel. Pelanggan</div>
|
||||
<div class="subheading">{{selected_patient.M_CompanyName}} </div>
|
||||
|
||||
<div class="caption font-weight-light mt-2">Pengirim</div>
|
||||
<div class="subheading">{{selected_patient.doctor_sender_name}} </div>
|
||||
|
||||
<div class="caption font-weight-light mt-2">Pengiriman Hasil</div>
|
||||
<div class="subheading">{{selected_patient.delivery?selected_patient.delivery.join(", "):''}} </div>
|
||||
|
||||
<div class="caption font-weight-light mt-2">Format Hasil</div>
|
||||
<div class="subheading">{{langs}} </div>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
|
||||
<v-layout row v-show="false">
|
||||
<v-flex xs3>
|
||||
<v-layout row wrap pr-2>
|
||||
<v-flex xs7 pr-2>
|
||||
|
||||
<v-text-field
|
||||
label="Nomor Lab"
|
||||
v-model="selected_patient.T_OrderHeaderLabNumber"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs5>
|
||||
<v-text-field
|
||||
label="Tanggal"
|
||||
v-model="order_date"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs12>
|
||||
<v-text-field
|
||||
label="Nama"
|
||||
v-model="selected_patient.M_PatientName"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs3>
|
||||
<v-layout row wrap pl-2>
|
||||
<v-flex xs5 pr-2>
|
||||
<v-text-field
|
||||
label="DOB"
|
||||
v-model="dob_date"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs7 pl-2>
|
||||
<v-text-field
|
||||
label="Umur"
|
||||
v-model="age"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs12>
|
||||
<v-text-field
|
||||
label="Jenis Kelamin"
|
||||
v-model="selected_patient.M_SexName"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs3>
|
||||
<v-layout row wrap pl-2>
|
||||
<v-flex xs12>
|
||||
<v-text-field
|
||||
label="Dokter"
|
||||
v-model="selected_patient.doctor_pj_name"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs12>
|
||||
<v-text-field
|
||||
label="Company"
|
||||
v-model="selected_patient.M_CompanyName"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs3>
|
||||
<v-layout row wrap pl-2>
|
||||
<v-flex xs12 mb-3>
|
||||
<v-text-field
|
||||
label="No HP"
|
||||
v-model="selected_patient.M_PatientHP"
|
||||
readonly
|
||||
hide-details
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs12>
|
||||
<v-text-field
|
||||
label="Catatan Pasien"
|
||||
outline
|
||||
readonly
|
||||
hide-details
|
||||
v-model="selected_patient.M_PatientNote"
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
|
||||
<v-layout row wrap v-show="false">
|
||||
<v-flex xs4 pr-2>
|
||||
<v-text-field
|
||||
label="Catatan FO"
|
||||
outline
|
||||
readonly
|
||||
hide-details
|
||||
v-model="selected_patient.T_OrderHeaderFoNote"
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs4 pr-2>
|
||||
<v-text-field
|
||||
label="Catatan Sampling"
|
||||
outline
|
||||
readonly
|
||||
hide-details
|
||||
v-model="selected_patient.T_OrderHeaderSamplingNote"
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs4>
|
||||
<v-text-field
|
||||
label="Catatan Sample Handling"
|
||||
outline
|
||||
readonly
|
||||
hide-details
|
||||
v-model="selected_patient.T_OrderHeaderResultNote"
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
|
||||
<v-btn
|
||||
absolute
|
||||
dark
|
||||
top
|
||||
right
|
||||
color="black"
|
||||
flat
|
||||
depressed
|
||||
@click="detail=!detail"
|
||||
class="btn-detail"
|
||||
>
|
||||
<v-icon>keyboard_arrow_down</v-icon>
|
||||
</v-btn>
|
||||
</v-card>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.btn-detail {
|
||||
min-width: 0px !important;
|
||||
height: auto;
|
||||
padding: 0px;
|
||||
top: 5px;
|
||||
right: 5px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
data() {
|
||||
return {
|
||||
detail: false
|
||||
}
|
||||
},
|
||||
|
||||
computed : {
|
||||
selected_patient () {
|
||||
return this.$store.state.re_patient.selected_patient
|
||||
},
|
||||
|
||||
order_date() {
|
||||
let d = this.selected_patient.T_OrderHeaderDate
|
||||
let e = ''
|
||||
try {
|
||||
e = d.substr(0,10).split('-').reverse().join('-')
|
||||
} catch(e) { /*console.log(e.message)*/ }
|
||||
|
||||
return e
|
||||
},
|
||||
|
||||
dob_date() {
|
||||
let d = this.selected_patient.M_PatientDOB
|
||||
let e = ''
|
||||
try {
|
||||
e = d.substr(0,10).split('-').reverse().join('-')
|
||||
} catch(e) { /*console.log(e.message)*/ }
|
||||
|
||||
return e
|
||||
},
|
||||
|
||||
age() {
|
||||
let d = this.selected_patient.T_OrderHeaderM_PatientAge
|
||||
let e = ''
|
||||
try {
|
||||
e = d.replace(/tahun/, 'th').replace(/bulan/, 'bl').replace(/hari/, 'hr')
|
||||
} catch(e) { /*console.log(e.message)*/ }
|
||||
|
||||
return e
|
||||
},
|
||||
|
||||
langs() {
|
||||
let x = this.selected_patient
|
||||
if (!x) return ''
|
||||
|
||||
let si_01 = x.T_OrderHeaderLangIsSI == 'Y' ? ' (SI)' : ''
|
||||
let si_02 = x.T_OrderHeaderAddOnSecondLangIsSI == 'Y' ? ' (SI)' : ''
|
||||
|
||||
if (!x.SecondM_LangID) return x.M_LangName + si_01
|
||||
|
||||
return x.M_LangName + si_01 + ', ' + x.SecondM_LangName + si_02
|
||||
}
|
||||
},
|
||||
|
||||
methods : {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,145 @@
|
||||
<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="patients"
|
||||
:loading="isLoading"
|
||||
hide-actions class="xelevation-1">
|
||||
<template slot="items" slot-scope="props">
|
||||
<td class="text-xs-left pa-2 green--text" v-bind:class="[is_selected(props.item), is_cito(props.item)]"
|
||||
@click="select(props.item)">
|
||||
{{ props.item.T_OrderHeaderLabNumber }}
|
||||
</td>
|
||||
<td class="text-xs-left pa-2" v-bind:class="[is_selected(props.item), is_cito(props.item)]"
|
||||
@click="select(props.item)">
|
||||
{{ props.item.M_PatientName }}
|
||||
</td>
|
||||
</template>
|
||||
|
||||
</v-data-table>
|
||||
<!-- <v-pagination
|
||||
v-model="curr_patient_page"
|
||||
:length="total_patient_page"
|
||||
:total-visible="5"
|
||||
@input="change_page"
|
||||
></v-pagination> -->
|
||||
</v-card>
|
||||
</v-layout>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.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;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
data() {
|
||||
return {
|
||||
query: "",
|
||||
items: [],
|
||||
headers: [
|
||||
{
|
||||
text: "NO LAB",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "30%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "NAMA",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "70%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
}
|
||||
],
|
||||
|
||||
|
||||
isLoading: false
|
||||
};
|
||||
},
|
||||
|
||||
methods : {
|
||||
oneMoment : function(d) {
|
||||
return window.oneMoment(d)
|
||||
},
|
||||
|
||||
select (item) {
|
||||
this.$store.commit('re_patient/update_selected_patient', item)
|
||||
this.$store.commit('re_px/update_id', item.T_OrderHeaderID)
|
||||
this.$store.dispatch('re_px/search')
|
||||
this.$store.dispatch('re_patient/info_req')
|
||||
// this.$store.commit('ver_verification/update_selected_sent_sample', item)
|
||||
},
|
||||
|
||||
is_selected (item) {
|
||||
let x = this.$store.state.re_patient.selected_patient
|
||||
if (!x)
|
||||
return ''
|
||||
|
||||
if (x.T_OrderHeaderID == item.T_OrderHeaderID)
|
||||
return 'green lighten-4'
|
||||
|
||||
return ''
|
||||
},
|
||||
|
||||
is_cito (item) {
|
||||
let x = this.$store.state.re_patient.selected_patient
|
||||
if (!x)
|
||||
return ''
|
||||
|
||||
if (item.T_OrderHeaderIsCito == "Y")
|
||||
return 'amber'
|
||||
|
||||
return ''
|
||||
},
|
||||
|
||||
change_page(x) {
|
||||
this.curr_patient_page = x
|
||||
this.$store.dispatch('re_patient/search')
|
||||
}
|
||||
},
|
||||
|
||||
computed : {
|
||||
patients () {
|
||||
return this.$store.state.re_patient.patients
|
||||
},
|
||||
|
||||
total_patient () {
|
||||
return this.$store.state.re_patient.total_patient
|
||||
},
|
||||
|
||||
total_patient_page () {
|
||||
return this.$store.state.re_patient.total_patient_page
|
||||
},
|
||||
|
||||
curr_patient_page : {
|
||||
get () { return this.$store.state.re_patient.curr_patient_page },
|
||||
set (v) { this.$store.commit('re_patient/update_curr_patient_page', v) }
|
||||
}
|
||||
},
|
||||
|
||||
mounted () {
|
||||
this.$store.dispatch('re_patient/search')
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,340 @@
|
||||
<template>
|
||||
<v-layout class="fill-height flex-card" column>
|
||||
<v-card class="fill-height">
|
||||
<!-- <v-subheader>
|
||||
<h3 class="title">DAFTAR PASIEN</h3>
|
||||
</v-subheader> -->
|
||||
<hr style="border-top:0px solid #c8c8c8;" />
|
||||
<v-progress-linear :indeterminate="true" class="mt-1 mb-1" v-if="search_status == 1"
|
||||
height="10" striped></v-progress-linear>
|
||||
<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)"
|
||||
@click="select(props.index, props.item)" v-if="props.item.is_result == 'N'" colspan="7">
|
||||
{{ 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)"
|
||||
@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)"
|
||||
@click="select(props.index, props.item)" v-if="props.item.is_result == 'Y'" style="position: relative">
|
||||
|
||||
<v-textarea
|
||||
label=""
|
||||
solo
|
||||
rows=1
|
||||
hide-details
|
||||
v-on:keyup="update_result(props.index, $event.target.value)"
|
||||
:value="props.item.result"
|
||||
v-if="props.item.is_quantitative == 'Y'"
|
||||
auto-grow
|
||||
:readonly="props.item.T_OrderDetailVerification == 'Y'"
|
||||
:flat="props.item.T_OrderDetailVerification == 'Y'"
|
||||
></v-textarea>
|
||||
|
||||
<v-select
|
||||
:items="props.item.template"
|
||||
label=""
|
||||
item-value="T_ResultTemplateValue"
|
||||
item-text="T_ResultTemplateValue"
|
||||
v-if="props.item.is_quantitative == 'N'"
|
||||
solo
|
||||
hide-details
|
||||
:value="props.item.result"
|
||||
@change="update_result(props.index, $event)"
|
||||
:disabled="props.item.T_OrderDetailVerification == 'Y'"
|
||||
>
|
||||
|
||||
|
||||
<template v-slot:append-outer>
|
||||
<v-btn icon dark color="blue" small class="btn-outer ma-0" @click="template_new(props.item)"><v-icon>add_circle</v-icon></v-btn>
|
||||
</template>
|
||||
</v-select>
|
||||
|
||||
<!-- <v-textarea
|
||||
solo
|
||||
hide-details
|
||||
rows="2"
|
||||
:value="props.item.result"
|
||||
@change="update_result(props.index, $event)"
|
||||
>
|
||||
</v-textarea> -->
|
||||
|
||||
<v-btn v-if="props.item.is_quantitative == 'Y' && props.item.result_instrument_n > 0" color="blue lighten-2" class="btn_rerun" icon flat small @click="rerun_me">
|
||||
<v-img :src="icon_info" aspect-ratio="1" height="20" contain></v-img>
|
||||
</v-btn>
|
||||
</td>
|
||||
|
||||
<td class="text-xs-left pa-2" v-bind:class="is_selected(props.item)"
|
||||
@click="select(props.index, props.item)" v-if="props.item.is_result == 'Y'">
|
||||
|
||||
</td>
|
||||
|
||||
<td class="text-xs-left pa-2" v-bind:class="is_selected(props.item)"
|
||||
@click="select(props.index, props.item)" v-if="props.item.is_result == 'Y'">
|
||||
{{ props.item.normal_note }}
|
||||
<a href="javascript:;" v-show="props.item.normal_note != '' && props.item.normal_note != null" @click="normalChange(props)"><v-icon small color="blue">create</v-icon></a>
|
||||
</td>
|
||||
|
||||
<td class="text-xs-left pa-2" v-bind:class="is_selected(props.item)"
|
||||
@click="select(props.index, props.item)" v-if="props.item.is_result == 'Y'">
|
||||
{{ props.item.unit_name }}
|
||||
</td>
|
||||
|
||||
<td class="text-xs-left pa-2" v-bind:class="is_selected(props.item)"
|
||||
@click="select(props.index, props.item)" v-if="props.item.is_result == 'Y'">
|
||||
{{ props.item.methode_name }}
|
||||
<a href="javascript:;" v-show="props.item.methode_name != '' && props.item.methode_name != null" @click="methodeChange(props)"><v-icon small color="blue">create</v-icon></a>
|
||||
</td>
|
||||
|
||||
<td class="text-xs-left pa-2" v-bind:class="is_selected(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"
|
||||
auto-grow
|
||||
:readonly="props.item.T_OrderDetailVerification == 'Y'"
|
||||
:flat="props.item.T_OrderDetailVerification == 'Y'"
|
||||
></v-textarea>
|
||||
</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>
|
||||
|
||||
<one-dialog-template>
|
||||
</one-dialog-template>
|
||||
</v-layout>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.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: 10px;
|
||||
right: 2px
|
||||
}
|
||||
|
||||
.flex-card {
|
||||
min-height: -webkit-min-content;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.v-text-field.v-text-field--solo .v-input__control {
|
||||
min-height: 40px;
|
||||
}
|
||||
|
||||
.v-textarea.v-text-field--box.v-text-field--single-line .v-text-field__prefix, .v-textarea.v-text-field--box.v-text-field--single-line textarea, .v-textarea.v-text-field--enclosed.v-text-field--single-line .v-text-field__prefix, .v-textarea.v-text-field--enclosed.v-text-field--single-line textarea {
|
||||
margin-top: 6px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
components : {
|
||||
'one-process-re-rerun-result': httpVueLoader('./oneProcessReRerunResult.vue'),
|
||||
'one-process-re-history': httpVueLoader('./oneProcessReHistory.vue'),
|
||||
'one-dialog-template': httpVueLoader('./oneProcessReDialogResultTemplateNew.vue')
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
query: "",
|
||||
save_text: "Data telah tersimpan.",
|
||||
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: "10%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "METODE",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "15%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "CATATAN",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "20%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
}
|
||||
],
|
||||
|
||||
isLoading: false
|
||||
};
|
||||
},
|
||||
|
||||
computed : {
|
||||
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) }
|
||||
},
|
||||
|
||||
search_status () {
|
||||
return this.$store.state.re_px.search_status
|
||||
},
|
||||
|
||||
selected_px () {
|
||||
return this.$store.state.re_px.selected_px
|
||||
}
|
||||
},
|
||||
|
||||
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)
|
||||
},
|
||||
|
||||
is_selected (item) {
|
||||
|
||||
return ''
|
||||
},
|
||||
|
||||
margin_left (item) {
|
||||
if (item.level == 2)
|
||||
return 'pl-4'
|
||||
|
||||
if (item.level == 3)
|
||||
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})
|
||||
},
|
||||
|
||||
template_new(item) {
|
||||
this.$store.commit('re_px/update_selected_px', item)
|
||||
this.$store.commit('re_px/update_dialog_template_new', true)
|
||||
},
|
||||
|
||||
methodeChange(d) {
|
||||
this.select(d.index, d.item)
|
||||
this.$store.commit('normal_method/update_nattest_id', d.item.nattest_id)
|
||||
this.$store.commit('normal_method/update_id', d.item.id)
|
||||
this.$store.commit('normal_method/update_dialog_method', true)
|
||||
},
|
||||
|
||||
normalChange(d) {
|
||||
return
|
||||
}
|
||||
},
|
||||
|
||||
mounted () {
|
||||
// this.$store.dispatch('re_patient/search')
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,162 @@
|
||||
<template>
|
||||
<v-dialog
|
||||
v-model="dialog"
|
||||
persistent
|
||||
max-width="500px"
|
||||
transition="dialog-transition"
|
||||
>
|
||||
|
||||
|
||||
<v-layout class="fill-height" column>
|
||||
<v-card class="grow">
|
||||
<v-card-text>
|
||||
<v-data-table
|
||||
:headers="headers" :items="reruns"
|
||||
:loading="isLoading"
|
||||
hide-actions class="elevation-1">
|
||||
<template slot="items" slot-scope="props">
|
||||
<td class="text-xs-left pa-2 green--text" v-bind:class="is_selected(props.item)">
|
||||
{{ props.item.order_date }}
|
||||
</td>
|
||||
<td class="text-xs-left pa-2" v-bind:class="is_selected(props.item)">
|
||||
{{ props.item.instrument_name }}
|
||||
</td>
|
||||
<td class="text-xs-left pa-2" v-bind:class="is_selected(props.item)">
|
||||
{{ props.item.result }}
|
||||
</td>
|
||||
|
||||
<td class="text-xs-left pa-2" v-bind:class="is_selected(props.item)">
|
||||
<v-btn flat icon color="green" @click="select(props.item)">
|
||||
<v-icon>get_app</v-icon>
|
||||
</v-btn>
|
||||
</td>
|
||||
</template>
|
||||
|
||||
</v-data-table>
|
||||
</v-card-text>
|
||||
<v-card-actions>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn color="blue darken-1" flat @click="dialog = false">Tutup</v-btn>
|
||||
<!-- <v-btn color="blue darken-1" :dark="btn_save_enabled" @click="save" :disabled="!btn_save_enabled">Simpan</v-btn> -->
|
||||
</v-card-actions>
|
||||
|
||||
|
||||
</v-card>
|
||||
</v-layout>
|
||||
</v-dialog>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.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;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
data() {
|
||||
return {
|
||||
query: "",
|
||||
items: [],
|
||||
headers: [
|
||||
{
|
||||
text: "TANGGAL",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "20%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "ALAT",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "35%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "HASIL",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "40%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "5%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
}
|
||||
],
|
||||
|
||||
|
||||
isLoading: false
|
||||
|
||||
};
|
||||
},
|
||||
|
||||
methods : {
|
||||
oneMoment : function(d) {
|
||||
return window.oneMoment(d)
|
||||
},
|
||||
|
||||
select (item) {
|
||||
this.$store.commit('re_px/update_selected_rerun', item)
|
||||
this.$store.commit('re_px/update_dialog_rerun', false)
|
||||
|
||||
let x = this.$store.state.re_px.pxs
|
||||
x[this.$store.state.re_px.selected_px_idx]['result'] = item.result
|
||||
this.$store.commit('re_px/update_pxs', {records:x})
|
||||
},
|
||||
|
||||
is_selected (item) {
|
||||
// let x = this.$store.state.re_patient.selected_patient
|
||||
// if (!x)
|
||||
// return ''
|
||||
|
||||
// if (x.T_OrderHeaderID == item.T_OrderHeaderID)
|
||||
// return 'green lighten-4'
|
||||
|
||||
return ''
|
||||
}
|
||||
},
|
||||
|
||||
computed : {
|
||||
reruns () {
|
||||
return this.$store.state.re_px.reruns
|
||||
},
|
||||
|
||||
dialog : {
|
||||
get () { return this.$store.state.re_px.dialog_rerun },
|
||||
set (v) { this.$store.commit('re_px/update_dialog_rerun', v) }
|
||||
}
|
||||
},
|
||||
|
||||
mounted () {
|
||||
// this.$store.dispatch('re_px/search_rerun')
|
||||
},
|
||||
|
||||
watch : {
|
||||
dialog(n, o) {
|
||||
if (n && !o) {
|
||||
this.$store.dispatch('re_px/search_rerun')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,33 @@
|
||||
<template>
|
||||
<v-dialog
|
||||
v-model="dialog"
|
||||
max-width="400px"
|
||||
>
|
||||
<v-card>
|
||||
<v-card-text>
|
||||
<v-layout row wrap>
|
||||
<v-flex xs12>
|
||||
<v-text-field
|
||||
label="Keterangan Hasil"
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
computed : {
|
||||
dialog : {
|
||||
get() {
|
||||
return this.$store.state.re_px.dialog_template_new
|
||||
},
|
||||
set (v) {
|
||||
this.$store.commit('re_px/update_dialog_template_new', v)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,23 @@
|
||||
<template>
|
||||
<v-dialog
|
||||
v-model="dialog"
|
||||
max-width="500px"
|
||||
>
|
||||
|
||||
</v-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
data () {
|
||||
return {}
|
||||
},
|
||||
|
||||
computed : {
|
||||
dialog : {
|
||||
get () { return this.$store.state.re_patient.dialog_note },
|
||||
set (v) { this.$store.commit('re_patient/update_dialog_note', v) }
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,97 @@
|
||||
<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="patients"
|
||||
:loading="isLoading"
|
||||
hide-actions class="xelevation-1">
|
||||
<template slot="items" slot-scope="props">
|
||||
<td class="text-xs-left pa-2"
|
||||
@click="select(props.item)">
|
||||
{{ props.item.T_OrderHeaderLabNumber }}
|
||||
</td>
|
||||
<td class="text-xs-left pa-2"
|
||||
@click="select(props.item)">
|
||||
{{ props.item.M_PatientName }}
|
||||
</td>
|
||||
</template>
|
||||
|
||||
</v-data-table>
|
||||
|
||||
</v-card>
|
||||
</v-layout>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.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;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
data() {
|
||||
return {
|
||||
query: "",
|
||||
items: [],
|
||||
headers: [
|
||||
{
|
||||
text: "NO LAB",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "20%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "NAMA",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "15%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
}
|
||||
],
|
||||
|
||||
|
||||
isLoading: false
|
||||
|
||||
};
|
||||
},
|
||||
|
||||
methods : {
|
||||
oneMoment : function(d) {
|
||||
return window.oneMoment(d)
|
||||
},
|
||||
|
||||
select (item) {
|
||||
// this.$store.commit('ver_verification/update_selected_sent_sample', item)
|
||||
},
|
||||
|
||||
remove (item) {
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
computed : {
|
||||
patients () {
|
||||
return this.$store.state.re_patient.patients
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
Reference in New Issue
Block a user