Flatten nested repos
This commit is contained in:
@@ -0,0 +1,302 @@
|
||||
<template>
|
||||
<v-layout fil-height column>
|
||||
<v-card class="mb-2">
|
||||
<v-layout row wrap>
|
||||
<v-flex xs12>
|
||||
|
||||
<v-layout>
|
||||
<v-flex xs3 pa-2>
|
||||
<v-layout row wrap>
|
||||
<v-flex xs12>
|
||||
<v-img
|
||||
src="https://www.sgm-inc.com/wp-content/uploads/2014/06/no-profile-male-img.gif"
|
||||
aspect-ratio="1"
|
||||
class="grey lighten-2 elevation-2"
|
||||
>
|
||||
</v-flex>
|
||||
|
||||
|
||||
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs9>
|
||||
<v-flex xs12>
|
||||
<v-layout>
|
||||
<v-flex xs7 pa-1>
|
||||
<v-text-field
|
||||
label="Nama"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_PatientName)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
<v-flex xs5 pa-1>
|
||||
<v-text-field
|
||||
label="RM"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_PatientNoReg)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs12 pa-1>
|
||||
<v-textarea
|
||||
auto-grow
|
||||
label="Alamat"
|
||||
rows="2"
|
||||
:value="getAddress(patient)"
|
||||
readonly
|
||||
></v-textarea>
|
||||
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs12>
|
||||
<v-layout>
|
||||
<v-flex xs7 pa-1>
|
||||
<v-text-field
|
||||
label="Telephon / HP"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_PatientHP)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs5 pa-1>
|
||||
<v-text-field
|
||||
label="Jenis Kelamin"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_SexName)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs12>
|
||||
<v-layout>
|
||||
<v-flex xs7 pa-1>
|
||||
<v-text-field
|
||||
label="Tanggal Lahir"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_PatientDOB)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs5 pa-1>
|
||||
<v-text-field
|
||||
label="Umur"
|
||||
placeholder=""
|
||||
:value="patient_age"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs12 >
|
||||
<v-layout>
|
||||
<v-flex xs6 pa-2>
|
||||
<one-field-verification
|
||||
:is_error="vpatientname.check"
|
||||
:label="vpatientname.label"
|
||||
:value="vpatientname.check"
|
||||
:note="vpatientname.note"
|
||||
|
||||
></one-field-verification>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs6 pa-2>
|
||||
<one-field-verification
|
||||
:is_error="true"
|
||||
label="No RM sudah sesuai "
|
||||
value=false
|
||||
></one-field-verification>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
|
||||
|
||||
<v-flex xs12 >
|
||||
<v-layout>
|
||||
<v-flex xs6 pa-2>
|
||||
<one-field-verification
|
||||
:is_error="true"
|
||||
label="Alamat sudah sesuai"
|
||||
value=false
|
||||
></one-field-verification>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs6 pa-2>
|
||||
<one-field-verification
|
||||
:is_error="true"
|
||||
label="No HP sudah sesuai "
|
||||
value=false
|
||||
></one-field-verification>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
|
||||
|
||||
<v-flex xs12 >
|
||||
<v-layout>
|
||||
<v-flex xs6 pa-2>
|
||||
<one-field-verification
|
||||
:is_error="true"
|
||||
label="DOB sudah sesuai"
|
||||
value=false
|
||||
></one-field-verification>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs6 pa-2>
|
||||
<one-field-verification
|
||||
:is_error="true"
|
||||
label="Umur sudah sesuai "
|
||||
value=false
|
||||
></one-field-verification>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
|
||||
</v-card>
|
||||
|
||||
<v-card >
|
||||
<v-subheader>
|
||||
DATA DOKTER
|
||||
</v-subheader>
|
||||
<!--
|
||||
<v-divider></v-divider>
|
||||
<v-flex xs12 pa-3>
|
||||
<v-text-field
|
||||
label="Nama"
|
||||
placeholder=""
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs12 pa-3>
|
||||
<v-text-field
|
||||
label="Alamat Dokter"
|
||||
placeholder=""
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
-->
|
||||
<v-flex xs12 >
|
||||
<v-layout>
|
||||
<v-flex xs6 pa-2>
|
||||
<one-field-verification
|
||||
:is_error="true"
|
||||
label="Nama DOkter sudah sesuai"
|
||||
value=false
|
||||
></one-field-verification>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs6 pa-2>
|
||||
<one-field-verification
|
||||
:is_error="true"
|
||||
label="Alamat Dokter sudah sesuai "
|
||||
value=false
|
||||
></one-field-verification>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs6 pa-2>
|
||||
<one-testing-component-2
|
||||
:xdatalabel="xtestingObj.label"
|
||||
:xdatacbx="xtestingObj.check"
|
||||
:xdatatxt="xtestingObj.note"
|
||||
@update-data-txt="updateDataTxt"
|
||||
@update-data-cbx="updateDataCbx"
|
||||
></one-testing-component-2>
|
||||
</v-flex>
|
||||
|
||||
</v-card>
|
||||
|
||||
|
||||
</v-layout>
|
||||
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
components : {
|
||||
'one-field-verification' : httpVueLoader('../../common/oneFieldVerification.1.vue'),
|
||||
'one-testing-component':httpVueLoader('../../common/oneTestingComponent.vue'),
|
||||
'one-testing-component-2':httpVueLoader('../../common/oneTestingComponent2.vue')
|
||||
|
||||
},
|
||||
computed: {
|
||||
patient_age() {
|
||||
if ( this.patient == undefined) {
|
||||
return ''
|
||||
}
|
||||
return window.calculate_age(this.patient.M_PatientDOB)
|
||||
},
|
||||
patient() {
|
||||
return this.$store.state.patient.selected_patient
|
||||
},
|
||||
vpatientname() {
|
||||
return this.$store.state.verification.verification_patient_name
|
||||
},
|
||||
updateparent(val) {
|
||||
this.$store.commit("verification/update_patient_name",val)
|
||||
},
|
||||
xtesting(){
|
||||
return this.$store.state.verification.testing
|
||||
},
|
||||
xtestinginput(){
|
||||
return this.$store.state.verification.testing
|
||||
},
|
||||
xtestingObj(){
|
||||
return this.$store.state.verification.testingObj
|
||||
}
|
||||
},
|
||||
methods : {
|
||||
getAddress(patient) {
|
||||
if ( patient == undefined) {
|
||||
return ''
|
||||
}
|
||||
if (patient.address == undefined ) return ''
|
||||
if (patient.address.length == 0) return ''
|
||||
return patient.address[0]
|
||||
},
|
||||
getField(inp) {
|
||||
if ( this.patient != undefined) {
|
||||
return inp
|
||||
}
|
||||
return ''
|
||||
},
|
||||
getError(inp) {
|
||||
if ( this.patient != undefined) {
|
||||
return inp
|
||||
}
|
||||
return ''
|
||||
},
|
||||
updateDataX(e) {
|
||||
this.$store.commit("verification/update_testing",e)
|
||||
},
|
||||
updateDataObj(e) {
|
||||
this.$store.commit("verification/update_testing_obj",e)
|
||||
},
|
||||
updateDataTxt(val) {
|
||||
this.$store.commit("verification/update_testing_txt",val)
|
||||
},
|
||||
updateDataCbx(val) {
|
||||
this.$store.commit("verification/update_testing_cbx",val)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,217 @@
|
||||
<template>
|
||||
<v-layout fil-height column>
|
||||
<v-card class="mb-2">
|
||||
<v-subheader>
|
||||
DATA PASIEN
|
||||
</v-subheader>
|
||||
<v-divider></v-divider>
|
||||
<v-layout row wrap>
|
||||
<v-flex xs12>
|
||||
<v-layout>
|
||||
<v-flex xs3 pa-2>
|
||||
<v-layout row wrap>
|
||||
<v-flex xs12>
|
||||
<v-img
|
||||
src="https://www.sgm-inc.com/wp-content/uploads/2014/06/no-profile-male-img.gif"
|
||||
aspect-ratio="1"
|
||||
class="grey lighten-2 elevation-2"
|
||||
>
|
||||
</v-flex>
|
||||
</v-flex>
|
||||
<v-flex xs9>
|
||||
<v-flex xs12>
|
||||
<v-layout>
|
||||
<v-flex xs7 pa-1>
|
||||
<v-text-field
|
||||
label="Nama"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_PatientName)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
<v-flex xs5 pa-1>
|
||||
<v-text-field
|
||||
label="RM"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_PatientNoReg)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
<v-flex xs12 pa-1>
|
||||
<v-textarea
|
||||
auto-grow
|
||||
label="Alamat"
|
||||
rows="2"
|
||||
:value="getAddress(patient)"
|
||||
readonly
|
||||
></v-textarea>
|
||||
</v-flex>
|
||||
<v-flex xs12>
|
||||
<v-layout>
|
||||
<v-flex xs7 pa-1>
|
||||
<v-text-field
|
||||
label="Telephon / HP"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_PatientHP)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
<v-flex xs5 pa-1>
|
||||
<v-text-field
|
||||
label="Jenis Kelamin"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_SexName)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
<v-flex xs12>
|
||||
<v-layout>
|
||||
<v-flex xs7 pa-1>
|
||||
<v-text-field
|
||||
label="Tanggal Lahir"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_PatientDOB)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs5 pa-1>
|
||||
<v-text-field
|
||||
label="Umur"
|
||||
placeholder=""
|
||||
:value="patient_age"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
|
||||
<v-layout row wrap>
|
||||
<v-flex xs6 pa-2 v-for="(vp,idx) in vpatient" :key="vp.id">
|
||||
<one-field-verification-patient-doctor
|
||||
:xdatalabel="vp.label"
|
||||
:xdatacbx="vp.check"
|
||||
:xdatatxt="vp.note"
|
||||
@update-data-txt="(val) => updateDataTxtParentPatient(idx,val)"
|
||||
@update-data-cbx="(val) => updateDataCbxParentPatient(idx,val)"
|
||||
></one-field-verification-patient-doctor>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-card>
|
||||
|
||||
<v-card >
|
||||
<v-subheader>
|
||||
DATA DOKTER
|
||||
</v-subheader>
|
||||
<v-divider></v-divider>
|
||||
<v-flex pt-2 xs12>
|
||||
<v-layout>
|
||||
<v-flex xs6 pl-5 pr-3>
|
||||
<v-text-field
|
||||
label="Nama"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_DoctorName)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
<v-flex xs6 pl-5 pr-3>
|
||||
<v-text-field
|
||||
label="Alamat"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_DoctorAddress)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
<v-flex xs12 >
|
||||
<v-layout row wrap>
|
||||
<v-flex xs6 pa-2 v-for="(vp,idx) in vdoctor" :key="vp.id">
|
||||
<one-field-verification-patient-doctor
|
||||
:xdatalabel="vp.label"
|
||||
:xdatacbx="vp.check"
|
||||
:xdatatxt="vp.note"
|
||||
@update-data-txt="(val) => updateDataTxtParentDoctor(idx,val)"
|
||||
@update-data-cbx="(val) => updateDataCbxParentDoctor(idx,val)"
|
||||
></one-field-verification-patient-doctor>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-card>
|
||||
</v-layout>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
components : {
|
||||
'one-field-verification' : httpVueLoader('../../common/oneFieldVerification.1.vue'),
|
||||
'one-testing-component':httpVueLoader('../../common/oneTestingComponent.vue'),
|
||||
'one-field-verification-patient-doctor':httpVueLoader('../../common/oneFieldVerificationPatientDoctor.vue')
|
||||
},
|
||||
computed: {
|
||||
patient_age() {
|
||||
if ( this.patient == undefined) {
|
||||
return ''
|
||||
}
|
||||
return window.calculate_age(this.patient.M_PatientDOB)
|
||||
},
|
||||
patient() {
|
||||
return this.$store.state.patient.selected_patient
|
||||
},
|
||||
vpatient() {
|
||||
return this.$store.state.verification.verification_patient
|
||||
},
|
||||
vdoctor() {
|
||||
return this.$store.state.verificationdoctor.verification
|
||||
}
|
||||
},
|
||||
methods : {
|
||||
getAddress(patient) {
|
||||
if ( patient == undefined) {
|
||||
return ''
|
||||
}
|
||||
if (patient.address == undefined ) return ''
|
||||
if (patient.address.length == 0) return ''
|
||||
return patient.address[0]
|
||||
},
|
||||
getField(inp) {
|
||||
if ( this.patient != undefined) {
|
||||
return inp
|
||||
}
|
||||
return ''
|
||||
},
|
||||
getError(inp) {
|
||||
if ( this.patient != undefined) {
|
||||
return inp
|
||||
}
|
||||
return ''
|
||||
},
|
||||
updateDataTxtParentPatient(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_txt_parent_patient",prm)
|
||||
},
|
||||
updateDataCbxParentPatient(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_cbx_parent_patient",prm)
|
||||
},
|
||||
updateDataTxtParentDoctor(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_txt_parent_doctor",prm)
|
||||
},
|
||||
updateDataCbxParentDoctor(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_cbx_parent_doctor",prm)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,222 @@
|
||||
<template>
|
||||
<v-layout fil-height column>
|
||||
<v-card class="mb-2">
|
||||
<v-subheader>
|
||||
DATA PASIEN
|
||||
</v-subheader>
|
||||
<v-divider></v-divider>
|
||||
<v-layout row wrap>
|
||||
<v-flex xs12>
|
||||
<v-layout>
|
||||
<v-flex xs3 pa-2>
|
||||
<v-layout row wrap>
|
||||
<v-flex xs12>
|
||||
<v-img
|
||||
src="https://www.sgm-inc.com/wp-content/uploads/2014/06/no-profile-male-img.gif"
|
||||
aspect-ratio="1"
|
||||
class="grey lighten-2 elevation-2"
|
||||
>
|
||||
</v-flex>
|
||||
</v-flex>
|
||||
<v-flex xs9>
|
||||
<v-flex xs12>
|
||||
<v-layout>
|
||||
<v-flex xs7 pa-1>
|
||||
<v-text-field
|
||||
label="Nama"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_PatientName)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
<v-flex xs5 pa-1>
|
||||
<v-text-field
|
||||
label="RM"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_PatientNoReg)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
<v-flex xs12 pa-1>
|
||||
<v-textarea
|
||||
auto-grow
|
||||
label="Alamat"
|
||||
rows="2"
|
||||
:value="getAddress(patient)"
|
||||
readonly
|
||||
></v-textarea>
|
||||
</v-flex>
|
||||
<v-flex xs12>
|
||||
<v-layout>
|
||||
<v-flex xs7 pa-1>
|
||||
<v-text-field
|
||||
label="Telephon / HP"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_PatientHP)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
<v-flex xs5 pa-1>
|
||||
<v-text-field
|
||||
label="Jenis Kelamin"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_SexName)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
<v-flex xs12>
|
||||
<v-layout>
|
||||
<v-flex xs7 pa-1>
|
||||
<v-text-field
|
||||
label="Tanggal Lahir"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_PatientDOB)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs5 pa-1>
|
||||
<v-text-field
|
||||
label="Umur"
|
||||
placeholder=""
|
||||
:value="patient_age"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
|
||||
<v-layout row wrap>
|
||||
<v-flex xs6 pa-2 v-for="(vp,idx) in vpatient" :key="vp.id">
|
||||
<one-field-verification-patient-doctor
|
||||
:xdatalabel="vp.label"
|
||||
:xdatacbx="vp.check"
|
||||
:xdatatxt="vp.note"
|
||||
@update-data-txt="(val) => updateDataTxtParentPatient(idx,val)"
|
||||
@update-data-cbx="(val) => updateDataCbxParentPatient(idx,val)"
|
||||
></one-field-verification-patient-doctor>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-card>
|
||||
|
||||
<v-card >
|
||||
<v-subheader>
|
||||
DATA DOKTER
|
||||
</v-subheader>
|
||||
<v-divider></v-divider>
|
||||
<v-flex pt-2 xs12>
|
||||
<v-layout>
|
||||
<v-flex xs6 pl-5 pr-3>
|
||||
<v-text-field
|
||||
label="Nama"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_DoctorName)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
<v-flex xs6 pl-5 pr-3>
|
||||
<v-text-field
|
||||
label="Alamat"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_DoctorAddress)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
<v-flex xs12 >
|
||||
<v-layout row wrap>
|
||||
<v-flex xs6 pa-2 v-for="(vp,idx) in vdoctor" :key="vp.id">
|
||||
<one-field-verification-patient-doctor
|
||||
:xdatalabel="vp.label"
|
||||
:xdatacbx="vp.check"
|
||||
:xdatatxt="vp.note"
|
||||
@update-data-txt="(val) => updateDataTxtParentDoctor(idx,val)"
|
||||
@update-data-cbx="(val) => updateDataCbxParentDoctor(idx,val)"
|
||||
></one-field-verification-patient-doctor>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-card>
|
||||
</v-layout>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
components : {
|
||||
'one-field-verification' : httpVueLoader('../../common/oneFieldVerification.1.vue'),
|
||||
'one-testing-component':httpVueLoader('../../common/oneTestingComponent.vue'),
|
||||
'one-field-verification-patient-doctor':httpVueLoader('../../common/oneFieldVerificationPatientDoctor.vue')
|
||||
},
|
||||
mounted() {
|
||||
this.$store.dispatch("verificationdoctor/lookup",{
|
||||
ohid:this.$store.state.patient.selected_patient.ohid
|
||||
})
|
||||
},
|
||||
computed: {
|
||||
patient_age() {
|
||||
if ( this.patient == undefined) {
|
||||
return ''
|
||||
}
|
||||
return window.calculate_age(this.patient.M_PatientDOB)
|
||||
},
|
||||
patient() {
|
||||
return this.$store.state.patient.selected_patient
|
||||
},
|
||||
vpatient() {
|
||||
return this.$store.state.verification.verification_patient
|
||||
},
|
||||
vdoctor() {
|
||||
return this.$store.state.verificationdoctor.verifications
|
||||
}
|
||||
},
|
||||
methods : {
|
||||
getAddress(patient) {
|
||||
if ( patient == undefined) {
|
||||
return ''
|
||||
}
|
||||
if (patient.address == undefined ) return ''
|
||||
if (patient.address.length == 0) return ''
|
||||
return patient.address[0]
|
||||
},
|
||||
getField(inp) {
|
||||
if ( this.patient != undefined) {
|
||||
return inp
|
||||
}
|
||||
return ''
|
||||
},
|
||||
getError(inp) {
|
||||
if ( this.patient != undefined) {
|
||||
return inp
|
||||
}
|
||||
return ''
|
||||
},
|
||||
updateDataTxtParentPatient(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_txt_parent_patient",prm)
|
||||
},
|
||||
updateDataCbxParentPatient(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_cbx_parent_patient",prm)
|
||||
},
|
||||
updateDataTxtParentDoctor(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verificationdoctor/update_txt_verication_doctor",prm)
|
||||
},
|
||||
updateDataCbxParentDoctor(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verificationdoctor/update_cbx_verification_doctor",prm)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,221 @@
|
||||
<template>
|
||||
<v-layout fil-height column>
|
||||
<v-card class="mb-2">
|
||||
<v-subheader>
|
||||
DATA PASIEN
|
||||
</v-subheader>
|
||||
<v-divider></v-divider>
|
||||
<v-layout row wrap>
|
||||
<v-flex xs12>
|
||||
<v-layout>
|
||||
<v-flex xs3 pa-2>
|
||||
<v-layout row wrap>
|
||||
<v-flex xs12>
|
||||
<v-img
|
||||
src="https://www.sgm-inc.com/wp-content/uploads/2014/06/no-profile-male-img.gif"
|
||||
aspect-ratio="1"
|
||||
class="grey lighten-2 elevation-2"
|
||||
>
|
||||
</v-flex>
|
||||
</v-flex>
|
||||
<v-flex xs9>
|
||||
<v-flex xs12>
|
||||
<v-layout>
|
||||
<v-flex xs7 pa-1>
|
||||
<v-text-field
|
||||
label="Nama"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_PatientName)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
<v-flex xs5 pa-1>
|
||||
<v-text-field
|
||||
label="RM"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_PatientNoReg)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
<v-flex xs12 pa-1>
|
||||
<v-textarea
|
||||
auto-grow
|
||||
label="Alamat"
|
||||
rows="2"
|
||||
:value="getAddress(patient)"
|
||||
readonly
|
||||
></v-textarea>
|
||||
</v-flex>
|
||||
<v-flex xs12>
|
||||
<v-layout>
|
||||
<v-flex xs7 pa-1>
|
||||
<v-text-field
|
||||
label="Telephon / HP"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_PatientHP)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
<v-flex xs5 pa-1>
|
||||
<v-text-field
|
||||
label="Jenis Kelamin"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_SexName)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
<v-flex xs12>
|
||||
<v-layout>
|
||||
<v-flex xs7 pa-1>
|
||||
<v-text-field
|
||||
label="Tanggal Lahir"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_PatientDOB)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs5 pa-1>
|
||||
<v-text-field
|
||||
label="Umur"
|
||||
placeholder=""
|
||||
:value="getField(patient.T_OrderHeaderM_PatientAge)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
|
||||
<v-layout class="pb-3" row wrap>
|
||||
<v-flex xs6 pa-2 v-for="(vp,idx) in vpatient" :key="vp.id">
|
||||
<one-field-verification-patient-doctor
|
||||
:xdatalabel="vp.label"
|
||||
:xdatacbx="vp.chex"
|
||||
:xdatatxt="vp.note"
|
||||
@update-data-txt="(val) => updateDataTxtParentPatient(idx,val)"
|
||||
@update-data-cbx="(val) => updateDataCbxParentPatient(idx,val)"
|
||||
></one-field-verification-patient-doctor>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-card>
|
||||
|
||||
<v-card >
|
||||
<v-subheader>
|
||||
DATA DOKTER
|
||||
</v-subheader>
|
||||
<v-divider></v-divider>
|
||||
<v-flex pt-2 xs12>
|
||||
<v-layout>
|
||||
<v-flex xs6 pl-5 pr-3>
|
||||
<v-text-field
|
||||
label="Nama"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_DoctorName)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
<v-flex xs6 pl-5 pr-3>
|
||||
<v-text-field
|
||||
label="Alamat"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_DoctorAddress)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
<v-flex pb-3 xs12 >
|
||||
<v-layout row wrap>
|
||||
<v-flex xs6 pa-2 v-for="(vp,idx) in vdoctor" :key="vp.id">
|
||||
<one-field-verification-patient-doctor
|
||||
:xdatalabel="vp.label"
|
||||
:xdatacbx="vp.chex"
|
||||
:xdatatxt="vp.note"
|
||||
@update-data-txt="(val) => updateDataTxtParentDoctor(idx,val)"
|
||||
@update-data-cbx="(val) => updateDataCbxParentDoctor(idx,val)"
|
||||
></one-field-verification-patient-doctor>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-card>
|
||||
</v-layout>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
components : {
|
||||
'one-field-verification' : httpVueLoader('../../common/oneFieldVerification.1.vue'),
|
||||
'one-testing-component':httpVueLoader('../../common/oneTestingComponent.vue'),
|
||||
'one-field-verification-patient-doctor':httpVueLoader('../../common/oneFieldVerificationPatientDoctor.vue')
|
||||
},
|
||||
computed: {
|
||||
patient_age() {
|
||||
if ( this.patient == undefined) {
|
||||
return ''
|
||||
}
|
||||
return window.calculate_age(this.patient.M_PatientDOB)
|
||||
},
|
||||
patient() {
|
||||
return this.$store.state.patient.selected_patient
|
||||
},
|
||||
vpatient() {
|
||||
return this.$store.state.verification.verification_patient
|
||||
},
|
||||
vdoctor() {
|
||||
return this.$store.state.verification.verification_doctor
|
||||
}
|
||||
},
|
||||
methods : {
|
||||
getAddress(patient) {
|
||||
if ( patient == undefined) {
|
||||
return ''
|
||||
}
|
||||
if (patient.address == undefined ) return ''
|
||||
if (patient.address.length == 0) return ''
|
||||
return patient.address[0]
|
||||
},
|
||||
getField(inp) {
|
||||
if ( this.patient != undefined) {
|
||||
return inp
|
||||
}
|
||||
return ''
|
||||
},
|
||||
getError(inp) {
|
||||
if ( this.patient != undefined) {
|
||||
return inp
|
||||
}
|
||||
return ''
|
||||
},
|
||||
updateDataTxtParentPatient(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_txt_parent_patient",prm)
|
||||
},
|
||||
updateDataCbxParentPatient(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_cbx_parent_patient",prm)
|
||||
var xcount = this.$store.state.patient.no_save + 1
|
||||
this.$store.commit("patient/update_no_save",xcount)
|
||||
},
|
||||
updateDataTxtParentDoctor(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_txt_parent_doctor",prm)
|
||||
},
|
||||
updateDataCbxParentDoctor(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_cbx_parent_doctor",prm)
|
||||
var xcount = this.$store.state.patient.no_save + 1
|
||||
this.$store.commit("patient/update_no_save",xcount)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,89 @@
|
||||
<template>
|
||||
<v-layout>
|
||||
|
||||
<v-checkbox
|
||||
v-model="x_value"
|
||||
@change="$emit('x_change',{x_value,x_note})"
|
||||
hide-details class="shrink mr-2"
|
||||
></v-checkbox>
|
||||
|
||||
|
||||
<v-text-field
|
||||
:label="__label"
|
||||
placeholder="Alasan"
|
||||
outline
|
||||
:disabled="x_disabled"
|
||||
:error-messages="is_error ? x_error_messages : ''"
|
||||
:error_count="is_error ? x_error_count : 0 "
|
||||
:error=is_error
|
||||
:hide-details=!x_error
|
||||
v-model="x_note"
|
||||
></v-text-field>
|
||||
|
||||
</v-layout>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
props : ['label', 'value', 'is_error'],
|
||||
|
||||
data () {
|
||||
return {
|
||||
x_value : false,
|
||||
x_note : ""
|
||||
}
|
||||
|
||||
},
|
||||
computed : {
|
||||
__label () {
|
||||
if (this.label)
|
||||
return this.label;
|
||||
|
||||
return "";
|
||||
},
|
||||
|
||||
x_disabled () {
|
||||
return this.x_value;
|
||||
},
|
||||
|
||||
x_error () {
|
||||
|
||||
if (!this.x_value && this.x_note.length < 1)
|
||||
return true;
|
||||
|
||||
else {
|
||||
this.x_note = "";
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
|
||||
x_error_count () {
|
||||
// return 0;
|
||||
if (this.x_error)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
},
|
||||
|
||||
x_error_messages () {
|
||||
if (this.x_error)
|
||||
return ["Harus diisi"];
|
||||
|
||||
return [];
|
||||
},
|
||||
|
||||
// x_note : {
|
||||
// set (newval) {
|
||||
// return newval;
|
||||
// },
|
||||
|
||||
// get () {
|
||||
// return "";
|
||||
// }
|
||||
|
||||
// }
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,50 @@
|
||||
<template>
|
||||
|
||||
<v-dialog
|
||||
v-model="dialog"
|
||||
full-width
|
||||
>
|
||||
<v-card>
|
||||
<v-card-title
|
||||
class="headline grey lighten-2 pt-2 pb-2"
|
||||
primary-title
|
||||
>
|
||||
Data Pasien X
|
||||
</v-card-title>
|
||||
<v-card-text class="pt-2 pb-2">
|
||||
|
||||
</v-card-text>
|
||||
<v-divider></v-divider>
|
||||
|
||||
<v-card-actions>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn
|
||||
color="primary"
|
||||
flat
|
||||
@click="dialog = false"
|
||||
>
|
||||
Tutup
|
||||
</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
computed : {
|
||||
dialog: {
|
||||
get() {
|
||||
return this.$store.state.patient.search_dialog_is_active;
|
||||
},
|
||||
set(val) {
|
||||
this.$store.commit('patient/update_search_dialog_is_active',val);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,78 @@
|
||||
<template>
|
||||
|
||||
<v-dialog
|
||||
v-model="dialog"
|
||||
max-width="30%"
|
||||
>
|
||||
<v-card>
|
||||
<v-card-title
|
||||
class="headline grey lighten-2 pt-2 pb-2"
|
||||
primary-title
|
||||
>
|
||||
Peringatan !
|
||||
</v-card-title>
|
||||
<v-card-text class="pt-2 pb-2">
|
||||
<v-layout row>
|
||||
<v-flex xs12 d-flex>
|
||||
<v-layout row>
|
||||
<v-flex pb-1 xs12>
|
||||
<v-layout row>
|
||||
<v-flex pt-2 pr-2 xs12>
|
||||
{{msg}}
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</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="primary"
|
||||
flat
|
||||
@click="dialog = false"
|
||||
>
|
||||
Tutup
|
||||
</v-btn>
|
||||
<v-btn
|
||||
color="primary"
|
||||
flat
|
||||
@click="closeAlert()"
|
||||
>
|
||||
Tambahkan
|
||||
</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
props : ['status', 'msg']
|
||||
computed : {
|
||||
msg() {
|
||||
return this.msg
|
||||
},
|
||||
dialog: {
|
||||
get() {
|
||||
return this.status
|
||||
},
|
||||
set(val) {
|
||||
this.status = val
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
closeAlert() {
|
||||
this.dialog = false
|
||||
this.$emit('close-alert',true)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,192 @@
|
||||
<template>
|
||||
<v-layout column >
|
||||
<v-card>
|
||||
<v-layout row>
|
||||
<v-flex xs12>
|
||||
<v-subheader red--text text--lighten-1> BARCODE
|
||||
<v-flex text-md-right>
|
||||
<v-btn v-if="vshowprint" small @click="printBarcode()" color="primary">Print</v-btn>
|
||||
|
||||
</v-flex>
|
||||
</v-subheader>
|
||||
<v-divider></v-divider>
|
||||
<v-layout row wrap>
|
||||
<v-flex xs12 pt-2 pl-4 pr-4 pb-4>
|
||||
<v-layout row v-for="(vbar,idx) in vbarcode" :key="vbar.id">
|
||||
<v-flex xs12 mb-2>
|
||||
<div class="body-2">
|
||||
{{vbar.name}}
|
||||
<v-btn small @click="addBarcode(idx,vbar)" style="min-width:25px" color="primary">+</v-btn>
|
||||
<!--<v-btn small @click="delBarcode(idx,vbar)" style="min-width:25px" color="error">x</v-btn>-->
|
||||
</div>
|
||||
<v-layout row>
|
||||
<v-flex xs12 v-for="vbarchil in vbar.children">
|
||||
<v-checkbox
|
||||
v-model="vbarchil.chex"
|
||||
readonly="readonly"
|
||||
color="green"
|
||||
>
|
||||
<template v-slot:label>
|
||||
{{vbarchil.barcodenumber}}
|
||||
</template>
|
||||
</v-checkbox>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-flex>
|
||||
</v-card>
|
||||
</v-layout>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
table, td, th {
|
||||
border: 1px solid #ddd;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
padding-left: 8px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.mini-input .v-input{
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
.mini-input .v-input, .mini-input .v-input--selection-controls,.mini-input .v-input__slot{
|
||||
margin-top: 0px;
|
||||
margin-bottom:0px;
|
||||
margin-left:3px;
|
||||
}
|
||||
.mini-input .v-messages{
|
||||
min-height:0px;
|
||||
}
|
||||
input.fhm-input{
|
||||
border: 1px solid black;
|
||||
border-radius: 2px;
|
||||
-webkit-box-shadow:
|
||||
inset 0 0 2px rgba(0,0,0,0.1),
|
||||
0 0 4px rgba(0,0,0,0.1);
|
||||
-moz-box-shadow:
|
||||
inset 0 0 2px rgba(0,0,0,0.1),
|
||||
0 0 4px rgba(0,0,0,0.1);
|
||||
box-shadow:
|
||||
inset 0 0 2px rgba(0,0,0,0.1),
|
||||
0 0 4px rgba(0,0,0,0.1);
|
||||
padding: 2px 4px;
|
||||
background: rgba(255,255,255,0.5);
|
||||
margin: 0 0 1px 0;
|
||||
width:30px;
|
||||
text-align:center;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
data: () => ({
|
||||
items: [
|
||||
{
|
||||
id: 1,
|
||||
name: 'Applications',
|
||||
children: [
|
||||
{ id: 2, name: 'Calendar : app' },
|
||||
{ id: 3, name: 'Chrome : app' },
|
||||
{ id: 4, name: 'Webstorm : app' }
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: 'fasfsafsafasf',
|
||||
children: [
|
||||
{ id: 2, name: 'Calendar : app' },
|
||||
{ id: 3, name: 'Chrome : app' },
|
||||
{ id: 4, name: 'Webstorm : app' }
|
||||
]
|
||||
}
|
||||
]
|
||||
}),
|
||||
computed: {
|
||||
vbarcode() {
|
||||
return this.$store.state.verification.verification_barcode
|
||||
},
|
||||
vshowprint(){
|
||||
var xdt = this.$store.state.verification.verification_barcode
|
||||
var xx = _.findIndex(xdt, function(o) { return o.xid == 0 })
|
||||
var rst = (xx == -1)?true:false
|
||||
return rst
|
||||
}
|
||||
},
|
||||
methods : {
|
||||
updateDataQtyParentBarcode(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_qty_parent_barcode",prm)
|
||||
},
|
||||
updateDataCbxParentBarcode(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_cbx_parent_barcode",prm)
|
||||
},
|
||||
addBarcode(idx,varx){
|
||||
let vpar = varx
|
||||
let lght = vpar.children.length
|
||||
let childx = Object.assign({}, vpar.children[lght - 1])
|
||||
let oldbarcode = childx.barcodenumber
|
||||
let oldcount = oldbarcode.split(".")
|
||||
var newcount = parseInt(oldcount[2]) + 1
|
||||
var newbarcodex = oldcount[0]+'.'+oldcount[1]+'.'+newcount
|
||||
childx.barcodenumber = newbarcodex
|
||||
childx.xid = 0
|
||||
vpar.children.push(childx)
|
||||
|
||||
var oldArr = this.$store.state.patient.selected_patient
|
||||
oldArr.verification_barcode[idx] = vpar
|
||||
this.$store.commit("patient/update_selected_patient",oldArr)
|
||||
|
||||
|
||||
},
|
||||
delBarcode(idx,varx){
|
||||
let vpar = varx
|
||||
let lght = vpar.children.length
|
||||
if(lght > 1){
|
||||
var inx = parseInt(idx);
|
||||
var oldArr = this.$store.state.patient.selected_patient
|
||||
oldArr.verification_barcode[idx].children.splice(lght-1,1)
|
||||
|
||||
this.$store.commit("verification/update_verification_barcode",oldArr.verification_barcode)
|
||||
this.$store.commit("patient/update_selected_patient",oldArr)
|
||||
}
|
||||
},
|
||||
printBarcode(){
|
||||
var xarr = []
|
||||
var selpat = this.$store.state.patient.selected_patient
|
||||
var barcodes = this.$store.state.verification.verification_barcode
|
||||
barcodes.forEach(function(barcode) {
|
||||
var xbarcode = barcode
|
||||
xbarcode.M_PatientName = selpat.M_PatientName
|
||||
xbarcode.M_PatientDOB = selpat.M_PatientDOB
|
||||
xbarcode.T_OrderHeaderLabNumber = selpat.T_OrderHeaderLabNumber
|
||||
xbarcode.T_OrderHeaderDate = selpat.T_OrderHeaderDate
|
||||
xbarcode.M_PatientNoReg = selpat.M_PatientNoReg
|
||||
xbarcode.M_DoctorName = selpat.M_DoctorName
|
||||
xbarcode.M_CompanyName = selpat.M_CompanyName
|
||||
xbarcode.M_PatientAddress = selpat.M_PatientAddress
|
||||
xbarcode.CityUtama = selpat.CityUtama
|
||||
xbarcode.M_SexName = selpat.M_SexName
|
||||
xarr.push(xbarcode)
|
||||
});
|
||||
console.log(xarr)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,102 @@
|
||||
<template>
|
||||
<v-layout column class="fill-height">
|
||||
<v-card class="mb-2">
|
||||
<v-layout row wrap>
|
||||
<v-flex xs12 >
|
||||
<v-subheader red--text text--lighten-1> DATA PENGIRIMAN
|
||||
<v-flex text-md-right>
|
||||
<v-btn small color="primary">Tambah Data</v-btn>
|
||||
</v-flex>
|
||||
</v-subheader>
|
||||
<v-divider></v-divider>
|
||||
<v-layout row>
|
||||
<v-flex xs12 pa-1>
|
||||
<one-field-verification
|
||||
:is_error="true"
|
||||
label="Email ke Dokter : sms.sipe@gmail.com"
|
||||
@x_change="emailChange"
|
||||
value=""
|
||||
></one-field-verification>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
<v-layout row>
|
||||
<v-flex xs12 pa-1>
|
||||
<one-field-verification
|
||||
:is_error="true"
|
||||
label="Kirim ke Pasien : Jl. Tegal Raya No. 1"
|
||||
@x_change="emailChange"
|
||||
value=""
|
||||
></one-field-verification>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
<v-divider></v-divider>
|
||||
<v-layout row>
|
||||
<v-flex xs9 pa-1 class="indigo lighten-5">
|
||||
<one-field-verification
|
||||
:is_error="true"
|
||||
label="Email ke Dokter : sms.sipe@gmail.com"
|
||||
@x_change="emailChange"
|
||||
value=""
|
||||
></one-field-verification>
|
||||
</v-flex>
|
||||
<v-flex class="indigo lighten-5" pt-3 xs3>
|
||||
<v-layout align-center justify-center row>
|
||||
<v-icon large color="red">delete</v-icon>
|
||||
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-flex>
|
||||
</v-card>
|
||||
<v-card>
|
||||
<v-layout row>
|
||||
<v-flex xs12>
|
||||
<v-subheader red--text text--lighten-1> DATA PEMBAYARAN</v-subheader>
|
||||
<v-divider></v-divider>
|
||||
<v-layout row>
|
||||
<v-flex xs12 pa-2>
|
||||
<one-field-verification
|
||||
:is_error="true"
|
||||
label="Minimum pembayaran terpenuhi (Rp 50.000)"
|
||||
@x_change="emailChange"
|
||||
value=""
|
||||
></one-field-verification>
|
||||
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-flex>
|
||||
</v-card>
|
||||
</v-layout>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
components : {
|
||||
'one-field-verification' : httpVueLoader('../../common/oneFieldVerification.vue'),
|
||||
'one-field-verification-delivery-payment' : httpVueLoader('../../common/oneFieldVerificationDeliveryPayment.vue')
|
||||
},
|
||||
|
||||
data () {
|
||||
return {
|
||||
email: 'sms@fajrihm.gmail.com"',
|
||||
_email: true,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
emailChange : function(val) {
|
||||
console.log(val);
|
||||
}
|
||||
},
|
||||
computed : {
|
||||
_email () {
|
||||
return this.$data._email;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,228 @@
|
||||
<template>
|
||||
<v-layout column class="fill-height">
|
||||
<v-card v-if="vdelivery.length > 0" class="mb-2">
|
||||
<v-layout class="pb-3" row wrap>
|
||||
<v-flex xs12 >
|
||||
<v-subheader red--text text--lighten-1> DATA PENGIRIMAN
|
||||
<v-flex text-md-right>
|
||||
<v-btn small v-if="vlaststatus === '2'" @click="openDialogDelivery()" color="primary">Tambah Pengiriman</v-btn>
|
||||
<one-verification-dialog-delivery @add-data-delivery="(cval) => updateDataParentDelivery(cval)"></one-verification-dialog-delivery>
|
||||
</v-flex>
|
||||
</v-subheader>
|
||||
<v-divider></v-divider>
|
||||
<v-layout row wrap>
|
||||
<v-flex v-for="(vd,index) in vdelivery" xs12 pa-1>
|
||||
<one-field-verification-delivery-payment
|
||||
:xdatalabel="vd.label"
|
||||
:xdatacbx="vd.chex"
|
||||
:xdatatxt="vd.note"
|
||||
:xdatatype="vd.type"
|
||||
@update-data-txt="(val) => updateDataTxtParentDelivery(index,val)"
|
||||
@update-data-cbx="(val) => updateDataCbxParentDelivery(index,val)"
|
||||
@update-data-delete="(val) => deleteDataParentDelivery(index,val)"
|
||||
></one-field-verification-delivery-payment>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-flex>
|
||||
</v-card>
|
||||
<v-card v-if="vpayment.length > 0">
|
||||
<v-layout class="pb-3" row>
|
||||
<v-flex pb-3 xs12>
|
||||
<v-subheader red--text text--lighten-1> DATA PEMBAYARAN</v-subheader>
|
||||
<v-divider></v-divider>
|
||||
<v-layout row>
|
||||
<v-flex class="text-xs-center" xs12 pa-3>
|
||||
<v-layout row>
|
||||
<v-flex xs3><b class="indigo--text">{{vselpatient.texttagihan}}</b></v-flex>
|
||||
<v-flex xs7><b>Total Tagihan</b> <kbd>{{convertMoney(vselpatient.T_OrderHeaderTotal)}}</kbd> <b>Pembayaran</b> <kbd>{{convertMoney(vselpatient.paid)}}</kbd> | <span>{{persen(vselpatient.T_OrderHeaderTotal,vselpatient.paid)}}</span>%</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
<one-field-verification-delivery-payment
|
||||
v-for="(vp,idx) in vpayment" :key="vp.id"
|
||||
:xdatalabel="vp.label"
|
||||
:xdatacbx="vp.chex"
|
||||
:xdatatxt="vp.note"
|
||||
:xdatatype="vp.type"
|
||||
@update-data-txt="(val) => updateDataTxtParentPayment(idx,val)"
|
||||
@update-data-cbx="(val) => updateDataCbxParentPayment(idx,val)"
|
||||
></one-field-verification-delivery-payment>
|
||||
</v-flex>
|
||||
</v-flex>
|
||||
</v-card>
|
||||
<v-card v-if="vpayment.length > 0" class="mt-2" >
|
||||
<v-subheader>
|
||||
CATATAN VERIFIKASI
|
||||
</v-subheader>
|
||||
<v-divider></v-divider>
|
||||
<v-flex xs12 class="pl-4 pr-4 pt-2 pb-2 mt-2">
|
||||
<v-textarea
|
||||
label="Tulis catatan di sini"
|
||||
rows="3"
|
||||
v-model="verification_note"
|
||||
outline
|
||||
></v-textarea>
|
||||
</v-flex>
|
||||
</v-card>
|
||||
<v-card v-if="vpayment.length > 0" v-if="vlaststatus === '2'" class="mt-2">
|
||||
<v-layout row wrap>
|
||||
<v-flex xs6 pa-2 >
|
||||
<v-btn large block @click="saveVerification('N')" color="error">Tolak</v-btn>
|
||||
</v-flex>
|
||||
<v-flex xs6 pa-2 >
|
||||
<v-btn large block @click="saveVerification('Y')" color="primary">Verifikasi</v-btn>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-card>
|
||||
<v-dialog v-model="dialogvalidation" persistent width="500">
|
||||
<v-card>
|
||||
<v-card-title class="headline">Peringatan !</v-card-title>
|
||||
<v-card-text>
|
||||
<v-alert v-for="item in msgdialogvalidation"
|
||||
:value="true"
|
||||
type="error"
|
||||
>
|
||||
{{item}} [ Belum ada alasan ]
|
||||
</v-alert>
|
||||
</v-card-text>
|
||||
<v-card-actions>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn color="green darken-1" flat @click="dialogvalidation = false">OK</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
</v-layout>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
data () {
|
||||
return {
|
||||
dialogvalidation: false,
|
||||
msgdialogvalidation:[]
|
||||
}
|
||||
},
|
||||
components : {
|
||||
'one-field-verification' : httpVueLoader('../../common/oneFieldVerification.vue'),
|
||||
'one-field-verification-delivery-payment' : httpVueLoader('../../common/oneFieldVerificationDeliveryPayment.vue'),
|
||||
'one-verification-dialog-delivery' : httpVueLoader('./oneVerificationDialogDelivery.vue')
|
||||
},
|
||||
computed: {
|
||||
vselpatient() {
|
||||
return this.$store.state.patient.selected_patient
|
||||
},
|
||||
vlaststatus() {
|
||||
return this.$store.state.patient.selected_patient.check_status
|
||||
},
|
||||
vdelivery() {
|
||||
return this.$store.state.verification.verification_delivery
|
||||
},
|
||||
vpayment() {
|
||||
return this.$store.state.verification.verification_payment
|
||||
},
|
||||
verification_note: {
|
||||
get() {
|
||||
return this.$store.state.patient.selected_patient.verification_note
|
||||
},
|
||||
set(val) {
|
||||
var oldArr = this.$store.state.patient.selected_patient
|
||||
oldArr.verification_note = val
|
||||
this.$store.commit("patient/update_selected_patient",oldArr)
|
||||
}
|
||||
}
|
||||
},
|
||||
methods : {
|
||||
updateDataTxtParentDelivery(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_txt_parent_delivery",prm)
|
||||
},
|
||||
updateDataCbxParentDelivery(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_cbx_parent_delivery",prm)
|
||||
var xcount = this.$store.state.patient.no_save + 1
|
||||
this.$store.commit("patient/update_no_save",xcount)
|
||||
},
|
||||
updateDataTxtParentPayment(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_txt_parent_payment",prm)
|
||||
},
|
||||
updateDataCbxParentPayment(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_cbx_parent_payment",prm)
|
||||
var xcount = this.$store.state.patient.no_save + 1
|
||||
this.$store.commit("patient/update_no_save",xcount)
|
||||
},
|
||||
deleteDataParentDelivery(idx,val){
|
||||
var inx = parseInt(idx);
|
||||
var oldArr = this.$store.state.patient.selected_patient
|
||||
oldArr.verification_delivery.splice(inx,1)
|
||||
|
||||
this.$store.commit("patient/update_selected_patient",oldArr)
|
||||
},
|
||||
openDialogDelivery(){
|
||||
var oldArr = this.$store.state.delivery.deliveries
|
||||
this.$store.commit("delivery/update_selected_delivery",oldArr[0])
|
||||
this.$store.commit('verification/update_dialog_delivery_is_active',true)
|
||||
},
|
||||
updateDataParentDelivery(valx){
|
||||
var oldArr = this.$store.state.patient.selected_patient
|
||||
oldArr.verification_delivery.push(valx)
|
||||
this.$store.commit("patient/update_selected_patient",oldArr)
|
||||
var xcount = this.$store.state.patient.no_save + 1
|
||||
this.$store.commit("patient/update_no_save",xcount)
|
||||
},
|
||||
convertMoney(money){
|
||||
return one_money(money)
|
||||
},
|
||||
persen(total,paid){
|
||||
return ((paid/total)*100).toFixed(2)
|
||||
},
|
||||
saveVerification(status){
|
||||
var xerrors = []
|
||||
var allArr = this.$store.state.patient.selected_patient
|
||||
allArr.verification_patient.forEach(function(value) {
|
||||
if(value.chex === false && value.note === "")
|
||||
xerrors.push(value.label);
|
||||
});
|
||||
allArr.verification_doctor.forEach(function(value) {
|
||||
if(value.chex === false && value.note === "")
|
||||
xerrors.push(value.label);
|
||||
});
|
||||
allArr.verification_companymou.forEach(function(value) {
|
||||
if(value.chex === false && value.note === "")
|
||||
xerrors.push(value.label);
|
||||
});
|
||||
allArr.verification_delivery.forEach(function(value) {
|
||||
if(value.chex === false && value.note === "")
|
||||
xerrors.push(value.label);
|
||||
});
|
||||
allArr.verification_info.forEach(function(value) {
|
||||
if(value.chex === false && value.note === "")
|
||||
xerrors.push(value.label);
|
||||
});
|
||||
allArr.verification_payment.forEach(function(value) {
|
||||
if(value.chex === false && value.note === "")
|
||||
xerrors.push(value.label);
|
||||
});
|
||||
if(xerrors.length === 0){
|
||||
var prm = {patient: this.$store.state.patient.selected_patient, status : status}
|
||||
this.$store.dispatch("patient/save",prm)
|
||||
}
|
||||
else{
|
||||
var msg = ""
|
||||
xerrors.forEach(function(value) {
|
||||
msg += '<v-alert :value="true" type="error">'+value+'</v-alert>'
|
||||
});
|
||||
this.msgdialogvalidation = xerrors
|
||||
this.dialogvalidation = true
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,141 @@
|
||||
<template>
|
||||
|
||||
<v-dialog
|
||||
v-model="dialog"
|
||||
max-width="30%"
|
||||
>
|
||||
<v-card>
|
||||
<v-card-title
|
||||
class="headline grey lighten-2 pt-2 pb-2"
|
||||
primary-title
|
||||
>
|
||||
Form Pemeriksaan
|
||||
</v-card-title>
|
||||
<v-card-text class="pt-2 pb-2">
|
||||
<v-layout>
|
||||
<v-flex style="padding-bottom:0" xs12>
|
||||
<v-checkbox
|
||||
v-model="cito"
|
||||
label="Cito"
|
||||
>Cito</v-checkbox>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
<v-layout row>
|
||||
<v-flex pr-2 xs12>
|
||||
<v-autocomplete
|
||||
label="Pemeriksaan"
|
||||
v-model="xselected_px"
|
||||
:items="xpxs"
|
||||
:search-input.sync="search"
|
||||
auto-select-first
|
||||
no-filter
|
||||
return-object
|
||||
item-text="pxname"
|
||||
:loading="is_loading"
|
||||
no-data-text="Pilih Pemeriksaan"
|
||||
>
|
||||
<template
|
||||
slot="item"
|
||||
slot-scope="{ item }"
|
||||
>
|
||||
<v-list-tile-content>
|
||||
<v-list-tile-title v-text="item.pxname"></v-list-tile-title>
|
||||
</v-list-tile-content>
|
||||
</template>
|
||||
|
||||
</v-autocomplete>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-card-text>
|
||||
<v-divider></v-divider>
|
||||
<v-card-actions>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn
|
||||
color="primary"
|
||||
flat
|
||||
@click="dialog = false"
|
||||
>
|
||||
Tutup
|
||||
</v-btn>
|
||||
<v-btn
|
||||
color="primary"
|
||||
flat
|
||||
@click="addPx()"
|
||||
>
|
||||
Tambahkan
|
||||
</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
data(){
|
||||
return {
|
||||
datatext : '',
|
||||
search : '',
|
||||
cito:false
|
||||
}
|
||||
},
|
||||
computed : {
|
||||
vtext : {
|
||||
get() {
|
||||
return this.datatext
|
||||
},
|
||||
set(val) {
|
||||
this.datatext = val
|
||||
}
|
||||
},
|
||||
dialog: {
|
||||
get() {
|
||||
return this.$store.state.px.dialog_px_is_active
|
||||
},
|
||||
set(val) {
|
||||
this.$store.commit('px/update_dialog_px_is_active',val)
|
||||
}
|
||||
},
|
||||
xselected_px: {
|
||||
get() {
|
||||
this.$store.state.px.selected_px
|
||||
},
|
||||
set(val) {
|
||||
this.$store.commit("px/update_selected_px",val)
|
||||
}
|
||||
},
|
||||
xpxs() {
|
||||
return this.$store.state.px.pxs
|
||||
},
|
||||
is_loading() {
|
||||
return this.$store.state.px.search_status == 1
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
addPx() {
|
||||
this.dialog = false
|
||||
var prm = {'id':0,'chex':false,'pxid':this.$store.state.px.selected_px.id,'flagcito':this.$store.state.px.selected_px.flagcito,'pxname':this.$store.state.px.selected_px.pxname,'bruto':this.$store.state.px.selected_px.bruto,'discount':this.$store.state.px.selected_px.discount,'total':this.$store.state.px.selected_px.total,'addon':true}
|
||||
this.cito = false
|
||||
this.search = ''
|
||||
this.datatext = ''
|
||||
this.$emit('add-data-px', prm)
|
||||
},
|
||||
thr_search: _.debounce( function () {
|
||||
this.$store.dispatch("px/search",this.cito)
|
||||
},2000)
|
||||
},
|
||||
watch: {
|
||||
search(val,old) {
|
||||
if (val == old ) return
|
||||
if (! val) return
|
||||
if (val.length < 1 ) return
|
||||
if (this.$store.state.px.search_status == 1 ) return
|
||||
this.$store.commit("px/update_search",val)
|
||||
this.thr_search()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,173 @@
|
||||
<template>
|
||||
<v-layout class="fill-height" column>
|
||||
<v-card class="mb-2 pa-2 searchbox">
|
||||
<v-layout >
|
||||
|
||||
<v-text-field class="xs3 ma-1"
|
||||
placeholder="No Lab"
|
||||
single-line
|
||||
outline
|
||||
v-model="nolab"
|
||||
hide-details
|
||||
></v-text-field>
|
||||
|
||||
<v-text-field class="xs6 ma-1"
|
||||
label=""
|
||||
placeholder="Nama"
|
||||
single-line
|
||||
outline
|
||||
v-model="name"
|
||||
hide-details
|
||||
></v-text-field>
|
||||
|
||||
<v-select class="xs6 ma-1" :items="statuses"
|
||||
item-text="name"
|
||||
return-object
|
||||
v-model="status"
|
||||
label="Status" outline hide-details></v-select>
|
||||
|
||||
|
||||
|
||||
<v-btn class="xs3 ma-1" color="success" @click="searchPatient" >Search</v-btn>
|
||||
|
||||
|
||||
</v-layout>
|
||||
</v-card>
|
||||
|
||||
|
||||
<v-card class="grow">
|
||||
|
||||
<v-data-table
|
||||
:headers="headers"
|
||||
:items="patients"
|
||||
:loading="isLoading"
|
||||
hide-actions class="elevation-1">
|
||||
<template slot="items" slot-scope="props">
|
||||
<td class="text-xs-left pa-2" v-bind:class="{'amber lighten-4':isSelected(props.item)}" @click="selectMe(props.item)">{{ props.item.M_PatientNoReg }}</td>
|
||||
<td class="pa-2" v-bind:class="{'amber lighten-4':isSelected(props.item)}" @click="selectMe(props.item)">{{ props.item.T_OrderHeaderLabNumber}}</td>
|
||||
<td class="text-xs-left pa-2" v-bind:class="{'amber lighten-4':isSelected(props.item)}" @click="selectMe(props.item)">{{ props.item.M_PatientName}}</td>
|
||||
<td class="text-xs-left pa-2" v-bind:class="{'amber lighten-4':isSelected(props.item)}" @click="selectMe(props.item)">{{ props.item.M_StatusName}}</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 = {
|
||||
mounted() {
|
||||
this.$store.dispatch("status/lookup")
|
||||
this.$store.dispatch("patient/search",{
|
||||
name:this.name,
|
||||
nolab: this.nolab,
|
||||
status: this.status.code
|
||||
})
|
||||
},
|
||||
methods : {
|
||||
isSelected(p) {
|
||||
return p.T_OrderHeaderID == this.$store.state.patient.selected_patient.T_OrderHeaderID
|
||||
},
|
||||
searchPatient() {
|
||||
this.$store.dispatch("patient/search",{
|
||||
name:this.name,
|
||||
nolab: this.nolab,
|
||||
status: this.status.code
|
||||
})
|
||||
},
|
||||
selectMe(pat) {
|
||||
this.$store.commit("patient/update_selected_patient",pat)
|
||||
this.$store.commit("verification/update_verification_patient",pat)
|
||||
this.$store.commit("verification/update_verification_doctor",pat)
|
||||
this.$store.commit("verification/update_verification_delivery",pat)
|
||||
this.$store.commit("verification/update_verification_payment",pat)
|
||||
this.$store.commit("verification/update_verification_supplies",pat)
|
||||
this.$store.commit("verification/update_verification_barcode",pat)
|
||||
this.$store.commit("verification/update_verification_company_mou",pat)
|
||||
this.$store.commit("verification/update_verification_px",pat)
|
||||
this.$store.dispatch("verificationdoctor/lookup",{
|
||||
ohid:this.$store.state.patient.selected_patient.ohid
|
||||
})
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
statuses() {
|
||||
return this.$store.state.status.statuses
|
||||
},
|
||||
status: {
|
||||
get() {
|
||||
return this.$store.state.status.selected_status
|
||||
},
|
||||
set(val) {
|
||||
this.$store.commit("status/update_selected_status",val)
|
||||
}
|
||||
},
|
||||
isLoading() {
|
||||
return this.$store.state.patient.search_status == 1
|
||||
},
|
||||
patients() {
|
||||
return this.$store.state.patient.patients
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
items: [],
|
||||
name: '',
|
||||
nolab: '',
|
||||
headers: [
|
||||
{
|
||||
text: "NO REG",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "15%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "NO LAB",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "lab",
|
||||
width: "15%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "NAMA",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "name",
|
||||
width: "25%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
|
||||
{
|
||||
text: "STATUS",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "status",
|
||||
width: "15%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
}
|
||||
],
|
||||
};
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,252 @@
|
||||
<template>
|
||||
<v-layout class="fill-height" column>
|
||||
<v-card class="mb-2 pa-2 searchbox">
|
||||
<v-layout >
|
||||
<v-text-field class="xs3 ma-1"
|
||||
placeholder="No Lab"
|
||||
single-line
|
||||
outline
|
||||
v-model="nolab"
|
||||
hide-details
|
||||
></v-text-field>
|
||||
|
||||
<v-text-field class="xs6 ma-1"
|
||||
label=""
|
||||
placeholder="Nama"
|
||||
single-line
|
||||
outline
|
||||
v-model="name"
|
||||
hide-details
|
||||
></v-text-field>
|
||||
|
||||
<v-select class="xs6 ma-1" :items="statuses"
|
||||
item-text="name"
|
||||
return-object
|
||||
v-model="status"
|
||||
label="Status" outline hide-details></v-select>
|
||||
<v-btn class="xs3 ma-1" color="success" @click="searchPatient" >Search</v-btn>
|
||||
</v-layout>
|
||||
</v-card>
|
||||
<v-card >
|
||||
<v-layout row>
|
||||
<v-flex xs12 pl-2 pr-2 pt-2 pb-2>
|
||||
<v-data-table
|
||||
:headers="headers"
|
||||
:items="patients"
|
||||
:loading="isLoading"
|
||||
hide-actions class="elevation-1">
|
||||
<template slot="items" slot-scope="props">
|
||||
<td class="text-xs-left pa-2" v-bind:class="{'amber lighten-4':isSelected(props.item)}" @click="selectMe(props.item)">{{ props.item.M_PatientNoReg }}</td>
|
||||
<td class="pa-2" v-bind:class="{'amber lighten-4':isSelected(props.item)}" @click="selectMe(props.item)">{{ props.item.T_OrderHeaderLabNumber}}</td>
|
||||
<td class="text-xs-left pa-2" v-bind:class="{'amber lighten-4':isSelected(props.item)}" @click="selectMe(props.item)">{{ props.item.M_PatientName}}</td>
|
||||
<td class="text-xs-left pa-2" v-bind:class="{'amber lighten-4':isSelected(props.item)}" @click="selectMe(props.item)">{{ props.item.M_StatusName}}</td>
|
||||
</template>
|
||||
</v-data-table>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-card>
|
||||
<one-dialog-alert :status="openalertverification" :msg="msgalertverification" @forget-dialog-alert="forgetAlertVerification()" @close-dialog-alert="closeAlertVerification()"></one-dialog-alert>
|
||||
<one-dialog-info :status="opendialogverification" :msg="msginfoverification" @close-dialog-info="closeInfoVerification()"></one-dialog-info>
|
||||
</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 = {
|
||||
components : {
|
||||
'one-dialog-info':httpVueLoader('../../common/oneDialogInfo.vue'),
|
||||
'one-dialog-alert':httpVueLoader('../../common/oneDialogAlert.vue')
|
||||
},
|
||||
mounted() {
|
||||
this.$store.dispatch("status/lookup")
|
||||
this.$store.dispatch("delivery/lookup")
|
||||
this.$store.dispatch("patient/search",{
|
||||
name:this.name,
|
||||
nolab: this.nolab,
|
||||
status: this.status.id
|
||||
})
|
||||
},
|
||||
methods : {
|
||||
isSelected(p) {
|
||||
return p.T_OrderHeaderID == this.$store.state.patient.selected_patient.T_OrderHeaderID
|
||||
},
|
||||
searchPatient() {
|
||||
this.$store.dispatch("patient/search",{
|
||||
name:this.name,
|
||||
nolab: this.nolab,
|
||||
status: this.status.id
|
||||
})
|
||||
},
|
||||
selectMe(pat) {
|
||||
//console.log(pat.verification_patient)
|
||||
if(this.$store.state.supplies.no_save == 0 && this.$store.state.patient.no_save == 0){
|
||||
this.$store.commit("patient/update_selected_patient",pat)
|
||||
this.$store.commit("verification/update_verification_patient",pat.verification_patient)
|
||||
this.$store.commit("verification/update_verification_doctor",pat.verification_doctor)
|
||||
this.$store.commit("verification/update_verification_delivery",pat.verification_delivery)
|
||||
this.$store.commit("verification/update_verification_payment",pat.verification_payment)
|
||||
this.$store.commit("verification/update_verification_supplies",pat.verification_supplies)
|
||||
this.$store.commit("verification/update_verification_barcode",pat.verification_barcode)
|
||||
this.$store.commit("verification/update_verification_company_mou",pat.verification_companymou)
|
||||
this.$store.commit("verification/update_verification_px",pat.verification_px)
|
||||
this.$store.commit("verification/update_verification_info",pat.verification_info)
|
||||
this.$store.commit("px/update_moucompany",pat)
|
||||
this.$store.commit("delivery/update_address_patient",pat.address_patient)
|
||||
this.$store.commit("delivery/update_address_doctor",pat.address_doctor)
|
||||
this.$store.commit("delivery/update_hp_patient",pat.M_PatientHP)
|
||||
this.$store.commit("delivery/update_hp_doctor",pat.M_DoctorHP)
|
||||
}
|
||||
else{
|
||||
if(this.$store.state.supplies.no_save !== 0){
|
||||
this.$store.commit("supplies/update_open_alert_supplies",true)
|
||||
}
|
||||
if(this.$store.state.patient.no_save !== 0){
|
||||
this.$store.commit("patient/update_open_alert_verification",true)
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
closeInfoVerification(){
|
||||
this.$store.commit("patient/update_open_dialog_verification",false)
|
||||
var oldArr = this.$store.state.patient.patients
|
||||
var idx = _.findIndex(oldArr, ['T_OrderHeaderID', this.$store.state.patient.selected_patient.T_OrderHeaderID])
|
||||
oldArr.splice(idx,1)
|
||||
if(oldArr.length > 0){
|
||||
var newArr = {'records':oldArr,'total':oldArr.length}
|
||||
this.$store.commit("patient/update_patients",newArr)
|
||||
this.$store.commit("patient/update_selected_patient",oldArr[0])
|
||||
this.$store.commit("verification/update_verification_patient",oldArr[0].verification_patient)
|
||||
this.$store.commit("verification/update_verification_doctor",oldArr[0].verification_doctor)
|
||||
this.$store.commit("verification/update_verification_delivery",oldArr[0].verification_delivery)
|
||||
this.$store.commit("verification/update_verification_payment",oldArr[0].verification_payment)
|
||||
this.$store.commit("verification/update_verification_supplies",oldArr[0].verification_supplies)
|
||||
this.$store.commit("verification/update_verification_barcode",oldArr[0].verification_barcode)
|
||||
this.$store.commit("verification/update_verification_company_mou",oldArr[0].verification_companymou)
|
||||
this.$store.commit("verification/update_verification_px",oldArr[0].verification_px)
|
||||
this.$store.commit("verification/update_verification_info",oldArr[0].verification_info)
|
||||
this.$store.commit("px/update_moucompany",oldArr[0])
|
||||
}else{
|
||||
var newArr = {'records':[],'total':0}
|
||||
this.$store.commit("patient/update_patients",newArr)
|
||||
this.$store.commit("patient/update_selected_patient",{})
|
||||
this.$store.commit("verification/update_verification_patient",[])
|
||||
this.$store.commit("verification/update_verification_doctor",[])
|
||||
this.$store.commit("verification/update_verification_delivery",[])
|
||||
this.$store.commit("verification/update_verification_payment",[])
|
||||
this.$store.commit("verification/update_verification_supplies",[])
|
||||
this.$store.commit("verification/update_verification_barcode",[])
|
||||
this.$store.commit("verification/update_verification_company_mou",[])
|
||||
this.$store.commit("verification/update_verification_px",[])
|
||||
this.$store.commit("verification/update_verification_info",null)
|
||||
this.$store.commit("px/update_moucompany",[])
|
||||
}
|
||||
},
|
||||
closeAlertVerification(){
|
||||
this.$store.commit("patient/update_open_alert_verification",false)
|
||||
},
|
||||
forgetAlertVerification(){
|
||||
this.$store.commit("patient/update_no_save",0)
|
||||
this.$store.commit("patient/update_open_alert_verification",false)
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
statuses() {
|
||||
return this.$store.state.status.statuses
|
||||
},
|
||||
status: {
|
||||
get() {
|
||||
return this.$store.state.status.selected_status
|
||||
},
|
||||
set(val) {
|
||||
this.$store.commit("status/update_selected_status",val)
|
||||
}
|
||||
},
|
||||
isLoading() {
|
||||
return this.$store.state.patient.search_status == 1
|
||||
},
|
||||
patients() {
|
||||
return this.$store.state.patient.patients
|
||||
},
|
||||
opendialogverification: {
|
||||
get() {
|
||||
return this.$store.state.patient.open_dialog_verification
|
||||
},
|
||||
set(val) {
|
||||
this.$store.commit("patient/update_open_dialog_verification",false)
|
||||
}
|
||||
},
|
||||
msginfoverification(){
|
||||
return this.$store.state.patient.msg_info_verification
|
||||
},
|
||||
openalertverification: {
|
||||
get() {
|
||||
return this.$store.state.patient.open_alert_verification
|
||||
},
|
||||
set(val) {
|
||||
this.$store.commit("patient/open_alert_verification",false)
|
||||
}
|
||||
},
|
||||
msgalertverification(){
|
||||
return this.$store.state.patient.msg_alert_verification
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
items: [],
|
||||
name: '',
|
||||
nolab: '',
|
||||
headers: [
|
||||
{
|
||||
text: "NO REG",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "15%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "NO LAB",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "lab",
|
||||
width: "15%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "NAMA",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "name",
|
||||
width: "25%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
|
||||
{
|
||||
text: "STATUS",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "status",
|
||||
width: "15%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
}
|
||||
],
|
||||
};
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,250 @@
|
||||
<template>
|
||||
<div>
|
||||
<v-layout row>
|
||||
<v-flex xs12 pb-2>
|
||||
<v-card >
|
||||
<v-subheader>
|
||||
DATA COMPANY MOU
|
||||
</v-subheader>
|
||||
<v-divider></v-divider>
|
||||
<v-flex pt-2 xs12>
|
||||
<v-layout>
|
||||
<v-flex xs6 pl-5 pr-3>
|
||||
<v-text-field
|
||||
label="Nama Company"
|
||||
placeholder=""
|
||||
:value="getField(patient.M_CompanyName)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
<v-flex xs6 pl-5 pr-3>
|
||||
<v-text-field
|
||||
label="MOU"
|
||||
placeholder=""
|
||||
:value="getField(patient.mou)"
|
||||
readonly
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
<v-flex xs12 pb-2>
|
||||
<v-layout row wrap>
|
||||
<v-flex xs6 pa-2 v-for="(vcm,idx) in vcompanymou" :key="vcm.id">
|
||||
<one-field-verification-patient-doctor
|
||||
:xdatalabel="vcm.label"
|
||||
:xdatacbx="vcm.chex"
|
||||
:xdatatxt="vcm.note"
|
||||
@update-data-txt="(val) => updateDataTxtParentCompanyMou(idx,val)"
|
||||
@update-data-cbx="(val) => updateDataCbxParentCompanyMou(idx,val)"
|
||||
></one-field-verification-patient-doctor>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-card>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
<v-layout class="fill-height" row>
|
||||
<v-flex xs12>
|
||||
<v-card class="pa-1 grow">
|
||||
<v-subheader red--text text--lighten-1> DATA PEMERIKSAAN
|
||||
<v-flex text-md-right>
|
||||
<v-btn v-if="vlaststatus === '2'" small @click="openDialogPx()" color="primary">Tambah Pemeriksaan</v-btn>
|
||||
<one-verification-dialog-px @add-data-px="(cval) => updateDataParentPx(cval)"></one-verification-dialog-px>
|
||||
</v-flex>
|
||||
</v-subheader>
|
||||
<v-divider></v-divider>
|
||||
<v-layout row wrap>
|
||||
<v-flex xs12 class="pt-2">
|
||||
<v-layout row wrap>
|
||||
<v-flex class="border-bottom-dashed" xs12 pt-2 pl-4 pr-4 pb-4>
|
||||
<table>
|
||||
<tr>
|
||||
<th width="5%" class="text-md-center pt-2 pb-2">#</th>
|
||||
<th width="8%" class="text-md-center pt-2 pb-2"> CITO </th>
|
||||
<th class="text-md-center pt-2 pb-2">PEMERIKSAAN</th>
|
||||
<th class="text-md-center pt-2 pb-2">BRUTO</th>
|
||||
<th class="text-md-center pt-2 pb-2">DISKON</th>
|
||||
<th class="text-md-center pt-2 pb-2">TOTAL</th>
|
||||
</tr>
|
||||
<tr class="mini-input" v-for="(vpx,idx) in vtest">
|
||||
<td style="text-align:center;vertical-align:center;" align="center">
|
||||
|
||||
<v-checkbox v-if="vpx.addon == false"
|
||||
v-model="vpx.chex"
|
||||
@change="updateDataCbxParentPx(idx,vpx.chex)"
|
||||
class="pa-0" >
|
||||
</v-checkbox>
|
||||
<v-icon v-else-if="vpx.addon == true" color="red" @click="deleteDataParentPx(idx)">delete</v-icon>
|
||||
</td>
|
||||
<td style="text-align:center;vertical-align:center;" align="center" > <v-icon v-if="vpx.flagcito == 'Y'" large color="green darken-2">check</v-icon></td>
|
||||
<td class="text-md-left pl-3">{{vpx.pxname}}</td>
|
||||
<td class="text-md-right pr-2">{{convertMoney(vpx.bruto)}}</td>
|
||||
<td class="text-md-right pr-2">{{convertMoney(vpx.discount)}}</td>
|
||||
<td class="text-md-right pr-2">{{convertMoney(vpx.total)}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs12 class="pl-4 pr-4 pt-2">
|
||||
<v-layout row wrap>
|
||||
<v-flex xs12 pl-2 pt-2 pb-2 v-for="(vi,idx) in vinfo" :key="vi.id">
|
||||
<one-field-verification-patient-doctor
|
||||
:xdatalabel="vi.label"
|
||||
:xdatacbx="vi.chex"
|
||||
:xdatatxt="vi.note"
|
||||
@update-data-txt="(val) => updateDataTxtParentInfo(idx,val)"
|
||||
@update-data-cbx="(val) => updateDataCbxParentInfo(idx,val)"
|
||||
></one-field-verification-patient-doctor>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
|
||||
|
||||
</v-layout>
|
||||
</v-card>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
table {
|
||||
font-family: arial, sans-serif;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
background:white;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
th, td {
|
||||
border: 1px solid black;
|
||||
border-collapse: collapse;
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
table>tr>td {
|
||||
padding: 8px;
|
||||
}
|
||||
table>tr>td:first {
|
||||
padding-left:15px!important;
|
||||
}
|
||||
.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;
|
||||
}
|
||||
|
||||
.border-bottom-dashed{
|
||||
border-bottom : 1px dashed rgba(0,0,0,.12);
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
module.exports = {
|
||||
components : {
|
||||
'one-fo-verification-mou-px-curr-order' : httpVueLoader('./oneFoVerificationMouPxCurrOrder.vue'),
|
||||
'one-fo-verification-mou-px-add-order' : httpVueLoader('./oneFoVerificationMouPxAddOrder.vue'),
|
||||
'one-field-verification' : httpVueLoader('./oneFieldVerification.vue'),
|
||||
'one-field-verification-patient-doctor':httpVueLoader('../../common/oneFieldVerificationPatientDoctor.vue'),
|
||||
'one-verification-dialog-px' : httpVueLoader('./oneFoVerificationDialogPx.vue')
|
||||
},
|
||||
methods: {
|
||||
getField(inp) {
|
||||
if ( this.patient != undefined) {
|
||||
return inp
|
||||
}
|
||||
return ''
|
||||
},
|
||||
updateDataTxtParentCompanyMou(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_txt_parent_company_mou",prm)
|
||||
},
|
||||
updateDataCbxParentCompanyMou(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_cbx_parent_company_mou",prm)
|
||||
var xcount = this.$store.state.patient.no_save + 1
|
||||
this.$store.commit("patient/update_no_save",xcount)
|
||||
},
|
||||
updateDataTxtParentInfo(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_txt_parent_info",prm)
|
||||
},
|
||||
updateDataCbxParentInfo(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_cbx_parent_info",prm)
|
||||
var xcount = this.$store.state.patient.no_save + 1
|
||||
this.$store.commit("patient/update_no_save",xcount)
|
||||
},
|
||||
updateDataCbxParentPx(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_cbx_parent_px",prm)
|
||||
var xcount = this.$store.state.patient.no_save + 1
|
||||
this.$store.commit("patient/update_no_save",xcount)
|
||||
},
|
||||
deleteDataParentPx(idx){
|
||||
var inx = parseInt(idx);
|
||||
var oldArr = this.$store.state.patient.selected_patient
|
||||
oldArr.verification_px.splice(inx,1)
|
||||
|
||||
this.$store.commit("patient/update_selected_patient",oldArr)
|
||||
},
|
||||
openDialogPx(){
|
||||
this.$store.commit('px/update_dialog_px_is_active',true)
|
||||
},
|
||||
updateDataParentPx(valx){
|
||||
//console.log(valx)
|
||||
var oldArr = this.$store.state.patient.selected_patient
|
||||
oldArr.verification_px.push(valx)
|
||||
this.$store.commit("patient/update_selected_patient",oldArr)
|
||||
this.$store.commit("px/update_search","")
|
||||
this.$store.commit("px/update_pxs",{})
|
||||
this.$store.commit("px/update_selected_px",{})
|
||||
this.$store.commit("px/update_search_status",0)
|
||||
var xcount = this.$store.state.patient.no_save + 1
|
||||
this.$store.commit("patient/update_no_save",xcount)
|
||||
},
|
||||
companyChange : function(val) {
|
||||
if (val == true)
|
||||
this.n_company_false = "";
|
||||
console.log(val)
|
||||
|
||||
},
|
||||
convertMoney(money){
|
||||
return one_money(money)
|
||||
}
|
||||
},
|
||||
computed : {
|
||||
vlaststatus() {
|
||||
return this.$store.state.patient.selected_patient.check_status
|
||||
},
|
||||
patient() {
|
||||
return this.$store.state.patient.selected_patient
|
||||
},
|
||||
vcompanymou() {
|
||||
return this.$store.state.verification.verification_companymou
|
||||
},
|
||||
vtest() {
|
||||
return this.$store.state.verification.verification_px
|
||||
},
|
||||
vinfo() {
|
||||
return this.$store.state.verification.verification_info
|
||||
},
|
||||
__company () {
|
||||
return this.$data._company;
|
||||
},
|
||||
|
||||
__mou () {
|
||||
return this.$data._mou;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,88 @@
|
||||
|
||||
<template>
|
||||
<v-card flat>
|
||||
<v-data-table :headers="headers" :items="orders"
|
||||
:loading="isLoading"
|
||||
hide-actions class="elevation-1">
|
||||
<template slot="items" slot-scope="props">
|
||||
<td class="text-xs-left pa-2" >
|
||||
<v-btn color="red" dark class="pt-0 pb-0 pl-1 pr-1 mt-0 mb-0 mr-2 ml-0" small>
|
||||
<v-icon dark>delete</v-icon>
|
||||
</v-btn>
|
||||
{{ props.item.px }}</td>
|
||||
<td class="text-xs-right pa-2" >{{ props.item.bruto }}</td>
|
||||
<td class="text-xs-right pa-2">{{ props.item.disc }}</td>
|
||||
<td class="text-xs-right pa-2">{{ props.item.total }}</td>
|
||||
</template>
|
||||
|
||||
</v-data-table>
|
||||
</v-card>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
table.v-table tbody td,table.v-table tbody th {
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
table.v-table thead tr {
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.v-btn {
|
||||
min-width: auto;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
data () {
|
||||
return {
|
||||
headers: [
|
||||
{
|
||||
text: "PEMERIKSAAN",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "px",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "BRUTO",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "bruto",
|
||||
width: "25%",
|
||||
class: "text-xs-right pa-2 blue lighten-3 white--text",
|
||||
width: "15%"
|
||||
},
|
||||
{
|
||||
text: "DISKON",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "disc",
|
||||
class: "text-xs-right pa-2 blue lighten-3 white--text",
|
||||
width: "15%"
|
||||
},
|
||||
{
|
||||
text: "TOTAL",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "total",
|
||||
class: "text-xs-right pa-2 blue lighten-3 white--text",
|
||||
width: "15%"
|
||||
}
|
||||
],
|
||||
query : "",
|
||||
|
||||
isLoading: true,
|
||||
orders: [
|
||||
// {"px":"Hemoglobin", "bruto":"30,000", "disc":"10,000", "total":"20,000"},
|
||||
// {"px":"Trombosit", "bruto":"30,000", "disc":"10,000", "total":"20,000"},
|
||||
// {"px":"Eritrosit", "bruto":"30,000", "disc":"10,000", "total":"20,000"},
|
||||
{"px":"SGOT", "bruto":"30,000", "disc":"10,000", "total":"20,000"},
|
||||
{"px":"SGPT", "bruto":"30,000", "disc":"10,000", "total":"20,000"},
|
||||
{"px":"Urine Lengkap", "bruto":"30,000", "disc":"10,000", "total":"20,000"}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,83 @@
|
||||
|
||||
<template>
|
||||
<v-card flat>
|
||||
<v-data-table :headers="headers" :items="orders"
|
||||
:loading="isLoading"
|
||||
hide-actions class="elevation-1">
|
||||
<template slot="items" slot-scope="props">
|
||||
<td class="text-xs-left pa-2" >
|
||||
|
||||
<v-checkbox :label="`${props.item.px}`"></v-checkbox>
|
||||
</td>
|
||||
<td class="text-xs-right pa-2" >{{ props.item.bruto }}</td>
|
||||
<td class="text-xs-right pa-2">{{ props.item.disc }}</td>
|
||||
<td class="text-xs-right pa-2">{{ props.item.total }}</td>
|
||||
</template>
|
||||
|
||||
</v-data-table>
|
||||
</v-card>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
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 {
|
||||
headers: [
|
||||
{
|
||||
text: "PEMERIKSAAN",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "px",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "BRUTO",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "bruto",
|
||||
width: "25%",
|
||||
class: "text-xs-right pa-2 blue lighten-3 white--text",
|
||||
width: "15%"
|
||||
},
|
||||
{
|
||||
text: "DISKON",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "disc",
|
||||
class: "text-xs-right pa-2 blue lighten-3 white--text",
|
||||
width: "15%"
|
||||
},
|
||||
{
|
||||
text: "TOTAL",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "total",
|
||||
class: "text-xs-right pa-2 blue lighten-3 white--text",
|
||||
width: "15%"
|
||||
}
|
||||
],
|
||||
query : "",
|
||||
|
||||
isLoading: true,
|
||||
orders: [
|
||||
{"px":"Hemoglobin", "bruto":"30,000", "disc":"10,000", "total":"20,000"},
|
||||
{"px":"Trombosit", "bruto":"30,000", "disc":"10,000", "total":"20,000"},
|
||||
{"px":"Eritrosit", "bruto":"30,000", "disc":"10,000", "total":"20,000"},
|
||||
// {"px":"SGOT", "bruto":"30,000", "disc":"10,000", "total":"20,000"},
|
||||
// {"px":"SGPT", "bruto":"30,000", "disc":"10,000", "total":"20,000"},
|
||||
// {"px":"Urine Lengkap", "bruto":"30,000", "disc":"10,000", "total":"20,000"}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,43 @@
|
||||
<template>
|
||||
|
||||
<div>
|
||||
<v-card>
|
||||
<v-btn class= "button parallelogram" color="success">Pasien Dokter</v-btn>
|
||||
<v-btn class= "button parallelogram" color="warning">MOU </v-btn>
|
||||
<v-btn class= "button parallelogram" color="error">Kirim Hasil </v-btn>
|
||||
<v-btn class= "button parallelogram" color="info"> Barcode</v-btn>
|
||||
</v-card>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
.v-card{
|
||||
text-align: center;
|
||||
}
|
||||
.v-btn__content{
|
||||
margin-top : -10px;
|
||||
}
|
||||
.button {
|
||||
|
||||
padding: 30px 16px;
|
||||
width : 20%;
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
.parallelogram{
|
||||
transform: skew(-20deg);
|
||||
|
||||
}
|
||||
|
||||
.v-btn {
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
</style>
|
||||
<script>
|
||||
module.exports = {
|
||||
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,88 @@
|
||||
<template>
|
||||
<v-layout column mb-2 >
|
||||
<v-card>
|
||||
<v-subheader>
|
||||
DATA SUPPLIES
|
||||
<v-flex text-md-right>
|
||||
<v-btn v-if="btnsaveseen" small @click="saveSupplies()" color="primary">Simpan</v-btn>
|
||||
<v-progress-linear v-if="pgrssave" :indeterminate="true"></v-progress-linear>
|
||||
<one-dialog-alert :status="openalertsupplies" :msg="msgalertsupplies" @forget-dialog-alert="forgetAlertSupplies()" @close-dialog-alert="closeAlertSupplies()"></one-dialog-alert>
|
||||
</v-flex>
|
||||
</v-subheader>
|
||||
<v-divider></v-divider>
|
||||
<v-layout row wrap>
|
||||
<v-flex xs4 pa-2 v-for="(vs,idx) in vsupplies" :key="vs.id">
|
||||
<one-field-verification-supply
|
||||
:xdatalabel="vs.name"
|
||||
:xdatacbx="vs.chex"
|
||||
:xdatatxt="vs.qty"
|
||||
@update-data-txt="(val) => updateDataTxtParentSupplies(idx,val)"
|
||||
@update-data-cbx="(val) => updateDataCbxParentSupplies(idx,val)"
|
||||
></one-field-verification-supply>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-card>
|
||||
</v-layout>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.v-messages, .v-text-field__details{
|
||||
min-height:0px!important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
components : {
|
||||
'one-field-verification-supply':httpVueLoader('../../common/oneFieldVerificationSupply.vue'),
|
||||
'one-dialog-alert':httpVueLoader('../../common/oneDialogAlert.vue')
|
||||
},
|
||||
computed: {
|
||||
vsupplies() {
|
||||
return this.$store.state.verification.verification_supplies
|
||||
},
|
||||
openalertsupplies: {
|
||||
get() {
|
||||
return this.$store.state.supplies.open_alert_supplies
|
||||
},
|
||||
set(val) {
|
||||
this.$store.commit("supplies/open_alert_supplies",false)
|
||||
}
|
||||
},
|
||||
msgalertsupplies(){
|
||||
return this.$store.state.supplies.msg_alert_supplies
|
||||
},
|
||||
btnsaveseen(){
|
||||
return this.$store.state.supplies.btn_save_seen
|
||||
},
|
||||
pgrssave(){
|
||||
return this.$store.state.supplies.pgrs_save
|
||||
}
|
||||
},
|
||||
methods : {
|
||||
updateDataTxtParentSupplies(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
this.$store.commit("verification/update_testing_txt_parent_supplies",prm)
|
||||
},
|
||||
updateDataCbxParentSupplies(idx, val) {
|
||||
var prm = {idx:idx,val:val}
|
||||
var xcount = this.$store.state.supplies.no_save + 1
|
||||
this.$store.commit("verification/update_testing_cbx_parent_supplies",prm)
|
||||
this.$store.commit("supplies/update_no_save",xcount)
|
||||
},
|
||||
saveSupplies(){
|
||||
var orderid = this.$store.state.patient.selected_patient.T_OrderHeaderID
|
||||
var prm = {orderid: orderid, supplies:this.$store.state.verification.verification_supplies,barcode:this.$store.state.verification.verification_barcode}
|
||||
console.log(prm)
|
||||
this.$store.dispatch("supplies/save",prm)
|
||||
},
|
||||
closeAlertSupplies(){
|
||||
this.$store.commit("supplies/update_open_alert_supplies",false)
|
||||
},
|
||||
forgetAlertSupplies(){
|
||||
this.$store.commit("supplies/update_no_save",0)
|
||||
this.$store.commit("supplies/update_open_alert_supplies",false)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,58 @@
|
||||
<template>
|
||||
<v-card class="mb-2 one-fo-tab">
|
||||
|
||||
<v-layout style="border-top: 0.6px solid red;" justify-center >
|
||||
<div class="btn-group">
|
||||
<button @click="changeTo('pasien-dokter')" class="button" v-bind:class="{ 'active': tab_selected('pasien-dokter')}">Pasien <br/> Dokter</button>
|
||||
<button @click="changeTo('mou-px')" class="button" v-bind:class="{ 'active': tab_selected('mou-px')}">MOU <br/> Pemeriksaan</button>
|
||||
<button @click="changeTo('delivery-payment')" class="button" v-bind:class="{ 'active': tab_selected('delivery-payment')}">Kirim Hasil <br/> Pembayaran</button>
|
||||
<button @click="changeTo('barcode-supplies')" class="button" v-bind:class="{ 'active': tab_selected('barcode-supplies')}">Supplies <br/> Barcode</button>
|
||||
</div>
|
||||
</v-layout>
|
||||
</v-card>
|
||||
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.btn-group .button {
|
||||
text-transform: uppercase;
|
||||
border: 1px solid #ffff;
|
||||
color: black;
|
||||
height:83px;
|
||||
width:150px;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
font-size: 16px;
|
||||
font-weight:500;
|
||||
cursor: pointer;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.btn-group .button:hover {
|
||||
background-color: #E0F7FA;
|
||||
border-bottom: 2px solid #ff1604;
|
||||
|
||||
}
|
||||
|
||||
.btn-group .button.active {
|
||||
border-bottom: 2px solid #ff1604;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
methods: {
|
||||
tab_selected : function(tab) {
|
||||
return this.$store.state.tab_selected == tab
|
||||
},
|
||||
changeTo : function(tab) {
|
||||
this.$store.dispatch('change_tab',tab)
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,312 @@
|
||||
<template>
|
||||
|
||||
<v-dialog
|
||||
v-model="dialog"
|
||||
max-width="40%"
|
||||
>
|
||||
<v-card>
|
||||
<v-card-title
|
||||
class="headline grey lighten-2 pt-2 pb-2"
|
||||
primary-title
|
||||
>
|
||||
Form Pengiriman
|
||||
</v-card-title>
|
||||
<v-card-text class="pt-2 pb-2">
|
||||
<v-layout row>
|
||||
<v-flex xs12 d-flex>
|
||||
<v-select
|
||||
v-model="selected_type_delivery"
|
||||
:items="type_delivery"
|
||||
item-text = "name"
|
||||
return-object
|
||||
label="Type Delivery"
|
||||
>
|
||||
<template
|
||||
slot="item"
|
||||
slot-scope="{ item }"
|
||||
>
|
||||
<v-list-tile-content>
|
||||
<v-list-tile-title v-text="item.name"></v-list-tile-title>
|
||||
</v-list-tile-content>
|
||||
</template>
|
||||
</v-select>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
<v-layout row>
|
||||
<v-flex xs12 d-flex>
|
||||
<v-layout row v-if="selected_type_delivery.type == 'EMAIL'">
|
||||
<v-flex pb-1 xs12>
|
||||
<v-layout row>
|
||||
<v-flex pt-2 xs12 >
|
||||
<v-text-field
|
||||
v-model="vtext"
|
||||
label="Alamat email"
|
||||
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
<v-layout row v-if="selected_type_delivery.type == 'WHATSAPP' && selected_type_delivery.source == 'PATIENT'">
|
||||
<v-flex pb-1 xs12>
|
||||
<v-layout row>
|
||||
<v-flex pt-2 xs12 >
|
||||
<v-text-field
|
||||
:value="xhp_patient"
|
||||
label="Nomor Whatsapp"
|
||||
readonly="true"
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
<v-layout row v-if="selected_type_delivery.type == 'WHATSAPP' && selected_type_delivery.source == 'DOCTOR'">
|
||||
<v-flex pb-1 xs12>
|
||||
<v-layout row>
|
||||
<v-flex pt-2 xs12 >
|
||||
<v-text-field
|
||||
:value="xhp_doctor"
|
||||
label="Nomor Whatsapp"
|
||||
readonly="true"
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
<v-layout row v-if="selected_type_delivery.type == 'TELEGRAM' && selected_type_delivery.source == 'DOCTOR'">
|
||||
<v-flex pb-1 xs12>
|
||||
<v-layout row>
|
||||
<v-flex pt-2 xs12 >
|
||||
<v-text-field
|
||||
:value="xhp_doctor"
|
||||
label="Nomor Whatsapp"
|
||||
readonly="true"
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
<v-layout row v-if="selected_type_delivery.type == 'TELEGRAM' && selected_type_delivery.source == 'PATIENT'">
|
||||
<v-flex pb-1 xs12>
|
||||
<v-layout row>
|
||||
<v-flex pt-2 xs12 >
|
||||
<v-text-field
|
||||
:value="xhp_patient"
|
||||
label="Nomor Whatsapp"
|
||||
readonly="true"
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
<v-layout row v-else-if="selected_type_delivery.id== 2">
|
||||
<v-flex pb-1 xs12>
|
||||
<v-layout row>
|
||||
<v-flex pt-2 pr-2 xs12>
|
||||
<v-select
|
||||
item-text="description"
|
||||
return-object
|
||||
:items="xaddress_patient"
|
||||
v-model="xselected_patient_address"
|
||||
label="Alamat Pasien"
|
||||
></v-select>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
<v-layout row v-else-if="selected_type_delivery.id == 4">
|
||||
<v-flex pb-1 xs12>
|
||||
<v-layout row>
|
||||
<v-flex pt-2 pr-2 xs12>
|
||||
<v-select
|
||||
item-text="description"
|
||||
return-object
|
||||
:items="xaddress_doctor"
|
||||
v-model="xselected_doctor_address"
|
||||
label="Alamat Dokter"
|
||||
></v-select>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</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="primary"
|
||||
flat
|
||||
@click="dialog = false"
|
||||
>
|
||||
Tutup
|
||||
</v-btn>
|
||||
<v-btn
|
||||
color="primary"
|
||||
flat
|
||||
@click="addDelivery()"
|
||||
>
|
||||
Tambahkan
|
||||
</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
data(){
|
||||
return {
|
||||
vilageid:0,
|
||||
datatext : '',
|
||||
search : '',
|
||||
selected_patient_address:{},
|
||||
selected_doctor_address:{},
|
||||
opt_address :[{name:'Patient',value:'patient'},{name:'Doctor',value:'doctor'}],
|
||||
selected_address_type:''
|
||||
}
|
||||
},
|
||||
computed : {
|
||||
type_delivery() {
|
||||
return this.$store.state.delivery.deliveries
|
||||
},
|
||||
xaddress_patient() {
|
||||
return this.$store.state.delivery.address_patient
|
||||
},
|
||||
xhp_patient() {
|
||||
return this.$store.state.delivery.hp_patient
|
||||
},
|
||||
xaddress_doctor() {
|
||||
return this.$store.state.delivery.address_doctor
|
||||
},
|
||||
xhp_doctor() {
|
||||
return this.$store.state.delivery.hp_doctor
|
||||
},
|
||||
selected_type_delivery : {
|
||||
get() {
|
||||
return this.$store.state.delivery.selected_delivery
|
||||
},
|
||||
set(val) {
|
||||
this.$store.commit("delivery/update_selected_delivery",val)
|
||||
}
|
||||
},
|
||||
xselected_patient_address : {
|
||||
get() {
|
||||
return this.selected_patient_address
|
||||
},
|
||||
set(val) {
|
||||
this.selected_patient_address = val
|
||||
}
|
||||
},
|
||||
xselected_doctor_address : {
|
||||
get() {
|
||||
return this.selected_doctor_address
|
||||
},
|
||||
set(val) {
|
||||
this.selected_doctor_address = val
|
||||
}
|
||||
},
|
||||
vtext : {
|
||||
get() {
|
||||
return this.datatext
|
||||
},
|
||||
set(val) {
|
||||
this.datatext = val
|
||||
}
|
||||
},
|
||||
dialog: {
|
||||
get() {
|
||||
return this.$store.state.verification.dialog_delivery_is_active
|
||||
},
|
||||
set(val) {
|
||||
this.$store.commit('verification/update_dialog_delivery_is_active',val)
|
||||
}
|
||||
},
|
||||
xselected_vilage: {
|
||||
get() {
|
||||
this.$store.state.vilage.selected_vilage
|
||||
},
|
||||
set(val) {
|
||||
this.$store.commit("vilage/update_selected_vilage",val)
|
||||
}
|
||||
},
|
||||
xvilages() {
|
||||
return this.$store.state.vilage.vilages
|
||||
},
|
||||
is_loading() {
|
||||
return this.$store.state.vilage.search_status == 1
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
addDelivery() {
|
||||
this.dialog = false
|
||||
var vid = 0
|
||||
var destination = this.datatext
|
||||
var xcode = this.selected_type_delivery.code
|
||||
this.datatext = ''
|
||||
var addressid = 0
|
||||
var vilageid = 0
|
||||
if(this.selected_type_delivery.id === '2' || this.selected_type_delivery.id === 2){
|
||||
var addr = this.selected_patient_address
|
||||
addressid = addr.id
|
||||
vilageid = addr.vilageid
|
||||
//destination = addr.description
|
||||
}
|
||||
else if(this.selected_type_delivery.id === '4' || this.selected_type_delivery.id === 4){
|
||||
var addr = this.selected_doctor_address
|
||||
addressid = addr.id
|
||||
vilageid = addr.vilageid
|
||||
destination = addr.description
|
||||
}
|
||||
else if(this.selected_type_delivery.id === '6' || this.selected_type_delivery.id === 6){
|
||||
addressid = 0
|
||||
vilageid = 0
|
||||
destination = this.xhp_patient
|
||||
}
|
||||
else if(this.selected_type_delivery.id === '8' || this.selected_type_delivery.id === 8){
|
||||
addressid = 0
|
||||
vilageid = 0
|
||||
destination = this.xhp_patient
|
||||
}
|
||||
else if(this.selected_type_delivery.id === '7' || this.selected_type_delivery.id === 7){
|
||||
addressid = 0
|
||||
vilageid = 0
|
||||
destination = this.xhp_doctor
|
||||
}
|
||||
else if(this.selected_type_delivery.id === '9' || this.selected_type_delivery.id === 9){
|
||||
addressid = 0
|
||||
vilageid = 0
|
||||
destination = this.xhp_doctor
|
||||
}
|
||||
|
||||
if(this.selected_type_delivery.type == 'PICKUP')
|
||||
var xlabel = this.selected_type_delivery.name
|
||||
else
|
||||
var xlabel = this.selected_type_delivery.name+' : '+destination
|
||||
|
||||
var prm = {
|
||||
id:vid,
|
||||
xid:0,
|
||||
code:xcode,
|
||||
chex:true,
|
||||
deliveryid:this.selected_type_delivery.id,
|
||||
typedeliveryid:this.selected_type_delivery.typeid,
|
||||
addressid:addressid,
|
||||
vilageid:vilageid,
|
||||
note:'',
|
||||
type:'indigo',
|
||||
label:xlabel,
|
||||
destination:destination
|
||||
}
|
||||
|
||||
this.$store.commit("vilage/update_selected_vilage",{})
|
||||
this.$emit('add-data-delivery', prm)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
28
test/vuex/one-fo-verification/components/pasienSearch.vue
Normal file
28
test/vuex/one-fo-verification/components/pasienSearch.vue
Normal file
@@ -0,0 +1,28 @@
|
||||
<template>
|
||||
<v-layout row wrap>
|
||||
<v-flex xs6 class="left">
|
||||
<v-layout column wrap fill-height>
|
||||
<search-box></search-box>
|
||||
<v-flex grow class="searchresult">
|
||||
search result
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.searchresult {
|
||||
background-color:red;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
components : {
|
||||
'search-box' : httpVueLoader('./searchBoxV3.vue')
|
||||
}
|
||||
}
|
||||
</script>
|
||||
102
test/vuex/one-fo-verification/components/patientSearchBox.vue
Normal file
102
test/vuex/one-fo-verification/components/patientSearchBox.vue
Normal file
@@ -0,0 +1,102 @@
|
||||
<template>
|
||||
<v-card class="fill-height ">
|
||||
<v-layout>
|
||||
<v-flex xs3 pa-1>
|
||||
<v-text-field
|
||||
label="Search"
|
||||
placeholder="No Lab"
|
||||
single-line
|
||||
@change="nolab"
|
||||
outline
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
<v-flex xs6 pa-1>
|
||||
<v-text-field
|
||||
label=""
|
||||
placeholder="Nama"
|
||||
v-model="name"
|
||||
single-line
|
||||
outline
|
||||
></v-text-field>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs6 pa-1>
|
||||
<v-select
|
||||
:items="items"
|
||||
label="Status"
|
||||
v-model="status"
|
||||
outline
|
||||
></v-select>
|
||||
</v-flex>
|
||||
|
||||
<v-flex xs3>
|
||||
<v-btn @click="searchPasien()" color="success" class="mr-1 ml-1">Search</v-btn>
|
||||
|
||||
</v-flex>
|
||||
</v-layout>
|
||||
|
||||
</v-card>
|
||||
</template>
|
||||
<style scoped>
|
||||
.v-btn {
|
||||
min-width: auto;
|
||||
}
|
||||
|
||||
.v-input__slot {
|
||||
margin-bottom: 0px !important;
|
||||
}
|
||||
|
||||
.v-messages {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.v-text-field--box>.v-input__control>.v-input__slot,.v-text-field--full-width>.v-input__control>.v-input__slot,.v-text-field--outline>.v-input__control>.v-input__slot {
|
||||
min-height: 44px;
|
||||
}
|
||||
|
||||
.v-text-field--box.v-text-field--single-line input,.v-text-field--full-width.v-text-field--single-line input,.v-text-field--outline.v-text-field--single-line input {
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
.v-input__control{
|
||||
height: 10px;
|
||||
}
|
||||
.v-btn {
|
||||
margin : 10px
|
||||
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
module.exports = {
|
||||
methods: {
|
||||
searchPasien() {
|
||||
this.$store.dispatch('patient/search')
|
||||
},
|
||||
nolab(val) {
|
||||
this.$store.commit("patient/update_nolab",val)
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
||||
name: {
|
||||
get() {
|
||||
return this.$store.state.patient.name
|
||||
},
|
||||
set(val) {
|
||||
this.$store.commit('patient/update_name',val)
|
||||
}
|
||||
},
|
||||
status: {
|
||||
get() {
|
||||
return this.$store.state.patient.status
|
||||
},
|
||||
set(val) {
|
||||
this.$store.commit('patient/update_status',val)
|
||||
}
|
||||
}
|
||||
},
|
||||
components : {
|
||||
'patient-search-dialog': httpVueLoader('./patientSearchDialog.vue')
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,86 @@
|
||||
<template>
|
||||
<v-card class="fill-height " >
|
||||
|
||||
<v-data-table :headers="headers" :items="patients"
|
||||
:loading="isLoading"
|
||||
hide-actions class="elevation-1">
|
||||
<template slot="items" slot-scope="props">
|
||||
<td class="text-xs-left pa-2" v-bind:class="{'amber lighten-4':props.item.selected}" @click="selectMe(props.item)">{{ props.item.mr }}</td>
|
||||
<td class="pa-2" v-bind:class="{'amber lighten-4':props.item.selected}" @click="selectMe(props.item)">{{ props.item.lab}}</td>
|
||||
<td class="text-xs-left pa-2" v-bind:class="{'amber lighten-4':props.item.selected}" @click="selectMe(props.item)">{{ props.item.name }}</td>
|
||||
<td class="text-xs-left pa-2" v-bind:class="{'amber lighten-4':props.item.selected}" @click="selectMe(props.item)">{{ props.item.status }}</td>
|
||||
</template>
|
||||
|
||||
</v-data-table>
|
||||
</v-card>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
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: "",
|
||||
headers: [
|
||||
{
|
||||
text: "NO REG",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "mr",
|
||||
width: "15%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "NO LAB",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "lab",
|
||||
width: "15%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
{
|
||||
text: "NAMA",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "name",
|
||||
width: "25%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
},
|
||||
|
||||
{
|
||||
text: "STATUS",
|
||||
align: "left",
|
||||
sortable: false,
|
||||
value: "status",
|
||||
width: "15%",
|
||||
class: "pa-2 blue lighten-3 white--text"
|
||||
}
|
||||
],
|
||||
|
||||
|
||||
isLoading: true,
|
||||
patients: [
|
||||
{"status":"Data Verified","lab":"08000198909", "mr": "MR-18107237", "name": "Pasien Umum", "sex": "Perempuan", "address": "Klero\r\nKabupaten Semarang", "action":"", "dob":"19-09-1992", "selected":false},
|
||||
{"status":"Payment Verified","lab":"08000198111", "mr": "MR-18107238", "name": "Heri Suryawan", "sex": "Laki - laki", "address": "Ampel", "action":"", "dob":"19-09-1992", "selected":false},
|
||||
{"status":"Payment Verified","lab":"08000198222", "mr": "MR-18107239", "name": "LUKA MODRIC", "sex": "Laki - laki", "address": "Jl. Raya No 1", "action":"", "dob":"19-09-1992", "selected":true},
|
||||
{"status":"Data Verified","lab":"08000198121", "mr": "MR-18107247", "name": "Tyas Medika Pranandita", "sex": "Laki - laki", "address": "KP. Karangpanas", "action":"", "dob":"19-09-1992", "selected":false},
|
||||
{"status":"Data & Payment Verified","lab":"08000198131", "mr": "MR-18107248", "name": "Astrid", "sex": "Perempuan", "address": "Jl. Ketintang Raya No.81", "action":"", "dob":"19-09-1992", "selected":false},
|
||||
{"status":"Data & Payment Verified","lab":"08000198123", "mr": "MR-18107249", "name": "Happy", "sex": "Perempuan", "address": "Karangpanas", "action":"", "dob":"19-09-1992", "selected":false},
|
||||
{"status":"Data Verified","lab":"08000198111", "mr": "MR-18107251", "name": "Juan Alexis Sukir", "sex": "Laki - laki", "address": "Jl. Sawi", "action":"", "dob":"19-09-1992", "selected":false},
|
||||
{"status":"Data & Payment Verified","lab":"08000198555", "mr": "MR-18107252", "name": "Alexander Wang", "sex": "Laki - laki", "address": "Jl. Mangga Muda No. 7", "action":"", "dob":"19-09-1992", "selected":false},
|
||||
{"status":"Payment Verified","lab":"08000198444", "mr": "MR-18107253", "name": "CILA CILANI", "sex": "Perempuan", "address": "Jl. Duren PInang No. 67", "action":"", "dob":"19-09-1992", "selected":false},
|
||||
{"status":"Data & Payment Verified","lab":"08000198123", "mr": "MR-18107254", "name": "Untung Suropati", "sex": "Laki - laki", "address": "Pasar Kapling Semarang", "action":"", "dob":"19-09-1992", "selected":false}
|
||||
]
|
||||
};
|
||||
}
|
||||
}
|
||||
</script>
|
||||
Reference in New Issue
Block a user