瀏覽代碼

Merge branch '20201014_xt_api_new_branch' of http://git.shengws.com/csx/XT_New into 20201014_xt_api_new_branch

csx 4 年之前
父節點
當前提交
2e1699b341
共有 5 個文件被更改,包括 513 次插入43 次删除
  1. 337 10
      controllers/data_api_controller.go
  2. 24 13
      controllers/his_api_controller.go
  3. 22 20
      models/his_models.go
  4. 122 0
      service/doctor_advice_service.go
  5. 8 0
      service/his_service.go

+ 337 - 10
controllers/data_api_controller.go 查看文件

51
 	beego.Router("/article/hanleupdatetwo", &DataApiController{}, "Get:GetHandleData")
51
 	beego.Router("/article/hanleupdatetwo", &DataApiController{}, "Get:GetHandleData")
52
 	beego.Router("/article/updatedatatwo", &DataApiController{}, "Post:UpdateDataTwo")
52
 	beego.Router("/article/updatedatatwo", &DataApiController{}, "Post:UpdateDataTwo")
53
 
53
 
54
-	//beego.Router("/api/dictionary/getconfiglist", &DataApiController{}, "get,post:GetDictionaryConfigList")
55
-
56
 	beego.Router("/api/hisadvicetemplate/create", &DataApiController{}, "Post:CreateHisAdviceTemplate")
54
 	beego.Router("/api/hisadvicetemplate/create", &DataApiController{}, "Post:CreateHisAdviceTemplate")
57
-	beego.Router("/api/hissubadvice/create", &DataApiController{}, "Post:CreateHisubAdviceTemplate")
58
 	beego.Router("/api/hisadvicetemplate/update", &DataApiController{}, "Put:UpdateHisAdviceTemplate")
55
 	beego.Router("/api/hisadvicetemplate/update", &DataApiController{}, "Put:UpdateHisAdviceTemplate")
59
 	beego.Router("/api/hisadvicetemplate/delete", &DataApiController{}, "Delete:DeleteHisAdviceTemplate")
56
 	beego.Router("/api/hisadvicetemplate/delete", &DataApiController{}, "Delete:DeleteHisAdviceTemplate")
60
-	//beego.Router("/api/hisadvicetemplate/add", &DataApiController{}, "Post:CreateSingleHisAdviceTemplate")
61
-	//beego.Router("/api/hisadviceparenttemplate/delete", &DataApiController{}, "Delete:DeleteHisParentAdviceTemplate")
62
-	//beego.Router("/api/histemplate/modify", &DataApiController{}, "Post:ModifyHisTemplateName")
57
+	beego.Router("/api/hisadvicetemplate/add", &DataApiController{}, "Post:CreateSingleHisAdviceTemplate")
58
+	beego.Router("/api/hisadviceparenttemplate/delete", &DataApiController{}, "Delete:DeleteHisParentAdviceTemplate")
59
+	beego.Router("/api/histemplate/modify", &DataApiController{}, "Post:ModifyHisTemplateName")
60
+	beego.Router("/api/getallhisadvicetemplate", &DataApiController{}, "Get:GetAllHisAdviceTemplate")
63
 
61
 
64
 }
62
 }
65
 
63
 
1439
 }
1437
 }
1440
 
1438
 
