<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="profile-Claim-create" />
  <url value="https://bpcs.exchange/fhir/StructureDefinition/profile-Claim-create" />
  <name value="ClaimCreate" />
  <title value="Claim Creation Profile" />
  <status value="active" />
  <experimental value="false" />
  <description value="Information about a claim used when storing a claim for the first time" />
  <fhirVersion value="5.0.0" />
  <mapping>
    <identity value="BPCS" />
    <name value="Internal BPCS API" />
  </mapping>
  <kind value="resource" />
  <abstract value="true" />
  <type value="Claim" />
  <baseDefinition value="https://bpcs.exchange/fhir/StructureDefinition/profile-Claim-base" />
  <derivation value="constraint" />
  <differential>
    <element id="Claim.extension:note">
      <path value="Claim.extension" />
      <sliceName value="note" />
      <type>
        <code value="Extension" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/ext-Claim-Note" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Claim.item">
      <path value="Claim.item" />
      <comment value="There will be a separate item repetition for each receipt being submitted for adjudication as part of a single 'batch'" />
      <mustSupport value="true" />
    </element>
    <element id="Claim.item.extension">
      <path value="Claim.item.extension" />
      <min value="2" />
      <mustSupport value="true" />
    </element>
    <element id="Claim.item.extension:patient">
      <path value="Claim.item.extension" />
      <sliceName value="patient" />
      <comment value="This will only be present if the search was performed on a family rather than an individual recipient" />
      <type>
        <code value="Extension" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/ext-Claim-ReceiptPatient" />
      </type>
      <condition value="BPCS-EOB-1a" />
      <condition value="BPCS-EOB-1b" />
      <mustSupport value="true" />
    </element>
    <element id="Claim.item.extension:entryMode">
      <path value="Claim.item.extension" />
      <sliceName value="entryMode" />
      <min value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/ext-Resource-Mode" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Claim.item.extension:overrideAmount">
      <path value="Claim.item.extension" />
      <sliceName value="overrideAmount" />
      <type>
        <code value="Extension" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/ext-Claim-OverrideNet" />
      </type>
      <mustSupport value="true" />
      <mapping>
        <identity value="BPCS" />
        <map value="ReceiptDTO.adjRecpntPaidAmt (if amountOflag is set), AssessmentFlag.amountOflag (Y if this extension is present)" />
      </mapping>
    </element>
    <element id="Claim.item.extension:received">
      <path value="Claim.item.extension" />
      <sliceName value="received" />
      <min value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/ext-Claim-ReceivedDate" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Claim.item.sequence">
      <path value="Claim.item.sequence" />
      <mustSupport value="true" />
      <mapping>
        <identity value="BPCS" />
        <map value="ReceiptDTO.seqNo" />
      </mapping>
    </element>
    <element id="Claim.item.informationSequence">
      <path value="Claim.item.informationSequence" />
      <comment value="Must be at least one informationSequence which will point to the Claim." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Claim.item.productOrService">
      <path value="Claim.item.productOrService" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Claim.item.productOrService.coding">
      <path value="Claim.item.productOrService.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="2" />
      <mustSupport value="true" />
    </element>
    <element id="Claim.item.productOrService.coding:receiptDinPin">
      <path value="Claim.item.productOrService.coding" />
      <sliceName value="receiptDinPin" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Claim.item.productOrService.coding:receiptDinPin.system">
      <path value="Claim.item.productOrService.coding.system" />
      <comment value="Clients are required to differentiate which codes are true DINs vs. Ontario-defined PINs" />
      <min value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://bpcs.exchange/fhir/ValueSet/vs-DinPinSystem" />
      </binding>
    </element>
    <element id="Claim.item.productOrService.coding:receiptDinPin.code">
      <path value="Claim.item.productOrService.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="BPCS" />
        <map value="DrugDTO.dinPin" />
      </mapping>
    </element>
    <element id="Claim.item.productOrService.coding:receiptDinPin.display">
      <path value="Claim.item.productOrService.coding.display" />
      <mustSupport value="true" />
      <mapping>
        <identity value="BPCS" />
        <map value="DrugDTO.drugBrandName" />
      </mapping>
    </element>
    <element id="Claim.item.productOrService.coding:generic">
      <path value="Claim.item.productOrService.coding" />
      <sliceName value="generic" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Claim.item.productOrService.coding:generic.system">
      <path value="Claim.item.productOrService.coding.system" />
      <min value="1" />
      <patternUri value="http://terminology.hl7.org/CodeSystem/hc-CCDD" />
    </element>
    <element id="Claim.item.productOrService.coding:generic.display">
      <path value="Claim.item.productOrService.coding.display" />
      <min value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="BPCS" />
        <map value="DrugDTO.genericName" />
      </mapping>
    </element>
    <element id="Claim.item.productOrService.coding:dummyPIN">
      <path value="Claim.item.productOrService.coding" />
      <sliceName value="dummyPIN" />
      <mustSupport value="true" />
    </element>
    <element id="Claim.item.productOrService.coding:dummyPIN.system">
      <path value="Claim.item.productOrService.coding.system" />
      <min value="1" />
      <patternUri value="https://bpcs.exchange/fhir/CodeSystem/cs-DummyPIN" />
    </element>
    <element id="Claim.item.productOrService.coding:dummyPIN.display">
      <path value="Claim.item.productOrService.coding.display" />
      <min value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="BPCS" />
        <map value="DrugDTO.dummyPIN" />
      </mapping>
    </element>
    <element id="Claim.item.modifier">
      <path value="Claim.item.modifier" />
      <comment value="This will include both overrides or additional response codes asserted by the user, as well as any response codes returned in prior adjudication that the user has opted to not override (or that were not overrideable)." />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://bpcs.exchange/fhir/ValueSet/vs-Claim-Modifiers" />
      </binding>
      <mapping>
        <identity value="BPCS" />
        <map value="ReceiptDTO.assessFormInd, AssessmentFlag.(various OFlags), ReceiptDTO.responseCds" />
      </mapping>
    </element>
    <element id="Claim.item.serviced[x]">
      <path value="Claim.item.serviced[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="Claim.item.serviced[x]:servicedDate">
      <path value="Claim.item.serviced[x]" />
      <sliceName value="servicedDate" />
      <min value="1" />
      <type>
        <code value="date" />
      </type>
      <mustSupport value="true" />
      <mapping>
        <identity value="BPCS" />
        <map value="ReceiptDTO.serviceDate" />
      </mapping>
    </element>
    <element id="Claim.item.patientPaid">
      <path value="Claim.item.patientPaid" />
      <min value="1" />
      <type>
        <code value="Money" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/profile-Money-CAD" />
      </type>
      <mustSupport value="true" />
      <mapping>
        <identity value="BPCS" />
        <map value="ReceiptDTO.recipientAmountPaid" />
      </mapping>
    </element>
    <element id="Claim.item.quantity">
      <path value="Claim.item.quantity" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Claim.item.quantity.value">
      <path value="Claim.item.quantity.value" />
      <min value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="BPCS" />
        <map value="ReceiptDTO.quantity" />
      </mapping>
    </element>
    <element id="Claim.item.net">
      <path value="Claim.item.net" />
      <min value="1" />
      <type>
        <code value="Money" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/profile-Money-CAD-Pos" />
      </type>
      <mustSupport value="true" />
      <mapping>
        <identity value="BPCS" />
        <map value="ReceiptDTO.receiptTotalAmount" />
      </mapping>
    </element>
    <element id="Claim.item.detail">
      <path value="Claim.item.detail" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="productOrService" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="2" />
    </element>
    <element id="Claim.item.detail:drugCost">
      <path value="Claim.item.detail" />
      <sliceName value="drugCost" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Claim.item.detail:drugCost.sequence">
      <path value="Claim.item.detail.sequence" />
      <comment value="A unique number within the scope of the item.  Typically '2'." />
      <mustSupport value="true" />
    </element>
    <element id="Claim.item.detail:drugCost.productOrService">
      <path value="Claim.item.detail.productOrService" />
      <min value="1" />
      <patternCodeableConcept>
        <coding>
          <system value="https://bpcs.exchange/fhir/CodeSystem/cs-CostFee" />
          <code value="drugCost" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Claim.item.detail:drugCost.net">
      <path value="Claim.item.detail.net" />
      <min value="1" />
      <type>
        <code value="Money" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/profile-Money-CAD-Pos" />
      </type>
      <mustSupport value="true" />
      <mapping>
        <identity value="BPCS" />
        <map value="ReceiptDTO.drugCost" />
      </mapping>
    </element>
    <element id="Claim.item.detail:pharmacistFee">
      <path value="Claim.item.detail" />
      <sliceName value="pharmacistFee" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Claim.item.detail:pharmacistFee.sequence">
      <path value="Claim.item.detail.sequence" />
      <comment value="A unique number within the scope of the item.  Typically '2'." />
      <mustSupport value="true" />
    </element>
    <element id="Claim.item.detail:pharmacistFee.productOrService">
      <path value="Claim.item.detail.productOrService" />
      <min value="1" />
      <patternCodeableConcept>
        <coding>
          <system value="https://bpcs.exchange/fhir/CodeSystem/cs-CostFee" />
          <code value="pharmacistFee" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Claim.item.detail:pharmacistFee.net">
      <path value="Claim.item.detail.net" />
      <type>
        <code value="Money" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/profile-Money-CAD-NonNeg" />
      </type>
      <mustSupport value="true" />
      <mapping>
        <identity value="BPCS" />
        <map value="ReceiptDTO.fee" />
      </mapping>
    </element>
  </differential>
</StructureDefinition>