You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

257 lines
7.6 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. <template>
  2. <div>
  3. <div>
  4. <div class="contenttitle">
  5. 体检 /<span class="contenttitleBold">总检医生诊台</span>
  6. </div>
  7. <div style="display: flex">
  8. <div :style="'width:' + (window.pageWidth - 110 - 15) + 'px;'">
  9. <div>
  10. <PatientRegisterBase />
  11. </div>
  12. <div :style="`height: ${window.pageHeight < 600 ? 436 : window.pageHeight - 164}px;`">
  13. <el-tabs v-model="tabChoosed">
  14. <el-tab-pane label="综述建议" name="1">
  15. <div style="display: flex;">
  16. <!-- 综述建议 -->
  17. <div :style="'width:' + (window.pageWidth - 110 - 15) + 'px;'">
  18. <SumSug :patientRegisterId="dataTransOpts.tableS.patient_register.id" :tabChoosed="tabChoosed" />
  19. </div>
  20. <!-- 诊断 width:200px;
  21. <div v-if="false" style="width:200px;">
  22. <SumDiagnosis :patientRegisterId="dataTransOpts.tableS.patient_register.id" />
  23. </div>
  24. -->
  25. </div>
  26. <div>
  27. <!-- 总检状态 -->
  28. <SumPREdit />
  29. <!-- 检查情况 -->
  30. <div style="margin-top: -6px;">
  31. <SumAsbItemStatus :patientRegisterId="dataTransOpts.tableS.patient_register.id"
  32. :tabChoosed="tabChoosed" />
  33. </div>
  34. </div>
  35. </el-tab-pane>
  36. <el-tab-pane label="明细结果" name="2">
  37. <CheckDetails :patientRegisterId="dataTransOpts.tableS.patient_register.id" :tabChoosed="tabChoosed" />
  38. </el-tab-pane>
  39. <!--
  40. <el-tab-pane label="危急值" name="3"> </el-tab-pane>
  41. <el-tab-pane label="项目对比" name="4">
  42. <SumItemsType :patientId="dataTransOpts.tableS.patient_register.patientId" />
  43. </el-tab-pane>
  44. -->
  45. <el-tab-pane label="历次结果" name="5">
  46. <SumItems :patientId="dataTransOpts.tableS.patient_register.patientId" :tabChoosed="tabChoosed" />
  47. </el-tab-pane>
  48. <el-tab-pane label="历次综述" name="6">
  49. <SumHistory :patientId="dataTransOpts.tableS.patient_register.patientId" :tabChoosed="tabChoosed" />
  50. </el-tab-pane>
  51. </el-tabs>
  52. </div>
  53. </div>
  54. <div style="width: 110px">
  55. <ButtonList />
  56. </div>
  57. </div>
  58. </div>
  59. </div>
  60. </template>
  61. <script>
  62. import { mapState } from "vuex";
  63. import { getapi, postapi, putapi, deletapi } from "@/api/api";
  64. import { tcdate } from "../../utlis/proFunc";
  65. import PatientRegisterBase from "../../components/doctorCheck/PatientRegisterBase.vue";
  66. import ButtonList from "../../components/sumDoctorCheck/ButtonList.vue";
  67. import SumSug from "../../components/sumDoctorCheck/SumSug.vue";
  68. import SumDiagnosis from "../../components/sumDoctorCheck/SumDiagnosis.vue";
  69. import SumPREdit from "../../components/sumDoctorCheck/SumPREdit.vue";
  70. import SumAsbItemStatus from "../../components/sumDoctorCheck/SumAsbItemStatus.vue";
  71. import CheckDetails from "../../components/sumDoctorCheck/CheckDetails.vue";
  72. import SumItemsType from "../../components/sumDoctorCheck/SumItemsType.vue";
  73. import SumItems from "../../components/sumDoctorCheck/SumItems.vue";
  74. import SumHistory from "../../components/sumDoctorCheck/SumHistory.vue";
  75. export default {
  76. components: {
  77. PatientRegisterBase,
  78. ButtonList,
  79. SumSug,
  80. SumDiagnosis,
  81. SumPREdit,
  82. SumAsbItemStatus,
  83. CheckDetails,
  84. SumItemsType,
  85. SumItems,
  86. SumHistory,
  87. },
  88. data() {
  89. return {
  90. tabChoosed: "1",
  91. };
  92. },
  93. created() {
  94. if (this.$route.query.patient_register) {
  95. this.dataTransOpts.tableS.patient_register = this.$route.query.patient_register
  96. } else {
  97. this.dataTransOpts.tableS.patient_register = { id: '', patientRegisterNo: '' }
  98. this.dataTransOpts.tableS.register_check = { id: '' }
  99. }
  100. },
  101. //挂载完成
  102. mounted() {
  103. this.dictInit();
  104. document.addEventListener("contextmenu", (e) => {
  105. if (this.$peisAPI) {
  106. e.preventDefault();
  107. this.$peisAPI.contextMenuForPeis()
  108. }
  109. })
  110. },
  111. computed: {
  112. ...mapState([
  113. "window",
  114. "dict",
  115. "dataTransOpts",
  116. "patientRegister",
  117. "customerOrg",
  118. "sumDoctorCheck",
  119. ]),
  120. },
  121. methods: {
  122. //数据初始化
  123. dictInit() {
  124. //性别
  125. getapi("/api/app/sex").then((res) => {
  126. if (res.code == 1) {
  127. this.dict.sex = res.data;
  128. }
  129. });
  130. //体检中心
  131. getapi("/api/app/organization-units/organization-unit-by-is-peis").then(
  132. (res) => {
  133. if (res.code == 1) {
  134. this.dict.organization = res.data;
  135. }
  136. }
  137. );
  138. //体检单位
  139. // getapi("/api/app/customer-org/in-filter").then((res) => {
  140. // if (res.code == 1) {
  141. // this.dict.customerOrg = res.data;
  142. // }
  143. // });
  144. //体检类别
  145. getapi("/api/app/medical-type/in-filter").then((res) => {
  146. if (res.code == 1) {
  147. this.dict.medicalType = res.data;
  148. }
  149. });
  150. //人员类别
  151. getapi("/api/app/personnel-type/in-filter").then((res) => {
  152. if (res.code == 1) {
  153. this.dict.personnelType = res.data;
  154. }
  155. });
  156. //婚姻状况
  157. getapi("/api/app/MaritalStatus/GetMaritalStatusList").then((res) => {
  158. if (res.code == 1) {
  159. this.dict.maritalStatus = res.data;
  160. }
  161. });
  162. //性激素期
  163. getapi("/api/app/sex-hormone-term/in-filter").then((res) => {
  164. if (res.code == 1) {
  165. this.dict.sexHormoneTerm = res.data;
  166. }
  167. });
  168. //民族
  169. getapi("/api/app/nation/in-filter").then((res) => {
  170. if (res.code == 1) {
  171. this.dict.nation = res.data;
  172. }
  173. });
  174. //籍惯 ,出生地
  175. getapi("/api/app/birth-place/in-filter").then((res) => {
  176. if (res.code == 1) {
  177. this.dict.birthPlace = res.data;
  178. }
  179. });
  180. //套餐
  181. postapi("/api/app/medicalpackage/GetBasicList", {}).then((res) => {
  182. if (res.code == 1) {
  183. this.dict.medicalPackage = res.data;
  184. }
  185. });
  186. //分组,所有分组,不限单位,不限次数
  187. // getapi("/api/app/customer-org-group").then((res) => {
  188. // if (res.code == 1) {
  189. // this.dict.customerOrgGroupAll = res.data.items;
  190. // }
  191. // });
  192. //支付方式
  193. // getapi("/api/app/pay-mode").then((res) => {
  194. // if (res.code == 1) {
  195. // this.dict.payMode = res.data;
  196. // }
  197. // });
  198. //体检类别 树结构
  199. getapi("/api/app/item-type/by-code-all").then((res) => {
  200. if (res.code == 1) {
  201. this.dict.itemTypeTree = res.data;
  202. tcdate(this.dict.itemTypeTree);
  203. }
  204. });
  205. postapi("/api/app/asbitem/GetBasicList", { isFilterActive: 'Y' }).then((res) => {
  206. if (res.code == 1) {
  207. this.dict.asbItemAll = res.data;
  208. }
  209. });
  210. console.log("dict", this.dict);
  211. },
  212. },
  213. //监听事件()
  214. watch: {
  215. "tabChoosed": {
  216. // immediate:true,
  217. handler(newVal, oldVal) {
  218. console.log(`watch 总检--历次综述建议 newVal: ${newVal}, oldVal: ${oldVal} `);
  219. if (newVal != oldVal && newVal != '1') this.dataTransOpts.refresh.sumDoctor.M++
  220. }
  221. },
  222. },
  223. };
  224. </script>
  225. <style scoped>
  226. @import '../../assets/css/global_card.css';
  227. @import '../../assets/css/global_input.css';
  228. @import '../../assets/css/global_table.css';
  229. @import '../../assets/css/global.css';
  230. </style>