<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="pcm-healthcareservice-new-service-submit" />
  <url value="http://pcm.fhir.health.gov.il/StructureDefinition/pcm-healthcareservice-new-service-submit" />
  <version value="0.3.2" />
  <name value="PCMHealthcareServiceNewServiceSubmit" />
  <title value="PCM HealthcareService New Service Submit" />
  <status value="active" />
  <description value="Closed interaction-specific submit profile for a provider-initiated new-service registration request. Clients may assert this profile in meta.profile, but PCM validates the request shape independently and does not require the declaration. The provider supplies the writable service definition without basedOn and must omit meta.tag; PCM adds the authoritative classification tags to the returned catalog and provider-instance resources. Identity, ownership, lifecycle, and approval fields are prohibited." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="HealthcareService" />
  <baseDefinition value="http://fhir.health.gov.il/StructureDefinition/il-core-healthcare-service" />
  <derivation value="constraint" />
  <differential>
    <element id="HealthcareService">
      <path value="HealthcareService" />
      <constraint>
        <key value="pcm-hcs-information-bucket-code-unique" />
        <severity value="error" />
        <human value="Each IL HDP information-bucket code may appear at most once in a PCM HealthcareService." />
        <expression value="extension.where(url = 'http://pcm.fhir.health.gov.il/StructureDefinition/ext-information-bucket').extension.where(url = 'bucket').value.ofType(CodeableConcept).coding.where(system = 'http://fhir.health.gov.il/cs/il-hdp-information-buckets').code.isDistinct()" />
        <source value="http://pcm.fhir.health.gov.il/StructureDefinition/pcm-healthcareservice-new-service-submit" />
      </constraint>
    </element>
    <element id="HealthcareService.id">
      <path value="HealthcareService.id" />
      <comment value="FHIR create metadata. If supplied, PCM ignores it and assigns the logical id." />
    </element>
    <element id="HealthcareService.meta.versionId">
      <path value="HealthcareService.meta.versionId" />
      <comment value="Server-managed FHIR metadata. Prohibited in this client create request." />
      <max value="0" />
    </element>
    <element id="HealthcareService.meta.lastUpdated">
      <path value="HealthcareService.meta.lastUpdated" />
      <comment value="Server-managed FHIR metadata. Prohibited in this client create request." />
      <max value="0" />
    </element>
    <element id="HealthcareService.meta.source">
      <path value="HealthcareService.meta.source" />
      <max value="0" />
    </element>
    <element id="HealthcareService.meta.profile">
      <path value="HealthcareService.meta.profile" />
      <comment value="Clients may assert this interaction-specific request profile, but PCM validates the request shape independently and does not require the declaration." />
    </element>
    <element id="HealthcareService.meta.security">
      <path value="HealthcareService.meta.security" />
      <max value="0" />
    </element>
    <element id="HealthcareService.meta.tag">
      <path value="HealthcareService.meta.tag" />
      <comment value="Prohibited in this direct create request. PCM adds the authoritative HealthcareService classification tags to the returned catalog and provider-instance resources." />
      <max value="0" />
    </element>
    <element id="HealthcareService.implicitRules">
      <path value="HealthcareService.implicitRules" />
      <max value="0" />
    </element>
    <element id="HealthcareService.language">
      <path value="HealthcareService.language" />
      <max value="0" />
    </element>
    <element id="HealthcareService.text">
      <path value="HealthcareService.text" />
      <max value="0" />
    </element>
    <element id="HealthcareService.contained">
      <path value="HealthcareService.contained" />
      <max value="0" />
    </element>
    <element id="HealthcareService.extension">
      <path value="HealthcareService.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <min value="5" />
    </element>
    <element id="HealthcareService.extension:businessStatus">
      <path value="HealthcareService.extension" />
      <sliceName value="businessStatus" />
      <comment value="Prohibited in the request. PCM derives the lifecycle state." />
      <min value="0" />
      <max value="0" />
      <type>
        <code value="Extension" />
        <profile value="http://pcm.fhir.health.gov.il/StructureDefinition/ext-service-business-status" />
      </type>
    </element>
    <element id="HealthcareService.extension:basedOn">
      <path value="HealthcareService.extension" />
      <sliceName value="basedOn" />
      <comment value="Prohibited in a new-service request. PCM creates the canonical service and links the resulting provider instance." />
      <min value="0" />
      <max value="0" />
      <type>
        <code value="Extension" />
        <profile value="http://pcm.fhir.health.gov.il/StructureDefinition/ext-based-on-canonical-healthcareservice" />
      </type>
    </element>
    <element id="HealthcareService.extension:approvalWindow">
      <path value="HealthcareService.extension" />
      <sliceName value="approvalWindow" />
      <comment value="Prohibited in the request. PCM derives the applicable approval or objection period." />
      <min value="0" />
      <max value="0" />
      <type>
        <code value="Extension" />
        <profile value="http://pcm.fhir.health.gov.il/StructureDefinition/ext-approval-window" />
      </type>
    </element>
    <element id="HealthcareService.extension:accessMode">
      <path value="HealthcareService.extension" />
      <sliceName value="accessMode" />
      <comment value="Required requested consent access mode." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://pcm.fhir.health.gov.il/StructureDefinition/ext-access-mode" />
      </type>
    </element>
    <element id="HealthcareService.extension:accessDuration">
      <path value="HealthcareService.extension" />
      <sliceName value="accessDuration" />
      <comment value="Required requested consent access duration. PCM may apply additional server-side handling for durations that require exceptional review." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://pcm.fhir.health.gov.il/StructureDefinition/ext-access-duration" />
      </type>
    </element>
    <element id="HealthcareService.extension:exampleQuery">
      <path value="HealthcareService.extension" />
      <sliceName value="exampleQuery" />
      <comment value="Required example FHIR queries for implementers and reviewers." />
      <min value="1" />
      <max value="*" />
      <type>
        <code value="Extension" />
        <profile value="http://pcm.fhir.health.gov.il/StructureDefinition/ext-example-query" />
      </type>
    </element>
    <element id="HealthcareService.extension:allowPatientBucketChange">
      <path value="HealthcareService.extension" />
      <sliceName value="allowPatientBucketChange" />
      <comment value="Required requested setting indicating whether patients can customize information buckets." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://pcm.fhir.health.gov.il/StructureDefinition/ext-allow-patient-bucket-change" />
      </type>
    </element>
    <element id="HealthcareService.extension:informationBucket">
      <path value="HealthcareService.extension" />
      <sliceName value="informationBucket" />
      <comment value="Required requested information buckets and history depth. Each IL HDP information-bucket code may occur only once; PCM rejects the complete request when a code is repeated." />
      <min value="1" />
      <max value="*" />
      <type>
        <code value="Extension" />
        <profile value="http://pcm.fhir.health.gov.il/StructureDefinition/ext-information-bucket" />
      </type>
    </element>
    <element id="HealthcareService.modifierExtension">
      <path value="HealthcareService.modifierExtension" />
      <max value="0" />
    </element>
    <element id="HealthcareService.identifier">
      <path value="HealthcareService.identifier" />
      <comment value="Prohibited on submit. PCM assigns returned catalog and instance identifiers." />
      <max value="0" />
    </element>
    <element id="HealthcareService.active">
      <path value="HealthcareService.active" />
      <comment value="Prohibited on submit. PCM creates new-service requests with active=false." />
      <max value="0" />
    </element>
    <element id="HealthcareService.providedBy">
      <path value="HealthcareService.providedBy" />
      <comment value="Prohibited on submit. PCM derives the owner from the authenticated Service Provider." />
      <max value="0" />
    </element>
    <element id="HealthcareService.category">
      <path value="HealthcareService.category" />
      <comment value="Required service category for catalog discovery and governance." />
      <min value="1" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://pcm.fhir.health.gov.il/ValueSet/pcm-healthcareservice-category" />
      </binding>
    </element>
    <element id="HealthcareService.type">
      <path value="HealthcareService.type" />
      <comment value="Required service type; PCM services are information access services." />
      <min value="1" />
      <max value="1" />
      <patternCodeableConcept>
        <coding>
          <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode" />
          <code value="INFA" />
          <display value="information access" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="HealthcareService.specialty">
      <path value="HealthcareService.specialty" />
      <max value="0" />
    </element>
    <element id="HealthcareService.location">
      <path value="HealthcareService.location" />
      <max value="0" />
    </element>
    <element id="HealthcareService.name">
      <path value="HealthcareService.name" />
      <comment value="Required service name for the new-service request." />
      <min value="1" />
    </element>
    <element id="HealthcareService.comment">
      <path value="HealthcareService.comment" />
      <max value="0" />
    </element>
    <element id="HealthcareService.extraDetails">
      <path value="HealthcareService.extraDetails" />
      <comment value="Required concise patient-facing service description, including why the requested information buckets are needed." />
      <min value="1" />
    </element>
    <element id="HealthcareService.photo">
      <path value="HealthcareService.photo" />
      <max value="0" />
    </element>
    <element id="HealthcareService.telecom">
      <path value="HealthcareService.telecom" />
      <max value="0" />
    </element>
    <element id="HealthcareService.coverageArea">
      <path value="HealthcareService.coverageArea" />
      <max value="0" />
    </element>
    <element id="HealthcareService.serviceProvisionCode">
      <path value="HealthcareService.serviceProvisionCode" />
      <max value="0" />
    </element>
    <element id="HealthcareService.eligibility">
      <path value="HealthcareService.eligibility" />
      <max value="0" />
    </element>
    <element id="HealthcareService.program">
      <path value="HealthcareService.program" />
      <max value="0" />
    </element>
    <element id="HealthcareService.characteristic">
      <path value="HealthcareService.characteristic" />
      <max value="0" />
    </element>
    <element id="HealthcareService.communication">
      <path value="HealthcareService.communication" />
      <max value="0" />
    </element>
    <element id="HealthcareService.referralMethod">
      <path value="HealthcareService.referralMethod" />
      <max value="0" />
    </element>
    <element id="HealthcareService.appointmentRequired">
      <path value="HealthcareService.appointmentRequired" />
      <max value="0" />
    </element>
    <element id="HealthcareService.availableTime">
      <path value="HealthcareService.availableTime" />
      <max value="0" />
    </element>
    <element id="HealthcareService.notAvailable">
      <path value="HealthcareService.notAvailable" />
      <max value="0" />
    </element>
    <element id="HealthcareService.availabilityExceptions">
      <path value="HealthcareService.availabilityExceptions" />
      <max value="0" />
    </element>
    <element id="HealthcareService.endpoint">
      <path value="HealthcareService.endpoint" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>