{
  "resourceType": "StructureDefinition",
  "url": "https://fhir.synapxe.sg/StructureDefinition/profile-relatedartifact",
  "name": "RelatedArtifact",
  "status": "active",
  "fhirVersion": "5.0.0",
  "kind": "complex-type",
  "abstract": false,
  "type": "RelatedArtifact",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/RelatedArtifact",
  "derivation": "constraint",
  "snapshot": {
    "element": [
      {
        "id": "RelatedArtifact",
        "path": "RelatedArtifact",
        "short": "Related artifacts for a knowledge resource",
        "definition": "Related artifacts such as additional documentation, justification, or bibliographic references.",
        "comment": "Each related artifact is either an attachment, or a reference to another knowledge resource, but not both.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "RelatedArtifact",
          "min": 0,
          "max": "*"
        },
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "RelatedArtifact.id",
        "path": "RelatedArtifact.id",
        "representation": [
          "xmlAttr"
        ],
        "short": "Unique id for inter-element referencing",
        "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
        "min": 0,
        "max": "0",
        "base": {
          "path": "Element.id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "extension": [
              {
                "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
                "valueUrl": "string"
              }
            ],
            "code": "http://hl7.org/fhirpath/System.String"
          }
        ],
        "condition": [
          "ele-1"
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "RelatedArtifact.extension",
        "path": "RelatedArtifact.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "description": "Extensions are always sliced by (at least) url",
          "rules": "open"
        },
        "short": "Additional content defined by implementations",
        "definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
        "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
        "alias": [
          "extensions",
          "user content"
        ],
        "min": 0,
        "max": "*",
        "base": {
          "path": "Element.extension",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "Extension"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ext-1",
            "severity": "error",
            "human": "Must have either extensions or value[x], not both",
            "expression": "extension.exists() != value.exists()",
            "source": "http://hl7.org/fhir/StructureDefinition/Extension"
          }
        ],
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "rim",
            "map": "N/A"
          }
        ]
      },
      {
        "id": "RelatedArtifact.type",
        "path": "RelatedArtifact.type",
        "short": "documentation | justification | citation | predecessor | successor | derived-from | depends-on | composed-of | part-of | amends | amended-with | appends | appended-with | cites | cited-by | comments-on | comment-in | contains | contained-in | corrects | correction-in | replaces | replaced-with | retracts | retracted-by | signs | similar-to | supports | supported-with | transforms | transformed-into | transformed-with | documents | specification-of | created-with | cite-as",
        "definition": "The type of relationship to the related artifact.",
        "comment": "The presence of both sides of a relationship type (e.g. successor and predecessor) is required to support use cases where one side of a relationship is not represented in FHIR. However, this feature SHALL NOT be used to create bi-directional resource links in FHIR instances. Specifically, following the methodology of \"new points to old\" and \"many points to one\", when using related artifact elements to describe and reference FHIR resources, the type element SHALL be drawn from the fhir-related-artifact-type ValueSet.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "RelatedArtifact.type",
          "min": 1,
          "max": "1"
        },
        "type": [
          {
            "code": "code"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/tools/StructureDefinition/binding-definition",
              "valueString": "The type of relationship to the related artifact."
            },
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "RelatedArtifactType"
            }
          ],
          "strength": "required",
          "description": "The type of relationship to the related artifact.",
          "valueSet": "http://hl7.org/fhir/ValueSet/related-artifact-type|5.0.0"
        },
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "RelatedArtifact.classifier",
        "path": "RelatedArtifact.classifier",
        "short": "Additional classifiers",
        "definition": "Provides additional classifiers of the related artifact.",
        "comment": "Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.",
        "min": 0,
        "max": "0",
        "base": {
          "path": "RelatedArtifact.classifier",
          "min": 0,
          "max": "*"
        },
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/tools/StructureDefinition/binding-definition",
              "valueString": "Additional classifiers for the related artifact."
            },
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "RelatedArtifactClassifier"
            }
          ],
          "strength": "example",
          "description": "Additional classifiers for the related artifact.",
          "valueSet": "http://hl7.org/fhir/ValueSet/citation-artifact-classifier"
        },
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "v2",
            "map": "CE/CNE/CWE"
          },
          {
            "identity": "rim",
            "map": "CD"
          },
          {
            "identity": "orim",
            "map": "fhir:CodeableConcept rdfs:subClassOf dt:CD"
          }
        ]
      },
      {
        "id": "RelatedArtifact.label",
        "path": "RelatedArtifact.label",
        "short": "Short label",
        "definition": "A short label that can be used to reference the citation from elsewhere in the containing artifact, such as a footnote index.",
        "comment": "Note that FHIR strings SHALL NOT exceed 1,048,576 (1024*1024) characters in size",
        "min": 0,
        "max": "0",
        "base": {
          "path": "RelatedArtifact.label",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "string"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "RelatedArtifact.display",
        "path": "RelatedArtifact.display",
        "short": "Brief description of the related artifact",
        "definition": "A brief description of the document or knowledge resource being referenced, suitable for display to a consumer.",
        "comment": "Note that FHIR strings SHALL NOT exceed 1,048,576 (1024*1024) characters in size",
        "min": 0,
        "max": "1",
        "base": {
          "path": "RelatedArtifact.display",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "string"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "RelatedArtifact.citation",
        "path": "RelatedArtifact.citation",
        "short": "Bibliographic citation for the artifact",
        "definition": "A bibliographic citation for the related artifact. This text SHOULD be formatted according to an accepted citation format.",
        "comment": "Additional structured information about citations should be captured as extensions.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "RelatedArtifact.citation",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "markdown"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "RelatedArtifact.document",
        "path": "RelatedArtifact.document",
        "short": "Content in a format defined elsewhere",
        "definition": "For referring to data content defined in other formats.",
        "comment": "When providing a summary view (for example with Observation.value[x]) Attachment should be represented with a brief display text such as \"Signed Procedure Consent\".",
        "min": 1,
        "max": "1",
        "base": {
          "path": "RelatedArtifact.document",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "Attachment",
            "profile": [
              "https://fhir.synapxe.sg/StructureDefinition/profile-attachment"
            ]
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "att-1",
            "severity": "error",
            "human": "If the Attachment has data, it SHALL have a contentType",
            "expression": "data.empty() or contentType.exists()",
            "source": "http://hl7.org/fhir/StructureDefinition/Attachment"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "v2",
            "map": "ED/RP"
          },
          {
            "identity": "rim",
            "map": "ED"
          }
        ]
      },
      {
        "id": "RelatedArtifact.resource",
        "path": "RelatedArtifact.resource",
        "short": "What artifact is being referenced",
        "definition": "The related artifact, such as a library, value set, profile, or other knowledge resource.",
        "comment": "If the type is predecessor, this is a reference to the succeeding knowledge resource. If the type is successor, this is a reference to the prior knowledge resource.",
        "min": 0,
        "max": "0",
        "base": {
          "path": "RelatedArtifact.resource",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "canonical",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Resource"
            ]
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "RelatedArtifact.resourceReference",
        "path": "RelatedArtifact.resourceReference",
        "short": "What artifact, if not a conformance resource",
        "definition": "The related artifact, if the artifact is not a canonical resource, or a resource reference to a canonical resource.",
        "comment": "If both resource and resourceReference are present, they SHOULD be consistent and reference the same resource. Although relatedArtifact is intended to support references to definitional resources, there are cases where non-definitional resources can be definitional (such as Location where the kind is mode). Related artifacts SHOULD be used to reference definitional resources, and profiles SHOULD be used to make that explicit for particular use cases.",
        "min": 0,
        "max": "0",
        "base": {
          "path": "RelatedArtifact.resourceReference",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Resource"
            ]
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          },
          {
            "key": "ref-1",
            "severity": "error",
            "human": "SHALL have a contained resource if a local reference is provided",
            "expression": "reference.exists()  implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))",
            "source": "http://hl7.org/fhir/StructureDefinition/Reference"
          },
          {
            "key": "ref-2",
            "severity": "error",
            "human": "At least one of reference, identifier and display SHALL be present (unless an extension is provided).",
            "expression": "reference.exists() or identifier.exists() or display.exists() or extension.exists()",
            "source": "http://hl7.org/fhir/StructureDefinition/Reference"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          },
          {
            "identity": "rim",
            "map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)"
          }
        ]
      },
      {
        "id": "RelatedArtifact.publicationStatus",
        "path": "RelatedArtifact.publicationStatus",
        "short": "draft | active | retired | unknown",
        "definition": "The publication status of the artifact being referred to.",
        "comment": "Note that FHIR strings SHALL NOT exceed 1,048,576 (1024*1024) characters in size",
        "min": 0,
        "max": "0",
        "base": {
          "path": "RelatedArtifact.publicationStatus",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "code"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isSummary": true,
        "binding": {
          "extension": [
            {
              "url": "http://hl7.org/fhir/tools/StructureDefinition/binding-definition",
              "valueString": "Publication status of an artifact being referred to."
            },
            {
              "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
              "valueString": "RelatedArtifactPublicationStatus"
            }
          ],
          "strength": "required",
          "description": "Publication status of an artifact being referred to.",
          "valueSet": "http://hl7.org/fhir/ValueSet/publication-status|5.0.0"
        },
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "RelatedArtifact.publicationDate",
        "path": "RelatedArtifact.publicationDate",
        "short": "Date of publication of the artifact being referred to",
        "definition": "The date of publication of the artifact being referred to.",
        "min": 0,
        "max": "0",
        "base": {
          "path": "RelatedArtifact.publicationDate",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "date"
          }
        ],
        "constraint": [
          {
            "key": "ele-1",
            "severity": "error",
            "human": "All FHIR elements must have a @value or children",
            "expression": "hasValue() or (children().count() > id.count())",
            "source": "http://hl7.org/fhir/StructureDefinition/Element"
          }
        ],
        "isSummary": true,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      }
    ]
  },
  "differential": {
    "element": [
      {
        "id": "RelatedArtifact.id",
        "path": "RelatedArtifact.id",
        "max": "0"
      },
      {
        "id": "RelatedArtifact.classifier",
        "path": "RelatedArtifact.classifier",
        "max": "0"
      },
      {
        "id": "RelatedArtifact.label",
        "path": "RelatedArtifact.label",
        "max": "0"
      },
      {
        "id": "RelatedArtifact.document",
        "path": "RelatedArtifact.document",
        "min": 1,
        "type": [
          {
            "code": "Attachment",
            "profile": [
              "https://fhir.synapxe.sg/StructureDefinition/profile-attachment"
            ]
          }
        ]
      },
      {
        "id": "RelatedArtifact.resource",
        "path": "RelatedArtifact.resource",
        "max": "0"
      },
      {
        "id": "RelatedArtifact.resourceReference",
        "path": "RelatedArtifact.resourceReference",
        "max": "0"
      },
      {
        "id": "RelatedArtifact.publicationStatus",
        "path": "RelatedArtifact.publicationStatus",
        "max": "0"
      },
      {
        "id": "RelatedArtifact.publicationDate",
        "path": "RelatedArtifact.publicationDate",
        "max": "0"
      }
    ]
  }
}