본문으로 바로가기 주메뉴 바로가기
본문시작

EMR 표준프레임워크

안전하고 체계적인 환자정보 관리를 위해 노력하겠습니다.

인증 기준 선택

인증기준(구)
*신구대비표 참조
F024(예방접종 정보 기록, 조회)
분류
공공보고 및 연계
유형별 필수 여부
  • 유형 1 : 필수
  • 유형 2 : 필수
  • 유형 3 : 필수
인증기준 설명

질병관리본부의 표준 예방접종 프로그램에 연동하여 환자의 예방접종 정보를 기록하고, 조회할 수 있어야 함.
 
용어 정의: 
- ‘예방접종 정보’는 접종명, 접종 차수, 백신 명, 제조사, 제조번호, 의사, 접종기관, 접종자 명, 접종 나이, 접종 일자, 접종방법 등을 포함한다.
- ‘기록’은 사용자가 예방접종 정보를 입력하는 기능, ‘조회’는 예방접종 정보를 화면에 보여주는 기능을 말한다. 

개발가이드
보기(레이어 팝업)
산출소스

'[ 운영 URL ]
'css
'https:'is.cdc.go.kr/iris/css/egovframework/rte/ocs/linker.css
'js
'https:'is.cdc.go.kr/iris/js/egovframework/rte/ocs/linker.js

'▪ 인적정보 파라미터
'- 인적정보 파라미터 형식 예시
'“I|피접종자주민번호|쌍둥이구분|보호자주민번호|요양기관코드|병의원명|피접종자성명|
'보호자성명|전화번호(지역번호)|전화번호(국번)|전화번호(번호)|핸드폰번호(식별번호)|
'핸드폰번호(국번)|핸드폰번호(번호)|우편번호|상세주소|보호자와의관계|이메일|최종
'수정일|개인정보사용동의여부|실제생년월일|접종행위자성명|예진의사명|개발업체명|
'기본주소|피접종자주민번호|쌍둥이구분|보호자주민번호|flag|
'어르신 인플루엔자사용여부(Y/N)|다음접종알림(Y/N)|이상반응발생관련(Y/N)”
'- 파라미터 맨앞의 “I”는 예약어 이므로 그대로 사용하시고 “flag”는 OCS에서
'표준모듈로 데이터를 전달할때는 사용하지않으며, 표준모듈에서 OCS로 데이터를 전달할 때 '서버저장 성공여부를 나타내는 flag입니다. (0:처리완료, 1 or 2 : 오류)

'▪ 접종정보 파라미터
'- 접종정보 파라미터 형식 예시
'“I|피접종자주민번호|쌍둥이구분|보호자주민번호|요양기관코드|접종코드|접종차수|
'접종일자|병의원명|우편번호|로트번호|유효기간|백신코드|백신명|제조사코드|제조사
'명|적정사용량|접종방법|접종부위|접종용량|피접종자나이|피접종자개월수|청구여부|
'접종행위자성명|예진의사명|개발업체명|피접종자주민번호|쌍둥이구분|보호자주민번호|
'요양기관코드|접종코드|접종차수|접종일자|재접종여부|flag”

  
    '접속 URL
    Dim install_URL As String = "https:'is.cdc.go.kr/iris/index_ocs.jsp"
    ''로그인 URL
    Dim init_URL As String = "https:'is.cdc.go.kr/iris/index_ocs.jsp"
    ''CDC 서버에 반영완료됨을 확인하는 URL
    Dim dbok_URL As String = "https:'is.cdc.go.kr/iris/jsp/egovframework/rte/ocs/blank.jsp"
    ''행정서식 호출 URL
    Dim doc_URL As String = "https:'is.cdc.go.kr/iris/index_ocs_docs.jsp"

