// 1 => LOADING // 2 => DONE // 3 => ERROR import * as api from "../api/patient.js" window.api = api export default { namespaced: true, state: { noreg:'', search: '', search_status:0, search_error_message:'', search_dialog_is_active: false, patients: [], total_patient: 0, total_display: 0, selected_patient: {}, patient_new: {}, patient_new_dialog_is_active: false, idtypes: [{id:'NNIDN',name:'KTP'},{id:'PPN',name:'Passport'}], selected_idtype: {id:'NNIDN',name:'KTP'}, current_page:1, edit: false, dialog_birthday:false, show_more:true, loading:false, update_autocomplete_status:false, regions:[], selected_region:{}, countries:[], selected_country:{}, search_country:'', act:'', selected_gender:{}, genders:[{id:'male',name:'Laki-laki'},{id:'female',name:'Perempuan'},{id:'other',name:'Lainnya'}], corporates:[], selected_corporate:{}, loading_corporate:false, blood_types:[], selected_blood_type:{}, loading_blood_type:false, blood_rh_types:[], selected_blood_rh_type:{}, loading_blood_rh_type:false, education_types:[], selected_education_type:{}, loading_education_type:false, etnic_types:[], selected_etnic_type:{}, loading_etnic_type:false, icd10:[], selected_icd10:{}, loading_icd10:false }, mutations: { update_loading_icd10(state,val) { state.loading_icd10 = val }, update_blood_types(state,val) { state.blood_types = val }, update_selected_blood_type(state,val) { state.selected_blood_type = val }, update_loading_blood_type(state,val) { state.loading_blood_type = val }, update_blood_rh_types(state,val) { state.blood_rh_types = val }, update_selected_blood_rh_type(state,val) { state.selected_blood_rh_type = val }, update_loading_blood_rh_type(state,val) { state.loading_blood_rh_type = val }, update_education_types(state,val) { state.education_types = val }, update_selected_education_type(state,val) { state.selected_education_type = val }, update_loading_education_type(state,val) { state.loading_education_type = val }, update_etnic_types(state,val) { state.etnic_types = val }, update_selected_etnic_type(state,val) { state.selected_etnic_type = val }, update_loading_etnic_type(state,val) { state.loading_etnic_type = val }, update_loading_corporate(state,val) { state.loading_corporate = val }, update_corporates(state,val) { state.corporates = val }, update_selected_corporate(state,val) { state.selected_corporate = val }, update_genders(state,val) { state.genders = val }, update_selected_gender(state,val) { state.selected_gender = val }, update_act(state,val) { state.act = val }, update_search_country(state,val) { state.search_country = val }, update_countries(state,val) { state.countries = val }, update_selected_country(state,val) { state.selected_country = val }, update_regions(state,val) { state.regions = val }, update_selected_region(state,val) { state.selected_region = val }, update_autocomplete_status(state,val) { state.update_autocomplete_status = val }, update_icd10(state,val) { state.icd10 = val }, update_selected_icd10(state,val) { state.selected_icd10 = val }, update_loading(state,status) { state.loading = status }, update_show_more(state,status) { state.show_more = status }, update_current_page(state,status) { state.current_page = status }, update_dialog_birthday(state,status) { state.dialog_birthday = status }, update_search_dialog_is_active(state,status) { state.search_dialog_is_active = status }, update_search_error_message(state,status) { state.search_error_message = status }, update_noreg(state,val) { state.noreg=val }, update_search(state,val) { state.search=val }, update_search_status(state,status) { state.search_status = status }, update_patients(state,data) { state.patients= data.records state.total_patient = data.total //state.total_display = data.total_display }, update_selected_patient(state,val) { var now = moment(new Date()) var dob = moment(new Date(val.M_PatientDOB)) var year = now.diff(dob,'years') dob.add(year,'years') var month = now.diff(dob,'months') dob.add(month,'months') var day = now.diff(dob,'days') if (isNaN(year)) val.patient_age = '' else val.patient_age = `${year} tahun ${month} bulan ${day} hari` state.selected_patient=val // store.state.patientaddress.patient_id = val.M_PatientID // photo }, update_patient_new(state, v) { state.patient_new = v }, update_patient_new_dialog_is_active(state, v) { state.patient_new_dialog_is_active = v }, update_idtypes(state, v) { state.idtypes = v.records }, update_selected_idtype(state, v) { state.selected_idtype = v }, update_edit(state, v) { state.edit = v } }, actions: { async search(context, prm) { context.commit("update_search_status",1) try { //context.commit("update_loading",true) let resp= await api.search(context.state.noreg,context.state.search,context.state.current_page) if (resp.status != "OK") { context.commit("update_search_status",3) context.commit("update_search_error_message",resp.message) } else { context.commit("update_search_status",2) context.commit("update_search_error_message","") let data = { records : resp.data.records, total: resp.data.total } context.commit("update_loading",false) if (prm && prm.use) context.commit("update_patients",{records : [],total:0}) if(data.records.length > 0){ if(context.state.patients.length > 0){ var data_before = context.state.patients var idx_last = data_before.length - 1 data_before[idx_last].divider = 'Y' data.records.forEach(function(entry) { data_before.push(entry) }) context.commit("update_patients",{records : data_before,total:data_before.length}) } else{ context.commit("update_patients",data) } context.commit("update_show_more",true) } else{ context.commit("update_show_more",false) context.commit("update_current_page",1) } if (prm) if (prm.use) { let pat = context.state.patients[prm.use_idx] console.log(pat) context.commit('update_selected_patient', pat) if(pat.info.birthday == 'Y') context.commit('update_dialog_birthday', true) context.commit('order/update_patient_note', pat.M_PatientNote, {root:true}) context.dispatch('delivery/search_deliveries',{type:'patient',id:pat.M_PatientID},{root:true}) context.commit('photo/update_patient_id', pat.M_PatientID, {root: true}) } } } catch(e) { context.commit("update_loading",false) context.commit("update_search_status",3) context.commit("update_search_error_message",e.message ) } }, async add_new(context, prm) { context.commit("update_search_status",1) try { let resp if (context.state.edit){ resp = await api.edit(prm, context.state.selected_patient.M_PatientID) } else resp = await api.add_new(prm) if (resp.status != "OK") { context.commit("update_search_status",3) context.commit("update_search_error_message", resp.message) } else { context.commit("update_search_status",2) context.commit("update_search_error_message","") if (prm.use) { context.commit('update_noreg', resp.data.noreg) context.commit('update_search', '') context.dispatch('search', {use:true, use_idx:0}) context.dispatch('delivery/search_deliveries',{type:'patient',id:resp.data.id},{root:true}) } // commit("patientaddress/test", "X", { root: true }) } } catch(e) { context.commit("update_search_status",3) context.commit("update_search_error_message",e.message ) } }, async search_idtype(context) { context.commit("update_search_status",1) try { let resp= await api.search_idtype() if (resp.status != "OK") { context.commit("update_search_status",3) context.commit("update_search_error_message",resp.message) } else { context.commit("update_search_status",2) context.commit("update_search_error_message","") let data = { records : resp.data.records } context.commit("update_idtypes", data) } } catch(e) { context.commit("update_search_status",3) context.commit("update_search_error_message",e.message ) } }, async searchregion(context, prm) { context.commit("update_loading",true) try { let resp= await api.searchregion(prm) if (resp.status != "OK") { context.commit("update_loading",false) context.commit("update_search_error_message",resp.message) } else { context.commit("update_loading",false) context.commit("update_search_error_message","") context.commit("update_regions", resp.data.records) } } catch(e) { context.commit("update_loading",false) context.commit("update_search_error_message",e.message ) } }, async search_countries(context, prm) { context.commit("update_loading",true) try { let resp= await api.search_countries(prm) if (resp.status != "OK") { context.commit("update_loading",false) context.commit("update_search_error_message",resp.message) } else { context.commit("update_loading",false) context.commit("update_search_error_message","") context.commit("update_countries", resp.data.records) } } catch(e) { context.commit("update_loading",false) context.commit("update_search_error_message",e.message ) } }, async search_corporate(context, prm) { context.commit("update_loading_corporate",true) try { let resp= await api.search_corporate(prm) if (resp.status != "OK") { context.commit("update_loading_corporate",false) context.commit("update_search_error_message",resp.message) } else { context.commit("update_loading_corporate",false) context.commit("update_search_error_message","") context.commit("update_corporates", resp.data.records) } } catch(e) { context.commit("update_loading_corporate",false) context.commit("update_search_error_message",e.message ) } }, async search_blood_type(context, prm) { context.commit("update_loading_blood_type",true) try { let resp= await api.search_blood_type(prm) if (resp.status != "OK") { context.commit("update_loading_blood_type",false) context.commit("update_search_error_message",resp.message) } else { context.commit("update_loading_blood_type",false) context.commit("update_search_error_message","") context.commit("update_blood_types", resp.data.records) } } catch(e) { context.commit("update_loading_blood_type",false) context.commit("update_search_error_message",e.message ) } }, async search_education_type(context, prm) { context.commit("update_loading_education_type",true) try { let resp= await api.search_education_type(prm) if (resp.status != "OK") { context.commit("update_loading_education_type",false) context.commit("update_search_error_message",resp.message) } else { context.commit("update_loading_education_type",false) context.commit("update_search_error_message","") context.commit("update_education_types", resp.data.records) } } catch(e) { context.commit("update_loading_education_type",false) context.commit("update_search_error_message",e.message ) } }, async search_blood_rh_type(context, prm) { context.commit("update_loading_blood_type",true) try { let resp= await api.search_blood_rh_type(prm) if (resp.status != "OK") { context.commit("update_loading_blood_rh_type",false) context.commit("update_search_error_message",resp.message) } else { context.commit("update_loading_blood_rh_type",false) context.commit("update_search_error_message","") context.commit("update_blood_rh_types", resp.data.records) } } catch(e) { context.commit("update_loading_blood_rh_type",false) context.commit("update_search_error_message",e.message ) } }, async search_etnic_type(context, prm) { context.commit("update_loading_etnic_type",true) try { let resp= await api.search_etnic_type(prm) if (resp.status != "OK") { context.commit("update_loading_etnic_type",false) context.commit("update_search_error_message",resp.message) } else { context.commit("update_loading_etnic_type",false) context.commit("update_search_error_message","") context.commit("update_etnic_types", resp.data.records) } } catch(e) { context.commit("update_loading_etnic_type",false) context.commit("update_search_error_message",e.message ) } }, async search_etnic_type(context, prm) { context.commit("update_loading_etnic_type",true) try { let resp= await api.search_etnic_type(prm) if (resp.status != "OK") { context.commit("update_loading_etnic_type",false) context.commit("update_search_error_message",resp.message) } else { context.commit("update_loading_etnic_type",false) context.commit("update_search_error_message","") context.commit("update_etnic_types", resp.data.records) } } catch(e) { context.commit("update_loading_etnic_type",false) context.commit("update_search_error_message",e.message ) } }, async search_icd10(context, prm) { context.commit("update_loading_icd10",true) try { prm.token = window.one_token() let resp= await api.search_icd10(prm) if (resp.status != "OK") { context.commit("update_loading_icd10",false) context.commit("update_search_error_message",resp.message) } else { context.commit("update_loading_icd10",false) context.commit("update_search_error_message","") context.commit("update_icd10", resp.data.records) } } catch(e) { context.commit("update_loading_icd10",false) context.commit("update_search_error_message",e.message ) } }, } }