// 1 => LOADING // 2 => DONE // 3 => ERROR import * as api from "../api/samplecall.js" export default { namespaced: true, state: { last_id:-1, last_saved_id:-1, x_addr_id:0, btn_hide:false, act:'edit', act_addr:'new', get_data_status:0, search_patient: 0, search_status: 0, search_error_message: '', preffix:'', patient_name:'', suffix:'', patients: [], selected_patient: {}, sampletypes:[], selected_sampletype:{}, total_patients:0, patient_address: [], stations:[], selected_station:{}, statuses:[], selected_status:{}, transaction_date:moment(new Date()).format('DD-MM-YYYY'), transaction_time:moment(new Date()).format("hh:mm"), phone:'', hp:'', email:'', pj:'N', dpj:'N', clinic:'N', is_default:'N', marketing_confirm:'N', save_status: 0, btn_save_seen: true, pgrs_save: false, save_error_message: '', no_save: 0, open_alert_confirmation:false, alert_success: false, msg_success: "", dialog_success: false, dialog_confirmation_delete: false, msg_confirmation_delete: "", dialog_confirmation_delete_addr: false, msg_confirmation_delete_addr: "", autocomplete_status:0, dialog_form_address: false, label_address:'', addresses:[], cities:[], city_address:{}, districts:[], district_address:{}, kelurahans:[], kelurahan_address:{}, description_address:'', errors:[], dialog_action:false, msg_action:'', current_page:1, total_page:1, dialog_requirement:false, requirements:[], selected_sample:{}, open_dialog_info:false, msg_info:'', name:'', nolab:'', information_bahan:[], staff:{id:0,code:'',name:'BELUM ADA STAF',code:'',userid:''}, dialog_note_requirement:false, note_requirement:[], filter_sampletype:[], selected_filter_sampletype:{id:-1,name:'-'}, notes:[] }, mutations: { update_notes(state, val) { state.notes = val }, update_filter_sampletype(state, val) { state.filter_sampletype = val }, update_selected_filter_sampletype(state, val) { state.selected_filter_sampletype = val }, update_btn_hide(state, val) { state.btn_hide = val }, update_staff(state, val) { state.staff = val }, update_information_bahan(state, val) { state.information_bahan = val }, update_name(state, val) { state.name = val }, update_nolab(state, val) { state.nolab = val }, update_open_dialog_info(state, val) { state.open_dialog_info = val }, update_msg_info(state, val) { state.msg_info = val }, update_selected_sample(state, val) { state.selected_sample = val }, update_requirements(state, val) { state.requirements = val }, update_dialog_requirement(state, val) { state.dialog_requirement = val }, update_dialog_note_requirement(state, val) { state.dialog_note_requirement = val }, update_note_requirement(state, val) { state.note_requirement = val }, update_total_page(state, val) { state.total_page = val }, update_current_page(state, val) { state.current_page = val }, update_x_addr_id(state, val) { state.x_addr_id = val }, update_last_id(state, val) { state.last_id = val }, update_last_saved_id(state, val) { state.last_saved_id = val }, update_act(state, val) { state.act = val }, update_act_addr(state, val) { state.act_addr = val }, update_get_data_status(state, val) { state.get_data_status = val }, update_search_error_message(state, patient) { state.search_error_message = patient }, update_search_patient(state, patient) { state.search_patient = patient }, update_preffix(state, val) { state.preffix = val }, update_patient_name(state, val) { state.patient_name = val }, update_suffix(state, val) { state.suffix = val }, update_patients(state, data) { state.patients = data }, update_selected_patient(state, val) { state.selected_patient = val }, update_sampletypes(state, data) { state.sampletypes = data }, update_selected_sampletype(state, val) { state.selected_sampletype = val }, update_stations(state, val) { state.stations = val }, update_selected_station(state, val) { state.selected_station = val }, update_statuses(state, val) { state.statuses = val }, update_selected_status(state, val) { state.selected_status = val }, update_phone(state, val) { state.phone = val }, update_email(state, val) { state.email = val }, update_hp(state, val) { state.hp = val }, update_pj(state, val) { state.pj = val }, update_dpj(state, val) { state.dpj = val }, update_clinic(state, val) { state.clinic = val }, update_marketing_confirm(state, val) { state.marketing_confirm = val }, update_is_default(state, val) { state.is_default = val }, update_save_status(state, val) { state.save_status = val }, update_btn_save_seen(state, val) { state.btn_save_seen = val }, update_pgrs_save(state, val) { state.pgrs_save = val }, update_save_error_message(state, msg) { state.save_error_message = '' }, update_no_save(state, val) { state.no_save = val }, update_open_alert_confirmation(state, val) { state.open_alert_confirmation = val }, update_alert_success(state, val) { state.alert_success = val }, update_msg_success(state, val) { state.msg_success = val }, update_dialog_success(state, val) { state.dialog_success = val }, update_dialog_confirmation_delete(state, val) { state.dialog_confirmation_delete = val }, update_msg_confirmation_delete(state, val) { state.msg_confirmation_delete = val }, update_dialog_confirmation_delete_addr(state, val) { state.dialog_confirmation_delete_addr = val }, update_msg_confirmation_delete_addr(state, val) { state.msg_confirmation_delete_addr = val }, update_addresses(state, val) { state.addresses = val }, update_autocomplete_status(state,val){ state.autocomplete_status = val }, update_dialog_form_address(state, val) { state.dialog_form_address = val }, update_label_address(state, val) { state.label_address = val }, update_cities(state, val) { state.cities = val }, update_city_address(state, val) { state.city_address = val }, update_districts(state, val) { state.districts = val }, update_district_address(state, val) { state.district_address = val }, update_kelurahans(state, val) { state.kelurahans = val }, update_kelurahan_address(state, val) { state.kelurahan_address = val }, update_description_address(state, val) { state.description_address = val }, update_search_status(state, val) { state.search_status = val }, update_errors(state, val) { state.errors = val }, update_total_patients(state, val) { state.total_patients = val }, update_dialog_action(state, val) { state.dialog_action = val }, update_msg_action(state, val) { state.msg_action = val } }, actions: { async search(context, prm) { context.commit("update_search_patient", 1) try { prm.token = one_token() let resp = await api.search(prm) if (resp.status != "OK") { context.commit("update_search_patient", 3) context.commit("update_search_error_message", resp.message) } else { context.commit("update_search_patient", 2) context.commit("update_search_error_message", "") let data = { records: resp.data.records, total: resp.data.total } context.commit("update_patients", data.records) context.commit("update_total_patients", data.total) //context.commit("update_total_page", data.total) context.commit("update_no_save", 0) if(prm.lastid === -1){ var pat = data.records[0] if(data.records.length === 0){ context.commit("update_selected_patient", {}) context.commit("update_sampletypes", {}) }else{ context.commit("update_selected_patient", data.records[0]) } } else{ console.log("oyyeee") context.commit("update_selected_patient", data.records[prm.lastid]) var pat = data.records[prm.lastid] } } } catch (e) { context.commit("update_search_patient", 3) context.commit("update_search_error_message", e.message) console.log(e) } }, async getstationstatus(context,prm) { context.commit("update_get_data_status",1) try { let resp= await api.getstationstatus(one_token()) if (resp.status != "OK") { context.commit("update_get_data_status",3) } else { context.commit("update_get_data_status",2) let data = { records : resp.data.records, total: resp.data.total } context.commit("update_stations",data.records.stations) context.commit("update_selected_station",data.records.stations[0]) context.commit("update_statuses",data.records.statuses) context.commit("update_selected_status",data.records.statuses[0]) context.commit("update_filter_sampletype",data.records.sampletypes) //prm.stationid = data.records.stations[0].id //prm.statusid = data.records.statuses[0].id prm.nolab = '' //prm.sampletypeid = -1 if(data.records.sampletypes.length > 0){ var idx_sampletypeid = _.findIndex(data.records.sampletypes, function(o) { return o.id === prm.sampletypeid }) if(idx_sampletypeid === -1){ prm.sampletypeid = data.records.sampletypes[0].id context.commit("update_selected_filter_sampletype",data.records.sampletypes[0]) } else context.commit("update_selected_filter_sampletype",data.records.sampletypes[idx_sampletypeid]) } context.dispatch("search",prm) } } catch(e) { context.commit("update_get_data_status",3) } }, async getdatanoterequirement(context,prm) { context.commit("update_get_data_status",1) try { prm.token = one_token() console.log(prm) let resp= await api.getdatanoterequirement(prm) if (resp.status != "OK") { context.commit("update_get_data_status",3) } else { context.commit("update_get_data_status",2) let data = { records : resp.data.records, total: resp.data.total } context.commit("update_notes",data.records['notes']) context.commit("update_note_requirement",data.records['reqs']) context.commit("update_dialog_note_requirement",true) //context.dispatch("search",prm) } } catch(e) { context.commit("update_get_data_status",3) } }, async getrequirements(context,prm) { context.commit("update_get_data_status",1) try { prm.token = one_token() let resp= await api.getrequirements(prm) if (resp.status != "OK") { context.commit("update_get_data_status",3) } else { context.commit("update_get_data_status",2) let data = { records : resp.data.records, total: resp.data.total } context.commit("update_requirements",data.records) context.commit("update_dialog_requirement",true) } } catch(e) { context.commit("update_get_data_status",3) } }, search_patient_enter(context,prm) { context.commit("update_get_data_status",1) //console.log(prm) //console.log(context.state.nolab) if(context.state.nolab === ''){ // console.log(prm) var xsearch = prm.search if(xsearch.length == 12){ console.log(xsearch) var sampletypes = context.state.patients var selected = _.filter(sampletypes, function(o) { return o.T_BarcodeLabBarcode.substring(0, o.T_BarcodeLabBarcode.length - 1) === xsearch }) var send_sampletypes = context.rootState.samplesend.patients console.log(send_sampletypes) var send_selected = _.filter(send_sampletypes, function(o) { return o.T_BarcodeLabBarcode.substring(0, o.T_BarcodeLabBarcode.length - 1) === xsearch }) console.log(send_selected) if(selected.length > 0){ selected.forEach(function(value) { var idx = _.findIndex(sampletypes, function(o) { return o.T_OrderSampleID == value.T_OrderSampleID }) if(value.status === 'D'){ sampletypes[idx].requirement_status = 'Y' context.commit("update_patients",sampletypes) sampletypes[idx].requirements.forEach((el)=>{el.chex = "N"}) } if(value.status === 'D' && value.requirement_status !== 'X'){ context.commit("update_act",'verify') context.commit("update_selected_patient",value) context.commit("update_btn_hide",true) var act = context.state.act var trxs = context.state.patients var trx = context.state.selected_patient var idx = _.findIndex(trxs, item => item.T_BarcodeLabID === trx.T_BarcodeLabID) context.dispatch("doaction",{ act:act, orderid:trx.T_OrderHeaderID, sampleid:trx.T_SampleTypeID, barcodeid:trx.T_BarcodeLabID, sample:trx, nolab:'', sampletypeid: context.state.selected_filter_sampletype.id, lastid: -1 }) } }) } if(send_selected.length > 0){ context.commit("samplesend/update_act",'send',{root:true}) context.commit("samplesend/update_selected_patient",send_selected,{root:true}) context.commit("samplesend/update_btn_hide",true,{root:true}) var trx = context.rootState.samplesend.selected_patient context.dispatch("samplesend/doaction",{ act:context.rootState.samplesend.act, sample:trx, nolab:'', sampletypeid: context.rootState.samplesend.selected_filter_sampletype.id, lastid: -1 },{root:true}) } } } }, async save(context,prm) { context.commit("update_save_status",1) try { prm.token = one_token() let resp= await api.save(prm) if (resp.status != "OK") { context.commit("update_save_status",3) } else { context.commit("update_save_status",2) context.commit("update_last_id", prm.M_patientID) context.commit("update_dialog_success", true) var msg = "Data dokter " + prm.M_patientName + " sudah terupdate dong ..." context.commit("update_msg_success", msg) } } catch(e) { context.commit("update_save_status",3) } }, async receivesample(context,prm) { context.commit("update_save_status",1) try { prm.token = one_token() let resp= await api.doaction(prm) if (resp.status != "OK") { context.commit("update_save_status",3) } else { context.commit("update_save_status",2) //prm.search.lastid = -1 context.dispatch("getstationstatus",{ nolab:context.state.nolab, sampletypeid: context.state.selected_filter_sampletype.id, lastid: -1 }) } } catch(e) { context.commit("update_save_status",3) } }, async saverequirement(context,prm) { context.commit("update_save_status",1) try { prm.token = one_token() let resp= await api.saverequirement(prm) if (resp.status != "OK") { context.commit("update_save_status",3) } else { context.commit("update_save_status",2) context.commit("update_dialog_requirement", false) } } catch(e) { context.commit("update_save_status",3) } }, async newpatient(context,prm) { context.commit("update_save_status",1) try { prm.token = one_token() let resp= await api.newpatient(prm) if (resp.status != "OK") { context.commit("update_save_status",3) } else { context.commit("update_save_status",2) console.log(resp.data.id) context.commit("update_last_id", resp.data.id) context.commit("update_dialog_success", true) var msg = "Data dokter " + prm.M_patientName + " sudah tersimpan dong ..." context.commit("update_msg_success", msg) } } catch(e) { context.commit("update_save_status",3) } }, async delete(context,prm) { context.commit("update_save_status",1) try { prm.token = one_token() let resp= await api.xdelete(prm) if (resp.status != "OK") { context.commit("update_save_status",3) } else { context.commit("update_save_status",2) context.commit("update_last_id", 0) context.commit("update_dialog_confirmation_delete",false) context.commit("update_dialog_success", true) var msg = "Data dokter " + prm.M_patientName + " sudah dihapus dong ..." context.commit("update_msg_success", msg) context.commit("update_preffix",'') context.commit("update_patient_name",'') context.commit("update_suffix",'') context.commit("update_selected_sex",{}) context.commit("update_selected_religion",{}) context.commit("update_phone",'') context.commit("update_email",'') context.commit("update_hp",'') context.commit("update_pj",'N') context.commit("update_dpj",'N') context.commit("update_clinic",'N') context.commit("update_marketing_confirm",'N') context.commit("update_is_default",'N') } } catch(e) { context.commit("update_save_status",3) } }, async getaddress(context,prm) { context.commit("update_save_status",1) try { prm.token = one_token() let resp= await api.getaddress(prm) if (resp.status != "OK") { context.commit("update_save_status",3) } else { context.commit("update_save_status",2) let data = { records : resp.data.records, total: resp.data.total } context.commit("update_addresses",data.records) } } catch(e) { context.commit("update_save_status",3) } }, async searchcity(context,prm) { context.commit("update_autocomplete_status",1) try { let resp= await api.searchcity(one_token(),prm) if (resp.status != "OK") { context.commit("update_autocomplete_status",3) } else { context.commit("update_autocomplete_status",2) let data = { records : resp.data.records, total: resp.data.total } context.commit("update_cities",resp.data.records) } } catch(e) { context.commit("update_autocomplete_status",3) } }, async getdistrict(context,prm) { context.commit("update_get_data_status",1) try { let resp= await api.getdistrict(one_token(),prm) if (resp.status != "OK") { context.commit("update_get_data_status",3) } else { context.commit("update_get_data_status",2) let data = { records : resp.data.records, total: resp.data.total } context.commit("update_districts",resp.data.records) } } catch(e) { context.commit("update_get_data_status",3) } }, async search_staff(context,prm) { context.commit("update_get_data_status",1) try { prm.token = one_token() let resp= await api.search_staff(prm) if (resp.status != "OK") { context.commit("update_get_data_status",3) } else { context.commit("update_get_data_status",2) let data = { records : resp.data.records, total: resp.data.total } if(data.records) context.commit("update_staff",resp.data.records) else{ context.commit("update_staff",{id:0,code:'',name:'STAF TIDAK DITEMUKAN',code:'',userid:''}) } } } catch(e) { context.commit("update_get_data_status",3) } }, search_patient(context,prm) { context.commit("update_get_data_status",1) prm.token = one_token() context.commit("update_nolab",prm.search) var serach = prm.search prm.stationid = context.state.selected_station.id prm.statusid = context.state.selected_status.id prm.nolab = serach prm.searchx = serach prm.name = '' prm.lastid = -1 window.key_enter = '' context.dispatch("search",prm) }, async getkelurahan(context,prm) { context.commit("update_get_data_status",1) try { let resp= await api.getkelurahan(one_token(),prm) if (resp.status != "OK") { context.commit("update_get_data_status",3) } else { context.commit("update_get_data_status",2) let data = { records : resp.data.records, total: resp.data.total } context.commit("update_kelurahans",resp.data.records) } } catch(e) { context.commit("update_get_data_status",3) } }, async savenewaddress(context,prm) { context.commit("update_save_status",1) try { prm.token = one_token() let resp= await api.savenewaddress(prm) if (resp.status != "OK") { context.commit("update_save_status",3) } else { context.commit("update_save_status",2) context.commit("update_dialog_form_address",false) context.commit("update_last_id", prm.M_patientAddressM_patientID) context.commit("update_dialog_success", true) var msg = "Penambahan data alamat dokter " + prm.M_patientName + " sudah berhasil dong ..." context.commit("update_msg_success", msg) } } catch(e) { context.commit("update_save_status",3) } }, async saveeditaddress(context,prm) { context.commit("update_save_status",1) try { prm.token = one_token() let resp= await api.saveeditaddress(prm) if (resp.status != "OK") { context.commit("update_save_status",3) } else { context.commit("update_save_status",2) context.commit("update_dialog_form_address",false) context.commit("update_last_id", prm.M_patientAddressM_patientID) context.commit("update_dialog_success", true) var msg = "Perubahan data alamat dokter " + prm.M_patientName + " sudah berhasil dong ..." context.commit("update_msg_success", msg) } } catch(e) { context.commit("update_save_status",3) } }, async deleteaddress(context,prm) { context.commit("update_save_status",1) try { prm.token = one_token() let resp= await api.deleteaddress(prm) if (resp.status != "OK") { context.commit("update_save_status",3) } else { context.commit("update_save_status",2) context.commit("update_dialog_confirmation_delete_addr",false) context.commit("update_last_id", prm.M_patientAddressM_patientID) context.commit("update_dialog_success", true) var msg = "Penghapusan data alamat "+prm.M_patientAddressNote+" dari dokter " + prm.M_patientName + " sudah berhasil dong ..." context.commit("update_msg_success", msg) } } catch(e) { context.commit("update_save_status",3) } }, async getsampletypes(context,prm) { context.commit("update_save_status",1) try { prm.token = one_token() let resp= await api.getsampletypes(prm) if (resp.status != "OK") { context.commit("update_save_status",3) } else { context.commit("update_save_status",2) let data = { records : resp.data.records, total: resp.data.total } context.commit("update_sampletypes",data.records['sampletypes']) context.commit("update_information_bahan",data.records['information_bahan']) } } catch(e) { context.commit("update_save_status",3) } }, async doaction(context,prm) { context.commit("update_save_status",1) try { prm.token = one_token() let resp= await api.doaction(prm) if (resp.status != "OK") { context.commit("update_save_status",3) } else { context.commit("update_save_status",2) let data = { records : resp.data.records, total: resp.data.total } context.commit("update_act",'-') context.commit("update_btn_hide",false) if(data.records['status'] === 'OK'){ var localprm = { nolab:context.state.nolab, sampletypeid: context.state.selected_filter_sampletype.id, lastid: -1 } context.dispatch("getstationstatus",localprm) var nexttableprm = { nolab:context.rootState.samplesend.nolab, sampletypeid : context.rootState.samplesend.selected_filter_sampletype.id, lastid: -1 } context.dispatch("samplesend/search",nexttableprm,{root:true}) } } } catch(e) { context.commit("update_save_status",3) } } } }