我有兩個關於爲癌症登記處生成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";
我已經能夠寫出一大部分的錯誤(和錯誤的部分),但這種依然存在。我會列出其餘的,但我沒有人物。我想如果我能解決這個問題,我可以很容易地解決其餘問題。
你有沒有看過NHAPI? http://nhapi.sourceforge.net/home.php –
@John Hartsock NHAPI只是爲HL7 v 2.x(ASCII)生成消息。 CDA(XML)和HL7 v 3.x是同義詞。 – Glimpse