<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="pcm-system-authorization-contract" />
  <url value="http://pcm.fhir.health.gov.il/StructureDefinition/pcm-system-authorization-contract" />
  <version value="0.4.2" />
  <name value="PCMSystemAuthorizationContract" />
  <title value="PCM System Authorization Contract" />
  <status value="active" />
  <description value="PCM-managed grant to the PCM system organization for one self-contained system workflow. Presence check, patient authentication and dependent discovery use separate grant instances of this profile. Contract.subType selects the workflow and purpose; the Contract lists the permitted sources and effective period. Participants have read/search access only." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Contract" />
  <baseDefinition value="http://pcm.fhir.health.gov.il/StructureDefinition/pcm-data-access-authorization-contract" />
  <derivation value="constraint" />
  <differential>
    <element id="Contract.meta.profile">
      <path value="Contract.meta.profile" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <comment value="PCM includes the applicable server-return profile URL; additional compatible profile URLs are allowed." />
      <min value="1" />
    </element>
    <element id="Contract.meta.profile:pcmProfile">
      <path value="Contract.meta.profile" />
      <sliceName value="pcmProfile" />
      <min value="1" />
      <max value="1" />
      <fixedCanonical value="http://pcm.fhir.health.gov.il/StructureDefinition/pcm-system-authorization-contract" />
    </element>
    <element id="Contract.implicitRules">
      <path value="Contract.implicitRules" />
      <max value="0" />
    </element>
    <element id="Contract.contained">
      <path value="Contract.contained" />
      <max value="0" />
    </element>
    <element id="Contract.extension">
      <path value="Contract.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="closed" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Contract.extension:exampleQuery">
      <path value="Contract.extension" />
      <sliceName value="exampleQuery" />
      <min value="1" />
    </element>
    <element id="Contract.modifierExtension">
      <path value="Contract.modifierExtension" />
      <max value="0" />
    </element>
    <element id="Contract.url">
      <path value="Contract.url" />
      <max value="0" />
    </element>
    <element id="Contract.version">
      <path value="Contract.version" />
      <max value="0" />
    </element>
    <element id="Contract.status">
      <path value="Contract.status" />
      <comment value="PCM publishes executed grants after its authorized policy-approval process has formally established them. This is PCM's mapping of formal execution for unilateral system grants; it does not assert bilateral signatures in this resource. No draft or negotiation lifecycle is exposed." />
    </element>
    <element id="Contract.legalState">
      <path value="Contract.legalState" />
      <max value="0" />
    </element>
    <element id="Contract.instantiatesCanonical">
      <path value="Contract.instantiatesCanonical" />
      <max value="0" />
    </element>
    <element id="Contract.contentDerivative">
      <path value="Contract.contentDerivative" />
      <max value="0" />
    </element>
    <element id="Contract.expirationType">
      <path value="Contract.expirationType" />
      <max value="0" />
    </element>
    <element id="Contract.subject">
      <path value="Contract.subject" />
      <max value="0" />
    </element>
    <element id="Contract.authority">
      <path value="Contract.authority" />
      <max value="0" />
    </element>
    <element id="Contract.domain">
      <path value="Contract.domain" />
      <max value="0" />
    </element>
    <element id="Contract.site">
      <path value="Contract.site" />
      <max value="0" />
    </element>
    <element id="Contract.name">
      <path value="Contract.name" />
      <max value="0" />
    </element>
    <element id="Contract.title">
      <path value="Contract.title" />
      <min value="1" />
    </element>
    <element id="Contract.subtitle">
      <path value="Contract.subtitle" />
      <max value="0" />
    </element>
    <element id="Contract.alias">
      <path value="Contract.alias" />
      <max value="0" />
    </element>
    <element id="Contract.author">
      <path value="Contract.author" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://pcm.fhir.health.gov.il/StructureDefinition/pcm-organization-system" />
      </type>
    </element>
    <element id="Contract.scope">
      <path value="Contract.scope" />
      <max value="0" />
    </element>
    <element id="Contract.topic[x]">
      <path value="Contract.topic[x]" />
      <max value="0" />
    </element>
    <element id="Contract.subType">
      <path value="Contract.subType" />
      <comment value="PCM derives purpose, effective scopes and disclosure restrictions from this immutable workflow code using the normative PCM workflow rules. Unknown workflow codes are rejected. The grant has no HealthcareService dependency. Authentication/discovery additionally require current HMO workflow enrollment; authentication targets the verified home HMO. Future commercial grants are not enabled by this profile." />
      <binding>
        <strength value="required" />
        <valueSet value="http://pcm.fhir.health.gov.il/ValueSet/pcm-authorization-scenario" />
      </binding>
    </element>
    <element id="Contract.subType.coding.system">
      <path value="Contract.subType.coding.system" />
      <fixedUri value="http://pcm.fhir.health.gov.il/cs/pcm-authorization-scenario" />
    </element>
    <element id="Contract.contentDefinition">
      <path value="Contract.contentDefinition" />
      <max value="0" />
    </element>
    <element id="Contract.term.modifierExtension">
      <path value="Contract.term.modifierExtension" />
      <max value="0" />
    </element>
    <element id="Contract.term.identifier">
      <path value="Contract.term.identifier" />
      <max value="0" />
    </element>
    <element id="Contract.term.issued">
      <path value="Contract.term.issued" />
      <max value="0" />
    </element>
    <element id="Contract.term.applies">
      <path value="Contract.term.applies" />
      <max value="0" />
    </element>
    <element id="Contract.term.topic[x]">
      <path value="Contract.term.topic[x]" />
      <max value="0" />
    </element>
    <element id="Contract.term.type">
      <path value="Contract.term.type" />
      <max value="0" />
    </element>
    <element id="Contract.term.subType">
      <path value="Contract.term.subType" />
      <max value="0" />
    </element>
    <element id="Contract.term.text">
      <path value="Contract.term.text" />
      <min value="1" />
    </element>
    <element id="Contract.term.securityLabel">
      <path value="Contract.term.securityLabel" />
      <max value="0" />
    </element>
    <element id="Contract.term.offer.modifierExtension">
      <path value="Contract.term.offer.modifierExtension" />
      <max value="0" />
    </element>
    <element id="Contract.term.offer.identifier">
      <path value="Contract.term.offer.identifier" />
      <max value="0" />
    </element>
    <element id="Contract.term.offer.party.modifierExtension">
      <path value="Contract.term.offer.party.modifierExtension" />
      <max value="0" />
    </element>
    <element id="Contract.term.offer.party.reference">
      <path value="Contract.term.offer.party.reference" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://pcm.fhir.health.gov.il/StructureDefinition/pcm-organization-system" />
      </type>
    </element>
    <element id="Contract.term.offer.topic">
      <path value="Contract.term.offer.topic" />
      <max value="0" />
    </element>
    <element id="Contract.term.offer.type">
      <path value="Contract.term.offer.type" />
      <max value="0" />
    </element>
    <element id="Contract.term.offer.decision">
      <path value="Contract.term.offer.decision" />
      <max value="0" />
    </element>
    <element id="Contract.term.offer.decisionMode">
      <path value="Contract.term.offer.decisionMode" />
      <max value="0" />
    </element>
    <element id="Contract.term.offer.answer">
      <path value="Contract.term.offer.answer" />
      <max value="0" />
    </element>
    <element id="Contract.term.offer.text">
      <path value="Contract.term.offer.text" />
      <max value="0" />
    </element>
    <element id="Contract.term.offer.linkId">
      <path value="Contract.term.offer.linkId" />
      <max value="0" />
    </element>
    <element id="Contract.term.offer.securityLabelNumber">
      <path value="Contract.term.offer.securityLabelNumber" />
      <max value="0" />
    </element>
    <element id="Contract.term.asset.modifierExtension">
      <path value="Contract.term.asset.modifierExtension" />
      <max value="0" />
    </element>
    <element id="Contract.term.asset.scope">
      <path value="Contract.term.asset.scope" />
      <max value="0" />
    </element>
    <element id="Contract.term.asset.type">
      <path value="Contract.term.asset.type" />
      <max value="0" />
    </element>
    <element id="Contract.term.asset.typeReference">
      <path value="Contract.term.asset.typeReference" />
      <max value="0" />
    </element>
    <element id="Contract.term.asset.subtype">
      <path value="Contract.term.asset.subtype" />
      <max value="0" />
    </element>
    <element id="Contract.term.asset.relationship">
      <path value="Contract.term.asset.relationship" />
      <max value="0" />
    </element>
    <element id="Contract.term.asset.context.modifierExtension">
      <path value="Contract.term.asset.context.modifierExtension" />
      <max value="0" />
    </element>
    <element id="Contract.term.asset.context.code">
      <path value="Contract.term.asset.context.code" />
      <max value="0" />
    </element>
    <element id="Contract.term.asset.context.text">
      <path value="Contract.term.asset.context.text" />
      <max value="0" />
    </element>
    <element id="Contract.term.asset.condition">
      <path value="Contract.term.asset.condition" />
      <max value="0" />
    </element>
    <element id="Contract.term.asset.periodType">
      <path value="Contract.term.asset.periodType" />
      <max value="0" />
    </element>
    <element id="Contract.term.asset.period">
      <path value="Contract.term.asset.period" />
      <max value="0" />
    </element>
    <element id="Contract.term.asset.usePeriod">
      <path value="Contract.term.asset.usePeriod" />
      <max value="0" />
    </element>
    <element id="Contract.term.asset.text">
      <path value="Contract.term.asset.text" />
      <max value="0" />
    </element>
    <element id="Contract.term.asset.linkId">
      <path value="Contract.term.asset.linkId" />
      <max value="0" />
    </element>
    <element id="Contract.term.asset.answer">
      <path value="Contract.term.asset.answer" />
      <max value="0" />
    </element>
    <element id="Contract.term.asset.securityLabelNumber">
      <path value="Contract.term.asset.securityLabelNumber" />
      <max value="0" />
    </element>
    <element id="Contract.term.asset.valuedItem">
      <path value="Contract.term.asset.valuedItem" />
      <max value="0" />
    </element>
    <element id="Contract.term.action">
      <path value="Contract.term.action" />
      <max value="0" />
    </element>
    <element id="Contract.term.group">
      <path value="Contract.term.group" />
      <max value="0" />
    </element>
    <element id="Contract.supportingInfo">
      <path value="Contract.supportingInfo" />
      <max value="0" />
    </element>
    <element id="Contract.relevantHistory">
      <path value="Contract.relevantHistory" />
      <max value="0" />
    </element>
    <element id="Contract.signer">
      <path value="Contract.signer" />
      <max value="0" />
    </element>
    <element id="Contract.friendly">
      <path value="Contract.friendly" />
      <max value="0" />
    </element>
    <element id="Contract.legal">
      <path value="Contract.legal" />
      <max value="0" />
    </element>
    <element id="Contract.rule">
      <path value="Contract.rule" />
      <max value="0" />
    </element>
    <element id="Contract.legallyBinding[x]">
      <path value="Contract.legallyBinding[x]" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>