{
  "resourceType": "StructureDefinition",
  "id": "profile-Parameters-coverage-application",
  "url": "https://bpcs.exchange/fhir/StructureDefinition/profile-Parameters-coverage-application",
  "name": "ParametersCoverageApplicationRequest",
  "title": "Parameters Coverage Application Request Profile",
  "status": "active",
  "experimental": false,
  "description": "The parameters sent when invoking a $submitApplication 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",
        "path": "Parameters",
        "constraint": [
          {
            "key": "bpcs-ca-1",
            "severity": "error",
            "human": "Comment only allowed when Claim status is active",
            "expression": "parameter.where(name='note').exists() implies parameter.where(name='coverage').all(resource.status='active')"
          }
        ]
      },
      {
        "id": "Parameters.parameter",
        "path": "Parameters.parameter",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "name"
            }
          ],
          "rules": "closed"
        }
      },
      {
        "id": "Parameters.parameter:note",
        "path": "Parameters.parameter",
        "sliceName": "note",
        "short": "Commit note",
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Parameters.parameter:note.name",
        "path": "Parameters.parameter.name",
        "patternString": "note"
      },
      {
        "id": "Parameters.parameter:note.value[x]",
        "path": "Parameters.parameter.value[x]",
        "min": 1,
        "type": [
          {
            "code": "string"
          }
        ],
        "mustSupport": true,
        "mapping": [
          {
            "identity": "BPCS",
            "map": "ApplicationNoteDTO.note"
          }
        ]
      },
      {
        "id": "Parameters.parameter:note.resource",
        "path": "Parameters.parameter.resource",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:note.part",
        "path": "Parameters.parameter.part",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:coverage",
        "path": "Parameters.parameter",
        "sliceName": "coverage",
        "short": "Coverage for application",
        "definition": "The family-based coverage being applied for or being updated",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Parameters.parameter:coverage.name",
        "path": "Parameters.parameter.name",
        "patternString": "coverage"
      },
      {
        "id": "Parameters.parameter:coverage.value[x]",
        "path": "Parameters.parameter.value[x]",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:coverage.resource",
        "path": "Parameters.parameter.resource",
        "min": 1,
        "type": [
          {
            "code": "Coverage",
            "profile": [
              "https://bpcs.exchange/fhir/StructureDefinition/profile-Coverage-family-create"
            ]
          }
        ],
        "mustSupport": true,
        "mapping": [
          {
            "identity": "BPCS",
            "map": "ApplicationDTO, FamilyDTO"
          }
        ]
      },
      {
        "id": "Parameters.parameter:coverage.part",
        "path": "Parameters.parameter.part",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:family",
        "path": "Parameters.parameter",
        "sliceName": "family",
        "short": "Household for coverage",
        "definition": "Information about the household associated with the coverage",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Parameters.parameter:family.name",
        "path": "Parameters.parameter.name",
        "patternString": "family"
      },
      {
        "id": "Parameters.parameter:family.value[x]",
        "path": "Parameters.parameter.value[x]",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:family.resource",
        "path": "Parameters.parameter.resource",
        "min": 1,
        "type": [
          {
            "code": "Group",
            "profile": [
              "https://bpcs.exchange/fhir/StructureDefinition/profile-Group"
            ]
          }
        ],
        "mustSupport": true,
        "mapping": [
          {
            "identity": "BPCS",
            "map": "FamilyDTO"
          }
        ]
      },
      {
        "id": "Parameters.parameter:family.part",
        "path": "Parameters.parameter.part",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:request",
        "path": "Parameters.parameter",
        "sliceName": "request",
        "short": "Enrollment request",
        "definition": "Represents the submission of a request for coverage",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Parameters.parameter:request.name",
        "path": "Parameters.parameter.name",
        "patternString": "request"
      },
      {
        "id": "Parameters.parameter:request.value[x]",
        "path": "Parameters.parameter.value[x]",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:request.resource",
        "path": "Parameters.parameter.resource",
        "min": 1,
        "type": [
          {
            "code": "EnrollmentRequest",
            "profile": [
              "https://bpcs.exchange/fhir/StructureDefinition/profile-EnrollmentRequest"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Parameters.parameter:request.part",
        "path": "Parameters.parameter.part",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:delegate",
        "path": "Parameters.parameter",
        "sliceName": "delegate",
        "short": "Household for coverage",
        "definition": "Information about the household associated with the coverage",
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Parameters.parameter:delegate.name",
        "path": "Parameters.parameter.name",
        "patternString": "delegate"
      },
      {
        "id": "Parameters.parameter:delegate.value[x]",
        "path": "Parameters.parameter.value[x]",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:delegate.resource",
        "path": "Parameters.parameter.resource",
        "min": 1,
        "type": [
          {
            "code": "RelatedPerson",
            "profile": [
              "https://bpcs.exchange/fhir/StructureDefinition/profile-RelatedPerson-delegate-create"
            ]
          }
        ],
        "mustSupport": true,
        "mapping": [
          {
            "identity": "BPCS",
            "map": "ApplicationDTO.delegate"
          }
        ]
      },
      {
        "id": "Parameters.parameter:delegate.part",
        "path": "Parameters.parameter.part",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:familyMember",
        "path": "Parameters.parameter",
        "sliceName": "familyMember",
        "short": "Household for coverage",
        "definition": "Information about the household associated with the coverage",
        "comment": "The maximum number of family members varies depending on type of coverage",
        "min": 1,
        "max": "17",
        "mustSupport": true
      },
      {
        "id": "Parameters.parameter:familyMember.name",
        "path": "Parameters.parameter.name",
        "patternString": "familyMember"
      },
      {
        "id": "Parameters.parameter:familyMember.value[x]",
        "path": "Parameters.parameter.value[x]",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:familyMember.resource",
        "path": "Parameters.parameter.resource",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:familyMember.part",
        "path": "Parameters.parameter.part",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "name"
            }
          ],
          "rules": "closed"
        },
        "min": 1,
        "mapping": [
          {
            "identity": "BPCS",
            "map": "FamilyDTO.familyMember"
          }
        ]
      },
      {
        "id": "Parameters.parameter:familyMember.part:recipient",
        "path": "Parameters.parameter.part",
        "sliceName": "recipient",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Parameters.parameter:familyMember.part:recipient.name",
        "path": "Parameters.parameter.part.name",
        "patternString": "recipient"
      },
      {
        "id": "Parameters.parameter:familyMember.part:recipient.value[x]",
        "path": "Parameters.parameter.part.value[x]",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:familyMember.part:recipient.resource",
        "path": "Parameters.parameter.part.resource",
        "min": 1,
        "type": [
          {
            "code": "Patient",
            "profile": [
              "https://bpcs.exchange/fhir/StructureDefinition/profile-Patient-application"
            ]
          }
        ],
        "mustSupport": true,
        "mapping": [
          {
            "identity": "BPCS",
            "map": "FamilyMemberDTO"
          }
        ]
      },
      {
        "id": "Parameters.parameter:familyMember.part:recipient.part",
        "path": "Parameters.parameter.part.part",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:familyMember.part:memberCoverage",
        "path": "Parameters.parameter.part",
        "sliceName": "memberCoverage",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Parameters.parameter:familyMember.part:memberCoverage.name",
        "path": "Parameters.parameter.part.name",
        "patternString": "memberCoverage"
      },
      {
        "id": "Parameters.parameter:familyMember.part:memberCoverage.value[x]",
        "path": "Parameters.parameter.part.value[x]",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:familyMember.part:memberCoverage.resource",
        "path": "Parameters.parameter.part.resource",
        "min": 1,
        "type": [
          {
            "code": "Coverage",
            "profile": [
              "https://bpcs.exchange/fhir/StructureDefinition/profile-Coverage-individual-public-create"
            ]
          }
        ],
        "mustSupport": true,
        "mapping": [
          {
            "identity": "BPCS",
            "map": "FamilyMemberDTO"
          }
        ]
      },
      {
        "id": "Parameters.parameter:familyMember.part:memberCoverage.part",
        "path": "Parameters.parameter.part.part",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:familyMember.part:consent",
        "path": "Parameters.parameter.part",
        "sliceName": "consent",
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Parameters.parameter:familyMember.part:consent.name",
        "path": "Parameters.parameter.part.name",
        "patternString": "consent"
      },
      {
        "id": "Parameters.parameter:familyMember.part:consent.value[x]",
        "path": "Parameters.parameter.part.value[x]",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:familyMember.part:consent.resource",
        "path": "Parameters.parameter.part.resource",
        "min": 1,
        "type": [
          {
            "code": "Consent",
            "profile": [
              "https://bpcs.exchange/fhir/StructureDefinition/profile-Consent"
            ]
          }
        ],
        "mustSupport": true,
        "mapping": [
          {
            "identity": "BPCS",
            "map": "ConsentDTO"
          }
        ]
      },
      {
        "id": "Parameters.parameter:familyMember.part:consent.part",
        "path": "Parameters.parameter.part.part",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:familyMember.part:income",
        "path": "Parameters.parameter.part",
        "sliceName": "income",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Parameters.parameter:familyMember.part:income.name",
        "path": "Parameters.parameter.part.name",
        "patternString": "income"
      },
      {
        "id": "Parameters.parameter:familyMember.part:income.value[x]",
        "path": "Parameters.parameter.part.value[x]",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:familyMember.part:income.resource",
        "path": "Parameters.parameter.part.resource",
        "min": 1,
        "type": [
          {
            "code": "Observation",
            "profile": [
              "https://bpcs.exchange/fhir/StructureDefinition/profile-Observation-income"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Parameters.parameter:familyMember.part:income.part",
        "path": "Parameters.parameter.part.part",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:familyMember.part:privateInsurance",
        "path": "Parameters.parameter.part",
        "sliceName": "privateInsurance",
        "max": "2",
        "mustSupport": true
      },
      {
        "id": "Parameters.parameter:familyMember.part:privateInsurance.name",
        "path": "Parameters.parameter.part.name",
        "patternString": "privateInsurance"
      },
      {
        "id": "Parameters.parameter:familyMember.part:privateInsurance.value[x]",
        "path": "Parameters.parameter.part.value[x]",
        "max": "0"
      },
      {
        "id": "Parameters.parameter:familyMember.part:privateInsurance.resource",
        "path": "Parameters.parameter.part.resource",
        "min": 1,
        "type": [
          {
            "code": "Coverage",
            "profile": [
              "https://bpcs.exchange/fhir/StructureDefinition/profile-Coverage-individual-private-create"
            ]
          }
        ],
        "mustSupport": true,
        "mapping": [
          {
            "identity": "BPCS",
            "map": "InsuranceDTO"
          }
        ]
      },
      {
        "id": "Parameters.parameter:familyMember.part:privateInsurance.resource.extension",
        "path": "Parameters.parameter.part.resource.extension",
        "min": 1
      },
      {
        "id": "Parameters.parameter:familyMember.part:privateInsurance.part",
        "path": "Parameters.parameter.part.part",
        "max": "0"
      }
    ]
  }
}