{
  "resourceType": "StructureDefinition",
  "id": "Subscription",
  "meta": {
    "lastUpdated": "2019-10-31T22:29:23.356+00:00"
  },
  "extension": [
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-category",
      "valueString": "Foundation.Other"
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
      "valueCode": "trial-use"
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
      "valueInteger": 3
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-security-category",
      "valueCode": "business"
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
      "valueCode": "fhir"
    }
  ],
  "url": "http://hl7.org/fhir/StructureDefinition/Subscription",
  "version": "4.0.1",
  "name": "KR_Subscription",
  "status": "draft",
  "date": "2019-10-31T22:29:23+00:00",
  "publisher": "Health Level Seven International (FHIR Infrastructure)",
  "contact": [
    {
      "telecom": [
        {
          "system": "url",
          "value": "http://hl7.org/fhir"
        }
      ]
    },
    {
      "telecom": [
        {
          "system": "url",
          "value": "http://www.hl7.org/Special/committees/fiwg/index.cfm"
        }
      ]
    }
  ],
  "description": "Subscription[] 리소스는 서버가 다른시스템으로 푸쉬(push)할 때 사용하는 구독(subscription)을 정의하는 데 사용됨. 일단 구독(subscription)이 서버에 등록되면, 서버는 생성 또는 업데이트 되는 모든 리소스를 체크하고, 만약 리소스가 주어진 기준(criteria)와 일치할 경우 다른시스템이 적절한 조치를 취하도록 정의된 \"channel\"에 메세지를 보냄",
  "fhirVersion": "4.0.1",
  "mapping": [
    {
      "identity": "rim",
      "uri": "http://hl7.org/v3",
      "name": "RIM Mapping"
    },
    {
      "identity": "w5",
      "uri": "http://hl7.org/fhir/fivews",
      "name": "FiveWs Pattern Mapping"
    }
  ],
  "kind": "resource",
  "abstract": false,
  "type": "Subscription",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/DomainResource",
  "derivation": "specialization",
  "differential": {
    "element": [
      {
        "id": "Subscription",
        "path": "Subscription",
        "short": "서버가 push하는 구독(subscription) 기준",
        "definition": "Subscription[] 리소스는 서버가 다른시스템으로 푸쉬(push)할 때 사용하는 구독(subscription)을 정의하는 데 사용됨. 일단 구독(subscription)이 서버에 등록되면, 서버는 생성 또는 업데이트 되는 모든 리소스를 체크하고, 만약 리소스가 주어진 기준(criteria)와 일치할 경우 다른시스템이 적절한 조치를 취하도록 정의된 \"channel\"에 메세지를 보냄",
        "alias": [
          "WebHook",
          "Hook",
          "Routing Rule"
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "id": "Subscription.status",
        "path": "Subscription.status",
        "short": "requested | active | error | off",
        "definition": "구독(subscription)상태. 구독(subscription) 관리를 위한 서버상태(status)를 표시 함",
        "comment": "클라이언트는 요청 또는 해제 상태에서만 구독(subscripton)리소스를 제출할 수 있음. 오직 서버만 요청한 구독(subscription)을 활성(active)로 이동한 다름 오류(error)로 이동할 수 있음. 서버 또는 클라이언트 중 하나가 구독(subscripton)을 없앨 수 있음. 상태(status)가 리소스를 유효하지 않는 것으로 표시하는 코드(code)를 가지고 있기 때문에 수정자(modifier)로 레이블을 지정함",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "code"
          }
        ],
        "isModifier": true,
        "isModifierReason": "This element is labelled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid",
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "SubscriptionStatus"
            }
          ],
          "strength": "required",
          "description": "The status of a subscription.",
          "valueSet": "http://hl7.org/fhir/ValueSet/subscription-status|4.0.1"
        },
        "mapping": [
          {
            "identity": "w5",
            "map": "FiveWs.status"
          }
        ]
      },
      {
        "id": "Subscription.contact",
        "path": "Subscription.contact",
        "short": "소스에 대한 연락처 세부정보 (예: 문제 해결)",
        "definition": "사람이 구독(subscription)에 대해 연락할 수 있는 연락처 정보임. 시스템 관리자 문제 해결을 위해 이것을 주로 사용함.",
        "type": [
          {
            "code": "ContactPoint"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "w5",
            "map": "FiveWs.subject[x]"
          },
          {
            "identity": "w5",
            "map": "FiveWs.subject"
          }
        ]
      },
      {
        "id": "Subscription.contact.system",
        "path": "Subscription.contact.system",
        "short": "phone | fax | email | pager | url | sms | other",
        "definition": "연락처에 대한 통신 방법 - 연락처를 활용하기 위해 필요한 연락 시스템."
      },
      {
        "id": "Subscription.contact.value",
        "path": "Subscription.contact.value",
        "short": "실제 연락처(actual contact point)의 값",
        "definition": "지정된 통신 방법을 통하여 연락을 할 수 있는 실제 연락처(actual contact point)의 값 (예: 전화번호, 이메일주소)"
      },
      {
        "id": "Subscription.contact.use",
        "path": "Subscription.contact.use",
        "short": "home | work | temp | old | mobile - 연락처 경로",
        "definition": "연락처의 경로를 식별함."
      },
      {
        "id": "Subscription.contact.rank",
        "path": "Subscription.contact.rank",
        "short": "선호되는 사용 순서를 명시함 (1 = 가장 높은 순서)",
        "definition": "연락처 세트를 사용할 선호 순서를 지정. 순위(rank) 값이 낮은 ContactPoint가 순위(rank) 값이 높은 ContactPoint보다 선호됨."
      },
      {
        "id": "Subscription.contact.period",
        "path": "Subscription.contact.period",
        "short": "연락처가 사용/사용 된 기간",
        "definition": "연락처가 사용/사용 된 기간"
      },
      {
        "id": "Subscription.contact.period.start",
        "path": "Subscription.contact.period.start",
        "short": "해당 유효 기간의 시작 시점 (설정된 날짜 포함)",
        "definition": "해당 유효 기간이 시작되는 시점을 나타냄. 유효 기간은 시작 시점으로 설정된 날짜를 포함함."
      },
      {
        "id": "Subscription.contact.period.end",
        "path": "Subscription.contact.period.end",
        "short": "해당 유효 기간의 종료 시점 (설정된 날짜 포함)",
        "definition": "기간의 종료. 기간의 종료가 누락된 경우, 인스턴스가 생성될 때 끝이 알려지거나 계획되지 않았음을 의미함. 시작일은 과거일 수 있고 종료일은 미래일 수 있음. 이는 해당 기간이 해당 시간에 종료될 예정임을 의미함"
      },
      {
        "id": "Subscription.end",
        "path": "Subscription.end",
        "short": "구독(subscription)을 자동으로 삭제할 때",
        "definition": "서버가 구독(subscription)을 끄는 시간",
        "comment": "서버는 이 시간에서 벗어나는 것이 허용되지만 이를 준수(observe)해야 함",
        "max": "1",
        "type": [
          {
            "code": "instant"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "w5",
            "map": "FiveWs.done[x]"
          }
        ]
      },
      {
        "id": "Subscription.reason",
        "path": "Subscription.reason",
        "short": "이 구독(description)이 생성된 이유 설명",
        "definition": "이 구독(description)이 정의된 이유 설명",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "w5",
            "map": "FiveWs.why[x]"
          }
        ]
      },
      {
        "id": "Subscription.criteria",
        "path": "Subscription.criteria",
        "short": "서버 push 규칙(rule)",
        "definition": "서버가 이 구독에 대한 알림을 언제 생성해야하는 지 결정할 때 사용해야 하는 규칙",
        "comment": "규칙은 검색의 기준임(without the [base] part). Bundle.entry.request.url 처럼, 이것은 \"/\".를 이끌지 않음",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isSummary": true
      },
      {
        "id": "Subscription.error",
        "path": "Subscription.error",
        "short": "최신 오류 노트(note)",
        "definition": "서버에서 알림을 처리할 때 발생한 마지막 오류의 기록(record)",
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ],
        "isSummary": true
      },
      {
        "id": "Subscription.channel",
        "path": "Subscription.channel",
        "short": "보고할 채널이 기준과 일치",
        "definition": "기준을 충족하는 리소스를 수신할 때 알림을 보낼 대상을 자세히 설명함",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "BackboneElement"
          }
        ],
        "isSummary": true
      },
      {
        "id": "Subscription.channel.type",
        "path": "Subscription.channel.type",
        "short": "rest-hook | websocket | email | sms | message",
        "definition": "알림을 전송할 채널의 유형(type)",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "code"
          }
        ],
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "SubscriptionChannelType"
            }
          ],
          "strength": "required",
          "description": "The type of method used to execute a subscription.",
          "valueSet": "http://hl7.org/fhir/ValueSet/subscription-channel-type|4.0.1"
        }
      },
      {
        "id": "Subscription.channel.endpoint",
        "path": "Subscription.channel.endpoint",
        "short": "채널이 향하는 곳",
        "definition": "메세지를 보낼 실제 엔드포인트(end-point)를 설명하는 url",
        "comment": "rest-hook과 websocket의 경우, 엔드포인트(endpoint)는 http: 또는 https: URL임; 이메일의 경우 mailto: url, sms의 경우 tel: url 및 메시지의 경우 엔드포인트(endpoint)는 서버가 이해하는 모든 URL 형식 (일반적으로 http: 또는 mllp:) 일 수 있음. URI는 관계가 있어야함. 이 경우 서버 엔드포인트(endpoint)에 관계적임 (둘 이상이 있을 수 있으므로 클라이언트는 관계적 URI를 사용하지 않아야 함)",
        "max": "1",
        "type": [
          {
            "code": "url"
          }
        ],
        "isSummary": true
      },
      {
        "id": "Subscription.channel.payload",
        "path": "Subscription.channel.payload",
        "short": "전송할 MIME 타입(type), 페이로드(payload)가 없는 경우는 생략",
        "definition": "페이로드(payload)를 application/fhir+xml 또는 application/fhir+json으로 전송하는 MIME 유형(type). 페이로드가 없는 경우 페이로드가 없는 통지(notification)만 있음. mime 타입 \"text/plain\" 은 이메일 및 SMS 구독(subscriptions)에도 사용될 수 있음",
        "comment": "페이로드(payload)를 전송한느 것은 명백하게 보안적으로 함축된 의미를 가지고 있음. 서버는 컨텐츠를 적절하게 확보(secured)해야 하는 책임이 있음",
        "max": "1",
        "type": [
          {
            "code": "code"
          }
        ],
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "MimeType"
            },
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding",
              "valueBoolean": true
            }
          ],
          "strength": "required",
          "description": "The mime type of an attachment. Any valid mime type is allowed.",
          "valueSet": "http://hl7.org/fhir/ValueSet/mimetypes|4.0.1"
        }
      },
      {
        "id": "Subscription.channel.header",
        "path": "Subscription.channel.header",
        "short": "용도는 채널 유형(type)에 따라 다름",
        "definition": "알림(notification)의 일부로 보낼 추가 헤더/정보임.",
        "comment": "정확히 이 의미는 채널 유형에 따라 달라짐. 그들은 수신자에게 추가 정보를 전달하거나/또는 보안 요구 사항을 충족시킬 수 있음. 예를 들어, rest-hook 타입(type) 구독(subscription)을 위한 발신(outgoint) 통지(notification)의 다중 헤더(header)를 지원함",
        "type": [
          {
            "code": "string"
          }
        ],
        "isSummary": true
      }
    ]
  }
}