personal-manage.html 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>康复管理</title>
  6. <link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
  7. <link rel="stylesheet" type="text/css" href="../../../css/cross.ui.css" />
  8. <link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
  9. <link href="../../../plugins/toastr/toastr.min.css" rel="stylesheet">
  10. <link rel="stylesheet" type="text/css" href="../css/new_recover.css" />
  11. <link rel="stylesheet" type="text/css" href="../css/personal-manage.css" />
  12. </head>
  13. <body class="m0">
  14. <div id="app" class="c-333" v-cloak>
  15. <div class="content ui-grid">
  16. <div class="ui-col-0 c-h100 w360 person_info c-border-r ui-grid ui-grid-vertical plr5">
  17. <h4 class="m0 pl15 lh40 c-border-b c-position-r"><em class="c-position-a set-blue-span"></em>个人基础信息</h4>
  18. <div class="bgc-f5f5fa mt10 ptb10 plr10">
  19. <div class="clearfix">
  20. <div class="fl w-100-66">
  21. <p class="m0 p0 mb10">
  22. <span class="c-999">姓名:</span>{{recoverPatInfo.patientInfo.patientName}}
  23. <span class="c-999 ml20">性别:</span>{{recoverPatInfo.patientInfo.sex == 1 ? "男" : "女"}}
  24. <span class="c-999 ml20">年龄:</span>{{recoverPatInfo.patientInfo.age}}岁
  25. </p>
  26. <p class="m0 p0 mb10">
  27. <span class="c-999">健康情况:</span>{{recoverPatInfo.patientInfo.healthyCondition}}
  28. </p>
  29. <p class="m0 p0 mb10">
  30. <span class="c-999">联系电话:</span><span class="c-12b7f5 cur-pit" v-if="isMobile" @click="changeStatu()">点击查看</span><span v-else>{{recoverPatInfo.patientInfo.mobile}}</span>
  31. </p>
  32. </div>
  33. <div class="fr set-photo">
  34. <img :src="setPatImg(recoverPatInfo.patientInfo.photo)" alt="居民头像" />
  35. </div>
  36. </div>
  37. <p class="m0 p0 mb10">
  38. <span class="c-999">签约社区:</span>{{recoverPatInfo.patientInfo.signHospitalName}}
  39. </p>
  40. <p class="m0 p0">
  41. <span class="c-999">康复机构:</span>{{recoverPatInfo.patientInfo.rehabilitationOrg}}
  42. </p>
  43. </div>
  44. <h4 class="m0 pl15 lh40 c-border-b c-position-r"><em class="c-position-a set-blue-span"></em>服务医生</h4>
  45. <!--<div class="pt10 pb10" style="overflow: hidden; height: 190px;">-->
  46. <div class="pt10 pb10 ui-col-0" style="overflow: hidden; height: 190px;">
  47. <ul class="p0 m0 c-h100" style="overflow: auto;">
  48. <li class="clearfix plr20 ptb10 doc-li" v-for="(docInfo, index) in recoverPatInfo.serviceDoctorList" :key="index">
  49. <div class="fl set-photo">
  50. <img :src="setPatImg(docInfo.doctorPhoto, 1)" alt="医生头像" />
  51. </div>
  52. <div class="fl ml10 lh18">
  53. <p class="m0 p0 c-f16">{{docInfo.doctorName}}</p>
  54. <p class="m0 p0 mt10 c-999">{{docInfo.type}}</p>
  55. </div>
  56. <div class="fr w100 ml40 lh18">
  57. <p class="m0 p0">完成项目:<span class="c-orange">{{docInfo.finishedItem}}</span></p>
  58. <p class="m0 p0 mt10">服务次数:<span class="c-orange">{{docInfo.serviceCount}}</span></p>
  59. </div>
  60. </li>
  61. </ul>
  62. </div>
  63. <h4 class="m0 pl15 lh40 c-position-r"><em class="c-position-a set-blue-span"></em>医嘱小结</h4>
  64. <ul class="m0 p0 ptb10 ui-col-1 c-border b-r-3 c-h100" style="overflow: auto;">
  65. <li class="pt5 plr10" v-for="(info, index) in diagnosisInformation" :key="index">
  66. <p class="c-999 ptb10 clearfix" style="line-height: 20px;">
  67. <span class="fl w-100-78">&emsp;{{info.dischargeDiagnosis}}</span>
  68. <span class="fr">{{info.dischargeTime}}</span>
  69. </p>
  70. <div class="bgc-f5f5fa plr5 ptb10" style="line-height: 20px;">
  71. &emsp;&emsp;{{info.advice}}
  72. </div>
  73. </li>
  74. <li class="c-t-center ptb10" v-if="!diagnosisInformation.length">无医嘱小结</li>
  75. </ul>
  76. </div>
  77. <div class="ui-col-1 c-h100 w-100-360 ui-grid">
  78. <div class="ui-col-1 c-h100 ui-grid ui-grid-vertical">
  79. <!--<div class="plr5">-->
  80. <div class="m0 pl15 lh40 c-border-b c-position-r clearfix">
  81. <em class="c-position-a set-blue-span"></em>
  82. <span class="fl">康复计划</span>
  83. <span class="fl plr20 ml20 c-f12 bgc-12b7f5 c-fff cur-pit" @click="gotoNewplan()" v-if="doctorType == 1">新建计划</span>
  84. <span class="fr w80 c-333 c-f12 c-t-center">进行中:{{recoverPatInfo.planUnderway}}</span>
  85. <span class="fr w80 c-333 c-f12 c-t-center">已完成:{{recoverPatInfo.planFinish}}</span>
  86. </div>
  87. <div class="pb10" style="overflow: hidden; height: 230px;">
  88. <ul class="p0 plr5 m0 c-h100" style="overflow: auto;">
  89. <li class="plr5 ptb10 mt10 plan-li cur-pit c-border b-r-3 ui-grid" v-for="(plan, index) in recoverPatInfo.planList" :key="index" @click="jumpPlan(plan)">
  90. <div class="ui-col-1">
  91. <p class="p0 m0 lh22 clearfix">
  92. <span class="fl">{{plan.planTypeName}}</span>
  93. <span class="fr c-999">{{plan.time}}</span>
  94. </p>
  95. <div class="ui-grid">
  96. <p class="ui-col-1 bgc-c1c1c1 lh22 b-r-11 c-position-r c-t-center">
  97. <span class="c-position-a bgc-orange lh22 b-r-11 c-t-center c-fff" :style="{width: setPercent(plan), left: 0}"></span>
  98. <span class="c-position-r w-100 c-t-center">{{setPercent(plan)}}</span>
  99. </p>
  100. <div class="ui-col-0 ml10 c-999 lh22">{{plan.allFinishCount}}/{{plan.allCount}}</div>
  101. </div>
  102. </div>
  103. <div class="ui-col-0 ml15 c-007cd9 lh40">{{plan.statusName}}</div>
  104. </li>
  105. <li class="ptb10 c-t-center" v-if="!recoverPatInfo.planList || !recoverPatInfo.planList.length">暂无相关计划</li>
  106. </ul>
  107. </div>
  108. <!--</div>-->
  109. <h4 class="m0 pl15 pr5 lh40 c-border-tb clearfix c-position-r"><em class="c-position-a set-blue-span"></em>康复相关记录<span class="fr w80 c-333 c-f12 c-t-center">已完成:{{finishData.planDetailFinish}}</span></h4>
  110. <div class="ui-col-1" style="overflow: hidden; overflow-y: auto;">
  111. <ul class="p0 m0 c-h100 c-999">
  112. <li class="clearfix plr10 cur-pit record-li" v-for="(plan, index) in planDetailList" :class="{'bgc-dff5fc c-12b7f5':plan.istaDay}" @click="lookProject(plan)">
  113. <div class="fl w80 ptb10 c-t-right">
  114. <p class="p0 m0 lh18">{{plan.executeTime}}</p>
  115. </div>
  116. <div class="fl set-dianxian plr20 ptb10 clerfix">
  117. <span class="fl set-taday mt8 c-t-center c-fff" v-if="plan.istaDay">今</span>
  118. <span class="fl mlr5 mt13 set-row bgc-e1e1e1" v-else></span>
  119. </div>
  120. <div class="fl ptb10 w-100-220">
  121. <p class="p0 m0 lh18">{{plan.title}}</p>
  122. <p class="p0 m0 lh18 txt-ells">{{plan.content}}</p>
  123. </div>
  124. <div class="fr ptb10 w60 c-t-center">
  125. <p class="p0 m0 lh18">已完成</p>
  126. <p class="p0 m0 lh18">查看</p>
  127. </div>
  128. </li>
  129. <li class="plr20" v-if="isFinishMore">
  130. <div class="c-border lh40 b-r-3 c-t-center cur-pit" @click="addEventPage()">点击查看更早时间</div>
  131. </li>
  132. <li class="ptb10 c-t-center c-333" v-if="!planDetailList.length">暂无相关记录</li>
  133. </ul>
  134. </div>
  135. </div>
  136. <div class="ui-col-0 w360 c-h100 c-border-l ui-grid ui-grid-vertical">
  137. <div class="plr5 ui-col-0">
  138. <h4 class="m0 pl15 pr5 lh40 c-border-b clearfix c-position-r"><em class="c-position-a set-blue-span"></em>体征记录</h4>
  139. <div class="h380">
  140. <div class="pt10 pb10 ui-grid ui-grid-middle c-t-center type">
  141. <div class="ui-col-0 over-hidden lh30 c-border b-r-5">
  142. <span class="c-inline-block w130 bgc-fff c-666 cur-pit" :class="{'active': recordType == 1}" @click="changeType(0,1)">血糖记录</span>
  143. <span class="c-inline-block w130 bgc-fff c-666 cur-pit" :class="{'active': recordType == 2}" @click="changeType(0,2)">血压记录</span>
  144. </div>
  145. </div>
  146. <div class="pt10 bgc-f5f5fa c-t-center">
  147. <div class="ui-grid ui-grid-middle lh22 type">
  148. <div class="ui-col-0 clearfix">
  149. <div class="fl b-r-15 w60 mr20 c-border b-c-12b7f5 c-12b7f5 cur-pit" :class="{'active': rangeType == 6}" @click="changeType(1,6)">7天</div>
  150. <div class="fl b-r-15 w60 mr20 c-border b-c-12b7f5 c-12b7f5 cur-pit" :class="{'active': rangeType == 29}" @click="changeType(1,29)">30天</div>
  151. <div class="fl b-r-15 w60 mr20 c-border b-c-12b7f5 c-12b7f5 cur-pit" :class="{'active': rangeType == 89}" @click="changeType(1,89)">90天</div>
  152. <div class="fl b-r-15 w60 c-border b-c-12b7f5 c-12b7f5 cur-pit" :class="{'active': rangeType == 182}" @click="changeType(1,182)">半年</div>
  153. </div>
  154. </div>
  155. <div class="ui-grid ui-grid-middle lh22 type c-border-t mtb10 pt10" v-if="recordType == 1">
  156. <div class="ui-col-0 clearfix">
  157. <div class="fl b-r-15 w60 mr20 c-border b-c-12b7f5 c-12b7f5 cur-pit" :class="{'active': xtStatu == 1}" @click="changeType(2,1)">早餐前</div>
  158. <div class="fl b-r-15 w60 mr20 c-border b-c-12b7f5 c-12b7f5 cur-pit" :class="{'active': xtStatu == 2}" @click="changeType(2,2)">早餐后</div>
  159. <div class="fl b-r-15 w60 mr20 c-border b-c-12b7f5 c-12b7f5 cur-pit" :class="{'active': xtStatu == 3}" @click="changeType(2,3)">午餐前</div>
  160. <div class="fl b-r-15 w60 c-border b-c-12b7f5 c-12b7f5 cur-pit" :class="{'active': xtStatu == 4}" @click="changeType(2,4)">午餐后</div>
  161. </div>
  162. </div>
  163. <div class="ui-grid ui-grid-middle type lh22" v-if="recordType == 1">
  164. <div class="ui-col-0 clearfix">
  165. <div class="fl b-r-15 w60 mr20 c-border b-c-12b7f5 c-12b7f5 cur-pit" :class="{'active': xtStatu == 5}" @click="changeType(2,5)">晚餐前</div>
  166. <div class="fl b-r-15 w60 mr20 c-border b-c-12b7f5 c-12b7f5 cur-pit" :class="{'active': xtStatu == 6}" @click="changeType(2,6)">晚餐后</div>
  167. <div class="fl b-r-15 w60 mr20 c-border b-c-12b7f5 c-12b7f5 cur-pit" :class="{'active': xtStatu == 7}" @click="changeType(2,7)">睡前</div>
  168. </div>
  169. </div>
  170. </div>
  171. <div class="ui-grid ui-grid-middle lh30 bgc-f5f5fa c-t-center" :class="{'pt10': recordType == 2}">
  172. <div class="ui-col-2" v-if="recordType == 2">收缩压</div>
  173. <div class="ui-col-2 c-12b7f5">正常:{{toNormal}}次</div>
  174. <div class="ui-col-2 c-ff3b30">偏高:{{toHigh}}次</div>
  175. <div class="ui-col-2 c-2dbe55">偏低:{{toLow}}次</div>
  176. </div>
  177. <div class="ui-grid ui-grid-middle pb10 lh30 bgc-f5f5fa c-t-center" v-if="recordType == 2">
  178. <div class="ui-col-2">舒张压</div>
  179. <div class="ui-col-2 c-12b7f5">正常:{{toNormal2}}次</div>
  180. <div class="ui-col-2 c-ff3b30">偏高:{{toHigh2}}次</div>
  181. <div class="ui-col-2 c-2dbe55">偏低:{{toLow2}}次</div>
  182. </div>
  183. <div style="height: 200px;">
  184. <my-chart :chart-data="chartData"></my-chart>
  185. </div>
  186. </div>
  187. </div>
  188. <div class="plr5 ui-col-1 ui-grid ui-grid-vertical">
  189. <h4 class="ui-col-0 m0 pl15 pr5 lh40 c-border-b clearfix c-position-r"><em class="c-position-a set-blue-span"></em>就诊记录</h4>
  190. <div class="ui-col-0 ui-grid ui-grid-middle lh30 c-border-b c-t-center clearfix">
  191. <div class="ui-col-2 w96 cur-pit" :class="{'active':eventType == 1}" @click="selectType(1)">门诊</div>
  192. <div class="ui-col-2 w96 cur-pit c-border-l" :class="{'active':eventType == 2}" @click="selectType(2)">住院</div>
  193. <div class="ui-col-2 w96 cur-pit c-border-l" :class="{'active':eventType == 3}" @click="selectType(3)">体检</div>
  194. </div>
  195. <ul class="ui-col-1 p0 m0" style="overflow: auto;">
  196. <li class="clearfix" v-for="(record, index) in seeRecord" :key="index">
  197. <div class="fl set-dianxian h73 plr10 pt20 clerfix">
  198. <span class="fl mlr5 set-row bgc-red" v-if="record.eventType == 2"></span>
  199. <span class="fl mlr5 set-row bgc-green" v-if="record.eventType == 3"></span>
  200. <span class="fl mlr5 set-row bgc-orange" v-if="record.eventType == 1"></span>
  201. </div>
  202. <div class="fl w-100-60 pt15">
  203. <div class=" c-border b-r-3">
  204. <p class="m0 p0 plr5 c-fff bgc-red lh22 clearfix" v-if="record.eventType == 2">住院<span class="fr">{{record.eventDate}}</span></p>
  205. <p class="m0 p0 plr5 c-fff bgc-green lh22 clearfix" v-if="record.eventType == 3">体检<span class="fr">{{record.eventDate}}</span></p>
  206. <p class="m0 p0 plr5 c-fff bgc-orange lh22 clearfix" v-if="record.eventType == 1">门诊<span class="fr">{{record.eventDate}}</span></p>
  207. <p class="m0 p0 plr5 pt5 lh22">{{record.dianosis}}</p>
  208. <p class="m0 p0 pr5 pb5 pl20 set-hospital">{{record.orgName}}</p>
  209. </div>
  210. </div>
  211. </li>
  212. <li class="c-t-center c-12b7f5" v-if="hasMoreRecord">查看更多</li>
  213. <li class="c-t-center ptb10" v-if="!seeRecord.length">无就诊记录</li>
  214. </ul>
  215. </div>
  216. </div>
  217. </div>
  218. </div>
  219. </div>
  220. </div>
  221. <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
  222. <script src="../../../js/jquery-2.2.4.js"></script>
  223. <script src="../../../plugins/layer/layer.min.js"></script>
  224. <script src="../../../plugins/toastr/toastr.min.js"></script>
  225. <script src="../../../plugins/echarts/3.8.5/echarts.js" type="text/javascript"></script>
  226. <script src="../../../component/rehabilitation/my-echart.js"></script>
  227. <script src="../../../js/bootstrap.min.js"></script>
  228. <script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
  229. <script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
  230. <script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
  231. <script src="../../../api/http-request.js" type="text/javascript"></script>
  232. <script src="../../../api/recover_api.js" type="text/javascript"></script>
  233. <script type="text/javascript">
  234. var doctorType = (JSON.parse(window.localStorage.getItem('wlyyAgent'))||{}).doctorType
  235. var httpData=GetRequest()
  236. function showSuccessMessage(msg) {
  237. layer.msg(msg, {
  238. icon: 1
  239. })
  240. }
  241. function showErrorMessage(msg) {
  242. layer.msg(msg, {
  243. icon: 5
  244. })
  245. }
  246. function showWarningMessage(msg) {
  247. layer.msg(msg, {
  248. icon: 2
  249. })
  250. }
  251. function showInfoMessage(msg) {
  252. layer.msg(msg, {
  253. icon: 6
  254. })
  255. }
  256. var nowDate = new Date().format("yyyy/MM/dd")
  257. recoverVue = new Vue({
  258. el: "#app",
  259. data: {
  260. doctorType: doctorType,
  261. isMobile: true,
  262. recoverPatInfo: {},
  263. finishData: {},
  264. diagnosisInformation: [],
  265. seeRecord: [],
  266. planDetailList: [],
  267. isFinishMore: false,
  268. page: 1,
  269. eventPage: 1,
  270. eventType: 1,
  271. hasMoreRecord: null,
  272. chartData: {},
  273. lastXT: '', // 最近一次血糖记录
  274. lastXY: '', // 最近一次血压记录
  275. recordType: 1, // 1血糖2血压
  276. rangeType: 6, // 日期
  277. xtStatu: 1, // 状态血糖
  278. toNormal: 0, // 正常
  279. toLow: 0, // 偏低
  280. toHigh: 0, // 偏高
  281. toNormal2: 0, // 正常
  282. toLow2: 0, // 偏低
  283. toHigh2: 0, // 偏高
  284. xtMax: 0, // 血糖最高
  285. xtMin: 0, // 血糖最低
  286. xyMax: [139, 89], // 血压最高
  287. xyMin: [90, 60], // 血压最低
  288. },
  289. mounted: function() {
  290. this.patientRehabilitationDetail()
  291. this.recentPlanDetailRecord()
  292. this.archivesEvent()
  293. // 获取最新的诊疗信息2条
  294. this.findDiagnosisInformationByPatient()
  295. // 获取体征记录
  296. this.getBodyRecoredLast()
  297. },
  298. methods: {
  299. changeStatu: function() {
  300. this.isMobile = false
  301. },
  302. gotoNewplan: function() {
  303. location.href = "new_recover.html?patient=" + httpData.patientCode
  304. },
  305. jumpPlan: function(plan) {
  306. location.href = "../../rehabilitation/html/rehabilitation_management.html?planId=" + plan.planId + "&patientCode=" + httpData.patientCode
  307. },
  308. lookProject: function(obj) {
  309. layer.open({
  310. type: 2,
  311. area: ['600px', '500px'],
  312. shade: 0.5,
  313. title: '服务项目内容',
  314. closeBtn: 1,
  315. shift: 5,
  316. shadeClose: false, //点击遮罩关闭层
  317. content: "project-detail.html?planId=" + obj.id
  318. });
  319. },
  320. // 获取最新的诊疗消息
  321. findDiagnosisInformationByPatient: function() {
  322. var vm = this,
  323. loading = layer.load(0, {shade: false}),params = {
  324. patient: httpData.patientCode || "e040dd6814b648ceb3ba8d8a04f9f22c",
  325. page: 0,
  326. size: 2
  327. }
  328. recoverAPI.findDiagnosisInformationByPatient(params).then(function(res) {
  329. layer.close(loading)
  330. if(res.status == 200) {
  331. vm.diagnosisInformation = res.data.detailModelList
  332. } else {
  333. showErrorMessage(res.msg);
  334. }
  335. })
  336. },
  337. patientRehabilitationDetail: function() {
  338. var vm = this,
  339. loadding = layer.load(0, {shade: false}),
  340. params = {
  341. patientCode: httpData.patientCode || "e040dd6814b648ceb3ba8d8a04f9f22c"
  342. }
  343. recoverAPI.patientRehabilitationDetail(params).then(function(res) {
  344. layer.close(loadding)
  345. if(res.status == 200) {
  346. vm.recoverPatInfo = res.data
  347. } else {
  348. showErrorMessage(res.msg);
  349. }
  350. })
  351. },
  352. recentPlanDetailRecord: function() {
  353. var vm = this,
  354. loadding = layer.load(0, {shade: false}),
  355. params = {
  356. patientCode: httpData.patientCode || "e040dd6814b648ceb3ba8d8a04f9f22c",
  357. page: vm.eventPage,
  358. pageSize: 10
  359. }
  360. recoverAPI.recentPlanDetailRecord(params).then(function(res) {
  361. layer.close(loadding)
  362. if(res.status == 200) {
  363. vm.finishData = res.data
  364. vm.planDetailList = vm.planDetailList.concat(vm.finishData.planDetailList)
  365. vm.planDetailList = $.each(vm.planDetailList, function(index, o) {
  366. if(nowDate == o.executeTime.split(" ")[0]) {
  367. o.istaDay = true
  368. }
  369. return o
  370. });
  371. if(vm.finishData.planDetailList.length >= 10) {
  372. vm.isFinishMore = true
  373. } else {
  374. vm.isFinishMore = false
  375. }
  376. } else {
  377. showErrorMessage(res.msg);
  378. }
  379. })
  380. },
  381. selectType: function(type) {
  382. this.eventType = type
  383. this.seeRecord = []
  384. this.page = 1
  385. this.archivesEvent()
  386. },
  387. archivesEvent: function() {
  388. var vm = this,
  389. loadding = layer.load(0, {shade: false}),
  390. params = {
  391. patient: httpData.patientCode || "e040dd6814b648ceb3ba8d8a04f9f22c",
  392. type: vm.eventType,
  393. page: vm.page,
  394. pageSize: 20
  395. }
  396. recoverAPI.archivesEvent(params).then(function(res) {
  397. layer.close(loadding)
  398. if(res.status == 200) {
  399. this.hasMoreRecord = res.data.length == 20 ? true : false
  400. vm.seeRecord = vm.seeRecord.concat(res.data)
  401. } else {
  402. showErrorMessage(res.msg);
  403. }
  404. })
  405. },
  406. setPatImg: function(src, doc) {
  407. if(!src) {
  408. if(doc) {
  409. return "../../../images/d-default.png"
  410. } else {
  411. return "../../../images/p-female.png"
  412. }
  413. } else {
  414. var str = httpRequest.getImgUrl(src);
  415. return str
  416. }
  417. },
  418. addEventPage: function() {
  419. this.eventPage++;
  420. this.recentPlanDetailRecord()
  421. },
  422. addPage: function() {
  423. this.page++;
  424. this.archivesEvent()
  425. },
  426. setPercent: function(plan) {
  427. return Math.floor(plan.allFinishCount / plan.allCount * 100) + "%"
  428. },
  429. // 时间推算
  430. getDateFromCurrentDate: function() {
  431. var fromDate = this.recordType == 1 ? this.lastXT : this.lastXY,
  432. dayInterval = -this.rangeType;
  433. var curDate = new Date(Date.parse(fromDate.replace(/-/g, "/")));
  434. curDate.setDate(curDate.getDate() + dayInterval);
  435. var year = curDate.getFullYear();
  436. var month = (curDate.getMonth() + 1) < 10 ? "0" + (curDate.getMonth() + 1) : (curDate.getMonth() + 1);
  437. var day = curDate.getDate() < 10 ? "0" + curDate.getDate() : curDate.getDate();
  438. return year + "-" + month + "-" + day + " 00:00:00";
  439. },
  440. // 血糖最高值最低值
  441. getNormalLevel: function() {
  442. var arr = [
  443. [],
  444. [6.1, 3.9],
  445. [7.8, 4.4],
  446. [6.1, 3.9],
  447. [7.8, 4.4],
  448. [6.1, 3.9],
  449. [7.8, 4.4],
  450. [6.1, 3.9]
  451. ][this.xtStatu];
  452. this.xtMax = arr[0]
  453. this.xyMax = arr[1]
  454. },
  455. // 处理数据偏高、偏低、正常
  456. judgeDataDif: function(val, val2) {
  457. // 血糖判断
  458. if(this.recordType == 1) {
  459. if(val > this.xtMax) {
  460. ++this.toHigh;
  461. } else if(val < this.xtMin) {
  462. ++this.toLow;
  463. } else {
  464. ++this.toNormal;
  465. };
  466. } else {
  467. // 血压判断
  468. if(val > this.xyMax[0]) {
  469. ++this.toHigh;
  470. } else if(val < this.xyMin[0]) {
  471. ++this.toLow;
  472. } else {
  473. ++this.toNormal;
  474. }
  475. // 血压判断
  476. if(val2 > this.xyMax[1]) {
  477. ++this.toHigh2;
  478. } else if(val2 < this.xyMin[1]) {
  479. ++this.toLow2;
  480. } else {
  481. ++this.toNormal2;
  482. }
  483. }
  484. },
  485. // 体征记录
  486. changeType: function(judge, num) {
  487. if(judge) {
  488. if(judge == 1) {
  489. this.rangeType = num
  490. } else {
  491. this.xtStatu = num
  492. }
  493. } else {
  494. this.recordType = num
  495. }
  496. this.getHealthIndex()
  497. },
  498. // 获取上次体检
  499. getBodyRecoredLast: function() {
  500. var vm = this,
  501. loading = layer.load(0, {shade: false}),
  502. params = {
  503. patient: httpData.patientCode || "e040dd6814b648ceb3ba8d8a04f9f22c"
  504. }
  505. recoverAPI.getBodyRecoredLast(params).then(function(res) {
  506. layer.close(loading)
  507. if(res.status == 200){
  508. vm.lastXT = res.data.xt ? res.data.xt.recordDate : null;
  509. vm.lastXY = res.data.xy ? res.data.xy.recordDate : null;
  510. // 初始化执行
  511. vm.getHealthIndex();
  512. }else{
  513. showErrorMessage(res.msg)
  514. }
  515. })
  516. },
  517. // 获取体征数据
  518. getHealthIndex: function() {
  519. this.toNormal = 0;
  520. this.toHigh = 0;
  521. this.toLow = 0;
  522. if(this.recordType == 2) {
  523. this.toNormal = 0;
  524. this.toHigh = 0;
  525. this.toLow = 0;
  526. }
  527. var endDate = this.recordType == 1 ? this.lastXT : this.lastXY
  528. if(!endDate) {
  529. showErrorMessage("暂无体征数据");
  530. this.chartData = {
  531. opinion:[],
  532. opinionData:[],
  533. recordType: vm.recordType,
  534. opinionData2: [],
  535. }
  536. return false;
  537. }
  538. if(this.recordType == 1) { this.getNormalLevel(); }
  539. var vm = this,
  540. loading = layer.load(0, {shade: false}),
  541. startDate = vm.getDateFromCurrentDate(),
  542. params = {
  543. patient: httpData.patientCode || "e040dd6814b648ceb3ba8d8a04f9f22c",
  544. type: vm.recordType,
  545. begin: startDate,
  546. end: endDate,
  547. gi_type: vm.recordType == 1 ? vm.xtStatu : 0
  548. }
  549. recoverAPI.getHealthIndex(params).then(function(res) {
  550. layer.close(loading)
  551. if(res.status == 200) {
  552. var arr1 = [], arr2 = [], arr3 = []
  553. for(var i = 0, len = res.list.length; i < len; i++) {
  554. vm.judgeDataDif(res.list[i].value1, res.list[i].value2)
  555. arr1.push(res.list[i].date)
  556. var obj = {value: res.list[i].value1, name: res.list[i].date},
  557. obj2 = {value: res.list[i].value2, name: res.list[i].date};
  558. arr2.push(obj)
  559. arr3.push(obj2)
  560. }
  561. vm.chartData = {
  562. opinion: arr1.length ? arr1 : [],
  563. opinionData: arr2.length ? arr2 : [],
  564. recordType: vm.recordType,
  565. opinionData2: vm.recordType == 2 ? arr3 : [],
  566. }
  567. } else {
  568. showErrorMessage(res.msg);
  569. }
  570. })
  571. }
  572. }
  573. })
  574. </script>
  575. </body>
  576. </html>