Files
FE_CPONE/test/vuex/one-fo-registration-walk-in/modules/patient.js
2026-04-27 10:13:31 +07:00

486 lines
17 KiB
JavaScript

// 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 )
}
},
}
}