patInfo.js 7.5 KB

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