CN103294796B - 一种xml解析方法及医疗病案中自定义xml结构表单实现方法 - Google Patents

一种xml解析方法及医疗病案中自定义xml结构表单实现方法 Download PDF

Info

Publication number
CN103294796B
CN103294796B CN201310199708.XA CN201310199708A CN103294796B CN 103294796 B CN103294796 B CN 103294796B CN 201310199708 A CN201310199708 A CN 201310199708A CN 103294796 B CN103294796 B CN 103294796B
Authority
CN
China
Prior art keywords
xml
list
node
nodename
type
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201310199708.XA
Other languages
English (en)
Other versions
CN103294796A (zh
Inventor
闵新力
柴廷英
张余
薛君志
高珊
姬江涛
方先臣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI SHENTENG INFORMATION TECHNOLOGY Co Ltd
Original Assignee
SHANGHAI SHENTENG INFORMATION TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHANGHAI SHENTENG INFORMATION TECHNOLOGY Co Ltd filed Critical SHANGHAI SHENTENG INFORMATION TECHNOLOGY Co Ltd
Priority to CN201310199708.XA priority Critical patent/CN103294796B/zh
Publication of CN103294796A publication Critical patent/CN103294796A/zh
Application granted granted Critical
Publication of CN103294796B publication Critical patent/CN103294796B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明涉及数据库技术,具体是一种XML解析方法及医疗病案中自定义XML结构表单实现方法,由XML封装、XML解析两部分构成,XML封装在PC机上根据用户选定的XML节点名称,图形化实现表单字段的选择和属性修改界面,然后系统根据用户选择的字段名称动态生成适合各种医疗病案表单的XML模板,XML解析在Android平台下实现,采用改进的Pull解析方法进行解析。本发明可根据各种表单的需求字段动态生成合适XML结构模板,并解析出需要的字段,在Android终端上绘制出形式各异的表单样式,提高了开发效率,采用此方案前,项目工程大小大概为8M字节。采用此方案后,项目工程大小为7.06M字节,并且程序的运行效率提高了大概10%。

Description

一种XML解析方法及医疗病案中自定义XML结构表单实现方法
[技术领域]
本发明涉及数据库技术,具体是一种XML解析方法以及在Android终端上医疗病案中自定义XML结构表单的实现方法,完成了基于医疗病案的自定义XML结构表单的实现,且将形式各异的医疗表单需要的XML结构生成方式和XML解析方式统一化。
[背景技术]
可扩展标记语言(Extensible Markup Language ,XML)广泛用在网络服务、数据库和文件处理等领域。XML具有文档内容和结构完全分离、互操作性强、规范统一、支持多种编码和可扩展性好等特点。
由于XML文档包括多层嵌套的数据结构,因此XML解析通常会比较复杂。尤其是应用到医疗业务领域,往往因为涉及到医疗业务中大量的数据和表单,如病人的病史、检查、化验的表单等,这些表单种类繁多而且形式各异,表单的内容都是接收后台传送的XML或jason格式的数据,然后通过解析获得,因此不同的表单就对应了不同的XML或jason格式,除此之外每种表单中设计的字段也不是始终不变的,可能会根据实际需求表单的样式会发生改变,这种不确定性对常规XML解析方法的适用时会产生问题。
尤其当需要在Android系统终端上实现XML数据解析时,常规XML解析方法有DOM(Document Object Model 文档对象模型 )方式、SAX(Simple API For XML 简易应用程序接口)方式和Android自带的Pull方式。其中DOM解析器是完全加载后才能解析,占用内存较多;SAX占用内存少,解析器可以随时加载随时解析,但却难以回访。Pull解析和SAX类似,不同的是SAX解析器的工作方式是自动将事件推入注册的事件处理器进行处理,不能控制事件的处理主动结束;而Pull解析器的工作方式为允许应用程序代码主动从解析器中获取事件,正因为是主动获取事件,因此可以在满足了需要的条件后不再获取事件,结束解析。三种解析方式各有各自的优点,其中相对来说Pull解析最简单,可根据实际需求选择解析方式。
不论何种方式,一般XML数据进行解析时,需要知道被解析的XML数据的各个标签的名称,解析过程中判断解析到的标签名称和已知名称是否相同,如相同取出该标签的内容,采用此种方式的缺点就是不同的XML数据需要编写不同的解析代码,工作量很大;其次,如若将XML划分为相同大小的多个数据块,然后通过多核处理器的多个核同时分别对多个数据块进行并行的解析处理,会使得一个XML元素的内容可能分布在不同的块中,解析程序只能以推测的方式解析这样的数据,此外在并行解析多个数据块时,需要检查各个数据块之间的数据依赖关系,从而导致并解析线程间的频繁通信,当线程等待通信应答时,将暂停运行或减缓处理速度,从而使得并行处理的效果受到影响。
[发明内容]
本发明的目的是在现有Android终端上自带的关于XML数据的Pull解析方法的基础上进行改进,提供一种不需要知道XML数据的标签名称,而只需要一个通用的XML解析代码就可解析出不同形式的XML数据的方法,以提高XML解析的解析速度,在Android终端上实现医疗业务。
为实现上述目的,设计一种XML解析方法,其特征在于所述解析方法的步骤如下:
1)解析模块读取调用外接数据库接口Webservice接口,获得返回的XML数据;
2)判断读取到的XML节点类型;
3)节点处理操作,定义一个节点结构体NodeStruct,包括节点类型nodeType、节点名称nodeName和内容类型contentType三个字符串String类型的私有属性,并新建一个表单容器List用来存放NodeStruct类型的对象,即Lsit<NodeStruct>,在解析过程中每遇到节点类型都新建立一个NodeStruct对象,并根据节点类型分别对三个私有属性进行赋值;
4)把新建并已赋好值的NodeStruct对象添加到表单容器List中;
5)判断XML数据是否读取完毕,如果判断到了XML结束文档处,执行第6个步骤,否则返回到第1个步骤,继续读取XML数据;
6)读取表单容器List中的内容并绘制表单,表单上的字段名称以及表单上字段内容的类型都存在List容器中的NodeStruct对象的私有属性中,读取出表单的字段名称,然后根据具体的表单样式采用代码的形式动态绘制界面。
一种用上述XML解析方法实现医疗病案中自定义XML结构表单的实现方法,由XML封装、XML解析两部分构成,
所述XML封装方法步骤为:
1)XML节点管理模块,从系统数据库中的节点表中获取医疗病案表单中的字段;XML节点管理模块起到管理和维护表单中用到的所有字段的作用;
2)把字段的名称和各种属性在pc机上用图形化的方式显示出来;
3)用户在pc机的图形界面上选择表单需要的字段名称;
4)生成含有用户已选择的字段的XML模板;
5)用第四步生成的XML构建外接数据库接口webservice接口;
所述XML解析方法步骤为:
1)解析模块读取调用外接数据库接口Webservice接口,获得返回的XML数据;
2)判断读取到的XML节点类型;
3)节点处理操作,定义一个节点结构体NodeStruct,包括节点类型nodeType、节点名称nodeName和内容类型contentType三个字符串String类型的私有属性,并新建一个表单容器List用来存放NodeStruct类型的对象,即Lsit<NodeStruct>,在解析过程中每遇到节点段都新建立一个NodeStruct对象,并根据节点段类型分别对三个私有属性进行赋值;
4)把新建并已赋好值的NodeStruct对象添加到表单容器List中;
5)判断XML数据是否读取完毕,如果判断到了XML结束文档处,执行第6个步骤,否则返回到第1个步骤,继续读取XML数据;
6)读取表单容器List中的内容并绘制表单,表单上的字段名称以及表单上字段内容的类型都存在List容器中的NodeStruct对象的私有属性中,读取出表单的字段名称,然后根据具体的表单样式采用代码的形式动态绘制界面。
所述每一个外接数据库接口Webservice接口对应一种表单样式。
所述的节点类型分为开始标签、文本标签和结束标签。
所述节点段分为开始段、文本段及结束段,所述的赋值操作,当遇到节点开始段时,节点类型nodeType赋值为START,节点名称nodeName赋值为解析得到的标签名称,内容类型contentType赋值为解析属性type得到的内容;遇到节点文本段时,判断文本段是否有内容,若是有则节点类型nodeType赋值为TEXT,节点名称nodeName赋值为解析得到的标签内容,否则不做处理;若是遇到节点结束段时,节点类型nodeType赋值为END,节点名称nodeName赋值为解析得到的标签名称。
所述的XML解析在Android平台下实现,编程语言为java。
本发明提出了一种基于医疗病案的自定义XML结构表单的生成方法,这种方法可根据各种表单的需求字段动态生成合适XML结构模板,并解析出需要的字段,在android终端上绘制出形式各异的表单样式,使用这种方法大大降低了程序员的开发难度,并且提高了开发效率。采用此方案前,项目工程大小大概为8M字节。采用此方案后,项目工程大小为7.06M字节,并且程序的运行效率提高了大概10%,因此证明此方案是可行的。
[附图说明]
图1:自定义XML结构表单实现方法的流程框图;
图2:XML数据中字符串的封装流程图;
图3:XML数据的解析流程图;
指定图1为摘要附图。
[具体实施方式]
现结合附图及具体实施例对本发明的技术方案作进一步阐述,相信对本领域技术人员来说是清楚的。
本发明主要由两部分构成如图1所示,PC机上的XML封装操作和Android终端上的XML解析,XML的封装主要是根据用户选定的XML节点名称,动态生成适合各种医疗病案表单的XML结构,XML封装的结构组成图如图2所示;XML解析在Android平台下实现,编程语言为java,采用改进后的Pull解析方法进行。
XML封装方法是利用封装模块在PC机上实现,采用C#语言编程,其方法步骤如图2所示:
1)医疗系统数据库包括系统数据库和外接的数据库接口两部分,外接数据库接口可以是医院数据库接口或HIS系统的接口等其它医疗系统接口,该接口用来提供医疗病案表单需要的节点名称。在系统数据库内包含节点表,外接的数据库接口中包含字段,系统数据库节点表中的节点名称字段与外接数据库接口中的相关字段相对应的。XML节点管理模块对数据库表单中用到的所有字段起到管理和维护作用,XML节点管理模块从系统数据库中的节点表中获取医疗病案表单中的字段;
2)把字段的名称和各种属性在pc机上用图形化的方式显示出来;
3)用户在pc机的图形界面上选择表单需要的字段名称;
4)生成含有用户已选择的字段的XML模板;
5)用第四步生成的XML构建外接数据库接口webservice接口;
XML解析,解析模块调用Webservice接口,并对获取到的返回数据进行解析,得到表单的字段名称,然后根据表单样式,动态的用代码进行界面布局,在终端界面上显示出来。解析是在Android系统终端上实现,Android解析XML数据可以采用DOM(DocumentObject Model 文档对象模型 )方式、SAX(Simple API For XML 简易应用程序接口)方式和Android自带的Pull方式。其中DOM解析器是完全加载后才能解析,占用内存较多;SAX占用内存少,解析器可以随时加载随时解析,但却难以回访。Pull解析和SAX类似,不同的是SAX解析器的工作方式是自动将事件推入注册的事件处理器进行处理,不能控制事件的处理主动结束;而Pull解析器的工作方式为允许应用程序代码主动从解析器中获取事件,正因为是主动获取事件,因此可以在满足了需要的条件后不再获取事件,结束解析。三种解析方式各有各自的优点,其中相对来说Pull解析最简单,可根据实际需求选择解析方式。在这里我们采用Android自带的Pull解析方式。
XML解析方法是利用解析模块在Android终端平台上实现的,采用java编程语言,其方法步骤如图3所示:
1)解析模块读取调用外接数据库接口Webservice接口,获得返回的XML数据;其中每一个外接数据库接口Webservice接口对应了一种表单样式。
2)判断读取到的XML节点类型;所述的节点类型分为开始标签、文本标签和结束标签。以<item>男</item>为例说明,其中<item>为开始标签,<item> 标签的内容“男”就是文本标签,</item>为结束标签;
3)节点处理操作,定义一个节点结构体NodeStruct,包括节点类型nodeType、节点名称nodeName和内容类型contentType三个字符串String类型的私有属性,并新建一个表单容器List用来存放NodeStruct类型的对象,即Lsit<NodeStruct>,在解析过程中每遇到节点段都新建立一个NodeStruct对象,并根据节点段类型分别对三个私有属性进行赋值;所述节点段分为开始段、文本段及结束段,所述的赋值操作,当遇到节点开始段时,节点类型nodeType赋值为START,节点名称nodeName赋值为解析得到的标签名称,内容类型contentType赋值为解析属性type得到的内容;遇到节点文本段时,判断文本段是否有内容,若是有则节点类型nodeType赋值为TEXT,节点名称nodeName赋值为解析得到的标签内容,否则不做处理;若是遇到节点结束段时,节点类型nodeType赋值为END,节点名称nodeName赋值为解析得到的标签名称。
4)把新建并已赋好值的NodeStruct对象添加到表单容器List中;
5)判断XML数据是否读取完毕,如果判断到了XML结束文档处,执行第6个步骤,否则返回到第1个步骤,继续读取XML数据;
6)读取表单容器List中的内容并绘制表单,表单上的字段名称以及表单上字段内容的类型都存在List容器中的NodeStruct对象的私有属性中,读取出表单的字段名称,然后根据具体的表单样式采用代码的形式动态绘制界面。

