520 lines
17 KiB
C#
520 lines
17 KiB
C#
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<JsonInfo>(receiveContent);
|
||
DataParse.Instance.ParseAllOtherInfo(receiveContent);
|
||
}
|
||
}
|
||
|
||
|
||
private void OnGetOtherInfo(Message evt)
|
||
{
|
||
var currentInfo = DataManager.Instance.otherInfoItem;
|
||
List<FileInfoData> infos = new List<FileInfoData>();
|
||
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<JsonInfo>(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<TextMeshProUGUI>().text =
|
||
// "咨询理由:" + data.name +
|
||
// "\n咨询时间:" + data.time +
|
||
// "\n过往史:" + data.historySynopsis +
|
||
// "\n创建时间:" + data.createTime;
|
||
//展示图片或视频 url
|
||
if (data.fileType == 1)
|
||
{
|
||
//图片
|
||
newUI.transform.Find("info").GetComponent<TextMeshProUGUI>().text = "图片展示:";
|
||
head[i] = newUI.transform.Find("infoImg").GetComponent<Image>();
|
||
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<Image>().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<JsonInfo>(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<TextMeshProUGUI>().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<JsonInfo>(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<TextMeshProUGUI>().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<JsonInfo>(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<TextMeshProUGUI>().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<JsonInfo>(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<TextMeshProUGUI>().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<JsonInfo>(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<TextMeshProUGUI>().text =
|
||
"姓:" + data.familyName + " 名:" + data.name +
|
||
"\n性别:" + sex +
|
||
"\n职业:" + data.occupation +
|
||
"\n创建时间:" + data.createTime +
|
||
"\n更新时间:" + data.updateTime;
|
||
newUI.gameObject.SetActive(true);
|
||
}
|
||
|
||
}
|
||
}
|
||
#endregion
|
||
}
|