2013-06-26 4 views
0

암 등록을위한 CCD 메시지 생성과 관련하여 두 가지 문제가 있습니다. 이미 CCD XML 스키마 (XSD)에서 생성 된 CCD 클래스가 있습니다.암 등록을위한 HL7 CCD (CDA 기준) 구축 (의미있는 사용 레벨 2)

먼저이 스키마는 오래된 스키마입니다. 그것은 완전히 호환되는 것,하지만 나는 가장 최근의 CDA 스키마를 기반으로 새로운 클래스를 생성 할 수있게하고 싶습니다. 나는 새 스키마에서 생성 된 클래스를 사용하여 원래의 클래스를 교체 할 때마다 예외가 나는 클래스를 생산하는 MS의 XSD.exe을 사용하고

serializer.Serialize(textWriterObj, cdaObj); 

에서 발생합니다. VS 2012를 실행 중이며 XSD.exe 버전은 .Net Framework 4.0과 관련이있는 것으로 보입니다. 그러나 현재 작업중인 프로젝트는 2.0으로 고정되어 있습니다. 생성 된 클래스는 기본적으로 동일하며 FW 4.0 버전의 XSD.exe에서 생성되었음을 나타내는 태그 외에도 있습니다.

다른 문제는 메시지를 생성하고 공식 muCrValidation 도구로 유효성을 검사 한 후 얻는 오류 집합입니다.

ERROR: In IHE PCC Cancer Diagnosis Section (1.3.6.1.4.1.19376.1.7.3.1.3.14.1), a Cancer Diagnosis must contain a Problem Concern Entry (1.3.6.1.4.1.19376.1.5.3.1.4.5.2) that contains a Cancer Diagnosis Entry (1.3.6.1.4.1.19376.1.7.3.1.4.14.1). See Section 2.5.3.2. 
LOCATION: /ClinicalDocument[1]/component[1]/structuredBody[1]/component[1]/section[1] 
TEST : cda:entry/cda:act[cda:templateId[@root = "1.3.6.1.4.1.19376.1.5.3.1.4.5.2"]]//cda:entryRelationship[@typeCode="SUBJ" and @inversionInd="false"]//cda:templateId[@root = "1.3.6.1.4.1.19376.1.7.3.1.4.14.1"] 

나는 이것을 보상했기 때문에 이것은 이상한 오류입니다. 올바른 필드에 메시지가 출력됩니다. Act에 대한 특정 템플리트 ID, 특정 TypeCode 및 InversionInd 값을 갖는 Act 아래의 EntryRelationship 및 EntryRelationship 아래의 다른 템플리트 ID가 필요합니다.

메시지 건물 클래스에서이를 보완합니다.

act.templateId = new II[3]; 
for (int i = 0; i < act.templateId.Length; i++) 
act.templateId[i] = new II(); 
act.templateId[0].root = "1.3.6.1.4.1.19376.1.5.3.1.4.5.2"; 
act.templateId[1].root = "1.3.6.1.4.1.19376.1.5.3.1.4.5.1"; 
act.templateId[2].root = "2.16.840.1.113883.10.20.1.27"; 
... 
act.entryRelationship[0].typeCode = x_ActRelationshipEntryRelationship.SUBJ; 
act.entryRelationship[0].inversionInd = false; 
act.entryRelationship[0].templateId = new II[1]; 
act.entryRelationship[0].templateId[0] = new II(); 
act.entryRelationship[0].templateId[0].root = @"1.3.6.1.4.1.19376.1.7.3.1.4.14.1"; 

나는 대부분의 오류 (및 오류 섹션)를 제거 할 수 있었지만 이러한 종류의 오류가 남아 있습니다. 나는 나머지를 나열 하겠지만 나는 인물이 없다. 이 문제를 해결할 수 있다면 나머지 부분을 쉽게 해결할 수 있다고 가정합니다.

+0

NHAPI를 본 적이 있습니까? http://nhapi.sourceforge.net/home.php –

+0

@ John Hartsock NHAPI는 HL7 v 2.x (ASCII) 용 메시지를 생성합니다. CDA (XML) 및 HL7 v 3.x는 동의어입니다. – Glimpse

답변

0

XmlSerializer의 기본 네임 스페이스를 설정 했습니까?

XmlSerializer ser = new XmlSerializer(typeof(POCD_MT000040ClinicalDocument), "urn:hl7-org:v3"); 
2

에베레스트 (http://everest.marc-hi.ca)를 보았습니까? 보다 일반적인 HL7v3 프레임 워크이지만 CDA 인스턴스를 구성 할 수 있습니다.

ClinicalDocument doc = new ClinicalDocument(); 
doc.Title = "My CDA"; 
doc.EffectiveTime = DateTime.Now; 

프레임 워크를 사용하여 관련된 주제를 많이 다루고 종합 전자 책도있다 (주로 적용 V3 메시지에 있지만 않습니다 : 그것은 또한 기본 .NET 데이터 형식과 같은 CDA 데이터 유형을 치료 같은 몇 가지 더 좋은 기능을 가지고 있습니다 CDA에도 적용). http://www.lulu.com/shop/justin-fyfe/advanced-everest-developers-handbook-ebook/ebook/product-21278619.html