开发参考
DRG_javascript
打包方式&测试方法
安装node.js 在项目根目录执行npm install,系统会自动安装打包工具rollup、webpack
rollup
在项目根目录执行npm run rollup或者npx rollup --config 打开在项目根目录下的index.html页面进行测试
rollup打包方式,调用参考index.html
async function group(record,type){
const {GroupProxy} =await import('./drg_group/'+type+'/GroupProxy.js');
let grouper=new GroupProxy();
let result=grouper.group_record_str(record);
return result;
}
function click(){
let result=group(input.value,select.value);
result.then(x=>{
div_result.innerHTML=JSON.stringify(x);
});
}
webpack
修改package.json,删除"type": "module"(如果用rollup打包则需要加上这一项) 在项目根目录执行npm run webpack或者npx webpack 打开/dist/index.html页面进行测试
webpack打包方式,调用参考index.js
let result = new GroupProxy_chs_drg_11().group_record_str(text);
result.then(x=>{
let result=GroupResult.toString(x);
document.getElementById("result").innerHTML = result.replace("\n", "<br>");
})
接口说明
- group_record_str
输入参数为String,格式如"22058878,2,88,32460,,13040503,94,1,K80.302|K80.305|K83.109|K72.905|Z90.408|E14.900x001,51.8803|51.8701|54.5100x005|45.1301" 将MedicalRecord类的11个属性用逗号拼接,其中:zdList、ssList的类型是String[],多个元素用|分隔;remark字段可选
- group_record
传入js对象或字典,属性见MedicalRecord
返回结果说明
返回结果为GroupResult类
- Index:带入输入对象MedicalRecord的Index字段,建议使用病案号或住院号,保持唯一性
- status:分组结果,“分组成功”代表分组成功,其他定义见DrgGroupStatus类
- messages:分组过程,列表格式,包括ICD编码转换信息、名称信息,以及DRG分组每一步操作的记录,是什么结果,应用了哪些规则
- mdc:主要诊断大类,分组成功或分入歧义组是有值
- adrg:核心DRG组代码,校验通过后有值,分入歧义组时为QY,没有分到组时为00
- drg:DRG组代码,校验通过后有值,分入歧义组时为*QY,没有分到组时为00
OpenDRG_Java
apache ant 打包
可采用apache ant方式打包,需下载安装,官网地址:https://ant.apache.org/ 进入每个版本分组器的build.xml所在目录,执行ant jar命令,将在该版本分组器目录的build/jar路径下生成jar文件 如:
cd drg_group/chs_drg_11
ant jar
生成文件路径:drg_group/chs_drg_11/build/jar/grouper_chs_drg_11.jar
Maven
略
测试方法
将run.cmd和打包好的jar文件放在同一目录,双击执行run.cmd执行,打开的控制台窗口中,如果输出以下信息,则说明程序可以正常执行:
MedicalRecord [Index=22058878, gender=2, age=88, ageDay=32460, weight=0, dept=13040503, inHospitalTime=94, leavingType=1, zdList=[K22.301, K11.901, E11.900, I10.x05], ssList=[96.0800x005], remark=]
GroupResult [Index=22058878, status=分组成功, messages=[K22.301 食管破裂, K11.901 腮腺区肿物, E11.900 2型糖尿病, I10.x05 高血压3级, 96.0800x005 鼻十二指肠营养管置入术, 符合MDCG入组条件,匹配规则:主诊断匹配, 符合GZ1入组条件,匹配规则:主诊 断匹配, 主诊断K22.301排除表111, 主诊断K22.301排除表111, 诊断K11.901属于CC,排除表110, ***GZ13 其他消化系统诊断,伴并发症或合并症***], mdc=MDCG, adrg=GZ1, drg=GZ13]
Java系统调用方式
外部系统引入分组器jar包,调用GroupProxy类的以下方法:
- group_record
输入参数为String,格式如"22058878,2,88,32460,,13040503,94,1,K80.302|K80.305|K83.109|K72.905|Z90.408|E14.900x001,51.8803|51.8701|54.5100x005|45.1301" 将MedicalRecord类的11个属性用逗号拼接,其中:zdList、ssList的类型是String[],多个元素用|分隔;remark字段可选 返回结果为GroupResult对象
- group_txt
无输入参数,程序自动读取当前目录下的input.txt文件,如文件不存在则报错 input.txt内容参考源代码根目录下的文件 执行成功后在当前目录下生成output.txt文件,内容为一个或多个GroupResult对象
- group_csv
输入参数filename为CSV文件路径,cols参数为CSV文件中分组所需字段的列名,传入List cols输入的列名需要与MedicalRecord类的属性(Index,gender,age,ageDay,weight,dept,inHospitalTime,leavingType,zdList,ssList,remark)顺序保持一致 输出结果为CSV文件,保存在输入filename的相同路径,并在输入文件名称后面加上_java_result,结果CSV的列在输入列的基础上增加了status,messages,mdc,adrg,drg这几列
推荐使用group_record。group_txt一般用于测试,group_csv用于数据分析
返回结果说明
返回结果为GroupResult类
- Index:带入输入对象MedicalRecord的Index字段,建议使用病案号或住院号,保持唯一性
- status:分组结果,“分组成功”代表分组成功,其他定义见DrgGroupStatus类
- messages:分组过程,列表格式,包括ICD编码转换信息、名称信息,以及DRG分组每一步操作的记录,是什么结果,应用了哪些规则
- mdc:主要诊断大类,分组成功或分入歧义组时有值
- adrg:核心DRG组代码,校验通过后有值,分入歧义组时为QY,没有分到组时为00
- drg:DRG组代码,校验通过后有值,分入歧义组时为*QY,没有分到组时为00
OpenDRG_CSharp
进入每个版本分组器的build.xml所在目录,执行dotnet publish命令,将在该版本分组器目录的bin路径下生成exe、dll等文件 如:
dotnet publish drg_group/chs_drg_11/chs_drg_11.csproj
生成文件路径:drg_group/chs_drg_11/bin/Debug/net6.0/chs_drg_11.dll
C#系统调用方式
外部系统引入分组器dll文件,方法,略
测试方法
进入发布目录 双击执行run.cmd进行测试,打开的控制台窗口中,如果输出以下信息,则说明程序可以正常执行:
MedicalRecord [Index=22058878, gender=2, age=88, ageDay=32460, weight=0, dept=13040503, inHospitalTime=94, leavingType=1, zdList=[K22.301, K11.901, E11.900, I10.x05], ssList=[96.0800x005], remark=]
GroupResult [Index=22058878, status=分组成功, messages=[K22.301 食管破裂, K11.901 腮腺区肿物, E11.900 2型糖尿病, I10.x05 高血压3级, 96.0800x005 鼻十二指肠营养管置入术, 符合MDCG入组条件,匹配规则:主诊断匹配, 符合GZ1入组条件,匹配规则:主诊 断匹配, 主诊断K22.301排除表111, 主诊断K22.301排除表111, 诊断K11.901属于CC,排除表110, ***GZ13 其他消化系统诊断,伴并发症或合并症***], mdc=MDCG, adrg=GZ1, drg=GZ13]
接口说明
- group_record
输入参数为String,格式如"22058878,2,88,32460,,13040503,94,1,K80.302|K80.305|K83.109|K72.905|Z90.408|E14.900x001,51.8803|51.8701|54.5100x005|45.1301" 将MedicalRecord类的11个属性用逗号拼接,其中:zdList、ssList的类型是String[],多个元素用|分隔;remark字段可选 返回结果为GroupResult对象
- group_txt
无输入参数,程序自动读取当前目录下的input.txt文件,如文件不存在则报错 input.txt内容参考源代码根目录下的文件 执行成功后在当前目录下生成output.txt文件,内容为一个或多个GroupResult对象
- group_csv
输入参数filename为CSV文件路径,cols参数为CSV文件中分组所需字段的列名,传入List cols输入的列名需要与MedicalRecord类的属性(Index,gender,age,ageDay,weight,dept,inHospitalTime,leavingType,zdList,ssList,remark)顺序保持一致 输出结果为CSV文件,保存在输入filename的相同路径,并在输入文件名称后面加上_java_result,结果CSV的列在输入列的基础上增加了status,messages,mdc,adrg,drg这几列
推荐使用group_record。group_txt一般用于测试,group_csv用于数据分析
返回结果说明
返回结果为GroupResult类
- Index:带入输入对象MedicalRecord的Index字段,建议使用病案号或住院号,保持唯一性
- status:分组结果,“分组成功”代表分组成功,其他定义见DrgGroupStatus类
- messages:分组过程,列表格式,包括ICD编码转换信息、名称信息,以及DRG分组每一步操作的记录,是什么结果,应用了哪些规则
- mdc:主要诊断大类,分组成功或分入歧义组是有值
- adrg:核心DRG组代码,校验通过后有值,分入歧义组时为QY,没有分到组时为00
- drg:DRG组代码,校验通过后有值,分入歧义组时为*QY,没有分到组时为00
OpenDRG_Python
测试方法
双击执行run.cmd进行测试,打开的控制台窗口中,如果输出以下信息,则说明程序可以正常执行:
MedicalRecord [Index=22058878, gender=2, age=88, ageDay=32460, weight=0, dept=13040503, inHospitalTime=94, leavingType=1, zdList=[K22.301, K11.901, E11.900, I10.x05], ssList=[96.0800x005], remark=]
GroupResult [Index=22058878, status=分组成功, messages=[K22.301 食管破裂, K11.901 腮腺区肿物, E11.900 2型糖尿病, I10.x05 高血压3级, 96.0800x005 鼻十二指肠营养管置入术, 符合MDCG入组条件,匹配规则:主诊断匹配, 符合GZ1入组条件,匹配规则:主诊 断匹配, 主诊断K22.301排除表111, 主诊断K22.301排除表111, 诊断K11.901属于CC,排除表110, ***GZ13 其他消化系统诊断,伴并发症或合并症***], mdc=MDCG, adrg=GZ1, drg=GZ13]
也可以在控制台输入:
python -m drg_group.chs_drg_11.GroupTest "22058878,2,88,32460,,13040503,94,1,K22.301|K11.901|E11.900|I10.x05,96.0800x005"
需切换到程序根目录
Python系统调用方式
外部系统import GroupProxy类后,调用以下方法:
- group_record
输入参数为String,格式如"22058878,2,88,32460,,13040503,94,1,K80.302|K80.305|K83.109|K72.905|Z90.408|E14.900x001,51.8803|51.8701|54.5100x005|45.1301" 将MedicalRecord类的11个属性用逗号拼接,其中:zdList、ssList的类型是String[],多个元素用|分隔;remark字段可选 返回结果为GroupResult对象
- group_txt
无输入参数,程序自动读取当前目录下的input.txt文件,如文件不存在则报错 input.txt内容参考源代码根目录下的文件 执行成功后在当前目录下生成output.txt文件,内容为一个或多个GroupResult对象
- group_csv
输入参数filename为CSV文件路径,cols参数为CSV文件中分组所需字段的列名,传入List cols输入的列名需要与MedicalRecord类的属性(Index,gender,age,ageDay,weight,dept,inHospitalTime,leavingType,zdList,ssList,remark)顺序保持一致 输出结果为CSV文件,保存在输入filename的相同路径,并在输入文件名称后面加上_java_result,结果CSV的列在输入列的基础上增加了status,messages,mdc,adrg,drg这几列 调用此接口需要pandas插件,如不想依赖pandas可自行实现pd.read_csv方法完成CSV文件解析
推荐使用group_record。group_txt一般用于测试,group_csv用于数据分析
返回结果说明
返回结果为GroupResult类
- Index:带入输入对象MedicalRecord的Index字段,建议使用病案号或住院号,保持唯一性
- status:分组结果,“分组成功”代表分组成功,其他定义见DrgGroupStatus类
- messages:分组过程,列表格式,包括ICD编码转换信息、名称信息,以及DRG分组每一步操作的记录,是什么结果,应用了哪些规则
- mdc:主要诊断大类,分组成功或分入歧义组是有值
- adrg:核心DRG组代码,校验通过后有值,分入歧义组时为QY,没有分到组时为00
- drg:DRG组代码,校验通过后有值,分入歧义组时为*QY,没有分到组时为00
联系开发团队
请发邮件至 OpenDRG#hotmail.com