{
  "resourceType": "StructureDefinition",
  "id": "profile-Parameters-reverse-receipts",
  "url": "https://bpcs.exchange/fhir/StructureDefinition/profile-Parameters-reverse-receipts",
  "name": "ParametersReceiptReverse",
  "title": "Claim Receipt Reverse Parameters Profile",
  "status": "active",
  "experimental": false,
  "description": "The parameters sent when invoking a $reverse operation.",
  "fhirVersion": "5.0.0",
  "mapping": [
    {
      "identity": "BPCS",
      "name": "Internal BPCS API"
    }
  ],
  "kind": "resource",
  "abstract": false,
  "type": "Parameters",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Parameters",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Parameters.parameter",
        "path": "Parameters.parameter",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "name"
            }
          ],
          "rules": "closed"
        }
      },
      {
        "id": "Parameters.parameter:receipt",
        "path": "Parameters.parameter",
        "sliceName": "receipt",
        "short": "Receipt to reverse",
        "definition": "Data elements to identify a receipt to be reversed, as well as the reason for reversal",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Parameters.parameter:receipt.name",
        "path": "Parameters.parameter.name",
        "patternString": "receipt"
      },
      {
        "id": "Parameters.parameter:receipt.value[x]",
        "path": "Parameters.parameter.value[x]",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:receipt.resource",
        "path": "Parameters.parameter.resource",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:receipt.part",
        "path": "Parameters.parameter.part",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "name"
            }
          ],
          "rules": "closed"
        },
        "min": 7,
        "max": "7",
        "mustSupport": true,
        "mapping": [
          {
            "identity": "BPCS",
            "map": "ReceiptDTO"
          }
        ]
      },
      {
        "id": "Parameters.parameter:receipt.part:patient",
        "path": "Parameters.parameter.part",
        "sliceName": "patient",
        "short": "Patient identifier",
        "definition": "The identifier of the patient dispensed the drug on the receipt",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Parameters.parameter:receipt.part:patient.name",
        "path": "Parameters.parameter.part.name",
        "patternString": "patient"
      },
      {
        "id": "Parameters.parameter:receipt.part:patient.value[x]",
        "path": "Parameters.parameter.part.value[x]",
        "min": 1,
        "type": [
          {
            "code": "Reference",
            "profile": [
              "https://bpcs.exchange/fhir/StructureDefinition/profile-Reference-rest"
            ],
            "targetProfile": [
              "https://bpcs.exchange/fhir/StructureDefinition/profile-Patient-create"
            ]
          }
        ],
        "mustSupport": true,
        "mapping": [
          {
            "identity": "BPCS",
            "map": "ReceiptDTO.patient"
          }
        ]
      },
      {
        "id": "Parameters.parameter:receipt.part:patient.resource",
        "path": "Parameters.parameter.part.resource",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:receipt.part:patient.part",
        "path": "Parameters.parameter.part.part",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:receipt.part:product",
        "path": "Parameters.parameter.part",
        "sliceName": "product",
        "short": "Product code",
        "definition": "The code of the dispensed drug or other pharmacy product - either a DIN or PIN - on the receipt",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Parameters.parameter:receipt.part:product.name",
        "path": "Parameters.parameter.part.name",
        "patternString": "product"
      },
      {
        "id": "Parameters.parameter:receipt.part:product.value[x]",
        "path": "Parameters.parameter.part.value[x]",
        "min": 1,
        "type": [
          {
            "code": "Coding",
            "profile": [
              "https://bpcs.exchange/fhir/StructureDefinition/profile-Coding-simple"
            ]
          }
        ],
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "https://bpcs.exchange/fhir/ValueSet/vs-DinPin"
        },
        "mapping": [
          {
            "identity": "BPCS",
            "map": "DrugDTO"
          }
        ]
      },
      {
        "id": "Parameters.parameter:receipt.part:product.value[x].system",
        "path": "Parameters.parameter.part.value[x].system",
        "comment": "Client is required to declare whether drug code is a DIN or PIN"
      },
      {
        "id": "Parameters.parameter:receipt.part:product.value[x].code",
        "path": "Parameters.parameter.part.value[x].code",
        "mapping": [
          {
            "identity": "BPCS",
            "map": "DrugDTO.dinPin"
          }
        ]
      },
      {
        "id": "Parameters.parameter:receipt.part:product.resource",
        "path": "Parameters.parameter.part.resource",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:receipt.part:product.part",
        "path": "Parameters.parameter.part.part",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:receipt.part:date",
        "path": "Parameters.parameter.part",
        "sliceName": "date",
        "short": "Dispense date",
        "definition": "The date of the dispense for this receipt",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Parameters.parameter:receipt.part:date.name",
        "path": "Parameters.parameter.part.name",
        "patternString": "date"
      },
      {
        "id": "Parameters.parameter:receipt.part:date.value[x]",
        "path": "Parameters.parameter.part.value[x]",
        "min": 1,
        "type": [
          {
            "code": "date",
            "profile": [
              "https://bpcs.exchange/fhir/StructureDefinition/profile-date-full"
            ]
          }
        ],
        "mustSupport": true,
        "mapping": [
          {
            "identity": "BPCS",
            "map": "ReceiptDTO.serviceDate"
          }
        ]
      },
      {
        "id": "Parameters.parameter:receipt.part:date.resource",
        "path": "Parameters.parameter.part.resource",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:receipt.part:date.part",
        "path": "Parameters.parameter.part.part",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:receipt.part:duplicateVersion",
        "path": "Parameters.parameter.part",
        "sliceName": "duplicateVersion",
        "short": "Duplicate Version",
        "definition": "A sequence number that increments for each time the same drug was dispensed for the patient on the same day and which acts as part of the key for the receipt",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Parameters.parameter:receipt.part:duplicateVersion.name",
        "path": "Parameters.parameter.part.name",
        "patternString": "duplicateVersion"
      },
      {
        "id": "Parameters.parameter:receipt.part:duplicateVersion.value[x]",
        "path": "Parameters.parameter.part.value[x]",
        "min": 1,
        "type": [
          {
            "code": "unsignedInt"
          }
        ],
        "mustSupport": true,
        "mapping": [
          {
            "identity": "BPCS",
            "map": "ReceiptDTO.duplicateVersionNum"
          }
        ]
      },
      {
        "id": "Parameters.parameter:receipt.part:duplicateVersion.resource",
        "path": "Parameters.parameter.part.resource",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:receipt.part:duplicateVersion.part",
        "path": "Parameters.parameter.part.part",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:receipt.part:reason",
        "path": "Parameters.parameter.part",
        "sliceName": "reason",
        "short": "Reversal reason",
        "definition": "The reason for reversing this receipt",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Parameters.parameter:receipt.part:reason.name",
        "path": "Parameters.parameter.part.name",
        "patternString": "reason"
      },
      {
        "id": "Parameters.parameter:receipt.part:reason.value[x]",
        "path": "Parameters.parameter.part.value[x]",
        "min": 1,
        "type": [
          {
            "code": "Coding",
            "profile": [
              "https://bpcs.exchange/fhir/StructureDefinition/profile-Coding-simple"
            ]
          }
        ],
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "https://bpcs.exchange/fhir/ValueSet/vs-ReceiptReverseReason"
        },
        "mapping": [
          {
            "identity": "BPCS",
            "map": "ReceiptDTO.reversedReasonCd"
          }
        ]
      },
      {
        "id": "Parameters.parameter:receipt.part:reason.resource",
        "path": "Parameters.parameter.part.resource",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:receipt.part:reason.part",
        "path": "Parameters.parameter.part.part",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:receipt.part:coverage",
        "path": "Parameters.parameter.part",
        "sliceName": "coverage",
        "short": "Receipte Coverage Id",
        "definition": "The id for the coverage this receipt was adjudicated against",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Parameters.parameter:receipt.part:coverage.name",
        "path": "Parameters.parameter.part.name",
        "patternString": "coverage"
      },
      {
        "id": "Parameters.parameter:receipt.part:coverage.value[x]",
        "path": "Parameters.parameter.part.value[x]",
        "min": 1,
        "type": [
          {
            "code": "Reference",
            "profile": [
              "https://bpcs.exchange/fhir/StructureDefinition/profile-Reference-rest"
            ],
            "targetProfile": [
              "https://bpcs.exchange/fhir/StructureDefinition/profile-Coverage-individual-public"
            ]
          }
        ],
        "mustSupport": true,
        "mapping": [
          {
            "identity": "BPCS",
            "map": "ReceiptDTO.coverage"
          }
        ]
      },
      {
        "id": "Parameters.parameter:receipt.part:coverage.resource",
        "path": "Parameters.parameter.part.resource",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:receipt.part:coverage.part",
        "path": "Parameters.parameter.part.part",
        "max": "0"
      }
    ]
  }
}