'환자의 예방접종내역을 등록, 연계하는 화면
Private Sub DisplaySaveWeb()

        Dim strUsrInf As String = ""
        Dim strVcnInf As String = ""  
  
        Dim sInputUserInfo(32) As String
        Dim sInputVcnInfo(35) As String

        strUsrInf &=  "|" & _
        sInputUserInfo.피접종자주민번호 & "|" & _
        sInputUserInfo.쌍둥이구분 & "|" & _
        sInputUserInfo.보호자주민번호 & "|" & _
        sInputUserInfo.요양기관코드 & "|" & _
        sInputUserInfo.병의원명 & "|" & _
        sInputUserInfo.피접종자성명 & "|" & _
        sInputUserInfo.보호자성명 & "|" & _
        sInputUserInfo.전화번호(지역번호) & "|" & _
        sInputUserInfo.전화번호(국번) & "|" & _
        sInputUserInfo.전화번호(번호) & "|" & _
        sInputUserInfo.핸드폰번호(식별번호) & "|" & _
        sInputUserInfo.핸드폰번호(국번) & "|" & _
        sInputUserInfo.핸드폰번호(번호) & "|" & _
        sInputUserInfo.우편번호 & "|" & _
        sInputUserInfo.상세주소 & "|" & _
        sInputUserInfo.보호자와의관계 & "|" & _
        sInputUserInfo.이메일 & "|" & _
        sInputUserInfo.최종수정일 & "|" & _
        sInputUserInfo.개인정보사용동의여부 & "|" & _
        sInputUserInfo.실제생년월일 & "|" & _
        sInputUserInfo.접종행위자성명 & "|" & _
        sInputUserInfo.예진의사명 & "|" & _
        sInputUserInfo.개발업체명 & "|" & _
        sInputUserInfo.기본주소 & "|" & _
        sInputUserInfo.피접종자주민번호 & "|" & _
        sInputUserInfo.쌍둥이구분 & "|" & _
        sInputUserInfo.보호자주민번호 & "|" & _
        sInputUserInfo.flag & "|" & _
        sInputUserInfo.어르신 인플루엔자사용여부(Y/N) & "|" & _
        sInputUserInfo.다음접종알림(Y/N) & "|" & _
        sInputUserInfo.이상반응발생관련(Y/N)


        '접종내역
            strVcnInf &= "|" & _
            sInputVcnInfo.피접종자주민번호& "|" & _
            sInputVcnInfo.쌍둥이구분& "|" & _
            sInputVcnInfo.보호자주민번호& "|" & _
            sInputVcnInfo.요양기관코드& "|" & _
            sInputVcnInfo.접종코드& "|" & _
            sInputVcnInfo.접종차수& "|" & _
            sInputVcnInfo.접종일자& "|" & _
            sInputVcnInfo.병의원명& "|" & _
            sInputVcnInfo.우편번호& "|" & _
            sInputVcnInfo.로트번호& "|" & _
            sInputVcnInfo.유효기간& "|" & _
            sInputVcnInfo.백신코드& "|" & _
            sInputVcnInfo.백신명& "|" & _
            sInputVcnInfo.제조사코드& "|" & _
            sInputVcnInfo.제조사명& "|" & _
            sInputVcnInfo.적정사용량& "|" & _
            sInputVcnInfo.접종방법& "|" & _
            sInputVcnInfo.접종부위& "|" & _
            sInputVcnInfo.접종용량& "|" & _
            sInputVcnInfo.피접종자나이& "|" & _
            sInputVcnInfo.피접종자개월수& "|" & _
            sInputVcnInfo.청구여부& "|" & _
            sInputVcnInfo.접종행위자성명& "|" & _
            sInputVcnInfo.예진의사명& "|" & _
            sInputVcnInfo.개발업체명& "|" & _
            sInputVcnInfo.피접종자주민번호& "|" & _
            sInputVcnInfo.쌍둥이구분& "|" & _
            sInputVcnInfo.보호자주민번호& "|" & _
            sInputVcnInfo.요양기관코드& "|" & _
            sInputVcnInfo.접종코드& "|" & _
            sInputVcnInfo.접종차수& "|" & _
            sInputVcnInfo.접종일자& "|" & _
            sInputVcnInfo.재접종여부& "|" & _
            sInputVcnInfo.flag

        ieWeb.Navigate(sURL)

    End Sub

    '예방접종 등록내역 조회 
    Private Sub DisplayDocWeb()
        ieWeb.Navigate(Me.doc_URL)
    End Sub


   Private Sub ieWeb_DocumentComplete(ByVal sender As Object, 
           ByVal e As AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent) 
           Handles ieWeb.DocumentComplete

        Dim iFlag As Integer
        Dim sPatient, sPreven As String
        Dim saTemp() As String

         ' 없으면 0 반환
        If InStr(1, e.uRL, "http", vbTextCompare) = 0 Then   
            Exit Sub
        End If

        '/로그인화면 로딩후 초기입력값 세팅
        If e.uRL = init_URL Then
            '공인인증서방식으로 계정 필요없음
            JS_fSetLogInf("inUsrInf", sMdlPatient_Data)    '선택한 사용자 정보를 받아온다.
            JS_fSetLogInf("inVcnInf", sMdlPreven_Data)  '백신 정보를 받아온다.
            Me.DoHTMLScript("fOcsLoad()")       ' OCS 들어가다.
        End If

        ''CDC 서버에 데이터가 등록된 후 해당값을 병원 OCS로 받아옴
        If e.uRL = dbok_URL Then
            iFlag = CInt(ieWeb.Document.All.otStat.Value)
            Select Case iFlag
                Case 0 '로그인 화면
                Case 1
                    ''인적정보 받아옴
                    sPatient = CStr(ieWeb.Document.All.otUsrinf.Value)
                    ''접종정보 받아옴
                    sPreven = CStr(ieWeb.Document.All.otVcnInf.Value)

                    ''인적정보와 접종정보의 형식은 코딩지침을 참조하여 문자열 파싱후 
                       OCS DB에 저장
                    saTemp = Split(sPatient, "|")

                    '처리완료된 건에 대해서 업데이트를 반영
                    '_0:처리완료,1 or 2 : 오류
                    If saTemp(USR.FLAG) = "0" Then
                        Select Case sPatient.Substring(0, 1)
                            Case "|" '구분자 표시
                            Case "I", "U", "D" : 
                               SendPatientInfo(sPatient, sPatient.Substring(0, 1)) 
                               '알파벳 I,U,D
                        End Select
                    End If

                    saTemp = Split(sPreven, "|")

                    '처리완료된 건에 대해서 업데이트를 반영
                    If saTemp(VCN.FLAG) = "0" Then
                        Select Case sPreven.Substring(0, 1)
                            Case "|"
                            Case "I", "U", "D" : 
                               SendPrevenInfo(sPreven, sPreven.Substring(0, 1))
                        End Select
                    End If

                    '2007.03.27
                    If Me.bMdlSendAll Then

                        iMdlVacCount += 1
                        SendWebData()

                    End If

            End Select

        End If

        ''행정서식이 호출된 경우
        If e.uRL = doc_URL Then
            ''로그인이미지 클릭
            ieWeb.Document.ALL("login").CLICK()
        End If

    End Sub