HIS报表数据源书写规范

获得积分
资料库会员登录
搜索: [高级搜索]
下载首页 | 资源分类 | 下载排行
您的位置: 首页 > 医疗CIO百宝箱 > 医院报表
 
分类导航
下载排行
最新资源
HIS报表数据源书写规范
资源大小:24.23 KB 资源类型:文档
下载积分: 0
更多
-->
下载统计:总下载:0,本月下载:0,本周下载:0,今日下载:0
发表评论 错误报告 加入收藏夹
资源介绍
1.        引言
1.1        目的
        自定义报表制作是售后服务工作的重要部分,目前在报表编写中存在代码书写不规范、性能问题突出,主要表现在:
        数据源名称定义不标准
        SQL语句书写不规范
        格式混乱
        造成他人不能直观的理解数据源的作用,给报表的日常维护和调整带来了困难,也不便于管理和价值分析。为了规范数据源的书写,保证报表的SQL性能特编写规范。
        良好的书写习惯和统一编码规范是提高代码可靠性与可读性非常重要的手段,我们希望通过遵循本规范来避免不好的书写风格,增强代码的易读性,可靠性和可维护性,便于自己和其它人员理解和后期维护。
       
1.2        术语解释
参数: 确定报表条件值的范围和类型,并将用户输入的数值传回数据源,构造成完整的SQL语句。
驱动表:驱动表(Driving Table)又称为外层表(OUTER TABLE)。这个概念用于嵌套与HASH连接中。如果该row source返回较多的行数据,则对所有的后续操作有负面影响。注意此处虽然翻译为驱动表,但实际上翻译为驱动行源(driving row source)更为确切。一般说来,是应用查询的限制条件后,返回较少行源的表作为驱动表,所以如果一个大表在WHERE条件有有限制条件(如等值限制),则该大表作为驱动表也是合适的,所以并不是只有较小的表可以作为驱动表,正确说法应该为应用查询的限制条件后,返回较少行源的表作为驱动表。

2.        规范内容
2.1        数据源头注释
       一个易于阅读、理解的数据源头注释必须包括以下内容:
        作者
        编写日期
        所属的产品类别(HIS,病案,物资等)
        程序版本号
        作用
        特殊说明
        修改者
        修改日期
        修改原因

示例:
/*------------------------------------------------------------------------------------------------------------
作者:
编写日期: 06年06月06日
产品类别:HIS
程序版本:10.13
作用:统计一个月门诊医生开单总量与金额
说明:
修改情况:1.修改者:  修改日期: 11年X月XX日
          2.修改者:XXX   修改日期:XX年XX月XX日
修改原因:
------------------------------------------------------------------------------------------------------------*/
2.2        语句注释
语句注释主要用于对SQL语句中关键的算法或函数使用进行说明,便于阅读者能够快速理解语句。
        注释单独成行、放在语句前面
        应对不易理解的分支条件表达式加注释
        重要的函数应说明其功能
        过长的函数实现,应将其语句按实现的功能分段加以概括性说明
        常量及变量注释时,应注释被保存值的含义(必须),合法取值的范围(可选)
        只能采用多行注释 (‘/* ‘,’*/ ‘)方式,因为在报表工具中对单行注释有时会处理错误。

示例:
/*统计一个时间段门诊各部门的开单情况*/
SELECT No, 姓名 || '_' || 病人id AS "病人 信息", b.名称 AS 开单部门, 收据费目,
   NVL (付数,1) * NVL (数次,1) * NVL (标准单价,1) AS 单据金额
FROM 病人费用记录 a, 部门表 b
WHERE a.病人科室id = b.Id(+)
AND a.记录性质 = 1
AND a.No = 'G000001'
AND a.记录状态 IN (0, 1)

2.3        列别名定义
   为了方便快速的调用和阅读,我们需要定义别名:
        别名定义要突出主题
        别名与列名之间用”AS”联接
        如果包含空格、特殊字符或区分大小写,则使用双引号

示例:
SELECT No, 姓名 || '_' || 病人id  AS "病人 信息", b.名称 AS 病人科室, 收据费目,
NVL (付数,1) * NVL (数次,1) * NVL (标准单价,1) AS 单据金额
FROM 病人费用记录 a, 部门表 b
WHERE a.病人科室id = b.Id(+)
AND a.记录性质 = 1
AND a.No = 'G000001'
AND a.记录状态 IN (0, 1)

2.4        关键字定义
SQL语句中的系统保留字、内置函数名、SQL保留字都可称之为关键字。可以将关键字首字母大写,或所有关键字大写,但在同一数据源中必须相同,关键字书写风格必须相同,不能混用。
如下这段代码就是不规范的代码:
Select  No, 姓名 || '_' || 病人id  AS "病人 信息", b.名称 AS 病人科室, 收据费目,
NVL (付数,1) * NVL (数次,1) * NVL (标准单价,1) AS 单据金额
from 病人费用记录 a, 部门表 b
WHERE  a.病人科室id = b.Id(+)
aND a.记录性质 = 1
anD a.No = 'G000001'
AND a.记录状态 IN (0, 1)


2.5        函数的使用及格式
不正确的使用函数会造成SQL语句执行效率的低下和不易阅读,所以大家在使用函数一定要注意正确的方法。
下面列举几个例子说明:        SELECT No, 姓名 || '_' || 病人id  AS "病人 信息", b.名称 AS 病人科室, 收据费目,
NVL (付数,1) * NVL (数次,1) * NVL (标准单价,1) AS 单据金额
FROM 病人费用记录 a, 部门表 b
WHERE a.病人科室id = b.Id(+)
AND a.记录性质 = 1
AND a.No = 'G000001'
AND a.记录状态 IN (0, 1)

示例1:to_date与to_char的函数的转换
我们知道在表达式的左边进行了任何计算都不能用到索引,会影响SQL的性能。在实际应用中,我们发现一些使用函数的SQL语句是可以转换的。
下面这段SQL使用了to_char函数判断时间,将不能使用索引
下载地址
 下载地址1
按字母检索

下载须知:
大部份资源无需注册即可下载
需要积分的资源要在会员中心注册会员并用 积分体系中提示的方法赚取积分才能下载。

免责声明:
所有资源只能用于参考学习,不能用于任何商业用途,否则后果自负!