GIS广州市白云区慢性病地理信息系统研发文献

                  《广州市白云区慢性病地理信息系》项目研发阶段性总结

作者:曾国喜

本次任务完成时间:2018年3月13日~2018年4月13日

语言:C#.NET MVC   GIS(SuperMap Desktop超图的地图绘制软件)

数据库:sql

完成模块功能(我的部分):前台:区域定位、查询搜索、路径查询、周边查询、工具箱

后台:用户管理、角色管理、日志管理、数据管理

一、目录

1、软件概述... 3

1.1、目的和意义... 3

1.2、功能概述... 3

2、运行环境... 3

3.1、硬件... 3

3.2、支持软件... 3

3、使用说明... 4

3.1、软件部署... 4

3.2、数据格式... 4

4、总体设计... 5

4.1系统模块总体设计:... 5

4.2、数据库总体设计(后台)... 6

5、详细设计... 11

5.1总模板... 11

6、项目总结... 19

 

 

1、软件概述

1.1、目的和意义

随着网络的迅速发展,网络社会的现代化,更方便管理社会,为了地区病例分布、活动状况、以及医院分布等数据统计,于是运用到了网络系统,对数据精确分类、病资料查询等方面进行系统化,这更有利于人们对病人和病原的了解。

1.2、功能概述

在满足用户需求的前提下,对病人数据进行分析,从而得到系统需要实现的具体功能。前台主要模块:区域定位、查询搜索、路径查询、周边分析、工具箱、

后台主要模块:用户管理、角色管理、日志管理、数据管理(导入导出数据和基础数据)

 

2、运行环境

3.1、硬件

CPU:Intel Core i5系列

内存:4GB

硬盘:120GB可用空间

输入:键盘、鼠标

输出:显示器

3.2、支持软件

(1)、Microsoft Windows8及其以上版本(操作系统名称及版本号);

(2)、Visual Studio 2015(语言编译系统的名称及版本号);

(3)、Microsoft SQL Server 2014(数据库管理系统的名称及版本号);

 

3、使用说明

3.1、软件部署

前台需要supermap_iserver_8.1.1a_win32_zip

 

4、总体设计

4.1系统模块总体设计:

1、前台:

(1)区域定位。对广州白云区的镇级、街道等进行划分,当点击其中一项时跳转到对应区域。

(2)查询搜索。主要对某个点进行定位查询,其中包括公司、病例号等。

(3)路径查询。主要包括病人活动路径和病原活动路径进行查询,分别以栅格、节点线段显示。

(4)周边查询。加强版的查询,它是以一个点为中心的N半径圆进行所在区域内点的查询

(5)工具箱。主要包括测距、测面积、圆形查询、自定义查询、预警、图层(主)、清除。

2、后台:

(1)用户管理主要对用户的新增删除修改。

(2)角色管理主要对角色的新增删除修改、以及权限的管理。

(3)日志管理主要包括查询和管理员操作后台进行数据记录

(4)数据管理主要分为基础数据和数据导出导入,基础数据即对基础数据的操作

 

3、对上述各项功能进行集中、分块,按照结构化程序设计的要求,得到如下所示的系统功能模块图如图1所示。      

                                                                                   图1

4.2、数据库总体设计(后台)

4.2.1表目录

表名

说明

类型

User

用户

基础表

ActivityPath

活动路径

业务表

DrugSuspiciousCan

预防病原

业务表

EpidemicSituation

疫情

业务表

Gene

基因

基础表

Jurisdiction

管辖权

业务表

JurisdictionDetail

管辖明细

业务表

Log

日志

基础表

Party

用户信息

业务表

Patient

病人属性

基础表

Property

基础

业务表

PropertyDetail

病人信息

业务表

RegistrationForm

登记表

业务表

表3

4.2.2基础表

