Browse Source

医保对接

csx 3 years ago
parent
commit
16a7ef89dc
1 changed files with 172 additions and 19 deletions
  1. 172 19
      controllers/his_api_controller.go

+ 172 - 19
controllers/his_api_controller.go View File

@@ -562,33 +562,186 @@ func (c *HisApiController) GetHisPatientInfo() {
562 562
 func (c *HisApiController) GetHisPrescriptionConfig() {
563 563
 	adminInfo := c.GetAdminUserInfo()
564 564
 	//获取医嘱模版
565
-	advices, _ := service.FindAllHisAdviceTemplate(adminInfo.CurrentOrgId)
565
+	//advices, _ := service.FindAllHisAdviceTemplate(adminInfo.CurrentOrgId)
566 566
 	//获取所有基础药
567
-	drugs, _ := service.GetAllDrugLibList(adminInfo.CurrentOrgId)
568
-	drugways, _, _ := service.GetDrugWayDics(adminInfo.CurrentOrgId)
569
-	efs, _, _ := service.GetExecutionFrequencyDics(adminInfo.CurrentOrgId)
570
-	doctors, _ := service.GetHisAdminUserDoctors(adminInfo.CurrentOrgId)
571
-	//获取所有科室信息
572
-	department, _ := service.GetAllDepartMent(adminInfo.CurrentOrgId)
573 567
 
574
-	//获取诊断信息
568
+	drugways_keys := strconv.FormatInt(adminInfo.CurrentOrgId, 10) + "_drugways"
569
+	efs_keys := strconv.FormatInt(adminInfo.CurrentOrgId, 10) + "_efs"
570
+	doctors_keys := strconv.FormatInt(adminInfo.CurrentOrgId, 10) + "_doctors"
571
+	department_keys := strconv.FormatInt(adminInfo.CurrentOrgId, 10) + "_department"
572
+	sick_keys := strconv.FormatInt(adminInfo.CurrentOrgId, 10) + "_sick"
573
+	diagnose_keys := strconv.FormatInt(adminInfo.CurrentOrgId, 10) + "_diagnose"
574
+
575
+	redis := service.RedisClient()
576
+	defer redis.Close()
577
+
578
+	drugways_str, _ := redis.Get(drugways_keys).Result()
579
+	efs_str, _ := redis.Get(efs_keys).Result()
580
+	doctors_str, _ := redis.Get(doctors_keys).Result()
581
+	department_str, _ := redis.Get(department_keys).Result()
582
+	sick_str, _ := redis.Get(sick_keys).Result()
583
+	diagnose_str, _ := redis.Get(diagnose_keys).Result()
584
+
585
+	var drugways []*models.DrugwayDic
586
+	var efs []*models.ExecutionFrequencyDic
587
+	var roles []*models.UserAdminRole
588
+	var departments []*models.XtHisDepartment
589
+	var sicks []*models.OutpatientServiceSick
590
+	var diagnose []*models.HisXtDiagnoseConfig
591
+
592
+	if len(drugways_str) == 0 {
593
+		drugways, _, _ = service.GetDrugWayDics(adminInfo.CurrentOrgId)
594
+		drugways_str, err := json.Marshal(drugways)
595
+		if err == nil {
596
+			redis.Set(drugways_keys, string(drugways_str), time.Second*60*60*18)
597
+
598
+		} else {
599
+			redis.Set(drugways_keys, "", time.Second*60*60*18)
600
+
601
+		}
602
+
603
+	} else {
604
+		err := json.Unmarshal([]byte(drugways_str), &drugways)
605
+		if err != nil {
606
+			drugways, _, _ = service.GetDrugWayDics(adminInfo.CurrentOrgId)
607
+			drugways_str, err := json.Marshal(drugways)
608
+			if err == nil {
609
+				redis.Set(drugways_keys, string(drugways_str), time.Second*60*60*18)
575 610
 
576
-	sick, _ := service.FindAllSick(adminInfo.CurrentOrgId)
611
+			} else {
612
+				redis.Set(drugways_keys, "", time.Second*60*60*18)
613
+
614
+			}
615
+
616
+		}
617
+
618
+	}
619
+	if len(efs_str) == 0 {
620
+		efs, _, _ = service.GetExecutionFrequencyDics(adminInfo.CurrentOrgId)
621
+		efs_str, err := json.Marshal(efs)
622
+		if err == nil {
623
+
624
+			redis.Set(efs_keys, string(efs_str), time.Second*60*60*18)
625
+
626
+		} else {
627
+
628
+			redis.Set(efs_keys, "", time.Second*60*60*18)
629
+
630
+		}
631
+	} else {
632
+		err := json.Unmarshal([]byte(efs_str), &efs)
633
+		if err != nil {
634
+			efs, _, _ = service.GetExecutionFrequencyDics(adminInfo.CurrentOrgId)
635
+			efs_str, err := json.Marshal(efs)
636
+			if err == nil {
637
+
638
+				redis.Set(efs_keys, string(efs_str), time.Second*60*60*18)
639
+
640
+			} else {
641
+
642
+				redis.Set(efs_keys, "", time.Second*60*60*18)
643
+
644
+			}
645
+		}
646
+	}
647
+
648
+	if len(doctors_str) == 0 {
649
+		roles, _ = service.GetHisAdminUserDoctors(adminInfo.CurrentOrgId)
650
+		doctors_str, err := json.Marshal(roles)
651
+		if err == nil {
652
+			redis.Set(doctors_keys, string(doctors_str), time.Second*60*60*18)
653
+		} else {
654
+			redis.Set(doctors_keys, "", time.Second*60*60*18)
655
+		}
577 656
 
578
-	diagnose, _ := service.FindAllDiagnose(adminInfo.CurrentOrgId)
657
+	} else {
658
+		err := json.Unmarshal([]byte(doctors_str), &efs)
659
+		if err != nil {
660
+			roles, _ = service.GetHisAdminUserDoctors(adminInfo.CurrentOrgId)
661
+			doctors_str, err := json.Marshal(roles)
662
+			if err == nil {
663
+				redis.Set(doctors_keys, string(doctors_str), time.Second*60*60*18)
664
+			} else {
665
+				redis.Set(doctors_keys, "", time.Second*60*60*18)
666
+			}
667
+
668
+		}
669
+	}
670
+
671
+	if len(department_str) == 0 {
672
+		departments, _ = service.GetAllDepartMent(adminInfo.CurrentOrgId)
673
+		department_str, err := json.Marshal(departments)
674
+		if err == nil {
675
+			redis.Set(department_keys, string(department_str), time.Second*60*60*18)
676
+		} else {
677
+			redis.Set(department_keys, "", time.Second*60*60*18)
678
+		}
679
+	} else {
680
+		err := json.Unmarshal([]byte(department_str), &departments)
681
+		if err != nil {
682
+			departments, _ = service.GetAllDepartMent(adminInfo.CurrentOrgId)
683
+			department_str, _ := json.Marshal(departments)
684
+			redis.Set(department_keys, string(department_str), time.Second*60*60*18)
685
+		}
686
+	}
687
+
688
+	if len(sick_str) == 0 {
689
+		sicks, _ = service.FindAllSick(adminInfo.CurrentOrgId)
690
+		sick_str, err := json.Marshal(sicks)
691
+		if err == nil {
692
+			redis.Set(sick_keys, string(sick_str), time.Second*60*60*18)
693
+		} else {
694
+			redis.Set(sick_keys, "", time.Second*60*60*18)
695
+		}
696
+
697
+	} else {
698
+		err := json.Unmarshal([]byte(sick_str), &sicks)
699
+		if err != nil {
700
+			sicks, _ = service.FindAllSick(adminInfo.CurrentOrgId)
701
+			sick_str, _ := json.Marshal(sicks)
702
+			redis.Set(sick_keys, string(sick_str), time.Second*60*60*18)
703
+
704
+		}
705
+
706
+	}
707
+
708
+	if len(diagnose_str) == 0 {
709
+		diagnose, _ = service.FindAllDiagnose(adminInfo.CurrentOrgId)
710
+		diagnose_str, err := json.Marshal(diagnose)
711
+		if err == nil {
712
+			redis.Set(diagnose_keys, string(diagnose_str), time.Second*60*60*18)
713
+		} else {
714
+			redis.Set(diagnose_keys, "", time.Second*60*60*18)
715
+		}
716
+	} else {
717
+		err := json.Unmarshal([]byte(diagnose_str), &sicks)
718
+		if err != nil {
719
+			diagnose, _ = service.FindAllDiagnose(adminInfo.CurrentOrgId)
720
+			diagnose_str, err := json.Marshal(diagnose)
721
+			if err == nil {
722
+				redis.Set(diagnose_keys, string(diagnose_str), time.Second*60*60*18)
723
+			} else {
724
+				redis.Set(diagnose_keys, "", time.Second*60*60*18)
725
+			}
726
+		}
727
+	}
728
+
729
+	drugs, _ := service.GetAllDrugLibList(adminInfo.CurrentOrgId)
730
+	//获取所有科室信息
731
+	//获取诊断信息
579 732
 
580 733
 	additions, _ := service.FindAllAddition(adminInfo.CurrentOrgId)
581 734
 
582 735
 	c.ServeSuccessJSON(map[string]interface{}{
583
-		"drugs":            drugs,
584
-		"advices_template": advices,
585
-		"drugways":         drugways,
586
-		"efs":              efs,
587
-		"doctors":          doctors,
588
-		"department":       department,
589
-		"sick":             sick,
590
-		"additions":        additions,
591
-		"diagnose":         diagnose,
736
+		"drugs": drugs,
737
+		//"advices_template": advices,
738
+		"drugways":   drugways,
739
+		"efs":        efs,
740
+		"doctors":    roles,
741
+		"department": departments,
742
+		"sick":       sicks,
743
+		"additions":  additions,
744
+		"diagnose":   diagnose,
592 745
 	})
593 746
 }
594 747
 func (c *HisApiController) CreateHisPrescription() {