⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modreportedit.bas

📁 1、以DLL形式提供医生工作站 2、 根据【检查项目】
💻 BAS
📖 第 1 页 / 共 3 页
字号:
Attribute VB_Name = "modReportEdit"
'----------------------------------------------------------------------------------------------------
'文件:modReportEdit.bas
'作者:冷家锋
'时间:2008-11-11
'说明:报告编辑界面所需相关方法
'----------------------------------------------------------------------------------------------------




Option Explicit

'全局变量

'检查部位分类数组
'g_CheckMainParts(0-N,0-1):g_CheckMainParts(0-N,0)存放部位ID,g_CheckMainParts(0-N,1)存放部位NAME
Public g_CheckMainParts() As String

'子部位数组
'g_CheckSubParts(0-N,0-2):g_CheckSubParts(0-N,0)存放子部位ID,g_CheckSubParts(0-N,1)存放子部位NAME
'g_CheckSubParts(0-N,2)子部位检查方法,g_CheckSubParts(0-N,3)子部位检查费用



Public g_CheckSubParts() As String

Public g_bModifyReport As Boolean

'TREEVIEW KEY值 前缀
Const PRE_KEY_MAIIN = "M"
Const PRE_KEY_SUB = "S"
'
''==支持类型=======================================================
'Public Type TypePatientInfo
'    PATIENT_ID As String    '患者ID
'    PATIENT_NAME As String  '患者姓名
'    PATIENT_NAME_PHONETIC As String '姓名拼音
'    PATIENT_SEX As String       '患者性别
'    PATIENT_AGE As String       '年龄               1-----5
'    AGE_WEIGHT As String        '年龄单位
'    PATIENT_BIRTHDAY As String '出生日期
'    APPLY_DEPT_ID As String     '申请科室ID/全称
'    APPLY_DOCT_ID As String     '申请医生ID/真实姓名
'    VISIT_AREA As String            '病区编号       '目前为空,
'    STATE As String                     '患者来源,住院/门诊        6-------10
'    HOSPITAL_NUM As String      '住院号
'    BED_NUM As String               '病床号
'    STUDY_DATE  As String           '拍片时间
'    MACHINE_NAME As String      '拍片设备型号
'    ALL_CHECK_PART As String    '检查部位
'    CHECK_DOCTOR_ID As String '检查医师ID/真实姓名
'    CHECK_DATE  As String           '检查日期                   11--------15
'    AUDIT_DOCTOR_ID  As String  '审核医生ID/真实姓名
'    AUDIT_DATE As String                '审核日期
'    FILM_DESCRIPTION As String      '影像描述
'    DIAGNOSIS_RESULT As String              '检查结果
'    DOCTOR_ADVICE As String             '医师建议              16---------20
'    CHECK_FEE As String                     '检查费用
'    EXAM_CLASS As String                    '检查主部位
'    METHOD As String                        '检查方式
'    NEGATIVE As String                          '阴性?                  '新建报告,不需设置
'    IS_EMERGENT As String                   '是否急诊               '新建报告,不需设置, 审核过的报告需去除<急诊标识>
'    CHECK_STATE As String       '报告状态
'End Type

Public Type DeptInfo
    DEPT_ID As String   '科室ID
    DEPT_NAME As String '科室名称
End Type

'申请科室数组
Public g_ApplylDept() As DeptInfo

'=========================================================









'作者:刘辉
'时间:2008-11-11
'功能:根据影像科室获取其检查部位分类
'//[STRING] p_FilmDeptID[IN]--影像科室ID
'//[ADODB.Connection] p_MyConn[IN]--数据库连接
'//[STRING] p_strErr[OUT]--错误信息
 
Public Function InitMainCheckParts(ByVal p_FilmDeptID As String, _
    ByVal p_MyConn As ADODB.Connection, ByRef p_strErr As String) As Boolean
On Error GoTo ErrHandler
    If p_FilmDeptID = "" Then
        InitMainCheckParts = False
        p_strErr = "p_FilmDeptID 为空"
        Exit Function
    End If
    
    If p_MyConn Is Nothing Then
        InitMainCheckParts = False
        p_strErr = "p_MyConn 为空"
        Exit Function
    End If
    
    Dim strSql As String
    strSql = "SELECT ID,NAME FROM CHECKMAINPART WHERE DEPT_ID ='" + p_FilmDeptID + "'"

    Dim rsCheckParts As New ADODB.Recordset
    If rsCheckParts.STATE = adStateOpen Then
        rsCheckParts.Close
    End If
    
    rsCheckParts.Open strSql, p_MyConn
    
    Dim nCount As Long
    Dim i As Long
    nCount = rsCheckParts.RecordCount
    ReDim g_CheckMainParts(nCount, 2)
    If nCount > 0 Then
        For i = 0 To nCount - 1
            If Not IsNull(Trim(rsCheckParts.Fields("ID"))) _
                And Not IsNull(rsCheckParts.Fields("NAME")) Then
                g_CheckMainParts(i, 0) = Trim(rsCheckParts.Fields("ID"))
                g_CheckMainParts(i, 1) = Trim(rsCheckParts.Fields("NAME"))
            End If
            rsCheckParts.MoveNext
        Next
    End If
    
    InitMainCheckParts = True
    Exit Function