Claims (5)

1.一种XML解析方法,其特征在于所述解析方法的步骤如下:
1)解析模块读取调用外接数据库接口Webservice接口,获得返回的XML数据;
2)判断读取到的XML节点类型;
3)节点处理操作,定义一个节点结构体NodeStruct,包括节点类型nodeType、节点名称nodeName和内容类型contentType三个字符串String类型的私有属性,并新建一个表单容器List用来存放NodeStruct类型的对象,即Lsit<NodeStruct>,在解析过程中每遇到节点段都新建立一个NodeStruct对象,并根据节点段类型分别对三个私有属性进行赋值;所述节点段分为开始段、文本段及结束段,所述的赋值操作,当遇到节点开始段时,节点类型nodeType赋值为START,节点名称nodeName赋值为解析得到的标签名称,内容类型contentType赋值为解析属性type得到的内容;遇到节点文本段时,判断文本段是否有内容,若是有则节点类型nodeType赋值为TEXT,节点名称nodeName赋值为解析得到的标签内容,否则不做处理;若是遇到节点结束段时,节点类型nodeType赋值为END,节点名称nodeName赋值为解析得到的标签名称;
4)把新建并已赋好值的NodeStruct对象添加到表单容器List中;
5)判断XML数据是否读取完毕,如果判断到了XML结束文档处,执行第6个步骤,否则返回到第1个步骤,继续读取XML数据;
6)读取表单容器List中的内容并绘制表单,表单上的字段名称以及表单上字段内容的类型都存在List容器中的NodeStruct对象的私有属性中,读取出表单的字段名称,然后根据具体的表单样式采用代码的形式动态绘制界面。
2.一种用如权利要求1所述的XML解析方法实现医疗病案中自定义XML结构表单的实现方法,由XML封装、XML解析两部分构成,
所述XML封装方法步骤为:
1)XML节点管理模块,从系统数据库中的节点表中获取医疗病案表单中的字段;
2)把字段的名称和属性在pc机上图形化显示于XML节点管理界面上;
3)用户在pc机的图形界面上选择表单需要的字段名称;
4)生成含有用户已选择的字段的XML模板;
5)用第四步生成的XML构建外接数据库接口webservice接口;
所述XML解析方法步骤为:
1)解析模块读取调用外接数据库接口Webservice接口,获得返回的XML数据;
2)判断读取到的XML节点类型;
3)节点处理操作,定义一个节点结构体NodeStruct,包括节点类型nodeType、节点名称nodeName和内容类型contentType三个字符串String类型的私有属性,并新建一个表单容器List用来存放NodeStruct类型的对象,即Lsit<NodeStruct>,在解析过程中每遇到节点段都新建立一个NodeStruct对象,并根据节点段类型分别对三个私有属性进行赋值;所述节点段分为开始段、文本段及结束段,所述的赋值操作,当遇到节点开始段时,节点类型nodeType赋值为START,节点名称nodeName赋值为解析得到的标签名称,内容类型contentType赋值为解析属性type得到的内容;遇到节点文本段时,判断文本段是否有内容,若是有则节点类型nodeType赋值为TEXT,节点名称nodeName赋值为解析得到的标签内容,否则不做处理;若是遇到节点结束段时,节点类型nodeType赋值为END,节点名称nodeName赋值为解析得到的标签名称;
4)把新建并已赋好值的NodeStruct对象添加到表单容器List中;
5)判断XML数据是否读取完毕,如果判断到了XML结束文档处,执行第6个步骤,否则返回到第1个步骤,继续读取XML数据;
6)读取表单容器List中的内容并绘制表单,表单上的字段名称以及表单上字段内容的类型都存在List容器中的NodeStruct对象的私有属性中,读取出表单的字段名称,然后根据具体的表单样式采用代码的形式动态绘制界面。
3.如权利要求2所述的实现方法,其特征在于每一个外接数据库接口Webservice接口对应一种表单样式。
4.如权利要求2所述的实现方法,其特征在于所述的节点类型分为开始标签、文本标签和结束标签。
5.如权利要求2所述的实现方法,其特征在于所述的XML解析在Android平台上实现,编程语言为java。
CN201310199708.XA 2013-05-24 2013-05-24 一种xml解析方法及医疗病案中自定义xml结构表单实现方法 Expired - Fee Related CN103294796B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310199708.XA CN103294796B (zh) 2013-05-24 2013-05-24 一种xml解析方法及医疗病案中自定义xml结构表单实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310199708.XA CN103294796B (zh) 2013-05-24 2013-05-24 一种xml解析方法及医疗病案中自定义xml结构表单实现方法

