마이나보험증을 태그하면 무슨 일이 일어나는가 ── 온라인 자격확인과 레세콘 연계를 ORCA 소스코드로 읽다

· 업데이트: · · 의료IT, ORCA, 온라인자격확인, 마이나보험증, 레세콘, 시스템연계

수정 이력(4건, 최종 수정 2026년 08월 02일)

이 글에 적용한 변경 사항의 기록입니다. 보관해 둔 수정 전 버전은 DOI가 부여된 고정 URL에서 읽을 수 있습니다.

글 앞부분에 「이 글의 지식 맵」 절을 추가했습니다. 본문에서 다루는 개념과 그 관계를 요약·그림·상세 페이지 링크로 정리한 것입니다. 본문의 주장은 바꾸지 않았습니다.
외부 리뷰(1283건)에 대응해 본문을 업데이트했습니다. 개별 변경 내용은 아래 이력을 참조해 주십시오.
앞부분에 「이 글의 전제」를 두고, 레세콘·ORCA·니치레세 API·LD 정의·bindapi 선언 같은 용어를 한 줄씩 정의했습니다.
API 신규 작성 연월을 2자리(20/11)로 적어 서기를 읽기 어려웠던 부분을, 4자리(2020/11)로 고쳤습니다.
최초 공개
이 글을 인용하기(DOI(등록된 아카이브): 10.5281/zenodo.22174302)

아래 DOI는 이전에 등록된 아카이브를 가리키며 현재 본문과 다를 수 있습니다. 현재 본문을 참조할 때는 이 페이지의 URL을 사용하세요.

Go Komura (2026). 「마이나보험증을 태그하면 무슨 일이 일어나는가 ── 온라인 자격확인과 레세콘 연계를 ORCA 소스코드로 읽다」. 합동회사 코무라소프트. https://comcomponent.com/ko/blog/orca-onshi-online-eligibility/

DOI(등록된 아카이브)
10.5281/zenodo.22174302
DOI(마지막 등록 버전)
10.5281/zenodo.22174303

진료소 접수에서 마이나보험증을 카드 리더에 태그하면, 몇 초 만에 본인 확인과 보험 자격 확인이 끝납니다. 그 몇 초 뒤에서 어떤 시스템이 어떤 순서로 동작하는지──특히 최종적으로 청구를 담당하는 레세콘에 자격 정보가 어떻게 도착하는지를 설명할 수 있는 엔지니어는, 의외로 많지 않을 것입니다.

지지난번에는 ORCA(일의표준레셉트소프트)가 레세콘이라는 점을, 지난번에는 니치레세 API의 전체 모습을 소스코드에서 파악하는 방법을 썼습니다. 이번에는 그 응용편으로, 온라인 자격확인(통칭 온자)을 레세콘 쪽에서 해부합니다.

  • 마이나보험증을 태그한 뒤, 자격 정보가 레세콘에 등록되기까지의 전체 흐름
  • 자격확인 단말과 레세콘을 잇는 「파일 연계」의 내용
  • ORCA 쪽 진입점 ── 온자 관련 API 20개와 tbl_onshi_* 테이블군
  • COBOL 수정 이력에 새겨진, 2020년부터 2026년까지의 제도 대응 연표

제도 쪽 서술은 후생노동성·ORCA 공식의 공개 자료에, 소스코드에 관한 서술은 공식 공개된 니치레세 본체 5.2계열 소스(2026년 7월 1일 공개 스냅샷) 를 실제로 읽고 확인한 결과에 근거합니다.

이 글의 전제

대상 독자는 접수 시스템·전자차트·예약 시스템 등, 레세콘과 연계하는 시스템을 만드는 엔지니어입니다. COBOL을 읽을 필요는 없습니다(인용 부분은 그때그때 설명합니다). 의료 사무 실무 경험도 전제하지 않습니다.

시리즈 세 번째이므로, 앞 두 편에서 설명한 용어가 그대로 나옵니다. 이 글만으로도 읽을 수 있도록, 최소한의 어휘를 여기에 모아 둡니다.

