2012-05-26 4 views
6

C#과 ASP.NET을 사용하여 의학 응용 프로그램을 개발 중이며이 응용 프로그램에서 환자 혈액 결과를위한 모듈을 만들어야합니다. 그 모듈에서 나는 HL7을 가져와 환자 혈액 결과를 얻기 위해 그것을 분석 할 필요가 있으며 또한 혈액 검사의 정상 값을 강조해야합니다. 어떻게 해야할지 모르겠지만 Google에서 검색했지만 불행히도 관심사와 관련성이 없습니다. NHAPI DLL 파일이 있는데 DLL을 어떻게 사용하는지 모르겠습니다. 어떤 사람이이 모듈을 시작해야하는지 예제 코드에 대한 링크를 줄 수 있습니까?어떻게 혈액 결과에 대한 HL7을 가져 와서 환자 보고서 용으로 파싱 할 수 있습니까?

내 실제 요구 사항은 다음과 같습니다

  • 는 궁극적으로이
  • 이 처음 잘라
  • 결과 구문 분석 붙여 현재의 결과를 보여 경향을 강조하기 위해 처리 및 비정상적인 HL7
  • 에서 수입됩니다

    • BloodResults 값
    • 결과 테이블에 저장

    답변

    3

    실습실에 HL7 요청을 보내려면 파일을 Lab에 보내야하므로 먼저 파일을 만들어야합니다.^~ \ & | | LCS | LCA | LIS | TEST9999 | 199,807,311,532 || ORU MSH :

    String fileName = "testOrder.txt" 
    StreamWriter sr = new StreamWriter(fileName) 
    

    이제 하나가 라인 하나를 추가, 첫 번째 줄은 같은 것입니다 MSH (메시지 헤더 태그)해야합니다 | 2 | 2,161,348,462 PID : 당신은 같은 당신의 파일의 PID 라인을 추가 할 필요가

    sr.WriteLine("MSH|^~\&|" + _YOURAPPLICATIONNAME + "|" + _YOURHOSPITAL + "|" + _RECEIVINGAPPLICATIONNAME + "|" + _RECEIVINGLAB + "|" + _DATETIME + "||ORU^R01|" + _IDOFORDERINYOURDATABASE + "|P|2.2"); 
    

    다음 :^R01은 | 3629 | | P처럼

    2.2 그래서 코드를 당신의 라인이 될 것입니다 | 20809880170 | 1614614 | 20809880170^시험 시간 || 19760924 | M ||| ^^^^ 00000-0000 |||||| 86427531 ^^^ 03 SSN # 여기에

    그래서 스트림에 파일의 위 줄을 쓰도록 지시해야하지만 분명히이 줄의 값도 변경해야합니다. NW | | 8642753100012^LIS | 20809880170^LCS |||||을 ORC : 당신은 MSH 세그먼트에 대해 그랬던 것처럼, PID 사양은 u는 같은 파일에 ORC와 OBR 라인을 추가 할 필요가 이후 http://www.corepointhealth.com/resource-center/hl7-resources/hl7-pid-segment

    에서 찾을 수 있습니다 | 19,980727000000 ||| 하빌 랜드 OBR | 1 |^8,642,753,100,012 LIS |^20809880170 LCS |^008,342 상기도 CULTURE^L ||| 19,980727175800 |||||| SS # 634,748,641 CH14885 SRC : THROA SRC : PENI | 19,980727000000 ||||| 20809880170 || 19980730041800 || BN | F

    이 줄에서도 원하는 값을 바꿉니다. 그러면 테스트 요청 파일이 완료됩니다. 의사가 몇 가지 추가 의견을 제시하면 다음과 같은 다른 NTE 태그를 추가 할 수 있습니다. NTE | 1 | L | MORAXELLA (BRANHAMELLA) CATARRHALIS

    파일이 완성되었으므로 이제 실험실로 보낼 수 있습니다. 파일에서 중요한 것은 MSH 태그의 ORU^R01이며 테스트 요청임을 실험실에 알립니다. 실습실에서는 나중에 동일한 MSH, PID, ORC 및 OBR 태그와 함께 테스트 결과가 포함 된 OBX 태그가 포함 된 HL7 파일을 보냅니다. MSH 태그에서 데이터베이스의 주문 ID를 전송 했으므로 실험실에서 다시 보내면이 파일의 순서를 확인할 수 있습니다.

    파일을 한 줄씩 읽을 수 있으며 각 줄의 문자열을 "|" 필요한 데이터를 꺼내 데이터베이스에 덤프하십시오.

    나는 당신에게 무엇을 어떻게해야하는지 더 잘 보여주기를 바랍니다.

    3

    HL7 파서에서 약간의 진전을 보셨기를 바랍니다.

    첫 번째 정류장은 HL7 website입니다. 여기에는 도구 및 리소스와 기타 유용한 링크가 포함되어 있습니다.

    나는 정보가 버전 2.x 메시지에서 추출해야 알아 내려고 노력에 매우 도움이 될 수는 아래의 링크를 발견 :

    http://amisha.pragmaticdata.com/~gunther/oldhtml/tables.html

    이 웹 페이지의 상단에 보면 이전 링크의 경우 '메시지', '세그먼트'또는 '복합'을 선택할 수있는 옵션이 있음을 알 수 있습니다. 각 페이지는 매우 도움이되지만 일반적인 정보를 제공합니다.

    또한, 나는 일부 Google 검색했고, 당신에게 v2 및 v3에서 모두 메시지의 예를 보여줍니다은 다음 웹 사이트를 발견

    http://www.ringholm.de/docs/04300_en.htm

    당신이 가장 가능성이 원하는 것 V3와 함께 작동하도록하려는 경우 Visual Studio에서 보내고받는 XML에 직접 바인딩하는 일부 클래스를 생성하는 데 사용할 수있는 XML 스키마를 찾으려고하면 훨씬 쉽게 개발할 수 있습니다. 나는 구글에서 검색하고 또는 필요하지 않을 수도 있습니다 당신은 메시지의 큰 그룹에 대한 클래스를 생성하는 데 사용할 수있는 스키마 포함이 웹 사이트를 발견 :

    http://schemas.liquid-technologies.com/HL7/hl7_24_xsd/

    나는 당신에게 세부 사항을 제공 할 수없는 오전을 찾고있는 환자 정보 유형을 처리하는 HL7 응용 프로그램을 작성한 적이 없기 때문에 필요한 메시지에 대해 다음과 같은 표준 포인터를 따라야하지만 다음 표준 포인터를 따라야합니다.

    MSH 세그먼트는 다음과 같은 주요 부분을 구분하는 구분 기호를 알려줍니다. 정보 (구분 기호는 응용 프로그램간에 공통적이지만 은 항상이 아닙니다.) 구분 기호가이 메시지 세그먼트에 도착하는 순서를 아는 것은 나중에 두통을 저장합니다. 또한 메시지 번호, 메시징 시스템 이름을 포함하며 다른 HL7 시스템과 통신하기 위해 필요한 연결 정보를 포함 할 수 있습니다.또한 데이터베이스에 데이터를 유지하려는 경우 매우 중요한 메시지 유형을 제공합니다. 메시지 유형을 사용하면 데이터를 추가, 업데이트 또는 삭제해야하는지 알 수 있습니다.

    PID 세그먼트는 환자 정보를 제공하므로 저장해야하는 정보를 고유하게 식별하는 데 도움이됩니다.

    세그먼트의 모든

    가 제공하는 amisha.pragmaticdata.com 링크에 더 자세히 나와 있습니다 이전

    이 정보가 도움이되기를 바랍니다. 나는 많은 것을 주었고 특별한 질문이 있으면 그 질문에 답하려고 노력하고 싶습니다.

    감사합니다.

    +0

    감사에 대한 이상 저와 "LL"에 대한 비판적에 대한 높은 이상 높은, "HH"에 대한 일반에 대한 "N", "H" , "L"@AndHeCodedIt . 환자 입원 및 병원 관리 시스템의 기타 문제에 대해 HL7없이 응용 프로그램을 개발했습니다. 최근 모듈에서는 HL7에서 혈액 검사를 가져와야하고 사용자는 특정 환자의 실험실로 보낼 시험을 선택합니다. 이 요구 사항에 대해 먼저 혈액 검사를 위해 HL7을 가져와야합니다. 그리고 그 사용자는 실험실로 보낼 테스트를 선택합니다. 첫 번째 링크는 용어와 의미에 대한 세부 정보를 제공하지만 가능한 한 빨리이 프로그램을 작성하려고합니다. 지금까지는 구현에 이르는 것을 찾지 못했습니다. 코딩 예제를 나에게 알려줄 수 있습니까? –

    +0

    @Imran Balouch가 두 번째 대답에서 의사 코드 응답을 제공 한 것처럼 보입니다. 충분히 자세합니까? 아니면 더 많은 정보가 필요합니까? – AndHeCodedIt

    1

    저는 임상 실험실에서 IT 부서에서 일하고 있습니다. 아마도 도움이 될 수 있습니다. 대부분의 실험실은 HL7 버전 2의 HL7 ORU^R01 레코드를 사용하여 결과를보고합니다.x 및 대부분의 EMR은 버전 2.x 형식으로 전자 주문 (HL7 ORM^O01)을 보냅니다. 작성한 구문 분석기는 v2.x 파이프로 구분 된 결과 메시지를 처리하도록 설정되어야합니다 (환자의 결과를 읽고 기록하고보고하려는 경우). 다음은 파일에서 빠져 나오기 위해 필요한 것의 입문서입니다.

    HL7 파일에는 일반적으로 파일 당 하나의 액티비티 (환자와의 만남을 위해 실험실에서 말하기) 만 포함됩니다. 각 파일에는 HL7 "세그먼트"가 포함되어 있으며 (각 세그먼트는 일반적으로 파일의 CR/LF로 구분됩니다) 세 문자로 된 니모닉으로 표시됩니다. 각 세그먼트의 필드는 파이프 구분 기호 "|"로 구분됩니다. 캐릭터와 필드가 서브 세그먼트가있는 경우 그들은 캐럿 구분 기호로 구분됩니다 "^"환자 정보

    • , 당신은 PID 세그먼트 (환자 식별자)을 살펴 보겠습니다 : PID 세그먼트 5 (PID.5) 환자의 성 (lastname)^이름 (firstname)^중간 초기 PID 세그먼트 7 (PID.7)은 환자 생년월일 (일반적으로 YYYYMMDD 형식)입니다. PID 세그먼트 8 (PID.8)은 환자의 성별 F) PID 세그먼트 11 (PID.11) 은 환자의 주소를 가지게됩니다 : Add1^Add2^City^State^Zip

      결과를 분석하려면 OBR 및 OBX 세그먼트를 통해 OBR은 의사가 무엇입니까 실험실 OBX에서 해당 주문 (가끔은 일대일, 가끔은 하나)에 해당하는 결과입니다 귀하의 초점은 OBX 세그먼트에 있어야합니다 : OBX 세그먼트 2 (OBX.2)는 "NM"(숫자) "TX"(텍스트) 또는 "ST"(문자열)로 표시되는 인이 테스트의 결과 유형을 지정합니다. - 마음에 들지 않는 모든 실험실 테스트 결과는 정확히 숫자입니다. 에서 멀리 떨어져 있습니다. OBX 세그먼트 3 (OBX.3)은 테스트에 대한 실험실 식별자를 갖습니다. 내부 코드 번호 및 설명 일 수도 있고 보편적 인 표준 번호 시스템 인 LOINC (www.loinc.org 참조) 일 수도 있습니다 실험실 테스트 - 실험실에 달려 있습니다. OBX 세그먼트 5 (OBX.5) 은 Observation Value (Result) OBX 세그먼트 6 (OBX.6)을 갖습니다. 테스트 OBX 세그먼트 7 (OBX.7)의 측정 단위에는 tst OBX 세그먼트 8 (OBX.8)에는 비정상적인 플래그 표시기가 있습니다. 테스트 결과가 비정상 인 경우 이는 연구소 (파서가 아님)가 "플래그"를 보내야 할 책임입니다. 표준입니다 NULL 또는 위험 수준의