homePage.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. import {post,json} from '@utils/ajax.js';
  2. import {SETINITDATA} from '@store/types/homePage.js';
  3. import {SET_CURRENT} from '@store/types/currentIll';
  4. import {SET_MAINSUIT} from '@store/types/mainSuit';
  5. import config from '@config/index.js';
  6. import store from '@store';
  7. import {fullfillText} from '@common/js/func';
  8. import {getOtherHisRecord,getInitData} from '@store/async-actions/fetchModules.js';
  9. import {initHistoryDetails} from '@store/async-actions/patInfo';
  10. import { initItemList } from '@store/async-actions/tabTemplate';
  11. const api = {
  12. getModules:'/api/icss/moduleInfo/getAll',
  13. clickCount:'/api/icss/buriedSomeStatistical/saveBuriedSomeStatisticals' //埋点统计
  14. };
  15. function modulesParseJson(data){
  16. let json = {},obj={},saveTextJson={},moduleName={};
  17. data.map((it)=>{
  18. moduleName[config.moduleCP[it.id]] = it.name;//添加病情变化/病程变化子模板需要使用模板名称
  19. obj = fullfillText(it.moduleDetailDTOList);
  20. json[config.moduleCP[it.id]] = obj.newArr;
  21. saveTextJson[config.moduleCP[it.id]] = obj.saveText;
  22. });
  23. return {json,saveTextJson,moduleName};
  24. }
  25. export const getInitModules= (dispatch,getStore)=>{
  26. const state = getStore();
  27. const {message} = state.patInfo;
  28. return json(api.getModules,{age:message.patientAge,sexType:message.sex}).then((res) => {
  29. if (res.data.code == '0') {
  30. const newObj = modulesParseJson(res.data.data);
  31. const initData = newObj.json;
  32. const initSaveText = newObj.saveTextJson;
  33. const initModuleName = newObj.moduleName;
  34. dispatch({
  35. type: SETINITDATA,
  36. data: initData
  37. });
  38. dispatch({
  39. type:SET_MAINSUIT,
  40. // data:fullfillText(initData.mainSuit).newArr,
  41. // addSymptom:fullfillText(initData.addSymptom).newArr,
  42. data:initData.mainSuit,
  43. addSymptom:initData.addSymptom,
  44. addModuleName:initModuleName.addSymptom,//模板名称
  45. save:initSaveText.mainSuit
  46. });
  47. dispatch({
  48. type:SET_CURRENT,
  49. data:initData.current,
  50. save:initSaveText.current,
  51. processModule:initData.process,//病程变化
  52. processModuleName:initModuleName.process,//病程变化模板名称
  53. saveProcess:initSaveText.process,
  54. emptyData:initData.currentEmpty,//现病史空模板
  55. saveEmpty:initSaveText.currentEmpty,
  56. });
  57. dispatch(getOtherHisRecord()); //获取其他史最近记录
  58. if(state.tabTemplate.items.length == 0){
  59. dispatch(initItemList()); //模板列表没有就获取模板列表
  60. }
  61. initHis(dispatch)
  62. }else{
  63. initHis(dispatch)
  64. }
  65. }).catch(()=>{
  66. initHis(dispatch)
  67. });
  68. };
  69. export const initHis = (dispatch)=> {
  70. let timer = setInterval(()=>{
  71. let baseDate = store.getState().patInfo.message;
  72. //console.log(baseDate)
  73. if(JSON.stringify(baseDate) != '{}') {
  74. dispatch(initHistoryDetails(baseDate));
  75. clearInterval(timer)
  76. }
  77. },500)
  78. }
  79. // 埋点事件,点击保存时调用
  80. export const saveClickNum = (dispatch,getState)=>{
  81. const state = getState();
  82. const patientInfo = state.patInfo.message;
  83. const data = state.homePage.clickData;//所有点击事件储存
  84. //console.log(999,state,data);
  85. const params = {
  86. "doctorId": patientInfo.doctorId, //医生id
  87. "hospitalDeptId":patientInfo.hospitalDeptId , //部门ID
  88. "hospitalId": patientInfo.hospitalId, //医院id
  89. "inquiryCode": patientInfo.recordId,//门诊号
  90. "patientId": patientInfo.patientId, //病人ID
  91. "taggeds": data
  92. }
  93. return json(api.clickCount,params).then((res) => {
  94. if (res.data.code == '0') {
  95. console.log("埋点请求成功");
  96. // 重置clickData
  97. }else{
  98. console.log("埋点请求失败",res);
  99. }
  100. })
  101. }