CN113806592A - 电子病历显示化数据的处理方法 - Google Patents

电子病历显示化数据的处理方法 Download PDF

Info

Publication number
CN113806592A
CN113806592A CN202111073499.5A CN202111073499A CN113806592A CN 113806592 A CN113806592 A CN 113806592A CN 202111073499 A CN202111073499 A CN 202111073499A CN 113806592 A CN113806592 A CN 113806592A
Authority
CN
China
Prior art keywords
analysis
variable
text
data
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.)
Granted
Application number
CN202111073499.5A
Other languages
English (en)
Other versions
CN113806592B (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.)
Beijing Tianjian Source Technology Co ltd
Original Assignee
Beijing Tianjian Source 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 Beijing Tianjian Source Technology Co ltd filed Critical Beijing Tianjian Source Technology Co ltd
Priority to CN202111073499.5A priority Critical patent/CN113806592B/zh
Publication of CN113806592A publication Critical patent/CN113806592A/zh
Application granted granted Critical
Publication of CN113806592B publication Critical patent/CN113806592B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying
    • G06F16/838Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/221Parsing markup language streams
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H10/00ICT specially adapted for the handling or processing of patient-related medical or healthcare data
    • G16H10/60ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Epidemiology (AREA)
  • Medical Informatics (AREA)
  • Primary Health Care (AREA)
  • Public Health (AREA)
  • Document Processing Apparatus (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本发明实施例涉及一种电子病历显示化数据的处理方法,所述方法包括:获取第一电子病历格式化数据;对第一行格式化数据进行显示化数据的常量/替换变量类型解析处理,得到多个第一解析数据组;若第一行格式化数据的所有第一解析数据组的第一数据类型只包含常量类型和/或单次替换变量类型,则根据所有第一解析数据组,进行第一单行文本显示处理;若第一行格式化数据的所有第一解析数据组的第一数据类型中包含循环替换变量类型,则根据所有第一解析数据组,进行第一多行文本显示处理。通过本发明提供的所见即所得的脚本格式与脚本解析机制,可以降低处理电子病历的工作人员脚本编写难度、提高工作效率。

Description

电子病历显示化数据的处理方法
技术领域
本发明涉及数据信息处理技术领域,特别涉及一种电子病历显示化数据的处理方法。
背景技术
电子病历是记录患者状态信息,历史医疗信息以及就诊、住院、护理等过程信息文件。电子病历文件中有许多数据需要按一定显示格式进行显示,诸如诊断,检查,检验等数据。实现这些数据的显示方法有多种,目前常见的是以可扩展标记语言(ExtensibleMarkup Language,XML)为基础,通过编写XML脚本来定义电子病历中的各个显示数据的格式化对象(这里称之为显示化数据),再辅以解析器编程实现对XML脚本文件的显示化数据的解析和显示处理。由公知的XML语言和编写方式我们可知,它不可能在编写阶段或者说从脚本文本本身给出直观的可视化效果。工作人员需要很熟练才能快速定义好各个格式化对象,而且修改起来也很不方便。
发明内容
本发明的目的,就是针对现有技术的缺陷,提供一种电子病历显示化数据的处理方法,给出一种带有直观效果的显示化数据脚本格式及对应的显示化数据解析与显示处理机制。通过本发明提供的脚本格式与脚本解析机制,工作人员可不必编写大量的XML脚本语句,还可以在脚本上直接进行可视化效果设置及动态显示内容设置,从而达到降低脚本编写难度、提高工作效率的目的。
为实现上述目的,本发明实施例提供了一种电子病历显示化数据的处理方法,所述方法包括:
获取第一电子病历格式化数据;所述第一电子病历格式化数据包括多个第一行格式化数据;所述第一行格式化数据由用于文本显示的显示化数据组成;
对所述第一行格式化数据进行显示化数据的常量/替换变量类型解析处理,得到多个第一解析数据组;所述第一解析数据组至少包括第一数据类型;所述第一数据类型包括常量类型、单次替换变量类型和循环替换变量类型;
若所述第一行格式化数据的所有所述第一解析数据组的所述第一数据类型只包含常量类型和/或单次替换变量类型,则根据所有所述第一解析数据组,进行第一单行文本显示处理;
若所述第一行格式化数据的所有所述第一解析数据组的所述第一数据类型中包含循环替换变量类型,则根据所有所述第一解析数据组,进行第一多行文本显示处理。
优选的,所述第一数据类型为常量类型时,所述第一解析数据组具体包括所述第一数据类型、第一解析起始位置、第一解析结束位置和第一解析文本;
所述第一数据类型为单次替换变量类型或循环替换变量类型时,所述第一解析数据组具体包括所述第一数据类型、所述第一解析起始位置、所述第一解析结束位置、第一替换变量名、第一替换变量属性、第一替换变量对齐类型和第一替换变量示例文本;所述第一替换变量对齐类型包括左对齐、右对齐和中间对齐。
优选的,所述对所述第一行格式化数据进行显示化数据的常量/替换变量类型解析处理,得到多个第一解析数据组,具体包括:
在所述第一行格式化数据中,将满足预设的变量定义规则的子字符串标记为第一变量子字符串;
若所述第一变量子字符串的数量不为空,则在所述第一行格式化数据中会得到多个由所述第一变量子字符串隔断的子数据区域;并在各个所述子数据区域中,将满足预设的常量定义规则的子字符串标记为第一常量子字符串;
若所述第一变量子字符串的数量为空,则直接将所述第一行格式化数据标记为所述第一常量子字符串;
对各个所述第一常量子字符串进行常量类型解析数据组转换,生成所述第一数据类型为常量类型的所述第一解析数据组;
对各个所述第一变量子字符串进行变量类型解析数据组转换,生成所述第一数据类型为单次替换变量类型或循环替换变量类型的所述第一解析数据组。
进一步的,所述对各个所述第一常量子字符串进行常量类型解析数据组转换,生成所述第一数据类型为常量类型的所述第一解析数据组,具体包括:
对各个所述第一常量子字符串进行轮询,并将当前被轮询的所述第一常量子字符串记为当前第一常量子字符串;
在所述第一行格式化数据中,对所述当前第一常量子字符串之后的下一个标记子字符串进行识别,若所述下一个标记子字符串为另一个所述第一变量子字符串或另一个所述第一常量子字符串,则将所述下一个标记子字符串的起始字符在所述第一行格式化数据中的字符位置减1,作为对应的第一结束位置;若所述下一个标记子字符串为空,则将预设的行结束符,作为所述第一结束位置;
设置所述第一数据类型为常量类型;
设置所述第一解析起始位置为所述当前第一常量子字符串的首字符在所述第一行格式化数据的字符位置;
设置所述第一解析结束位置为所述第一结束位置;
对所述当前第一常量子字符串进行转义符过滤处理,生成第二常量子字符串;并设置所述第一解析文本为所述第二常量子字符串;
由本次设置的所述第一数据类型、所述第一解析起始位置、所述第一解析结束位置和所述第一解析文本构成与所述当前第一常量子字符串对应的所述第一解析数据组。
进一步的,所述对各个所述第一变量子字符串进行变量类型解析数据组转换,生成所述第一数据类型为单次替换变量类型或循环替换变量类型的所述第一解析数据组,具体包括:
对各个所述第一变量子字符串进行轮询,并将当前被轮询的所述第一变量子字符串记为当前第一变量子字符串;
在所述第一行格式化数据中,对所述当前第一变量子字符串之后的下一个标记子字符串进行识别,若所述下一个标记子字符串为另一个所述第一变量子字符串或所述第一常量子字符串,则将所述下一个标记子字符串的起始字符在所述第一行格式化数据中的字符位置减1,作为对应的第二结束位置;若所述下一个标记子字符串为空,则将预设的行结束符,作为所述第二结束位置;
提取所述当前第一变量子字符串的变量定义符,生成第一变量定义符;若所述第一变量定义符与预设的单次替换变量定义符匹配,则设置所述第一数据类型为单次替换变量类型;若所述第一变量定义符与预设的循环替换变量定义符匹配,则设置所述第一数据类型为循环替换变量类型;
设置所述第一解析起始位置为所述当前第一变量子字符串的首字符在所述第一行格式化数据的字符位置;
设置所述第一解析结束位置为所述第二结束位置;
设置所述第一替换变量名为所述当前第一变量子字符串中除所述第一变量定义符之外的字符串;
查询预设的第一变量列表,将表中第一变量名参数与所述第一替换变量名匹配的第一变量信息,记为对应的第一匹配变量信息;所述第一变量列表包括多个所述第一变量信息;所述第一变量信息包括所述第一变量名参数、第一变量属性参数、第一变量对齐参数和第一示例参数;
当所述第一匹配变量信息不为空时,设置所述第一替换变量属性为所述第一匹配变量信息的所述第一变量属性参数;设置所述第一替换变量对齐类型为所述第一匹配变量信息的所述第一变量对齐参数;设置所述第一替换变量示例文本为所述第一匹配变量信息的所述第一示例参数;
当所述第一匹配变量信息为空时,设置所述第一替换变量属性为所述第一替换变量名;设置所述第一替换变量对齐类型为预设的默认对齐类型;设置所述第一替换变量示例文本为预设的第一标准文本;
由本次设置完成的所述第一数据类型、所述第一解析起始位置、所述第一解析结束位置、所述第一替换变量名、所述第一替换变量属性、所述第一替换变量对齐类型和所述第一替换变量示例文本构成与所述当前第一变量子字符串对应的所述第一解析数据组。
优选的,所述若所述第一行格式化数据的所有所述第一解析数据组的所述第一数据类型只包含常量类型和/或单次替换变量类型,则根据所有所述第一解析数据组,进行第一单行文本显示处理,具体包括:
若所述第一行格式化数据的所有所述第一解析数据组的所述第一数据类型只包含常量类型和/或单次替换变量类型,则对所有所述第一解析数据组进行轮询,并将当前被轮询的所述第一解析数据组记为当前第一解析数据组;
若所述当前第一解析数据组的所述第一数据类型为常量类型,则根据所述当前第一解析数据组进行常量显示文本转换处理,生成对应的第一显示文本;
若所述当前第一解析数据组的所述第一数据类型为单次替换变量类型,则根据所述当前第一解析数据组进行单次替换变量显示文本转换处理,生成对应的所述第一显示文本;
按各个所述第一解析数据组的所述第一显示起始位置的先后顺序,将对应的所述第一显示文本进行顺次拼接,生成第一单行文本;并对所述第一单行文本进行显示处理。
优选的,所述若所述第一行格式化数据的所有所述第一解析数据组的所述第一数据类型中包含循环替换变量类型,则根据所有所述第一解析数据组,进行第一多行文本显示处理,具体包括:
步骤71,若所述第一行格式化数据的所有所述第一解析数据组的所述第一数据类型中包含循环替换变量类型,则从所有所述第一解析数据组中,任选一个所述第一数据类型为循环替换变量类型的所述第一解析数据组作为任一循环解析数据组;并统计预设的第一变量属性列表中,第一属性名参数与所述任一循环解析数据组的所述第一替换变量属性匹配的第一变量属性信息的数量,生成对应的第一循环总数;在所述多个第一解析数据组的所述第一数据类型中包含循环替换变量类型时,各个所述第一数据类型为循环替换变量类型的所述第一解析数据组对应的所述第一循环总数应相等;所述第一变量属性列表包括多个所述第一变量属性信息;所述第一变量属性信息包括所述第一属性名参数和第一属性值参数;
步骤72,在所述第一行格式化数据的所有所述第一解析数据组中,对各个所述第一数据类型为循环替换变量类型的所述第一解析数据组进行轮询,并将当前被轮询的所述第一解析数据组记为第一循环解析数据组;查询所述第一变量属性列表,将所述第一属性名参数与所述第一循环解析数据组的所述第一替换变量属性匹配的所述第一变量属性信息均记为对应的第一匹配变量属性信息;并依次提取所述第一匹配变量属性信息的所述第一属性值参数作为对应的第一匹配文本;并由得到的多个所述第一匹配文本组成对应的第一匹配文本序列;所述第一匹配文本序列的所述第一匹配文本的数量应与所述第一循环总数相等;
步骤73,初始化第一循环次数为1;
步骤74,对所述第一行格式化数据的所有所述第一解析数据组进行轮询,并将当前被轮询的所述第一解析数据组记为当前第一解析数据组;若所述当前第一解析数据组的所述第一数据类型为常量类型,则根据所述当前第一解析数据组进行常量显示文本转换处理,生成对应的第一显示文本;若所述当前第一解析数据组的所述第一数据类型为单次替换变量类型,则根据所述当前第一解析数据组进行单次替换变量显示文本转换处理,生成对应的所述第一显示文本;若所述当前第一解析数据组的所述第一数据类型为循环替换变量类型,则根据所述第一循环次数、所述当前第一解析数据组和对应的所述第一匹配文本序列进行循环替换变量显示文本转换处理,生成对应的所述第一显示文本;
步骤75,按各个所述第一解析数据组的所述第一显示起始位置的先后顺序,将对应的所述第一显示文本进行顺次拼接,生成第一单行文本;并对所述第一单行文本进行显示处理;
步骤76,对所述第一循环次数的值加1;并判断加1后的所述第一循环次数是否超过了所述第一循环总数,若未超过所述第一循环总数则转至步骤74,若已超过所述第一循环总数则结束所述第一多行文本显示处理。
进一步的,所述若所述当前第一解析数据组的所述第一数据类型为常量类型,则根据所述当前第一解析数据组进行常量显示文本转换处理,生成对应的第一显示文本,具体包括:
若所述当前第一解析数据组的所述第一数据类型为常量类型,则对所述当前第一解析数据组的所述第一解析结束位置是否为预设的行结束符进行识别;若所述第一解析结束位置不为所述行结束符,则设置第一显示文本长度为所述当前第一解析数据组的所述第一解析结束位置与所述第一解析起始位置的差值再加1;若所述第一解析结束位置为所述行结束符,则设置所述第一显示文本长度为预设的行显示宽度阈值与所述当前第一解析数据组的第一解析起始位置的差值再加1;
若所述第一显示文本长度小于所述第一解析文本的长度,则在所述第一解析文本的尾部进行字符截取直到截取后的所述第一解析文本的长度与所述第一显示文本长度相等为止,再将完成截取的所述第一解析文本作为对应的所述第一显示文本;
若所述第一显示文本长度与所述当前第一解析数据组的所述第一解析文本的长度相等,则将所述第一解析文本作为对应的所述第一显示文本;
若所述第一显示文本长度大于所述第一解析文本的长度,则使用预设的补位字符在所述第一解析文本的尾部进行补位直到补位后的所述第一解析文本的长度与所述第一显示文本长度相等为止,再将完成补位的所述第一解析文本作为对应的所述第一显示文本。
进一步的,所述若所述当前第一解析数据组的所述第一数据类型为单次替换变量类型,则根据所述当前第一解析数据组进行单次替换变量显示文本转换处理,生成对应的所述第一显示文本,具体包括:
若所述当前第一解析数据组的所述第一数据类型为单次替换变量类型,则对预设的显示模式进行识别;若所述显示模式为预览模式且所述当前第一解析数据组的所述第一替换变量示例文本不为空,则将所述第一替换变量示例文本作为对应的第二解析文本;若所述显示模式不为预览模式或所述第一替换变量示例文本为空,则从预设的第一变量属性列表中,提取第一属性名参数与所述当前第一解析数据组的所述第一替换变量属性匹配的第一变量属性信息的第一属性值参数,作为所述第二解析文本;所述第一变量属性列表包括多个所述第一变量属性信息;所述第一变量属性信息包括所述第一属性名参数和所述第一属性值参数;
对所述当前第一解析数据组的所述第一解析结束位置是否为预设的行结束符进行识别;若所述第一解析结束位置不为所述行结束符,则设置第二显示文本长度为所述当前第一解析数据组的所述第一解析结束位置与所述第一解析起始位置的差值再加1;若所述第一解析结束位置为所述行结束符,则设置所述第二显示文本长度为预设的行显示宽度阈值与所述当前第一解析数据组的第一解析起始位置的差值再加1;
若所述第二显示文本长度小于所述第二解析文本的长度,则在所述第二解析文本的尾部进行字符截取直到截取后的所述第二解析文本的长度与所述第二显示文本长度相等为止,再将完成截取的所述第二解析文本作为对应的所述第一显示文本;
若所述第二显示文本长度与所述第二解析文本的长度相等,则将所述第二解析文本作为对应的所述第一显示文本;
若所述第二显示文本长度大于所述第二解析文本的长度,则对所述当前第一解析数据组的所述第一替换变量对齐类型进行识别;若所述第一替换变量对齐类型为左对齐,则使用预设的补位字符在所述第二解析文本的尾部进行补位直到补位后的所述第二解析文本的长度与所述第二显示文本长度相等为止,再将完成补位的所述第二解析文本作为对应的所述第一显示文本;若所述第一替换变量对齐类型为右对齐,则使用预设的补位字符在所述第二解析文本的头部进行补位直到补位后的所述第二解析文本的长度与所述第二显示文本长度相等为止,再将完成补位的所述第二解析文本作为对应的所述第一显示文本;若所述第一替换变量对齐类型为中间对齐,则根据所述当前第一解析数据组的所述第一解析起始位置和所述第二显示文本长度进行中间字符位置计算,得到第一当前中间字符位置,并使用预设的补位字符在所述第二解析文本的头部和/或尾部进行补位,直到补位后的所述第二解析文本的长度与所述第二显示文本长度相等且补位后的所述第二解析文本的中心字符位置与所述第一当前中间字符位置匹配为止,再将完成补位的所述第二解析文本作为对应的所述第一显示文本。
进一步的,所述若所述当前第一解析数据组的所述第一数据类型为循环替换变量类型,则根据所述第一循环次数、所述当前第一解析数据组和对应的所述第一匹配文本序列进行循环替换变量显示文本转换处理,生成对应的所述第一显示文本,具体包括:
若所述当前第一解析数据组的所述第一数据类型为循环替换变量类型,则对预设的显示模式进行识别;若所述显示模式为预览模式且所述当前第一解析数据组的所述第一替换变量示例文本不为空,则将所述第一替换变量示例文本作为对应的第三解析文本;若所述显示模式不为预览模式或所述第一替换变量示例文本为空,则从对应的所述第一匹配文本序列中,提取匹配文本索引与所述第一循环次数匹配的所述第一匹配文本作为所述第三解析文本;
对所述当前第一解析数据组的所述第一解析结束位置是否为预设的行结束符进行识别;若所述第一解析结束位置不为所述行结束符,则设置第三显示文本长度为所述当前第一解析数据组的所述第一解析结束位置与所述第一解析起始位置的差值再加1;若所述第一解析结束位置为所述行结束符,则设置所述第三显示文本长度为预设的行显示宽度阈值与所述当前第一解析数据组的第一解析起始位置的差值再加1;
若所述第三显示文本长度小于所述第三解析文本的长度,则在所述第三解析文本的尾部进行字符截取直到截取后的所述第三解析文本的长度与所述第三显示文本长度相等为止,再将完成截取的所述第三解析文本作为对应的所述第一显示文本;
若所述第三显示文本长度与所述第三解析文本的长度相等,则将所述第三解析文本作为对应的所述第一显示文本;
若所述第三显示文本长度大于所述第三解析文本的长度,则对所述当前第一解析数据组的所述第一替换变量对齐类型进行识别;若所述第一替换变量对齐类型为左对齐,则使用预设的补位字符在所述第三解析文本的尾部进行补位直到补位后的所述第三解析文本的长度与所述第三显示文本长度相等为止,再将完成补位的所述第三解析文本作为对应的所述第一显示文本;若所述第一替换变量对齐类型为右对齐,则使用预设的补位字符在所述第三解析文本的头部进行补位直到补位后的所述第三解析文本的长度与所述第三显示文本长度相等为止,再将完成补位的所述第三解析文本作为对应的所述第一显示文本;若所述第一替换变量对齐类型为中间对齐,则根据所述当前第一解析数据组的所述第一解析起始位置和所述第三显示文本长度进行中间字符位置计算,得到第二当前中间字符位置,并使用预设的补位字符在所述第三解析文本的头部和/或尾部进行补位,直到补位后的所述第三解析文本的长度与所述第三显示文本长度相等且补位后的所述第三解析文本的中心字符位置与所述第二当前中间字符位置匹配为止,再将完成补位的所述第三解析文本作为对应的所述第一显示文本。
本发明实施例提供的一种电子病历显示化数据的处理方法,给出了一种带有可视化效果的显示化数据脚本格式及对应的显示化数据解析与显示处理机制。通过本发明提供的所见即所得的脚本格式与脚本解析机制,工作人员不但无需编写大量的XML脚本语句,还可以在脚本上直接进行可视化效果设置及动态显示内容设置,从而降低了脚本编写难度、提高了工作效率。
附图说明
图1为本发明实施例提供的一种电子病历显示化数据的处理方法示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供的一种电子病历显示化数据的处理方法,如图1为本发明实施例提供的一种电子病历显示化数据的处理方法示意图所示,本方法主要包括如下步骤:
步骤1,获取第一电子病历格式化数据;
其中,第一电子病历格式化数据包括多个第一行格式化数据;第一行格式化数据由用于文本显示的显示化数据组成。
这里,第一电子病历格式化数据即是带有显示数据的格式化对象(也就是显示化数据)的脚本文件,本发明实施例对该脚本文件的解析顺序是逐行解析和显示,也就是依次对各个第一行格式化数据进行解析和显示;每个第一行格式化数据的文本内容,可以为全为固定文本字符的显示化数据(常用来设置固化的显示效果),也可以为带有替换变量定义符(替换变量起始符/结束符)的显示化数据(常用来设置动态的显示内容)。
例如,第一电子病历格式化数据中包含两行信息,如下所示:
药品名称 规格 剂量 单位
@DN@ @SP@ @SL@ @U@
第1第一行格式化数据为“药品名称 规格 剂量 单位”,
第2第一行格式化数据为“@DN@ @SP@ @SL@ @U@”,
其中,第1行的第一行格式化数据中全为固定文本字符的显示化数据,那么在处理显示时直接对该字符串进行显示;第2行的第一行格式化数据中包括了4个带有循环替换变量起始符/结束符“@@”的显示化数据,那么在处理显示时会在起始符所在的字符位置显示对应替换变量的内容从而达到动态内容显示的目的。
由上述示例可以看出,第一电子病历格式化数据中的脚本是一种所见即所得的脚本格式,工作人员无需对数据对象进行繁琐的脚本编写,可在脚本中直接输入字符定义排版结构,还可以在自己给出的排版结构上进行变量标注。后续步骤2-4会对如何解析和显示第一行格式化数据进行详细阐述。
步骤2,对第一行格式化数据进行显示化数据的常量/替换变量类型解析处理,得到多个第一解析数据组;
这里,本发明实施例在对第一行格式化数据进行显示化数据解析处理时,会将行文本中与替换变量(单体替换变量或循环替换变量)和常量相关的子字符串进行分别提取生成对应的第一变量/常量子字符串,并为每个第一变量/常量子字符串创建一个对应的特征数据集合也就是第一解析数据组;
其中,第一解析数据组至少包括第一数据类型;第一数据类型包括常量类型、单次替换变量类型和循环替换变量类型;当第一数据类型为常量类型时,第一解析数据组具体包括第一数据类型、第一解析起始位置、第一解析结束位置和第一解析文本;当第一数据类型为单次替换变量类型或循环替换变量类型时,第一解析数据组具体包括第一数据类型、第一解析起始位置、第一解析结束位置、第一替换变量名、第一替换变量属性、第一替换变量对齐类型和第一替换变量示例文本;第一替换变量对齐类型包括左对齐、右对齐和中间对齐;
具体包括:步骤21,在第一行格式化数据中,将满足预设的变量定义规则的子字符串标记为第一变量子字符串;
这里,本发明实施例预设的变量定义规则至少包括两种替换变量的认定规则:单次替换变量认定规则和循环替换变量认定规则;单次替换变量认定规则以预设的单次替换变量定义符(单次替换变量起始符/结束符)为认定基础;循环替换变量认定规则以预设的循环替换变量定义符(循环替换变量起始符/结束符)为认定基础;另外,本发明实施例的脚本中还支持转义符的使用与解析,常规情况下转义符可使用“\”来表示,也可使用其他约定字符作为转义符,在转义符后的字符不被纳入变量定义规则的识别范畴;
例如,单次替换变量定义符的单次替换变量起始符/结束符分别为“@”和“$”,循环替换变量定义符的循环替换变量起始符/结束符分别为“@”和“@”,第一行格式化数据为“@DN$第一医院@SP@@SL@@U@”,那么对应的第一变量子字符串有“@DN$”、“@SP@”、“@SL@”和“@U@”;
又例如,第一行格式化数据为“药品名称规格剂量单位”,那么对应的第一变量子字符串的数量为空;
又例如,第一行格式化数据为“@DN$\@第一医院\@@SP@@SL@@U@”,因为使用了转义符“\”,所以“@第一医院\@””不会被误认为是变量字符串,得到的第一变量子字符串仍旧只包括“@DN$”、“@SP@”、“@SL@”和“@U@”;
步骤22,若第一变量子字符串的数量不为空,则在第一行格式化数据中会得到多个由第一变量子字符串隔断的子数据区域;并在各个子数据区域中,将满足预设的常量定义规则的子字符串标记为第一常量子字符串;
这里,本发明实施例预设的常量定义规则为去除对应子数据区域的首尾冗余空格后的剩余字符串若不为空,则将剩余字符串作为对应的第一常量子字符串;
例如,第一行格式化数据为“@DN$第一医院@SP@@SL@@U@”,第一变量子字符串有“@DN$”、“@SP@”、“@SL@”和“@U@”,那么被这4个第一变量子字符串隔出来的区域分别为字符串“@DN$”和“@SP@”之间的带有前后空格的字符串“第一医院”(记为第一子数据区域),字符串“@SP@”和“@SL@”的空格字符“”(记为第二子数据区域),字符串“@SL@”和“@U@”的空格字符“”(记为第三子数据区域);
对第一、二、三子数据区域的字符串分别进行去除首尾冗余空格处理,得到的第一子数据区域的剩余字符串为“第一医院”,得到的第二、三子数据区域的剩余字符串均为空;那么,最终,从第一行格式化数据中,只解析出1个第一常量子字符串即“第一医院”;
又例如,第一行格式化数据为“@DN$\@第一医院\@@SP@@SL@@U@”,第一变量子字符串有“@DN$”、“@SP@”、“@SL@”和“@U@”,那么被这4个第一变量子字符串隔出来的区域分别为字符串“@DN$”和“@SP@”之间的带有前后空格的字符串“\@第一医院\@”(记为第一子数据区域),字符串“@SP@”和“@SL@”的空格字符“”(记为第二子数据区域),字符串“@SL@”和“@U@”的空格字符“”(记为第三子数据区域);
对第一、二、三子数据区域的字符串分别进行去除首尾冗余空格处理,得到的第一子数据区域的剩余字符串为带有转义字符的“\@第一医院\@”,得到的第二、三子数据区域的剩余字符串均为空;那么,最终,从第一行格式化数据中,只解析出1个第一常量子字符串即带有转义字符的“\@第一医院\@”;
步骤23,若第一变量子字符串的数量为空,则直接将第一行格式化数据标记为第一常量子字符串;
这里,第一变量子字符串的数量为空说明当前第一行格式化数据是一个全为固定文本字符的显示化数据,所以可将该行格式化数据直接作为一个完整的第一常量子字符串;
例如,第一行格式化数据为“药品名称规格剂量单位”,那么对应的第一变量子字符串的数量为空,那么最终得到1个第一常量子字符串为“药品名称规格剂量单位”;
步骤24,对各个第一常量子字符串进行常量类型解析数据组转换,生成第一数据类型为常量类型的第一解析数据组;
这里,为每个第一常量子字符串创建一个对应的特征数据集合也就是第一解析数据组;
具体包括:步骤241,对各个第一常量子字符串进行轮询,并将当前被轮询的第一常量子字符串记为当前第一常量子字符串;
例如,第一行格式化数据为“@DN$\@第一医院\@@SP@第二医院”,那么可以得到2个第一常量子字符串:带有转义字符的“\@第一医院\@”和“第二医院”;对这2个第一常量子字符串进行轮询,则当前第一常量子字符串依次为第1个第一常量子字符串“\@第一医院\@”和第2个第一常量子字符串“第二医院”;
步骤242,在第一行格式化数据中,对当前第一常量子字符串之后的下一个标记子字符串进行识别,若下一个标记子字符串为另一个第一变量子字符串或另一个第一常量子字符串,则将下一个标记子字符串的起始字符在第一行格式化数据中的字符位置减1,作为对应的第一结束位置;若下一个标记子字符串为空,则将预设的行结束符,作为第一结束位置;
例如,在当前第一常量子字符串为第1个第一常量子字符串“\@第一医院\@”时,当前第一常量子字符串之后的下一个标记子字符串为第2个第一变量子字符串“@SP@”,第2个第一变量子字符串“@SP@”的起始字符“@”在第一行格式化数据中的字符位置为15,那么当前第一常量子字符串对应的第一结束位置=15-1=14,实际也就是下一个标记子字符串的前一个字符位置;
在当前第一常量子字符串为第2个第一常量子字符串“第二医院”时,当前第一常量子字符串之后的下一个标记子字符串不存在,若预设的行结束符为EOL(end of line)数据,那么当前第一常量子字符串对应的第一结束位置为EOL数据;
步骤243,设置第一数据类型为常量类型;设置第一解析起始位置为当前第一常量子字符串的首字符在第一行格式化数据的字符位置;设置第一解析结束位置为第一结束位置;
这里,因为当前子字符串为常量子字符串,自然对应的第一数据类型应为常量类型;第一解析起始位置实际就是当前第一常量子字符串的首字符在第一行格式化数据中字符位置;第一解析结束位置则是由步骤242约定的第一结束位置;
例如,在当前第一常量子字符串为第1个第一常量子字符串“\@第一医院\@”时,对应的第一数据类型为常量类型,对应的第一解析起始位置为首字符“\”在第一行格式化数据中字符位置6,对应的第一解析结束位置为14;
在当前第一常量子字符串为第2个第一常量子字符串“第二医院”时,对应的第一数据类型为常量类型,对应的第一解析起始位置为首字符“第”在第一行格式化数据中字符位置20,对应的第一解析结束位置为EOL数据;
步骤244,对当前第一常量子字符串进行转义符过滤处理,生成第二常量子字符串;并设置第一解析文本为第二常量子字符串;
这里,若当前第一常量子字符串中包含了转义符则通过从当前第一常量子字符串中删除转义符来实现转义符过滤处理,若当前第一常量子字符串中未包含转义符则通过设置第二常量子字符串为第一常量子字符串来实现转义符过滤处理;
例如,在当前第一常量子字符串为第1个第一常量子字符串“\@第一医院\@”时,字符串中包含了两处转义符“\”则通过删除转义符实现转义符过滤处理操作,得到的第二常量子字符串为“@第一医院@”,对应的第一解析文本也为“@第一医院@”;
在当前第一常量子字符串为第2个第一常量子字符串“第二医院”时,字符串中不包含转义符则通过设置第二常量子字符串为第一常量子字符串来实现转义符过滤处理,得到的第二常量子字符串为“第二医院”,对应的第一解析文本也为“第二医院”;
步骤245,由本次设置的第一数据类型、第一解析起始位置、第一解析结束位置和第一解析文本构成与当前第一常量子字符串对应的第一解析数据组;
例如,在当前第一常量子字符串为第1个第一常量子字符串“\@第一医院\@”时,对应的第1个第一解析数据组为:第一数据类型=常量类型,第一解析起始位置=6,第一解析结束位置=14,第一解析文本=“@第一医院@”;
在当前第一常量子字符串为第2个第一常量子字符串“第二医院”时,对应的第2个第一解析数据组为:第一数据类型=常量类型,第一解析起始位置=20,第一解析结束位置=EOL数据,第一解析文本=“第二医院”;
步骤25,对各个第一变量子字符串进行变量类型解析数据组转换,生成第一数据类型为单次替换变量类型或循环替换变量类型的第一解析数据组;
这里,为每个第一变量常量子字符串创建一个对应的特征数据集合也就是第一解析数据组;
具体包括:步骤251,对各个第一变量子字符串进行轮询,并将当前被轮询的第一变量子字符串记为当前第一变量子字符串;
例如,第一行格式化数据为“@DN$第一医院@SP@”,那么可以得到个第一变量子字符串:“@DN$”和“@SP@”;对这2个第一变量子字符串进行轮询,则当前第一变量子字符串依次为第1个第一变量子字符串“@DN$”和第2个第一变量子字符串“@SP@”;
步骤252,在第一行格式化数据中,对当前第一变量子字符串之后的下一个标记子字符串进行识别,若下一个标记子字符串为另一个第一变量子字符串或第一常量子字符串,则将下一个标记子字符串的起始字符在第一行格式化数据中的字符位置减1,作为对应的第二结束位置;若下一个标记子字符串为空,则将预设的行结束符,作为第二结束位置;
例如,在当前第一变量子字符串为第1个第一变量子字符串“@DN$”时,当前第一变量子字符串之后的下一个标记子字符串为第1个第一常量子字符串“第一医院”,第1个第一常量子字符串“第一医院”的起始字符“第”在第一行格式化数据中的字符位置为6,那么当前第一变量子字符串对应的第二结束位置=6-1=5,实际也就是下一个标记子字符串的前一个字符位置;
在当前第一变量子字符串为第2个第一变量子字符串“@SP@”时,当前第一变量子字符串之后的下一个标记子字符串不存在,若预设的行结束符为EOL数据,那么当前第一变量子字符串对应的第二结束位置为EOL数据;
步骤253,提取当前第一变量子字符串的变量定义符,生成第一变量定义符;若第一变量定义符与预设的单次替换变量定义符匹配,则设置第一数据类型为单次替换变量类型;若第一变量定义符与预设的循环替换变量定义符匹配,则设置第一数据类型为循环替换变量类型;
这里,在提取当前第一变量子字符串的变量定义符,生成第一变量定义符时,通过提取当前第一变量子字符串首尾不为空格的字符组成第一变量定义符;第一变量定义符实际由替换变量定义起始符和结束符组成;
例如,单次替换变量定义符的单次替换变量起始符/结束符分别为“@”和“$”,也即是预设的单次替换变量定义符为“@$”,循环替换变量定义符的循环替换变量起始符/结束符分别为“@”和“@”,也即是预设的循环替换变量定义符为“@@”;
在当前第一变量子字符串为第1个第一变量子字符串“@DN$”时,第一变量定义符为“@$”(替换变量起始符/结束符分别为“@”和“$”),与预设的单次替换变量定义符匹配,则对应的第一数据类型设为单次替换变量类型;
在当前第一变量子字符串为第2个第一变量子字符串“@SP@”时,第一变量定义符为“@@”(替换变量起始符/结束符分别为“@”和“@”),与预设的循环替换变量定义符匹配,则对应的第一数据类型设为循环替换变量类型;
步骤254,设置第一解析起始位置为当前第一变量子字符串的首字符在第一行格式化数据的字符位置;设置第一解析结束位置为第二结束位置;设置第一替换变量名为当前第一变量子字符串中除第一变量定义符之外的字符串;
例如,在当前第一变量子字符串为第1个第一常量子字符串“@DN$”时,对应的第一解析起始位置为首字符“@”在第一行格式化数据“@DN$第一医院@SP@”中的字符位置1,对应的第一解析结束位置为5,对应的第一替换变量名为当前第一变量子字符串中除第一变量定义符“@$”(替换变量起始符/结束符分别为“@”和“$”)之外的字符串也就是“DN”;
在当前第一变量子字符串为第2个第一常量子字符串“@SP@”时,对应的第一解析起始位置为首字符“@”在第一行格式化数据“@DN$第一医院@SP@”中的字符位置11,对应的第一解析结束位置为EOL数据,对应的第一替换变量名为当前第一变量子字符串中除第一变量定义符“@@”(替换变量起始符/结束符分别为“@”和“@”)之外的字符串也就是“SP”;
步骤255,查询预设的第一变量列表,将表中第一变量名参数与第一替换变量名匹配的第一变量信息,记为对应的第一匹配变量信息;
其中,第一变量列表包括多个第一变量信息;第一变量信息包括第一变量名参数、第一变量属性参数、第一变量对齐参数和第一示例参数;
这里,第一变量列表为预先设定的与第一电子病历格式化数据中各变量有关的变量列表,该列表可通过在第一电子病历格式化数据的脚本起始位置按约定格式进行配置说明,也可另行建表并在第一电子病历格式化数据的脚本起始位置按约定引用关系进行引用说明;每个第一变量信息对应一个变量;第一变量名参数为该变量的名称,与脚本中的变量设置信息对齐;第一变量属性参数为该变量的属性名,可以通过修改属性名来修改脚本中设定的变量的取值对象;第一变量对齐参数为该变量内容在显示时的文字对齐格式,包括左对齐、右对齐和中间对齐;第一示例参数为在脚本预览模式下对应变量的默认显示内容,若第一示例参数为空,则在脚本预览模式下对应变量的显示内容与第一变量属性参数对应的属性值内容一致;
例如,在第一电子病历格式化数据的脚本起始位置按约定格式进行配置说明,带有第一变量列表的第一电子病历格式化数据脚本如下:
<第一变量列表定义区域>
@DN$:DrugName,Left
@SP$:Specific,Left
@U$:Unit,Left
@T$:Times,Left
@SL$:Doge,Right
@M$:MEMO
<第一行格式化数据定义区域>
Figure BDA0003261257230000201
上述示例中,第一行格式化数据定义区域中第3行第一行格式化数据中配置了6个变量,对应的第一替换变量名分别为“DN”、“SP”、“SL”、“U”、“T”、“M”;
第一变量列表定义区域中给出了第一变量列表的定义,该第一变量列表包括6个第一变量信息,第一变量信息的标准格式为“@第一变量名参数@/$:第一变量属性参数,第一变量对齐参数,第一示例参数”,其中“@...$”表示该变量为单次变量,“@...@”表示该变量为循环变量,第一变量对齐参数、第一示例参数均可为空不做设置,若第一示例参数为空表示预览模式时采用第一变量属性参数对应的属性对象的取值进行显示,第一变量对齐参数为空则默认采用左对齐方式进行显示;
第一变量列表中与6个第一替换变量名“DN”、“SP”、“SL”、“U”、“T”、“M”匹配的第一匹配变量信息分别为“@DN$:DrugName,Left”、“@SP$:Specific,Left”、“@SL$:Doge,Right”、“@U$:Unit,Left”、“@T$:Times,Left”、“@M$:MEMO”;
以与第一替换变量名“DN”匹配的第一匹配变量信息“@DN$:DrugName,Left”为例进行说明:“@...$”为单次替换变量定义符,“DN”为第一变量名参数,“:”为第一变量名参数与其他参数的分隔符,“,”为第一变量属性参数、第一变量对齐参数和第一示例参数三个参数之间的分隔符,“DrugName”为第一变量属性参数也就是属性名,“Left”为第一变量对齐参数也就是左对齐,第一示例参数为空则表示预览模式时采用属性“DrugName”的具体取值进行显示;
以与第一替换变量名“M”匹配的第一匹配变量信息“@M$:MEMO”为例进行说明:“@...$”为带有单次变量定义符,“M”为第一变量名参数,“MEMO”为第一变量属性参数也就是属性名,第一变量对齐参数为空则默认采用左对齐方式进行显示,第一示例参数为空表示预览模式下采用属性“MEMO”的具体取值进行显示;
步骤256,当第一匹配变量信息不为空时,设置第一替换变量属性为第一匹配变量信息的第一变量属性参数;设置第一替换变量对齐类型为第一匹配变量信息的第一变量对齐参数;设置第一替换变量示例文本为第一匹配变量信息的第一示例参数;
这里,第一匹配变量信息不为空意味着在第一变量列表中定义了与当前第一替换变量名对应的第一变量信息,那么就可使用第一变量列表中提取出的第一匹配变量信息的第一变量属性参数、第一变量对齐参数和第一示例参数来对第一解析数据组的第一替换变量属性、第一替换变量对齐类型和第一替换变量示例文本这三个参数进行设置;
步骤257,当第一匹配变量信息为空时,设置第一替换变量属性为第一替换变量名;设置第一替换变量对齐类型为预设的默认对齐类型;设置第一替换变量示例文本为预设的第一标准文本;
这里,第一匹配变量信息为空意味着在第一变量列表中没有定义与当前第一替换变量名对应的第一变量信息,那么本发明实施例会默认将第一解析数据组的第一替换变量属性直接设为第一替换变量名,第一替换变量对齐类型直接设为默认对齐类型也就是左对齐,第一替换变量示例文本直接设为预先设定的第一标准文本,第一标准文本可以为空;
步骤258,由本次设置完成的第一数据类型、第一解析起始位置、第一解析结束位置、第一替换变量名、第一替换变量属性、第一替换变量对齐类型和第一替换变量示例文本构成与当前第一变量子字符串对应的第一解析数据组。
这里,以步骤255的脚本为例,会得到6个第一变量子字符串“@DN$”、“@SP$”、“@SL$”、“@U$”、“@T$”和“@M$”;对应的会产生6个第一解析数据组:
第1个第一解析数据组:第一数据类型为单次替换变量类型,第一解析起始位置为1,第一解析结束位置为17,第一替换变量名为“DN”,第一替换变量属性为“DrugName”,第一替换变量对齐类型为左对齐,第一替换变量示例文本为空;
第2个第一解析数据组:第一数据类型为单次替换变量类型,第一解析起始位置为18,第一解析结束位置为28,第一替换变量名为“SP”,第一替换变量属性为“Specific”,第一替换变量对齐类型为左对齐,第一替换变量示例文本为空;
第3个第一解析数据组:第一数据类型为单次替换变量类型,第一解析起始位置为29,第一解析结束位置为33,第一替换变量名为“SL”,第一替换变量属性为“Doge”,第一替换变量对齐类型为右对齐,第一替换变量示例文本为空;
第4个第一解析数据组:第一数据类型为单次替换变量类型,第一解析起始位置为34,第一解析结束位置为41,第一替换变量名为“U”,第一替换变量属性为“Unit”,第一替换变量对齐类型为左对齐,第一替换变量示例文本为空;
第5个第一解析数据组:第一数据类型为单次替换变量类型,第一解析起始位置为42,第一解析结束位置为51,第一替换变量名为“T”,第一替换变量属性为“Times”,第一替换变量对齐类型为左对齐,第一替换变量示例文本为空;
第6个第一解析数据组:第一数据类型为单次替换变量类型,第一解析起始位置为52,第一解析结束位置为EOL数据,第一替换变量名为“M”,第一替换变量属性为“MEMO”,第一替换变量对齐类型为左对齐,第一替换变量示例文本为空。
步骤3,若第一行格式化数据的所有第一解析数据组的第一数据类型只包含常量类型和/或单次替换变量类型,则根据所有第一解析数据组,进行第一单行文本显示处理;
这里,若第一行格式化数据的所有第一解析数据组的第一数据类型只包含常量类型和/或单次替换变量类型,意味着没有循环变量,不用做循环行显示,只需根据第一行格式化数据中分别为常量类型和/或单次替换变量类型的第一解析数据组进行文本提取、替换和拼接就可得到对应的行显示文本进行显示;
具体包括:步骤31,若第一行格式化数据的所有第一解析数据组的第一数据类型只包含常量类型和/或单次替换变量类型,则对所有第一解析数据组进行轮询,并将当前被轮询的第一解析数据组记为当前第一解析数据组;
例如,带有第一变量列表的第一电子病历格式化数据脚本如下:
<第一变量列表定义区域>
@UI$:User ID,Right
@DN$:DrugName,Left
@SP$:Specific,Left
<第一行格式化数据定义区域>
ID:@UI$
药品名称 规格
@DN@ @SP@
那么,对应第1个第一行格式化数据产生的第一解析数据组有2个,设为第一解析数据组A1-A2;第一解析数据组A1:第一数据类型为常量类型,第一解析起始位置为1,第一解析结束位置为3,第一解析文本为“ID:”;第一解析数据组A2:第一数据类型为单次替换变量类型,第一解析起始位置为4,第一解析结束位置为EOL数据,第一替换变量名为“UI”,第一替换变量属性为“User ID”,第一替换变量对齐类型为右对齐,第一替换变量示例文本为空;
对应第2个第一行格式化数据产生的第一解析数据组只有1个,设为第一解析数据组B:第一数据类型为常量类型,第一解析起始位置为1,第一解析结束位置为EOL数据,第一解析文本为“药品名称规格”;
对应第3个第一行格式化数据产生的第一解析数据组有2个,设为第一解析数据组C1-C2;第一解析数据组C1:第一数据类型为循环替换变量类型,第一解析起始位置为1,第一解析结束位置为8,第一替换变量名为“DN”,第一替换变量属性为“DrugName”,第一替换变量对齐类型为左对齐,第一替换变量示例文本为空;
第一解析数据组C2:第一数据类型为循环替换变量类型,第一解析起始位置为9,第一解析结束位置为EOL数据,第一替换变量名为“SP”,第一替换变量属性为“Specific”,第一替换变量对齐类型为左对齐,第一替换变量示例文本为空;
步骤32,若当前第一解析数据组的第一数据类型为常量类型,则根据当前第一解析数据组进行常量显示文本转换处理,生成对应的第一显示文本;
具体包括:步骤321,若当前第一解析数据组的第一数据类型为常量类型,则对当前第一解析数据组的第一解析结束位置是否为预设的行结束符进行识别;若第一解析结束位置不为行结束符,则设置第一显示文本长度为当前第一解析数据组的第一解析结束位置与第一解析起始位置的差值再加1;若第一解析结束位置为行结束符,则设置第一显示文本长度为预设的行显示宽度阈值与当前第一解析数据组的第一解析起始位置的差值再加1;
这里,行显示宽度阈值可默认设置也可在第一电子病历格式化数据的脚本中首行以变量定义的方式进行设置;
例如,以步骤31的脚本为例,当前第一解析数据组为第一解析数据组A1时,则第一解析数据组A1的第一显示文本长度为3-1+1=3;
当前第一解析数据组为第一解析数据组B时,若行显示宽度阈值预设为16,则第一解析数据组B的第一显示文本长度为16-1+1=16;
步骤322,若第一显示文本长度小于第一解析文本的长度,则在第一解析文本的尾部进行字符截取直到截取后的第一解析文本的长度与第一显示文本长度相等为止,再将完成截取的第一解析文本作为对应的第一显示文本;
这里,一般情况下,若工作人员在脚本中排版时忽略了设置行显示宽度阈值或者将行显示宽度阈值设置过小,就会出现第一显示文本长度小于第一解析文本的长度情况;
步骤323,若第一显示文本长度与当前第一解析数据组的第一解析文本的长度相等,则将第一解析文本作为对应的第一显示文本;
例如,以步骤31的脚本为例,当前第一解析数据组为第一解析数据组A1时,第一显示文本长度为3,第一解析文本“ID:”的长度为3,第一显示文本长度与第一解析文本的长度相等,则将第一解析文本“ID:”作为第一解析数据组A1对应的第一显示文本;
步骤324,若第一显示文本长度大于第一解析文本的长度,则使用预设的补位字符在第一解析文本的尾部进行补位直到补位后的第一解析文本的长度与第一显示文本长度相等为止,再将完成补位的第一解析文本作为对应的第一显示文本;
这里,补位与前述步骤322的截取都是为了保持每行的标准显示宽度;
例如,以步骤31的脚本为例,当前第一解析数据组为第一解析数据组B时,第一显示文本长度为16,第一解析文本“药品名称规格”的长度为10,第一显示文本长度大于第一解析文本的长度,则第一解析文本进行补位,预设的补位字符可定为单个空格字符,补位后的第一解析文本为“药品名称规格”;也就是第一解析数据组B的第一显示文本为“药品名称规格”;
步骤33,若当前第一解析数据组的第一数据类型为单次替换变量类型,则根据当前第一解析数据组进行单次替换变量显示文本转换处理,生成对应的第一显示文本;
具体包括:步骤331,若当前第一解析数据组的第一数据类型为单次替换变量类型,则对预设的显示模式进行识别;若显示模式为预览模式且当前第一解析数据组的第一替换变量示例文本不为空,则将第一替换变量示例文本作为对应的第二解析文本;若显示模式不为预览模式或第一替换变量示例文本为空,则从预设的第一变量属性列表中,提取第一属性名参数与当前第一解析数据组的第一替换变量属性匹配的第一变量属性信息的第一属性值参数,作为第二解析文本;
其中,第一变量属性列表包括多个第一变量属性信息;第一变量属性信息包括第一属性名参数和第一属性值参数;
这里,第一变量属性列表实际就是每个变量对应的属性名的具体请取值的设置列表,每个第一变量属性信息对应一个变量属性,第一属性名参数为对应变量属性的名称,第一属性值参数则为对应变量属性的实际取值;第一变量属性列表与第一电子病历格式化数据的对应关系可通过在第一电子病历格式化数据的脚本中增加引用说明进行对应,也可以另行设置关联表项进行对应;
例如,第一变量属性列表包括以下第一变量属性信息:
第1个第一变量属性信息:第一属性名参数为“UserID”,第一属性值参数为“001”;
第2个第一变量属性信息:第一属性名参数为“DrugName”,第一属性值参数为“药名1”;
第3个第一变量属性信息:第一属性名参数为“DrugName”,第一属性值参数为“药名2”;
第4个第一变量属性信息:第一属性名参数为“Specific”,第一属性值参数为“颗粒状”;
第5个第一变量属性信息:第一属性名参数为“Specific”,第一属性值参数为“0.1g”;
以步骤31的脚本为例,当前第一解析数据组为第一解析数据组A2时,因为第一替换变量示例文本为空,所以从第一变量属性列表中提取第一属性名参数为第一解析数据组A2的第一替换变量属性“User ID”的第1个第一变量属性信息的第一属性值参数“001”作为第一解析数据组A2对应的第二解析文本;
步骤332,对当前第一解析数据组的第一解析结束位置是否为预设的行结束符进行识别;若第一解析结束位置不为行结束符,则设置第二显示文本长度为当前第一解析数据组的第一解析结束位置与第一解析起始位置的差值再加1;若第一解析结束位置为行结束符,则设置第二显示文本长度为预设的行显示宽度阈值与当前第一解析数据组的第一解析起始位置的差值再加1;
例如,以步骤31的脚本为例,当前第一解析数据组为第一解析数据组A2时,若行显示宽度阈值为16,第一解析数据组A2的第一解析起始位置为4,第一解析结束位置为行结束符,则第一解析数据组A2的第二显示文本长度为16-4+1=13;
步骤333,若第二显示文本长度小于第二解析文本的长度,则在第二解析文本的尾部进行字符截取直到截取后的第二解析文本的长度与第二显示文本长度相等为止,再将完成截取的第二解析文本作为对应的第一显示文本;
步骤334,若第二显示文本长度与第二解析文本的长度相等,则将第二解析文本作为对应的第一显示文本;
步骤335,若第二显示文本长度大于第二解析文本的长度,则对当前第一解析数据组的第一替换变量对齐类型进行识别;若第一替换变量对齐类型为左对齐,则使用预设的补位字符在第二解析文本的尾部进行补位直到补位后的第二解析文本的长度与第二显示文本长度相等为止,再将完成补位的第二解析文本作为对应的第一显示文本;若第一替换变量对齐类型为右对齐,则使用预设的补位字符在第二解析文本的头部进行补位直到补位后的第二解析文本的长度与第二显示文本长度相等为止,再将完成补位的第二解析文本作为对应的第一显示文本;若第一替换变量对齐类型为中间对齐,则根据当前第一解析数据组的第一解析起始位置和第二显示文本长度进行中间字符位置计算,得到第一当前中间字符位置,并使用预设的补位字符在第二解析文本的头部和/或尾部进行补位,直到补位后的第二解析文本的长度与第二显示文本长度相等且补位后的第二解析文本的中心字符位置与第一当前中间字符位置匹配为止,再将完成补位的第二解析文本作为对应的第一显示文本;
这里,与步骤321类似,当前第一解析数据组为第一解析数据组A2时,第二解析文本“001”的长度为3,第二显示文本长度为13,第二显示文本长度大于第二解析文本长度,则进一步根据第一解析数据组A2的第一替换变量对齐类型进行文本补位,因为第一替换变量对齐类型为右对齐,那么对应的第一显示文本应为“001”;
步骤34,按各个第一解析数据组的第一显示起始位置的先后顺序,将对应的第一显示文本进行顺次拼接,生成第一单行文本;并对第一单行文本进行显示处理。
例如,以步骤31的脚本为例,对应第1个第一行格式化数据的所有第一解析数据组为第一解析数据组A1-A2;对应第一解析数据组A1的第一显示文本为“ID:”,对应第一解析数据组A2的第一显示文本为“001”,那么对应第1个第一行格式化数据的第一单行文本为“ID:001”;
对应第2个第一行格式化数据所有第一解析数据组为第一解析数据组B,第一解析数据组B的第一显示文本为“药品名称 规格”,那么对应第2个第一行格式化数据的第一单行文本为“药品名称 规格”。
步骤4,若第一行格式化数据的所有第一解析数据组的第一数据类型中包含循环替换变量类型,则根据所有第一解析数据组,进行第一多行文本显示处理;
具体包括:步骤41,若第一行格式化数据的所有第一解析数据组的第一数据类型中包含循环替换变量类型,则从所有第一解析数据组中,任选一个第一数据类型为循环替换变量类型的第一解析数据组作为任一循环解析数据组;并统计预设的第一变量属性列表中,第一属性名参数与任一循环解析数据组的第一替换变量属性匹配的第一变量属性信息的数量,生成对应的第一循环总数;
其中,在多个第一解析数据组的第一数据类型中包含循环替换变量类型时,各个第一数据类型为循环替换变量类型的第一解析数据组对应的第一循环总数应相等;
例如,以步骤31的脚本以及步骤33的第一变量属性列表示例为参考,对应第3个第一行格式化数据的所有第一解析数据组为第一解析数据组C1-C2,对应的第一循环总数为2;
步骤42,在第一行格式化数据的所有第一解析数据组中,对各个第一数据类型为循环替换变量类型的第一解析数据组进行轮询,并将当前被轮询的第一解析数据组记为第一循环解析数据组;查询第一变量属性列表,将第一属性名参数与第一循环解析数据组的第一替换变量属性匹配的第一变量属性信息均记为对应的第一匹配变量属性信息;并依次提取第一匹配变量属性信息的第一属性值参数作为对应的第一匹配文本;并由得到的多个第一匹配文本组成对应的第一匹配文本序列;第一匹配文本序列的第一匹配文本的数量应与第一循环总数相等;
例如,以步骤31的脚本以及步骤33的第一变量属性列表示例为参考,对应第3个第一行格式化数据的所有第一解析数据组为第一解析数据组C1-C2,对第一解析数据组C1-C2进行轮询,得到第一解析数据组C1对应的第1第一匹配文本序列为(“药名1”,“药名2”),第一解析数据组C2对应的第2第一匹配文本序列为(“颗粒状”,“0.1g”);
步骤43,初始化第一循环次数为1;
步骤44,对第一行格式化数据的所有第一解析数据组进行轮询,并将当前被轮询的第一解析数据组记为当前第一解析数据组;若当前第一解析数据组的第一数据类型为常量类型,则根据当前第一解析数据组进行常量显示文本转换处理,生成对应的第一显示文本;若当前第一解析数据组的第一数据类型为单次替换变量类型,则根据当前第一解析数据组进行单次替换变量显示文本转换处理,生成对应的第一显示文本;若当前第一解析数据组的第一数据类型为循环替换变量类型,则根据第一循环次数、当前第一解析数据组和对应的第一匹配文本序列进行循环替换变量显示文本转换处理,生成对应的第一显示文本;
这里,若第一行格式化数据中若包含了循环变量也就是说包含了第一数据类型为循环替换变量类型的第一解析数据组,那么就需要根据循环次数显示多行,例如第一循环总数为2则需要进行两次单行文本显示,每次处理单行文本显示时,第一数据类型为常量类型或单次替换变量类型的第一解析数据组对应的第一显示文本都是不变的,发生改变的是第一数据类型为循环替换变量类型的第一解析数据组对应的第一显示文本;第一数据类型为循环替换变量类型的第一解析数据组对应的第一显示文本来自与对应的第一匹配文本序列;
例如,第一行格式化数据包括1个常量V、1个单次替换变量W和1个循环替换变量Y,那么就需要循环2次进行两次第一单行文本进行显示处理,第1次第一单行文本进行显示处理显示的文本基于常量V对应的第一显示文本、单次替换变量W对应的第一显示文本和循环替换变量Y对应的第1个第一匹配文本构成;第2次第一单行文本进行显示处理显示的文本基于常量V对应的第一显示文本、单次替换变量W对应的第一显示文本和循环替换变量Y对应的第2个第一匹配文本构成;
其中,若当前第一解析数据组的第一数据类型为常量类型,则根据当前第一解析数据组进行常量显示文本转换处理,生成对应的第一显示文本,与前述步骤32一致,在此不做进一步赘述;
若当前第一解析数据组的第一数据类型为单次替换变量类型,则根据当前第一解析数据组进行单次替换变量显示文本转换处理,生成对应的第一显示文本,与前述步骤33一致,在此不做进一步赘述;
若当前第一解析数据组的第一数据类型为循环替换变量类型,则根据第一循环次数、当前第一解析数据组和对应的第一匹配文本序列进行循环替换变量显示文本转换处理,生成对应的第一显示文本,具体包括:
步骤A1,若当前第一解析数据组的第一数据类型为循环替换变量类型,则对预设的显示模式进行识别;若显示模式为预览模式且当前第一解析数据组的第一替换变量示例文本不为空,则将第一替换变量示例文本作为对应的第三解析文本;若显示模式不为预览模式或第一替换变量示例文本为空,则从对应的第一匹配文本序列中,提取匹配文本索引与第一循环次数匹配的第一匹配文本作为第三解析文本;
这里,若以步骤31的脚本以及步骤33的第一变量属性列表示例为参考,对应第3个第一行格式化数据的所有第一解析数据组为第一解析数据组C1-C2,第一循环总数为2,第一解析数据组C1对应的第1第一匹配文本序列为(“药名1”,“药名2”),第一解析数据组C2对应的第2第一匹配文本序列为(“颗粒状”,“0.1g”);
在第一循环次数为1时,第一解析数据组C1的第三解析文本为“药名1”,第一解析数据组C2的第三解析文本为“颗粒状”;
在第一循环次数为2时,第一解析数据组C1的第三解析文本为“药名2”,第一解析数据组C2的第三解析文本为“0.1g”;
步骤A2,对当前第一解析数据组的第一解析结束位置是否为预设的行结束符进行识别;若第一解析结束位置不为行结束符,则设置第三显示文本长度为当前第一解析数据组的第一解析结束位置与第一解析起始位置的差值再加1;若第一解析结束位置为行结束符,则设置第三显示文本长度为预设的行显示宽度阈值与当前第一解析数据组的第一解析起始位置的差值再加1;
这里,若以步骤31的脚本以及步骤33的第一变量属性列表示例为参考,对应第3个第一行格式化数据的所有第一解析数据组为第一解析数据组C1-C2,第一循环总数为2,行显示宽度阈值为16;
在第一循环次数为1时,第一解析数据组C1的第三显示文本长度为8,第一解析数据组C2的第三显示文本长度为8;
在第一循环次数为2时,第一解析数据组C1的第三显示文本长度为8,第一解析数据组C2的第三显示文本长度为8;
步骤A3,若第三显示文本长度小于第三解析文本的长度,则在第三解析文本的尾部进行字符截取直到截取后的第三解析文本的长度与第三显示文本长度相等为止,再将完成截取的第三解析文本作为对应的第一显示文本;
步骤A4,若第三显示文本长度与第三解析文本的长度相等,则将第三解析文本作为对应的第一显示文本;
步骤A5,若第三显示文本长度大于第三解析文本的长度,则对当前第一解析数据组的第一替换变量对齐类型进行识别;若第一替换变量对齐类型为左对齐,则使用预设的补位字符在第三解析文本的尾部进行补位直到补位后的第三解析文本的长度与第三显示文本长度相等为止,再将完成补位的第三解析文本作为对应的第一显示文本;若第一替换变量对齐类型为右对齐,则使用预设的补位字符在第三解析文本的头部进行补位直到补位后的第三解析文本的长度与第三显示文本长度相等为止,再将完成补位的第三解析文本作为对应的第一显示文本;若第一替换变量对齐类型为中间对齐,则根据当前第一解析数据组的第一解析起始位置和第三显示文本长度进行中间字符位置计算,得到第二当前中间字符位置,并使用预设的补位字符在第三解析文本的头部和/或尾部进行补位,直到补位后的第三解析文本的长度与第三显示文本长度相等且补位后的第三解析文本的中心字符位置与第二当前中间字符位置匹配为止,再将完成补位的第三解析文本作为对应的第一显示文本;
在第一循环次数为1时,第一解析数据组C1的第三解析文本为“药名1”,则对应的长度为3,第一解析数据组C1的第三显示文本长度为8,第三显示文本长度大于第三解析文本的长度,则根据第一解析数据组C1的第一替换变量对齐类型(左对齐)进行补位,从而得到第一解析数据组C1对应的第一显示文本为“药名1”;同理,第一解析数据组C2的第一显示文本为“颗粒状”;在第一循环次数为2时,第一解析数据组C1对应的第一显示文本为“药名2”,第一解析数据组C2对应的第一显示文本为“0.1g”;
步骤45,按各个第一解析数据组的第一显示起始位置的先后顺序,将对应的第一显示文本进行顺次拼接,生成第一单行文本;并对第一单行文本进行显示处理;
这里,若以步骤31的脚本以及步骤33的第一变量属性列表示例为参考,对应第3个第一行格式化数据的所有第一解析数据组为第一解析数据组C1-C2,第一循环总数为2;那么,
第一循环次数为1时,第一单行文本为“药名1 颗粒状”;
第一循环次数为2时,第一单行文本为“药名2 0.1g”;
步骤46,对第一循环次数的值加1;并判断加1后的第一循环次数是否超过了第一循环总数,若未超过第一循环总数则转至步骤44,若已超过第一循环总数则结束第一多行文本显示处理。
综上,若以步骤31的脚本以及步骤33的第一变量属性列表示例为参考,则通过步骤3-4的解析与显示处理后,会得到4行显示信息:
Figure BDA0003261257230000341
本发明实施例提供的一种电子病历显示化数据的处理方法,给出了一种带有可视化效果的显示化数据脚本格式及对应的显示化数据解析与显示处理机制。通过本发明提供的所见即所得的脚本格式与脚本解析机制,工作人员不但无需编写大量的XML脚本语句,还可以在脚本上直接进行可视化效果设置及动态显示内容设置,从而降低了脚本编写难度、提高了工作效率。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种电子病历显示化数据的处理方法,其特征在于,所述方法包括:
获取第一电子病历格式化数据;所述第一电子病历格式化数据包括多个第一行格式化数据;所述第一行格式化数据由用于文本显示的显示化数据组成;
对所述第一行格式化数据进行显示化数据的常量/替换变量类型解析处理,得到多个第一解析数据组;所述第一解析数据组至少包括第一数据类型;所述第一数据类型包括常量类型、单次替换变量类型和循环替换变量类型;
若所述第一行格式化数据的所有所述第一解析数据组的所述第一数据类型只包含常量类型和/或单次替换变量类型,则根据所有所述第一解析数据组,进行第一单行文本显示处理;
若所述第一行格式化数据的所有所述第一解析数据组的所述第一数据类型中包含循环替换变量类型,则根据所有所述第一解析数据组,进行第一多行文本显示处理。
2.根据权利要求1所述的电子病历显示化数据的处理方法,其特征在于,
所述第一数据类型为常量类型时,所述第一解析数据组具体包括所述第一数据类型、第一解析起始位置、第一解析结束位置和第一解析文本;
所述第一数据类型为单次替换变量类型或循环替换变量类型时,所述第一解析数据组具体包括所述第一数据类型、所述第一解析起始位置、所述第一解析结束位置、第一替换变量名、第一替换变量属性、第一替换变量对齐类型和第一替换变量示例文本;所述第一替换变量对齐类型包括左对齐、右对齐和中间对齐。
3.根据权利要求2所述的电子病历显示化数据的处理方法,其特征在于,所述对所述第一行格式化数据进行显示化数据的常量/替换变量类型解析处理,得到多个第一解析数据组,具体包括:
在所述第一行格式化数据中,将满足预设的变量定义规则的子字符串标记为第一变量子字符串;
若所述第一变量子字符串的数量不为空,则在所述第一行格式化数据中会得到多个由所述第一变量子字符串隔断的子数据区域;并在各个所述子数据区域中,将满足预设的常量定义规则的子字符串标记为第一常量子字符串;
若所述第一变量子字符串的数量为空,则直接将所述第一行格式化数据标记为所述第一常量子字符串;
对各个所述第一常量子字符串进行常量类型解析数据组转换,生成所述第一数据类型为常量类型的所述第一解析数据组;
对各个所述第一变量子字符串进行变量类型解析数据组转换,生成所述第一数据类型为单次替换变量类型或循环替换变量类型的所述第一解析数据组。
4.根据权利要求3所述的电子病历显示化数据的处理方法,其特征在于,所述对各个所述第一常量子字符串进行常量类型解析数据组转换,生成所述第一数据类型为常量类型的所述第一解析数据组,具体包括:
对各个所述第一常量子字符串进行轮询,并将当前被轮询的所述第一常量子字符串记为当前第一常量子字符串;
在所述第一行格式化数据中,对所述当前第一常量子字符串之后的下一个标记子字符串进行识别,若所述下一个标记子字符串为另一个所述第一变量子字符串或另一个所述第一常量子字符串,则将所述下一个标记子字符串的起始字符在所述第一行格式化数据中的字符位置减1,作为对应的第一结束位置;若所述下一个标记子字符串为空,则将预设的行结束符,作为所述第一结束位置;
设置所述第一数据类型为常量类型;
设置所述第一解析起始位置为所述当前第一常量子字符串的首字符在所述第一行格式化数据的字符位置;
设置所述第一解析结束位置为所述第一结束位置;
对所述当前第一常量子字符串进行转义符过滤处理,生成第二常量子字符串;并设置所述第一解析文本为所述第二常量子字符串;
由本次设置的所述第一数据类型、所述第一解析起始位置、所述第一解析结束位置和所述第一解析文本构成与所述当前第一常量子字符串对应的所述第一解析数据组。
5.根据权利要求3所述的电子病历显示化数据的处理方法,其特征在于,所述对各个所述第一变量子字符串进行变量类型解析数据组转换,生成所述第一数据类型为单次替换变量类型或循环替换变量类型的所述第一解析数据组,具体包括:
对各个所述第一变量子字符串进行轮询,并将当前被轮询的所述第一变量子字符串记为当前第一变量子字符串;
在所述第一行格式化数据中,对所述当前第一变量子字符串之后的下一个标记子字符串进行识别,若所述下一个标记子字符串为另一个所述第一变量子字符串或所述第一常量子字符串,则将所述下一个标记子字符串的起始字符在所述第一行格式化数据中的字符位置减1,作为对应的第二结束位置;若所述下一个标记子字符串为空,则将预设的行结束符,作为所述第二结束位置;
提取所述当前第一变量子字符串的变量定义符,生成第一变量定义符;若所述第一变量定义符与预设的单次替换变量定义符匹配,则设置所述第一数据类型为单次替换变量类型;若所述第一变量定义符与预设的循环替换变量定义符匹配,则设置所述第一数据类型为循环替换变量类型;
设置所述第一解析起始位置为所述当前第一变量子字符串的首字符在所述第一行格式化数据的字符位置;
设置所述第一解析结束位置为所述第二结束位置;
设置所述第一替换变量名为所述当前第一变量子字符串中除所述第一变量定义符之外的字符串;
查询预设的第一变量列表,将表中第一变量名参数与所述第一替换变量名匹配的第一变量信息,记为对应的第一匹配变量信息;所述第一变量列表包括多个所述第一变量信息;所述第一变量信息包括所述第一变量名参数、第一变量属性参数、第一变量对齐参数和第一示例参数;
当所述第一匹配变量信息不为空时,设置所述第一替换变量属性为所述第一匹配变量信息的所述第一变量属性参数;设置所述第一替换变量对齐类型为所述第一匹配变量信息的所述第一变量对齐参数;设置所述第一替换变量示例文本为所述第一匹配变量信息的所述第一示例参数;
当所述第一匹配变量信息为空时,设置所述第一替换变量属性为所述第一替换变量名;设置所述第一替换变量对齐类型为预设的默认对齐类型;设置所述第一替换变量示例文本为预设的第一标准文本;
由本次设置完成的所述第一数据类型、所述第一解析起始位置、所述第一解析结束位置、所述第一替换变量名、所述第一替换变量属性、所述第一替换变量对齐类型和所述第一替换变量示例文本构成与所述当前第一变量子字符串对应的所述第一解析数据组。
6.根据权利要求2所述的电子病历显示化数据的处理方法,其特征在于,所述若所述第一行格式化数据的所有所述第一解析数据组的所述第一数据类型只包含常量类型和/或单次替换变量类型,则根据所有所述第一解析数据组,进行第一单行文本显示处理,具体包括:
若所述第一行格式化数据的所有所述第一解析数据组的所述第一数据类型只包含常量类型和/或单次替换变量类型,则对所有所述第一解析数据组进行轮询,并将当前被轮询的所述第一解析数据组记为当前第一解析数据组;
若所述当前第一解析数据组的所述第一数据类型为常量类型,则根据所述当前第一解析数据组进行常量显示文本转换处理,生成对应的第一显示文本;
若所述当前第一解析数据组的所述第一数据类型为单次替换变量类型,则根据所述当前第一解析数据组进行单次替换变量显示文本转换处理,生成对应的所述第一显示文本;
按各个所述第一解析数据组的所述第一显示起始位置的先后顺序,将对应的所述第一显示文本进行顺次拼接,生成第一单行文本;并对所述第一单行文本进行显示处理。
7.根据权利要求2所述的电子病历显示化数据的处理方法,其特征在于,所述若所述第一行格式化数据的所有所述第一解析数据组的所述第一数据类型中包含循环替换变量类型,则根据所有所述第一解析数据组,进行第一多行文本显示处理,具体包括:
步骤71,若所述第一行格式化数据的所有所述第一解析数据组的所述第一数据类型中包含循环替换变量类型,则从所有所述第一解析数据组中,任选一个所述第一数据类型为循环替换变量类型的所述第一解析数据组作为任一循环解析数据组;并统计预设的第一变量属性列表中,第一属性名参数与所述任一循环解析数据组的所述第一替换变量属性匹配的第一变量属性信息的数量,生成对应的第一循环总数;在所述多个第一解析数据组的所述第一数据类型中包含循环替换变量类型时,各个所述第一数据类型为循环替换变量类型的所述第一解析数据组对应的所述第一循环总数应相等;所述第一变量属性列表包括多个所述第一变量属性信息;所述第一变量属性信息包括所述第一属性名参数和第一属性值参数;
步骤72,在所述第一行格式化数据的所有所述第一解析数据组中,对各个所述第一数据类型为循环替换变量类型的所述第一解析数据组进行轮询,并将当前被轮询的所述第一解析数据组记为第一循环解析数据组;查询所述第一变量属性列表,将所述第一属性名参数与所述第一循环解析数据组的所述第一替换变量属性匹配的所述第一变量属性信息均记为对应的第一匹配变量属性信息;并依次提取所述第一匹配变量属性信息的所述第一属性值参数作为对应的第一匹配文本;并由得到的多个所述第一匹配文本组成对应的第一匹配文本序列;所述第一匹配文本序列的所述第一匹配文本的数量应与所述第一循环总数相等;
步骤73,初始化第一循环次数为1;
步骤74,对所述第一行格式化数据的所有所述第一解析数据组进行轮询,并将当前被轮询的所述第一解析数据组记为当前第一解析数据组;若所述当前第一解析数据组的所述第一数据类型为常量类型,则根据所述当前第一解析数据组进行常量显示文本转换处理,生成对应的第一显示文本;若所述当前第一解析数据组的所述第一数据类型为单次替换变量类型,则根据所述当前第一解析数据组进行单次替换变量显示文本转换处理,生成对应的所述第一显示文本;若所述当前第一解析数据组的所述第一数据类型为循环替换变量类型,则根据所述第一循环次数、所述当前第一解析数据组和对应的所述第一匹配文本序列进行循环替换变量显示文本转换处理,生成对应的所述第一显示文本;
步骤75,按各个所述第一解析数据组的所述第一显示起始位置的先后顺序,将对应的所述第一显示文本进行顺次拼接,生成第一单行文本;并对所述第一单行文本进行显示处理;
步骤76,对所述第一循环次数的值加1;并判断加1后的所述第一循环次数是否超过了所述第一循环总数,若未超过所述第一循环总数则转至步骤74,若已超过所述第一循环总数则结束所述第一多行文本显示处理。
8.根据权利要求6或7所述的电子病历显示化数据的处理方法,其特征在于,所述若所述当前第一解析数据组的所述第一数据类型为常量类型,则根据所述当前第一解析数据组进行常量显示文本转换处理,生成对应的第一显示文本,具体包括:
若所述当前第一解析数据组的所述第一数据类型为常量类型,则对所述当前第一解析数据组的所述第一解析结束位置是否为预设的行结束符进行识别;若所述第一解析结束位置不为所述行结束符,则设置第一显示文本长度为所述当前第一解析数据组的所述第一解析结束位置与所述第一解析起始位置的差值再加1;若所述第一解析结束位置为所述行结束符,则设置所述第一显示文本长度为预设的行显示宽度阈值与所述当前第一解析数据组的第一解析起始位置的差值再加1;
若所述第一显示文本长度小于所述第一解析文本的长度,则在所述第一解析文本的尾部进行字符截取直到截取后的所述第一解析文本的长度与所述第一显示文本长度相等为止,再将完成截取的所述第一解析文本作为对应的所述第一显示文本;
若所述第一显示文本长度与所述当前第一解析数据组的所述第一解析文本的长度相等,则将所述第一解析文本作为对应的所述第一显示文本;
若所述第一显示文本长度大于所述第一解析文本的长度,则使用预设的补位字符在所述第一解析文本的尾部进行补位直到补位后的所述第一解析文本的长度与所述第一显示文本长度相等为止,再将完成补位的所述第一解析文本作为对应的所述第一显示文本。
9.根据权利要求6或7所述的电子病历显示化数据的处理方法,其特征在于,所述若所述当前第一解析数据组的所述第一数据类型为单次替换变量类型,则根据所述当前第一解析数据组进行单次替换变量显示文本转换处理,生成对应的所述第一显示文本,具体包括:
若所述当前第一解析数据组的所述第一数据类型为单次替换变量类型,则对预设的显示模式进行识别;若所述显示模式为预览模式且所述当前第一解析数据组的所述第一替换变量示例文本不为空,则将所述第一替换变量示例文本作为对应的第二解析文本;若所述显示模式不为预览模式或所述第一替换变量示例文本为空,则从预设的第一变量属性列表中,提取第一属性名参数与所述当前第一解析数据组的所述第一替换变量属性匹配的第一变量属性信息的第一属性值参数,作为所述第二解析文本;所述第一变量属性列表包括多个所述第一变量属性信息;所述第一变量属性信息包括所述第一属性名参数和所述第一属性值参数;
对所述当前第一解析数据组的所述第一解析结束位置是否为预设的行结束符进行识别;若所述第一解析结束位置不为所述行结束符,则设置第二显示文本长度为所述当前第一解析数据组的所述第一解析结束位置与所述第一解析起始位置的差值再加1;若所述第一解析结束位置为所述行结束符,则设置所述第二显示文本长度为预设的行显示宽度阈值与所述当前第一解析数据组的第一解析起始位置的差值再加1;
若所述第二显示文本长度小于所述第二解析文本的长度,则在所述第二解析文本的尾部进行字符截取直到截取后的所述第二解析文本的长度与所述第二显示文本长度相等为止,再将完成截取的所述第二解析文本作为对应的所述第一显示文本;
若所述第二显示文本长度与所述第二解析文本的长度相等,则将所述第二解析文本作为对应的所述第一显示文本;
若所述第二显示文本长度大于所述第二解析文本的长度,则对所述当前第一解析数据组的所述第一替换变量对齐类型进行识别;若所述第一替换变量对齐类型为左对齐,则使用预设的补位字符在所述第二解析文本的尾部进行补位直到补位后的所述第二解析文本的长度与所述第二显示文本长度相等为止,再将完成补位的所述第二解析文本作为对应的所述第一显示文本;若所述第一替换变量对齐类型为右对齐,则使用预设的补位字符在所述第二解析文本的头部进行补位直到补位后的所述第二解析文本的长度与所述第二显示文本长度相等为止,再将完成补位的所述第二解析文本作为对应的所述第一显示文本;若所述第一替换变量对齐类型为中间对齐,则根据所述当前第一解析数据组的所述第一解析起始位置和所述第二显示文本长度进行中间字符位置计算,得到第一当前中间字符位置,并使用预设的补位字符在所述第二解析文本的头部和/或尾部进行补位,直到补位后的所述第二解析文本的长度与所述第二显示文本长度相等且补位后的所述第二解析文本的中心字符位置与所述第一当前中间字符位置匹配为止,再将完成补位的所述第二解析文本作为对应的所述第一显示文本。
10.根据权利要求7所述的电子病历显示化数据的处理方法,其特征在于,所述若所述当前第一解析数据组的所述第一数据类型为循环替换变量类型,则根据所述第一循环次数、所述当前第一解析数据组和对应的所述第一匹配文本序列进行循环替换变量显示文本转换处理,生成对应的所述第一显示文本,具体包括:
若所述当前第一解析数据组的所述第一数据类型为循环替换变量类型,则对预设的显示模式进行识别;若所述显示模式为预览模式且所述当前第一解析数据组的所述第一替换变量示例文本不为空,则将所述第一替换变量示例文本作为对应的第三解析文本;若所述显示模式不为预览模式或所述第一替换变量示例文本为空,则从对应的所述第一匹配文本序列中,提取匹配文本索引与所述第一循环次数匹配的所述第一匹配文本作为所述第三解析文本;
对所述当前第一解析数据组的所述第一解析结束位置是否为预设的行结束符进行识别;若所述第一解析结束位置不为所述行结束符,则设置第三显示文本长度为所述当前第一解析数据组的所述第一解析结束位置与所述第一解析起始位置的差值再加1;若所述第一解析结束位置为所述行结束符,则设置所述第三显示文本长度为预设的行显示宽度阈值与所述当前第一解析数据组的第一解析起始位置的差值再加1;
若所述第三显示文本长度小于所述第三解析文本的长度,则在所述第三解析文本的尾部进行字符截取直到截取后的所述第三解析文本的长度与所述第三显示文本长度相等为止,再将完成截取的所述第三解析文本作为对应的所述第一显示文本;
若所述第三显示文本长度与所述第三解析文本的长度相等,则将所述第三解析文本作为对应的所述第一显示文本;
若所述第三显示文本长度大于所述第三解析文本的长度,则对所述当前第一解析数据组的所述第一替换变量对齐类型进行识别;若所述第一替换变量对齐类型为左对齐,则使用预设的补位字符在所述第三解析文本的尾部进行补位直到补位后的所述第三解析文本的长度与所述第三显示文本长度相等为止,再将完成补位的所述第三解析文本作为对应的所述第一显示文本;若所述第一替换变量对齐类型为右对齐,则使用预设的补位字符在所述第三解析文本的头部进行补位直到补位后的所述第三解析文本的长度与所述第三显示文本长度相等为止,再将完成补位的所述第三解析文本作为对应的所述第一显示文本;若所述第一替换变量对齐类型为中间对齐,则根据所述当前第一解析数据组的所述第一解析起始位置和所述第三显示文本长度进行中间字符位置计算,得到第二当前中间字符位置,并使用预设的补位字符在所述第三解析文本的头部和/或尾部进行补位,直到补位后的所述第三解析文本的长度与所述第三显示文本长度相等且补位后的所述第三解析文本的中心字符位置与所述第二当前中间字符位置匹配为止,再将完成补位的所述第三解析文本作为对应的所述第一显示文本。
CN202111073499.5A 2021-09-14 2021-09-14 电子病历显示化数据的处理方法 Active CN113806592B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111073499.5A CN113806592B (zh) 2021-09-14 2021-09-14 电子病历显示化数据的处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111073499.5A CN113806592B (zh) 2021-09-14 2021-09-14 电子病历显示化数据的处理方法

Publications (2)

Publication Number Publication Date
CN113806592A true CN113806592A (zh) 2021-12-17
CN113806592B CN113806592B (zh) 2024-05-28

Family

ID=78895267

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111073499.5A Active CN113806592B (zh) 2021-09-14 2021-09-14 电子病历显示化数据的处理方法

Country Status (1)

Country Link
CN (1) CN113806592B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113808715A (zh) * 2021-09-14 2021-12-17 北京天健源达科技股份有限公司 门诊闭环信息处理方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020016954A1 (en) * 1999-10-05 2002-02-07 Dietrich Charisius Methods and systems for relating data structures and object-oriented elements for distributed computing
US20070101316A1 (en) * 2005-09-12 2007-05-03 Don Berndt Software Architecture and Program for the Concurrent Execution of Finite State Machine-Encoded Processes, on Single or Multiple-Processor-Based Embedded Systems
CN103605760A (zh) * 2013-11-25 2014-02-26 方正国际软件有限公司 病历查询方法和病历查询系统
CN106502547A (zh) * 2016-11-05 2017-03-15 深圳市前海安测信息技术有限公司 运用于移动终端的电子病历医疗数据查询系统及方法
CN109857756A (zh) * 2019-01-14 2019-06-07 中国联合网络通信集团有限公司 数据库报表的生成方法、装置、设备及可读存储介质
CN111400380A (zh) * 2020-02-22 2020-07-10 中国平安财产保险股份有限公司 表格数据的校验方法、电子装置及存储介质
CN112527920A (zh) * 2020-12-04 2021-03-19 广州橙行智动汽车科技有限公司 一种数据处理的方法和装置
CN113033177A (zh) * 2019-12-24 2021-06-25 医渡云(北京)技术有限公司 一种电子病历数据的解析方法及装置
CN113111041A (zh) * 2021-05-07 2021-07-13 北京天健源达科技股份有限公司 一种电子病历文件的图像数据处理方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020016954A1 (en) * 1999-10-05 2002-02-07 Dietrich Charisius Methods and systems for relating data structures and object-oriented elements for distributed computing
US20070101316A1 (en) * 2005-09-12 2007-05-03 Don Berndt Software Architecture and Program for the Concurrent Execution of Finite State Machine-Encoded Processes, on Single or Multiple-Processor-Based Embedded Systems
CN103605760A (zh) * 2013-11-25 2014-02-26 方正国际软件有限公司 病历查询方法和病历查询系统
CN106502547A (zh) * 2016-11-05 2017-03-15 深圳市前海安测信息技术有限公司 运用于移动终端的电子病历医疗数据查询系统及方法
CN109857756A (zh) * 2019-01-14 2019-06-07 中国联合网络通信集团有限公司 数据库报表的生成方法、装置、设备及可读存储介质
CN113033177A (zh) * 2019-12-24 2021-06-25 医渡云(北京)技术有限公司 一种电子病历数据的解析方法及装置
CN111400380A (zh) * 2020-02-22 2020-07-10 中国平安财产保险股份有限公司 表格数据的校验方法、电子装置及存储介质
CN112527920A (zh) * 2020-12-04 2021-03-19 广州橙行智动汽车科技有限公司 一种数据处理的方法和装置
CN113111041A (zh) * 2021-05-07 2021-07-13 北京天健源达科技股份有限公司 一种电子病历文件的图像数据处理方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
DEEPAK KUMAR 等: "Benchmarking recognition results on camera captured word image data sets", 《DAR \'12: PROCEEDING OF THE WORKSHOP ON DOCUMENT ANALYSIS AND RECOGNITION》, 16 December 2012 (2012-12-16), pages 100, XP058028601, DOI: 10.1145/2432553.2432572 *
STEVEN R. BAGLEY 等: "Extracting reusable document components for variable data printing", 《DOCENG \'07: PROCEEDINGS OF THE 2007 ACM SYMPOSIUM ON DOCUMENT ENGINEERING》, 28 August 2007 (2007-08-28), pages 44, XP058136484, DOI: 10.1145/1284420.1284435 *
张帆: "基于电子病历的临床试验标准分类研究", 《中国优秀硕士学位论文全文数据库 医药卫生科技辑》, no. 03, 15 March 2020 (2020-03-15), pages 053 - 133 *
李昊旻 等: "结构化电子病历数据录入方法", 《浙江大学学报(工学版)》, no. 10, 15 October 2008 (2008-10-15), pages 1693 - 1696 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113808715A (zh) * 2021-09-14 2021-12-17 北京天健源达科技股份有限公司 门诊闭环信息处理方法
CN113808715B (zh) * 2021-09-14 2024-03-19 北京天健源达科技股份有限公司 门诊闭环信息处理方法

Also Published As

Publication number Publication date
CN113806592B (zh) 2024-05-28

Similar Documents

Publication Publication Date Title
Bast et al. A benchmark and evaluation for text extraction from PDF
US7711546B2 (en) User interface for machine aided authoring and translation
US7827155B2 (en) System for processing formatted data
US7313754B2 (en) Method and expert system for deducing document structure in document conversion
US8171462B2 (en) User declarative language for formatted data processing
AU630360B2 (en) Intermediate spreadsheet structure
US7657832B1 (en) Correcting validation errors in structured documents
US7917548B2 (en) Universal parsing agent system and method
US10789461B1 (en) Automated systems and methods for textual extraction of relevant data elements from an electronic clinical document
CN107015948B (zh) 一种日志信息格式化方法及系统
US8549492B2 (en) Machine declarative language for formatted data processing
AU2003233278A1 (en) Document structure identifier
US7747942B2 (en) System and method for obtaining a markup language template through reversing engineering
US8387010B2 (en) Automatic software configuring system
US20070250528A1 (en) Methods for processing formatted data
CN112528602A (zh) 一种医药文档结构化内容分析方法、系统和存储介质
CN113806592A (zh) 电子病历显示化数据的处理方法
US6772395B1 (en) Self-modifying data flow execution architecture
JP3832693B2 (ja) 構造化文書検索表示方法及び装置
JP7040227B2 (ja) 情報処理プログラム、情報処理方法、および情報処理装置
US20220198133A1 (en) System and method for validating tabular summary reports
Ribler et al. Using Visualization to Detect Plagiarism in Computer Science Classes.
CN112699642B (zh) 复杂医疗文书的索引提取方法及装置、介质及电子设备
Al-Msie'deen Softcloud: A tool for visualizing software artifacts as tag clouds
US20100162094A1 (en) Providing interactive forms in web application software

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant