123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436 |
- package controllers
-
- import (
- "XT_New/enums"
- "XT_New/models"
- "XT_New/service"
- "github.com/astaxie/beego"
- "time"
- )
-
- type IntegrationConfigApiController struct {
- BaseAuthAPIController
- }
-
- func IntegrationConfigRegistRouters() {
-
- beego.Router("/api/integration/patients", &IntegrationConfigApiController{}, "get:GetPatientsList")
- beego.Router("/api/patienthis/edit", &IntegrationConfigApiController{}, "post:EditPatientHis")
- beego.Router("/api/patienthis/create", &IntegrationConfigApiController{}, "post:CreatePatientHis")
-
- beego.Router("/api/integration/admin", &IntegrationConfigApiController{}, "get:GetAdminsList")
- beego.Router("/api/adminhis/edit", &IntegrationConfigApiController{}, "post:EditAdminHis")
- beego.Router("/api/adminhis/create", &IntegrationConfigApiController{}, "post:CreateAdminHis")
-
- beego.Router("/api/patienthis/getinterface", &IntegrationConfigApiController{}, "post:GetInterface")
- beego.Router("/api/patienthis/saveinterface", &IntegrationConfigApiController{}, "post:SaveInterface")
- beego.Router("/api/integration/synclist", &IntegrationConfigApiController{}, "get:GetSyncList")
- beego.Router("/api/integration/sysinspectionlist", &IntegrationConfigApiController{}, "get:GetSysInspectionList")
- beego.Router("/api/patienthis/saveinspectionsysitemid", &IntegrationConfigApiController{}, "post:SaveInspectionSysItemId")
- }
-
- func (c *IntegrationConfigApiController) SaveInspectionSysItemId() {
- adminUserInfo := c.GetAdminUserInfo()
- org_id, _ := c.GetInt64("org_id", 0)
- sys_item_id, _ := c.GetInt64("sys_item_id", 0)
- id, _ := c.GetInt64("id", 0)
- if org_id != adminUserInfo.CurrentOrgId || sys_item_id <= 0 || id <= 0 {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- }
-
- inspection_reference := &models.InspectionReference{
- ID: id,
- SysItemId: sys_item_id,
- UpdatedTime: time.Now().Unix(),
- }
- err := service.UpdateSysItemIdByID(inspection_reference)
- if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- }
- c.ServeSuccessJSON(map[string]interface{}{
- "inspection_reference": inspection_reference,
- })
- return
- }
-
- func (c *IntegrationConfigApiController) GetSysInspectionList() {
- adminUserInfo := c.GetAdminUserInfo()
- sysInspection, ownerInspection, err := service.GetSysInspectionList(adminUserInfo.CurrentOrgId)
- if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- }
-
- type InspectionStruce struct {
- ProjectName string `gorm:"-" json:"project_name" form:"project_name"`
- ProjectId int64 `gorm:"-" json:"project_id" form:"project_id"`
- InspectionReference []*models.InspectionReference `gorm:"-" json:"inspection_reference" form:"inspection_reference"`
- }
-
- sysInspec := make(map[int64]*InspectionStruce, 0)
- ownerInspec := make(map[int64]*InspectionStruce, 0)
-
- for _, item := range sysInspection {
- result := sysInspec[item.ProjectId]
- if result == nil {
- result = new(InspectionStruce)
- result.ProjectName = item.ProjectName
- result.ProjectId = item.ProjectId
- }
- result.InspectionReference = append(result.InspectionReference, item)
- sysInspec[item.ProjectId] = result
- }
-
- for _, oitem := range ownerInspection {
- oresult := ownerInspec[oitem.ProjectId]
- if oresult == nil {
- oresult = new(InspectionStruce)
- oresult.ProjectName = oitem.ProjectName
- oresult.ProjectId = oitem.ProjectId
- }
- oresult.InspectionReference = append(oresult.InspectionReference, oitem)
- ownerInspec[oitem.ProjectId] = oresult
- }
-
- c.ServeSuccessJSON(map[string]interface{}{
- "sysInspec": sysInspec,
- "ownerInspec": ownerInspec,
- })
- return
- }
-
- func (c *IntegrationConfigApiController) GetSyncList() {
- page, _ := c.GetInt64("page", 1)
- limit, _ := c.GetInt64("limit", 10)
-
- if page <= 0 {
- page = 1
- }
- if limit <= 0 {
- limit = 10
- }
-
- adminUserInfo := c.GetAdminUserInfo()
- patients, total, _ := service.GetSyncList(adminUserInfo.CurrentOrgId, page, limit)
-
- c.ServeSuccessJSON(map[string]interface{}{
- "list": patients,
- "total": total,
- })
- return
- }
-
- func (c *IntegrationConfigApiController) SaveInterface() {
- adminUserInfo := c.GetAdminUserInfo()
- ID, _ := c.GetInt64("id", 0)
- OrgId := adminUserInfo.CurrentOrgId
- Creater := adminUserInfo.AdminUser.Id
- Pattern, _ := c.GetInt("pattern", 0)
- Dbhost := c.GetString("dbhost")
- Dbuser := c.GetString("dbuser")
- Dbpassword := c.GetString("dbpassword")
- Dbname := c.GetString("dbname")
- InterfaceUrl := c.GetString("interface_url")
- InterFaceToken := c.GetString("interface_token")
- AllowIp := c.GetString("allow_ip")
- AllowToken := c.GetString("allow_token")
- SyncFrequency, _ := c.GetInt("sync_frequency")
- Status := 1
- UpdatedTime := time.Now().Unix()
- interfaceinfo := &models.MiddleInterface{
- ID: ID,
- OrgId: OrgId,
- Creater: Creater,
- Pattern: Pattern,
- Dbhost: Dbhost,
- Dbuser: Dbuser,
- Dbpassword: Dbpassword,
- Dbname: Dbname,
- InterfaceUrl: InterfaceUrl,
- InterFaceToken: InterFaceToken,
- AllowIp: AllowIp,
- AllowToken: AllowToken,
- SyncFrequency: SyncFrequency,
- Status: Status,
- UpdatedTime: UpdatedTime,
- }
- if ID <= 0 {
- interfaceinfo.CreatedTime = time.Now().Unix()
- }
- err := service.SaveInterface(interfaceinfo)
-
- if err == nil {
- c.ServeSuccessJSON(map[string]interface{}{
- "interfaceinfo": interfaceinfo,
- })
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- }
- return
- }
-
- func (c *IntegrationConfigApiController) GetInterface() {
- adminUserInfo := c.GetAdminUserInfo()
- interfaceinfo, _ := service.GetInterface(adminUserInfo.CurrentOrgId)
- c.ServeSuccessJSON(map[string]interface{}{
- "interfaceinfo": interfaceinfo,
- })
- return
-
- }
-
- func (c *IntegrationConfigApiController) GetPatientsList() {
- page, _ := c.GetInt64("page", 1)
- limit, _ := c.GetInt64("limit", 10)
-
- if page <= 0 {
- page = 1
- }
- if limit <= 0 {
- limit = 10
- }
-
- adminUserInfo := c.GetAdminUserInfo()
- patients, total, _ := service.GetIntegrationPatientList(adminUserInfo.CurrentOrgId, page, limit)
-
- c.ServeSuccessJSON(map[string]interface{}{
- "list": patients,
- "total": total,
- })
- return
- }
-
- func (c *IntegrationConfigApiController) EditPatientHis() {
- his_user_id := c.GetString("his_user_id")
- id, _ := c.GetInt64("id", 0)
-
- adminUserInfo := c.GetAdminUserInfo()
-
- total, _ := service.FindHisPatientByHisId(adminUserInfo.CurrentOrgId, his_user_id)
-
- if total > 0 {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisIdExist)
- return
-
- }
-
- err := service.UpdatePatientsHis(adminUserInfo.CurrentOrgId, his_user_id, id)
- if err == nil {
- c.ServeSuccessJSON(map[string]interface{}{
- "his_user_id": his_user_id,
- })
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
-
- }
- return
-
- }
-
- func (c *IntegrationConfigApiController) CreatePatientHis() {
- his_user_id := c.GetString("his_user_id")
- id, _ := c.GetInt64("id", 0)
-
- adminUserInfo := c.GetAdminUserInfo()
- patient, _ := service.FindVMPatientById(adminUserInfo.CurrentOrgId, id)
-
- total, _ := service.FindHisPatientByHisId(adminUserInfo.CurrentOrgId, his_user_id)
-
- if total > 0 {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisIdExist)
- return
-
- }
-
- hisPatient := &models.HisPatients{
- UserOrgId: adminUserInfo.CurrentOrgId,
- UserId: patient.UserId,
- Avatar: patient.Avatar,
- PatientType: patient.PatientType,
- DialysisNo: patient.DialysisNo,
- AdmissionNumber: patient.AdmissionNumber,
- Source: patient.Source,
- Lapseto: patient.Lapseto,
- PartitionId: patient.PartitionId,
- BedId: patient.BedId,
- Name: patient.Name,
- Alias: patient.Alias,
- Gender: patient.Gender,
- Nation: patient.Nation,
- NativePlace: patient.NativePlace,
- MaritalStatus: patient.MaritalStatus,
- IdCardNo: patient.IdCardNo,
- Birthday: patient.Birthday,
- ReimbursementWayId: patient.ReimbursementWayId,
- HealthCareType: patient.HealthCareType,
- HealthCareNo: patient.HealthCareNo,
- HealthCareDueDate: patient.HealthCareDueDate,
- Height: patient.Height,
- BloodType: patient.BloodType,
- Rh: patient.Rh,
- HealthCareDueAlertDate: patient.HealthCareDueAlertDate,
- EducationLevel: patient.EducationLevel,
- Profession: patient.Profession,
- Phone: patient.Phone,
- HomeTelephone: patient.HomeTelephone,
- RelativePhone: patient.RelativePhone,
- HomeAddress: patient.HomeAddress,
- WorkUnit: patient.WorkUnit,
- UnitAddress: patient.UnitAddress,
- ReceivingDate: patient.ReceivingDate,
- IsHospitalFirstDialysis: patient.IsHospitalFirstDialysis,
- FirstDialysisDate: patient.FirstDialysisDate,
- FirstDialysisHospital: patient.FirstDialysisHospital,
- PredialysisCondition: patient.PredialysisCondition,
- PreHospitalDialysisFrequency: patient.PreHospitalDialysisFrequency,
- PreHospitalDialysisTimes: patient.PreHospitalDialysisTimes,
- HospitalFirstDialysisDate: patient.HospitalFirstDialysisDate,
- InductionPeriod: patient.InductionPeriod,
- InitialDialysis: patient.InitialDialysis,
- TotalDialysis: patient.TotalDialysis,
- AttendingDoctorId: patient.AttendingDoctorId,
- HeadNurseId: patient.HeadNurseId,
- Evaluate: patient.Evaluate,
- Diagnose: patient.Diagnose,
- Remark: patient.Remark,
- RegistrarsId: patient.RegistrarsId,
- Registrars: patient.Registrars,
- QrCode: patient.QrCode,
- BindingState: patient.BindingState,
- PatientComplains: patient.PatientComplains,
- PresentHistory: patient.PresentHistory,
- PastHistory: patient.PastHistory,
- Temperature: patient.Temperature,
- Pulse: patient.Pulse,
- Respiratory: patient.Respiratory,
- Sbp: patient.SBP,
- Dbp: patient.DBP,
- Status: 1,
- CreatedTime: time.Now().Unix(),
- UpdatedTime: time.Now().Unix(),
- Age: patient.Age,
- InfectiousNextRecordTime: patient.InfectiousNextRecordTime,
- IsInfectious: patient.IsInfectious,
- RemindCycle: patient.RemindCycle,
- ResponseResult: patient.ResponseResult,
- IsOpenRemind: patient.IsOpenRemind,
- DialysisAge: patient.DialysisAge,
- ExpenseKind: patient.ExpenseKind,
- TellPhone: patient.TellPhone,
- FirstTreatmentDate: patient.FirstTreatmentDate,
- ContactName: patient.ContactName,
- HisUserId: his_user_id,
- XtPatientId: patient.ID,
- }
-
- err := service.CreatePatientsHis(hisPatient)
- if err == nil {
- c.ServeSuccessJSON(map[string]interface{}{
- "patient": hisPatient,
- })
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
-
- }
- return
-
- }
-
- func (c *IntegrationConfigApiController) GetAdminsList() {
- page, _ := c.GetInt("page", 1)
- limit, _ := c.GetInt("limit", 10)
-
- if page <= 0 {
- page = 1
- }
- if limit <= 0 {
- limit = 10
- }
-
- adminUserInfo := c.GetAdminUserInfo()
-
- viewModels, total, getAdminsErr := service.GetAdminUsers(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, page, limit)
- if getAdminsErr != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
- c.ServeSuccessJSON(map[string]interface{}{
- "admins": viewModels,
- "total_count": total,
- })
-
- return
-
- }
-
- func (c *IntegrationConfigApiController) EditAdminHis() {
- his_user_id := c.GetString("his_user_id")
- id, _ := c.GetInt64("id", 0)
-
- adminUserInfo := c.GetAdminUserInfo()
-
- total, _ := service.FindHisAdminByHisId(adminUserInfo.CurrentOrgId, his_user_id, adminUserInfo.CurrentAppId)
-
- if total > 0 {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisIdExist)
- return
-
- }
-
- err := service.UpdateAdminsHis(adminUserInfo.CurrentOrgId, his_user_id, id)
- if err == nil {
- c.ServeSuccessJSON(map[string]interface{}{
- "his_user_id": his_user_id,
- })
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
-
- }
- return
-
- }
-
- func (c *IntegrationConfigApiController) CreateAdminHis() {
- his_user_id := c.GetString("his_user_id")
- id, _ := c.GetInt64("id", 0)
-
- adminUserInfo := c.GetAdminUserInfo()
- adminRole, _ := service.FindVMAdminRoleById(adminUserInfo.CurrentOrgId, id, adminUserInfo.CurrentAppId)
-
- total, _ := service.FindHisAdminByHisId(adminUserInfo.CurrentOrgId, his_user_id, adminUserInfo.CurrentAppId)
-
- if total > 0 {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisIdExist)
- return
-
- }
-
- hisAdminRole := &models.HisUserAdminRole{
- OrgId: adminUserInfo.CurrentOrgId,
- AdminUserId: adminRole.AdminUserId,
- AppId: adminRole.AppId,
- RoleId: adminRole.RoleId,
- UserName: adminRole.UserName,
- Avatar: adminRole.Avatar,
- UserType: adminRole.UserType,
- UserTitle: adminRole.UserTitle,
- Intro: adminRole.Intro,
- Status: 1,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- XtRoleId: adminRole.ID,
- HisUserId: his_user_id,
- }
-
- err := service.CreateAdminsHis(hisAdminRole)
- if err == nil {
- c.ServeSuccessJSON(map[string]interface{}{
- "his_role": hisAdminRole,
- })
- } else {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
-
- }
- return
-
- }
|