4

我想添加以向我的计划资源添加自定义扩展。在我的应用程序中,日程安排有访问动机(原因)。我知道有一份机密约会/遭遇原因列表,但我想使用我的。

我有这样的事情:

{
  "resourceType":"Schedule",
  "identifier":"logical_id",
  "type":"schedule_speciality",
  "actor":{
    "practioner_id":"identifier",
    "practioner_name":"practioner name"
  },
  "external_id":{
    "extension":[
      {
        "url":"http://api.test.com/fhir/schedule/external_id",
        "valueIdentifier":"external_id"
      }
    ]
  },
  "visit_motives":{
    "extension":[
      {
        "url":"https://api.test.com/fhir/ValueSet/schedule#visit_motives",
        "valueString":"vist_motive1"
      },
      {
        "url":"https://api.test.com/fhir/ValueSet/schedule#visit_motives",
        "valueString":"vist_motive2"
      },
      {
        "url":"https://api.test.com/fhir/ValueSet/schedule#visit_motives",
        "valueString":"vist_motive3"
      }
    ]
  },
  "practice_id":{
    "extension":[
      {
        "url":"https://api.test.com/fhir/schedule/practice_id",
        "valueIdentifier":"practice_id"
      }
    ]
  }
}

我不确定这部分:

"visit_motives":{
    "extension":[
      {
        "url":"https://api.test.com/fhir/ValueSet/schedule#visit_motives",
        "valueString":"vist_motive1"
      },
      {
        "url":"https://api.test.com/fhir/ValueSet/schedule#visit_motives",
        "valueString":"vist_motive2"
      },
      {
        "url":"https://api.test.com/fhir/ValueSet/schedule#visit_motives",
        "valueString":"vist_motive3"
      }
    ]
  }

以这种方式添加扩展名是否正确?一个特定的时间表总是有多个访问动机,所以我必须列出它们。

我也见过这样的事情:

"visit_motives": {
          "coding": [
            {
              "system": "https://api.test.com/fhir/ValueSet/schedule#visit_motives",
              "code": "visit_motive1"
            }
          ]
        }

哪一个是正确的还是我错了?

4

1 回答 1

4

这里有几个问题:

  1. 在时间表上捕捉“原因”似乎很奇怪。时间表说明了特定临床医生或诊所或其他资源何时可用。例如,“史密斯博士在周一/周三/周五下午 1 点至下午 4 点进行预约”。因此,如果您要捕获资源的原因,它会反映“为什么史密斯博士有一个时间表?” 通常会为单个约会捕获原因。这是为计划访问保留特定时段的资源。并且约会已经有一个元素,您可以自由使用自己的代码或只发送文本。

  2. 你有扩展来传达标识符,但 Schedule 已经有一个标识符元素。为什么要使用扩展而不是标准元素?请注意,您可以使用“系统”和/或“类型”组件来区分不同类型的标识符。

  3. 您将“标识符”、“类型”、“名称”等作为简单字符串发送 - 但它们是复杂的数据类型,因此您需要与子元素进行通信

  4. actor 是 Reference 类型 - 这意味着您需要指向 Practitioner 资源。您不能在线发送属性。(如果从业者仅存在于时间表的上下文中,您可以使用“包含”方法,该方法将使用内部引用,但在此用例中包含似乎没有意义。

  5. 您的扩展的 URL 包含不正确的 ValueSet - 扩展都是结构定义。此外,URL 中不应有 # 符号。

  6. 您的扩展语法不正确。您不能在 FHIR 中引入新属性。所有扩展的属性名称只是“扩展”。您可以通过 URL 进行区分。所以你的语法应该是:

{
  "resourceType":"Schedule",
  "id":"logical_id",
  "extension": [
    {
      "url":"https://api.test.com/fhir/StructureDefinition/schedule-visit_motive",
      "valueString":"vist_motive1"
    },
    {
      "url":"https://api.test.com/fhir/StructureDefinition/schedule-visit_motive",
      "valueString":"vist_motive2"
    },
    {
      "url":"https://api.test.com/fhir/StructureDefinition/schedule-visit_motives",
      "valueString":"vist_motive3"
    }
  ],
  "identifier": [
    {
      "system": http://api.test.com/fhir/NamingSystem/external_id",
      "value": "external_id"
    }
    {
      "system": http://api.test.com/fhir/NamingSystem/practice_id",
      "value": "practice_id"
    }
  ]
  "type": {
    "coding": {
      "system": "http://somewhere.org/fhir/CodeSystem/specialties",
      "code": "schedule_speciality"
    },
    "text": "Some text description of specialty"
  },
  "actor":{
    "reference": "http://myserver.org/fhir/Practitioner/12345"
    "display": "Dr. smith"
  }
}
于 2017-01-24T16:01:59.233 回答