hongshanhealth/irmi-core

红杉健康医保智能审核核心类库,Intelligent review of medical insurance

v0.1 2025-01-02 03:30 UTC

This package is auto-updated.

Last update: 2025-01-02 03:38:40 UTC


README

红杉健康医保智能审核核心类库,Intelligent review of medical insurance

测试用例执行方法

  • 当前支持参数,-p为指定的测试目录,-n为指定的文件名(无需后缀,默认json后缀)
  • 执行全部测试:composer irmi
  • 执行指定目录下所有文件:composer irmi -- -p alone
  • 执行指定目录下指定文件:composer irmi -- -p alone -n case1

智能审核规则结构,IRMIRule

  • 规则结构参数介绍

    options参数说明

    • visit_type:就诊类型,1-门诊,2-住院;
    • time_range:时间范围,第一个为开始时间(大于等于),第二个为结束时间(小于),如果为null,则不限制时间,示例[1535731200,null]
    • unit_type:数量单位,如果为num,代表数量,取num属性的值,如果为cash,取cash属性的值
    • num:如果直接为数字,则代表本身含义,如果是一个对象,其属性定义如下
      • type:含义为,1-原始数字,2-病例中的某个属性,3-另一个项目的数量;
      • value: 具体数值
      • property: 如果type为2,则有该属性,属性值为病例中的属性名
      • coefficient:计算系数,如果type为2,且设置了该系数,则会将指定属性的值乘以该系数
      • item_code:如果type为3,则有该属性,属性值为另一个项目的编码
    • detect_type:检测方式,1-按日,2-范围;
    • combine_items:合并计数的项目,数组,每个元素是项目编码,用于将指定编码的数据一同累计数量;
    • exclude_items:排除项目配置
      • time_type:时间类型,1-按日,2-全部
      • collection:排除项目明细集合,是一个对象,每个key都是排除的项目编码,如果为null则代表没有更具体配置
        • combine_items:需要联合其他的项目才不触发
    • include_items:包含项目配置,只要有一个项目包含就可以
      • time_type:时间类型,1-按日,2-全部
      • collection:包含项目明细集合,是一个对象,每个key都是包含的项目编码,如果为null则代表没有更具体配置
    • discount_target:打折目标,1-其他项目打折,2-自己打折;
    • ratio:折扣比例,自身折扣比例,如果存在num配置,说明要超过指定数量部分才打折;
    • discount_items:打折的其他项目,key是目标项目编码,value是对象
      • ratio:折扣比例
    • period:周期配置项
      • type:周期类型,1-次、2-日、3-周、4-月、5-年
      • num:周期数量,如1次、5日、十周;
      • sub_num:周期内的子数量,比如周期是日,子数量是2
    • age_range:年龄范围,数组,第一个为开始年龄(大于),第二个为结束年龄(小于),如果为null,则不限制年龄,示例[18,null]
    • (暂未实现)date_interval:日期间隔配置
      • num:间隔数量,如5日、三月
      • type:间隔时间类型,1-日,2-月,3-年
  • 智能审核规则计算器

    • insurance:医保相关
      • type=1,DuplicateCharge,重复收费
        • sub_type=1,重复收费
          • time_range
          • include_items、exclude_items
      • type=2,OverStandardCharge,超标准收费
        • sub_type=1,当前项目计费量超过指定量
          • time_range
          • include_branch、exclude_branch
          • unit_type、num、
          • detect_type
          • combine_items
        • sub_type=2,检测多项目同时存在的折扣费用
          • time_range
          • detect_type
          • discount_items、discount_target、ratio
      • type=3,OverInsuranceCharge,超医保费用
        • sub_type=1,超医保费用
          • time_range
          • visit_type
          • age_range
          • total_days
          • period
          • include_items、exclude_items
      • type=4,UnReasonableTreatment,不合理诊疗
        • sub_type=1,检测医保项目同时收费或未同时收费
          • time_range
          • include_items、exclude_items
        • sub_type=2,属性不符合要求
          • time_range
          • include_branch、exclude_branch
          • property
  • 规则示例数据,IRMIRuleSet集合json格式

    {
        "code": "01",
        "name": "规则集",
        "rules": [
            {
                "code": "01-01",
                "name": "重复收费",
                "item_code": "120300001b",
                "item_name": "持续吸氧",
                "type": 1,
                "options": {
                    "exclude_items": {
                        "002": {
                            "time_type": 1
                        },
                        "003/呼吸机辅助呼吸": {
                            "num": 1,
                            "time_type": 1
                        }
                    },
                    "time_range": [
                        969356516,
                        null
                    ],
                    "pathology_check": [
                        "004",
                        "005"
                    ]
                }
            },
            {
                "code": "02-01",
                "name": "超标准收费[指定项目数量超过住院天数]",
                "item_code": "110200005",
                "item_name": "住院诊查费",
                "type": 2,
                "sub_type": 1,
                "options": {
                    "exclude_branch": [
                        "05",
                        "05.01",
                        "05.02",
                        "05.03",
                        "05.04",
                        "05.05",
                        "05.06",
                        "06",
                        "06.01",
                        "06.02",
                        "06.03",
                        "06.04",
                        "06.05",
                        "06.06"
                    ],
                    "coefficient": 1,
                    "time_range": [
                        null,
                        1609430400
                    ]
                }
            },
            {
                "code": "02-02",
                "name": "超标准收费[指定项目当日收费超过X(元、数量)]",
                "item_code": "330100008",
                "item_name": "术后镇痛",
                "type": 2,
                "sub_type": 2,
                "options": {
                    "unit": "price",
                    "num": 5,
                    "time_range": [
                        1535731200,
                        null
                    ]
                }
            },
            {
                "code": "02-03",
                "name": "超标准收费[与指定项目当日收费超过X(元、数量)]",
                "item_code": "330100008",
                "item_name": "术后镇痛",
                "type": 2,
                "sub_type": 3,
                "options": {
                    "unit": "price",
                    "num": 5,
                    "time_range": [
                        1535731200,
                        null
                    ]
                }
            }
        ]
    }
    

