import {ref} from "vue";
import {maZuiFangShi} from "@/api/public-api";
import store from '@/store';
import {listIsBlank, stringIsBlank} from "@/utils/blank-utils";
import {getFundPayType, getMedChrgitmType} from "@/api/medical-insurance/si-setl-upload";
import {getFormatDatetime} from "@/utils/date";
const getRoles = store.state.user.info.roles
export function shenHeQuanXian() {
return getRoles.indexOf(1) > -1 || getRoles.indexOf(8) > -1
}
/**
* 获取医保诊断
* @param val 诊断编码
* @returns {string} 返回名称
*/
export function getsiDiagTypeName(val) {
switch (val) {
case "1":
return "西医主要诊断"
case "2":
return "西医其他诊断"
case "3":
return "中医主要诊断"
case "4":
return "中医其他诊断"
default:
return "没有选择"
}
}
/**
* 判断这个人是否有申请了
* @param val
* @returns {string}
*/
export function auditName(val) {
switch (val.auditFlag) {
case 0:
return `${val.psnName}`
case 1:
return `${val.psnName}`
case 2:
return `${val.psnName}`
case 3:
return `${val.psnName}`
default:
return `${val.psnName}`
}
}
export const qks = ref([
{code: '0/0', name: '0/0'},
{code: '1/3', name: 'Ⅰ/丙'},
{code: '1/1', name: 'Ⅰ/甲'},
{code: '1/2', name: 'Ⅰ/乙'},
{code: '2/3', name: 'Ⅱ/丙'},
{code: '2/1', name: 'Ⅱ/甲'},
{code: '2/2', name: 'Ⅱ/乙'},
{code: '3/3', name: 'Ⅲ/丙'},
{code: '3/1', name: 'Ⅲ/甲'},
{code: '3/2', name: 'Ⅲ/乙'}
])
export const auditFlags = ref([
{code: 0, name: '待审核'},
{code: 1, name: '审核通过'},
{code: 2, name: '驳回'},
{code: 3, name: '正在审核'},
{code: 4, name: '全部'},
])
/**
*
* @param qkjb 切口级别
* @param yhqk 愈合级别
* @returns {string} 返回信息
*/
export function qieKouName(qkjb, yhqk) {
let code = qkjb + '/' + yhqk
let name = ''
qks.value.forEach(item => {
if (item.code === code) {
return name = item.name
}
})
return name
}
/**
*
* @type {ToRef<*[]>} 麻醉数组
*/
export const maZuiFangShis = ref([])
/**
* 远程获取麻醉方式
*/
maZuiFangShi().then((res) => {
maZuiFangShis.value = res
})
/**
* 麻醉的名字
* @param val code
* @returns {string} 名称
*/
export function maZuiName(val) {
let name = '未知'
maZuiFangShis.value.forEach(item => {
if (item.code === val) {
return name = item.name
}
})
return name
}
/**
* 医生默认可以默认选择的信息
* @param arr 数组
* @param notNode 不需要的 code
* @returns {*[]} 返回科室
*/
export function huoQuZhongKongChaXunTiaoJian(arr, notNode) {
let data = []
arr.forEach(item => {
if (notNode.indexOf(item.code) === -1) {
data.push(item.code)
}
})
return data
}
/* 打印结算单的一些工具类 */
export function brdyName(val) {
if (stringIsBlank(val)) {
return ""
}
let name = val.split("-")
return `${name[0]}年${name[1]}月${name[2]}日`
}
/* 入院时间拆分 */
export function getDateName(val) {
if (stringIsBlank(val)) {
return ""
}
let date = val.split(" ")[0].split("-")
let times = val.split(" ")[1].split(":")
return `${date[0]}年${date[1]}月${date[2]}日 ${times[0]}时`
}
// 手术时间拆分
export function getShouShuShiJian(val) {
let {oprnOprtBegntime, oprnOprtEndtime} = val
let format = 'YYYY年MM月DD日 HH时mm分ss秒'
return `${getFormatDatetime(oprnOprtBegntime, format)} 至 ${getFormatDatetime(oprnOprtEndtime, format)}`
}
// 麻醉时间
export function getMaZuiShiJian(val) {
let {anstBegntime, anstEndtime} = val
let format = 'YYYY年MM月DD日 HH时mm分ss秒'
return `${getFormatDatetime(anstBegntime, format)} 至 ${getFormatDatetime(anstEndtime, format)}`
}
// 颅内时间拆分
export function luNeiShiJian(val) {
if (stringIsBlank(val)) {
return ""
}
let data = val.split("/")
return ` ${data[0]}天 ${data[1]}小时 ${data[2]}分钟`
}
//结算时间计算
export function nianYueRi(val) {
if (stringIsBlank(val)) {
return ' 年 月 日'
}
let date = val.split("-")
return `${date[0]}年${date[1]}月${date[2]}日`
}
export function getAge(val) {
if (stringIsBlank(val)) {
return ""
}
return val.split('.')[0];
}
export function getAdmissCond(val) {
switch (val) {
case 1:
return "有"
case 2:
return "临床未确定"
case 3:
return "情况不明"
case 4:
return "无"
default:
return ""
}
}
export function getXiYiZhenDuan(val) {
if (listIsBlank(val)) {
return []
}
let diag = []
val.forEach(item => {
if (item.siDiagType === '1' || item.siDiagType === '2') {
diag.push(item)
}
})
if (listIsBlank(diag)) {
return []
}
let zhuYao = []
let ciYao = []
diag.forEach(item => {
if (item.siDiagType === '1' && zhuYao.length === 0) {
zhuYao.push(item)
} else {
ciYao.push(item)
}
})
return zhuYao.concat(ciYao)
}
export function getZhongYiZhenDuan(val) {
if (listIsBlank(val)) {
return []
}
let diag = []
val.forEach(item => {
if (item.siDiagType === '3' || item.siDiagType === '4') {
diag.push(item)
}
})
if (listIsBlank(diag)) {
return []
}
let zhuYao = []
let ciYao = []
diag.forEach(item => {
if (item.siDiagType === '3' && zhuYao.length === 0) {
zhuYao.push(item)
} else {
ciYao.push(item)
}
})
return zhuYao.concat(ciYao)
}
export function zhenDuanData(val) {
let xiYiData = []
let zhongYiData = []
let obj = {disDiagComment: '', disDiag: '', admissCond: ''}
// 只有当诊断全部为空的 时候才创建 9 个 空的数据
if (listIsBlank(val)) {
for (let i = 0; i < 9; i++) {
xiYiData.push(obj)
zhongYiData.push(obj)
}
}
xiYiData = getXiYiZhenDuan(val)
zhongYiData = getZhongYiZhenDuan(val)
let maxLength = xiYiData.length > zhongYiData.length ? xiYiData.length : zhongYiData.length
let newXiYiData = []
let newZhongYiData = []
if (maxLength < 2) {
maxLength = 9
}
for (let i = 0; i < maxLength; i++) {
if (i >= xiYiData.length) {
newXiYiData.push(obj)
} else {
newXiYiData.push(xiYiData[i])
}
if (i >= zhongYiData.length) {
newZhongYiData.push(obj)
} else {
newZhongYiData.push(zhongYiData[i])
}
}
return zhenDuanHeBing(newXiYiData, newZhongYiData)
}
export function zhenDuanHeBing(xiYiZhenDuan, ZhongYiZhenDuan) {
// 因为我在上面 保证了 两个诊断的长度完全一致 所以怎么循环都可以
let data = []
for (let i = 0; i < xiYiZhenDuan.length; i++) {
data.push({
xiYiDisDiag: xiYiZhenDuan[i].disDiag,
xiYiDisDiagComment: xiYiZhenDuan[i].disDiagComment,
xiYiAdmissCond: xiYiZhenDuan[i].admissCond,
ZhongYiDisDiag: ZhongYiZhenDuan[i].disDiag,
ZhongYiDiagComment: ZhongYiZhenDuan[i].disDiagComment,
ZhongYiAdmissCond: ZhongYiZhenDuan[i].admissCond,
})
}
return data
}
export function getShouShuData(val) {
if (listIsBlank(val)) {
let kong = []
for (let i = 0; i < 3; i++) {
kong.push({
ssmc: '',
ssbm: '',
mzff: '',
ssysName: '',
ssys: '',
mzysName: '',
mzys: '',
})
}
return kong
}
let zhuYaoShouShu = []
let ciYaoShouShu = []
val.forEach(item => {
if (item.ssjb === 4 && zhuYaoShouShu.length === 0) {
zhuYaoShouShu.push(item)
} else {
ciYaoShouShu.push(item)
}
})
return zhuYaoShouShu.concat(ciYaoShouShu)
}
// 重症监护类型
export function zhongZhenJianHu(val) {
if (val === null) {
val = []
}
let data = []
if (listIsBlank(val)) {
data.push({
scsCutdWardType: '',
scsCutdInpoolTime: '',
scsCutdExitTime: '',
scsCutdSumDura: '',
})
return data
}
val.forEach(item => {
item.scsCutdInpoolTime = nianYueRiShiFen(item.scsCutdInpoolTime)
item.scsCutdExitTime = nianYueRiShiFen(item.scsCutdExitTime)
item.scsCutdSumDura = zhongZhenShiFenMiao(item.scsCutdSumDura)
})
return val
}
export function nianYueRiShiFen(val) {
if (stringIsBlank(val)) {
return ""
}
let date = val.split(" ")[0].split("-")
let times = val.split(" ")[1].split(":")
return `${date[0]}年${date[1]}月${date[2]}日${times[0]}时${times[1]}分`
}
export function zhongZhenShiFenMiao(val) {
if (stringIsBlank(val)) {
return ""
}
let times = val.split("/")
return `${times[0]}时${times[1]}分${times[2]}秒`
}
// 获取费用类型
export let medChrgitmType = []
export let medChrgitmTypeMap = {}
getMedChrgitmType().then((res) => {
medChrgitmType = res
medChrgitmType.forEach(item => {
medChrgitmTypeMap[item.code] = {name: item.name}
})
})
export function getMedChrgitmTypeData(val) {
let data = []
if (listIsBlank(val)) {
medChrgitmType.forEach(item => {
data.push({
medChrgitm: item.name,
amt: '',
claaSumfee: '',
clabAmt: '',
fulamtOwnpayAmt: '',
othAmt: '',
})
})
data.push({
medChrgitm: "合计",
amt: 0,
claaSumfee: 0,
clabAmt: 0,
fulamtOwnpayAmt: 0,
othAmt: 0,
})
return data
}
val.sort(function (a, b) {
return a.medChrgitm - b.medChrgitm
})
data = val
return data
}
// 医保统筹支付
export let fndPayTypeData = []
export let fndPayTypeMap = {}
getFundPayType().then(res => {
fndPayTypeData = res
fndPayTypeData.forEach(item => {
fndPayTypeMap[item.code] = {code: item.code, name: item.name}
})
})
export function fenLeiZhiFuLeiXing(val) {
let obj = {}
let qiTa = []
let shuShiHua = ['310100', '330100', '390200', '320100', '610100', "370100"]
for (let i = 0; i < shuShiHua.length; i++) {
obj[shuShiHua[i]] = {
fundPayType: shuShiHua[i],
fundPayamt: "",
}
}
val.forEach(item => {
let name = fndPayTypeMap.hasOwnProperty(item.fundPayType)
if (shuShiHua.indexOf(item.fundPayType) > -1) {
obj[item.fundPayType] = {
fundPayType: item.fundPayType,
fundPayamt: item.fundPayamt,
name: name ? fndPayTypeMap[item.fundPayType].name : ""
}
} else {
qiTa.push({
fundPayType: item.fundPayType,
fundPayamt: item.fundPayamt,
name: name ? fndPayTypeMap[item.fundPayType].name : "其他"
})
}
})
if (listIsBlank(qiTa)) {
qiTa.push({
fundPayType: "",
fundPayamt: "",
name: ""
})
}
return {obj, qiTa}
}
export const outpatientChronicDisease = (list) => {
let data = []
if (listIsBlank(list)) {
for (let i = 0; i < 6; i++) {
data.push({
diagCode: '',
diagName: '',
oprnOprtCode: '',
oprnOprtName: '',
})
}
} else {
return list
}
return data
}