0

我正在使用 ajv 验证 FHIR 资源。

ajv -s fhir.schema.json -d SampleOperationOutCome.json

这是 SampleOperationOutCome.json 文件

{
"resourceType": "OperationOutcome",
"id": "101",
"text": {
    "status": "additional",
    "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p>text.<\/p><\/div>"
},
"issue": [
    {
        "severity": "error",
        "codeerror": "invalid",
        "details": {
            "coding": [
                {
                    "system": "http://hl7.org/fhir/operation-outcome",
                    "code": "MSG_CANT_PARSE_CONTENT"
                }
            ],
            "text": "text"
        }
    }
]

}

您可以从FHIR build 3.4 json schemas获取 json schema

验证时我面临的主要挑战是了解哪个是真正的源问题。例如,在这种情况下,我将 de“code”字段更改为“codeerror”,但在验证时,我主要得到以下错误列表:

{ keyword: 'additionalProperties',
dataPath: '',
schemaPath: '#/additionalProperties',
params: { additionalProperty: 'issue' },
message: 'should NOT have additional properties' },

我确实知道它是否是正常输出,或者这种行为的来源是否是 json 模式或 ajv,但我会期待一些消息,如“无效字段代码错误,预期代码之一”。

为了能够分析完整输出并获得真正的来源,有什么建议吗?

谢谢。

4

1 回答 1

1

JSON Schema 没有定义从 draft-7 开始的输出格式,所以这个输出(错误或其他)由库定义,在本例中为 ajv。

我们(JSON Schema)目前正在研究是否应该定义标准输出格式,目前正在跟踪github 问题

在您的错误实例中,附加属性 false 会阻止其他属性,因此您必须检查您的 JSON 架构以及您为其添加了其他属性的实例。尽管在这种情况下,您已经知道,因为您正在测试。

如果您正在寻找一种以编程方式获取此信息的方法,那么这样做没有标准。

如果您要求使用它的文档化 API,ajv 可能会提供一些额外的错误信息。看起来它应该为您提供一些您已经提供的更多信息,尽管一个空的dataPath可能正在引用 JSON 实例的根。

于 2018-08-01T08:37:54.450 回答