<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="pcm-organization-source-update" />
  <url value="http://pcm.fhir.health.gov.il/StructureDefinition/pcm-organization-source-update" />
  <version value="0.3.2" />
  <name value="PCMOrganizationDataSourceUpdate" />
  <title value="PCM Data Source Organization Update Request" />
  <status value="active" />
  <description value="Closed FHIR PUT request projection for replacing the Data Source child's Endpoint reference and optional purpose-coded contact overrides. The request repeats the authoritative name required by base FHIR Organization; PCM rejects a mismatch and does not treat it as writable. Child identity, Parent, role, active state, and certificate inventory are prohibited." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Organization" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Organization" />
  <derivation value="constraint" />
  <differential>
    <element id="Organization.id">
      <path value="Organization.id" />
      <min value="1" />
    </element>
    <element id="Organization.meta.versionId">
      <path value="Organization.meta.versionId" />
      <comment value="Server-managed FHIR metadata. Prohibited in client requests." />
      <max value="0" />
    </element>
    <element id="Organization.meta.lastUpdated">
      <path value="Organization.meta.lastUpdated" />
      <comment value="Server-managed FHIR metadata. Prohibited in client requests." />
      <max value="0" />
    </element>
    <element id="Organization.meta.source">
      <path value="Organization.meta.source" />
      <max value="0" />
    </element>
    <element id="Organization.meta.profile">
      <path value="Organization.meta.profile" />
      <comment value="Clients may assert the interaction-specific request profile, but PCM validates the request shape independently and does not require this declaration." />
    </element>
    <element id="Organization.meta.security">
      <path value="Organization.meta.security" />
      <max value="0" />
    </element>
    <element id="Organization.meta.tag">
      <path value="Organization.meta.tag" />
      <max value="0" />
    </element>
    <element id="Organization.implicitRules">
      <path value="Organization.implicitRules" />
      <max value="0" />
    </element>
    <element id="Organization.language">
      <path value="Organization.language" />
      <max value="0" />
    </element>
    <element id="Organization.text">
      <path value="Organization.text" />
      <max value="0" />
    </element>
    <element id="Organization.contained">
      <path value="Organization.contained" />
      <max value="0" />
    </element>
    <element id="Organization.extension">
      <path value="Organization.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="Organization.extension:oauth2RedirectUri">
      <path value="Organization.extension" />
      <sliceName value="oauth2RedirectUri" />
      <comment value="Prohibited on Data Source update. This projection belongs only to an authoritative Service Provider child." />
      <min value="0" />
      <max value="0" />
      <type>
        <code value="Extension" />
        <profile value="http://pcm.fhir.health.gov.il/StructureDefinition/ext-oauth2-redirect-uri" />
      </type>
    </element>
    <element id="Organization.extension:applicableCertificates">
      <path value="Organization.extension" />
      <sliceName value="applicableCertificates" />
      <comment value="Prohibited on update. PCM alone preserves or recomputes the authoritative certificate inventory." />
      <min value="0" />
      <max value="0" />
      <type>
        <code value="Extension" />
        <profile value="http://pcm.fhir.health.gov.il/StructureDefinition/ext-applicable-certificates" />
      </type>
    </element>
    <element id="Organization.modifierExtension">
      <path value="Organization.modifierExtension" />
      <max value="0" />
    </element>
    <element id="Organization.identifier">
      <path value="Organization.identifier" />
      <comment value="Prohibited on update. PCM preserves the stored PCM Organization business identifier." />
      <max value="0" />
    </element>
    <element id="Organization.active">
      <path value="Organization.active" />
      <comment value="Prohibited on update. Only MoH/PCM changes Organization.active." />
      <max value="0" />
    </element>
    <element id="Organization.type">
      <path value="Organization.type" />
      <comment value="Prohibited on update. PCM preserves the Data Source role." />
      <max value="0" />
    </element>
    <element id="Organization.name">
      <path value="Organization.name" />
      <comment value="Required unchanged authoritative child name. PCM rejects a mismatch; this interaction does not permit renaming." />
      <min value="1" />
    </element>
    <element id="Organization.alias">
      <path value="Organization.alias" />
      <max value="0" />
    </element>
    <element id="Organization.telecom">
      <path value="Organization.telecom" />
      <max value="0" />
    </element>
    <element id="Organization.address">
      <path value="Organization.address" />
      <max value="0" />
    </element>
    <element id="Organization.partOf">
      <path value="Organization.partOf" />
      <comment value="Prohibited on update. PCM preserves the authenticated client's Parent." />
      <max value="0" />
    </element>
    <element id="Organization.contact">
      <path value="Organization.contact" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="purpose.coding.code" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <comment value="Complete replacement for the optional child contact overrides. A missing purpose falls back to the Parent; an OPS contact SHOULD be supplied." />
    </element>
    <element id="Organization.contact.modifierExtension">
      <path value="Organization.contact.modifierExtension" />
      <max value="0" />
    </element>
    <element id="Organization.contact.purpose">
      <path value="Organization.contact.purpose" />
      <min value="1" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://pcm.fhir.health.gov.il/ValueSet/pcm-contactentity-type" />
      </binding>
    </element>
    <element id="Organization.contact:operations">
      <path value="Organization.contact" />
      <sliceName value="operations" />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Organization.contact:operations.purpose.coding">
      <path value="Organization.contact.purpose.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Organization.contact:operations.purpose.coding.system">
      <path value="Organization.contact.purpose.coding.system" />
      <min value="1" />
      <fixedUri value="http://pcm.fhir.health.gov.il/cs/pcm-contactentity-type" />
    </element>
    <element id="Organization.contact:operations.purpose.coding.code">
      <path value="Organization.contact.purpose.coding.code" />
      <min value="1" />
      <fixedCode value="OPS" />
    </element>
    <element id="Organization.endpoint">
      <path value="Organization.endpoint" />
      <comment value="Complete replacement for the registered Endpoint reference. PCM validates that the Endpoint belongs to this Data Source." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://pcm.fhir.health.gov.il/StructureDefinition/pcm-endpoint" />
      </type>
    </element>
    <element id="Organization.endpoint.reference">
      <path value="Organization.endpoint.reference" />
      <min value="1" />
    </element>
    <element id="Organization.endpoint.identifier">
      <path value="Organization.endpoint.identifier" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>