920 lines
39 KiB
Vue
920 lines
39 KiB
Vue
<template>
|
|
<v-layout class="mb-2" column>
|
|
<v-dialog v-model="dialogconfirmationdelete" persistent max-width="290">
|
|
<v-card>
|
|
<v-card-title dark class="headline error pt-2 pb-2" primary-title style="color:white">
|
|
<h4 dark>Konfirmasi</h4>
|
|
</v-card-title>
|
|
<v-card-text>
|
|
{{msgconfirmationdelete}}
|
|
</v-card-text>
|
|
<v-card-actions>
|
|
<v-spacer></v-spacer>
|
|
<v-btn small color="blue darken-1 text-sm-right" flat @click="dialogconfirmationdelete = false">Batal</v-btn>
|
|
</v-card-actions>
|
|
</v-card>
|
|
</v-dialog>
|
|
<v-card class="mb-2">
|
|
<v-layout row>
|
|
<v-flex xs12>
|
|
<v-subheader red--text text--lighten-1> DATA PASIEN
|
|
<v-flex text-md-right>
|
|
<v-btn v-if="!pgrs_save" @click="saveData()" color="primary">Simpan</v-btn>
|
|
</v-flex>
|
|
</v-subheader>
|
|
<v-divider></v-divider>
|
|
<v-layout row>
|
|
<v-flex class="pa-2" xs3>
|
|
<v-card class="pt-2 pb-2" color="blue darken-2" tile >
|
|
<v-img
|
|
:src="patient_photo"
|
|
aspect-ratio="1"
|
|
class="blue darken-2 pt-2"
|
|
contain
|
|
>
|
|
<template v-slot:placeholder>
|
|
<v-layout
|
|
fill-height
|
|
align-center
|
|
justify-center
|
|
ma-0
|
|
>
|
|
<v-progress-circular indeterminate color="blue lighten-5"></v-progress-circular>
|
|
</v-layout>
|
|
</template>
|
|
</v-img>
|
|
</v-card>
|
|
<v-flex xs12>
|
|
<v-btn
|
|
class="mt-0 mb-0"
|
|
deppressed
|
|
small
|
|
color="blue darken-2 white--text"
|
|
:dark="patient.M_PatientID ? true : false"
|
|
block
|
|
@click="update_photo"
|
|
:disabled="!patient.M_PatientID"
|
|
>
|
|
Update Foto
|
|
</v-btn>
|
|
</v-flex>
|
|
</v-flex>
|
|
<v-flex xs9>
|
|
<v-layout pa-2 row>
|
|
<v-flex xs3 pa-2>
|
|
<v-text-field v-model="xpatientprefix" label="Awalan" hide-details></v-text-field>
|
|
</v-flex>
|
|
<v-flex xs6 pa-2>
|
|
<v-text-field v-model="xpatientname" label="Nama Pasien*" hide-details></v-text-field>
|
|
<p v-if="checkError('requirename')" class="error pl-2 pr-2" style="color:#fff">Nama harus diisi dong</p>
|
|
</v-flex>
|
|
<v-flex xs3 pa-2>
|
|
<v-text-field v-model="xpatientsuffix" label="Akhiran" hide-details></v-text-field>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout pa-2 row>
|
|
<v-flex xs6 pa-2>
|
|
<v-select item-text="m_sexname" return-object :items="xsexes" v-model="xsex" label="Jenis Kelamin*" hide-details></v-select>
|
|
<p v-if="checkError('requiresex')" class="error pl-2 pr-2" style="color:#fff">Jenis kelamin harus diisi dong</p>
|
|
</v-flex>
|
|
<v-flex xs6 pa-2>
|
|
<v-select item-text="M_TitleName" :disabled="_.isEmpty(xsex)" return-object :items="xtitles" v-model="xtitle" label="Panggilan*" hide-details></v-select>
|
|
<p v-if="checkError('requiretitle')" class="error pl-2 pr-2" style="color:#fff">Panggilan harus diisi dong</p>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout pa-2 row>
|
|
<v-flex xs4 pa-2>
|
|
<v-text-field v-model="xpob" label="Tempat Lahir" hide-details></v-text-field>
|
|
</v-flex>
|
|
<v-flex xs4 pa-2>
|
|
<v-text-field
|
|
v-model="age"
|
|
label="Umur"
|
|
@change="changeAge($event)"
|
|
placeholder="Isi Tahun"
|
|
></v-text-field>
|
|
</v-flex>
|
|
<v-flex xs4 pa-2>
|
|
<v-text-field v-model="xdob" :readonly="age != '' && age" label="Tanggal Lahir*" hint="format : DD-MM-YYYY , contoh : 22-06-1988"></v-text-field>
|
|
<p v-if="checkError('requiredob')" class="error pl-2 pr-2" style="color:#fff">Tanggal lahir harus diisi dong</p>
|
|
<p v-if="checkError('wrongformatdob')" class="error pt-1 pl-2 pr-2" style="color:#fff">format nya belum benar : dd-mm-yyy , OK ?</p>
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-flex>
|
|
</v-layout>
|
|
|
|
<v-layout pa-2 row>
|
|
<v-flex xs4 pa-2>
|
|
<v-select item-text="M_ReligionName" return-object :items="xreligions" v-model="xreligion" label="Agama" hide-details></v-select>
|
|
</v-flex>
|
|
<v-flex xs4 pa-2>
|
|
<v-text-field v-model="xhp" label="HP" hide-details></v-text-field>
|
|
</v-flex>
|
|
<v-flex xs4 pa-2>
|
|
<v-text-field v-model="xemail" label="Email" hint="Pisahkan dengan (koma) jika email lebih dari satu"></v-text-field>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout pa-2 row>
|
|
<v-flex xs3 pa-2>
|
|
<v-select item-text="M_IdTypeName" return-object :items="xkartuidentitass" v-model="xkartuidentitas" label="Kartu Identitas"
|
|
hide-details></v-select>
|
|
<p v-if="checkError('identity')" class="error pl-2 pr-2" style="color:#fff">Identitas belum dipilih</p>
|
|
</v-flex>
|
|
<v-flex xs5 pa-2>
|
|
<v-text-field
|
|
|
|
v-model="xnoidentitas"
|
|
label="Nomor ID"
|
|
:readonly="xkartuidentitas && !xkartuidentitas.M_IdTypeID"
|
|
@keyup="changeNumberID($event)"
|
|
hide-details
|
|
></v-text-field>
|
|
<p v-if="checkError('identytynumber')" class="error pl-2 pr-2" style="color:#fff">Nomor identitas belum diisi / format salah</p>
|
|
</v-flex>
|
|
<v-flex xs4 pa-2>
|
|
<v-text-field v-model="xjob" label="Pekerjaan" hide-details></v-text-field>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout row pa-2>
|
|
<v-flex xs12 pa-2>
|
|
<v-textarea
|
|
style="font-size:12px;padding:4px 0"
|
|
auto-grow
|
|
rows="1"
|
|
v-model="xnote"
|
|
label="Catatan"
|
|
>
|
|
</v-textarea>
|
|
</v-flex>
|
|
|
|
|
|
</v-layout>
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-card>
|
|
<v-card>
|
|
<v-layout row>
|
|
<v-flex xs12>
|
|
<v-subheader red--text text--lighten-1> ALAMAT PASIEN</v-subheader>
|
|
<v-divider></v-divider>
|
|
<v-layout pa-2 row>
|
|
<v-flex xs6 pa-2>
|
|
<v-autocomplete
|
|
style="font-size:12px;padding:4px 0"
|
|
:items="provinces"
|
|
item-text="M_ProvinceName"
|
|
item-value="M_ProvinceID"
|
|
label="Propinsi"
|
|
v-model="province_address"
|
|
clearable
|
|
return-object
|
|
|
|
></v-autocomplete>
|
|
<p v-if="checkError('province')" class="error pl-2 pr-2" style="color:#fff">Province harus dipilih</p>
|
|
</v-flex>
|
|
<v-flex xs6 pa-2>
|
|
<v-autocomplete
|
|
style="font-size:12px;padding:4px 0"
|
|
:items="cities"
|
|
item-text="M_CityName"
|
|
item-value="M_CityID"
|
|
label="Kota"
|
|
v-model="city_address"
|
|
clearable
|
|
return-object
|
|
></v-autocomplete>
|
|
<p v-if="checkError('city')" class="error pl-2 pr-2" style="color:#fff">Kota harus dipilih</p>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout pa-2 row>
|
|
<v-flex xs6 pa-2>
|
|
<v-autocomplete
|
|
style="font-size:12px;padding:4px 0"
|
|
:items="districts"
|
|
item-text="M_DistrictName"
|
|
item-value="M_DistrictID"
|
|
label="Kecamatan"
|
|
v-model="district_address"
|
|
clearable
|
|
return-object
|
|
></v-autocomplete>
|
|
<p v-if="checkError('district')" class="error pl-2 pr-2" style="color:#fff">Kecamatan harus dipilih</p>
|
|
</v-flex>
|
|
<v-flex xs6 pa-2>
|
|
<v-autocomplete
|
|
style="font-size:12px;padding:4px 0"
|
|
:items="kelurahans"
|
|
item-text="M_KelurahanName"
|
|
item-value="M_KelurahanID"
|
|
label="Kelurahan"
|
|
clearable
|
|
v-model="kelurahan_address"
|
|
return-object
|
|
></v-autocomplete>
|
|
<p v-if="checkError('kelurahan')" class="error pl-2 pr-2" style="color:#fff">Kelurahan harus dipilih</p>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-layout pa-2 row>
|
|
<v-flex xs12>
|
|
<v-textarea
|
|
style="font-size:12px;padding:4px 0"
|
|
auto-grow
|
|
rows="1"
|
|
v-model="address"
|
|
label="Alamat Lengkap"
|
|
hide-details
|
|
>
|
|
</v-textarea>
|
|
<p v-if="checkError('address')" class="error pl-2 pr-2" style="color:#fff">Alamat harus diisi</p>
|
|
</v-flex>
|
|
</v-layout>
|
|
</v-flex>
|
|
</v-layout>
|
|
<v-divider></v-divider>
|
|
<v-card-actions>
|
|
<v-spacer></v-spacer>
|
|
<v-btn v-if="!pgrs_save" @click="saveData()" color="primary">Simpan</v-btn>
|
|
</v-card-actions>
|
|
</v-card>
|
|
<patient-photo-dialog></patient-photo-dialog>
|
|
</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 = {
|
|
components : {
|
|
'patient-photo-dialog': httpVueLoader('./oneDialogPhoto.vue')
|
|
},
|
|
data: () => ({
|
|
age:''
|
|
}),
|
|
computed: {
|
|
patient:{
|
|
get() {
|
|
return this.$store.state.patient.selected_patient
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_selected_patient",val)
|
|
}
|
|
},
|
|
patient_photo () {
|
|
return this.$store.state.photo.photo_url
|
|
},
|
|
address:{
|
|
get() {
|
|
return this.$store.state.patient.address
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_address",val)
|
|
}
|
|
},
|
|
provinces(){
|
|
return this.$store.state.patient.provinces
|
|
},
|
|
provinceaddress:{
|
|
get() {
|
|
return this.$store.state.patient.province_address
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_province_address",val)
|
|
this.$store.dispatch("patient/getcities",val)
|
|
}
|
|
},
|
|
provinces(){
|
|
return this.$store.state.patient.provinces
|
|
},
|
|
province_address:{
|
|
get() {
|
|
return this.$store.state.patient.province_address
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_province_address",val)
|
|
this.$store.dispatch("patient/getcities",val)
|
|
}
|
|
},
|
|
cities(){
|
|
return this.$store.state.patient.cities
|
|
},
|
|
city_address:{
|
|
get() {
|
|
return this.$store.state.patient.city_address
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_city_address",val)
|
|
this.$store.dispatch("patient/getdistricts",val)
|
|
}
|
|
},
|
|
districts(){
|
|
return this.$store.state.patient.districts
|
|
},
|
|
district_address:{
|
|
get() {
|
|
return this.$store.state.patient.district_address
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_district_address",val)
|
|
this.$store.dispatch("patient/getkelurahans",val)
|
|
}
|
|
},
|
|
kelurahans(){
|
|
return this.$store.state.patient.kelurahans
|
|
},
|
|
kelurahan_address:{
|
|
get() {
|
|
return this.$store.state.patient.kelurahan_address
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_kelurahan_address",val)
|
|
}
|
|
},
|
|
patient_note: {
|
|
get() {
|
|
return this.$store.state.patient.patient_note
|
|
},
|
|
set(val) {
|
|
this.$store.commit("patient/update_patient_note", val)
|
|
this.$store.commit("patient/update_no_save", 1)
|
|
}
|
|
},
|
|
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
|
|
},
|
|
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)
|
|
let titles = this.$store.state.patient.titles_origin
|
|
let new_titles = _.filter(titles, function(o) { return parseInt(o.M_TitleM_SexID) === parseInt(val.M_SexID) })
|
|
this.$store.commit("patient/update_titles", new_titles)
|
|
}
|
|
},
|
|
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)
|
|
if(val){
|
|
this.changeNumberID_ByType(val.M_IdTypeName)
|
|
}
|
|
}
|
|
},
|
|
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: {
|
|
update_photo () {
|
|
this.$store.commit('photo/update_dialog_photo', true)
|
|
},
|
|
generate_card(){
|
|
var xid = this.$store.state.patient.selected_patient.M_PatientID
|
|
this.rpt_card = "/birt/run?__report=report/one/fo/rpt_card.rptdesign&__format=pdf&username=admin%20&PID="+xid
|
|
this.dialog_card = true
|
|
},
|
|
removeErrors(id){
|
|
var errors = this.$store.state.patient.errors
|
|
errors.forEach((index,value) => {
|
|
if(id === value){
|
|
errors.splice(index, 1)
|
|
}
|
|
});
|
|
},
|
|
changeNumberID(event){
|
|
console.log(event.target.value)
|
|
var value = event.target.value
|
|
this.$store.state.patient.errors = []
|
|
var errors = this.$store.state.patient.errors
|
|
let cxc = this.xkartuidentitas.M_IdTypeName
|
|
if(value && !_.isEmpty(this.xkartuidentitas) && cxc != 'Lainnya'){
|
|
let idType = cxc
|
|
let idnumberLength = value?value.length:0
|
|
let stringNIK = value
|
|
if(idType == 'KTP' && (value === '' || stringNIK.substr(0,16) == '0000000000000000')){
|
|
errors.push("identytynumber")
|
|
}
|
|
if(idType == 'KTP' && (idnumberLength < 16 )){
|
|
errors.push("identytynumber")
|
|
}
|
|
if(idType == 'KTP' && (idnumberLength > 19)){
|
|
errors.push("identytynumber")
|
|
}
|
|
if(idType == 'Pasport' && ( value === '')){
|
|
errors.push("identytynumber")
|
|
}
|
|
if(idType == 'Pasport' && ( idnumberLength < 8)){
|
|
errors.push("identytynumber")
|
|
}
|
|
if(idType == 'Pasport' && ( idnumberLength > 16)){
|
|
errors.push("identytynumber")
|
|
}
|
|
}
|
|
else if(!value && !_.isEmpty(this.xkartuidentitas) && cxc != 'Lainnya'){
|
|
errors.push("identytynumber")
|
|
}
|
|
else if(_.isEmpty(this.xkartuidentitas)){
|
|
errors.push("identytynumber")
|
|
}
|
|
else{
|
|
errors = []
|
|
}
|
|
|
|
|
|
},
|
|
changeNumberID_ByType(xvalue){
|
|
console.log(xvalue)
|
|
this.$store.state.patient.errors = []
|
|
var errors = this.$store.state.patient.errors
|
|
this.xnoidentitas = ""
|
|
var value = this.xnoidentitas
|
|
let cxc = xvalue
|
|
if(value && !_.isEmpty(this.xkartuidentitas) && cxc != 'Lainnya'){
|
|
let idType = cxc
|
|
let idnumberLength = value?value.length:0
|
|
let stringNIK = value
|
|
if(idType == 'KTP' && (value === '' || stringNIK.substr(0,16) == '0000000000000000')){
|
|
errors.push("identytynumber")
|
|
}
|
|
if(idType == 'KTP' && (idnumberLength < 16 )){
|
|
errors.push("identytynumber")
|
|
}
|
|
if(idType == 'KTP' && (idnumberLength > 19)){
|
|
errors.push("identytynumber")
|
|
}
|
|
if(idType == 'Pasport' && ( value === '')){
|
|
errors.push("identytynumber")
|
|
}
|
|
if(idType == 'Pasport' && ( idnumberLength < 8)){
|
|
errors.push("identytynumber")
|
|
}
|
|
if(idType == 'Pasport' && ( idnumberLength > 16)){
|
|
errors.push("identytynumber")
|
|
}
|
|
}
|
|
else if(!value && !_.isEmpty(this.xkartuidentitas) && cxc != 'Lainnya'){
|
|
errors.push("identytynumber")
|
|
}
|
|
else if(_.isEmpty(this.xkartuidentitas)){
|
|
errors.push("identytynumber")
|
|
}
|
|
else{
|
|
errors = []
|
|
}
|
|
},
|
|
changeAge(value){
|
|
//console.log(value)
|
|
if(value !== '' && value.length <= 2){
|
|
var xy = new Date().getFullYear() - value
|
|
var a = new Date();
|
|
var xm = ("0" + (a.getMonth() + 1)).slice(-2);
|
|
var xd = ("0" + a.getDate()).slice(-2);
|
|
this.xdob = xd+'-'+xm+'-'+xy
|
|
}
|
|
else
|
|
this.age = ''
|
|
},
|
|
checkError(value) {
|
|
var errors = this.$store.state.patient.errors
|
|
if (errors.includes(value)) {
|
|
return true
|
|
} else {
|
|
return false
|
|
}
|
|
},
|
|
saveData(){
|
|
if(!_.isEmpty(this.$store.state.patient.selected_patient)){
|
|
this.updatePatient()
|
|
}else{
|
|
this.newPatient()
|
|
}
|
|
},
|
|
|
|
updatePatient() {
|
|
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 (_.isEmpty(this.province_address)) {
|
|
errors.push("province")
|
|
}
|
|
if (_.isEmpty(this.city_address)) {
|
|
errors.push("city")
|
|
}
|
|
|
|
if (_.isEmpty(this.district_address)) {
|
|
errors.push("district")
|
|
}
|
|
if (_.isEmpty(this.kelurahan_address)) {
|
|
errors.push("kelurahan")
|
|
}
|
|
|
|
if(_.isEmpty(this.$store.state.patient.selected_kartuidentitas)){
|
|
errors.push("identity")
|
|
}
|
|
|
|
if(this.address === ''){
|
|
errors.push("address")
|
|
}
|
|
|
|
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
|
|
prm.M_PatientAddressM_KelurahanID = this.kelurahan_address.M_KelurahanID
|
|
prm.M_PatientAddressDescription = this.address
|
|
this.$store.commit("patient/update_pgrs_save", true)
|
|
this.$store.dispatch("patient/save", prm)
|
|
}
|
|
},
|
|
newPatient() {
|
|
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 (_.isEmpty(this.province_address)) {
|
|
errors.push("province")
|
|
}
|
|
if (_.isEmpty(this.city_address)) {
|
|
errors.push("city")
|
|
}
|
|
|
|
if (_.isEmpty(this.district_address)) {
|
|
errors.push("district")
|
|
}
|
|
if (_.isEmpty(this.kelurahan_address)) {
|
|
errors.push("kelurahan")
|
|
}
|
|
|
|
if(_.isEmpty(this.$store.state.patient.selected_kartuidentitas)){
|
|
errors.push("identity")
|
|
}
|
|
|
|
if(this.address === ''){
|
|
errors.push("address")
|
|
}
|
|
|
|
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
|
|
prm.M_PatientAddressM_KelurahanID = this.kelurahan_address.M_KelurahanID
|
|
prm.M_PatientAddressDescription = this.address
|
|
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> |