2

我正在尝试使用 MDHT 解析 CCD 中的问题部分。我试图解析的 XML 代码是:

<entry>
    <act classCode="ACT" moodCode="EVN">
        <templateId root="2.16.840.1.113883.10.20.22.4.3" />
        <id root="2.16.840.1.113883.3.441" extension="85cec11c26ff475fac469cc9fa7a040c" />
        <code code="CONC" codeSystem="2.16.840.1.113883.5.6" />
        <statusCode code="active" />
        <effectiveTime nullFlavor="UNK">
            <low value="20110925000000" />
            <high nullFlavor="UNK" />
        </effectiveTime>
        <entryRelationship typeCode="SUBJ" inversionInd="false">
            <observation classCode="OBS" moodCode="EVN" negationInd="false">
                <templateId root="2.16.840.1.113883.10.20.22.4.4" />
                <id root="2.16.840.1.113883.3.441.1.50.300011.51.26604.61" extension="1348" />
                <code nullFlavor="NA" />
                <text>Asthma<reference value="#ref_d910f32f622b4615970569407d739ca6_problem_name_1" />
                </text>
                <statusCode code="completed" />
                <effectiveTime nullFlavor="UNK">
                    <low value="20110925000000" />
                    <high nullFlavor="UNK" />
                </effectiveTime>
                <value xsi:type="CD" nullFlavor="UNK">
                    <translation code="195967001" displayName="Asthma" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT">
                        <originalText>
                            <reference value="#ref_d910f32f622b4615970569407d739ca6_problem_name_1" />
                        </originalText>
                    </translation>
                </value>

我想阅读翻译标签(displayName="Asthma")。我想阅读哮喘,它的代码值和代码系统。

但是在 MDHT 中,我无法在值标签中获取翻译标签。我正在做:

entry.getAct().getEntryRelationships().get(0).getObservation().getValues().get(0) //no translation tag.
4

1 回答 1

3

与其他 JAVA/XML 生成相比,使用 MDHT 的优势之一是我们生成特定于域的类来帮助您更有效地浏览文档

您应该避免使用特定的 get() 和通用的 getObservation,因为基础 CDA 标准限制了所需内容,但生产者能够在文档中放置任何类型的观察等。这是一个遍历问题部分的示例片段

观察类本身以及问题观察值是 ANY 的集合,需要正确转换才能获得 CD 类型,而 CD 类型又将具有您正在寻找的翻译属性。

肖恩

ProblemSection ps = ...
        for (ProblemConcernAct cpc : ps.getConsolProblemConcerns()) {
            for (ProblemObservation pos : cpc.getProblemObservations()) {
                for (ANY any : pos.getValues()) {
                    if (any instanceof CD) {
                        CD code = (CD) any;
                        for (CD translationCode : code.getTranslations()) {
                            System.out.println(translationCode.getCode());
                        }

                    }
                }
            }
        }
于 2014-04-26T12:34:43.597 回答