<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="https://fhir.siss.regione.lombardia.it/StructureDefinition/RLCompositionCertificatoVaccinale" />
  <name value="RLCompositionCertificatoVaccinale" />
  <title value="RL Composition Certificato Vaccinale" />
  <status value="draft" />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Composition" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Composition" />
  <derivation value="constraint" />
  <differential>
    <element id="Composition">
      <path value="Composition" />
      <short value="Certificato Vaccinale" />
      <definition value="Documento FHIR che rappresenta il Certificato Vaccinale prodotto nell'ambito SISS Regione Lombardia." />
    </element>
    <element id="Composition.type">
      <path value="Composition.type" />
      <short value="Identifica la tipologia di documento" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Composition.type.coding">
      <path value="Composition.type.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Composition.type.coding.system">
      <path value="Composition.type.coding.system" />
      <comment value="Fixed: LOINC (OID 2.16.840.1.113883.6.1)" />
      <min value="1" />
      <max value="1" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="Composition.type.coding.version">
      <path value="Composition.type.coding.version" />
      <comment value="La fonte riporta 'LOINC' come se fosse un valore fixed; corretto a solo esempio." />
      <min value="0" />
      <max value="1" />
      <example>
        <label value="Esempio" />
        <valueString value="LOINC 2.19" />
      </example>
    </element>
    <element id="Composition.type.coding.code">
      <path value="Composition.type.coding.code" />
      <short value="Codice locale per il tipo di documento." />
      <min value="1" />
      <max value="1" />
      <fixedCode value="82593-5" />
    </element>
    <element id="Composition.type.coding.display">
      <path value="Composition.type.coding.display" />
      <min value="0" />
      <max value="1" />
      <fixedString value="Immunization summary report" />
    </element>
    <element id="Composition.title">
      <path value="Composition.title" />
      <min value="1" />
      <max value="1" />
      <fixedString value="Certificato Vaccinale" />
    </element>
    <element id="Composition.date">
      <path value="Composition.date" />
      <definition value="Giorno e ora della creazione dell'istanza del documento." />
      <comment value="La fonte riportava una seconda riga 'date' duplicata con la definizione di attester:legalAuthenticator.time ('quando è stato firmato'); rimossa come refuso, mantenuta solo la definizione di creazione documento." />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Composition.subject">
      <path value="Composition.subject" />
      <definition value="Codifica i dati identificativi ed anagrafici del paziente (Assistito)." />
      <comment value="Cardinalità corretta a 1..1 rispetto alla fonte (0..1)." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.siss.regione.lombardia.it/StructureDefinition/RLPatientCore" />
      </type>
    </element>
    <element id="Composition.author">
      <path value="Composition.author" />
      <definition value="Chi e/o cosa ha scritto la composizione: professionista sanitario e/o dispositivo/applicazione software che ha generato il documento." />
      <comment value="La fonte riportava 3 righe separate per author (PractitionerRoleCore con definizione duplicata da dataEnterer, Device, PractitionerCore); unificate in un solo elemento con targetProfile multipli, coerente con RLCompositionRefertoRadiologia." />
      <min value="1" />
      <max value="*" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.siss.regione.lombardia.it/StructureDefinition/RLPractitionerRoleCore" />
        <targetProfile value="https://fhir.siss.regione.lombardia.it/StructureDefinition/RLPractitionerCore" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Device" />
      </type>
    </element>
    <element id="Composition.custodian">
      <path value="Composition.custodian" />
      <definition value="Organizzazione responsabile della conservazione dell'originale del documento, al momento della generazione." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.siss.regione.lombardia.it/StructureDefinition/RLOrganizationCore" />
      </type>
    </element>
    <element id="Composition.attester">
      <path value="Composition.attester" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="mode" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <definition value="Professionisti che attestano la validità del documento. Se la risorsa è creata a fine documentale, uno degli attester dovrebbe essere il firmatario (chi allega la firma digitale al documento)." />
      <min value="1" />
      <max value="*" />
    </element>
    <element id="Composition.attester:legalAuthenticator">
      <path value="Composition.attester" />
      <sliceName value="legalAuthenticator" />
      <short value="Persona Responsabile della Vaccinazione" />
      <definition value="Rappresenta l'attore che ha legalmente autenticato il documento prodotto in locale." />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Composition.attester:legalAuthenticator.mode">
      <path value="Composition.attester.mode" />
      <min value="1" />
      <max value="1" />
      <fixedCode value="legal" />
    </element>
    <element id="Composition.attester:legalAuthenticator.time">
      <path value="Composition.attester.time" />
      <short value="Data e ora di firma" />
      <definition value="Quando è stato firmato il documento." />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Composition.attester:legalAuthenticator.party">
      <path value="Composition.attester.party" />
      <definition value="Riferimento al firmatario." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.siss.regione.lombardia.it/StructureDefinition/RLPractitionerRoleCore" />
      </type>
    </element>
    <element id="Composition.encounter">
      <path value="Composition.encounter" />
      <definition value="Rappresenta tutti coloro (persone od organizzazioni) che sono coinvolti nell'atto descritto." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.siss.regione.lombardia.it/StructureDefinition/RLEncounterCore" />
      </type>
    </element>
    <element id="Composition.extension:versionNumber">
      <path value="Composition.extension" />
      <sliceName value="versionNumber" />
      <definition value="Identificatore specifico della versione per la composizione, assegnato quando ciascuna versione viene creata o aggiornata." />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Extension" />
        <profile value="http://hl7.org/fhir/StructureDefinition/composition-clinicaldocument-versionNumber" />
      </type>
    </element>
    <element id="Composition.status">
      <path value="Composition.status" />
      <definition value="Stato del documento." />
      <min value="1" />
      <max value="1" />
      <fixedCode value="final" />
    </element>
    <element id="Composition.section">
      <path value="Composition.section" />
      <comment value="Cardinalità corretta a 1..1 rispetto alla fonte (0..*): il documento veicola sempre e solo questa sezione." />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Composition.section.code">
      <path value="Composition.section.code" />
      <definition value="Codice che identifica il tipo di sezione." />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Composition.section.code.coding.system">
      <path value="Composition.section.code.coding.system" />
      <comment value="Fixed: LOINC (OID 2.16.840.1.113883.6.1)" />
      <min value="0" />
      <max value="1" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="Composition.section.code.coding.version">
      <path value="Composition.section.code.coding.version" />
      <comment value="La fonte riporta 'LOINC' come se fosse un valore fixed; corretto a solo esempio." />
      <min value="0" />
      <max value="1" />
      <example>
        <label value="Esempio" />
        <valueString value="LOINC 2.19" />
      </example>
    </element>
    <element id="Composition.section.code.coding.code">
      <path value="Composition.section.code.coding.code" />
      <min value="0" />
      <max value="1" />
      <fixedCode value="11369-6" />
    </element>
    <element id="Composition.section.code.coding.display">
      <path value="Composition.section.code.coding.display" />
      <min value="0" />
      <max value="1" />
      <fixedString value="Storia delle immunizzazioni" />
    </element>
    <element id="Composition.section.title">
      <path value="Composition.section.title" />
      <comment value="La fonte riportava 'Fixed: Scheda della singola Vaccinazione' (copia-incolla dal documento Scheda Singola Vaccinazione); corretto a 'Certificato Vaccinale', coerente col valore letterale title=[&quot;Certificato Vaccinale&quot;] in tabella." />
      <min value="1" />
      <max value="1" />
      <fixedString value="Certificato Vaccinale" />
    </element>
    <element id="Composition.section.text">
      <path value="Composition.section.text" />
      <definition value="Sintesi testuale della sezione." />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Composition.section.entry">
      <path value="Composition.section.entry" />
      <slicing>
        <discriminator>
          <type value="profile" />
          <path value="resolve()" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="0" />
      <max value="*" />
    </element>
    <element id="Composition.section.entry:datiVaccinazione">
      <path value="Composition.section.entry" />
      <sliceName value="datiVaccinazione" />
      <definition value="Riferimento ai contenuti della sezione relativo ai Dati Vaccinazione." />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.siss.regione.lombardia.it/StructureDefinition/RLImmunizationVaccinazione" />
      </type>
    </element>
    <element id="Composition.section.entry:datiEsonero">
      <path value="Composition.section.entry" />
      <sliceName value="datiEsonero" />
      <definition value="Riferimento ai contenuti della sezione relativo ai Dati Esonero/omissione o differimento." />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.siss.regione.lombardia.it/StructureDefinition/RLImmunizationEsonero" />
      </type>
    </element>
  </differential>
</StructureDefinition>