용어 한 줄 의미 자세히
레세콘 진료보수 명세서(레셉트)를 작성하고, 청구까지 수행하는 시스템 지지난번
ORCA / 니치레세 일본의사회가 개발하는 레세콘. 본체 소스코드가 공개되어 있음 지지난번
니치레세 API 니치레세가 외부 시스템용으로 공개하는 HTTP API의 총칭. /api01rv2/… 같은 경로로 호출 지난번
LD 정의(lddef/*.ld) 어느 URL을 어느 COBOL 프로그램이 처리하는지를 선언한 텍스트 파일. API 목차로 읽을 수 있음 지난번
bindapi 선언 LD 정의 안의 한 줄로, 「이 경로를 API로 공개한다」는 선언. 세면 API 개수를 알 수 있음 지난번
PushAPI 니치레세 쪽에서 외부 시스템으로 이벤트를 알리는 구조. 외부에서 호출하는 일반 API와는 방향이 반대 이 글 4장
uuid 니치레세 내부에서 관련 레코드를 묶는 식별자. 온자에서는 「한 번의 접수」를 묶는 키가 됨 이 글 6장
온라인 자격확인(온자) 마이나보험증 등을 키로, 환자의 보험 자격을 온라인에서 즉시 확인하는 제도와 시스템 이 글 2장
onshi-tools 자격확인 단말과 니치레세 사이의 파일 주고받기·가져오기를 담당하는, ORCA 공식 연계 프로그램 이 글 3장

그림의 실선은 항상 성립하는 관계, 점선은 조건이 붙는 관계입니다(성립 조건은 상세 페이지의 관계별 설명에 적혀 있습니다). 관계 전체 목록(총 18건, 근거와 확신도 포함)과 주요 개념의 정의는 지식 맵 상세 페이지에 정리되어 있습니다(일본어). 데이터: JSON-LD / Turtle

목차

  1. 먼저 결론 ── 자격확인은 「등장하는 네 주체」의 릴레이이다
  2. 제도를 짧게 이해하기 ── 온라인 자격확인이란 무엇인가
  3. 단말과 레세콘 사이 ── OQS 파일 연계라는 접점
  4. ORCA 쪽 진입점 ── 온자 관련 API 20개를 소스에서 세다
  5. 데이터가 가는 곳 ── tbl_onshi_* 13개 테이블
  6. tbl_onshi_kaku를 읽다 ── 한 번의 자격확인이 무엇을 남기는가
  7. 수정 이력은 제도의 연표다 ── 2020〜2026
  8. 환자 등록으로의 반영 ── 결과는 「그대로」 보험 정보가 되지 않는다
  9. 연계 시스템을 만드는 쪽의 실무 포인트
  10. 정리
  11. 참고 자료

1. 먼저 결론 ── 자격확인은 「등장하는 네 주체」의 릴레이이다

마이나보험증을 태그한 뒤 자격 정보가 레세콘에 실리기까지를 한 장으로 그리면, 등장하는 주체는 넷입니다.

의료기관 안공유 폴더OQS〜.xml온자 관련 API(등록계)IP-VPN /IPsec+IKE얼굴 인증카드 리더자격확인 단말연계 프로그램(니치레세에서는 onshi-tools)ORCA/니치레세tbl_onshi_* 에 축적접수·환자 등록 업무온라인 자격확인 등 시스템(사회보험진료보수지급기금·국민건강보험중앙회)
  1. 얼굴 인증 카드 리더가 마이넘버카드를 읽고, 본인 확인(얼굴 인증 또는 비밀번호)을 수행합니다.
  2. 자격확인 단말이 온라인 자격확인 등 시스템의 네트워크(회선 사업자의 IP-VPN, 또는 인터넷을 통한 IPsec+IKE 접속)를 거쳐 온라인 자격확인 등 시스템(사회보험진료보수지급기금·국민건강보험중앙회가 운영)에 조회하고, 자격 정보를 XML로 받습니다.
  3. 단말과 레세콘 사이는 파일 연계가 기본입니다. 결과 XML은 공유 폴더에 놓이고, 연계 프로그램이 레세콘으로 가져옵니다. 니치레세의 경우 이 역할을 맡는 공식 프로그램이 onshi-tools입니다.
  4. 가져온 결과는 ORCA 안의 온자 전용 테이블군(tbl_onshi_*)에 일단 쌓이고, 접수·환자 등록 업무가 그곳에서 환자 정보·보험 정보로 반영합니다.

핵심은 자격확인 결과가 환자 마스터에 바로 쓰이지 않고, 전용 테이블에 일단 쌓인다는 점입니다. 「조회 기록」과 「환자 마스터로의 반영」이 나뉜 이 2단계 구조가, ORCA의 온자 연계를 읽는 열쇠입니다(6장·8장).

2. 제도를 짧게 이해하기 ── 온라인 자격확인이란 무엇인가

시스템 이야기로 들어가기 전에, 제도 쪽을 짧게 정리합니다.

  • 무엇을 하는 구조인가: 마이넘버카드(마이나보험증) 또는 보험증의 기호·번호를 키로, 환자의 보험 자격을 온라인에서 즉시 확인하는 구조입니다. 보험자를 넘나드는 자격 이동(이직·이사 등)이 조회 시점에 반영되므로, 자격 오류로 인한 레셉트 반송을 줄일 수 있다는 점이 청구 업무 쪽에서 본 가장 큰 의의입니다.
  • 언제부터: 2021년 10월에 본격 운영이 시작되었고, 2023년 4월부터 보험의료기관·약국에 시스템 도입이 원칙적으로 의무화되었습니다. 2024년 12월에는 건강보험증의 신규 발행이 종료되어, 마이나보험증을 기본으로 하는 체제로 옮겨 왔습니다.
  • 자격 외에 무엇이 오는가: 환자가 카드 리더에서 동의하면, 약제 정보·특정 건강진단 정보·진료 정보를 의료기관 쪽에서 열람할 수 있습니다. 나아가 의료부조(생활보호) 자격확인이나, 지자체의 의료비 지원 정보 연계(PMH: Public Medical Hub)로 대상이 넓어지고 있습니다.

이름은 「자격확인」이지만, 실제로는 자격을 입구로 진료 정보까지 흐르는 의료 정보 연계의 간선이 되어 가는 중이라고 보는 것이 현재 위치입니다. 이 「대상의 확대」가 레세콘 코드에 어떻게 나타나는지는, 7장에서 연표로 봅니다.

3. 단말과 레세콘 사이 ── OQS 파일 연계라는 접점

의료기관 안의 접점, 즉 자격확인 단말과 레세콘(이나 전자차트) 사이는 어떻게 이어져 있을까요.

국가가 공개한 시스템 벤더용 자료에서는, 기존 시스템과 온라인 자격확인 등 시스템의 연계 방식으로 연계 애플리케이션에 의한 파일 연계 외에, 웹 애플리케이션 연계·얼굴 인증 연계·WebAPI 연계 같은 방식이 제시되어 있습니다. 중심이 되는 파일 연계는, 대략 「정해진 이름의 XML 파일을 정해진 폴더에 두면, 답 XML 파일이 돌아온다」는, 고전적이지만 확실한 구조입니다.

니치레세도 이 방식입니다. ORCA 공식의 「니치레세 온라인 자격확인」 페이지에는, 자격확인 단말과 주고받는 파일로

  • 요구: OQSsiquc01req_Oxxxxxxxxxxxx.xml
  • 결과: OQSsiquc01res_Oxxxxxxxxxxxx.xml

라는 이름이 나와 있고, 공유 폴더를 통해 이를 주고받습니다. 이 파일 주고받기와 니치레세로의 가져오기를 맡는 것이 공식 제공 onshi-tools이며, Ubuntu판과 Windows판이 제공됩니다(가져오기 서비스를 감시하는 도구나, 환경 점검 도구도 함께 공개되어 있습니다).

맨 앞의 OQS는 온라인 자격확인 등 시스템과 주고받는 파일에 공통으로 붙는 접두사입니다(약어의 전개는 공개 자료에 명시되어 있지 않습니다). 파일 이름은 접두사 OQS+요구 종류를 나타내는 부분(siquc01 등)+req(요구) 또는 res(결과)+의료기관 쪽에서 붙이는 식별자, 라는 구성입니다. 같은 체계로, 약제 정보의 요구 파일에는 YZK, 특정 건강진단 정보에는 TKK라는 다른 접두사가 붙습니다(4장).

이 「OQS」 어휘는 ORCA 공개 소스에도 등장합니다. 예를 들어 연계 프로그램용으로 조회 의뢰 데이터를 조립해 돌려주는 API(4장에서 볼 onlinequa1)의 응답 정의 record/xml_onlinequares1.db에는, InsurerNumber(보험자 번호), InsuredCardSymbol(피보험자증 기호), QualificationConfirmationDate(자격확인일), LimitApplicationCertificateRelatedConsFlg(한도액적용인정증 관련 동의 플래그) 같은 항목이 늘어서 있습니다. 같은 정의 파일에는, 방문 진료 등의 열람 동의 취소 요구 파일 이름이 OQSsihvd01req_xxxxxxxxxxxx.xml(2024-11 주석 포함)이라고 코멘트로 적혀 있어, OQS 명명이 소스에 그대로 나타납니다. 온라인 자격확인 등 시스템 쪽 XML 항목 이름이, 그대로 레세콘 API까지 관통하고 있는 셈입니다. 연계 시스템을 만드는 쪽에서는, 국가 사양서와 ORCA 소스를 같은 어휘로 맞춰 볼 수 있다는 점에서 고마운 설계입니다.

4. ORCA 쪽 진입점 ── 온자 관련 API 20개를 소스에서 세다

그러면 ORCA 쪽 진입점을 세어 봅니다. 지난번과 같은 방법으로, 5.2계열 소스의 LD 정의(lddef/*.ld)에서 bindapi 선언을 주우면, 온자 관련 엔드포인트는 3개의 LD 파일에 나뉘어 모두 20개입니다. 기능명은 모두, 담당 COBOL 프로그램 헤더에 적힌 「컴포넌트명」을 그대로 옮긴 것입니다.

경로 프로그램 기능(소스 안 컴포넌트명) 신규 작성
/orca14/onlinequa1 ORAPION001R1V2 온라인 자격확인(조회 의뢰 데이터 조립) 2020/11
/orca14/onlinequa2 ORAPION002R1V2 얼굴 인증 자격확인 등록, 갱신 처리 2020/11
/orca14/onlinequa3 ORAPION003R1V2 보험증 자격확인 등록, 갱신 처리 2020/11
/orca14/onlinedrug1 ORAPION004R1V2 자격확인 약제 정보 등록, 갱신 처리 2021/01
/orca14/onlinespec1 ORAPION005R1V2 자격확인 특정 검진 등록, 갱신 처리 2021/02
/orca14/onlinerefall1 ORAPION006R1V2 조회 번호 일괄 등록 2021/02
/orca14/onlinequa4 ORAPION007R1V2 공비 확인 등록, 갱신 처리 2021년
/orca14/onlinequaapp1 ORAPION008R1V2 예약 환자 일괄 자격확인 조회(의뢰 정보 반환) 2021/11
/orca14/onlinequaapp2 ORAPION009R1V2 예약 환자 일괄 자격확인 조회(결과 등록) 2021/11
/orca71/onshicond ORAPIONCONDR1V2 온라인 자격확인(단말의 장애 상태 통지 등록) 2022/08
/orca71/onlineimg1 ORAPION011R1V2 자격확인 보험증 OCR 이미지 등록 처리 2022/08
/orca71/onlinemedical1 ORAPION010R1V2 자격확인 진료 정보 등록, 갱신 처리 2022/10
/orca71/onlinemedical2 ORAPION012R1V2 자격확인 치과 진료 정보 등록, 갱신 처리 2022/10
/orca71/onlineaidlstreq1 ORAPION013R1V2 자격확인 의료부조 교부 번호 등록 처리 2024/02
/orca71/onlinequaapp3 ORAPION014R1V2 방문 진료 환자 일괄 자격확인 조회(결과 등록) 2025/02
/orca71/onlinequa10 ORAPION015R1V2 의료비 지원 정보 등록, 갱신 처리 2025/11
/orca71/onlinequa11 ORAPION016R1V2 방문 진료/온라인 진료 등록, 갱신 처리 2026/01
/api01rv2/onlinedruggetv2 ORAPIONSHIR1V2 API 자격확인 약제 정보 취득 처리 2021/01
/api01rv2/onlinespecgetv2 ORAPIONSHIR2V2 API 자격확인 특정 검진 정보 취득 처리 2021/02
/api01rv2/onlinemedgetv2 ORAPIONSHIR3V2 API 자격확인 진료 정보 취득 처리 2022/08

(신규 작성 연월은 각 프로그램 헤더의 작성 일자란에서 가져왔습니다. 표기는 YYYY/MM으로 맞췄습니다. onlinequa4만 「2021년」인 것은, 헤더의 작성 일자가 21/xx/xx처럼 월일을 가린 형태로 적혀 있기 때문입니다. onlinequa1의 괄호 안은 구현 내용에서 보충한 것입니다)

이 목록은 역할로 세 그룹으로 나뉩니다.

  1. 등록계(단말 쪽→니치레세): onlinequa2(얼굴 인증)·onlinequa3(보험증)을 비롯해, 약제·특정 건강진단·진료 정보·OCR 이미지·의료부조·의료비 지원 각각의 「등록, 갱신 처리」입니다. 자격확인 단말 쪽에서 도착한 결과를 니치레세로 흘려 넣는 진입점입니다.
  2. 의뢰 조립계(연계 프로그램→니치레세): onlinequa1은 이름만 보면 「결과 조회 API」처럼 보이지만, 구현을 읽으면 다릅니다. uuid(필수)로 tbl_onshi_kaku의 최신 레코드를 읽고, 그곳에서 자격확인 단말에 던질 조회 의뢰(OQS 요구)의 내용──자격확인에 쓰는 보험자 번호·기호 번호·동의 플래그, 약제 정보·특정 건강진단 정보의 요구 파일 이름(YZKsiquc01req_~.xml, TKKsiquc01req_~.xml. 「~」는 환자 번호 끝을 X로 채워 20자리로 고정한 문자열)──을 조립해 돌려줍니다. PushAPI의 조회 지시를 받은 연계 프로그램이 「단말에 무엇을 물어야 하는지」를 가지러 오는 API이며, 축적 결과를 검색해 돌려주는 API가 아닙니다.
  3. 취득계(전자차트 등→니치레세): /api01rv2/ 아래 3개는, 쌓여 있는 약제·특정 건강진단·진료 정보를 연계 시스템이 가져가기 위한 API입니다. 읽기 계열 API가 모이는 api01rv2에 놓여 있는 점도, 지난번에 본 니치레세 API 배치 규칙 그대로입니다.

나아가 소스에는 record/push_onlinequa.db라는 정의도 있어, 온자 주변의 PushAPI 이벤트(Bulk_Qualification·patient_qualification)가 준비되어 있음을 알 수 있습니다. 발행 지점을 읽으면, 조회 업무 화면, 접수·환자 등록에서 호출되는 자격확인 서브(ORCSONSHI001.CBL), 예약 환자 일괄 조회 화면(ORCGY06.CBL), 배치(ORCBONSHIPUSH.CBL)가 각각 조회 지시 이벤트를 발행합니다. 즉 이 이벤트는, 니치레세 쪽에서 연계 프로그램으로 「자격확인을 하러 가라」고 지시를 보내는 채널이 중심입니다. 다만 내용은 발행원마다 다릅니다. 클래스에는 Rreq(조회 의뢰) 외에 확인 필요 여부 플래그 값(Yes)이 그대로 들어가는 경우가 있고, uuid의 의미도, 개별 이벤트에서는 tbl_onshi_kaku의 레코드 uuid, 예약 환자 일괄 조회에서는 작업 관리 uuid, 배치의 일괄 지시에서는 uuid 없음, 으로 일정하지 않습니다. 수신 쪽은 이벤트 이름·클래스·uuid의 의미에 따라, onlinequa1(개별 의뢰 조립)·onlinequaapp1(예약 환자 일괄)·onlinerefall1(조회 번호 일괄 등록)을 나눠 호출해야 합니다. record/xml_onlinequareq1.db의 첫머리 코멘트에는, Push 통지를 받은 수신 프로그램(onshi_receiver)이 onlinequa1로 요구 데이터를 가져오는 흐름이 적혀 있어, 개별 이벤트에 한정하면 Push(조회 지시)→onlinequa1(의뢰 조립)→단말로의 요구 파일→onlinequa2/onlinequa3(결과 등록)이라는 한 바퀴를 읽을 수 있습니다. 반대로, 얼굴 인증·보험증의 결과 등록 API(onlinequa2/onlinequa3)는 이 이벤트를 발행하지 않습니다. 「결과가 등록된 순간의 통지」를 PushAPI에 기대하고 접수 화면을 만들면, 통지가 오지 않은 채 기다리게 되므로 주의해야 합니다(9장).

5. 데이터가 가는 곳 ── tbl_onshi_* 13개 테이블

등록계 API가 받은 데이터는 어디로 갈까요. DB 테이블 목록(lddef/orcadb.inc)에서 onshi를 포함한 테이블을 뽑으면 13개입니다. 이름만 봐도, 온자로 흘러오는 정보 종류가 그대로 비칩니다.

테이블 내용(이름과 정의에서 읽은 것)
tbl_onshi_kaku 자격확인 결과 본체(다음 장에서 해부)
tbl_onshi_yakuzai_main / _sub 약제 정보
tbl_onshi_kenshin_main / _sub 특정 건강진단 정보
tbl_onshi_shinryo_main / _sub 진료 정보(의과)
tbl_onshi_shika_sub 진료 정보(치과)
tbl_onshi_image 보험증 OCR 이미지
tbl_onshi_aidlst 의료부조(생활보호) 관련
tbl_onshi_houmon 방문 진료 관련
tbl_onshi_pmh 의료비 지원 정보(PMH)
tbl_onshi_cond 자격확인 단말의 장애·상태 통지 기록

1장에서 말한 2단계 구조가, 여기서 분명해집니다. 온자에서 온 데이터는 환자 마스터(tbl_ptinf)나 보험 테이블에 바로 쓰이지 않고, 먼저 tbl_onshi_*라는 「온자의 말 그대로인 테이블」에 착지합니다. 국가 제도 쪽 어휘(자격·약제·특정 건강진단·진료 정보…)와 레세콘 내부 어휘(환자·보험·공비…) 사이에 완충 지대를 둔 설계이며, 제도 쪽 확장(테이블이 13개까지 늘어난 것 자체가 그 증거입니다)을, 레세콘 본체 스키마를 깨지 않고 받아 왔음을 읽을 수 있습니다.

6. tbl_onshi_kaku를 읽다 ── 한 번의 자격확인이 무엇을 남기는가

중심 테이블 tbl_onshi_kaku(정의는 record/tbl_onshi_kaku.db)를 읽으면, 한 번의 자격확인이 무엇을 기록하는지 구체적으로 알 수 있습니다. 정의 파일은 항목 이름과 형을 늘어놓은 텍스트일 뿐이고, 다음처럼 보입니다(전체 668행 가운데, 이후 설명에 나오는 곳만 뽑았습니다).

tbl_onshi_kaku {
	HOSPNUM				number(2,0);
	TBL_UUID     			varchar(36);
	AITE_UUID     			varchar(36);
	OYA_UUID     			varchar(36);
	KOUHI_UUID     			varchar(36);
	FUJYO_UUID     			varchar(36);
#---> PMHUID(2025-11)
	PMH_UUID     			varchar(36);
#---> 일괄 동의 식별(2024/12)
	PROCESS_CLASS			varchar(01);
	(중략)
#---> 이미지 파일명(2022/7)
	HKNOCR_FILENAME  		varchar(100);
	(중략)
	SHO_HKNJANUM			varchar(8);
	SHO_KIGO     			varchar(80);
	SHO_NUM     			varchar(80);
	SHO_EDABAN    			varchar(2);
	SHO_BIRTHDAY    		varchar(8);
	(중략)
	RES_HKNJANUM			varchar(8);
	RES_KIGO     			varchar(80);
	RES_NUM     			varchar(80);
	RES_EDABAN    			varchar(2);
	RES_HONKZKKBN	    		varchar(1);
	RES_HIHKNJANAME    		varchar(100);
	(중략)
	KENSHIN_DOUIFLG  	  	  varchar(1);
	KENSHIN_TIME  		  	  varchar(14);
	KENSHIN_KIGENYMD   	  	  varchar(14);
	YAKUZAI_DOUIFLG   	  	  varchar(1);
	YAKUZAI_TIME  		  	  varchar(14);
	YAKUZAI_KIGEN  		  	  varchar(14);
#---> 진료 동의 정보(2022/7)
	SHINRYO_DOUIFLG   	  	  varchar(1);

항목 이름의 접두사(SHO_/RES_/〜_DOUIFLG)와, #--->로 시작하는 추가 시기 코멘트만 주워도, 이 테이블의 구조와 역사가 대략 읽힙니다. 아래는 주요 항목군을 뽑아 설명합니다.

  • UUID 묶음: TBL_UUID(이 레코드 자신) 외에, AITE_UUID·OYA_UUID·KOUHI_UUID(공비)·FUJYO_UUID(의료부조)·PMH_UUID(의료비 지원)처럼, 관련 레코드를 가리키는 uuid가 늘어서 있습니다. 자격확인·공비 확인·부조 확인·지원 정보가 별도 레코드로 등록되고, uuid 연쇄로 하나의 접수 이벤트에 묶이는 구조입니다. 4장의 의뢰 조립 API(onlinequa1)가 uuid 지정을 필수로 하는 것은 이 때문입니다.
  • 조회에 쓴 검색 조건(SHO_*): 조회 때 지정한 보험자 번호·기호·번호·가지번호·생년월일 등입니다. 정의의 유래는 요청 쪽의 「자격확인 조회용 정보(QualificationConfirmSearchInfo)」이며, 「무엇을 조건으로 물어봤는지」의 기록입니다(마이넘버카드 카드면에는 보험자 번호나 기호 번호가 없으므로, 「카드면의 사본」이 아닙니다).
  • 돌아온 자격 정보(RES_*): 보험자 번호·기호·번호·가지번호·본인가족구분·피보험자 성명 등입니다. 「온자 시스템이 무엇이라고 답했는지」의 기록입니다. 조회 조건(SHO)과 결과(RES)를 별도 항목으로 가지므로, 이미 파악하고 있던 기호 번호와 최신 자격의 어긋남(이직·이사 등에 의한 자격 변경)을 레코드 위에서 쫓을 수 있습니다.
  • 결과와 상태: 처리 결과(RESULT_*), 오류 코드/메시지(ERR_*), 자격의 유효성(SIKAKU_YUKO), 피보험자증 구분(CARD_CLASS──정의의 유래는 InsuredCardClassification이며, 돌아온 자격 레코드의 구분입니다. 물리 카드의 종류가 아닙니다), 확인 일시, 환자 번호(PTID)로의 연결, 복수 해당 플래그(FUKUSU_GAITO) 등입니다.
  • 동의 주변: 동의 플래그는 하나가 아니라, 정보 종류마다 나뉘어 늘어서 있습니다. 약제(YAKUZAI_DOUIFLG)·특정 건강진단(KENSHIN_DOUIFLG)·진료 정보(SHINRYO_DOUIFLG) 외에, 한도액적용인정증(GENDO_DOUIFLG)·특정질병요양수료증(SIKKAN_DOUIFLG), 나아가 수술·상병명·감염증·알레르기·검사·처방 같은 단위까지 세분되어 있습니다. 2장에서 말한 「동의에 따른 정보 열람」이, 무엇에 대한 동의인지를 종류마다 구별하는 형태로 테이블 항목에 구현되어 있는 셈입니다.

정의 파일의 코멘트에는 항목 추가 시기도 남아 있어, 보험증 OCR 파일명 항목에는 2022년 7월, PMH_UUID에는 2025년 11월 주석이 있습니다. 테이블 정의 자체가, 다음 장에서 볼 제도 대응 역사의 일부가 되어 있습니다.

7. 수정 이력은 제도의 연표다 ── 2020〜2026

지지난번에서 「COBOL 헤더의 수정 이력은 제도 개정의 연표가 되어 있다」고 썼습니다. 온자 관련 프로그램군은 그 가장 선명한 실례입니다. 4장 표의 작성 일자와 수정 이력을 제도 쪽 움직임과 나란히 놓습니다.

소스에 남은 흔적 시기 대응하는 제도 쪽 움직임
ORAPION001〜003 신규 작성(NACL 명의) 2020/11 온자의 본격 운영(2021/10)에 앞서 진입점을 구현
약제 정보·특정 건강진단의 등록/취득 API 신규 작성 2021/01〜02 자격확인과 맞춘 약제·특정 건강진단 정보 열람 개시로
「uuid로 최신을 검색한다」 등의 수정이 이어짐 2021/06〜10 본격 운영 개시 전후의 현장 조정
예약 환자 일괄 자격확인(quaapp1/2) 추가 2021/11 예약 환자의 사전 일괄 조회라는 운용 수요
보험증 OCR 이미지 등록·「보험증 OCR(아르멕스) 대응」 2022/08 기존형 보험증의 카드면 OCR 가져오기
진료 정보(의과·치과)의 등록 API 추가 2022/10 진료 정보 열람 대상 확대
의료부조 교부 번호 등록 추가, 「의료부조 자격확인 대응」 수정 2024/02〜03 의료부조(생활보호)의 온라인 자격확인 개시
tbl_onshi_kaku에 일괄 동의 식별 항목(PROCESS_CLASS) 추가(정의 코멘트 2024/12) 2024/12 방문 진료·온라인 진료에서의 자격확인과 동의의 일괄 관리에 대응(환자 등록의 ORCGP031.CBL이 방문/온라인 진료의 동의 식별에 사용)
방문 진료 환자 일괄 자격확인(quaapp3) 추가 2025/02 방문 진료 등으로의 자격확인 확대
의료비 지원 정보 등록 API·PMH_UUID 추가 2025/11 의료비 지원 정보 연계(PMH)의 전개
방문 진료/온라인 진료 등록 API 추가 2026/01 온라인 진료로의 대응 확대

지지난번에는 「레세콘의 본질적인 어려움은 제도 추종을 수십 년 이어 가는 일」이라고 썼지만, 온자는 바로 그 일이 지금도 진행되는 모습입니다. 2020년의 신설부터 2026년까지, 거의 매년 API나 테이블이 늘고 있다──이 사실은, 온자 연계를 「한 번 만들면 끝」인 통합으로 봐서는 안 된다는, 실무상의 경고이기도 합니다(9장).

덧붙여, 공개 소스를 매달 diff하면, 이런 확장은 공식 안내 전후에 lddefrecord의 차이로 잡을 수 있습니다. 지난번에 제안한 월별 스냅샷 diff 감시가, 온자 영역에서 특히 유효한 이유입니다.

8. 환자 등록으로의 반영 ── 결과는 「그대로」 보험 정보가 되지 않는다

tbl_onshi_kaku에 쌓인 결과는, 마지막에 어떻게 환자 마스터로 반영될까요.

자격확인 결과 테이블을 참조하는 프로그램을 세면, 가장 많은 것은 환자 등록 업무(cobol/orca12/)의 16개이고, 접수 업무(orca11)나 조회 업무에서도 참조됩니다. 환자 등록의 중심 프로그램 ORCGP02.CBL의 절 코멘트만 주워도, 처리 흐름이 보입니다.

* 온라인 자격확인 UID 검색 처리
* 온라인 자격확인 데이터 환자 신규 처리
* 온라인 자격확인 정보 기본 정보 처리
* 온라인 자격확인 정보 주소 갱신 처리
* 온라인 자격확인 정보 보험 정보 처리
* 온라인 자격확인 정보 한도액 등 공비 추가 처리
* 온라인 자격확인 정보 공비 개시일 체크 처리

즉 니치레세는 자격확인 결과를 기계적으로 덮어쓰지 않고, 환자 등록 업무의 맥락에서 「신규 환자 작성」「성명·주소 갱신」「보험 정보 대조·갱신」「한도액 인정이나 공비 추가」「개시일의 타당성 점검」 같은 개별 판단으로 쪼개어 반영합니다. 온자의 결과는 판단 재료일 뿐, 최종적인 환자·보험 마스터의 정본은 어디까지나 환자 등록 업무가 쥐고 있습니다──1장의 2단계 구조는, 이 책임 분계를 위한 설계라고 읽을 수 있습니다.

전자차트나 접수 시스템을 만드는 쪽에 대한 함의는 분명합니다. 자격확인 결과를 자사 시스템 쪽에서 환자 마스터에 바로 반영하는 지름길을 만들면, 이 대조 로직을 건너뛰게 됩니다. 반영은 ORCA의 업무(또는 그에 준하는 API)를 통과시키는 것이 맞습니다.

9. 연계 시스템을 만드는 쪽의 실무 포인트

접수 시스템·전자차트·예약 시스템 등에서 온자 주변에 관여할 때의 요점을 정리합니다.

  1. 접점은 두 곳이다. 자격확인 단말과의 접점(OQS 파일 연계)과, 레세콘과의 접점(니치레세 API)은 별개입니다. 니치레세 구성에서는 파일 연계와 가져오기를 onshi-tools가 맡으므로, 연계 시스템이 스스로 OQS 파일을 다뤄야 하는지, 아니면 니치레세에 들어온 뒤의 데이터(약제·특정 건강진단·진료 정보는 취득계 API, 환자·보험으로의 반영 결과는 통상의 환자 정보계 API)로 충분한지를 먼저 구분하십시오. 많은 경우에는 후자로 충분합니다.
  2. uuid 연쇄를 설계에 넣는다. 자격확인·공비 확인·의료부조·의료비 지원은 별도 레코드로 uuid로 이어집니다(6장). 「한 번의 접수」를 복원하는 키 설계를, 처음에 소스의 record/ 정의로 확인해 두면 나중에 도움이 됩니다.
  3. PushAPI 이벤트의 「의미」를 소스에서 확인한 뒤에 쓴다. push_onlinequa 이벤트는 존재하지만, 발행 지점을 읽는 한 주된 용도는 조회 의뢰(Rreq)의 지시이며, 결과 등록 API(onlinequa2/onlinequa3)는 발행하지 않습니다. onlinequa1도 결과를 돌려주는 API가 아니라 의뢰 조립 API입니다(4장). 접수 화면의 「자격확인 완료」 표시 같은 연동을 만들 때는, 결과 도착 통지가 니치레세에서 온다는 전제를 둘 수 없습니다. 결과 도착을 가장 먼저 아는 것은 결과를 등록하는 쪽(연계 프로그램)이므로, 연동이 필요하면 가져오기 경로와 같은 곳(등록 처리가 끝난 시점)에서 자사 시스템으로 통지를 내거나, 니치레세의 접수·환자 등록 업무에서의 반영을 전제로 화면을 설계하십시오.
  4. 동의 상태를 종류마다 존중한다. 약제·특정 건강진단·진료 정보는 환자의 동의에 따라 흘러오는 정보이며, tbl_onshi_kaku에는 YAKUZAI_DOUIFLG·KENSHIN_DOUIFLG·SHINRYO_DOUIFLG정보 종류마다의 동의 플래그가 있습니다. 취득계 API를 치면 돌아온다고 해서, 해당 종류의 동의 상태를 확인하지 않고 쓰는 설계로 만들지 않아야 합니다.
  5. 「매년 늘어난다」는 전제로 유지보수를 설계한다. 7장에서 본 대로, 온자 관련은 API·테이블 모두 매년처럼 확장됩니다. 월별 공개 소스의 lddef/record diff 감시를 운영에 넣고, 제도 대응 릴리스 노트로 읽는 습관을 들이기를 권합니다.
  6. 검증은 공식 도구부터. ORCA 공식은 연계 프로그램 외에, 검증용 패턴 파일이나 환경 점검 도구, 의료부조·방문 진료·온라인 진료용 일괄 취득 도구도 공개하고 있습니다. 스스로 테스트 데이터를 만들기 전에, 공식 검증 수단을 확인하십시오.

10. 정리

  • 마이나보험증 접수는, 카드 리더→자격확인 단말→(파일 연계)→연계 프로그램→레세콘이라는 릴레이로 처리됩니다. 단말과 레세콘 사이는 OQS 명명의 XML 파일 주고받기가 기본이고, 니치레세에서는 공식 onshi-tools가 그 다리를 맡습니다.
  • ORCA 쪽 진입점은 온자 관련 API 20개(등록계·의뢰 조립계·취득계)입니다. 자격확인 결과는 환자 마스터에 바로 쓰이지 않고, tbl_onshi_* 13개 테이블에 일단 쌓인 뒤, 환자 등록 업무가 대조·갱신 판단을 쥐는 2단계 구조입니다.
  • tbl_onshi_kaku는 조회에 쓴 검색 조건(SHO_*)과 돌아온 자격 정보(RES_*)를 따로 가지고, 조회 조건과 최신 자격의 어긋남을 레코드 위에서 쫓을 수 있습니다. 관련 레코드는 uuid 연쇄로 묶입니다.
  • 온자 관련 COBOL 수정 이력은, 2020년의 신설부터 얼굴 인증·OCR·진료 정보·의료부조·PMH·온라인 진료까지, 제도 확장의 연표 그 자체입니다. 온자 연계는 「만들고 끝」이 아니라, 매년의 확장에 따라가는 유지보수를 전제로 설계해야 할 영역입니다.
  • 늘 그렇듯, 이들은 모두 공개 소스에서 1차 정보로 확인할 수 있습니다. 국가 사양서의 어휘(OQS의 XML 항목 이름)가 레세콘 API까지 관통하므로, 제도 자료와 소스를 같은 말로 맞춰 볼 수 있습니다.

시리즈 다음은 레셉트의 점검·사정 로직을 예정합니다. 의료기관 안의 데이터 점검(ORCA의 orca41 업무)과 심사 지급 기관 쪽의 컴퓨터 점검이 각각 무엇을 보는지를, 마찬가지로 소스와 공개 자료에서 분해합니다.

11. 참고 자료

같은 태그를 공유하는 최신 기사입니다. 더 가까운 주제로 지식을 넓힐 수 있습니다.

이 기사와 가까운 토픽 페이지입니다. 기사를 출발점 삼아 관련 서비스와 다른 기사로 이어집니다.

이 기사는 다음 서비스 페이지로 이어집니다. 가까운 입구부터 확인해 주세요.

Windows 앱 개발

접수 시스템이나 자격확인 주변의 연계 프로그램은 원내 Windows 단말에서 동작하는 경우가 많고, 파일 감시나 HTTP API 연계를 포함한 Windows 앱 개발이 다루는 범위입니다.

자주 묻는 질문

이 기사 주제에 대해 상담 시 자주 나오는 질문을 모았습니다.

마이나보험증으로 접수하면, 보험 자격 정보는 어떻게 레세콘에 들어가나요?
얼굴 인증 카드 리더로 본인 확인이 끝나면, 자격확인 단말이 사회보험진료보수지급기금·국민건강보험중앙회의 온라인 자격확인 등 시스템에 조회하고, 자격 정보를 XML 파일로 받습니다. 레세콘과의 사이는 공유 폴더를 통한 파일 연계가 기본이며, ORCA(니치레세)의 경우 공식 제공 연계 프로그램(onshi-tools)이 결과 파일을 가져옵니다. 가져온 결과는 니치레세 안의 온자 관련 테이블(tbl_onshi_kaku 등)에 쌓이고, 접수·환자 등록 업무에서 환자 정보·보험 정보로 반영됩니다.
온라인 자격확인으로 흘러오는 것은 보험 자격 정보뿐인가요?
자격 정보만이 아닙니다. 환자의 동의를 전제로, 약제 정보·특정 건강진단 정보·진료 정보도 의료기관 쪽에서 열람할 수 있습니다. ORCA 소스에도 자격확인 결과와는 별도로 약제 정보·특정 건강진단 정보·진료 정보(의과·치과) 각각의 등록 API와 전용 테이블이 있습니다. 나아가 의료부조(생활보호) 자격확인이나 의료비 지원 정보(PMH) 연계 등, 대상은 해마다 넓어지고 있습니다.
ORCA(니치레세)의 온라인 자격확인 관련 API는 몇 개인가요?
공개된 5.2계열 소스(2026년 7월 스냅샷)의 LD 정의를 세면, 온라인 자격확인 관련 엔드포인트는 20개입니다. 내역은 자격확인 결과나 약제·특정 건강진단·진료 정보를 니치레세에 등록하는 등록계, 연계 프로그램이 자격확인 단말에 보낼 조회 의뢰 데이터를 조립해 돌려주는 의뢰계, 전자차트 등이 축적 데이터를 가져가는 취득계입니다. 2020년 11월에 처음 3개가 만들어졌고, 이후 제도가 확장될 때마다 API가 늘어왔습니다.
온라인 자격확인 주변의 연계 시스템을 만들 때, 무엇에 주의해야 하나요?
먼저, 자격확인 단말과 레세콘 사이는 XML 파일 주고받기(연계 애플리케이션 방식)가 기본이라는 전제를 잡는 일입니다. 그다음 ORCA 연계에서는 uuid로 관련 레코드를 따라가는 설계라는 점, 등록계 API와 취득계 API의 역할 차이, 약제·특정 건강진단·진료 정보 열람에는 환자의 동의 상태가 걸린다는 점에 주의가 필요합니다. 또한 제도 대응으로 API나 테이블이 매년처럼 확장되므로, 월별로 공개되는 소스의 diff 감시를 운영에 넣는 것을 권합니다.

저자 프로필

기사 저자의 프로필 페이지입니다.

Go Komura

합동회사 코무라소프트 대표

Windows 소프트웨어 개발, 기술 상담, 장애 조사를 중심으로 재현이 어려운 장애 조사와 기존 자산이 남아 있는 프로젝트에 강점이 있습니다.

블로그 목록으로 돌아가기