Files
FE_CPONE/test/vuex/one-nat-patient/components/oneMdPatientDetail.vue
2026-04-27 10:13:31 +07:00

456 lines
18 KiB
Vue

<template>
<v-card>
<v-layout style="height:250px;overflow: auto;" row>
<v-flex xs12 class="mt-5 text-xs-center" pl-2 pr-2 pt-2 pb-2>
<v-btn v-if="!progress_upload" @click="uploadData" color="warning" fab large dark>
<v-icon>cloud_upload</v-icon>
</v-btn>
<v-progress-linear v-if="progress_upload" :indeterminate="true"></v-progress-linear>
<p v-if="!progress_upload">Upload ke Nasional</p>
<p v-if="progress_upload">Sedang upload ...</p>
<!--<v-pagination style="margin-top:10px;margin-bottom:10px" :total-visible="15" v-model="curr_page" :length="xtotal_page"></v-pagination>-->
</v-flex>
</v-layout>
</v-card>
</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 = {
mounted() {
//this.$store.dispatch("patient/getsexreg")
var patientData = JSON.parse(localStorage.getItem('selpatient'))
this.selpatient = patientData
},
data: () => ({
selpatient:{}
}),
computed: {
pgrs_save(){
return this.$store.state.patient.pgrs_save
},
dialogconfirmationdelete: {
get() {
return this.$store.state.patient.dialog_confirmation_delete
},
set(val) {
this.$store.commit("patient/update_dialog_confirmation_delete", val)
}
},
msgconfirmationdelete() {
return this.$store.state.patient.msg_confirmation_delete
},
xact() {
return this.$store.state.patient.act
},
detail() {
return this.$store.state.patient.selected_patient
},
xtitles() {
return this.$store.state.patient.titles
},
progress_upload: {
get() {
return this.$store.state.patient.progress_upload
},
set(val) {
this.$store.commit("patient/update_progress_upload", val)
}
},
xtitle: {
get() {
return this.$store.state.patient.selected_title
},
set(val) {
this.$store.commit("patient/update_selected_title", val)
this.$store.commit("patient/update_no_save", 1)
}
},
xpatientprefix: {
get() {
return this.$store.state.patient.patient_prefix
},
set(val) {
this.$store.commit("patient/update_patient_prefix", val)
this.$store.commit("patient/update_no_save", 1)
}
},
xpatientname: {
get() {
return this.$store.state.patient.patient_name
},
set(val) {
this.$store.commit("patient/update_patient_name", val)
this.$store.commit("patient/update_no_save", 1)
}
},
xpatientsuffix: {
get() {
return this.$store.state.patient.patient_suffix
},
set(val) {
this.$store.commit("patient/update_patient_suffix", val)
this.$store.commit("patient/update_no_save", 1)
}
},
xnorm: {
get() {
return this.$store.state.patient.norm
},
set(val) {
this.$store.commit("patient/update_norm", val)
this.$store.commit("patient/update_no_save", 1)
}
},
xdob: {
get() {
return this.$store.state.patient.dob
},
set(val) {
this.$store.commit("patient/update_errors", [])
var errors = this.$store.state.patient.errors
var aDOB = moment(val, 'DD-MM-YYYY', true)
var isValidDOB = aDOB.isValid()
if (!isValidDOB) {
errors.push("wrongformatdob")
}
this.$store.commit("patient/update_dob", val)
this.$store.commit("patient/update_no_save", 1)
}
},
xsexes() {
return this.$store.state.patient.sexes
},
xsex: {
get() {
return this.$store.state.patient.selected_sex
},
set(val) {
this.$store.commit("patient/update_selected_sex", val)
this.$store.commit("patient/update_no_save", 1)
}
},
xreligions() {
return this.$store.state.patient.religions
},
xreligion: {
get() {
return this.$store.state.patient.selected_religion
},
set(val) {
this.$store.commit("patient/update_selected_religion", val)
this.$store.commit("patient/update_no_save", 1)
}
},
xphone: {
get() {
return this.$store.state.patient.phone
},
set(val) {
this.$store.commit("patient/update_phone", val)
this.$store.commit("patient/update_no_save", 1)
}
},
xhp: {
get() {
return this.$store.state.patient.hp
},
set(val) {
this.$store.commit("patient/update_hp", val)
this.$store.commit("patient/update_no_save", 1)
}
},
xemail: {
get() {
return this.$store.state.patient.email
},
set(val) {
this.$store.commit("patient/update_email", val)
this.$store.commit("patient/update_no_save", 1)
}
},
xpob: {
get() {
return this.$store.state.patient.pob
},
set(val) {
this.$store.commit("patient/update_pob", val)
this.$store.commit("patient/update_no_save", 1)
}
},
xkartuidentitass() {
return this.$store.state.patient.kartuidentitass
},
xkartuidentitas: {
get() {
return this.$store.state.patient.selected_kartuidentitas
},
set(val) {
this.$store.commit("patient/update_selected_kartuidentitas", val)
this.$store.commit("patient/update_no_save", 1)
}
},
xnoidentitas: {
get() {
return this.$store.state.patient.noidentitas
},
set(val) {
this.$store.commit("patient/update_noidentitas", val)
this.$store.commit("patient/update_no_save", 1)
}
},
xnote: {
get() {
return this.$store.state.patient.note
},
set(val) {
this.$store.commit("patient/update_note", val)
this.$store.commit("patient/update_no_save", 1)
}
},
xjob: {
get() {
return this.$store.state.patient.job
},
set(val) {
this.$store.commit("patient/update_job", val)
this.$store.commit("patient/update_no_save", 1)
}
},
xnik: {
get() {
return this.$store.state.patient.nik
},
set(val) {
this.$store.commit("patient/update_nik", val)
this.$store.commit("patient/update_no_save", 1)
}
},
xjabatan: {
get() {
return this.$store.state.patient.jabatan
},
set(val) {
this.$store.commit("patient/update_jabatan", val)
this.$store.commit("patient/update_no_save", 1)
}
},
xkedudukan: {
get() {
return this.$store.state.patient.kedudukan
},
set(val) {
this.$store.commit("patient/update_kedudukan", val)
this.$store.commit("patient/update_no_save", 1)
}
},
xpj: {
get() {
return this.$store.state.patient.pj
},
set(val) {
this.$store.commit("patient/update_pj", val)
this.$store.commit("patient/update_no_save", 1)
}
},
xlocation: {
get() {
return this.$store.state.patient.location
},
set(val) {
this.$store.commit("patient/update_location", val)
this.$store.commit("patient/update_no_save", 1)
}
},
},
methods: {
uploadData(){
this.progress_upload = true
//this.$store.commit("patient/update_pgrs_save", true)
var patients = this.$store.state.patient.patients
patients.forEach((patient,index) => {
if(patient.isConfirmed === 'Y'){
patients[index].status = 'Y'
}
})
console.log(patients)
this.$store.dispatch("patient/validasi", {selpatient:this.selpatient,data:patients})
},
checkError(value) {
var errors = this.$store.state.patient.errors
if (errors.includes(value)) {
return true
} else {
return false
}
},
saveData() {
this.$store.commit("patient/update_errors", [])
var errors = this.$store.state.patient.errors
var aDOB = moment(this.xdob, 'DD-MM-YYYY', true)
console.log(this.xdob)
console.log(aDOB)
var isValidDOB = aDOB.isValid()
if (!isValidDOB) {
errors.push("wrongformatdob")
}
if (this.xpatientname === '') {
errors.push("requirename")
}
if (this.xdob === '') {
errors.push("requiredob")
}
if (_.isEmpty(this.xsex)) {
errors.push("requiresex")
}
if (_.isEmpty(this.xtitle)) {
errors.push("requiretitle")
}
if (errors.length === 0) {
var prm = {}
prm.M_PatientID = this.$store.state.patient.selected_patient.M_PatientID
prm.M_PatientM_TitleID = this.$store.state.patient.selected_title.M_TitleID
prm.M_PatientPrefix = this.xpatientprefix
prm.M_PatientName = this.xpatientname
prm.M_PatientSuffix = this.xpatientsuffix
prm.M_PatientDOB = this.xdob
prm.M_PatientM_SexID = this.$store.state.patient.selected_sex.M_SexID
prm.M_PatientM_ReligionID = this.$store.state.patient.selected_religion.M_ReligionID
prm.M_PatientEmail = this.xemail
prm.M_PatientPOB = this.xpob
prm.M_PatientHP = this.xhp
prm.M_PatientPhone = this.xphone
prm.M_PatientM_IdTypeID = this.$store.state.patient.selected_kartuidentitas.M_IdTypeID
prm.M_PatientIDNumber = this.xnoidentitas
prm.M_PatientNote = this.xnote
prm.M_PatientNIK = this.xnik
prm.M_PatientJabatan = this.xjabatan
prm.M_PatientKedudukan = this.xkedudukan
prm.M_PatientPJ = this.xpj
prm.M_PatientLocation = this.xlocation
prm.M_PatientJob = this.xjob
this.$store.commit("patient/update_pgrs_save", true)
this.$store.dispatch("patient/save", prm)
}
},
saveNewPatient() {
this.$store.commit("patient/update_errors", [])
var errors = this.$store.state.patient.errors
var aDOB = moment(this.xdob, 'DD-MM-YYYY', true)
console.log(this.xdob)
console.log(aDOB)
var isValidDOB = aDOB.isValid()
if (!isValidDOB) {
errors.push("wrongformatdob")
}
if (this.xpatientname === '') {
errors.push("requirename")
}
if (this.xdob === '') {
errors.push("requiredob")
}
if (_.isEmpty(this.xsex)) {
errors.push("requiresex")
}
if (_.isEmpty(this.xtitle)) {
errors.push("requiretitle")
}
if (errors.length === 0) {
var prm = {}
prm.M_PatientID = 0
prm.M_PatientM_TitleID = this.$store.state.patient.selected_title.M_TitleID
prm.M_PatientPrefix = this.xpatientprefix
prm.M_PatientName = this.xpatientname
prm.M_PatientSuffix = this.xpatientsuffix
prm.M_PatientDOB = this.xdob
prm.M_PatientM_SexID = this.$store.state.patient.selected_sex.M_SexID
prm.M_PatientM_ReligionID = this.$store.state.patient.selected_religion.M_ReligionID
prm.M_PatientEmail = this.xemail
prm.M_PatientPOB = this.xpob
prm.M_PatientHP = this.xhp
prm.M_PatientPhone = this.xphone
prm.M_PatientM_IdTypeID = this.$store.state.patient.selected_kartuidentitas.M_IdTypeID
prm.M_PatientIDNumber = this.xnoidentitas
prm.M_PatientNote = this.xnote
prm.M_PatientNIK = this.xnik
prm.M_PatientJabatan = this.xjabatan
prm.M_PatientKedudukan = this.xkedudukan
prm.M_PatientPJ = this.xpj
prm.M_PatientLocation = this.xlocation
prm.M_PatientJob = this.xjob
this.$store.commit("patient/update_pgrs_save", true)
this.$store.dispatch("patient/newpatient", prm)
}
},
deleteData() {
let msg = "Yakin, akan menghapus data pasien " + this.xpatientname + " ?"
this.$store.commit("patient/update_msg_confirmation_delete", msg)
this.$store.commit("patient/update_dialog_confirmation_delete", true)
},
doDeleteData() {
var prm = {}
prm.M_PatientID = this.$store.state.patient.selected_patient.M_PatientID
prm.M_PatientName = this.xpatientname
this.$store.commit("patient/update_pgrs_save", true)
this.$store.dispatch("patient/delete", prm)
}
}
}
</script>