ErrHandler:
    InitMainCheckParts = False
    p_strErr = "InitMainCheckParts" + Err.Description
End Function

'作者:刘辉
'时间:2008-11-11 10:40
'功能:根据部位分类ID初始化子部位数组
'//[STRING] p_MainCheckPartID[IN]--检查部位分类
'//[ADODB.Connection] p_MyConn[IN]--数据库连接
'//[STRING] p_strErr[OUT]--错误信息
Public Function InitSubCheckParts(ByVal p_MainCheckPartID, _
    ByVal p_MyConn As ADODB.Connection, ByRef p_strErr As String) As Boolean
On Error GoTo ErrHandler
    If p_MainCheckPartID = "" Then
        p_strErr = "p_MainCheckPartID为空!"
        InitSubCheckParts = False
        Exit Function
    End If
    
    If p_MyConn Is Nothing Then
        p_strErr = "p_MyConn为空"
        InitSubCheckParts = False
        Exit Function
    End If
    
    Dim rsCheckSubParts As New ADODB.Recordset
    Dim i As Long
    Dim nCount As Long
    Dim strSql As String
    
    If rsCheckSubParts.STATE = adStateOpen Then
        rsCheckSubParts.Close
    End If
    
    strSql = "SELECT ID,NAME,CHECK_METHOD,CHARGE FROM CHECKSUBPART " _
        + " WHERE CHECKMAINPARTID ='" + p_MainCheckPartID + "'"
    
    rsCheckSubParts.Open strSql, p_MyConn
    
    nCount = rsCheckSubParts.RecordCount
    ReDim g_CheckSubParts(nCount, 4)
    If nCount > 0 Then
        For i = 0 To nCount - 1
            If Not IsNull(rsCheckSubParts.Fields("ID")) _
                And Not IsNull(rsCheckSubParts.Fields("NAME")) Then
                g_CheckSubParts(i, 0) = Trim(rsCheckSubParts.Fields("ID"))
                g_CheckSubParts(i, 1) = Trim(rsCheckSubParts.Fields("NAME"))
            End If
            
            If Not IsNull(rsCheckSubParts.Fields("CHECK_METHOD")) Then
                g_CheckSubParts(i, 2) = Trim(rsCheckSubParts.Fields("CHECK_METHOD"))
            End If
            
            If Not IsNull(rsCheckSubParts.Fields("CHARGE")) Then
                g_CheckSubParts(i, 3) = Trim(rsCheckSubParts.Fields("CHARGE"))
            End If
            rsCheckSubParts.MoveNext
        Next
    End If
    Exit Function
ErrHandler:
    InitSubCheckParts = False
    p_strErr = Err.Description
End Function



'作者:冷家锋
'时间:2008-11-11-09-01
'说明: 根据CHECK_LIST ID初始化患者信息
'p_CheckListID<IN>:CHECKLIST的ID
'p_PatientInfo<OUT>:患者信息结构体(类型)
'p_DBConn<IN>:数据库连接
'返回值:患者信息初始化正确,返回TRUE,否则返回FALSE
Public Function InitPatientInfo(ByVal p_strCheckListID As String, _
    ByRef p_PatientInfo As ClsPatientInfo, ByVal p_DBConn As ADODB.Connection, _
    ByRef p_strError As String) As Boolean
On Error GoTo ErrHandler
        If Trim(p_strCheckListID) = "" Then
            p_strError = "CHECKLIST_ID为空"
            InitPatientInfo = False
            Exit Function
        End If
                
        If p_DBConn Is Nothing Then
            p_strError = "数据库连接尚未初始化"
            InitPatientInfo = False
            Exit Function
        End If
        
        If p_DBConn.STATE <> adStateOpen Then
             p_strError = "数据库连接尚未初始化"
            InitPatientInfo = False
            Exit Function
        End If