病历结构,MedicalRecord

  • 病历结构参数介绍

    • medical_insurance_set参数中每个项目结构说明
      • key:时间戳,每天0点,代表日期
      • value:该日期下所有项目数据,kv结构如下
        • key:项目编码
        • value:该项目每次开单的数据,数组,每个元素结构如下
          • code:项目编码
          • name:项目名称
          • time:项目发生时间
          • num:项目数量
          • price:项目标准价格
          • cash:项目实收价格
          • total_cash:项目总实收价格
  • 病历示例数据,MedicalRecort的json格式

    {
        "code": "0000001",
        "sex": 1,
        "age": 20,
        "age_day": null,
        "weight": null,
        "birth_weight": null,
        "in_branch": "01",
        "out_branch": "02",
        "in_days": 2,
        "visit_type": 2,
        "in_date": 1722470400,
        "out_date": 1722592800,
        "hospital_code": "79314258",
        "hospital_type": "精神病",
        "hospital_level": "医院级别",
        "hospital_bussiness_type": 1,
        "medical_insurance_set": {
            "1722441600": {
                "120300002b": [
                    {
                        "code": "120300002b",
                        "name": "XX费用",
                        "time": 1722474000,
                        "num": 2,
                        "price": 19.00,
                        "cash": 19.00,
                        "total_cash": 38.00
                    }
                ]
            },
            "1722528000": {
                "120300002b": [
                    {
                        "code": "120300002b",
                        "name": "XX费用",
                        "time": 1722564000,
                        "num": 1,
                        "price": 19.00,
                        "cash": 19.00,
                        "total_cash": 19.00
                    }
                ]
            }
        }
    }
    

临时数据结构

  • 键名为medical_insurance_item_with_code的临时数据格式
    {
        "120300002b": [{
            "date": 1726243200,
            "time": 1726275600,
            "num": 2,
            "price": 19.00,
            "cash": 19.00,
            "total_cash": 38.00
        }]
    }
    

错误信息数据格式

{
	"state": 200,
	"msg": "错误具体内容",
	"data": [{
		"rule": {
			"code": "01-02",
			"name": "重复收费",
			"item_code": "对应项目编码",
			"item_name": "对应项目名称"
		},
		"item": {
			"name": "对比的项目名称",
			"code": "对比的项目编码"
		}
	}]
}