Publications (2)

Publication Number Publication Date
CN103294796A CN103294796A (zh) 2013-09-11
CN103294796B true CN103294796B (zh) 2017-03-01

Family

ID=49095658

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310199708.XA Expired - Fee Related CN103294796B (zh) 2013-05-24 2013-05-24 一种xml解析方法及医疗病案中自定义xml结构表单实现方法

Country Status (1)

Country Link
CN (1) CN103294796B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577197A (zh) * 2013-11-18 2014-02-12 深圳市远行科技有限公司 一种安卓应用程序动态表单的实现方法
CN104008202A (zh) * 2014-06-13 2014-08-27 沈阳飞机工业(集团)有限公司 一种基于xml文档的检测数据显示方法
CN105302789B (zh) * 2015-12-03 2018-06-26 万达信息股份有限公司 一种卫生信息共享文档模板缓冲存储的编辑方法
CN107515846B (zh) * 2016-06-15 2019-11-15 福建福昕软件开发股份有限公司 一种Office文档转化及修改过程中的跟踪方法
CN106373047A (zh) * 2016-09-08 2017-02-01 点击律(上海)网络科技有限公司 一种生成合同条款的方法和系统
CN106445901B (zh) * 2016-09-28 2019-09-27 医渡云(北京)技术有限公司 病例报告表设计方法及装置
CN107357913A (zh) * 2017-07-19 2017-11-17 微鲸科技有限公司 多终端协同的表单填写方法及用于实现其的终端
CN107491494A (zh) * 2017-07-24 2017-12-19 广东省环境监测中心 一种应用于土壤环境监测系统的字段存储方法及系统
CN108959221A (zh) * 2018-06-04 2018-12-07 广州环通信息技术有限公司 一种基于开源的电子表格导出库的电子表格导出方法及系统
CN109359281A (zh) * 2018-09-25 2019-02-19 天津字节跳动科技有限公司 动态表单生成方法及装置
CN109948120B (zh) * 2019-04-02 2023-03-14 深圳市前海欢雀科技有限公司 一种基于二元化的简历解析方法
CN110993120A (zh) * 2019-12-03 2020-04-10 中国医学科学院北京协和医院 基于互联网的罕见病医疗数据集成系统
CN111949005B (zh) * 2020-07-30 2021-10-22 深圳市元征科技股份有限公司 冻结帧数据获取方法、装置、设备及存储介质
CN112445491A (zh) * 2020-11-19 2021-03-05 深圳市元征科技股份有限公司 文件序列处理方法、装置、终端设备及存储介质
CN117275651A (zh) * 2023-09-01 2023-12-22 北京华益精点生物技术有限公司 医疗报告生成方法、装置及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012895A (zh) * 2010-08-19 2011-04-13 上海酷吧信息技术有限公司 一种解析数据的方法
CN102368287A (zh) * 2011-11-04 2012-03-07 哈尔滨工程大学 基于Android平台的远程医疗系统中医学数据的处理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012895A (zh) * 2010-08-19 2011-04-13 上海酷吧信息技术有限公司 一种解析数据的方法
CN102368287A (zh) * 2011-11-04 2012-03-07 哈尔滨工程大学 基于Android平台的远程医疗系统中医学数据的处理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Design and Implementation of Electronic Medical Record Template Based on XML Schema;Haijun Yang;《Software Engineering (WCSE), 2010 Second World Congress on》;20101231;第225-228页 *
基于XML的医院信息系统中门诊电子病历术语结构的设计初探;王婷等;《2011 2nd International Conference on Management Science and Engineering》;20111231;第410-413页 *

