123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420 |
- import {json,expJson} from '@utils/ajax';
- import {SET,PRESET} from '@types/checkBody';
- import {SETDATA} from '@store/types/otherHistory';
- import store from '@store';
- import {getEMRParams,didPushParamChange,inspectAndAssist,fullfillText,checkFullfillText,deepClone,filterDataArr,pushAllDataList} from '@utils/tools';
- import Notify from '@commonComp/Notify';
- import {billing} from '@store/async-actions/pushMessage';
- import {SETOTHERHISTORY,ISREAD} from "../types/homePage";
- import config from "@config/index";
- import {CURRENT_CHRONIC} from '@store/types/currentIll';
- import {MODI_LOADING} from '@store/types/homePage';
- import {GET_ALL_HIS,FILTER_ALL_HIS} from '@store/types/emergencyHis';
- import {SET_IMPORT_CHECKBODY_LABEL,REPUSH_CHECK_LABELS} from "../types/checkBody";
- import {getBigPush} from '@utils/utils';
- const api={
- // getSpreadModule:'/questionInfo/getByIds',
- getSpreadModule:'/questionInfo/getByIds2',//优化
- getModule:'/questionInfo/getById',
- searchURL: 'retrieval/index',
- getOtherHisRecord: '/inquiryInfo/getLastOther',
- saveMode:'/doctorPageMode/saveDoctorPageModes',
- getSymptomFeature:'/feature/getSymptomFeature',
- getAssess:'/evaluationModuleMapping/getEvaluationModules', //获取管理评估-慢病
- getIndexData:'/indexData/getIndexDatas', //获取指标数据-图表-慢病
- // getFormulaResult:'/push/calculate', // 计算接口
- getFormulaResult:'/calc/calculate', // 计算接口
- getAssessHis:'/inquiryInfo/getEvaluations', //历史评估记录
- getAllHisURL:'/inquiryInfo/hisInquirysForJz', //全科历史病历
- downloadURL:'/inquiryInfo/exportInquirys', //全科历史病历--导出
- addSecondDia:'/inquiryInfo/addDiagnoseSecond', //全科历史病历--添加二次诊断
- getMedicalTypes:'/dictionaryInfo/getList', //获取医学知识搜索分类
- };
- export const getFeature = (item)=>{
- const datas = json(api.getSymptomFeature+'?text='+encodeURIComponent(item),{});
- return datas;
- }
- //获取医学知识搜索分类
- export const getMedicalFilters = ()=>{
- return json(api.getMedicalTypes,{});
- };
- //获取模板,多个
- export const getModules = (ids)=>{
- const {patInfo} = store.getState();
- const param = {
- "age": patInfo.message.patientAge,
- "ids": ids,
- "sexType": patInfo.message.sex
- };
- const modules = json(api.getSpreadModule,param);
- return modules;
- };
- //获取单个模板
- export const getModule = (id)=>{
- const {patInfo} = store.getState();
- const param = {
- "age": patInfo.message.patientAge,
- "id": id,
- "sexType": patInfo.message.sex
- };
- return json(api.getModule,param);
- };
- //搜索接口
- export const getSearch = (param)=>{
- const {patInfo} = store.getState();
- const {inpStr,boxMark,mainIds,itemType} = param;
- let params = {};
- if(itemType==0){//主诉,仅限症状
- params = {
- "age": patInfo.message.patientAge,
- "inputIds":mainIds&&mainIds.length>0?mainIds:[],//主诉去重
- "inputStr": inpStr.trim(),
- "sexType": patInfo.message.sex,
- "type": boxMark, //1为主诉现病史
- "itemType":itemType
- };
- }else{
- params = {
- "age": patInfo.message.patientAge,
- "inputIds":mainIds&&mainIds.length>0?mainIds:[],//主诉去重
- "inputStr": inpStr.trim(),
- // "inputStr": inpStr,
- "sexType": patInfo.message.sex,
- "type": boxMark //1为搜症状
- };
- }
- return json(api.searchURL,params);
- };
- //其他史最近记录获取
- export const getOtherHisRecord = ()=>{
- return (dispatch,getStore)=>{
- const state = getStore();
- const {message} =state.patInfo;
- const param = {
- hospitalCode:message.hospitalCode,
- patientCode:message.patientCode,
- };
- json(api.getOtherHisRecord,param).then((res)=>{
- if(res.data.code=='0'){
- const data = res.data.data;
- const obj = JSON.parse(data.dataJson||'{}');
- const objStr = JSON.parse(data.otherStr||'[]');
- let arr = [];//console.log(obj)
- if((!obj||!obj.other||obj.other.length==0)&&!objStr[0]){ //无其他史历史记录用默认模板
- /*if(mode=='1'){ //文本模式
- dispatch({
- type:SETOTHERHISTORY,
- data:[],
- selecteds:[],
- save:[]
- });
- }*/
- }else{
- const text = filterDataArr(objStr);
- dispatch({
- type:SETOTHERHISTORY,
- data:[{tagType:8,name:'',controlType:0,value:text}],
- /*period:{
- yjs_1: obj.yjs_1,
- yjs_2: obj.yjs_2,
- yjs_3: obj.yjs_3,
- yjs_4: obj.yjs_4,
- },
- selecteds:obj.otherHistorySelecteds,*/
- save:[text]
- });
- }
- }
- });
- }
- };
- //预取查体模板数据-现病史触发推送时获取
- export function pregetCheckbodyData(flag,addValued){ //flag=true获取到数据后立即显示,addValued=true在已选的标签后叠加
- return (dispatch)=>{
- if(flag){
- dispatch({type:MODI_LOADING,flag:true});
- }
- getBigPush("1,42,41,7").then((res)=>{
- if(+res.data.code === 0){
- const obj = res.data.data;
- const data = obj&&obj.moduleVital;
- const vitalIds = obj&&obj.vitalIds;
- //查体高亮标签
- dispatch({
- type:SET_IMPORT_CHECKBODY_LABEL,
- labels:vitalIds
- });
- dispatch({
- type:PRESET,
- data:data
- });
- if(addValued){
- dispatch({
- type:REPUSH_CHECK_LABELS,
- data:data
- });
- dispatch({
- type: ISREAD
- })
- }
- if(flag){
- const arr = checkFullfillText(data).newArr;
- const block = Object.assign(JSON.parse(config.textLabel),{full:true});//空白时保留一个自由文本标签
- dispatch({
- type:SET,
- data:arr.length?arr:[block],
- isEmpty:false
- });
- dispatch({type:MODI_LOADING,flag:false});
- }
- }else{
- dispatch({type:MODI_LOADING,flag:false});
- Notify.error(res.data.msg);
- }
- });
- }
- }
- //查体模板数据获取
- export function getInitData(){
- return (dispatch,getStore)=>{
- const state = getStore();
- const preData = [...state.checkBody.preData||[]];
- if(!preData||preData.length==0){
- dispatch(pregetCheckbodyData(true));
- }
- const arr = checkFullfillText(preData).newArr;
- dispatch({
- type:SET,
- data:arr,
- isEmpty:false
- });
- }
- }
- //其他史模板填充-先取最近记录,无则用模板
- export function setOtherHisModule(){
- return (dispatch, getStore) => {
- const state = getStore();
- const initData = state.homePage.initData;
- const otherModel = initData.otherHisModel;
- const block = Object.assign(JSON.parse(config.textLabel),{full:true});
- const readMode = state.typeConfig.readMode; //数据实际模式
- const configMode=state.typeConfig.mode;
- const mode = configMode!==2&&readMode!==-1&&readMode!==null?readMode:configMode;
- const model = otherModel&&otherModel.length>0?deepClone(otherModel):[block]; //其他史模板,没有模板数据则显示一个空文本标签
- const arr = deepClone(initData.otherHis); //最近其他史数据
- const arrSave = deepClone(initData.otherHisSave); //最近其他史saveText
- const isHis = initData.otherIsHis; //是否是历史数据
- const onlyOneText = arr && arr.length == 1 && arr[0].tagType == 8 && !arr[0].value; //是否只有一个空的自由文本标签
- //是历史数据且不为空则显示历史数据,否则显示模板
- const listObj = isHis && (mode === 1 ||mode === 2 || (!onlyOneText && mode === 0)) ? {
- newArr: arr,
- saveText: arrSave || []
- } : fullfillText(model,false,false,'3');
- dispatch({
- type: SETDATA,
- data: listObj.newArr,
- period: initData.period,
- save: listObj.saveText,
- isEmpty: false
- });
- dispatch({
- type: ISREAD
- });
- //右侧推送
- setTimeout(function () { //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
- if (didPushParamChange()) { //操作后内容有变化才推送
- dispatch(billing());
- }
- }, 500);
- }
- }
- //转换设置传参
- function parseConfigParam(configs){
- let arr = [];
- for(let key in configs){
- arr.push({
- modeClassify:key.replace("config",''),
- modeValue:configs[key]
- })
- }
- return arr;
- }
- //保存切换模式
- export function saveMode(mode){
- return (dispatch,getStore)=>{
- const {patInfo} = getStore();
- const param = {
- doctorId:patInfo.message.doctorId,
- doctorPageMode: parseConfigParam(mode)
- };
- return json(api.saveMode,param);
- }
- }
- //慢病-获取管理评估
- export function getAssessData(disId,disName){
- //return ()=>{
- const emrData = getEMRParams();
- const param = {
- ruleType:config.ruleTypeMap['11'],
- disType:1,
- featureType:'11',
- diseaseId:disId,
- diseaseName:{
- "dateValue": "",
- "name": disName,
- "uniqueName": disName
- }
- };
- return json(api.getAssess,Object.assign({},param,emrData));
- //}
- }
- //慢病-获取管理评估历史单条记录
- export function getAssessHis(id){
- return (dispatch,getStore)=>{
- const param = {
- inquiryId:id,
- };
- return json(api.getAssessHis,param);
- }
- }
- //获取评估中图表数据
- export function getIndexData(range,disName){
- return (dispatch,getStore)=>{
- const {patInfo} = getStore();
- const param = {
- diseaseName:disName,
- startTime:range[0],
- endTime:range[1]+" 23:23:59",
- patientId:patInfo.message.patientId,
- };
- return json(api.getIndexData,param);
- }
- }
- export const getFormulaResult = (item)=>{
- // type:1-量表 2-计算公式
- const type = item.type;
- let param = {
- type:type,
- data:item.data
- }
- return json(api.getFormulaResult,param);
- }
- // 自动分发模板
- export function autoFillModules (){
- return (dispatch,getStore)=>{
- const state = getStore();
- const initData = state.homePage.initData;
- const block = Object.assign(JSON.parse(config.textLabel),{full:true});
- const cbody = initData.checkbody?[...initData.checkbody]:[block];
- dispatch({type: CURRENT_CHRONIC})//现病史
- //其他史模板填充-先去历史,无历史用模板
- inspectAndAssist()//检验检查
- dispatch(setOtherHisModule());
- //查体模板填充
- dispatch({
- type: SET,
- data: cbody,
- isEmpty:false
- });
- }
- }
- // 获取全科历史病历
- export function getAllHis(item){
- return (dispatch,getStore)=>{
- const state = getStore();
- const {message} = state.patInfo;
- const {params} = state.emergencyHis;
- let param = {};
- if(JSON.stringify(params) == '{}'){
- /*param = {
- "current": item.current,
- "hospitalDeptId": message.hospitalDeptId,
- "hospitalId": message.hospitalId,
- "size": 6,
- }*/
- param = Object.assign({},item,{hospitalDeptId:message.hospitalDeptId,hospitalId:message.hospitalId,size:6})
- }else{
- param = Object.assign({},params,{current:item.current})
- }
- json(api.getAllHisURL,param).then((res)=>{
- const result = res.data;
- if(result.code == 0){
- dispatch({
- type:GET_ALL_HIS,
- data:result.data.inquiryList,
- total:result.data.total,
- params:param,
- })
- }
- })
- }
- }
- // 筛选全科历史病历
- export function getFilterHis(obj){
- return (dispatch,getStore)=>{
- const state = getStore();
- const {message} = state.patInfo;
- const {params} = state.emergencyHis;
- let newParam = {};
- if(obj.flag == 999){//时间筛选
- newParam = Object.assign(params,{startDate:obj.startDate,endDate:obj.endDate,current:1})
- }else{
- /*if(obj.flag==-1){
- newParam = Object.assign(params,{current:1})
- }else{
- newParam = Object.assign({},params,{isHasSecond:obj.flag,current:1})
- }*/
- newParam = Object.assign({},params,{isHasSecond:obj.flag,current:1})
- }
- json(api.getAllHisURL,newParam).then((res)=>{
- const result = res.data;
- if(result.code == 0){
- dispatch({
- type:FILTER_ALL_HIS,
- data:result.data.inquiryList,
- total:result.data.total,
- // params:Object.assign(params,{current:1}),
- params:Object.assign(newParam,{current:1}),
- })
- }
- })
- }
- }
- // 全科病历导出
- export function downloadData (ids){
- const param = {
- "inquiryIds":ids
- }
- return expJson(api.downloadURL,param);
- }
- // 添加二次诊断
- export function addSecondDiag(item){
- const state = store.getState();
- const {message} = state.patInfo;
- const param = {
- "diagnoseSecond": item.name,
- "doctorId": message.doctorId,
- "inquiryId": item.id
- }
- return json(api.addSecondDia,param)
- }
|