1441
 func (c *DataApiController) CreateHisAdviceTemplate() {
1439
 func (c *DataApiController) CreateHisAdviceTemplate() {
1440
+	templateName := c.GetString("template_name")
1441
+	advice_type, _ := c.GetInt64("advice_type")
1442
+
1443
+	if templateName == "" {
1444
+		utils.ErrorLog("模版名称不能为空")
1445
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamEmptyWrong)
1446
+		return
1447
+	}
1448
+	if advice_type < 0 {
1449
+		utils.ErrorLog("医嘱模版类型不能为空")
1450
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAdviceTypeWrong)
1451
+		return
1452
+	}
1453
+	adminUserInfo := c.GetAdminUserInfo()
1454
+	appRole, _ := service.FindAdminRoleTypeById(adminUserInfo.CurrentOrgId, adminUserInfo.AdminUser.Id, adminUserInfo.CurrentAppId)
1455
+	if appRole.UserType == 3 {
1456
+		headNursePermission, getPermissionErr := service.GetAdminUserSpecialPermission(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, adminUserInfo.AdminUser.Id, models.SpecialPermissionTypeHeadNurse)
1457
+		if getPermissionErr != nil {
1458
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1459
+			return
1460
+		} else if headNursePermission == nil {
1461
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateAdvice)
1462
+			return
1463
+		}
1464
+	}
1465
+	template := &models.HisDoctorAdviceParentTemplate{
1466
+		Name:        templateName,
1467
+		OrgId:       adminUserInfo.CurrentOrgId,
1468
+		Status:      1,
1469
+		CreatedTime: time.Now().Unix(),
1470
+		UpdatedTime: time.Now().Unix(),
1471
+		AdviceType:  advice_type,
1472
+	}
1473
+	createErr := service.CreateHisDoctorAdviceTemplate(template)
1474
+	if createErr != nil {
1475
+		utils.ErrorLog("%v", createErr)
1476
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
1477
+		return
1478
+	}
1479
+	dataBody := make(map[string]interface{}, 0)
1480
+	err := json.Unmarshal(c.Ctx.Input.RequestBody, &dataBody)
1481
+	if err != nil {
1482
+		utils.ErrorLog(err.Error())
1483
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
1484
+		return
1485
+	}
1486
+	var subTemplate []*models.HisDoctorAdviceTemplate
1487
+	if dataBody["data"] != nil && reflect.TypeOf(dataBody["data"]).String() == "[]interface {}" {
1488
+		subTemp, _ := dataBody["data"].([]interface{})
1489
+		if len(subTemp) > 0 {
1490
+			for _, item := range subTemp {
1491
+				items := item.(map[string]interface{})
1492
+				if items["advice_name"] == nil || reflect.TypeOf(items["advice_name"]).String() != "string" {
1493
+					utils.ErrorLog("advice_name")
1494
+					c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
1495
+					return
1496
+				}
1497
+				advice_name, _ := items["advice_name"].(string)
1498
+				advice_desc, _ := items["advice_desc"].(string)
1499
+				single_dose_unit, _ := items["single_dose_unit"].(string)
1500
+				prescribing_number_unit, _ := items["prescribing_number_unit"].(string)
1501
+				delivery_way, _ := items["delivery_way"].(string)
1502
+				execution_frequency, _ := items["execution_frequency"].(string)
1503
+				drug_spec, _ := items["drug_spec"].(string)
1504
+				drug_spec_unit, _ := items["drug_spec_unit"].(string)
1505
+				single_dose := items["single_dose"].(float64)
1506
+				prescribing_number := items["prescribing_number"].(float64)
1507
+				drug_id := int64(items["drug_id"].(float64))
1508
+
1509
+				subTemps := &models.HisDoctorAdviceTemplate{
1510
+					AdviceName:            advice_name,
1511
+					Status:                1,
1512
+					CreatedTime:           time.Now().Unix(),
1513
+					UpdatedTime:           time.Now().Unix(),
1514
+					OrgId:                 adminUserInfo.CurrentOrgId,
1515
+					AdviceDesc:            advice_desc,
1516
+					AdviceType:            advice_type,
1517
+					SingleDoseUnit:        single_dose_unit,
1518
+					PrescribingNumber:     prescribing_number,
1519
+					PrescribingNumberUnit: prescribing_number_unit,
1520
+					DeliveryWay:           delivery_way,
1521
+					ExecutionFrequency:    execution_frequency,
1522
+					TemplateId:            template.ID,
1523
+					DrugSpec:              drug_spec,
1524
+					DrugSpecUnit:          drug_spec_unit,
1525
+					SingleDose:            single_dose,
1526
+					AdviceDoctor:          adminUserInfo.AdminUser.Id,
1527
+					DrugId:                drug_id,
1528
+				}
1529
+				subTemplate = append(subTemplate, subTemps)
1442
 
1530
 
1531
+			}
1532
+		}
1533
+	}
1534
+	//errs := service.CreateBatchRecord(subTemplate)
1535
+	errs := service.CreateHisSubDoctorAdviceTemplate(subTemplate)
1536
+	if errs != nil {
1537
+		utils.ErrorLog(errs.Error())
1538
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBCreate)
1539
+		return
1540
+	}
1541
+	templates, _ := service.FindHisDoctorAdviceTemplateById(template.ID, adminUserInfo.CurrentOrgId)
1542
+	c.ServeSuccessJSON(map[string]interface{}{
1543
+		"template": templates,
1544
+	})
1545
+	return
1443
 }
1546
 }
1547
+func (c *DataApiController) UpdateHisAdviceTemplate() {
1548
+
1549
+	adminUserInfo := c.GetAdminUserInfo()
1550
+	id, _ := c.GetInt64("id", 0)
1551
+
1552
+	if id <= 0 {
1553
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
1554
+		return
1555
+	}
1556
+
1557
+	template, _ := service.FindHisAdviceTemplate(adminUserInfo.CurrentOrgId, id)
1558
+	if template == nil {
1559
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBSelectNoResult)
1560
+		return
1561
+	}
1562
+
1563
+	var templatedata models.HisDoctorAdviceTemplate
1564
+	err := json.Unmarshal(c.Ctx.Input.RequestBody, &templatedata)
1565
+	if err != nil {
1566
+		utils.ErrorLog("%v", err)
1567
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
1568
+		return
1569
+	}
1444
 
1570
 
1445
-func (c *DataApiController) CreateSHisubAdviceTemplate() {
1571
+	if templatedata.AdviceName == "" {
1572
+		utils.ErrorLog("不能为空")
1573
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
1574
+		return
1575
+	}
1576
+	timeNow := time.Now().Unix()
1577
+	template.UpdatedTime = timeNow
1578
+	template.AdviceName = templatedata.AdviceName
1579
+	template.AdviceDesc = templatedata.AdviceDesc
1580
+	template.SingleDose = templatedata.SingleDose
1581
+	template.SingleDoseUnit = templatedata.SingleDoseUnit
1582
+	template.PrescribingNumber = templatedata.PrescribingNumber
1583
+	template.PrescribingNumberUnit = templatedata.PrescribingNumberUnit
1584
+	template.DrugSpec = templatedata.DrugSpec
1585
+	template.DrugSpecUnit = templatedata.DrugSpecUnit
1586
+	template.DeliveryWay = templatedata.DeliveryWay
1587
+	template.ExecutionFrequency = templatedata.ExecutionFrequency
1588
+	template.DrugId = template.DrugId
1589
+
1590
+	err = service.UpdateHisAdviceTemplate(template)
1591
+	if err != nil {
1592
+		utils.ErrorLog("%v", err)
1593
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBUpdate)
1594
+		return
1595
+	}
1596
+
1597
+	c.ServeSuccessJSON(map[string]interface{}{
1598
+		"template": template,
1599
+	})
1600
+	return
1446
 
1601
 
1447
 }
1602
 }
1603
+func (c *DataApiController) DeleteHisAdviceTemplate() {
1604
+	adminUserInfo := c.GetAdminUserInfo()
1605
+	parent_id, _ := c.GetInt64("parent_id", 0)
1606
+	id, _ := c.GetInt64("id", 0)
1607
+
1608
+	if id <= 0 {
1609
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
1610
+		return
1611
+	}
1612
+	template, _ := service.FindHisAdviceTemplate(adminUserInfo.CurrentOrgId, id)
1613
+	if template == nil {
1614
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBSelectNoResult)
1615
+		return
1616
+	}
1448
 
