using System; using System.Collections; using System.Collections.Generic; using System.Text; using TMPro; using UnityEngine; using UnityEngine.Networking; using UnityEngine.UI; using UnityEngine.Video; public class UIHistoryInfo : UIBase { public Button close; public GameObject infoItem; public Transform content; string dataURL = string.Empty; int currentDiaID = -1; DataItem currentDisData = null; public VideoPlayer player; public TextMeshProUGUI text; private void Awake() { currentDisData = DataManager.Instance.currentData; close.onClick.AddListener(() => { UIManager.Instance.DestoryUI(UIType.UIHistoryInfo); }); //var allData = DataManager.Instance.currentPeoplesQuestion; //if (allData != null) //{ // if (allData.Count > 0) // { // currentDiaID = allData[0].diagnosisId; // } //} EventCenter.dispatcher.AddListener(MsgType.OnGetPeopleInfo2, OnGetPeopleInfo); EventCenter.dispatcher.AddListener(MsgType.OnGetAskReason, OnGetAskReason); EventCenter.dispatcher.AddListener(MsgType.OnGetHistoryInfo, OnGetHistoryInfo); EventCenter.dispatcher.AddListener(MsgType.OnGetLifeType, OnGetLifeType); EventCenter.dispatcher.AddListener(MsgType.OnGetHealing, OnGetHealing); EventCenter.dispatcher.AddListener(MsgType.OnGetCheckReason, OnGetCheckReason); EventCenter.dispatcher.AddListener(MsgType.OnGetOtherInfo, OnGetOtherInfo); currentDiaID = DataManager.Instance.CurrentHistoryUIID; switch (currentDiaID) { case 0: text.text = "病人的个人资料"; GetPeopleInfo(); break; case 1: text.text = "咨询的理由"; GetAskReason(); break; case 2: text.text = "病史详情"; GetHistoryInfo(); break; case 3: text.text = "生活方式"; GetLifeType(); break; case 4: text.text = "正在进行的治疗"; GetHealing(); break; case 5: text.text = "完成的检查结果"; GetCheckReason(); break; case 6: text.text = "其他信息"; GetOtherInfo(); break; default: break; } } private void OnDestroy() { EventCenter.dispatcher.RemoveListener(MsgType.OnGetPeopleInfo2, OnGetPeopleInfo); EventCenter.dispatcher.RemoveListener(MsgType.OnGetAskReason, OnGetAskReason); EventCenter.dispatcher.RemoveListener(MsgType.OnGetHistoryInfo, OnGetHistoryInfo); EventCenter.dispatcher.RemoveListener(MsgType.OnGetLifeType, OnGetLifeType); EventCenter.dispatcher.RemoveListener(MsgType.OnGetHealing, OnGetHealing); EventCenter.dispatcher.RemoveListener(MsgType.OnGetCheckReason, OnGetCheckReason); EventCenter.dispatcher.RemoveListener(MsgType.OnGetOtherInfo, OnGetOtherInfo); } #region 其他信息 private void GetOtherInfo() { dataURL = DataManager.Instance.currentHistoryChoose; Debug.Log(dataURL); //dataURL = "http://122.112.171.137:85/api/diagnosis/life/style/list"; StartCoroutine(OtherInfo(dataURL)); } IEnumerator OtherInfo(string url) { UnityWebRequest request = UnityWebRequest.Get(url); yield return request.SendWebRequest(); if (request.isHttpError || request.isNetworkError) { Debug.LogError(request.error); } else { string receiveContent = request.downloadHandler.text; byte[] datas = Encoding.UTF8.GetBytes(receiveContent); receiveContent = Encoding.UTF8.GetString(datas, 0, datas.Length); //JsonInfo jsonInfo = JsonMapper.ToObject(receiveContent); DataParse.Instance.ParseAllOtherInfo(receiveContent); } } private void OnGetOtherInfo(Message evt) { var currentInfo = DataManager.Instance.otherInfoItem; List infos = new List(); for (int i = 0; i < currentInfo.Count; i++) { FileInfoData data = new FileInfoData(); var temp = currentInfo[i]; var fileTemp = temp.fileLibraryResp; data.type = (FileType)fileTemp.type; data.title = temp.title; data.content = temp.content; data.url = fileTemp.filePath; infos.Add(data); } UIBase ui = UIManager.Instance.OpenUI(UIType.UIFile); UIFile fileui = (UIFile)ui; fileui.Init(infos); //var file = currentInfo[0].fileLibraryResp; //UIBase ui = UIManager.Instance.OpenUI(UIType.UIFile); //UIFile fileui = (UIFile)ui; //switch (file.type) //{ // case 1: // //图片 // fileui.Init(FileType.image); // break; // case 2: // //视频 // fileui.Init(FileType.video); // break; // case 3: // //音频 // fileui.Init(FileType.music); // break; // case 4: // //PDF // fileui.Init(FileType.URL); // break; // case 5: // //VIDAL摘录 // fileui.Init(FileType.text); // break; //} UIManager.Instance.DestoryUI(UIType.UIHistoryInfo); } #endregion #region 完成的检查结果 private void GetCheckReason() { dataURL = DataManager.Instance.currentHistoryChoose; //dataURL = "http://122.112.171.137:85/api/diagnosis/life/style/list"; StartCoroutine(CheckReason(dataURL)); } IEnumerator CheckReason(string url) { UnityWebRequest request = UnityWebRequest.Get(url); yield return request.SendWebRequest(); if (request.isHttpError || request.isNetworkError) { Debug.LogError(request.error); } else { string receiveContent = request.downloadHandler.text; byte[] datas = Encoding.UTF8.GetBytes(receiveContent); receiveContent = Encoding.UTF8.GetString(datas, 0, datas.Length); //JsonInfo jsonInfo = JsonMapper.ToObject(receiveContent); DataParse.Instance.ParseAllCheckReason(receiveContent); } } Image[] head; private void OnGetCheckReason(Message evt) { var currentInfo = DataManager.Instance.checkReasonItems; head = new Image[currentInfo.Count]; for (int i = 0; i < currentInfo.Count; i++) { var data = currentInfo[i]; if (data.diagnosisId == currentDisData.id) { var newUI = GameObject.Instantiate(infoItem, content); //newUI.transform.Find("info").GetComponent().text = // "咨询理由:" + data.name + // "\n咨询时间:" + data.time + // "\n过往史:" + data.historySynopsis + // "\n创建时间:" + data.createTime; //展示图片或视频 url if (data.fileType == 1) { //图片 newUI.transform.Find("info").GetComponent().text = "图片展示:"; head[i] = newUI.transform.Find("infoImg").GetComponent(); head[i].gameObject.SetActive(true); StartCoroutine(DownSprite(head[i], data)); } else { //视频 player.source = VideoSource.Url; player.url = data.filePath; player.gameObject.SetActive(true); player.Play(); } newUI.gameObject.SetActive(true); } } } IEnumerator DownSprite(Image img, CheckReasonItem item) { UnityWebRequest wr = new UnityWebRequest(item.filePath); DownloadHandlerTexture texD1 = new DownloadHandlerTexture(true); wr.downloadHandler = texD1; yield return wr.SendWebRequest(); int width = 300; int high = 200; if (!wr.isNetworkError) { Texture2D tex = new Texture2D(width, high); tex = texD1.texture; //保存本地 //Byte[] bytes = tex.EncodeToPNG(); //File.WriteAllBytes(Application.dataPath + "/" + data.name + ".png", bytes); Sprite sprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new Vector2(0.5f, 0.5f)); if (img != null) img.sprite = sprite; //transform.GetComponent().sprite = sprite; } } #endregion #region 正在进行的治疗 private void GetHealing() { dataURL = DataManager.Instance.currentHistoryChoose; //dataURL = "http://122.112.171.137:85/api/diagnosis/life/style/list"; StartCoroutine(Healing(dataURL)); } IEnumerator Healing(string url) { UnityWebRequest request = UnityWebRequest.Get(url); yield return request.SendWebRequest(); if (request.isHttpError || request.isNetworkError) { Debug.LogError(request.error); } else { string receiveContent = request.downloadHandler.text; byte[] datas = Encoding.UTF8.GetBytes(receiveContent); receiveContent = Encoding.UTF8.GetString(datas, 0, datas.Length); //JsonInfo jsonInfo = JsonMapper.ToObject(receiveContent); DataParse.Instance.ParseAllHealing(receiveContent); } } private void OnGetHealing(Message evt) { var currentInfo = DataManager.Instance.healingItems; for (int i = 0; i < currentInfo.Count; i++) { var data = currentInfo[i]; if (data.diagnosisId == currentDisData.id) { var newUI = GameObject.Instantiate(infoItem, content); newUI.transform.Find("info").GetComponent().text = "治疗方式:" + data.type + "\n分子:" + data.molecule + "\n药牌子:" + data.brand + "\n名字:" + data.dciName + "\n方式:" + data.frequency + "\n持续时间:" + data.duration + "\n创建时间:" + data.createTime; newUI.gameObject.SetActive(true); } } } #endregion #region 生活方式 private void GetLifeType() { dataURL = DataManager.Instance.currentHistoryChoose; //dataURL = "http://122.112.171.137:85/api/diagnosis/life/style/list"; StartCoroutine(LifeType(dataURL)); } IEnumerator LifeType(string url) { UnityWebRequest request = UnityWebRequest.Get(url); yield return request.SendWebRequest(); if (request.isHttpError || request.isNetworkError) { Debug.LogError(request.error); } else { string receiveContent = request.downloadHandler.text; byte[] datas = Encoding.UTF8.GetBytes(receiveContent); receiveContent = Encoding.UTF8.GetString(datas, 0, datas.Length); //JsonInfo jsonInfo = JsonMapper.ToObject(receiveContent); DataParse.Instance.ParseAllLifeType(receiveContent); } } private void OnGetLifeType(Message evt) { var currentInfo = DataManager.Instance.lifeItems; for (int i = 0; i < currentInfo.Count; i++) { var data = currentInfo[i]; if (data.diagnosisId == currentDisData.id) { var newUI = GameObject.Instantiate(infoItem, content); newUI.transform.Find("info").GetComponent().text = "生活方式:" + data.detail + "\n创建时间:" + data.createTime; newUI.gameObject.SetActive(true); } } } #endregion #region 病史详情 private void GetHistoryInfo() { dataURL = DataManager.Instance.currentHistoryChoose; //dataURL = "http://122.112.171.137:85/api/medical/history/detail/list"; StartCoroutine(HistoryInfo(dataURL)); } IEnumerator HistoryInfo(string url) { UnityWebRequest request = UnityWebRequest.Get(url); yield return request.SendWebRequest(); if (request.isHttpError || request.isNetworkError) { Debug.LogError(request.error); } else { string receiveContent = request.downloadHandler.text; byte[] datas = Encoding.UTF8.GetBytes(receiveContent); receiveContent = Encoding.UTF8.GetString(datas, 0, datas.Length); //JsonInfo jsonInfo = JsonMapper.ToObject(receiveContent); DataParse.Instance.ParseAllHistoryInfo(receiveContent); } } private void OnGetHistoryInfo(Message evt) { var currentInfo = DataManager.Instance.historyInfoItems; for (int i = 0; i < currentInfo.Count; i++) { var data = currentInfo[i]; if (data.diagnosisId == currentDisData.id) { var newUI = GameObject.Instantiate(infoItem, content); newUI.transform.Find("info").GetComponent().text = "病史详情:" + data.peculiarity + "\n详情信息:" + data.detailInfo; newUI.gameObject.SetActive(true); } } } #endregion #region 咨询理由 private void GetAskReason() { dataURL = DataManager.Instance.currentHistoryChoose; //dataURL = "http://122.112.171.137:85/api/diagnosis/event/base/info/list"; StartCoroutine(AskReason(dataURL)); } IEnumerator AskReason(string url) { UnityWebRequest request = UnityWebRequest.Get(url); yield return request.SendWebRequest(); if (request.isHttpError || request.isNetworkError) { Debug.LogError(request.error); } else { string receiveContent = request.downloadHandler.text; byte[] datas = Encoding.UTF8.GetBytes(receiveContent); receiveContent = Encoding.UTF8.GetString(datas, 0, datas.Length); //JsonInfo jsonInfo = JsonMapper.ToObject(receiveContent); DataParse.Instance.ParseAllAskReason(receiveContent); } } private void OnGetAskReason(Message evt) { var currentInfo = DataManager.Instance.askItems; for (int i = 0; i < currentInfo.Count; i++) { var data = currentInfo[i]; if (data.diagnosisId == currentDisData.id) { var newUI = GameObject.Instantiate(infoItem, content); newUI.transform.Find("info").GetComponent().text = "咨询理由:" + data.name + "\n咨询时间:" + data.time + "\n过往史:" + data.historySynopsis + "\n创建时间:" + data.createTime; newUI.gameObject.SetActive(true); } } } #endregion #region 个人资料 private void GetPeopleInfo() { dataURL = DataManager.Instance.currentHistoryChoose; //dataURL = "http://122.112.171.137:85/api/diagnosis/patient/base/info/list"; StartCoroutine(People(dataURL)); } IEnumerator People(string url) { UnityWebRequest request = UnityWebRequest.Get(url); yield return request.SendWebRequest(); if (request.isHttpError || request.isNetworkError) { Debug.LogError(request.error); } else { string receiveContent = request.downloadHandler.text; byte[] datas = Encoding.UTF8.GetBytes(receiveContent); receiveContent = Encoding.UTF8.GetString(datas, 0, datas.Length); //JsonInfo jsonInfo = JsonMapper.ToObject(receiveContent); DataParse.Instance.ParseAllPeopleInfo(receiveContent); } } private void OnGetPeopleInfo(Message evt) { var currentInfo = DataManager.Instance.rowitems2; for (int i = 0; i < currentInfo.Count; i++) { var data = currentInfo[i]; if (string.IsNullOrEmpty(data.diagnosisId)) { continue; } if (data.diagnosisId == currentDisData.id.ToString()) { var newUI = GameObject.Instantiate(infoItem, content); string sex = data.sex == 0 ? "男" : "女"; newUI.transform.Find("info").GetComponent().text = "姓:" + data.familyName + " 名:" + data.name + "\n性别:" + sex + "\n职业:" + data.occupation + "\n创建时间:" + data.createTime + "\n更新时间:" + data.updateTime; newUI.gameObject.SetActive(true); } } } #endregion }