<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="profile-ExplanationOfBenefit-duplicate" />
  <url value="https://bpcs.exchange/fhir/StructureDefinition/profile-ExplanationOfBenefit-duplicate" />
  <name value="ExplanationOfBenefitExpenses" />
  <title value="Recipient Expenses" />
  <status value="active" />
  <experimental value="false" />
  <description value="A profile on the EOB resources that allows providing information about potentially duplicate receipts as part of a ClaimResponse" />
  <fhirVersion value="5.0.0" />
  <mapping>
    <identity value="BPCS" />
    <name value="Internal BPCS API" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="ExplanationOfBenefit" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/ExplanationOfBenefit" />
  <derivation value="constraint" />
  <differential>
    <element id="ExplanationOfBenefit.id">
      <path value="ExplanationOfBenefit.id" />
      <comment value="Used to point to the receipt collection from the relevant ClaimResponseItem" />
      <min value="1" />
      <patternId value="dups" />
    </element>
    <element id="ExplanationOfBenefit.status">
      <path value="ExplanationOfBenefit.status" />
      <patternCode value="active" />
    </element>
    <element id="ExplanationOfBenefit.type">
      <path value="ExplanationOfBenefit.type" />
      <patternCodeableConcept>
        <coding>
          <system value="http://terminology.hl7.org/CodeSystem/claim-type" />
          <code value="pharmacy" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="ExplanationOfBenefit.use">
      <path value="ExplanationOfBenefit.use" />
      <patternCode value="claim" />
    </element>
    <element id="ExplanationOfBenefit.patient">
      <path value="ExplanationOfBenefit.patient" />
      <type>
        <code value="Reference" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/profile-Reference-group-or-patient" />
        <targetProfile value="https://bpcs.exchange/fhir/StructureDefinition/profile-Patient-search" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.created">
      <path value="ExplanationOfBenefit.created" />
      <comment value="This will be the date/time the ClaimResponse was returned" />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.insurer">
      <path value="ExplanationOfBenefit.insurer" />
      <patternReference>
        <reference value="Organization/bpcs" />
      </patternReference>
    </element>
    <element id="ExplanationOfBenefit.outcome">
      <path value="ExplanationOfBenefit.outcome" />
      <patternCode value="complete" />
    </element>
    <element id="ExplanationOfBenefit.supportingInfo">
      <path value="ExplanationOfBenefit.supportingInfo" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="category" />
        </discriminator>
        <discriminator>
          <type value="type" />
          <path value="value" />
        </discriminator>
        <discriminator>
          <type value="profile" />
          <path value="value.resolve()" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <comment value="There will be at least one supportingInformation for each receipt containing the dispense information associated with that receipt" />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.supportingInfo:dispense">
      <path value="ExplanationOfBenefit.supportingInfo" />
      <sliceName value="dispense" />
      <comment value="Pointed to by item.informationSequence" />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.supportingInfo:dispense.category">
      <path value="ExplanationOfBenefit.supportingInfo.category" />
      <patternCodeableConcept>
        <coding>
          <system value="http://terminology.hl7.org/CodeSystem/claiminformationcategory" />
          <code value="info" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="ExplanationOfBenefit.supportingInfo:dispense.value[x]">
      <path value="ExplanationOfBenefit.supportingInfo.value[x]" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/profile-Reference-rest" />
        <targetProfile value="https://bpcs.exchange/fhir/StructureDefinition/profile-MedicationDispense" />
        <aggregation value="contained" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item">
      <path value="ExplanationOfBenefit.item" />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.extension">
      <path value="ExplanationOfBenefit.item.extension" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.extension:patient">
      <path value="ExplanationOfBenefit.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="ExplanationOfBenefit.item.extension:duplicateVersion">
      <path value="ExplanationOfBenefit.item.extension" />
      <sliceName value="duplicateVersion" />
      <type>
        <code value="Extension" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/ext-Claim-DuplicateVersion" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.extension:insurancePlan">
      <path value="ExplanationOfBenefit.item.extension" />
      <sliceName value="insurancePlan" />
      <min value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/ext-Resource-ReceiptPlan" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.extension:deductibleStatus">
      <path value="ExplanationOfBenefit.item.extension" />
      <sliceName value="deductibleStatus" />
      <comment value="This will only be present for Trillium pre-registration claims" />
      <type>
        <code value="Extension" />
        <profile value="https://bpcs.exchange/fhir/StructureDefinition/ext-Resource-DeductibleStatus" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.sequence">
      <path value="ExplanationOfBenefit.item.sequence" />
      <comment value="The sequence number here won't necessarily be the same as it was in the original claim" />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.informationSequence">
      <path value="ExplanationOfBenefit.item.informationSequence" />
      <comment value="This will, at minimum point to the the dispense associated with the duplicate receipt" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.productOrService">
      <path value="ExplanationOfBenefit.item.productOrService" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.productOrService.coding">
      <path value="ExplanationOfBenefit.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="ExplanationOfBenefit.item.productOrService.coding:claimDinPin">
      <path value="ExplanationOfBenefit.item.productOrService.coding" />
      <sliceName value="claimDinPin" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.productOrService.coding:claimDinPin.system">
      <path value="ExplanationOfBenefit.item.productOrService.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://bpcs.exchange/fhir/ValueSet/vs-DinPinSystem" />
      </binding>
    </element>
    <element id="ExplanationOfBenefit.item.productOrService.coding:claimDinPin.code">
      <path value="ExplanationOfBenefit.item.productOrService.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="BPCS" />
        <map value="DuplicateClaimDTO.dinPin" />
      </mapping>
    </element>
    <element id="ExplanationOfBenefit.item.productOrService.coding:claimDinPin.display">
      <path value="ExplanationOfBenefit.item.productOrService.coding.display" />
      <mustSupport value="true" />
      <mapping>
        <identity value="BPCS" />
        <map value="DuplicateClaimDTO.dinDesc" />
      </mapping>
    </element>
    <element id="ExplanationOfBenefit.item.productOrService.coding:generic">
      <path value="ExplanationOfBenefit.item.productOrService.coding" />
      <sliceName value="generic" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.productOrService.coding:generic.system">
      <path value="ExplanationOfBenefit.item.productOrService.coding.system" />
      <min value="1" />
      <patternUri value="http://terminology.hl7.org/CodeSystem/hc-CCDD" />
    </element>
    <element id="ExplanationOfBenefit.item.productOrService.coding:generic.display">
      <path value="ExplanationOfBenefit.item.productOrService.coding.display" />
      <min value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="BPCS" />
        <map value="DuplicateClaimDTO.genName" />
      </mapping>
    </element>
    <element id="ExplanationOfBenefit.item.productOrService.coding:dummyPIN">
      <path value="ExplanationOfBenefit.item.productOrService.coding" />
      <sliceName value="dummyPIN" />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.productOrService.coding:dummyPIN.system">
      <path value="ExplanationOfBenefit.item.productOrService.coding.system" />
      <min value="1" />
      <patternUri value="https://bpcs.exchange/fhir/CodeSystem/cs-DummyPIN" />
    </element>
    <element id="ExplanationOfBenefit.item.productOrService.coding:dummyPIN.display">
      <path value="ExplanationOfBenefit.item.productOrService.coding.display" />
      <min value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="BPCS" />
        <map value="DrugDTO.dummyPIN" />
      </mapping>
    </element>
    <element id="ExplanationOfBenefit.item.modifier">
      <path value="ExplanationOfBenefit.item.modifier" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://bpcs.exchange/fhir/ValueSet/vs-ClaimResponse-AllowedModifier" />
      </binding>
    </element>
    <element id="ExplanationOfBenefit.item.modifier:medicalReason">
      <path value="ExplanationOfBenefit.item.modifier" />
      <sliceName value="medicalReason" />
      <short value="Medical reason" />
      <max value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://bpcs.exchange/fhir/ValueSet/vs-MedicalReason" />
      </binding>
      <mapping>
        <identity value="BPCS" />
        <map value="DuplicateClaimDTO.medCond, ReceiptDTO.medCond" />
      </mapping>
    </element>
    <element id="ExplanationOfBenefit.item.patientPaid">
      <path value="ExplanationOfBenefit.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="Net - ReceiptDTO.prevPd (drug submitted + fee submitted - patientPaid)" />
      </mapping>
    </element>
    <element id="ExplanationOfBenefit.item.reviewOutcome">
      <path value="ExplanationOfBenefit.item.reviewOutcome" />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.reviewOutcome.decision">
      <path value="ExplanationOfBenefit.item.reviewOutcome.decision" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://bpcs.exchange/fhir/ValueSet/vs-Receipt-status" />
      </binding>
      <mapping>
        <identity value="BPCS" />
        <map value="ReceiptDTO.currStat (denied=R, paid=P, pending=H, reversed=V, acceptedReversed=C)" />
      </mapping>
    </element>
    <element id="ExplanationOfBenefit.item.adjudication">
      <path value="ExplanationOfBenefit.item.adjudication" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="category" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="ExplanationOfBenefit.item.adjudication:benefit">
      <path value="ExplanationOfBenefit.item.adjudication" />
      <sliceName value="benefit" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.adjudication:benefit.category">
      <path value="ExplanationOfBenefit.item.adjudication.category" />
      <patternCodeableConcept>
        <coding>
          <system value="http://terminology.hl7.org/CodeSystem/adjudication" />
          <code value="benefit" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="ExplanationOfBenefit.item.adjudication:benefit.amount">
      <path value="ExplanationOfBenefit.item.adjudication.amount" />
      <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="DuplicateClaimDTO.totAmtPd" />
      </mapping>
    </element>
    <element id="ExplanationOfBenefit.item.adjudication:deductible">
      <path value="ExplanationOfBenefit.item.adjudication" />
      <sliceName value="deductible" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.adjudication:deductible.category">
      <path value="ExplanationOfBenefit.item.adjudication.category" />
      <patternCodeableConcept>
        <coding>
          <system value="http://terminology.hl7.org/CodeSystem/adjudication" />
          <code value="deductible" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="ExplanationOfBenefit.item.adjudication:deductible.amount">
      <path value="ExplanationOfBenefit.item.adjudication.amount" />
      <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.deductToCollect" />
      </mapping>
    </element>
    <element id="ExplanationOfBenefit.item.detail">
      <path value="ExplanationOfBenefit.item.detail" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="productOrService" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="ExplanationOfBenefit.item.detail:drugCost">
      <path value="ExplanationOfBenefit.item.detail" />
      <sliceName value="drugCost" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.detail:drugCost.sequence">
      <path value="ExplanationOfBenefit.item.detail.sequence" />
      <comment value="A unique number within the scope of the item.  Typically '1'." />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.detail:drugCost.productOrService">
      <path value="ExplanationOfBenefit.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="ExplanationOfBenefit.item.detail:drugCost.adjudication">
      <path value="ExplanationOfBenefit.item.detail.adjudication" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="category" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="ExplanationOfBenefit.item.detail:drugCost.adjudication:submitted">
      <path value="ExplanationOfBenefit.item.detail.adjudication" />
      <sliceName value="submitted" />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.detail:drugCost.adjudication:submitted.category">
      <path value="ExplanationOfBenefit.item.detail.adjudication.category" />
      <patternCodeableConcept>
        <coding>
          <system value="http://terminology.hl7.org/CodeSystem/adjudication" />
          <code value="submitted" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="ExplanationOfBenefit.item.detail:drugCost.adjudication:submitted.amount">
      <path value="ExplanationOfBenefit.item.detail.adjudication.amount" />
      <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="DuplicateClaimDTO.inputTotal" />
      </mapping>
    </element>
    <element id="ExplanationOfBenefit.item.detail:drugCost.adjudication:eligible">
      <path value="ExplanationOfBenefit.item.detail.adjudication" />
      <sliceName value="eligible" />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.detail:drugCost.adjudication:eligible.category">
      <path value="ExplanationOfBenefit.item.detail.adjudication.category" />
      <patternCodeableConcept>
        <coding>
          <system value="http://terminology.hl7.org/CodeSystem/adjudication" />
          <code value="eligible" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="ExplanationOfBenefit.item.detail:drugCost.adjudication:eligible.amount">
      <path value="ExplanationOfBenefit.item.detail.adjudication.amount" />
      <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="DuplicateClaimDTO.outputTotal" />
      </mapping>
    </element>
    <element id="ExplanationOfBenefit.item.detail:pharmacistFee">
      <path value="ExplanationOfBenefit.item.detail" />
      <sliceName value="pharmacistFee" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.detail:pharmacistFee.sequence">
      <path value="ExplanationOfBenefit.item.detail.sequence" />
      <comment value="A unique number within the scope of the item.  Typically '2'." />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.detail:pharmacistFee.productOrService">
      <path value="ExplanationOfBenefit.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="ExplanationOfBenefit.item.detail:pharmacistFee.adjudication">
      <path value="ExplanationOfBenefit.item.detail.adjudication" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="category" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="ExplanationOfBenefit.item.detail:pharmacistFee.adjudication:submitted">
      <path value="ExplanationOfBenefit.item.detail.adjudication" />
      <sliceName value="submitted" />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.detail:pharmacistFee.adjudication:submitted.category">
      <path value="ExplanationOfBenefit.item.detail.adjudication.category" />
      <patternCodeableConcept>
        <coding>
          <system value="http://terminology.hl7.org/CodeSystem/adjudication" />
          <code value="submitted" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="ExplanationOfBenefit.item.detail:pharmacistFee.adjudication:submitted.amount">
      <path value="ExplanationOfBenefit.item.detail.adjudication.amount" />
      <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="DuplicateClaimDTO.fee" />
      </mapping>
    </element>
    <element id="ExplanationOfBenefit.item.detail:pharmacistFee.adjudication:eligible">
      <path value="ExplanationOfBenefit.item.detail.adjudication" />
      <sliceName value="eligible" />
      <mustSupport value="true" />
    </element>
    <element id="ExplanationOfBenefit.item.detail:pharmacistFee.adjudication:eligible.category">
      <path value="ExplanationOfBenefit.item.detail.adjudication.category" />
      <patternCodeableConcept>
        <coding>
          <system value="http://terminology.hl7.org/CodeSystem/adjudication" />
          <code value="eligible" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="ExplanationOfBenefit.item.detail:pharmacistFee.adjudication:eligible.amount">
      <path value="ExplanationOfBenefit.item.detail.adjudication.amount" />
      <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="DuplicateClaimDTO.alldFee" />
      </mapping>
    </element>
  </differential>
</StructureDefinition>