1617
 
1449
-func (c *DataApiController) CreateHisubAdviceTemplate() {
1618
+	//appRole, _ := service.FindAdminRoleTypeById(adminUserInfo.CurrentOrgId, adminUserInfo.AdminUser.Id, adminUserInfo.CurrentAppId)
1619
+	//if appRole.UserType == 3 {
1620
+	//	headNursePermission, getPermissionErr := service.GetAdminUserSpecialPermission(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, adminUserInfo.AdminUser.Id, models.SpecialPermissionTypeHeadNurse)
1621
+	//	if getPermissionErr != nil {
1622
+	//		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1623
+	//		return
1624
+	//	} else if headNursePermission == nil {
1625
+	//		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDialysisPermissionDeniedModify)
1626
+	//		return
1627
+	//	}
1628
+	//}
1450
 
1629
 
1630
+	timeNow := time.Now().Unix()
1631
+	template.ID = id
1632
+	template.UpdatedTime = timeNow
1633
+	template.ParentId = parent_id
1634
+	template.Status = 2
1635
+
1636
+	if parent_id > 0 { //删除子医嘱
1637
+		err := service.UpdateHisAdviceTemplate(template)
1638
+		if err != nil {
1639
+			utils.ErrorLog("%v", err)
1640
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBDelete)
1641
+			return
1642
+		}
1643
+	} else { //删除该医嘱下的所有子医嘱
1644
+		err := service.UpdateHisAdviceAndSubAdviceTemplate(template)
1645
+		if err != nil {
1646
+			utils.ErrorLog("%v", err)
1647
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBDelete)
1648
+			return
1649
+		}
1650
+	}
1651
+	c.ServeSuccessJSON(map[string]interface{}{
1652
+		"msg": "ok",
1653
+	})
1654
+	return
1451
 }
1655
 }
1656
+func (c *DataApiController) CreateSingleHisAdviceTemplate() {
1657
+	drug_spec := c.GetString("drug_spec")
1658
+	drug_spec_unit := c.GetString("drug_spec_unit")
1659
+	advice_name := c.GetString("advice_name")
1660
+	advice_desc := c.GetString("advice_desc")
1661
+	single_dose, _ := c.GetFloat("single_dose", 0)
1662
+	single_dose_unit := c.GetString("single_dose_unit")
1663
+	prescribing_number, _ := c.GetFloat("prescribing_number", 0)
1664
+	prescribing_number_unit := c.GetString("prescribing_number_unit")
1665
+	delivery_way := c.GetString("delivery_way")
1666
+	execution_frequency := c.GetString("execution_frequency")
1667
+	template_id, _ := c.GetInt64("template_id", -1)
1668
+	drug_id, _ := c.GetInt64("drug_id")
1669
+	adminUserInfo := c.GetAdminUserInfo()
1452
 
1670
 
1453
-func (c *DataApiController) UpdateHisAdviceTemplate() {
1671
+	template := models.HisDoctorAdviceTemplate{
1672
+		OrgId:                 adminUserInfo.CurrentOrgId,
1673
+		AdviceDoctor:          adminUserInfo.AdminUser.Id,
1674
+		Status:                1,
1675
+		CreatedTime:           time.Now().Unix(),
1676
+		UpdatedTime:           time.Now().Unix(),
1677
+		DrugSpec:              drug_spec,
1678
+		DrugSpecUnit:          drug_spec_unit,
1679
+		AdviceName:            advice_name,
1680
+		AdviceDesc:            advice_desc,
1681
+		SingleDose:            single_dose,
1682
+		SingleDoseUnit:        single_dose_unit,
1683
+		PrescribingNumber:     prescribing_number,
1684
+		PrescribingNumberUnit: prescribing_number_unit,
1685
+		DeliveryWay:           delivery_way,
1686
+		ExecutionFrequency:    execution_frequency,
1687
+		TemplateId:            template_id,
1688
+		DrugId:                drug_id,
1689
+	}
1690
+
1691
+	if template.AdviceName == "" {
1692
+		utils.ErrorLog("医嘱名字不能为空")
1693
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamAdviceEmptyWrong)
1694
+		return
1695
+	}
1454
 
1696
 
1697
+	appRole, _ := service.FindAdminRoleTypeById(adminUserInfo.CurrentOrgId, adminUserInfo.AdminUser.Id, adminUserInfo.CurrentAppId)
1698
+	if appRole.UserType == 3 {
1699
+		headNursePermission, getPermissionErr := service.GetAdminUserSpecialPermission(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, adminUserInfo.AdminUser.Id, models.SpecialPermissionTypeHeadNurse)
1700
+		if getPermissionErr != nil {
1701
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
1702
+			return
1703
+		} else if headNursePermission == nil {
1704
+			c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateAdvice)
1705
+			return
1706
+		}
1707
+	}
1708
+	err := service.CreateHisAdviceTemplate(&template)
1709
+	if err != nil {
1710
+		utils.ErrorLog("%v", err)
1711
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBCreate)
1712
+		return
1713
+	}
1714
+	c.ServeSuccessJSON(map[string]interface{}{
1715
+		"template": template,
1716
+	})
1717
+	return
1455
 }
1718
 }
