Elizabeth's proactive approach involves introducing urinal toilet attachment , an ingenious concept that optimizes space and functionality.

printTwo.vue 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369
  1. <template>
  2. <div id="prescription-print">
  3. <div class="prescription-print">
  4. <div class="printTitle">{{ orgname }}血透中心病历</div>
  5. <!-- <div class="record_Title">
  6. <div>姓名:{{patient.name?patient.name:''}}</div>
  7. <div>性别:
  8. <span v-if="patient.gender == 1">男</span>
  9. <span v-if="patient.gender == 2">女</span>
  10. </div>
  11. <div>年龄:{{patient.age?patient.age:''}}岁</div>
  12. <div>透析病历号:{{patient.id?patient.id:''}}</div>
  13. </div> -->
  14. <div class="infoTitle" style="margin-top:20px;">
  15. <div class="name_slot">姓名:{{ patient.name ? patient.name : "" }}</div>
  16. <div class="address_slot">
  17. 家庭住址:{{ patient.home_address ? patient.home_address : "" }}
  18. </div>
  19. </div>
  20. <div class="infoTitle">
  21. <div class="name_slot">
  22. 性别:
  23. <span v-if="patient.gender == 1">男</span>
  24. <span v-if="patient.gender == 2">女</span>
  25. </div>
  26. <div class="address_slot">工作单位:{{patient.work_unit}}</div>
  27. </div>
  28. <div class="infoTitle">
  29. <div class="name_slot">出生日期:{{patient.id_card_no.slice(6,10)}}年{{ patient.id_card_no.slice(10,12) }}月{{patient.id_card_no.slice(12,14) }}日</div>
  30. <div class="address_slot">身份证号:{{patient.id_card_no}}</div>
  31. </div>
  32. <div class="infoTitle">
  33. <div class="name_slot">联系人:{{patient.contact_name}}</div>
  34. <div class="address_slot">联系电话:{{ patient.phone ? patient.phone : "" }}</div>
  35. </div>
  36. <div class="otherInfo" style="border-bottom: 1px solid">
  37. <div>进入透析时间:{{getTime(patient.first_dialysis_date)}}</div>
  38. <div style="flex: 1"></div>
  39. </div>
  40. <div class="infoTitle">
  41. <div style="width: 300px">原发病:{{history.primary_disease}}</div>
  42. <div class="address_slot">确诊肾衰日期:{{getTime(history.confirm_failure_date)}}</div>
  43. </div>
  44. <div class="otherInfo">
  45. <div>
  46. 药物过敏史:{{ history.allergic_history ? history.allergic_history : "" }}
  47. </div>
  48. </div>
  49. <div class="otherInfo">
  50. <div>初始透析日期:{{getTime(patient.first_dialysis_date)}}</div>
  51. <div style="flex: 1"></div>
  52. </div>
  53. <div class="otherInfo" style="border-bottom: 1px solid">
  54. <div>血管通路:{{accessList.blood_access_part_opera_id}}</div>
  55. <div style="flex: 1"></div>
  56. </div>
  57. <div class="otherInfo" style="min-height: 60px;">
  58. <div class="otherName">主诉:</div>
  59. <div style="flex: 1">
  60. {{ history.chief_conplaint ? history.chief_conplaint : "" }}
  61. </div>
  62. </div>
  63. <div class="otherInfo" style="min-height: 180px;">
  64. <div class="otherName">现病史:</div>
  65. <div style="flex: 1">
  66. {{
  67. history.history_of_present_illness
  68. ? history.history_of_present_illness
  69. : ""
  70. }}
  71. </div>
  72. </div>
  73. <div class="otherInfo" style="min-height: 100px;">
  74. <div class="otherName">既往史:</div>
  75. <div style="flex: 1">
  76. {{ history.past_history ? history.past_history : "" }}
  77. </div>
  78. </div>
  79. <div class="otherInfo" style="min-height: 80px;">
  80. <div class="otherName">个人史:</div>
  81. <div style="flex: 1">
  82. {{ history.personal_history ? history.personal_history : "" }}
  83. </div>
  84. </div>
  85. <div class="otherInfo" style="min-height: 150px;">
  86. <div class="otherName">家族史:</div>
  87. <div style="flex: 1">
  88. {{ history.family_history ? history.family_history : "" }}啊实打实大苏打实打实
  89. </div>
  90. </div>
  91. </div>
  92. <div style="page-break-after: always; margin-top: 50px"></div>
  93. <div class="prescription-print">
  94. <!-- <div class="printTitle">病历内容</div> -->
  95. <div class="recordTitle">
  96. <div>体格检查</div>
  97. <div class="recordContent" style="height:250px;">
  98. <div>
  99. <span>体温:{{ history.temperature ? history.temperature + '℃' : '/' }}</span>
  100. <span>脉搏:{{ history.pulse ? history.pulse + '次/分' : '/' }}</span>
  101. <span>呼吸:{{ history.breathing ? history.breathing + '次/分' : '/' }}</span>
  102. <span>血压:{{ history.sbp }}/{{ history.dbp }}mmHg</span>
  103. </div>
  104. </div>
  105. <div></div>
  106. </div>
  107. <div class="recordTitle">
  108. <div>专科检查</div>
  109. <div class="recordContent">{{history.special_inspection}}</div>
  110. </div>
  111. <div class="recordTitle" style="border-bottom: 1px solid">
  112. <div>实验室及器械检查</div>
  113. <div class="recordContent" style="height:250px;">{{history.lab_apparatus}}</div>
  114. </div>
  115. <div style="display: flex; justify-content:flex-end">
  116. <div class="endInfo">
  117. <div style="height: 100px">
  118. 诊断:{{ history.diagnostic ? history.diagnostic : "" }}
  119. </div>
  120. <div style="display: flex">
  121. <div>医师:{{getDoctor(history.doctor) ? getDoctor(history.doctor) : ""}}</div>
  122. <div>
  123. 手签:
  124. </div>
  125. </div>
  126. <div style="text-align: center; letter-spacing: 3px;padding-top:20px">{{getTime(history.record_date)}}</div>
  127. </div>
  128. </div>
  129. </div>
  130. </div>
  131. </template>
  132. <script>
  133. import { jsGetAge, uParseTime } from "@/utils/tools";
  134. import { getDataConfig } from "@/utils/data";
  135. import { getAllDoctorList, getPatientCaseHistory } from "@/api/project/project";
  136. import {getAccessList} from "@/api/patient"
  137. export default {
  138. props: {
  139. patient: Object,
  140. hispatient: Object,
  141. patientid: Number,
  142. // history:Object,
  143. },
  144. data() {
  145. return {
  146. educationOptions: [],
  147. departmentList: [],
  148. orgname: "",
  149. history: {},
  150. printDate: "",
  151. accessList:{},
  152. blood_access_part_opera:[],
  153. };
  154. },
  155. methods: {
  156. getAge(patient) {
  157. var thisLen = patient.id_card_no.length;
  158. var birth = "";
  159. if (thisLen == 15) {
  160. birth = "19" + patient.id_card_no.substr(6, 6);
  161. } else {
  162. birth = patient.id_card_no.substr(6, 8);
  163. }
  164. var births =
  165. birth.substr(0, 4) +
  166. "-" +
  167. birth.substr(4, 2) +
  168. "-" +
  169. birth.substr(6, 2);
  170. return jsGetAge(births, "-");
  171. },
  172. show(val) {
  173. this.patientid = val;
  174. this.getAllDoctorList();
  175. this.getPatientCaseHistory();
  176. },
  177. getProfession(id) {
  178. var name = "";
  179. for (let i = 0; i < this.educationOptions.length; i++) {
  180. if (id == this.educationOptions[i].id) {
  181. name = this.educationOptions[i].name;
  182. }
  183. }
  184. return name;
  185. },
  186. getAllDoctorList() {
  187. getAllDoctorList().then((response) => {
  188. if (response.data.state == 1) {
  189. var doctor = response.data.data.doctor;
  190. this.doctorList = doctor;
  191. var department = response.data.data.department;
  192. console.log("department", department);
  193. this.departmentList = department;
  194. }
  195. });
  196. },
  197. getDoctor(id) {
  198. var name = "";
  199. for (let i = 0; i < this.doctorList.length; i++) {
  200. if (id == this.doctorList[i].admin_user_id) {
  201. name = this.doctorList[i].user_name;
  202. }
  203. }
  204. return name;
  205. },
  206. getPatientCaseHistory() {
  207. const params = {
  208. patient_id: this.patientid,
  209. };
  210. getPatientCaseHistory(params).then((response) => {
  211. if (response.data.state == 1) {
  212. var patient = response.data.data.patient;
  213. this.patient = patient;
  214. console.log(this.patient,'this.patient')
  215. var history = response.data.data.history;
  216. this.history = history;
  217. var hispatient = response.data.data.hispatient;
  218. this.hispatient = hispatient;
  219. var accessList = response.data.data.accessList
  220. console.log("accesslist2332323232",accessList)
  221. this.accessList = accessList
  222. }
  223. });
  224. },
  225. getDeparment(id) {
  226. var name = "";
  227. for (let i = 0; i < this.departmentList.length; i++) {
  228. if (id == this.departmentList[i].id) {
  229. name = this.departmentList[i].name;
  230. }
  231. }
  232. return name;
  233. },
  234. getTime(val) {
  235. if(val < 0){
  236. return ""
  237. }
  238. if(val == ""){
  239. return ""
  240. }else {
  241. return uParseTime(val, '{y}-{m}-{d}')
  242. }
  243. },
  244. getAccessList(){
  245. getAccessList().then(response=>{
  246. if(response.data.state == 1){
  247. var blood_access_part_opera = response.data.data.blood_access_part_opera
  248. this.blood_access_part_opera = blood_access_part_opera
  249. }
  250. })
  251. },
  252. getAccess(id){
  253. var name = ""
  254. for(let i=0;i<this.blood_access_part_opera.length;i++){
  255. if(id == this.blood_access_part_opera[i].value){
  256. name = this.blood_access_part_opera[i].name
  257. }
  258. }
  259. return name
  260. }
  261. },
  262. created() {
  263. this.educationOptions = getDataConfig("patient", "education_types");
  264. // this.getAllDoctorList();
  265. // this.getPatientCaseHistory();
  266. // this.getAccessList()
  267. var xtuser = this.$store.getters.xt_user;
  268. this.orgname = xtuser.org.org_name;
  269. var data = new Date();
  270. var month =
  271. data.getMonth() < 9 ? "0" + (data.getMonth() + 1) : data.getMonth() + 1;
  272. var date = data.getDate() <= 9 ? "0" + data.getDate() : data.getDate();
  273. this.printDate = data.getFullYear() + "-" + month + "-" + date;
  274. },
  275. watch: {
  276. patientid: function (val) {
  277. console.log("val22332323", val);
  278. },
  279. },
  280. };
  281. </script>
  282. <style lang="scss" scoped>
  283. .prescription-print {
  284. -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27),
  285. 0 0 60px rgba(0, 0, 0, 0.06) inset;
  286. -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27),
  287. 0 0 40px rgba(0, 0, 0, 0.06) inset;
  288. box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
  289. margin-bottom: 20px;
  290. padding: 20px 10px;
  291. }
  292. .printTitle {
  293. font-size: 22px;
  294. text-align: center;
  295. font-weight: bold;
  296. }
  297. .infoTitle {
  298. display: flex;
  299. margin-top: 10px;
  300. line-height: 24px;
  301. padding: 0 10px;
  302. }
  303. .infoTitle div {
  304. width: 200px;
  305. }
  306. .infoTitle .address_slot{width: 400px;}
  307. .infoTitle .name_slot{width: 250px;}
  308. .otherInfo {
  309. display: flex;
  310. margin-top: 10px;
  311. line-height: 24px;
  312. padding: 0 10px;
  313. }
  314. .endInfo {
  315. display: flex;
  316. flex-direction: column;
  317. justify-content: end;
  318. margin-top: 10px;
  319. line-height: 24px;
  320. }
  321. .endInfo div {
  322. width: 300px;
  323. }
  324. .recordTitle {
  325. display: flex;
  326. justify-content: center;
  327. flex-direction: column;
  328. margin-top: 10px;
  329. line-height: 24px;
  330. padding: 0 10px;
  331. border-top: 1px solid;
  332. }
  333. .recordTitle div {
  334. width: 100%;
  335. text-align: center;
  336. }
  337. .recordTitle .recordContent {
  338. width: 100%;
  339. height: 150px;
  340. text-align: left;
  341. }
  342. .record_Title{
  343. display: flex;
  344. margin-top:10px;
  345. line-height: 24px;
  346. padding:0 10px;
  347. border-bottom: 2px solid #000;
  348. }
  349. .record_Title div{
  350. width: 200px;
  351. }
  352. </style>