patInfo.js 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. import {get, post, json} from "../../utils/ajax";
  2. import {GET_PATIENT_MESSAGE,GET_HOSPITAL_MESSAGE} from "../types/patInfo";
  3. import {CONFIRM_TYPE} from "../types/typeConfig";
  4. import {getInfos} from '@store/actions/getInfoByUuid';
  5. import {getUrlArgObject,pushAllDataList,getAllDataList,storageLocal} from '@utils/tools';
  6. import {getInitModules,getCommonList} from '@store/async-actions/homePage.js';
  7. import store from '@store'
  8. import {ISREAD,MODI_LOADING,SETPRE,SETPREDATA,SETADMIN} from "../types/homePage";
  9. import { initItemList } from '@store/async-actions/tabTemplate';
  10. import config from '@config/index';
  11. import {Notify} from '@commonComp';
  12. import {SHOW_LOADING} from '@store/types/copyRight.js';
  13. import {getMRAnalyse,embedPush} from '@store/async-actions/pushMessage';
  14. const api = {
  15. getPatInfo: '/patientInfo/getTopPatientInfo',
  16. getPatBaseInfo: '/patientInfo/getPatientInfo',
  17. getHospitalInfo:'/hospitalInfo/getHospitalInfo',
  18. getPreMsg:'/api/prec/inquiryInfo/getInquiryDetail',
  19. getPreMsgLis:'/api/prec/inquiryInfo/hisInquirys',
  20. getDoctorConfig:'/doctorPageMode/getDoctorPageModes', //获取医生设置
  21. getAdminCheckout:'/sysSet/getAdminCheckout', //获取管理员身份
  22. };
  23. //获取预问诊信息
  24. export const getPreMsg = (dispatch, getState) => {
  25. // let baseList = getState();
  26. // let state = baseList.patInfo.message;
  27. const inCode = config.preIcss.recordIdVal===-1?getUrlArgObject("recordId"):config.preIcss.recordIdVal;
  28. json(api.getPreMsgLis, {
  29. "hospitalCode": getUrlArgObject('hospitalId'),
  30. "inquiryCode":inCode,
  31. "isHaveDetail":1,
  32. "patientCode": getUrlArgObject("patientNo"),
  33. "dayLimit":config.preIcss.deadline===-1?undefined:config.preIcss.deadline
  34. },true).then((res) => {
  35. const data = res.data;
  36. if (data.code == 0) {
  37. let result = data.data;
  38. let preIcss = {
  39. chief:result.chiefComplaint?new Array(result.chiefComplaint):[],
  40. current:result.xbs?new Array(result.xbs):[],
  41. other:result.qts?new Array(result.qts):[],
  42. checkBody:result.supplement?result.supplement:''
  43. }
  44. // dispatch({type:SETPRE,show:true});
  45. dispatch({type:SETPREDATA,preData:preIcss});
  46. } else {
  47. // console.log(res)
  48. }
  49. })
  50. }
  51. //获取管理员身份
  52. export const getAdminCheckout = (val1,val2,dispatch) => {
  53. json(api.getAdminCheckout, {
  54. "doctorId": val1,
  55. "hospitalId": val2
  56. }).then((res) => {
  57. const data = res.data;
  58. if (data.code == 0) {
  59. dispatch({
  60. type: SETADMIN,
  61. admin:data.data
  62. });
  63. dispatch(initItemList(1,'')); //模板列表没有就获取模板列表用于保存时做数据对比是否保存过
  64. } else {
  65. //console.log(res)
  66. }
  67. })
  68. }
  69. //获取医院id
  70. export const initHospitalInfo = (dispatch, getState) => {
  71. let baseList = getState();
  72. let state = baseList.patInfo.message;
  73. json(api.getHospitalInfo, {
  74. "hospitalCode": getUrlArgObject('hospitalId'),
  75. }).then((res) => {
  76. const data = res.data;
  77. if (data.code == 0) {
  78. dispatch({
  79. type: GET_HOSPITAL_MESSAGE,
  80. data:data.data.sysSetInfoData||[]
  81. });
  82. } else {
  83. console.log(res)
  84. }
  85. })
  86. }
  87. //参数转换
  88. export const initPersonInfo = (dispatch, getState) => {
  89. // json('/tranFieldInfo/getInfoByUuid', {
  90. // "uuid": getUrlArgObject('hospitalId'),
  91. // }).then((res) => {
  92. // const data = res.data;
  93. // if (data.code == 0) {
  94. // dispatch(getInfos(data.data));
  95. // getPatientMessage(dispatch, getState);
  96. // } else {
  97. // console.log(res)
  98. // }
  99. // })
  100. }
  101. //默认回读
  102. export const initHistoryDetails = (dispatch) => {
  103. let baseList = store.getState();
  104. let state = baseList.patInfo.message;
  105. storageLocal.remove('emrParam');
  106. return (dispatch) => {
  107. json('/inquiryInfo/readInquiry', {
  108. "doctorId": state.doctorId,
  109. "hospitalDeptId": state.hospitalDeptId,
  110. "hospitalId": state.hospitalId,
  111. "patientId": state.patientId, //患者id
  112. "inquiryCode": state.recordId,
  113. }).then((res) => {
  114. const data = res.data;
  115. // let pre = baseList.homePage.sysConfig.connect_prec;
  116. if (data.code == 0) {
  117. const detail = data.data;
  118. if(detail.dataJson){
  119. pushAllDataList(detail.sign,'push',detail,'history');
  120. }else{
  121. // let pre = baseList.homePage.sysConfig.connect_prec;
  122. // (pre==1)&&getPreMsg(dispatch)
  123. }
  124. dispatch(getMRAnalyse())
  125. dispatch({
  126. type:ISREAD
  127. });
  128. dispatch({type:MODI_LOADING,flag:false});
  129. } else {
  130. dispatch({type:MODI_LOADING,flag:false});
  131. // console.log(res)
  132. }
  133. })
  134. }
  135. };
  136. //转换设置存值
  137. function parseDoctorCon(arr){
  138. let obj = {};
  139. let it;
  140. if(!arr){
  141. return null;
  142. }
  143. for(let i=0;i<arr.length;i++){
  144. it = arr[i];
  145. obj[it.modeClassify] = it.modeValue;
  146. }
  147. return obj;
  148. }
  149. //获取医生设置信息
  150. function getDoctorConfig(id,dispatch){
  151. json(api.getDoctorConfig,{doctorId:id}).then((res)=>{
  152. if(res.data.code==='0'){
  153. const configs = parseDoctorCon(res.data.data);
  154. if(!configs||Object.keys(configs).length===0){
  155. return ;
  156. }
  157. dispatch({
  158. type:CONFIRM_TYPE,
  159. confirmType:configs
  160. })
  161. }else{
  162. Notify.info(res.data.msg);
  163. }
  164. });
  165. }
  166. //技术部需求,先获取第一个接口再去第二个
  167. export async function getPatientMessage(dispatch, getState){
  168. const state = getState();
  169. const urlDatas = state.getInfoByUuid;
  170. const params = {
  171. hospitalCode:urlDatas.hospitalId,
  172. hospitalDeptCode: urlDatas.deptNo,
  173. doctorCode: urlDatas.doctorNo,
  174. patientCode:urlDatas.patientNo,
  175. recordId:urlDatas.recordId
  176. };
  177. let res1 = await json(api.getPatInfo, params);
  178. /*console.log(res1);
  179. console.log(1);*/
  180. let res2 = await json(api.getPatBaseInfo, params);
  181. /*console.log(res2);
  182. console.log(2);*/
  183. let data1 = {},data2 = {},docMode=-1;
  184. if(res1.data.code=='0'){
  185. data1 = res1.data.data;
  186. if(data1.doctorId){ //获取医生配置
  187. let docConfigs = await json(api.getDoctorConfig,{doctorId:data1.doctorId});
  188. //getDoctorConfig();
  189. if(docConfigs.data.code=='0'){
  190. const configs = parseDoctorCon(docConfigs.data.data);
  191. docMode=configs[0];
  192. if(!configs||Object.keys(configs).length===0){
  193. return ;
  194. }
  195. dispatch({
  196. type:CONFIRM_TYPE,
  197. confirmType:configs
  198. })
  199. }else{
  200. Notify.info(docConfigs.data.msg);
  201. }
  202. }
  203. //getDoctorConfig(data1.doctorId,dispatch);
  204. }else{
  205. dispatch({type:MODI_LOADING,flag:false});
  206. dispatch({type:SHOW_LOADING,flag:true,text:res1.data.msg,lType:'warning'});
  207. return;
  208. }
  209. if(res2.data.code=='0'){
  210. data2 = res2.data.data;
  211. dispatch({type:MODI_LOADING,flag:false});
  212. }else{
  213. dispatch({type:MODI_LOADING,flag:false});
  214. dispatch({type:SHOW_LOADING,flag:true,text:res2.data.msg,lType:'warning'});
  215. return;
  216. }
  217. //患者或医生信息有误,禁止操作
  218. if(Object.keys(data1).length>0&&Object.keys(data2).length>0&&data1.doctorId){
  219. dispatch({type:SHOW_LOADING,flag:false});
  220. }else{
  221. dispatch({type:MODI_LOADING,flag:false});
  222. dispatch({type:SHOW_LOADING,flag:true,text:"获取医生信息失败",lType:'warning'});
  223. return;
  224. }
  225. getAdminCheckout(data1.doctorId,data1.hospitalId,dispatch);
  226. dispatch({
  227. type: GET_PATIENT_MESSAGE,
  228. data:Object.assign(data1,data2)
  229. });
  230. /*localStorage.removeItem('deletedTags');
  231. if(docMode!==2){
  232. dispatch(getInitModules); //确保病人信息获取以后再获取模板等数据,否则参数为空
  233. dispatch(initHistoryDetails()); //历史病历回读
  234. }else{*/
  235. dispatch(embedPush({mode:1})); //默认空白情况,刷新右侧
  236. //}
  237. //dispatch(getInitModules); //确保病人信息获取以后再获取模板等数据,否则参数为空
  238. dispatch(getCommonList(5)); //获取常用检验标签列表
  239. dispatch(getCommonList(6)); //获取常用检查标签列表if(allModules.length == 0){//模板为空才回读
  240. //dispatch(initHistoryDetails()); //历史病历回读
  241. }
  242. // 获取病历信息
  243. export async function getPatInfoData(dispatch,getState) {
  244. }