1719
+func (c *DataApiController) DeleteHisParentAdviceTemplate() {
1720
+	template_id, _ := c.GetInt64("template_id", 0)
1721
+	adminUserInfo := c.GetAdminUserInfo()
1722
+	_, err := service.FindParentHisTemplateRecordById(adminUserInfo.CurrentOrgId, template_id)
1723
+	if err != nil {
1724
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
1725
+		return
1726
+	}
1727
+	err1 := service.DeleteHisParentDoctorAdviceByTemplateId(template_id, adminUserInfo.CurrentOrgId)
1728
+	if err1 != nil {
1729
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBDelete)
1730
+		return
1731
+	}
1732
+	c.ServeSuccessJSON(map[string]interface{}{
1733
+		"msg": "删除成功",
1734
+	})
1735
+}
1736
+func (this *DataApiController) ModifyHisTemplateName() {
1737
+	template_name := this.GetString("template_name")
1738
+	template_id, _ := this.GetInt64("template_id", 0)
1456
 
1739
 
1457
-func (c *DataApiController) DeleteHisAdviceTemplate() {
1740
+	if len(template_name) <= 0 {
1741
+		utils.ErrorLog("模版名字不能为空")
1742
+		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamEmptyWrong)
1743
+		return
1744
+	}
1745
+
1746
+	if template_id == 0 {
1747
+		utils.ErrorLog("模版不存在")
1748
+		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamTemplateNOEXISTWrong)
1749
+		return
1750
+	}
1751
+	adminUserInfo := this.GetAdminUserInfo()
1752
+	template, _ := service.FindParentHisTemplateRecordById(adminUserInfo.CurrentOrgId, template_id)
1753
+	var err error
1754
+	if template.Name == template_name {
1755
+		err = service.ModifyTemplateName(template_id, template_name)
1756
+		if err != nil {
1757
+			this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBUpdate)
1758
+			return
1759
+		}
1760
+	} else {
1761
+		err = service.ModifyHisTemplateName(template_id, template_name)
1762
+		if err != nil {
1763
+			this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBUpdate)
1764
+			return
1765
+		}
1766
+	}
1767
+	this.ServeSuccessJSON(map[string]interface{}{
1768
+		"template_name": template_name,
1769
+		"template_id":   template_id,
1770
+	})
1771
+
1772
+}
1773
+func (this *DataApiController) GetAllHisAdviceTemplate() {
1774
+	adminUserInfo := this.GetAdminUserInfo()
1775
+	drugs, _ := service.GetAllDrugLibs(adminUserInfo.CurrentOrgId)
1776
+	drugways, _, _ := service.GetDrugWayDics(adminUserInfo.CurrentOrgId)
1777
+	efs, _, _ := service.GetExecutionFrequencyDics(adminUserInfo.CurrentOrgId)
1778
+	adviceTemplates, _ := service.FindHisAllAdviceTemplate(adminUserInfo.CurrentOrgId)
1779
+	this.ServeSuccessJSON(map[string]interface{}{
1780
+		"drugways":         drugways,
1781
+		"efs":              efs,
1782
+		"advice_templates": adviceTemplates,
1783
+		"drugs":            drugs,
1784
+	})
1458
 
1785
 
1459
 }
1786
 }

+ 24 - 13
controllers/his_api_controller.go 查看文件

82
 	var total_one int64
82
 	var total_one int64
83
 	var total_two int64
83
 	var total_two int64
84
 
84
 
85
+	//获取当前用户的信息
86
+	adminUserInfo, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, adminInfo.AdminUser.Id)
87
+	doctors, _ := service.GetHisAdminUserDoctors(adminInfo.CurrentOrgId)
88
+	//获取所有科室信息
89
+	department, _ := service.GetAllDepartMent(adminInfo.CurrentOrgId)
90
+
85
 	for _, item := range patients {
91
 	for _, item := range patients {
86
 
92
 
87
 		if item.HisPrescription == nil || len(item.HisPrescription) <= 0 {
93
 		if item.HisPrescription == nil || len(item.HisPrescription) <= 0 {
94
 
100
 
95
 	if types == 0 {
101
 	if types == 0 {
96
 		c.ServeSuccessJSON(map[string]interface{}{
102
 		c.ServeSuccessJSON(map[string]interface{}{
97
-			"list":      patients,
98
-			"total_one": total_one,
99
-			"total_two": total_two,
103
+			"list":       patients,
104
+			"total_one":  total_one,
105
+			"total_two":  total_two,
106
+			"info":       adminUserInfo,
107
+			"doctors":    doctors,
108
+			"department": department,
100
 		})
109
 		})
101
 
110
 
102
 	} else if types == 1 { //未就诊
111
 	} else if types == 1 { //未就诊
107
 			}
116
 			}
108
 		}
117
 		}
109
 		c.ServeSuccessJSON(map[string]interface{}{
118
 		c.ServeSuccessJSON(map[string]interface{}{
110
-			"list":      patientsOne,
111
-			"total_one": total_one,
112
-			"total_two": total_two,
119
+			"list":       patientsOne,
120
+			"total_one":  total_one,
121
+			"total_two":  total_two,
122
+			"info":       adminUserInfo,
123
+			"doctors":    doctors,
124
+			"department": department,
113
 		})
125
 		})
114
 
126
 
115
 	} else if types == 2 { //已就诊
127
 	} else if types == 2 { //已就诊
121
 			}
133
 			}
122
 		}
134
 		}
123
 		c.ServeSuccessJSON(map[string]interface{}{
135
 		c.ServeSuccessJSON(map[string]interface{}{
124
-			"list":      patientsTwo,
125
-			"total_one": total_one,
126
-			"total_two": total_two,
136
+			"list":       patientsTwo,
137
+			"total_one":  total_one,
138
+			"total_two":  total_two,
139
+			"info":       adminUserInfo,
140
+			"doctors":    doctors,
141
+			"department": department,
127
 		})
142
 		})
128
 	}
143
 	}
129
 
144
 
182
 
197
 
183
 	additions, _ := service.FindAllAddition(adminInfo.CurrentOrgId)
198
 	additions, _ := service.FindAllAddition(adminInfo.CurrentOrgId)
