patInfo.js 6.8 KB

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