123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 |
- package coordinate
-
- import (
- "encoding/json"
- "fmt"
- "gdyb/controllers"
- "gdyb/enums"
- "gdyb/models"
- "gdyb/service"
- "gdyb/utils"
- "github.com/astaxie/beego"
- "math/rand"
- "os"
- "strconv"
- "strings"
- "time"
- )
-
- type CoordinateController struct {
- controllers.BaseAuthAPIController
- }
-
- type ResultReg struct {
- ResultCode string `json:"resultCode"`
- ResultDesc string `json:"resultDesc"`
- InfoSeq string `json:"infoSeq"`
- }
-
- func CoordinateRegistRouters() {
- beego.Router("/coordinate/check", &CoordinateController{}, "get:SavePatientMessageInfo")
- beego.Router("/coordinate/register", &CoordinateController{}, "get:Register")
- beego.Router("/coordinate/getWaitPayDetail", &CoordinateController{}, "get:GetWaitPayDetail")
- beego.Router("/coordinate/opKeepAccounts", &CoordinateController{}, "get:OpKeepAccounts")
- beego.Router("/coordinate/opCancelKeepAccounts", &CoordinateController{}, "get:OpCancelKeepAccounts")
-
- }
-
- func (c *CoordinateController) SavePatientMessageInfo() {
-
-
- }
-
- func (c *CoordinateController) Register() {
- patient_id, _ := c.GetInt64("patient_id")
- diagnosis_time := c.GetString("diagnosis_time")
- record_date := c.GetString("record_date")
- admin_user_id, _ := c.GetInt64("admin_user_id")
-
- patient, _ := service.GetPatientByID(c.GetAdminUserInfo().CurrentOrgId, patient_id)
-
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_date+" 00:00:00", loc)
- if err != nil {
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- return
- }
- recordDateTime := theTime.Unix()
-
- patientPrescription, _ := service.FindPatientPrescriptionInfo(c.GetAdminUserInfo().CurrentOrgId, patient.ID, recordDateTime)
- if patientPrescription.ID == 0 {
- patientPrescription, _ = service.FindLastPatientPrescriptionInfo(c.GetAdminUserInfo().CurrentOrgId, patient.ID, recordDateTime)
- }
- department, _ := service.GetDepartMentDetail(patientPrescription.Departments)
- doctor_info, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, patientPrescription.DoctorId)
-
- admin_user_info, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id)
-
- reg := models.Reg{
- DeptId: department.Number,
- PatientId: patient.ZbPatientId,
- PatientName: patient.Name,
- DoctorId: doctor_info.DoctorNumber,
- RegDate: strings.Split(diagnosis_time, " ")[0],
- RegFee: "0",
- TreatFee: "0",
- OperatorId: admin_user_info.UserName,
- }
-
- result, request_log := service.SaveReg(reg)
- fmt.Println(result)
- fmt.Println(request_log)
-
- saveLog(result, request_log, "reg", "挂号")
- var res ResultReg
- if err := json.Unmarshal([]byte(result), &res); err != nil {
- utils.ErrorLog("解析失败:%v", err)
- c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- return
- }
-
- timestamp := time.Now().Unix()
- tempTime := time.Unix(timestamp, 0)
- timeFormat := tempTime.Format("20060102150405")
- chrgBchno := rand.Intn(100000) + 10000
- ipt_otp_no := timeFormat + strconv.FormatInt(int64(chrgBchno), 10) + strconv.FormatInt(patient.ID, 10)
-
- his := models.VMHisPatient{
- Name: patient.Name,
- Gender: patient.Gender,
- Birthday: patient.Birthday,
- MedicalTreatmentType: 0,
- IdType: 1,
- IdCardNo: patient.IdCardNo,
- BalanceAccountsType: 1,
- SocialType: 0,
- MedicalInsuranceNumber: "",
- RegisterType: 0,
- RegisterCost: 0,
- TreatmentCost: 0,
- Status: 1,
- Ctime: time.Now().Unix(),
- Mtime: time.Now().Unix(),
- PsnNo: patient.ZbPatientId,
- PsnCertType: "",
- Certno: patient.IdCardNo,
- PsnName: patient.Name,
- Gend: "",
- Naty: "",
- Brdy: "",
- Age: 0,
- Iinfo: "",
- Idetinfo: "",
- PatientId: patient.ID,
- RecordDate: theTime.Unix(),
- UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
- AdminUserId: admin_user_id,
- IsReturn: 1,
- IdCardType: 1,
- Doctor: patientPrescription.DoctorId,
- Departments: patientPrescription.Departments,
- IptOtpNo: ipt_otp_no,
- Number: res.InfoSeq,
- PhoneNumber: patient.Phone,
- }
- service.UpdateHisPatientStatus(&his)
- service.UpdateHisPrescriptionHisID(his.ID, patient.ID, recordDateTime, c.GetAdminUserInfo().CurrentOrgId)
- c.ServeSuccessJSON(map[string]interface{}{
- "his_info": his,
- })
- }
-
- func (c *CoordinateController) GetWaitPayDetail() {
- result, request_log := service.GetWaitPayDetail()
- fmt.Println(result)
- fmt.Println(request_log)
-
- }
-
- func (c *CoordinateController) OpKeepAccounts() {
-
-
-
-
-
-
-
-
- }
- func (c *CoordinateController) OpCancelKeepAccounts() {
- result, request_log := service.OpCancelKeepAccounts()
- fmt.Println(result)
- fmt.Println(request_log)
- }
-
- func saveLog(result string, request string, infno string, desc string) {
-
- org_id, _ := beego.AppConfig.Int64("org_id")
- miConfig, _ := service.FindMedicalInsuranceInfo(org_id)
- dir := miConfig.OrgName + "日志"
- utils.Mkdir(dir)
- month := time.Unix(1557042972, 0).Format("1")
- year := time.Now().Format("2006")
- month = time.Now().Format("01")
- day := time.Now().Format("02")
- hour := time.Now().Format("15")
- min := time.Now().Format("04")
- sec := time.Now().Format("05")
-
- result_time := year + "-" + month + "-" + day + " " + hour + ":" + min + ":" + sec
-
- file := strconv.FormatInt(org_id, 10) + "_" + year + month + day + "_log"
- file_name := file + ".txt"
- file_path := miConfig.OrgName + "日志" + "/" + file_name
- exist, _ := utils.PathExists(file_path)
- if exist {
- fmt.Println("存在")
- f, err := os.OpenFile(file_path, os.O_WRONLY, 0644)
- if err != nil {
- fmt.Println("read fail")
- }
- content := "\r\n" + "\r\n" + "\r\n" + result_time + " " + "【 " + desc + infno + "入参" + " 】:" + "\r\n" + request + "\r\n" + result_time + " " + "【 " + desc + infno + "出参" + " 】:" + "\r\n" + result
- n, _ := f.Seek(0, 2)
- _, err = f.WriteAt([]byte(content), n)
-
- } else {
- fmt.Println("文件不存在,创建文件")
- f, err := os.Create(miConfig.OrgName + "日志" + "/" + file_name)
- defer f.Close()
- if err != nil {
- } else {
- _, err = f.Write([]byte("记录日志"))
- }
- }
-
- }
-
- type Charset string
-
- const (
- UTF8 = Charset("UTF-8")
- GB18030 = Charset("GB18030")
- )
|