184
 
199
 
185
-	//获取当前用户的信息
186
-	adminUserInfo, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, adminInfo.AdminUser.Id)
187
-
188
 	c.ServeSuccessJSON(map[string]interface{}{
200
 	c.ServeSuccessJSON(map[string]interface{}{
189
 		"drugs":            drugs,
201
 		"drugs":            drugs,
190
 		"advices_template": advices,
202
 		"advices_template": advices,
193
 		"doctors":          doctors,
205
 		"doctors":          doctors,
194
 		"department":       department,
206
 		"department":       department,
195
 		"sick":             sick,
207
 		"sick":             sick,
196
-		"info":             adminUserInfo,
197
 		"additions":        additions,
208
 		"additions":        additions,
198
 	})
209
 	})
199
 }
210
 }

+ 22 - 20
models/his_models.go 查看文件

249
 }
249
 }
250
 
250
 
251
 type HisPrescriptionInfo struct {
251
 type HisPrescriptionInfo struct {
252
-	ID                 int64           `gorm:"column:id" json:"id" form:"id"`
253
-	UserOrgId          int64           `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
254
-	RecordDate         int64           `gorm:"column:record_date" json:"record_date" form:"record_date"`
255
-	PatientId          int64           `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
256
-	HisPatientId       int64           `gorm:"column:his_patient_id" json:"his_patient_id" form:"his_patient_id"`
257
-	Status             int64           `gorm:"column:status" json:"status" form:"status"`
258
-	Ctime              int64           `gorm:"column:ctime" json:"ctime" form:"ctime"`
259
-	Mtime              int64           `gorm:"column:mtime" json:"mtime" form:"mtime"`
260
-	Creator            int64           `gorm:"column:creator" json:"creator" form:"creator"`
261
-	Modifier           int64           `gorm:"column:modifier" json:"modifier" form:"modifier"`
262
-	Diagnosis          string          `gorm:"column:diagnosis" json:"diagnosis" form:"diagnosis"`
263
-	RegisterType       string          `gorm:"column:register_type" json:"register_type" form:"register_type"`
264
-	Doctor             string          `gorm:"column:doctor" json:"doctor" form:"doctor"`
265
-	Departments        int64           `gorm:"column:departments" json:"departments" form:"departments"`
266
-	SickHistory        string          `gorm:"column:sick_history" json:"sick_history" form:"sick_history"`
267
-	PrescriptionNumber string          `gorm:"column:prescription_number" json:"prescription_number" form:"prescription_number"`
268
-	PrescriptionStatus int64           `gorm:"column:prescription_status" json:"prescription_status" form:"prescription_status"`
269
-	BatchNumber        string          `gorm:"column:batch_number" json:"batch_number" form:"batch_number"`
270
-	DoctorId           int64           `gorm:"column:doctor_id" json:"doctor_id" form:"doctor_id"`
271
-	XtHisDepartment    XtHisDepartment `gorm:"ForeignKey:ID;AssociationForeignKey:Departments" json:"department"`
252
+	ID                 int64  `gorm:"column:id" json:"id" form:"id"`
253
+	UserOrgId          int64  `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
254
+	RecordDate         int64  `gorm:"column:record_date" json:"record_date" form:"record_date"`
255
+	PatientId          int64  `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
256
+	HisPatientId       int64  `gorm:"column:his_patient_id" json:"his_patient_id" form:"his_patient_id"`
257
+	Status             int64  `gorm:"column:status" json:"status" form:"status"`
258
+	Ctime              int64  `gorm:"column:ctime" json:"ctime" form:"ctime"`
259
+	Mtime              int64  `gorm:"column:mtime" json:"mtime" form:"mtime"`
260
+	Creator            int64  `gorm:"column:creator" json:"creator" form:"creator"`
261
+	Modifier           int64  `gorm:"column:modifier" json:"modifier" form:"modifier"`
262
+	Diagnosis          string `gorm:"column:diagnosis" json:"diagnosis" form:"diagnosis"`
263
+	RegisterType       string `gorm:"column:register_type" json:"register_type" form:"register_type"`
264
+	Doctor             string `gorm:"column:doctor" json:"doctor" form:"doctor"`
265
+	Departments        int64  `gorm:"column:departments" json:"departments" form:"departments"`
266
+	SickHistory        string `gorm:"column:sick_history" json:"sick_history" form:"sick_history"`
267
+	PrescriptionNumber string `gorm:"column:prescription_number" json:"prescription_number" form:"prescription_number"`
268
+	PrescriptionStatus int64  `gorm:"column:prescription_status" json:"prescription_status" form:"prescription_status"`
269
+	BatchNumber        string `gorm:"column:batch_number" json:"batch_number" form:"batch_number"`
270
+	DoctorId           int64  `gorm:"column:doctor_id" json:"doctor_id" form:"doctor_id"`
271
+	DepartmentId       int64  `gorm:"column:department_id" json:"department_id" form:"department_id"`
272
+
273
+	XtHisDepartment XtHisDepartment `gorm:"ForeignKey:ID;AssociationForeignKey:Departments" json:"department"`
272
 }
274
 }
273
 
275
 
274
 func (HisPrescriptionInfo) TableName() string {
276
 func (HisPrescriptionInfo) TableName() string {

+ 122 - 0
service/doctor_advice_service.go 查看文件

117
 	return
117
 	return
118
 }
118
 }
119
 
119
 
