产品经理医疗圈@产品

碎片数据收集利器-结构化动态表单设计思路

2019-01-30  本文已影响53人  燃烧的鱼丸

本文基于面向基本公共卫生的业务系统设计经验,抽象出一套适合大型ERP系统的表单业务数据模型,目标是最大限度保留系统弹性的同时,尽可能降低系统复杂度和开发成本。enjoy~

背景

填写表单应该是所有业务线条中最避免不了的环节,例如我所经历的医疗项目:

居民健康档案 居民健康档案信息卡

以上面两个例图作为示例,可以看到姓名、性别、出生日期、血型等字段是完全重复的,由于业务场景的差异,表单被定义了不同的样式和字段结构,此时将遭遇以下几种问题:

传统的区域化基本公共卫生系统正在经历这样的剧痛,当然其他行业比如金融的部分业务同样面临相同问题(本人只经历过这两个行业,见谅),如何在纷繁复杂的业务环节中抽离出四两拨千斤的数据模型,除了满足日益频繁的业务调整外,还能将数据完整的、标准的存储并利用起来,是后端产品经理的安身立命之本。作为一个不务正业的产品经理,这次就从数据库表结构设计上,介绍一套解决方案:结构化动态表单

场景和需求:

1.可覆盖绝大部分表单业务场景。
2.表单样式和字段可灵活调整,不影响历史积累数据,不会造成数据库和代码层面的频繁变更;
3.数据统计时能够快捷准确全面地获取到想要的字段数据,不过度依赖文档和程序员老员工;

模块介绍

模块划分

属性库

所有表单中所有的字段都在属性库中定义,相当于表单字段的字典。定义的核心包含属性的唯一标识、属性名、属性值取值规则和约束等信息。

因为我认为所有的字段都是围绕某个业务进行的,把这个业务抽象成对象,那么这些表单的字段就是这个对象的属性,所以命名为属性库

如果用关系型数据库表达属性库,根据以往的经验可以总结出如下两个基础表:


属性库表结构

属性分类,主要根据使用者需求对属性进行分类,方便查找和后期的批量数据统计,比如健康管理把心率、瞳孔大小、脉搏等属性规划到生命体征类,把身高、体重等属性规划到基本体征类等等,因此仅需要定义唯一识别码、名称和分类说明即可。

属性,这个表非常重要,是数据标准化的基础表。唯一标识、名称、说明,这是一个属性最基础的说明,不用解释。

属性值字典,主要用于配合属性类型为单选框或多选框的取值,也是数据标准化的一部分。

例如定义一个属性叫性别的属性规划到基础信息分类中,此时会属性库的三个表中分别插入以下数据:
属性分类表:ID=‘1’,分类名称=‘基础信息’,分类说明=‘用户基本信息’
属性表:ID=2,分类ID=‘’,属性名称=‘性别’,属性说明=‘用户的性别’,属性类型=‘单选下拉框’,值单位=空
属性值字典:[ID=3,属性ID=‘2’,字典值=‘男’],[ID=4,属性ID=‘2’,字典值=‘女’],[ID=5,属性ID=‘2’,字典值=‘未知’]

模版库

所有的动态表单都是以模版的方式保存在数据库中,表单模版中定义表单中填写的字段、字段的默认值和表单样式。

由于表单样式的不可预见性,因此可以准备一套符合自家产品风格的视觉设计语言,限定表单视觉样式的框架,包含前面提到的属性类型呈现样式,和细化到UI在手写、PC端、移动端的字体大小、线条风格、交互方式、间距、缩进、比例、布局方式等参数,当然本篇由于篇幅限制不展开和视觉风格相关的讨论,读者可自行脑补。

既然是模版,肯定少不了控件,模版由控件组成,在这里把控件分为两类:属性组件和容器组件。

表单模版库表结构

表单模版,是表单的字典表,用于定义表单的基础信息如名称、用途说明等,如果与业务衔接,还可以添加关联的业务、填写对象、触发填写的时间等,这部分信息由具体的业务场景决定,可根据实际需求设置字段。

容器组件,负责定义外观样式的组件,决定了属性组件在表单中的呈现样式,可根据不同布局需求细分更多容器组件,这里不展开细讲。

属性组件,来自于属性库中的属性,决定了表单中填写的字段信息。

属性组件还可以有更多可扩展特性,后面会提到一些。

业务数据库

有了前面的属性库和表单模版库的配置,即可配置出各式各样的表单,而实际使用这些表单保存下来的数据格式是怎样的呢?

业务数据库表结构

表单主表,作为表单的索引表,主要是提供表单的填写来源、时间戳和与业务相关的标记。

容器明细表,这里保存了表单内负责样式的容器数据,因为表单模版可能会变更,因此需要将其视觉样式数据保存下来,以记录当时呈现的样式,避免因为模版变更而造成的布局样式丢失。

属性明细表,保存了所有表单的所有字段的值。

样例

动态表单样例

弊端

设计思想和基本原则

意义

扩展性

以下是随意举例的可能的功能扩展方向,仅作为扩展阅读

属性组件功能扩展

多属性之间的逻辑约束和默认值

单属性复用

属性值字典
诊断、症状字典数据可能依赖外部接口调取,而非本地属性值字典库

容器组件扩展

模版库扩展

操作日志

上一篇 下一篇

猜你喜欢

热点阅读