Files
2026-04-27 10:13:31 +07:00

329 lines
12 KiB
JavaScript

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: [],
reqstate: "Y"
},
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
},
update_reqstate(state, v) {
state.reqstate = 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,
// requirement
req_status : sample.req_status,
reqs : sample.req_status == "Y" ? [] : context.state.selected_requirements,
order_sample_id : sample.order_sample_id
}
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 )
}
}
}
}