主索引号的匹配规则梳理清楚之后,基于什么来计算主索引号又成了一个极具争议的问题。大体来讲,分为三种类型。
第一种,是根据一定的编码算法,实时分配主索引号。这样做的好处是比较灵活,并发性能高,不依赖数据库等第三方。但是在数据治理场景下,面对全量数据更新、重新计算主索引的需求时,会导致主索引号无法与历史索引保持一致。
第二种,固定以医疗机构ID+医疗机构内患者ID为主索引号生成依据,理由是这两个字段相对稳定,不易发生变化,且在各家医疗机构的信息化系统中,这两个字段都是必备的,只要医疗机构系统不出现大的变更,就可以一定程度上保证主索引号的稳定。但是,这种方案依然有人提出质疑,就是同一患者会在多家医疗机构出现,在全量数据更新、重新计算主索引时,没有办法保证每次计算的顺序一样。
第三种,结合数据合规性和匹配规则作为主索引号生成依据,初衷是可作为匹配因子的患者信息通常比较稳定。这种比较复杂,需要首先根据匹配规则的优先级,判断哪一组匹配因子的数据合规,然后根据合规的匹配因子组合进行计算。由于匹配因子组合涉及患者出生日期、姓名、性别等社会学信息,也涉及身份证号、机构ID等标识信息,所以同一系统中的主索引号的生成依据各不相同。同时,基于院内数据现状,患者信息缺失、出错的比例较高,发生变化的几率也比较大,个人认为,是一种逻辑最为复杂、最无法保证索引号稳定性、且并发性能最低的方案。
个人比较倾向于第二种,对存量数据,可通过约定一定的机构顺序,保证多次计算情况下,基于同一家医疗机构的ID计算。既能一定程度保证主索引号的稳定,又能兼顾高并发、实时响应的要求。
简书的技术大拿们,也请不吝赐教。