treat.js 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. import { json } from "@utils/ajax";
  2. import { SET_TREAT } from '@store/types/diagnosticList';
  3. import { ADD_DIAGNOSTIC, GET_DIAGNOSTIC_STR} from '@store/types/diagnosticList';
  4. import { SET_DRUG_INFO, SET_TREATMENT, SET_RECOMMEND_BASIC } from '@store/types/treat';
  5. import {storageLocal,getEMRParams} from '@utils/tools';
  6. import { isAddMainSuit } from '@store/async-actions/diagnosticList';
  7. const api={
  8. push:'/api/icss/push/pushInner',
  9. textPush:'/api/icss/push/pushText'
  10. }
  11. export const addDiagnostic = (item) => {
  12. return (dispatch, getState) => {
  13. const state = getState();
  14. let url = api.push;
  15. if(+state.typeConfig.confirmType===1){
  16. url=api.textPush;
  17. }
  18. const emrData = getEMRParams();
  19. const diagnosticList = state.diagnosticList.diagnosticList;
  20. let diag = '';
  21. if(diagnosticList) {
  22. for (let i = 0; i < diagnosticList.length; i++ ) {
  23. if(i ===0 ) {
  24. diag = diag + diagnosticList[i].name;
  25. } else {
  26. diag = diag + ',' + diagnosticList[i].name;
  27. }
  28. }
  29. }
  30. if (item.type === 1) {
  31. diag = diag + ',' + item.name
  32. } else {
  33. diag = diag + ',' + item.name
  34. }
  35. const params = {
  36. "age": emrData.age,
  37. "featureType": "8",
  38. "diag": diag,
  39. "diseaseId": item.id,
  40. "lis": emrData.lis,
  41. "other": emrData.other,
  42. "pacs": emrData.pacs,
  43. "sex": emrData.sex,
  44. "symptom": emrData.current + emrData.main,
  45. "vital": emrData.vital
  46. };
  47. json(url, params).then((data) =>{
  48. if (data.data.data) {
  49. item.treat = data.data.data.treat
  50. dispatch({
  51. type: ADD_DIAGNOSTIC,
  52. item: item
  53. })
  54. } else {
  55. item.treat = null
  56. dispatch({
  57. type: ADD_DIAGNOSTIC,
  58. item: item
  59. })
  60. }
  61. dispatch({
  62. type: GET_DIAGNOSTIC_STR
  63. });
  64. dispatch(isAddMainSuit())
  65. }).catch((e) =>{
  66. console.log(e)
  67. })
  68. }
  69. }
  70. export const getTreatResult = (item) =>{
  71. return (dispatch, getState) => {
  72. const state = getState();
  73. let url = api.push;
  74. if(+state.typeConfig.confirmType===1){
  75. url=api.textPush;
  76. }
  77. const emrData = getEMRParams();
  78. // const params = {
  79. // "age": emrData.age,
  80. // "featureType": "8",
  81. // "dis": emrData.dis,
  82. // "diseaseId": emrData.diseaeId,
  83. // "lis": emrData.lis,
  84. // "other": emrData.other,
  85. // "pacs": emrData.pacs,
  86. // "sex": emrData.sex,
  87. // "symptom": emrData.current||emrData.main,
  88. // "vital": emrData.vital
  89. // };
  90. const diagnosticList = state.diagnosticList.diagnosticList;
  91. let diag = '';
  92. if(diagnosticList) {
  93. for (let i = 0; i < diagnosticList.length; i++ ) {
  94. if(i ===0 ) {
  95. diag = diag + diagnosticList[i].name;
  96. } else {
  97. diag = diag + ',' + diagnosticList[i].name;
  98. }
  99. }
  100. }
  101. const params = {
  102. "age": emrData.age,
  103. "featureType": "8",
  104. "diag": diag,
  105. "diseaseId": item.id,
  106. "lis": emrData.lis,
  107. "other": emrData.other,
  108. "pacs": emrData.pacs,
  109. "sex": emrData.sex,
  110. "symptom": emrData.current + emrData.main,
  111. "vital": emrData.vital
  112. };
  113. json(url, params).then((data) =>{
  114. let treat;
  115. if(data.data.data) {
  116. treat = data.data.data.treat || {}
  117. }
  118. if(treat) {
  119. return dispatch({
  120. type: SET_TREATMENT,
  121. treatment: treat.treatment,
  122. generalTreat: treat.commonTreatment,
  123. surgeryTreat: treat.surgeryTreatment,
  124. })
  125. }
  126. return
  127. }).catch((e) =>{
  128. console.log(e)
  129. })
  130. // const treatment = [
  131. // {
  132. // id:132,
  133. // drugsName:"支气管扩张剂",
  134. // showInfo:"1",
  135. // medicitionsList:[
  136. // {
  137. // id:137,
  138. // medicitionName:"多索茶碱",
  139. // rate:"0.94",
  140. // isShow:"1", //1展示,0不展示
  141. // forbidden:"0", //0:正常,1:慎用,2:禁忌
  142. // showInfo: "1",
  143. // selected: false
  144. // },
  145. // {
  146. // id:138,
  147. // medicitionName:"二羟丙茶碱",
  148. // rate:"0.92",
  149. // isShow:"1",
  150. // forbidden:"1",
  151. // showInfo:"0",
  152. // selected: false
  153. // },
  154. // {
  155. // id:4,
  156. // medicitionName:"二羟丙茶碱11",
  157. // rate:"0.50",
  158. // isShow:"0",
  159. // forbidden:"2",
  160. // showInfo:false,
  161. // selected: false
  162. // }
  163. // ]
  164. // },
  165. // {
  166. // id:133,
  167. // drugsName:"抗生素类(喹诺酮类)",
  168. // showInfo: '0',
  169. // medicitionsList:[
  170. // {
  171. // id:139,
  172. // medicitionName:"左氧氟沙星",
  173. // rate:"0.50",
  174. // isShow:"1", //1展示,0不展示
  175. // forbidden:"0",
  176. // showInfo:'0',
  177. // selected: false
  178. // },
  179. // {
  180. // id:140,
  181. // medicitionName:"莫西沙星",
  182. // rate:"0.82",
  183. // isShow:"0",
  184. // forbidden:"2",
  185. // showInfo:"0",
  186. // selected: false
  187. // }
  188. // ]
  189. // }
  190. // ];
  191. // const generalTreat = '<p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10px; line-height: 25px; padding: 10px; border: 0px !important;\">风湿性心脏病通常侵犯二尖瓣,其次是主动脉瓣。风湿性主动脉瓣关闭不全也常合并二尖瓣病变,临床称之为联合瓣膜病(combined valvular disease)。梅毒性主动脉炎可发展为梅毒性主动脉关闭不全或主动脉瘤。</p><p style=\"text-align: right;\">来源&nbsp;&nbsp;:&nbsp;&nbsp;中华眼科学:全3册(下)</p><p><br/></p>';
  192. // const surgeryTreat = '<p style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 10px; line-height: 25px; padding: 10px; border: 0px !important;\">风湿性心脏病通常侵犯二尖瓣,其次是主动脉瓣。风湿性主动脉瓣关闭不全也常合并二尖瓣病变,临床称之为联合瓣膜病(combined valvular disease)。梅毒性主动脉炎可发展为梅毒性主动脉关闭不全或主动脉瘤。</p><p style=\"text-align: right;\">来源&nbsp;&nbsp;:&nbsp;&nbsp;中华眼科学:全3册(下)</p><p><br/></p>';
  193. // return dispatch({
  194. // type: SET_TREATMENT,
  195. // treatment: treatment,
  196. // generalTreat: generalTreat,
  197. // surgeryTreat: surgeryTreat,
  198. // })
  199. }
  200. }
  201. export const getInstroduce = (item)=>{
  202. return (dispatch, getState) =>{
  203. const url = '/api/icss/introduceInfo/getByQuestionId';
  204. const params = {
  205. questionId: item.id,
  206. type: 8,
  207. position: 5
  208. }
  209. json(url, params)
  210. .then((data)=>{
  211. if(data.data.data) {
  212. dispatch({
  213. type: SET_DRUG_INFO,
  214. instroduce: data.data.data.introduceDetailList,
  215. name: item.medicitionName
  216. })
  217. } else {
  218. dispatch({
  219. type: SET_DRUG_INFO,
  220. instroduce: [],
  221. name: item.medicitionName
  222. })
  223. }
  224. }).catch((e) => {
  225. console.log(e)
  226. })
  227. }
  228. }
  229. //其他推荐推荐依据不用展示
  230. // export const getRecommendBasic = (item)=>{
  231. // return (dispatch, getState) =>{
  232. // const url = '/api/icss/introduceInfo/getByQuestionId';
  233. // const params = {
  234. // questionId: item.id,
  235. // type: 9,
  236. // position: 2
  237. // }
  238. // json(url, params)
  239. // .then((data)=>{
  240. // if (data.status === 200) {
  241. // if(data.data.data) {
  242. // dispatch({
  243. // type: SET_RECOMMEND_BASIC,
  244. // recommendBasic: data.data.data.introduceDetailList,
  245. // })
  246. // } else {
  247. // dispatch({
  248. // type: SET_RECOMMEND_BASIC,
  249. // recommendBasic: [],
  250. // })
  251. // }
  252. // }
  253. // }).catch((e) => {
  254. // console.log(e)
  255. // })
  256. // }
  257. // }