1)用户表(user

主要包含如下字段信息:UserIDPartyID JdtionIDUserNameUserPWFoundTimeuseBit

列名

数据类型

主键/外键

说明

UserID

Int

主键

用户ID

PartyID

Int

外键

用户信息ID

JdtionID

Int

外键

 

UserName

Nvarchr

 

用户名

UserPW

Nvarchr

 

密码

FoundTime

Date

 

创建时间

useBit

Bit

 

是否使用

表4

 

 

 

 

2)基因表(Gene

主要包含如下字段信息:GeneIDPatientIDSampleNumberClinicNumberSnpSiteMutationGeneChromosomeLocation

列名

数据类型

主键/外键

说明

GeneID

Int

主键

基因ID

PatientID

Int

外键

病人ID

SampleNumber

Nvarchr

 

样本数

ClinicNumber

Nvarchr

 

诊所号码

SnpSite

Nvarchr

 

SNP位点

MutationGene

Nvarchr

 

突变基因

ChromosomeLocation

Nvarchr

 

染色体定位

表5

 

3)日志表(Log

主要包含如下字段信息:LogIDUserIDOperateActionOperateTime

 

列名

数据类型

主键/外键

说明

LogID

Int

主键

日志ID

UserID

Int

外键

用户ID

OperateAction

Nvarchr

 

操作详情

OperateTime

Nvarchr

 

操作时间

表6

 

4)病人表(Patient

主要包含如下字段信息:PatientIDSexIDCrowdClassifyIDCardNumberPatientNamePINDateOfBirthAgeWorkUnitPatientAttributeNowDetailedAddressCurrentAddressEthnicCareerH_RegistrationAddressNationalStandardTheStandardPatientSource

 

列名

数据类型

主键/外键

说明

PatientID

Int

主键

病人ID

SexID

Int

外键

性别ID

CrowdClassifyID

Int

外键

人群分类ID

CardNumber

Nvarchr

 

卡号

PatientName

Nvarchr

 

病人姓名

PIN

Nvarchr

 

PIN

DateOfBirth

Date

 

生日

Age

Int

 

年龄

WorkUnit

Nvarchr

 

工作单位

PatientAttribute

Nvarchr

 

病人阶段

NowDetailedAddress

Nvarchr

 

现住地址

CurrentAddress

Nvarchr

 

中点

Ethnic

Nvarchr

 

民族

Career

Nvarchr

 

职业

H_RegistrationAddress

Nvarchr

 

X轴

NationalStandard

Nvarchr

 

Y轴

TheStandard

Nvarchr

 

标准

PatientSource

Nvarchr

 

病人来源

表7

 

4.2.3业务表

5)活动路径表(ActivityPath

主要包含如下字段信息:ActivityPathIDPatientIDSmXSmYActivityTimeActivityAddress

列名

数据类型

主键/外键

说明

ActivityPathID

Int

主键

活动路径ID

PatientID

Int

外键

病人ID

SmX

Float

 

X轴

SmY

Float

 

Y

ActivityTime

Date

 

活动时间

ActivityAddress

Nvarchar

 

活动地址

表8

 

6)预防病原表(DrugSuspiciousCan

主要包含如下字段信息:QuestionableIDPatientIDTP_NumberDSTR_IsoniazidDSTR_RifampicinDrugFastDiagnosis

列名

数据类型

主键/外键

说明

QuestionableID

Int

主键

预防病原ID

PatientID

Int

外键

病人ID

TP_Number

Nvarchar

 

Tp_数

DSTR_Isoniazid

Nvarchar

 

DSTR _异烟肼

DSTR_Rifampicin

Nvarchar

 

DSTR _利福平

DrugFastDiagnosis

Nvarchar

 

药物快速诊断

表9

 

 

 

 

7)疫情表(EpidemicSituation

主要包含如下字段信息:OutbreakIDPatientIDCaseClassificationIDDateOfOnsetDiagnosisTimeDiseaseName、ReviewStatus、RevisedFinalTime、Remarks

列名

数据类型

主键/外键

说明

OutbreakID

Int

主键

疫情ID

PatientID

Int

外键

病人ID

CaseClassificationID

Int

外键

病例类型

DateOfOnset

Date

 

发病日期

DiagnosisTime

Datetime

 

诊断时间

DiseaseName

Nvarchar

 

病名

ReviewStatus

Nvarchar

 

审查状况

RevisedFinalTime

Datetime

 

修正后的最后期限

Remarks

Nvarchar

 

备注

表10

 

8)管辖权表(Jurisdiction

主要包含如下字段信息:JdtionIDPositionTypeIDDepartmentTypeIDRoleTypeID

列名

数据类型

主键/外键

说明

JdtionID

Int

主键

管辖权ID

PositionTypeID

Int

外键

位置类型ID

DepartmentTypeID

Int

外键

部门类型ID

RoleTypeID

Int

外键

角色类型ID

表11

 

9)管辖明细表(JurisdictionDetail

主要包含如下字段信息:JdtionDetailIDJdtionIDDFR_JdtionIDResourceBit

列名

数据类型

主键/外键

说明

JdtionDetailID

Int

主键

管辖明细ID

JdtionID

Int

外键

管辖权ID

DFR_JdtionID

Int

外键

DFR_ID

ResourceBit

Bit

 

资源

表12

 

10)用户信息表(Party

主要包含如下字段信息:PartyIDSexIDDFR_ PartyNamePINAddress、PhoneNumber、Postbox、Remark

列名

数据类型

主键/外键

说明

PartyID

Int

主键

用户信息ID

SexID

Int

外键

性别ID

PartyName

Nvarchar

 

用户名

PIN

Nvarchar

 

PIN

Address

Nvarchar

 

地址

PhoneNumber

Nvarchar

 

电话号码

Postbox

Nvarchar

 

邮箱

Remark

Nvarchar

 

备注

表13

 

11)病人属性表(Property

主要包含如下字段信息:PropertyIDPropertyNamePropertyDetailed

 

列名

数据类型

主键/外键

说明

PropertyID

Int

主键

病人属性ID

PropertyName

Nvarchar

 

属性名

PropertyDetailed

Nvarchar

 

详细财产

表14

 

12)病人信息表(PropertyDetail

主要包含如下字段信息:PropertyDetailIDPropertyIDPropertyDetailNamePropertyDetailDescribe

 

列名

数据类型

主键/外键

说明

PropertyDetailID

Int

主键

病人信息ID

PropertyID

Int

外键

病人ID

PropertyDetailName

Nvarchar

 

属性明细名称

PropertyDetailDescribe

Nvarchar

 

属性细节描述

表15

 

13)登记表(RegistrationForm

主要包含如下字段信息:RegistrationIDPatientIDR_CategoryIDT_CategoryIDRegistrationNumber、TD_Symptoms、TD_FirstVisit、TD_Diagnosis、ThePatientType、Diagnosis、IsWhetherSevere、DrugResistance、RegistrationDate、CurrentSupervisionUnit、StopReason、StopTime、MedicalStatus

 

列名

数据类型

主键/外键

说明

RegistrationID

Int

主键

登记ID

PatientID

Int

外键

病人ID

R_CategoryID

Int

外键

R_分类ID

T_CategoryID

Int

外键

T_分类ID

RegistrationNumber

Nvarchar

 

注册号

TD_Symptoms

Date

 

TD_症状时间

TD_FirstVisit

Date

 

TD_首次时间

TD_Diagnosis

Data

 

TD_诊断时间

ThePatientType

Nvarchar

 

病人类型

Diagnosis

Nvarchar

 

诊断

IsWhetherSevere

Bit

 

是否严重

DrugResistance

Nvarchar

 

耐药性

RegistrationDate

Data

 

注册日期

CurrentSupervisionUnit

Nvarchar

 

监测单元

StopReason

Nvarchar

 

停止原因

StopTime

Data

 

停止时间

MedicalStatus

Nvarchar

 

医疗状况

表16

5、详细设计

5.1总模板

5.1.1 业务流程图

5.1.2 操作说明

前台

1、查询搜索:在里面定击下拉框分病例门诊号查询、卡片号查询、项目登记号查询,可进行模糊查询。

 (1)查询出的点,可进行单击(弹出当前点信息);

 

 

2、周边查询:以任意点为中心画圆,并且查询出圆内的医院、社康、药店、病例

(1)可对查出的点进行点击,同样会显示对应点信息,且还可以以对应点作为中心点再次查询。

 

 

 

3、工具箱:主要分为测距、侧面积、圆查询、自定义查询、方框查询、图层、预警、清除功能。

 

 

(1)测距:(测量所选两点距离)

(2)测面积:(测量所选面积)

(3)圆形查询和自定义查询(显示区域内医院信息)

 

 

 

 

(4)图层:包括白云区医院图层、社康分布图层、药店分布图层、病例分布散点图层、病例热力分布图层和病原基因分布图层。

 

 

 

后台

1、日志:记录了管理员在后台的各种操作,还可以查询对应用户或在某时间区间内的数据。

 

 

2Excel模板导入导出

  (1)导出

 

 

(2)导入

 

3、基础属性

(1)对基础字典进行添加数据类和修改它的名称,且还可以新增、删除、修改里面的属性值。

 

5.1.3 表和关系

5.1.4 核心代码

1Excel到版本的切换

2、路径的引用(显示地图用切图)

6、项目总结

            GIS项目,就是以地图为基础,通过点、线、面集合,进行交互编织成一个二维地图。主要核心图层(把数据汇集于某一图层通过查询把数据以点、线、面形式显示在当前图层)。

            在正开始做时我几乎崩溃了(同学们也是),还记得前一周开始讲课,一周都围绕SuperMap iDeskeop 8C制作地图讲课,而GIS项目用了不到一节课讲,牢骚就不发了,言归正传。做这GIS项目遇到问题多不多久不说了。首先,在做时你要了解什么是新建矢量图层和画面控制,矢量图层是画面控制里的属性值,而画面控制要调用则要写入map = new SuperMap.Map("map", {controls:[ new SuperMap.Control.ScaleLine(),n] N位置里才生效(注意多个画面控制器写入有先后循序,及覆盖问题),还有个比较易忽略的矢量图层也需要些入map.addLayers([])里(方便显示控制,要不就要设置矢量是否显示),地图进行设定缩放的级别层数,对瓦片发布地图无效,同样对设置地图打开初始大小属性等级对应出错(这是由于瓦片切割层数大于15的缩放级别,即切了大于15的级别切片,对于切片其实没必要切太多层,主要围绕最大层,因为最大层显示我们需要的数据),对于我为什么用切片作为地图显示,那是因正常发布的地图在项目中加载慢且有时卡死,所有我就用了瓦片作为显示发布的地图作为数据交互(正常情况只以发布地图作为显示和数据交互),正常发布的地图是数据集形成的地图,发布瓦片则是对数据集形成的地图进行切割,最终形成一层层的图(瓦片地图和(点)数据集有时位置对应不够精确,最好用地图数据进行查询,不要在后台进行查询)。还有个清除图层,清除往往需要清除矢量图层和画面控制器(要不会出现鼠标效果残留,会印象下面操作)。

             其次就是监听器事件,在创建画面控制器时会注册监听器事件,就是当次画面控制器调用时,会执行监听器事件,而监听器事件里往往有细分为鼠标点击事件、图标移动事件…这样更有利于代码的扩展。还有个是向服务端传递参数,然后服务端返回对象。总之,就是一级一级调用到地层方法再放回。还有就是关于图片路径书写,对于src等, 往往写法src="~/Content/CCSS/img/152.jpg"而对URl写法 url('../../Content/Im ages/theme_img/152.png'),如果把../../替换成~/有很大几率读取不到图片路径。

             后台的导入导出Excel数据,由于之前教学引用旧版Excel引用,只读取.xls 格式的Excel, 要读取新版.xlsx则需要引用新版的Excel引用,它能兼容旧版的。对于导入导出Excel还要注意下控制器这边的头部标题和创建sheet1各个行要对应且类型也要和数据库对应。

            对于本次项目,可以说是瞎打正着,因为百度上少有人写这些问题(不是说上网搜索不重要,相反它是我们现阶段不能离开的),而我则只有多问多看,还有就是做笔记很重要。

 

猜你喜欢

转载自blog.csdn.net/weixin_44540005/article/details/86548479