Also Published As

Publication number Publication date
CN103294796A (zh) 2013-09-11

Similar Documents

Publication Publication Date Title
CN103294796B (zh) 一种xml解析方法及医疗病案中自定义xml结构表单实现方法
CN106528129B (zh) 一种Web应用界面生成系统及方法
Sevilla Ruiz et al. Inferring versioned schemas from NoSQL databases and its applications
US7373596B2 (en) Precise UML modeling framework of the DICOM information model
CN101571863B (zh) 用于可变模式的xml文档的xml查询方法和系统
Hucka et al. The Systems Biology Markup Language (SBML): language specification for level 3 version 1 core
US8701087B2 (en) System and method of annotating class models
CN101086785A (zh) 支持可视化编辑的多模态临床指南知识管理系统
Schauerhuber et al. Bridging existing Web modeling languages to model-driven engineering: a metamodel for WebML
CN102609506B (zh) 一种通过映射生成hl7消息的方法
CN102043622A (zh) 一种电子控制器基础软件通用配置器
CN103020112A (zh) 异构数据库同步系统和异构数据库同步方法
CN102937998A (zh) 一种应用于标识识别的元数据映射方法
WO2015031610A1 (en) Method and apparatus for generating health quality metrics
CN103793464A (zh) 一种基于中立格式的报表导出方法
CN105630489B (zh) 数据处理方法和数据处理装置
CN113094039A (zh) 一种基于数据库表的代码自动生成系统
Malki et al. Building Semantic Mashup.
CN101847142A (zh) 基于数据表模型封装的网页开发方法
Oemig HL7 version 2. x goes FHIR
Zou et al. Towards a portable XML-based source code representation
Barth et al. Efficient use of data exchange formats in engineering projects by means of language integrated queries—Engineers LINQ to XML
US7305667B1 (en) Call back structures for user defined DOMs
Bernauer et al. Representing xml schema in uml-an uml profile for xml schema
Bräuer et al. Model-level integration of the OCL standard library using a pivot model with generics support

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170301

Termination date: 20210524

CF01 Termination of patent right due to non-payment of annual fee