120
+func CreateHisAdviceTemplate(d *models.HisDoctorAdviceTemplate) (err error) {
121
+	err = readDb.Create(&d).Error
122
+	return
123
+}
124
+
120
 func FindAdviceTemplate(orgid, id int64) (*models.DoctorAdviceTemplate, error) {
125
 func FindAdviceTemplate(orgid, id int64) (*models.DoctorAdviceTemplate, error) {
121
 	var template models.DoctorAdviceTemplate
126
 	var template models.DoctorAdviceTemplate
122
 	err := readDb.Model(&models.DoctorAdviceTemplate{}).Where("id=? and org_id =? and status=1", id, orgid).First(&template).Error
127
 	err := readDb.Model(&models.DoctorAdviceTemplate{}).Where("id=? and org_id =? and status=1", id, orgid).First(&template).Error
130
 	return &template, nil
135
 	return &template, nil
131
 }
136
 }
132
 
137
 
138
+func FindHisAdviceTemplate(orgid, id int64) (*models.HisDoctorAdviceTemplate, error) {
139
+	var template models.HisDoctorAdviceTemplate
140
+	err := readDb.Model(&models.HisDoctorAdviceTemplate{}).Where("id=? and org_id =? and status=1", id, orgid).First(&template).Error
141
+	if err == gorm.ErrRecordNotFound {
142
+		return nil, nil
143
+	}
144
+
145
+	if err != nil {
146
+		return nil, err
147
+	}
148
+	return &template, nil
149
+}
150
+
133
 func UpdateAdviceTemplate(d *models.DoctorAdviceTemplate) (err error) {
151
 func UpdateAdviceTemplate(d *models.DoctorAdviceTemplate) (err error) {
134
 	err = writeDb.Save(&d).Error
152
 	err = writeDb.Save(&d).Error
135
 	return
153
 	return
136
 }
154
 }
137
 
155
 
156
+func UpdateHisAdviceTemplate(d *models.HisDoctorAdviceTemplate) (err error) {
157
+	err = writeDb.Save(&d).Error
158
+	return
159
+}
160
+
138
 func UpdateAdviceAndSubAdviceTemplate(d *models.DoctorAdviceTemplate) (err error) {
161
 func UpdateAdviceAndSubAdviceTemplate(d *models.DoctorAdviceTemplate) (err error) {
139
 	err = writeDb.Save(&d).Error
162
 	err = writeDb.Save(&d).Error
140
 	err = writeDb.Model(&models.DoctorAdviceTemplate{}).Where("status=1 AND parent_id = ?", d.ID).Updates(map[string]interface{}{"status": 2, "updated_time": time.Now().Unix()}).Error
163
 	err = writeDb.Model(&models.DoctorAdviceTemplate{}).Where("status=1 AND parent_id = ?", d.ID).Updates(map[string]interface{}{"status": 2, "updated_time": time.Now().Unix()}).Error
141
 	return
164
 	return
142
 }
165
 }
143
 
166
 
167
+func UpdateHisAdviceAndSubAdviceTemplate(d *models.HisDoctorAdviceTemplate) (err error) {
168
+	err = writeDb.Save(&d).Error
169
+	err = writeDb.Model(&models.HisDoctorAdviceTemplate{}).Where("status=1 AND parent_id = ?", d.ID).Updates(map[string]interface{}{"status": 2, "updated_time": time.Now().Unix()}).Error
170
+	return
171
+}
172
+
144
 func CreateTemplate(template *models.DoctorAdviceParentTemplate) (err error) {
173
 func CreateTemplate(template *models.DoctorAdviceParentTemplate) (err error) {
145
 	err = readDb.Create(&template).Error
174
 	err = readDb.Create(&template).Error
146
 	return
175
 	return
147
 }
176
 }
148
 
177
 
178
+func CreateHisDoctorAdviceTemplate(template *models.HisDoctorAdviceParentTemplate) (err error) {
179
+	err = readDb.Create(&template).Error
180
+	return
181
+}
182
+
183
+func CreateHisSubDoctorAdviceTemplate(template []*models.HisDoctorAdviceTemplate) (err error) {
184
+	if len(template) > 0 {
185
+		utx := writeDb.Begin()
186
+		if len(template) > 0 {
187
+			thisSQL := "INSERT INTO his_doctor_advice_template (org_id, advice_name, advice_desc, single_dose, single_dose_unit,prescribing_number," +
188
+				"prescribing_number_unit,delivery_way,execution_frequency,advice_doctor,status,created_time,updated_time,template_id,drug_spec,drug_spec_unit,advice_type,day_count,week_days,frequency_type,drug_id,way) VALUES "
189
+			insertParams := make([]string, 0)
190
+			insertData := make([]interface{}, 0)
191
+			for _, info := range template {
192
+				insertParams = append(insertParams, "(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)")
193
+				insertData = append(insertData, info.OrgId)
194
+				insertData = append(insertData, info.AdviceName)
195
+				insertData = append(insertData, info.AdviceDesc)
196
+				insertData = append(insertData, info.SingleDose)
197
+				insertData = append(insertData, info.SingleDoseUnit)
198
+				insertData = append(insertData, info.PrescribingNumber)
199
+				insertData = append(insertData, info.PrescribingNumberUnit)
200
+				insertData = append(insertData, info.DeliveryWay)
201
+				insertData = append(insertData, info.ExecutionFrequency)
202
+				insertData = append(insertData, info.AdviceDoctor)
203
+				insertData = append(insertData, info.Status)
204
+				insertData = append(insertData, info.CreatedTime)
205
+				insertData = append(insertData, info.UpdatedTime)
206
+				insertData = append(insertData, info.TemplateId)
207
+				insertData = append(insertData, info.DrugSpec)
208
+				insertData = append(insertData, info.DrugSpecUnit)
209
+				insertData = append(insertData, info.AdviceType)
210
+				insertData = append(insertData, info.DayCount)
211
+				insertData = append(insertData, info.WeekDays)
212
+				insertData = append(insertData, info.FrequencyType)
213
+				insertData = append(insertData, info.DrugId)
214
+				insertData = append(insertData, info.Way)
215
+			}
216
+			thisSQL += strings.Join(insertParams, ", ")
217
+			err = utx.Exec(thisSQL, insertData...).Error
218
+			if err != nil {
219
+				utx.Rollback()
220
+				return
221
+			}
222
+		}
223
+		utx.Commit()
224
+	}
225
+	return
226
+
227
+}
228
+
149
 //func CreateBatchRecord(template []*models.DoctorAdviceTemplate) (err error) {
