FHIR © HL7.org  |  Server Home  |  FHIR Server FHIR Server 3.4.11  |  FHIR Version n/a  User: [n/a]

Resource StructureDefinition/FHIR Server from package kbv.basis#1.6.0 (94 ms)

Package kbv.basis
Type StructureDefinition
Id Id
FHIR Version R4
Source https://simplifier.net/resolve?scope=kbv.basis@1.6.0&canonical=https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Procedure
Url https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Procedure
Version 1.6.0
Status active
Name KBV_PR_Base_Procedure
Title KBV_PR_Base_Procedure
Experimental False
Description Dieses Profil bildet eine Prozedur ab.
Copyright Im folgenden Profil können Codes aus den Codesystemen Snomed, Loinc oder Ucum enthalten sein, die dem folgenden Urheberrecht unterliegen: This material includes SNOMED Clinical Terms® SNOMED CT® which is used by permission of SNOMED International. All rights reserved. SNOMED CT®, was originally created by The College of American Pathologists. SNOMED and SNOMED CT are registered trademarks of SNOMED International. Implementers of these artefacts must have the appropriate SNOMED CT Affiliate license. This material contains content from Loinc http://loinc.org. Loinc is copyright © 1995-2020, Regenstrief Institute, Inc. and the Logical Observation Identifiers Names and Codes Loinc Committee and is available at no cost under the license at http://loinc.org/license. Loinc® is a registered United States trademark of Regenstrief Institute, Inc. This product includes all or a portion of the UCUM table, UCUM codes, and UCUM definitions or is derived from it, subject to a license from Regenstrief Institute, Inc. and The UCUM Organization. Your use of the UCUM table, UCUM codes, UCUM definitions also is subject to this license, a copy of which is available at ​http://unitsofmeasure.org. The current complete UCUM table, UCUM Specification are available for download at ​http://unitsofmeasure.org. The UCUM table and UCUM codes are copyright © 1995-2009, Regenstrief Institute, Inc. and the Unified Codes for Units of Measures UCUM Organization. All rights reserved. THE UCUM TABLE IN ALL FORMATS, UCUM DEFINITIONS, AND SPECIFICATION ARE PROVIDED "AS IS." ANY EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Type Procedure
Kind resource

Resources that use this resource

StructureDefinition
https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Encounter KBV_PR_Base_Encounter
https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Procedure KBV_PR_Base_Procedure

Resources that this resource uses

StructureDefinition
http://fhir.de/StructureDefinition/CodingOPS Coding-Profil für OPS
http://fhir.de/StructureDefinition/ProzedurDokumentationsdatum ExtensionProzedurDokumentationsdatum
https://fhir.kbv.de/StructureDefinition/KBV_EX_Base_Stage_Life KBV_EX_Base_Stage_Life
https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Condition_Diagnosis KBV_PR_Base_Condition_Diagnosis
https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Device KBV_PR_Base_Device
https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_DiagnosticReport KBV_PR_Base_DiagnosticReport
https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_DocumentReference KBV_PR_Base_DocumentReference
https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Organization KBV_PR_Base_Organization
https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Patient KBV_PR_Base_Patient
https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Practitioner KBV_PR_Base_Practitioner
https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_PractitionerRole KBV_PR_Base_PractitionerRole
https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Procedure KBV_PR_Base_Procedure
https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_RelatedPerson KBV_PR_Base_RelatedPerson
https://fhir.kbv.de/ValueSet/KBV_VS_Base_Procedure_SNOMED_CT Prozedur SNOMED CT®


Source

