import * as api from "../api/sampling.js" window.api = api export default { namespaced : true, state : { samples : [], selected_sample : {}, snackbar : { status : false, text : 'Some text', timeout : 3000 }, ver_photo : { checked : false, note : "" }, note_sampling : '', note_fo : '', if_ver_photo : false, supervisor_dialog_is_active : false, note_supervisor : "", // barcode dialog_barcode: false, selected_barcodes: [], // requirement dialog_requirement: false, requirements: [], selected_requirements: [] }, mutations : { update_samples(state, data) { state.samples = [] setTimeout(function() { state.samples = data.records }, 100) }, update_sample(state, data) { let x = state.samples let y = data.records for (let i in x) { if (x[i].order_id == y.order_id && x[i].sample_id == y.sample_id && x[i].barcode == y.barcode) x[i] = y } state.samples = x }, update_selected_sample(state, data) { state.selected_sample = data }, update_snackbar(state, data) { state.snackbar = data }, update_ver_photo(state, data) { state.ver_photo = data }, update_note_sampling(state, data) { state.note_sampling = data }, update_note_fo(state, data) { state.note_fo = data }, update_if_ver_photo(state, data) { state.if_ver_photo = data }, update_supervisor_dialog_is_active(state, data) { state.supervisor_dialog_is_active = data }, update_note_supervisor(state, data) { state.note_supervisor = data }, update_dialog_barcode(state, v) { state.dialog_barcode = v }, update_selected_barcodes(state, v) { state.selected_barcodes = v }, update_requirements(state, v) { state.requirements = v }, update_selected_requirements(state, v) { state.selected_requirements = v }, update_dialog_requirement(state, v) { state.dialog_requirement = v } }, actions : { async get_samples(context, prm) { // context.commit("update_search_status", 1) try { let resp= await api.get_samples(prm.order_id, prm.station_id) 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_samples", data) } } catch(e) { console.log(e) // context.commit("update_search_status", 3) // context.commit("update_search_error_message", e.message ) } }, async get_sample(context, prm) { // context.commit("update_search_status", 1) try { let resp= await api.get_sample(prm.order_id, prm.sample_id, prm.barcode) 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_sample", data) } } catch(e) { console.log(e) // context.commit("update_search_status", 3) // context.commit("update_search_error_message", e.message ) } }, async save(context) { // context.commit("update_search_status", 1) let sample = context.state.selected_sample if (!sample.sampling_time.match(/(?:[01]\d|2[0123]):(?:[012345]\d)/g)) { alert('Cek kembali isian Sampling Time') return } let json_data = { sampling_date : sample.sampling_date, sampling_time : sample.sampling_time, receive_date : sample.receive_date, receive_time : sample.receive_time, // verification photo ver_photo : context.state.ver_photo.checked ? "Y" : "N", ver_photo_note : context.state.ver_photo.note, // note sampling note_sampling : context.state.note_sampling } try { let resp= await api.save(one_token(), sample.order_id, sample.sample_id, sample.barcode, json_data) 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","") // requirement let req_status = context.rootState.patient.req_status context.dispatch('save_requirement', req_status) context.commit('update_snackbar', {status:true, text:'Data Sampling telah disimpan', timeout: 3000}) context.dispatch('get_sample', { order_id:context.state.selected_sample.order_id, sample_id:context.state.selected_sample.sample_id, barcode:context.state.selected_sample.barcode }) // UPDATE STATUSES let x = context.rootState.patient.patients let y = context.rootState.patient.total_patient for (let i in x) { if (x[i].T_OrderHeaderID == context.rootState.patient.selected_patient.order_id) { x[i].call_status_id = resp.data.data.call_status_id x[i].call_status_code = resp.data.data.call_status_code x[i].status_code = resp.data.data.status_code } } context.commit('queue/update_call_status', 'QUE.Sampling.Done', {root:true}) context.commit('patient/update_patients', {records:x, total:y}, {root:true}) } } catch(e) { console.log(e) // context.commit("update_search_status", 3) // context.commit("update_search_error_message", e.message ) } }, async save_note_supervisor(context) { try { let resp = await api.save_note_supervisor(context.rootState.patient.selected_patient.order_id, context.state.note_supervisor) 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","") context.commit('update_supervisor_dialog_is_active', false) } } catch(e) { console.log(e) // context.commit("update_search_status", 3) // context.commit("update_search_error_message", e.message ) } }, async barcode_add(context, data) { try { let resp = await api.barcode_add(one_token(), data.order_id, data.sample_id) 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","") context.dispatch('get_samples', { order_id:data.order_id, station_id:context.rootState.patient.selected_station.id }) } } catch(e) { console.log(e) // context.commit("update_search_status", 3) // context.commit("update_search_error_message", e.message ) } }, async get_requirement(context) { // context.commit("update_search_status", 1) try { let resp= await api.get_requirement() 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","") context.commit("update_requirements", resp.data) } } catch(e) { console.log(e) // context.commit("update_search_status", 3) // context.commit("update_search_error_message", e.message ) } }, async save_requirement(context, status) { // context.commit("update_search_status", 1) try { let resp= await api.save_requirement(one_token(), context.rootState.patient.selected_patient.order_id, context.rootState.patient.selected_station.id, status, JSON.stringify(context.state.selected_requirements)) 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","") context.commit('update_dialog_requirement', false) context.commit('patient/update_req', { req_status:status, reqs:context.state.selected_requirements}, {root:true}) let p = context.rootState.patient let patients = {records:p.patients, total:p.total_patient} for (let i in patients.records) if (patients.records[i].T_OrderHeaderID == p.selected_patient.order_id) { patients.records[i].req_status = status; patients.records[i].reqs = context.state.selected_requirements; } context.commit('patient/update_patients', patients, {root:true}) } } catch(e) { console.log(e) // context.commit("update_search_status", 3) // context.commit("update_search_error_message", e.message ) } } } }