Fhir json - как подавить атрибуты (например, @Value, @id) в Java-приложении

У меня есть REST API, который должен производить как Fhir xml, так и Fhir json. Я сгенерировал Java-классы, используя xsd. XML работает на 100%. однако, объект json выглядит забавно, так как содержит атрибуты, которые я хотел бы подавить. Я указал в своем REST API: @Produces({"application/json+fhir",MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})

Вывод XML:

    <Bundle xmlns="http://hl7.org/fhir" xmlns:ns2="http://www.w3.org/1999/xhtml">
<meta>
    <versionId value="urn:uuid:b6bfc48a-7b03-4bf3-ba94-d05a3b52979a"/>
    <lastUpdated value="2017-07-10T08:32:44.670+02:00"/>
</meta>
<type value="collection"/>
<entry>
    <resource>
        <Coverage>
            <id value="47000340200"/>
            <subscriber>
                <display value="AB SMITH"/>
            </subscriber>
            <period>
                <start value="2017-01-01"/>
            </period>
            <payor>
                <display value="XXX040TXX"/>
            </payor>
            <grouping>
                <extension url="some URL">
                    <valueUri value="Hyperlink goes here"/>
                </extension>
                <group value="XXX"/>
                <groupDisplay value="XXX MEDICAL FUND"/>
                <plan value="OPT1"/>
                <planDisplay value="OPTION1"/>
                <class value="Active"/>
            </grouping>
        </Coverage>
    </resource>
</entry>

Вывод JSON:

    {"Bundle": {
"meta":    {
    "versionId": {"@value": "urn:uuid:b6bfc48a-7b03-4bf3-ba94-d05a3b52979a"},
    "lastUpdated": {"@value": "2017-07-10T08:32:44.670+02:00"}
},
"type": {"@value": "collection"},
"entry":    [
    {"resource": {"Coverage":       {
        "id": {"@value": "47000340200"},
        "subscriber": {"display": {"@value": "AB SMITH"}},
        "period": {"start": {"@value": "2017-01-01"}},
        "payor": {"display": {"@value": "XXX040TXX"}},
        "grouping":          {
            "extension":             {
                "@url": "some URL",
                "valueUri": {"@value": "Hyperlink goes here"}
            },
            "group": {"@value": "XXX"},
            "groupDisplay": {"@value": "XXX MEDICAL FUND"},
            "plan": {"@value": "OPT1"},
            "planDisplay": {"@value": "OPTION1"}
        }
    }}}
]

}}

Как избавиться от атрибута "@Value"?

1 ответ

Синтаксисы FHIR XML и JSON (и TTL) настроены на их синтаксис и, таким образом, демонстрируют немного другую модель. Если вы попытаетесь запустить экземпляр с расширениями простого типа (дата, логическое значение и т. Д.), Вы обнаружите еще более существенные различия в вашей созданной объектной модели. Если вы сгенерируете свою объектную модель из XML-схемы, JSON-схемы или OWL, вы обнаружите, что есть приличный кусок ручного кодирования, который вы должны будете добавить впоследствии, чтобы генерировать и правильно анализировать другие синтаксисы. Альтернативой является использование одной из существующих эталонных реализаций - они обрабатывают преобразование для вас и предоставляют целый набор вспомогательных классов и методов, которые также могут быть полезны для вас. Справочные реализации можно найти на странице загрузок.

Другие вопросы по тегам