'===================================================================
        
        
        Dim strSql As String
        Dim rsPatient As New ADODB.Recordset
        
        strSql = "SELECT PATIENT_ID AS 编号 ,to_char(MACHINE_NAME) || FILM_NO AS 设备检查序号,PATIENT_NAME AS 姓名," _
        + " PATIENT_NAME_PHONETIC AS 姓名拼音,PATIENT_SEX AS 性别,PATIENT_BIRTHDAY AS 出生日期," _
        + " PATIENT_AGE AS 年龄 ,AGE_WEIGHT AS 年龄单位," _
        + " ALL_CHECK_PART as 拍片部位,STATE AS 状态,HOSPITAL_NUM AS 住院号,BED_NUM AS 病床号," _
        + " APPLY_DEPT_ID AS 申请科室,APPLY_DOCT_ID AS 申请医师, ALL_CHECK_PART  AS 原始部位, " _
        + " CHECK_DOCT_ID AS  检查医师, CHECK_DATE AS 检查日期,CHECK_STATE AS 报告状态 ,IS_EMERGENCY AS 是否急诊," _
        + " AUDIT_DOCT_ID as 审核医师, AUDIT_DATE AS 审核日期," _
        + " FILM_DESCRIPTION AS 影像描述, FILM_IMPRESSION AS 诊断结果 ,CHECK_FEE as 检查费用,EXAM_CLASS as 主部位 ,METHOD as 检查方式 " _
        + " FROM CHECK_LIST " _
        + " WHERE  ID='" + p_strCheckListID + "'"

        If rsPatient.STATE = adStateOpen Then
            rsPatient.Close
        End If
    
        rsPatient.Open strSql, p_DBConn
        
        If rsPatient.RecordCount <= 0 Then
            MsgBox "获取该患者信息失败, 请与系统管理员联系!", vbExclamation, "提示"
            Exit Function
        End If
        
        If Not IsNull(rsPatient.Fields("编号")) Then
            p_PatientInfo.PATIENT_ID = rsPatient.Fields("编号")
        Else
            p_PatientInfo.PATIENT_ID = "未知"
        End If
        
        If Not IsNull(rsPatient.Fields("姓名")) Then
            p_PatientInfo.PATIENT_NAME = rsPatient.Fields("姓名")
        Else
           p_PatientInfo.PATIENT_NAME = ""
        End If
        
        
        If Not IsNull(rsPatient.Fields("姓名拼音")) Then
            p_PatientInfo.PATIENT_NAME_PHONETIC = rsPatient.Fields("姓名拼音")
        Else
            p_PatientInfo.PATIENT_NAME_PHONETIC = "未知"
        End If

        If Not IsNull(rsPatient.Fields("性别")) Then
            p_PatientInfo.PATIENT_SEX = rsPatient.Fields("性别")
        End If
        
        If Not IsNull(rsPatient.Fields("年龄")) Then
            p_PatientInfo.PATIENT_AGE = rsPatient.Fields("年龄")
        Else
            p_PatientInfo.PATIENT_AGE = "未知"
        End If
        
        If Not IsNull(rsPatient.Fields("年龄单位")) Then
           p_PatientInfo.AGE_WEIGHT = rsPatient.Fields("年龄单位")
        End If
    
        If Not IsNull(rsPatient.Fields("拍片部位")) Then
            p_PatientInfo.ALL_CHECK_PART = rsPatient.Fields("拍片部位")
        End If
        
        If Not IsNull(rsPatient.Fields("状态")) Then
            p_PatientInfo.STATE = rsPatient.Fields("状态")
        End If
        
        If Not IsNull(rsPatient.Fields("病床号")) Then
            p_PatientInfo.BED_NUM = rsPatient.Fields("病床号")
        End If
        
        If Not IsNull(rsPatient.Fields("住院号")) Then
            p_PatientInfo.HOSPITAL_NUM = rsPatient.Fields("住院号")
        Else
             p_PatientInfo.HOSPITAL_NUM = ""
        End If
        
        If Not IsNull(rsPatient.Fields("申请科室")) Then
            p_PatientInfo.APPLY_DEPT_ID = rsPatient.Fields("申请科室")
        End If
        
        If Not IsNull(rsPatient.Fields("申请医师")) Then
            p_PatientInfo.APPLY_DOCT_ID = rsPatient.Fields("申请医师")
        End If
        
        If Not IsNull(rsPatient.Fields("检查医师")) Then
            p_PatientInfo.CHECK_DOCTOR_ID = rsPatient.Fields("检查医师")
        End If
        
        If Not IsNull(rsPatient.Fields("检查日期")) Then
            p_PatientInfo.CHECK_DATE = rsPatient.Fields("检查日期")
        End If
        
        If Not IsNull(rsPatient.Fields("报告状态")) Then
            p_PatientInfo.CHECK_STATE = rsPatient.Fields("报告状态")
        End If
        
        If Not IsNull(rsPatient.Fields("是否急诊")) Then
            p_PatientInfo.IS_EMERGENT = rsPatient.Fields("是否急诊")
        End If
        
        If Not IsNull(rsPatient.Fields("审核医师")) Then
            p_PatientInfo.AUDIT_DOCTOR_ID = rsPatient.Fields("审核医师")
        End If
        
        If Not IsNull(rsPatient.Fields("审核日期")) Then
            p_PatientInfo.AUDIT_DATE = rsPatient.Fields("审核日期")
        End If
          
        If Not IsNull(rsPatient.Fields("影像描述")) Then
            p_PatientInfo.FILM_DESCRIPTION = rsPatient.Fields("影像描述")
        End If
        
        If Not IsNull(rsPatient.Fields("诊断结果")) Then
            p_PatientInfo.DIAGNOSIS_RESULT = rsPatient.Fields("诊断结果")
        End If
        
        
        If Not IsNull(rsPatient.Fields("检查费用")) Then
            p_PatientInfo.CHECK_FEE = rsPatient.Fields("检查费用")
        Else
            p_PatientInfo.CHECK_FEE = "0"
        End If
            
        If Not IsNull(rsPatient.Fields("主部位")) Then
            p_PatientInfo.EXAM_CLASS = rsPatient.Fields("主部位")
        Else
            p_PatientInfo.EXAM_CLASS = ""
        End If
        

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -