patInfo.js 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  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} 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. return
  54. json(api.getAdminCheckout, {
  55. "doctorId": val1,
  56. "hospitalId": val2
  57. }).then((res) => {
  58. const data = res.data;
  59. if (data.code == 0) {
  60. dispatch({
  61. type: SETADMIN,
  62. admin:data.data
  63. });
  64. dispatch(initItemList(1,'')); //模板列表没有就获取模板列表用于保存时做数据对比是否保存过
  65. } else {
  66. console.log(res)
  67. }
  68. })
  69. }
  70. //获取医院id
  71. export const initHospitalInfo = (dispatch, getState) => {
  72. let baseList = getState();
  73. let state = baseList.patInfo.message;
  74. json(api.getHospitalInfo, {
  75. "hospitalCode": getUrlArgObject('hospitalId'),
  76. }).then((res) => {
  77. const data = res.data;
  78. if (data.code == 0) {
  79. dispatch({
  80. type: GET_HOSPITAL_MESSAGE,
  81. data:data.data.sysSetInfoData||[]
  82. });
  83. } else {
  84. console.log(res)
  85. }
  86. })
  87. }
  88. //参数转换
  89. export const initPersonInfo = (dispatch, getState) => {
  90. json('/tranFieldInfo/getInfoByUuid', {
  91. "uuid": getUrlArgObject('hospitalId'),
  92. }).then((res) => {
  93. const data = res.data;
  94. if (data.code == 0) {
  95. dispatch(getInfos(data.data));
  96. getPatientMessage(dispatch, getState);
  97. } else {
  98. console.log(res)
  99. }
  100. })
  101. }
  102. //默认回读
  103. export const initHistoryDetails = (dispatch) => {
  104. let baseList = store.getState();
  105. let state = baseList.patInfo.message;
  106. storageLocal.remove('emrParam');
  107. return (dispatch) => {
  108. json('/inquiryInfo/readInquiry', {
  109. "doctorId": state.doctorId,
  110. "hospitalDeptId": state.hospitalDeptId,
  111. "hospitalId": state.hospitalId,
  112. "patientId": state.patientId, //患者id
  113. "inquiryCode": state.recordId,
  114. }).then((res) => {
  115. const data = res.data;
  116. // let pre = baseList.homePage.sysConfig.connect_prec;
  117. if (data.code == 0) {
  118. const detail = data.data;
  119. if(detail.dataJson){
  120. pushAllDataList(detail.sign,'push',detail,'history');
  121. }else{
  122. // let pre = baseList.homePage.sysConfig.connect_prec;
  123. // (pre==1)&&getPreMsg(dispatch)
  124. }
  125. dispatch(getMRAnalyse())
  126. dispatch({
  127. type:ISREAD
  128. });
  129. dispatch({type:MODI_LOADING,flag:false});
  130. } else {
  131. dispatch({type:MODI_LOADING,flag:false});
  132. // console.log(res)
  133. }
  134. })
  135. }
  136. };
  137. //转换设置存值
  138. function parseDoctorCon(arr){
  139. let obj = {};
  140. let it;
  141. if(!arr){
  142. return null;
  143. }
  144. for(let i=0;i<arr.length;i++){
  145. it = arr[i];
  146. obj[it.modeClassify] = it.modeValue;
  147. }
  148. return obj;
  149. }
  150. //获取医生设置信息
  151. function getDoctorConfig(id,dispatch){
  152. json(api.getDoctorConfig,{doctorId:id}).then((res)=>{
  153. if(res.data.code==='0'){
  154. const configs = parseDoctorCon(res.data.data);
  155. if(!configs||Object.keys(configs).length===0){
  156. return ;
  157. }
  158. dispatch({
  159. type:CONFIRM_TYPE,
  160. confirmType:configs
  161. })
  162. }else{
  163. Notify.info(res.data.msg);
  164. }
  165. });
  166. }
  167. //技术部需求,先获取第一个接口再去第二个
  168. export async function getPatientMessage(dispatch, getState){
  169. const state = getState();
  170. const urlDatas = state.getInfoByUuid;
  171. const params = {
  172. hospitalCode:urlDatas.hospitalId,
  173. hospitalDeptCode: urlDatas.deptNo,
  174. doctorCode: urlDatas.doctorNo,
  175. patientCode:urlDatas.patientNo,
  176. recordId:urlDatas.recordId
  177. };
  178. let res1 = await json(api.getPatInfo, params);
  179. /*console.log(res1);
  180. console.log(1);*/
  181. let res2 = await json(api.getPatBaseInfo, params);
  182. /*console.log(res2);
  183. console.log(2);*/
  184. let data1 = {},data2 = {};
  185. if(res1.data.code=='0'){
  186. data1 = res1.data.data;
  187. data1.doctorId&&getDoctorConfig(data1.doctorId,dispatch);
  188. }else{
  189. dispatch({type:MODI_LOADING,flag:false});
  190. dispatch({type:SHOW_LOADING,flag:true,text:res1.data.msg,lType:'warning'});
  191. return;
  192. }
  193. if(res2.data.code=='0'){
  194. data2 = res2.data.data;
  195. }else{
  196. dispatch({type:MODI_LOADING,flag:false});
  197. dispatch({type:SHOW_LOADING,flag:true,text:res2.data.msg,lType:'warning'});
  198. return;
  199. }
  200. //患者或医生信息有误,禁止操作
  201. if(Object.keys(data1).length>0&&Object.keys(data2).length>0&&data1.doctorId){
  202. dispatch({type:SHOW_LOADING,flag:false});
  203. }else{
  204. dispatch({type:MODI_LOADING,flag:false});
  205. dispatch({type:SHOW_LOADING,flag:true,text:"获取医生信息失败",lType:'warning'});
  206. return;
  207. }
  208. getAdminCheckout(data1.doctorId,data1.hospitalId,dispatch);
  209. dispatch({
  210. type: GET_PATIENT_MESSAGE,
  211. data:Object.assign(data1,data2)
  212. });
  213. localStorage.removeItem('deletedTags');
  214. dispatch(getInitModules); //确保病人信息获取以后再获取模板等数据,否则参数为空
  215. dispatch(getCommonList(5)); //获取常用化验标签列表
  216. dispatch(getCommonList(6)); //获取常用辅检标签列表if(allModules.length == 0){//模板为空才回读
  217. // dispatch(initHistoryDetails()); //历史病历回读
  218. // initHospitalInfo(dispatch, getState) //不需要的
  219. }