2013-06-26 43 views
0

我有兩個關於爲癌症登記處生成CCD消息的問題。我已經有了一個由CCD XML模式(XSD)生成的CCD類。建立用於癌症註冊的HL7 CCD(基於CDA)

首先,這是一個較舊的模式。它似乎是完全兼容的,但我希望能夠基於最新的CDA模式生成一個新類。每當我使用新架構生成的類和替換原來的類,一個例外是在

serializer.Serialize(textWriterObj, cdaObj); 

拋出我使用MS的XSD.EXE生產的類。我正在運行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"] 

這是一個奇怪的錯誤,因爲我已經爲這個補償,正確的字段的顯示信息的輸出。注意它需要一個特定的法案模板ID,該法案下的EntryRelationship,具有特定的TypeCode和InversionInd值,以及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實例。它也有一些更好的功能,如治療CDA的數據類型,如本地.NET數據類型:

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

還有涵蓋大量相關的使用框架主題的綜合性電子圖書(主要適用於V3的消息,但它確實也適用於CDA)。 http://www.lulu.com/shop/justin-fyfe/advanced-everest-developers-handbook-ebook/ebook/product-21278619.html