참조모듈조회
인증 기준 선택
-
인증기준(구)
*신구대비표 참조 - I003(진료의뢰 정보 생성 조회)
- 분류
- 진료정보
- 유형별 필수 여부
-
- 유형 1 : 선택
- 유형 2 : 선택
- 유형 3 : 선택
- 인증기준 설명
-
진료정보교류 시스템을 활용하여 환자의 진료의뢰 정보를 생성하고 조회할 수 있어야 함.
- 개발가이드
-
보기(레이어 팝업)
개발가이드
진료의뢰 정보 생성 조회 I003
- Input
-
1. 데이터항목에 상세작성
- Output
-
1. 진료의뢰서가 작성되고 타 의료기관에 전송된다.
2. 진료의뢰 현황을 통해 의뢰 상태 및 내용이 확인된다.
- 관련 인증항목
- 데이터 항목
-
[문서정보]
항목명
필수여부
(R1/R2/O)유형
밸류셋
임상문서명
R1
string
시스템에서 자동생성
임상문서 코드
R1
string
Value set 구분 0 참조
문서 ID
R1
string
시스템에서 자동생성
문서생성기관 OID
R1
string
의뢰(회송)번호
R1
(의뢰서/회송서의경우만기입)
number
의뢰·회송서의 고유번호
- 요양기관기호(8자리)+발생일(yymmdd)+일련번호(5자리)
기밀성 수준 코드
R1
string
Value set 구분 2 참조
[환자정보]
항목명
필수여부
(R1/R2/O)유형
밸류셋
환자 ID
R1
string
-
성명
R1
string
-
생년월일
R1
date
-
환자성별
O
string
Value set 구분 3 참조
연락처
O
string
-
주소(기본주소)
주소(상세주소)
주소(우편번호)
O
string
-
진료구분
R2
string
Value set 구분 4 참조
[의료기관정보]
항목명
필수여부
(R1/R2/O)유형
밸류셋
의료기관 식별번호
R
number
-
요양기관기호
R
number
-
요양기관명
R
string
-
요양기관 연락처
R
string
-
주소(기본주소)
주소(상세주소)
주소(우편번호)
O
string
-
[진료의/담당자]
항목명
필수여부
(R1/R2/O)유형
밸류셋
진료의(담당자) 성명
R1
string
-
진료의 면허번호 (담당자 ID)
R2
number
-
진료의(담당자) 연락처
O
string
-
진료과명
R2
string
Value set 구분 5 참조
진료과 코드
R2
number
Value set 구분 5 참조
[문서작성자]
항목명
필수여부
(R1/R2/O)유형
밸류셋
문서작성자 ID
R1
string
-
문서작성자 성명
R1
string
-
문서작성자 연락처
O
string
-
[수신기관/전원기관 정보]
항목명
필수여부
(R1/R2/O)유형
밸류셋
의료기관 식별번호
R1
number
-
요양기관기호
R1
number
-
요양기관명
R1
string
-
요양기관 연락처
R1
string
-
진료의 성명
R1
string
-
주소(기본주소)
주소(상세주소)
주소(우편번호)
O
string
-
진료과명
O
string
Value set 구분 5 참조
진료과 코드
O
number
Value set 구분 5 참조
진료의 면허번호
O
number
-
[진단내역]
항목명
필수여부
(R1/R2/O)유형
밸류셋
진단일자
R1
date
-
상병명(KCD 영문)
R1
string
-
상병명(KCD 한글)
O
string
-
상병코드(KCD)
R1
string
-
진단 KOSTOM 코드셋
O
string
-
[약물처방내역]
항목명
필수여부
(R1/R2/O)유형
밸류셋
처방일시
R1
date
-
처방약품명
R1
string
-
처방약품코드
R2
string
-
주성분명
O
string
-
주성분코드
O
string
-
용량
R1
number
-
복용단위
R1
string
-
횟수
R1
number
-
투여기간
R1
string
-
용법
O
string
-
[검사결과]
항목명
필수여부
(R1/R2/O)유형
밸류셋
검사유형 구별
R1
number
- Specimen(0) : 검체검사
- Pathology(1) : 병리검사
- Radiology(2) : 영상검사
- Functional(3) : 기능검사
- None(4) : 미지정(기본값)
검사일시
R1
date
-
검사항목명(심평원 청구코드) - 검체검사
R1
string
-
검사항목코드(심평원 청구코드) - 검체검사
R2
string
-
검사명(심평원 청구코드)
R1
string
-
검사코드(심평원 청구코드)
R2
string
-
검사결과값
R2
string
-
참고치
O
string
-
PACS Accession Number
R2
number
-
Web PACS 기본 URL 경로
R2
URL
-
[수술/처치내역]
항목명
필수여부
(R1/R2/O)유형
밸류셋
수술일자/응급처치일자
R1
date
-
수술명(ICD-9-CM)
R1
string
-
수술코드(ICD-9-CM)
R1
string
-
수술후 진단명
O
string
-
마취종류
O
string
-
[알러지 및 부작용]
항목명
필수여부
(R1/R2/O)유형
밸류셋
등록일자
R1
date
-
알러지요인
R1
string
Value set 구분 6 참조
알러지요인 코드
R1
string
Value set 구분 6 참조
알러지명
O
string
-
반응
O
string
-
[소견 및 주의사항]
항목명
필수여부
(R1/R2/O)유형
밸류셋
이학적검사결과
기타소견및주의사항
R2
string
-
[의뢰사유]
항목명
필수여부
(R1/R2/O)유형
밸류셋
의뢰사유
R2
string
-
[예약관련 정보]
항목명
필수여부
(R1/R2/O)유형
밸류셋
예약희망일시
R2
datetime
-
예약관련 내용
O
string
-
[의뢰정보]
항목명
필수여부
(R1/R2/O)유형
밸류셋
의뢰상태구분
R1
number
01 / 02
임상적 의뢰사유구분
R1
number
01/02/03/04
비임상적 의뢰사유구분
R1
string
01/02/기타
(R1: 반드시 값 기입 / R2: 존재하는 경우 반드시 값 기입 / O: 선택에 따라 값 기입)
- 개발 내용 시나리오
-
1. 진료의뢰서 작성을 위한 진료정보교류 진료의뢰서 작성 메뉴 클릭
2. 진료의뢰 대상 환자 선택
3. 진료의뢰서 작성
- 진료 기간* 설정에 따른 환자 진료내역** 조회
* 당일, 1주, 15일, 1개월, 3개월 등
** 상병, 처방, 검사, 영상, 예방접종, 수술내역 정보 등
- 진료내역* 확인 및 추가 작성
* 환자 상태 및 진료 소견, 알러지 정보, 의뢰 사유 작성
- 영상(CT, MRI 등) 정보 선택
- 진료 관련 첨부파일 추가(5개 파일, 20MB 이내)
4. 진료의뢰서 수신의료기관 지정 및 정보 입력
- 수신의료기관, 진료과목, 진료의사, 의뢰사유, 예약일시, 예약메모
5. 환자 동의 상태 체크
- 전송 전 시스템 상에서 환자의 동의 여부 체크
6. 진료의뢰서 적합성 체크 및 전송
- 진단내역, 수신기관 정보 등 누락 여부 체크 및 오류 알림
7. 진료정보교류 현황에서 교류문서 발신 내역 확인
- 진료의뢰서 송·수신 내역 조회 및 진료의뢰서 내용 확인
- 전송한 의뢰서에 포함된 첨부파일 확인
- 산출소스
-
//진료의뢰서
Private Function Referral()
Dim dto As New CDAObject
//문서정보
dto.DocumentInformation = New DocumentInformationObject
dto.DocumentInformation.DocumentType = "1.2.410.100110.40.2.1.1" //의뢰서
//의료기관 OID
dto.DocumentInformation.OrganizationOID = "1.2.410.100110.10.99995111"//요양기관기호(8자리) + 발생일(yyMMdd) + 일련번호(5자리)
//예시 : 요양기관 기호 - 99995111, 발생일 - 2018년 11월 30일 , 일련번호 - 1
//예시값 : 9999511118113000001
dto.DocumentInformation.RequestNumber = "99995111" + & _
Format(Now, "yyMMdd") + "00001"//환자정보
dto.Patient = New RecordTargetObject
dto.Patient.LocalId = "001" //환자D
dto.Patient.PatientName = "홍비트“ //환자명
dto.Patient.DateOfBirth = "19991231" //생년월일
dto.Patient.Gender = GenderType.Female //성별(Value Set참조)
dto.Patient.TelecomNumber = "000-0000-0000" //연락처
dto.Patient.AdditionalLocator = "서울서초구서초대로“ //주소기본
dto.Patient.StreetAddress = "74길33" //주소상세
dto.Patient.PostalCode = "06621" //주소우편번호
dto.Patient.CareType = CareTypes.INPATIENT //진료구분(Value Set참조)//의료기관정보
dto.Custodian = New CustodianObject
dto.Custodian.OID = "1.2.410.100110.10.99995111" //의료기관식별번호
dto.Custodian.Id = "99995111" //의료기관기호
dto.Custodian.CustodianName = "1차의료기관“ //의료기관명
dto.Custodian.TelecomNumber = "000-0000-0000" //의료기관연락처
dto.Custodian.AdditionalLocator = "서울서초구서초대로“ //주소기본
dto.Custodian.StreetAddress = "74길33" //주소상세
dto.Custodian.PostalCode = "00000" //주소우편번호//진료의
dto.Author = New AuthorObject
dto.Author.AuthorName = "이비트“ //의료진명
dto.Author.MedicalLicenseID = "00001" //의료진면허번호
dto.Author.TelecomNumber = "000-0000-0000" //의료진연락처
dto.Author.DepartmentName = "외과 //진료과명(Value Set참조)
dto.Author.DepartmentCode = "0400" //진료과코드(Value Set참조)//문서작성자
dto.Authenticator = New AuthenticatorObject
dto.Authenticator.Id = "0001" //문서작성자D
dto.Authenticator.AuthenticatorName = "강비트“ //문서작성자명
dto.Authenticator.TelecomNumber = "000-0000-0000" //문서작성자연락처
//수신/전원기관정보
Dim info1 As New InformationRecipientObject
info1.OID = "1.2.410.100110.10.99995112" //요양기관식별번호
info1.Id = "99995112" //요양기관기호
info1.OrganizationName = "3차의료기관" //요양기관명
info1.TelecomNumber = "1599-1004" //요양기관연락처
info1.DoctorName = "김의사" //진료의명
info1.AdditionalLocator = "서울시 서대문구 oo동" //주소(기본)
info1.StreetAddress = "000 번지" //주소(상세)
info1.PostalCode = "00000" //주소(우편번호)
info1.DepartmentName = "가정의학과" //진료과명(Value Set참조)
info1.DepartmentCode = "2300" //진료과코드(Value Set참조)
dto.InformationRecipient = New InformationRecipientObject() {info1}//진단내역
Dim prob1 As New ProblemObject
prob1.StartDate = "20160201" //진단일자
prob1.ProblemName = "Cerebral venous sinus thrombosis" //상병명
prob1.ProblemCode = "I676" //상병코드//KOSTOM 설정
Dim kostomCodes1 As New KostomObject
kostomCodes1.Code = "H02434733" //용어코드
//영문명
kostomCodes1.DisplayName = "Intracranial phlebitis and thrombophlebitis of nonpyogenic origin"
Dim kostomCodes2 As New KostomObject
kostomCodes2.Code = "H01330551" //용어코드
//영문명
kostomCodes2.DisplayName = "Phlecitis and thrombophlebites(of) intracranial, nonpyogenic"
prob1.KostomCodes = New KostomObject() {kostomCodes1, kostomCodes2}
dto.Problems = New ProblemObject() {prob1}//약물처방내역
Dim medi1 As New MedicationObject
medi1.StartDate = "20180423" //처방일시
//처방약품명
medi1.MedicationName = "락티케어제마지스로션0.25%(프레드니카르베이트)_(0.15g/60g)"
medi1.MedicationCode = "653000412" //처방약품코드
medi1.MajorComponent = "프레드니카르베이트" //주성분명
medi1.MajorComponentCode = "D07AC18" //주성분코드
medi1.DoseQuantity = "1" //용량
medi1.DoseQuantityUnit = "g" //복용단위
medi1.RepeatNumber = "2" //횟수
medi1.Period = "1" //투여기간
medi1.Usage = "rub 2/d" //용법
dto.Medications = New MedicationObject() {medi1}검사결과
//검체검사
Dim labSpec1 As New LaboratoryTestObject
labSpec1.LabTypeString = "Specimen" //검사유형
labSpec1.Date = "20160202" //검사일시
labSpec1.EntryName = "ABGA" //검사항목명
labSpec1.EntryCode = "G2101" //검사항목코드
labSpec1.TestName = "pH" //검사명
labSpec1.TestCode = "C3811" //검사코드
labSpec1.ResultValue = "7.274" //검사결과값
labSpec1.Reference = "7.38 ~ 7.46" //참고치//병리검사
Dim labPath1 As New LaboratoryTestObject
labPath1.LabTypeString = "Pathology" //검사유형
labPath1.Date = "20160205" //검사일시
labPath1.TestName = "QEEG" //검사명
labPath1.TestCode = "L8720" //검사코드
labPath1.ResultValue = "Summary: Negative for M. tuberculosis complex" //검사결과//영상검사 - 1
Dim labRadi1 As New LaboratoryTestObject
labRadi1.LabTypeString = "Radiology" //검사유형
labRadi1.Date = "20160205" //검사일시
labRadi1.TestName = "Chest PA" //검사명
labRadi1.TestCode = "RG2011" //검사코드
labRadi1.ResultValue _ //검사결과
= "The cardiomediastinum is within normal limits. The trachea is midline. " _
+ "The previously described opacity at the medial right lung base has cleared."
//Web PACS 기본 주소
labRadi1.WebPacsBaseURL = "https://ihie.mychart.kr/hime-view/dicomWebView.jsp"
labRadi1.AccessionNumber = "1210491" //PACS Accession Number
//영상검사 - 2
Dim labRadi2 As New LaboratoryTestObject
labRadi2.LabTypeString = "Radiology" //검사유형
labRadi2.Date = "20160209" //검사일시
labRadi2.TestName = "Chest PA" //검사명
labRadi2.TestCode = "RG2011" //검사코드
//검사결과
labRadi2.ResultValue _
= "The cardiomediastinum is within normal limits. The trachea is midline. " _
+ "The previously described opacity at the medial right lung base has cleared."
//Web PACS 기본 주소
labRadi2.WebPacsBaseURL = "https://ihie.mychart.kr/hime-view/dicomWebView.jsp"
labRadi2.AccessionNumber = "14321679" //PACS Accession Number//기능검사
Dim labFunc1 As New LaboratoryTestObject
labFunc1.LabTypeString = "Functional" //검사유형
labFunc1.Date = "20160205" //검사일시
labFunc1.TestName = "ECG" //검사명
labFunc1.TestCode = "KL1100" //검사코드
labFunc1.ResultValue = "SINUS RHYTHM : normal P axis, V-rate 50-99" //검사결과
dto.LaboratoryTests = New LaboratoryTestObject() {labSpec1, labPath1, _
labRadi1, labRadi2, labFunc1}//수술/처치내역
Dim proce1 As New ProcedureObject
proce1.Date = "20121212" //수술일자
proce1.ProcedureName_ICD9CM = "laparoscopic cholecystectomy" //수술명
proce1.ProcedureCode_ICD9CM = "51.23" //수술코드
proce1.PostDiagnosisName = "간경화(Hepatic sclerosis)" //수술 후 진단명
proce1.Anesthesia = "국부 마취" //마취종류
dto.Procedures = New ProcedureObject() {proce1}//알러지 및 부작용
Dim aller1 As New AllergyObject
aller1.StartDate = "20170201" //등록일자
aller1.AllergyType = "약물" //알러지유형
aller1.AllergyTypeCode = "H00501805" //알러지요인코드
aller1.Allergy = "조영제" //알러지명
aller1.Reaction = "Wheezing" //반응
dto.Allergies = New AllergyObject() {aller1}//소견 및 주의사항
dto.Assessment = New AssessmentObject
dto.Assessment.PhysicalScienceLab = "large lymphoid cells and abundant karyorrhectic debris"
dto.Assessment.Assessment = "차가운 음식을 삼가하시기 바랍니다."//의뢰사유(의뢰서)
dto.ReasonForReferral = "가슴 통증을 호소하셨습니다. 고진선처 바랍니다."//예약관련정보(의뢰서)
dto.PlanOfTreatment = New PlanOfTreatmentObject
dto.PlanOfTreatment.PlannedDate = Format(Now.AddMonths(1), "yyyyMMdd")
dto.PlanOfTreatment.Text = "Asprin 투약 후 상태 호전됨. 약물요법 시행 필요"//의뢰/회송정보(의뢰서) - 심평원연계 보험관련정보
dto.ReferralTransferInformation = New ReferralTransferInformationObject
dto.ReferralTransferInformation.ReferralCurrentStatus = "01" //의뢰상태구분(Value Set참조)
dto.ReferralTransferInformation.ReferralClinicalReason = "02" //임상적 의뢰사유구분(Value Set참조)
dto.ReferralTransferInformation.NonClinicalReason = "03" //비임상적 의뢰사유구분(Value Set참조)Return dto
End Function//교류문서등록
Private Sub AddDocument()
Try
SetEndpoint() //Endpoint 입력함수호출
//요청모델생성영역=======================================================
Dim objDocumentExchangeService As New DocumentExchangeService _
(
senderCertificatePath, //보내는측 pfx 파일 경로
certPassword, //보내는측 pfx 파일 암호
urlRegistryStoredQueryService, //교류문서메타정보조회Url
urlProvideAndRegisterDocumentSetService, //교류문서 등록Url
urlRetrieveDocumentSetService, //교류문서/첨부파일조회
urlUpdateDocumentSetService,
urlAddNotificationInfo, //교류문서/알림정보 등록
//교류문서상태등록/교류상태히스토리조회/현재교류상태조회
urlReferralStatusService + "/AddReferralStatus"
)
Dim objAddDocumentRequest As New AddDocumentRequestObject//생성한CDA 모델
objAddDocumentRequest.CDAObjects = {Referral()} //진료의뢰서
objAddDocumentRequest.MPIId =
"046f6488-181b-4a8b-9a19-03d724331a8e^^^&1.2.410.100110.40.1.3.1&ISO" //환자식별번호
objAddDocumentRequest.SourceId = "1.2.410.100110.10.99995111" //의료기관ID
objAddDocumentRequest.ReferralId = "" //의뢰서D (회신일경우필수)
//첨부파일정보
objAddDocumentRequest.Attachments =
{ //첨부파일경로
New AttachmentObject With {.AttachFileFullPath = 파일폴더+\TestData\attach1.jpg"}
}
objAddDocumentRequest.InsurerCategory = "4" //보험자종별구분
//보훈위탁진료요양기관의상이처무자격자또는보훈병원의국비일반 국비보험
'objAddDocumentRequest.InsurerCategory = "7"
objAddDocumentRequest.HIRAPatConsentConfirm = "Y" //심평원환자동의확인
objAddDocumentRequest.HIRAMedStaffConsent = "Y" //심평원의료진동의
objAddDocumentRequest.ReqInfo = SetClientInfo() //사용자정보입력
objDocumentExchangeService.ReqModelAddDocument = objAddDocumentRequest//모델전송수신영역=================================================
objDocumentExchangeService.AddDocument()
//응답모델추출영역=================================================
//응답정보
Dim sResult As String =
("등록결과, objDocumentExchangeService.RespModelAddDocument.ResponseStatus) & _
("알림정보등록상태,objDocumentExchangeService.RespModelAddDocument.AddNotificationStatus)
//등록문서정보
If Not (objDocumentExchangeService.RespModelAddDocument.RegisteredDocument Is Nothing) _
And objDocumentExchangeService.RespModelAddDocument.RegisteredDocument.Length > 0 Then
For i = 0 To objDocumentExchangeService.RespModelAddDocument.RegisteredDocument.Length - 1
datgrd.Rows.Add(" # " & (i + 1))
datgrd.Rows.Add(" 문서유일번호, objDocumentExchangeService.RespModelAddDocument.RegisteredDocument(i).DocumentUniqueId)
datgrd.Rows.Add(" 문서명, objDocumentExchangeService.RespModelAddDocument.RegisteredDocument(i).Title)
//KOS 정보목록
If Not (objDocumentExchangeService.RespModelAddDocument.RegisteredDocument(i).KosInfoList Is Nothing) _
And objDocumentExchangeService.RespModelAddDocument.RegisteredDocument(i).KosInfoList.Length > 0 Then
For j = 0 To objDocumentExchangeService.RespModelAddDocument.RegisteredDocument(i).KosInfoList.Length - 1
datgrd.Rows.Add(" # " & (j + 1))
datgrd.Rows.Add(" KOS 개체nique ID", objDocumentExchangeService.RespModelAddDocument.RegisteredDocument(i).KosInfoList(j).KosInstanceUid)
datgrd.Rows.Add(" 영상검사처방ey", objDocumentExchangeService.RespModelAddDocument.RegisteredDocument(i).KosInfoList(j).AccessNo)
Next
End If
//CDA 뷰어
//등록문서 의뢰서뷰어양식
webbrowserCDA.DocumentText = transformXmlToHtmlWithXsl _
(
objDocumentExchangeService.RespModelAddDocument.RegisteredDocument(i).Document,
Path + "\StyleSheet\CDA_StyleSheet_Total_ver6.xsl"
)
Next
End If
//===============================================================
Catch ex As Exception
MessageBox.Show("에러 " + ex.ToString())
End Try
End Sub