229
 //func CreateBatchRecord(template []*models.DoctorAdviceTemplate) (err error) {
150
 //	err = writeDb.Create(template).Error
230
 //	err = writeDb.Create(template).Error
151
 //	return
231
 //	return
202
 	return
282
 	return
203
 }
283
 }
204
 
284
 
285
+func FindHisDoctorAdviceTemplateById(id int64, org_id int64) (temps models.HisDoctorAdviceParentTemplate, err error) {
286
+	err = readDb.Model(&models.HisDoctorAdviceParentTemplate{}).Preload("HisDoctorAdviceTemplate", "status = 1").Where("org_id = ? AND status=1 AND id = ?", org_id, id).Order("id desc").First(&temps).Error
287
+	return
288
+}
289
+
205
 func FindAllAdviceTemplate(org_id int64, advice_type int64) (temps []*models.DoctorAdviceParentTemplate, err error) {
290
 func FindAllAdviceTemplate(org_id int64, advice_type int64) (temps []*models.DoctorAdviceParentTemplate, err error) {
206
 	err = readDb.Model(&models.DoctorAdviceParentTemplate{}).Preload("DoctorAdviceTemplate", func(db *gorm.DB) *gorm.DB {
291
 	err = readDb.Model(&models.DoctorAdviceParentTemplate{}).Preload("DoctorAdviceTemplate", func(db *gorm.DB) *gorm.DB {
207
 		return db.Select("id,advice_name,advice_desc,single_dose,single_dose_unit,prescribing_number,prescribing_number_unit,delivery_way,execution_frequency,status,created_time,updated_time,parent_id,template_id,drug_spec,drug_spec_unit,advice_type,day_count,week_days,frequency_type,way,drug_id,drug_name_id, IF(parent_id>0, parent_id, id) as advice_order").Where("status = 1").Order("advice_order desc, id")
292
 		return db.Select("id,advice_name,advice_desc,single_dose,single_dose_unit,prescribing_number,prescribing_number_unit,delivery_way,execution_frequency,status,created_time,updated_time,parent_id,template_id,drug_spec,drug_spec_unit,advice_type,day_count,week_days,frequency_type,way,drug_id,drug_name_id, IF(parent_id>0, parent_id, id) as advice_order").Where("status = 1").Order("advice_order desc, id")
229
 	return
314
 	return
230
 }
315
 }
231
 
316
 
317
+func FindParentHisTemplateRecordById(orgid int64, template_id int64) (parentTemplate models.HisDoctorAdviceParentTemplate, err error) {
318
+	err = readDb.Model(&models.HisDoctorAdviceParentTemplate{}).Where("id = ? AND org_id = ? AND status= 1 ", template_id, orgid).First(&parentTemplate).Error
319
+	return
320
+}
321
+
232
 func DeleteParentDoctorAdviceByTemplateId(template_id int64, org_id int64) (err error) {
322
 func DeleteParentDoctorAdviceByTemplateId(template_id int64, org_id int64) (err error) {
233
 
323
 
234
 	ut := writeDb.Begin()
324
 	ut := writeDb.Begin()
247
 	return err
337
 	return err
248
 }
338
 }
249
 
339
 
340
+func DeleteHisParentDoctorAdviceByTemplateId(template_id int64, org_id int64) (err error) {
341
+
342
+	ut := writeDb.Begin()
343
+	err = writeDb.Model(&models.HisDoctorAdviceParentTemplate{}).Where("status=1 AND id = ? AND org_id = ?", template_id, org_id).Updates(map[string]interface{}{"status": "0", "updated_time": time.Now().Unix()}).Error
344
+
345
+	if err != nil {
346
+		ut.Rollback()
347
+		return
348
+	}
349
+	err = writeDb.Model(&models.HisDoctorAdviceTemplate{}).Where("status=1 AND template_id = ? AND org_id = ?", template_id, org_id).Updates(map[string]interface{}{"status": "2", "updated_time": time.Now().Unix()}).Error
350
+	if err != nil {
351
+		ut.Rollback()
352
+		return
353
+	}
354
+	ut.Commit()
355
+	return err
356
+}
357
+
250
 func ModifyTemplateName(id int64, template_name string) (err error) {
358
 func ModifyTemplateName(id int64, template_name string) (err error) {
251
 	err = writeDb.Model(&models.DoctorAdviceParentTemplate{}).Where("status=1 AND id = ?", id).Updates(map[string]interface{}{"name": template_name, "updated_time": time.Now().Unix()}).Error
359
 	err = writeDb.Model(&models.DoctorAdviceParentTemplate{}).Where("status=1 AND id = ?", id).Updates(map[string]interface{}{"name": template_name, "updated_time": time.Now().Unix()}).Error
252
 	return err
360
 	return err
253
 }
361
 }
254
 
362
 
363
+func ModifyHisTemplateName(id int64, template_name string) (err error) {
364
+	err = writeDb.Model(&models.HisDoctorAdviceParentTemplate{}).Where("status=1 AND id = ?", id).Updates(map[string]interface{}{"name": template_name, "updated_time": time.Now().Unix()}).Error
365
+	return err
366
+}
367
+
255
 func FindOtherAllAdviceTemplate(org_id int64) (temps []*models.DoctorAdviceParentTemplate, err error) {
368
 func FindOtherAllAdviceTemplate(org_id int64) (temps []*models.DoctorAdviceParentTemplate, err error) {
256
 	err = readDb.Model(&models.DoctorAdviceParentTemplate{}).Preload("DoctorAdviceTemplate", func(db *gorm.DB) *gorm.DB {
369
 	err = readDb.Model(&models.DoctorAdviceParentTemplate{}).Preload("DoctorAdviceTemplate", func(db *gorm.DB) *gorm.DB {
257
 		return db.Select("id,advice_name,advice_desc,single_dose,single_dose_unit,prescribing_number,prescribing_number_unit,delivery_way,execution_frequency,status,created_time,updated_time,parent_id,template_id,drug_spec,drug_spec_unit,advice_type,day_count,week_days,frequency_type,drug_id,way, IF(parent_id>0, parent_id, id) as advice_order").Where("status = 1").Order("advice_order desc, id")
370
 		return db.Select("id,advice_name,advice_desc,single_dose,single_dose_unit,prescribing_number,prescribing_number_unit,delivery_way,execution_frequency,status,created_time,updated_time,parent_id,template_id,drug_spec,drug_spec_unit,advice_type,day_count,week_days,frequency_type,drug_id,way, IF(parent_id>0, parent_id, id) as advice_order").Where("status = 1").Order("advice_order desc, id")
261
 
374
 
262
 }
375
 }
263
 
376
 
377
+func FindHisAllAdviceTemplate(org_id int64) (temps []*models.HisDoctorAdviceParentTemplate, err error) {
378
+	err = readDb.Model(&models.HisDoctorAdviceParentTemplate{}).Preload("HisDoctorAdviceTemplate", func(db *gorm.DB) *gorm.DB {
379
+		return db.Select("id,advice_name,advice_desc,single_dose,single_dose_unit,prescribing_number,prescribing_number_unit,delivery_way,execution_frequency,status,created_time,updated_time,parent_id,template_id,drug_spec,drug_spec_unit,advice_type,day_count,week_days,frequency_type,drug_id,way, IF(parent_id>0, parent_id, id) as advice_order").Where("status = 1").Order("advice_order desc, id")
380
+	}).Where("org_id = ? AND status=1 ", org_id).Find(&temps).Error
381
+	return
382
+	//.Scan(&advices).Error
383
+
384
+}
385
+
264
 func GetHandleData(id int64) (models.ConfigViewModel, error) {
386
 func GetHandleData(id int64) (models.ConfigViewModel, error) {
265
 	config := models.ConfigViewModel{}
387
 	config := models.ConfigViewModel{}
266
 	err := readDb.Model(&config).Where("id=?", id).Find(&config).Error
388
 	err := readDb.Model(&config).Where("id=?", id).Find(&config).Error

+ 8 - 0
service/his_service.go 查看文件

59
 	BatchNumber        string `gorm:"column:batch_number" json:"batch_number" form:"batch_number"`
59
 	BatchNumber        string `gorm:"column:batch_number" json:"batch_number" form:"batch_number"`
60
 	PrescriptionStatus int64  `gorm:"column:prescription_status" json:"prescription_status" form:"prescription_status"`
60
 	PrescriptionStatus int64  `gorm:"column:prescription_status" json:"prescription_status" form:"prescription_status"`
61
 	DoctorId           int64  `gorm:"column:doctor_id" json:"doctor_id" form:"doctor_id"`
61
 	DoctorId           int64  `gorm:"column:doctor_id" json:"doctor_id" form:"doctor_id"`
62
+	DepartmentId       int64  `gorm:"column:department_id" json:"department_id" form:"department_id"`
62
 }
63
 }
63
 
64
 
64
 func (VMHisPrescriptionInfo) TableName() string {
65
 func (VMHisPrescriptionInfo) TableName() string {
323
 	return
324
 	return
324
 }
325
 }
325
 
326
 
327
+func GetAllDrugLibs(org_id int64) (drugs []*Drugs, err error) {
328
+	db := readDb.Model(&models.BaseDrugLib{}).Preload("Drugs", "status = 1 AND org_id = ? AND find_in_set('停用',drug_status) = 0", org_id).Where("org_id = ?  AND status = 1 AND find_in_set('停用',drug_status) = 0", org_id).Group("drug_name")
329
+	err = db.Find(&drugs).Error
330
+	return
331
+}
332
+
326
 func GetAllProjectList(org_id int64) (list []*models.HisProject, err error) {
333
 func GetAllProjectList(org_id int64) (list []*models.HisProject, err error) {
327
 	err = readDb.Model(&models.HisProject{}).Where("user_org_id = ?  AND status = 1", org_id).Find(&list).Error
334
 	err = readDb.Model(&models.HisProject{}).Where("user_org_id = ?  AND status = 1", org_id).Find(&list).Error
328
 	return
335
 	return
519
 	BatchNumber           string                       `gorm:"column:batch_number" json:"batch_number" form:"batch_number"`
526
 	BatchNumber           string                       `gorm:"column:batch_number" json:"batch_number" form:"batch_number"`
520
 	PrescriptionStatus    int64                        `gorm:"column:prescription_status" json:"prescription_status" form:"prescription_status"`
527
 	PrescriptionStatus    int64                        `gorm:"column:prescription_status" json:"prescription_status" form:"prescription_status"`
521
 	DoctorId              int64                        `gorm:"column:doctor_id" json:"doctor_id" form:"doctor_id"`
528
 	DoctorId              int64                        `gorm:"column:doctor_id" json:"doctor_id" form:"doctor_id"`
529
+	DepartmentId          int64                        `gorm:"column:department_id" json:"department_id" form:"department_id"`
522
 }
530
 }
523
 
531
 
524
 func (HisPrescriptionInfo) TableName() string {
532
 func (HisPrescriptionInfo) TableName() string {