# MedicalApplicition
湘雅医疗数据 (基于android平台医疗数据采集系统)
[Download APK](https://github.com/sjaiwl/image_folder/blob/master/MedicalApplication.apk)
##项目整体介绍
* 旨在为医生打造医疗数据信息采集平台<br>
* 实现随时随地上传文字,图片,视频,音频等病人记录信息<br>
* 主要功能架构图<br>
<div class='raw'>
<img src='https://github.com/sjaiwl/image_folder/blob/master/MedicalApplication/app.png' height="300px" width="500px" style='border: #f1f1f1 solid 1px'/>
</div>
##项目主体采用fragmentactivity实现fragment切换
* **需要了解fragment工作机制和生命周期<br>**
``` java
mFragments = new Fragment[3];
fragmentManager = getSupportFragmentManager();
mFragments[0] = fragmentManager.findFragmentById(R.id.fragment_main);
mFragments[1] = fragmentManager.findFragmentById(R.id.fragment_file);
mFragments[2] = fragmentManager.findFragmentById(R.id.fragment_mine);
fragmentTransaction = fragmentManager.beginTransaction().hide(mFragments[0]).hide(mFragments[1]).hide(mFragments[2]);
fragmentTransaction.show(mFragments[0]).commit();
```
* **实现效果图<br>**
<div class='row'>
<img src='https://github.com/sjaiwl/image_folder/blob/master/MedicalApplication/mainPage.png' width="250px" style='border: #f1f1f1 solid 1px'/>
<img src='https://github.com/sjaiwl/image_folder/blob/master/MedicalApplication/filePage.png' width="250px" style='border: #f1f1f1 solid 1px'/>
<img src='https://github.com/sjaiwl/image_folder/blob/master/MedicalApplication/minePage.png' width="250px" style='border: #f1f1f1 solid 1px'/>
</div>
###主体中的关键技术
* **首页的listview实现了下拉刷新和点击加载更多功能,在listview中定义刷新和加载的接口,在activity中实现接口。**
``` java
public interface IXListViewListener {
//刷新
public void onRefresh();
//加载更多
public void onLoadMore();
}
```
* **首页获取数据请求,采用Volley框架,获取服务器返回的json数据后,使用fastjson解析。解析是直接使用静态类解析数组数据。**
``` java
private void getData(final int method) { // method=1 重新生成list method=2 增长list
doctor_id = UserInfo.user.getDoctor_id();
String url = Configuration.get_allPatientUrl + "?index="
+ index + "&&doctor_id=" + doctor_id;
RequestQueue mRequestQueue = Volley.newRequestQueue(getActivity());
JsonArrayRequest jar = new JsonArrayRequest(url,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
List<PatientInfo> list = JSON.parseArray(
response.toString(), PatientInfo.class);
if (method == 1) {
patientInfoList.clear();
}
for (int i = 0; i < list.size(); i++) {
patientInfoList.add(list.get(i));
}
if (!patientInfoList.isEmpty()) {
lastActivityId = patientInfoList.get(patientInfoList.size() - 1).getId();
}
if (method == 1) {
stopRefreshLoad();
} else {
stopMoreLoad();
}
mainIndexAdapter.notifyDataSetChanged();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getActivity(), "病人列表获取失败", Toast.LENGTH_SHORT).show();
stopMoreLoad();
}
});
mRequestQueue.add(jar);
}
```
* **文件页面中,主要使用可下拉刷新的ExpandableListView,重写ExpandableListView实现下拉的监听。**
* **我的页面主要就是一个圆形的图片控件,继承MaskedImage实现CircularLoginImage。**
### 对于多媒体数据实时上传
* **调用系统接口,实现视频,音频,图片的拍摄和录制,同时指定文件的保存路径,以便上传后清除缓存。**
* **上传时将媒体文件转换为file文件,采用AsyncHttpClient发送请求,将数据提交到服务器。**
``` java
// /*
// * 上传文件
// */
@SuppressLint("ShowToast")
public void upload(File file, Integer type) {
RequestParams params = new RequestParams();
try {
params.put("doctor_id", UserInfo.user.getDoctor_id().toString());
params.put("suffer_id", patientInfo.getId().toString());
params.put("resource_type", type.toString());
params.put("resource_size", UsedTools.generateFileSize(file));
params.put("resource_category", category);
params.put("resource_url", file);
} catch (IOException e) {
e.printStackTrace();
}
String url = Configuration.newResourceUrl;
AsyncHttpClient client = new AsyncHttpClient();
client.post(url, params, new JsonHttpResponseHandler() {
@SuppressLint("ShowToast")
@Override
public void onSuccess(JSONObject response) {
try {
successResponse = response.get("success").toString();
} catch (JSONException e) {
e.printStackTrace();
}
if (successResponse.equals("1")) {
Toast.makeText(UploadRecord.this, "上传成功", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(UploadRecord.this, "上传失败", Toast.LENGTH_LONG).show();
}
}
@SuppressLint("ShowToast")
@Override
public void onFailure(int statusCode, Header[] headers,
byte[] responseBody, Throwable error) {
Toast.makeText(UploadRecord.this, "网络访问异常,请重试", Toast.LENGTH_LONG).show();
}
});
}
```
* **上传前还会对多媒体数据进行压缩,以减轻服务器的压力。**
### 其他功能
* 短信验证找回密码
* 登录,注册
* 修改个人信息
* 上传和修改头像
* 在线播放上传的视频和音频
### 引用外部jar文件
* [fastjson.jar](https://github.com/sjaiwl/MedicalApplicition/blob/master/app/libs/fastjson.jar)
* [gson-2.1.jar](https://github.com/sjaiwl/MedicalApplicition/blob/master/app/libs/gson-2.1.jar)
* [volley.jar](https://github.com/sjaiwl/MedicalApplicition/blob/master/app/libs/volley.jar)
* [SMSSDK-1.1.9.jar](https://github.com/sjaiwl/MedicalApplicition/blob/master/app/libs/SMSSDK-1.1.9.jar)
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于android平台医疗数据采集系统.zip (287个子文件)
gradlew.bat 2KB
.gitignore 81B
.gitignore 7B
build.gradle 1KB
build.gradle 436B
settings.gradle 15B
gradlew 5KB
app.iml 9KB
MedicalApplicition.iml 924B
fastjson.jar 354KB
xUtils-2.6.14.jar 277KB
gson-2.1-javadoc.jar 240KB
gson-2.1.jar 176KB
universal-image-loader-1.9.3.jar 157KB
volley.jar 153KB
gson-2.1-sources.jar 122KB
SMSSDK-1.1.9.jar 98KB
mframework.jar 97KB
android-async-http-1.4.6.jar 93KB
gradle-wrapper.jar 49KB
armeabi.jar 14KB
armeabi-v7a.jar 13KB
x86_64.jar 11KB
arm64-v8a.jar 10KB
x86.jar 10KB
mips64.jar 9KB
mips.jar 9KB
AsyncHttpClient.java 41KB
PhotoViewAttacher.java 32KB
UploadRecord.java 31KB
ShowResourceActivity.java 26KB
IdentifyNumPage.java 22KB
FragmentFile.java 21KB
SystemBarTintManager.java 19KB
RegisterPage.java 18KB
ForgetPasswordActivity.java 18KB
Spring.java 18KB
AsyncHttpResponseHandler.java 16KB
RequestParams.java 16KB
SpringConfiguratorView.java 15KB
DragImageView.java 14KB
ContactsPage.java 14KB
MineInformation.java 14KB
UpdateInformation.java 14KB
UsedTools.java 13KB
XListView.java 12KB
GroupListView.java 11KB
ContactsListView.java 10KB
ToggleButton.java 10KB
ContactsAdapter.java 9KB
JsonHttpResponseHandler.java 9KB
SimpleMultipartEntity.java 9KB
VersionedGestureDetector.java 9KB
CountryPage.java 9KB
PullToLoadMoreListView.java 8KB
PullToRefreshExpandableListView.java 8KB
LoginActivity.java 8KB
AddNewAudio.java 8KB
ViewResourceActivity.java 7KB
RegisterActivity.java 7KB
CountryAdapter.java 7KB
ImageRegister.java 7KB
PersistentCookieStore.java 7KB
FragmentMain.java 7KB
SettingPasswordActivity.java 7KB
CountryListView.java 7KB
SearchEngine.java 6KB
MineSetting.java 6KB
BaseSpringSystem.java 6KB
DefaultContactViewItem.java 6KB
MyExpandableListViewAdapter.java 6KB
SearchPage.java 6KB
ContactDetailPage.java 6KB
BitmapUtil.java 6KB
TouchRoateImageView.java 6KB
UploadListViewAdapter.java 5KB
BinaryHttpResponseHandler.java 5KB
UpdatePassword.java 5KB
GetImagePath.java 5KB
WebImageCache.java 5KB
AppConfiguration.java 5KB
AndroidSpringLooperFactory.java 5KB
AsyncHttpRequest.java 5KB
FragmentMine.java 5KB
PullListViewHeader.java 4KB
XListViewHeader.java 4KB
NetworkUtils.java 4KB
PhotoView.java 4KB
RetryHandler.java 4KB
ResourceInfo.java 4KB
MainActivity.java 4KB
IPhotoView.java 4KB
TextHttpResponseHandler.java 4KB
MyScrollView.java 4KB
PatientInfo.java 4KB
ViewPicture.java 3KB
XListViewFooter.java 3KB
RotateImageView.java 3KB
SelectPopupWindow.java 3KB
PatientDetails.java 3KB
共 287 条
- 1
- 2
- 3
资源评论
马coder
- 粉丝: 1217
- 资源: 6602
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 学生成绩管理系统c++ (代码).zip
- c语言学生管理系统-项目代码资料.zip
- 课程设计机器学习报告,垃圾分类系统.zip
- app-release.apk.zip
- python-leetcode面试题解之第421题数组中两个数的最大异或值.zip
- python-leetcode面试题解之第416题分割等和子集.zip
- python-leetcode面试题解之第414题第三大的数.zip
- python-leetcode面试题解之第412题Fizz-Buzz.zip
- python-leetcode面试题解之第409题最长回文串.zip
- python-leetcode面试题解之第408题有效单词缩写.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功