{
  "resourceType" : "StructureDefinition",
  "id" : "KBV-PR-Base-Procedure",
  "url" : "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Procedure",
  "version" : "1.6.0",
  "name" : "KBV_PR_Base_Procedure",
  "title" : "KBV_PR_Base_Procedure",
  "status" : "active",
  "publisher" : "Kassenärztliche Bundesvereinigung (KBV)",
  "description" : "Dieses Profil bildet eine Prozedur ab.",
  "copyright" : "Im folgenden Profil können Codes aus den Codesystemen Snomed, Loinc oder Ucum enthalten sein, die dem folgenden Urheberrecht unterliegen: This material includes SNOMED Clinical Terms® SNOMED CT® which is used by permission of SNOMED International. All rights reserved. SNOMED CT®, was originally created by The College of American Pathologists. SNOMED and SNOMED CT are registered trademarks of SNOMED International. Implementers of these artefacts must have the appropriate SNOMED CT Affiliate license. This material contains content from Loinc http://loinc.org. Loinc is copyright © 1995-2020, Regenstrief Institute, Inc. and the Logical Observation Identifiers Names and Codes Loinc Committee and is available at no cost under the license at http://loinc.org/license. Loinc® is a registered United States trademark of Regenstrief Institute, Inc. This product includes all or a portion of the UCUM table, UCUM codes, and UCUM definitions or is derived from it, subject to a license from Regenstrief Institute, Inc. and The UCUM Organization. Your use of the UCUM table, UCUM codes, UCUM definitions also is subject to this license, a copy of which is available at ​http://unitsofmeasure.org. The current complete UCUM table, UCUM Specification are available for download at ​http://unitsofmeasure.org. The UCUM table and UCUM codes are copyright © 1995-2009, Regenstrief Institute, Inc. and the Unified Codes for Units of Measures UCUM Organization. All rights reserved. THE UCUM TABLE IN ALL FORMATS, UCUM DEFINITIONS, AND SPECIFICATION ARE PROVIDED "AS IS." ANY EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.",
  "fhirVersion" : "4.0.1",
  "mapping" : [
    {
      "identity" : "workflow",
      "uri" : "http://hl7.org/fhir/workflow",
      "name" : "Workflow Pattern"
    },
    {
      "identity" : "rim",
      "uri" : "http://hl7.org/v3",
      "name" : "RIM Mapping"
    },
    {
      "identity" : "w5",
      "uri" : "http://hl7.org/fhir/fivews",
      "name" : "FiveWs Pattern Mapping"
    },
    {
      "identity" : "v2",
      "uri" : "http://hl7.org/v2",
      "name" : "HL7 v2 Mapping"
    }
  ],
  "kind" : "resource",
  "abstract" : false,
  "type" : "Procedure",
  "baseDefinition" : "http://hl7.org/fhir/StructureDefinition/Procedure",
  "derivation" : "constraint",
  "differential" : {
    "element" : [
      {
        "id" : "Procedure",
        "path" : "Procedure",
        "definition" : "Dieses Profil bildet eine Prozedur ab."
      },
      {
        "id" : "Procedure.extension",
        "path" : "Procedure.extension",
        "slicing" : {
          "discriminator" : [
            {
              "type" : "value",
              "path" : "url"
            }
          ],
          "rules" : "open"
        }
      },
      {
        "id" : "Procedure.extension:Dokumentationsdatum",
        "path" : "Procedure.extension",
        "sliceName" : "Dokumentationsdatum",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "Extension",
            "profile" : [
              "http://fhir.de/StructureDefinition/ProzedurDokumentationsdatum"
            ]
          }
        ]
      },
      {
        "id" : "Procedure.status",
        "path" : "Procedure.status",
        "definition" : "Hier wird der Status der Prozedur als Code angegeben."
      },
      {
        "id" : "Procedure.statusReason",
        "path" : "Procedure.statusReason",
        "definition" : "Hier wird der Grund für den angegebenen Status als Codeangegeben."
      },
      {
        "id" : "Procedure.category",
        "path" : "Procedure.category",
        "definition" : "Hier wird eine grobe Einordnung/Klassifizierung der Prozedur anhand eines entsprechenden Codes oder alternativ mit einem Freitext angegeben. Die Kategorie klassifiziert die Prozedur zu Such-, Sortier- und Anzeigezwecken."
      },
      {
        "id" : "Procedure.category.coding",
        "path" : "Procedure.category.coding",
        "slicing" : {
          "discriminator" : [
            {
              "type" : "value",
              "path" : "$this"
            }
          ],
          "rules" : "open"
        }
      },
      {
        "id" : "Procedure.category.coding:snomed",
        "path" : "Procedure.category.coding",
        "sliceName" : "snomed",
        "min" : 0,
        "max" : "*",
        "patternCoding" : {
          "system" : "http://snomed.info/sct"
        },
        "binding" : {
          "strength" : "extensible",
          "valueSet" : "https://fhir.kbv.de/ValueSet/KBV_VS_Base_Procedure_SNOMED_CT"
        }
      },
      {
        "id" : "Procedure.category.coding:snomed.system",
        "path" : "Procedure.category.coding.system",
        "min" : 1
      },
      {
        "id" : "Procedure.category.coding:snomed.version",
        "path" : "Procedure.category.coding.version",
        "min" : 1
      },
      {
        "id" : "Procedure.category.coding:snomed.code",
        "path" : "Procedure.category.coding.code",
        "min" : 1
      },
      {
        "id" : "Procedure.category.coding:snomed.display",
        "path" : "Procedure.category.coding.display",
        "min" : 1
      },
      {
        "id" : "Procedure.category.text",
        "path" : "Procedure.category.text",
        "definition" : "Hier wird ein Freitext eingetragen."
      },
      {
        "id" : "Procedure.code",
        "path" : "Procedure.code",
        "definition" : "Hier wird die spezifische Prozedur anhand eines entsprechenden Codes oder alternativ mit einem Freitext angegeben.",
        "min" : 1
      },
      {
        "id" : "Procedure.code.coding",
        "path" : "Procedure.code.coding",
        "slicing" : {
          "discriminator" : [
            {
              "type" : "value",
              "path" : "$this"
            }
          ],
          "rules" : "open"
        }
      },
      {
        "id" : "Procedure.code.coding:ops",
        "path" : "Procedure.code.coding",
        "sliceName" : "ops",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "Coding",
            "profile" : [
              "http://fhir.de/StructureDefinition/CodingOPS"
            ]
          }
        ],
        "patternCoding" : {
          "system" : "http://fhir.de/CodeSystem/bfarm/ops"
        }
      },
      {
        "id" : "Procedure.code.coding:ops.extension:Seitenlokalisation",
        "path" : "Procedure.code.coding.extension",
        "sliceName" : "Seitenlokalisation",
        "definition" : "Zur Spezifizierung von Prozedurangaben (OPS) können hier die Zusatzkennzeichen für die Seitigkeit (R, L oder B) angegeben werden."
      },
      {
        "id" : "Procedure.code.coding:ops.display",
        "path" : "Procedure.code.coding.display",
        "min" : 1
      },
      {
        "id" : "Procedure.code.coding:snomed",
        "path" : "Procedure.code.coding",
        "sliceName" : "snomed",
        "min" : 0,
        "max" : "1",
        "patternCoding" : {
          "system" : "http://snomed.info/sct"
        },
        "binding" : {
          "strength" : "required",
          "valueSet" : "https://fhir.kbv.de/ValueSet/KBV_VS_Base_Procedure_SNOMED_CT"
        }
      },
      {
        "id" : "Procedure.code.coding:snomed.system",
        "path" : "Procedure.code.coding.system",
        "min" : 1
      },
      {
        "id" : "Procedure.code.coding:snomed.version",
        "path" : "Procedure.code.coding.version",
        "min" : 1
      },
      {
        "id" : "Procedure.code.coding:snomed.code",
        "path" : "Procedure.code.coding.code",
        "min" : 1
      },
      {
        "id" : "Procedure.code.coding:snomed.display",
        "path" : "Procedure.code.coding.display",
        "min" : 1
      },
      {
        "id" : "Procedure.code.text",
        "path" : "Procedure.code.text",
        "definition" : "Hier wird ein Freitext eingetragen."
      },
      {
        "id" : "Procedure.subject",
        "path" : "Procedure.subject",
        "type" : [
          {
            "code" : "Reference",
            "targetProfile" : [
              "http://hl7.org/fhir/StructureDefinition/Patient",
              "http://hl7.org/fhir/StructureDefinition/Group",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Patient|1.6.0"
            ]
          }
        ]
      },
      {
        "id" : "Procedure.performed[x]",
        "path" : "Procedure.performed[x]",
        "slicing" : {
          "discriminator" : [
            {
              "type" : "type",
              "path" : "$this"
            }
          ],
          "rules" : "open"
        },
        "definition" : "Hier wird angegeben, wann die Prozedur durchgeführt wurde. Dies kann ein spezifischer Zeitpunkt oder ein Zeitraum sein.",
        "min" : 1
      },
      {
        "id" : "Procedure.performed[x]:performedDateTime",
        "path" : "Procedure.performed[x]",
        "sliceName" : "performedDateTime",
        "definition" : "Hier wird ein Zeitpunkt angegeben, wobei dieser mindestens Tag, Monat und Jahr beinhalten muss.",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "dateTime"
          }
        ]
      },
      {
        "id" : "Procedure.performed[x]:performedPeriod",
        "path" : "Procedure.performed[x]",
        "sliceName" : "performedPeriod",
        "definition" : "Hier wird ein Zeitraum angegeben, innerhalb dessen die Prozedur durchgeführt wurde. Ein Zeitraum besteht aus einem \"von\" und einem \"bis\" Zeitpunkt.",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "Period"
          }
        ]
      },
      {
        "id" : "Procedure.performed[x]:performedAge",
        "path" : "Procedure.performed[x]",
        "sliceName" : "performedAge",
        "definition" : "Hier wird die Lebensphase, während der die Prozedur durchgeführt wurde, angegeben.\r\nDies kann beispielsweise bei anamnestischen Angaben zu lange zurückliegenden Prozeduren sinnvoll sein.",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "Age"
          }
        ]
      },
      {
        "id" : "Procedure.performed[x]:performedAge.extension:Lebensphase",
        "path" : "Procedure.performed[x].extension",
        "sliceName" : "Lebensphase",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "Extension",
            "profile" : [
              "https://fhir.kbv.de/StructureDefinition/KBV_EX_Base_Stage_Life"
            ]
          }
        ]
      },
      {
        "id" : "Procedure.performed[x]:performedString",
        "path" : "Procedure.performed[x]",
        "sliceName" : "performedString",
        "definition" : "Hier wird das Durchführungsdatum mittels eines Freitextes angegeben.",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "string"
          }
        ]
      },
      {
        "id" : "Procedure.recorder",
        "path" : "Procedure.recorder",
        "definition" : "Hier wird die Person referenziert, die die Prozedur dokumentiert hat und Verantwortung für den Inhalt übernimmt.",
        "type" : [
          {
            "code" : "Reference",
            "targetProfile" : [
              "http://hl7.org/fhir/StructureDefinition/Patient",
              "http://hl7.org/fhir/StructureDefinition/RelatedPerson",
              "http://hl7.org/fhir/StructureDefinition/Practitioner",
              "http://hl7.org/fhir/StructureDefinition/PractitionerRole",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Practitioner|1.6.0",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_PractitionerRole|1.6.0",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_RelatedPerson|1.6.0",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Patient|1.6.0"
            ]
          }
        ]
      },
      {
        "id" : "Procedure.performer",
        "path" : "Procedure.performer",
        "definition" : "Hier wird die Person referenziert, die die Prozedur durchgeführt hat."
      },
      {
        "id" : "Procedure.performer.actor",
        "path" : "Procedure.performer.actor",
        "type" : [
          {
            "code" : "Reference",
            "targetProfile" : [
              "http://hl7.org/fhir/StructureDefinition/Practitioner",
              "http://hl7.org/fhir/StructureDefinition/PractitionerRole",
              "http://hl7.org/fhir/StructureDefinition/Organization",
              "http://hl7.org/fhir/StructureDefinition/Patient",
              "http://hl7.org/fhir/StructureDefinition/RelatedPerson",
              "http://hl7.org/fhir/StructureDefinition/Device",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Practitioner|1.6.0",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_PractitionerRole|1.6.0",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Organization|1.6.0",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_RelatedPerson|1.6.0",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Patient|1.6.0",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Device|1.6.0"
            ]
          }
        ]
      },
      {
        "id" : "Procedure.reasonCode",
        "path" : "Procedure.reasonCode",
        "definition" : "Hier wird die Begründung für die Prozedur abgebildet"
      },
      {
        "id" : "Procedure.reasonReference",
        "path" : "Procedure.reasonReference",
        "definition" : "Hier werden Instanzen referenziert, die die Prozedur begründen.",
        "type" : [
          {
            "code" : "Reference",
            "targetProfile" : [
              "http://hl7.org/fhir/StructureDefinition/Condition",
              "http://hl7.org/fhir/StructureDefinition/Observation",
              "http://hl7.org/fhir/StructureDefinition/Procedure",
              "http://hl7.org/fhir/StructureDefinition/DiagnosticReport",
              "http://hl7.org/fhir/StructureDefinition/DocumentReference",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Condition_Diagnosis|1.6.0",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Procedure|1.6.0",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_DiagnosticReport|1.6.0",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_DocumentReference|1.6.0"
            ]
          }
        ]
      },
      {
        "id" : "Procedure.bodySite",
        "path" : "Procedure.bodySite",
        "definition" : "Hier wird die Körperstelle, an der die Prozedur durchgeführt wurde, anhand eines entsprechenden Codes oder alternativ mit einem Freitext angegeben.\r\nDie Angabe mehrerer Körperstellen kann z.B. bei der Entnahme von multiplen Biopsien sinnvoll sein."
      },
      {
        "id" : "Procedure.complication",
        "path" : "Procedure.complication",
        "definition" : "Hier werden Komplikationen der Prozedur angegeben."
      },
      {
        "id" : "Procedure.complicationDetail",
        "path" : "Procedure.complicationDetail",
        "definition" : "Hier werden Instanzen referenziert, die Komplikationen der Prozedur abbilden.",
        "type" : [
          {
            "code" : "Reference",
            "targetProfile" : [
              "http://hl7.org/fhir/StructureDefinition/Condition",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Condition_Diagnosis|1.6.0"
            ]
          }
        ]
      },
      {
        "id" : "Procedure.followUp",
        "path" : "Procedure.followUp",
        "definition" : "Hier wird die Nachbehandlung der Prozedur anhand eines entsprechenden Codes oder alternativ mit einem Freitext angegeben."
      },
      {
        "id" : "Procedure.note",
        "path" : "Procedure.note",
        "definition" : "Hier können ergänzende freitextliche Kommentare und Notizen vorgenommen werden, die nicht durch die strukturierten Datenelemente erfassbar sind."
      },
      {
        "id" : "Procedure.note.author[x]",
        "path" : "Procedure.note.author[x]",
        "slicing" : {
          "discriminator" : [
            {
              "type" : "type",
              "path" : "$this"
            }
          ],
          "rules" : "open"
        },
        "definition" : "Hier wird die Person angegeben, die die Notiz erstellt hat."
      },
      {
        "id" : "Procedure.note.author[x]:authorReference",
        "path" : "Procedure.note.author[x]",
        "sliceName" : "authorReference",
        "definition" : "Hier wird die Person, die die Notiz erstellt hat, referenziert.",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "Reference",
            "targetProfile" : [
              "http://hl7.org/fhir/StructureDefinition/Practitioner",
              "http://hl7.org/fhir/StructureDefinition/Patient",
              "http://hl7.org/fhir/StructureDefinition/RelatedPerson",
              "http://hl7.org/fhir/StructureDefinition/Organization",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Organization|1.6.0",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_RelatedPerson|1.6.0",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Practitioner|1.6.0",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Patient|1.6.0"
            ]
          }
        ]
      },
      {
        "id" : "Procedure.note.author[x]:authorString",
        "path" : "Procedure.note.author[x]",
        "sliceName" : "authorString",
        "definition" : "Hier wird die Person, die die Notiz erstellt hat, als Freitext angegeben.",
        "min" : 0,
        "max" : "1",
        "type" : [
          {
            "code" : "string"
          }
        ]
      },
      {
        "id" : "Procedure.note.time",
        "path" : "Procedure.note.time",
        "definition" : "Hier wird der Zeitpunkt angegeben, zu dem die Notiz erstellt wurde."
      },
      {
        "id" : "Procedure.note.text",
        "path" : "Procedure.note.text",
        "definition" : "Hier wird der eigentliche Text der Notiz eingetragen."
      },
      {
        "id" : "Procedure.focalDevice",
        "path" : "Procedure.focalDevice",
        "definition" : "Hier werden Geräte erfasst, die während der Prozedur implantiert, entfernt oder manipuliert wurden."
      },
      {
        "id" : "Procedure.focalDevice.action",
        "path" : "Procedure.focalDevice.action",
        "definition" : "Hier wird die Art der durchgeführten Handlung (z.B. Implantation, Explantation, Kalibration, Batteriewechsel, ...) anhand eines entsprechenden Codes oder alternativ mit einem Freitext angegeben."
      },
      {
        "id" : "Procedure.focalDevice.manipulated",
        "path" : "Procedure.focalDevice.manipulated",
        "definition" : "Hier wird das Gerät referenziert, das von der Prozedur betroffen ist.",
        "type" : [
          {
            "code" : "Reference",
            "targetProfile" : [
              "http://hl7.org/fhir/StructureDefinition/Device",
              "https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Device|1.6.0"
            ]
          }
        ]
      }
    ]
  },
  "text" : {
  }
}

XIG built as of ??metadata-date??. Found ??metadata-resources?? resources in ??metadata-packages?? packages.