ShEx statement for explanationofbenefit
PREFIX fhir: <http://hl7.org/fhir/>
PREFIX fhirvs: <http://hl7.org/fhir/ValueSet/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
BASE <http://hl7.org/fhir/shape/>
start=@<ExplanationOfBenefit> AND {fhir:nodeRole [fhir:treeRoot]}
# Explanation of Benefit resource
<ExplanationOfBenefit> CLOSED {
a [fhir:ExplanationOfBenefit];
fhir:nodeRole [fhir:treeRoot]?;
fhir:Resource.id @<id>?; # Logical id of this artifact
fhir:Resource.meta @<Meta>?; # Metadata about the resource
fhir:Resource.implicitRules @<uri>?; # A set of rules under which this
# content was created
fhir:Resource.language @<code>?; # Language of the resource content
fhir:DomainResource.text @<Narrative>?; # Text summary of the resource, for
# human interpretation
fhir:DomainResource.contained @<Resource>*; # Contained, inline Resources
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:modifierExtension @<Extension>*; # Extensions that cannot be ignored
fhir:ExplanationOfBenefit.identifier @<Identifier>*; # Business Identifier
fhir:ExplanationOfBenefit.status @<code> AND
{fhir:value @fhirvs:explanationofbenefit-status}?; # active | cancelled | draft |
# entered-in-error
fhir:ExplanationOfBenefit.type @<CodeableConcept> AND
{fhir:value @fhirvs:claim-type}?; # Type or discipline
fhir:ExplanationOfBenefit.subType @<CodeableConcept>*; # Finer grained claim type
# information
fhir:ExplanationOfBenefit.patient @<Reference>?; # The subject of the Products and
# Services
fhir:ExplanationOfBenefit.billablePeriod @<Period>?; # Period for charge submission
fhir:ExplanationOfBenefit.created @<dateTime>?; # Creation date
fhir:ExplanationOfBenefit.enterer @<Reference>?; # Author
fhir:ExplanationOfBenefit.insurer @<Reference>?; # Insurer
fhir:ExplanationOfBenefit.provider @<Reference>?; # Responsible provider for the claim
fhir:ExplanationOfBenefit.organization @<Reference>?; # Responsible organization for the
# claim
fhir:ExplanationOfBenefit.referral @<Reference>?; # Treatment Referral
fhir:ExplanationOfBenefit.facility @<Reference>?; # Servicing Facility
fhir:ExplanationOfBenefit.claim @<Reference>?; # Claim reference
fhir:ExplanationOfBenefit.claimResponse @<Reference>?; # Claim response reference
fhir:ExplanationOfBenefit.outcome @<CodeableConcept>?; # complete | error | partial
fhir:ExplanationOfBenefit.disposition @<string>?; # Disposition Message
fhir:ExplanationOfBenefit.related @<ExplanationOfBenefit.related>*; # Related Claims which may be
# revelant to processing this claim
fhir:ExplanationOfBenefit.prescription # Prescription
( @<MedicationRequestReference> OR
@<VisionPrescriptionReference>
)?;
fhir:ExplanationOfBenefit.originalPrescription @<Reference>?; # Original Prescription
fhir:ExplanationOfBenefit.payee @<ExplanationOfBenefit.payee>?; # Payee
fhir:ExplanationOfBenefit.information @<ExplanationOfBenefit.information>*; # Exceptions, special
# considerations, the condition,
# situation, prior or concurrent
# issues
fhir:ExplanationOfBenefit.careTeam @<ExplanationOfBenefit.careTeam>*; # Care Team members
fhir:ExplanationOfBenefit.diagnosis @<ExplanationOfBenefit.diagnosis>*; # Diagnosis
fhir:ExplanationOfBenefit.procedure @<ExplanationOfBenefit.procedure>*; # Procedures performed
fhir:ExplanationOfBenefit.precedence @<positiveInt>?; # Precedence (primary, secondary,
# etc.)
fhir:ExplanationOfBenefit.insurance @<ExplanationOfBenefit.insurance>?; # Insurance or medical plan
fhir:ExplanationOfBenefit.accident @<ExplanationOfBenefit.accident>?; # Details of an accident
fhir:ExplanationOfBenefit.employmentImpacted @<Period>?; # Period unable to work
fhir:ExplanationOfBenefit.hospitalization @<Period>?; # Period in hospital
fhir:ExplanationOfBenefit.item @<ExplanationOfBenefit.item>*; # Goods and Services
fhir:ExplanationOfBenefit.addItem @<ExplanationOfBenefit.addItem>*; # Insurer added line items
fhir:ExplanationOfBenefit.totalCost @<Money>?; # Total Cost of service from the
# Claim
fhir:ExplanationOfBenefit.unallocDeductable @<Money>?; # Unallocated deductable
fhir:ExplanationOfBenefit.totalBenefit @<Money>?; # Total benefit payable for the Claim
fhir:ExplanationOfBenefit.payment @<ExplanationOfBenefit.payment>?; # Payment (if paid)
fhir:ExplanationOfBenefit.form @<CodeableConcept> AND
{fhir:value @fhirvs:forms}?; # Printed Form Identifier
fhir:ExplanationOfBenefit.note @<ExplanationOfBenefit.note>*; # Processing notes
fhir:ExplanationOfBenefit.benefitBalance @<ExplanationOfBenefit.benefitBalance>*; # Balance by Benefit Category
fhir:index xsd:integer? # Relative position in a list
}
# Exceptions, special considerations, the condition, situation, prior or concurrent issues
<ExplanationOfBenefit.information> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:modifierExtension @<Extension>*; # Extensions that cannot be ignored
fhir:ExplanationOfBenefit.information.category @<CodeableConcept>; # Category of information
fhir:ExplanationOfBenefit.information.code @<CodeableConcept>?; # Type of information
( # When it occurred
fhir:ExplanationOfBenefit.information.timingDate @<date> |
fhir:ExplanationOfBenefit.information.timingPeriod @<Period>
)?;
( # Additional Data or supporting
# information
fhir:ExplanationOfBenefit.information.valueString @<string> |
fhir:ExplanationOfBenefit.information.valueQuantity @<Quantity> |
fhir:ExplanationOfBenefit.information.valueAttachment @<Attachment> |
fhir:ExplanationOfBenefit.information.valueReference @<Reference>
)?;
fhir:ExplanationOfBenefit.information.reason @<Coding>?; # Reason associated with the
# information
fhir:index xsd:integer? # Relative position in a list
}
# Related Claims which may be revelant to processing this claim
<ExplanationOfBenefit.related> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:modifierExtension @<Extension>*; # Extensions that cannot be ignored
fhir:ExplanationOfBenefit.related.claim @<Reference>?; # Reference to the related claim
fhir:ExplanationOfBenefit.related.relationship @<CodeableConcept>?; # How the reference claim is related
fhir:ExplanationOfBenefit.related.reference @<Identifier>?; # Related file or case reference
fhir:index xsd:integer? # Relative position in a list
}
# Payee
<ExplanationOfBenefit.payee> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:modifierExtension @<Extension>*; # Extensions that cannot be ignored
fhir:ExplanationOfBenefit.payee.type @<CodeableConcept>?; # Type of party: Subscriber,
# Provider, other
fhir:ExplanationOfBenefit.payee.resourceType @<CodeableConcept> AND
{fhir:value @fhirvs:resource-type-link}?; # organization | patient |
# practitioner | relatedperson
( # Party to receive the payable
fhir:ExplanationOfBenefit.payee.partyIdentifier @<Identifier> |
fhir:ExplanationOfBenefit.payee.partyReference @<Reference> |
fhir:ExplanationOfBenefit.payee.partyReference @<Reference> |
fhir:ExplanationOfBenefit.payee.partyReference @<Reference> |
fhir:ExplanationOfBenefit.payee.partyReference @<Reference>
)?;
fhir:index xsd:integer? # Relative position in a list
}
# Details of an accident
<ExplanationOfBenefit.accident> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:modifierExtension @<Extension>*; # Extensions that cannot be ignored
fhir:ExplanationOfBenefit.accident.date @<date>?; # When the accident occurred
fhir:ExplanationOfBenefit.accident.type @<CodeableConcept> AND
{fhir:value @fhirvs:v3-ActIncidentCode}?; # The nature of the accident
( # Accident Place
fhir:ExplanationOfBenefit.accident.locationAddress @<Address> |
fhir:ExplanationOfBenefit.accident.locationReference @<Reference>
)?;
fhir:index xsd:integer? # Relative position in a list
}
# Procedures performed
<ExplanationOfBenefit.procedure> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:modifierExtension @<Extension>*; # Extensions that cannot be ignored
fhir:ExplanationOfBenefit.procedure.sequence @<positiveInt>; # Procedure sequence for reference
fhir:ExplanationOfBenefit.procedure.date @<dateTime>?; # When the procedure was performed
( # Patient's list of procedures
# performed
fhir:ExplanationOfBenefit.procedure.procedureCodeableConcept @<CodeableConcept> |
fhir:ExplanationOfBenefit.procedure.procedureReference @<Reference>
);
fhir:index xsd:integer? # Relative position in a list
}
# Insurance or medical plan
<ExplanationOfBenefit.insurance> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:modifierExtension @<Extension>*; # Extensions that cannot be ignored
fhir:ExplanationOfBenefit.insurance.coverage @<Reference>?; # Insurance information
fhir:ExplanationOfBenefit.insurance.preAuthRef @<string>*; # Pre-Authorization/Determination
# Reference
fhir:index xsd:integer? # Relative position in a list
}
# Diagnosis
<ExplanationOfBenefit.diagnosis> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:modifierExtension @<Extension>*; # Extensions that cannot be ignored
fhir:ExplanationOfBenefit.diagnosis.sequence @<positiveInt>; # Number to covey order of diagnosis
( # Patient's list of diagnosis
fhir:ExplanationOfBenefit.diagnosis.diagnosisCodeableConcept @<CodeableConcept> |
fhir:ExplanationOfBenefit.diagnosis.diagnosisReference @<Reference>
);
fhir:ExplanationOfBenefit.diagnosis.type @<CodeableConcept>*; # Type of Diagnosis
fhir:ExplanationOfBenefit.diagnosis.packageCode @<CodeableConcept>?; # Package billing code
fhir:index xsd:integer? # Relative position in a list
}
# Processing notes
<ExplanationOfBenefit.note> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:modifierExtension @<Extension>*; # Extensions that cannot be ignored
fhir:ExplanationOfBenefit.note.number @<positiveInt>?; # Note Number for this note
fhir:ExplanationOfBenefit.note.type @<CodeableConcept> AND
{fhir:value @fhirvs:note-type}?; # display | print | printoper
fhir:ExplanationOfBenefit.note.text @<string>?; # Note explanitory text
fhir:ExplanationOfBenefit.note.language @<CodeableConcept>?; # Language
fhir:index xsd:integer? # Relative position in a list
}
# Insurer added line items
<ExplanationOfBenefit.addItem> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:modifierExtension @<Extension>*; # Extensions that cannot be ignored
fhir:ExplanationOfBenefit.addItem.sequenceLinkId @<positiveInt>*; # Service instances
fhir:ExplanationOfBenefit.addItem.revenue @<CodeableConcept>?; # Revenue or cost center code
fhir:ExplanationOfBenefit.addItem.category @<CodeableConcept>?; # Type of service or product
fhir:ExplanationOfBenefit.addItem.service @<CodeableConcept>?; # Billing Code
fhir:ExplanationOfBenefit.addItem.modifier @<CodeableConcept>*; # Service/Product billing modifiers
fhir:ExplanationOfBenefit.addItem.fee @<Money>?; # Professional fee or Product charge
fhir:ExplanationOfBenefit.addItem.noteNumber @<positiveInt>*; # List of note numbers which apply
fhir:ExplanationOfBenefit.addItem.adjudication @<ExplanationOfBenefit.item.adjudication>*; # Added items adjudication
fhir:ExplanationOfBenefit.addItem.detail @<ExplanationOfBenefit.addItem.detail>*; # Added items details
fhir:index xsd:integer? # Relative position in a list
}
# Goods and Services
<ExplanationOfBenefit.item> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:modifierExtension @<Extension>*; # Extensions that cannot be ignored
fhir:ExplanationOfBenefit.item.sequence @<positiveInt>; # Service instance
fhir:ExplanationOfBenefit.item.careTeamLinkId @<positiveInt>*; # Applicable careteam members
fhir:ExplanationOfBenefit.item.diagnosisLinkId @<positiveInt>*; # Applicable diagnoses
fhir:ExplanationOfBenefit.item.procedureLinkId @<positiveInt>*; # Applicable procedures
fhir:ExplanationOfBenefit.item.informationLinkId @<positiveInt>*; # Applicable exception and
# supporting information
fhir:ExplanationOfBenefit.item.revenue @<CodeableConcept>?; # Revenue or cost center code
fhir:ExplanationOfBenefit.item.category @<CodeableConcept>?; # Type of service or product
fhir:ExplanationOfBenefit.item.service @<CodeableConcept>?; # Billing Code
fhir:ExplanationOfBenefit.item.modifier @<CodeableConcept>*; # Service/Product billing modifiers
fhir:ExplanationOfBenefit.item.programCode @<CodeableConcept>*; # Program specific reason for item
# inclusion
( # Date or dates of Service
fhir:ExplanationOfBenefit.item.servicedDate @<date> |
fhir:ExplanationOfBenefit.item.servicedPeriod @<Period>
)?;
( # Place of service
fhir:ExplanationOfBenefit.item.locationCodeableConcept @<CodeableConcept> |
fhir:ExplanationOfBenefit.item.locationAddress @<Address> |
fhir:ExplanationOfBenefit.item.locationReference @<Reference>
)?;
fhir:ExplanationOfBenefit.item.quantity @<SimpleQuantity>?; # Count of Products or Services
fhir:ExplanationOfBenefit.item.unitPrice @<Money>?; # Fee, charge or cost per point
fhir:ExplanationOfBenefit.item.factor @<decimal>?; # Price scaling factor
fhir:ExplanationOfBenefit.item.net @<Money>?; # Total item cost
fhir:ExplanationOfBenefit.item.udi @<Reference>*; # Unique Device Identifier
fhir:ExplanationOfBenefit.item.bodySite @<CodeableConcept>?; # Service Location
fhir:ExplanationOfBenefit.item.subSite @<CodeableConcept>*; # Service Sub-location
fhir:ExplanationOfBenefit.item.noteNumber @<positiveInt>*; # List of note numbers which apply
fhir:ExplanationOfBenefit.item.adjudication @<ExplanationOfBenefit.item.adjudication>*; # Adjudication details
fhir:ExplanationOfBenefit.item.detail @<ExplanationOfBenefit.item.detail>*; # Additional items
fhir:ExplanationOfBenefit.item.prosthesis @<ExplanationOfBenefit.item.prosthesis>?; # Prosthetic details
fhir:index xsd:integer? # Relative position in a list
}
# Payment (if paid)
<ExplanationOfBenefit.payment> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:modifierExtension @<Extension>*; # Extensions that cannot be ignored
fhir:ExplanationOfBenefit.payment.type @<CodeableConcept>?; # Partial or Complete
fhir:ExplanationOfBenefit.payment.adjustment @<Money>?; # Payment adjustment for non-Claim
# issues
fhir:ExplanationOfBenefit.payment.adjustmentReason @<CodeableConcept>?; # Reason for Payment adjustment
fhir:ExplanationOfBenefit.payment.date @<date>?; # Expected date of Payment
fhir:ExplanationOfBenefit.payment.amount @<Money>?; # Payment amount
fhir:ExplanationOfBenefit.payment.identifier @<Identifier>?; # Payment identifier
fhir:index xsd:integer? # Relative position in a list
}
# Balance by Benefit Category
<ExplanationOfBenefit.benefitBalance> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:modifierExtension @<Extension>*; # Extensions that cannot be ignored
fhir:ExplanationOfBenefit.benefitBalance.category @<CodeableConcept>; # Benefit Category
fhir:ExplanationOfBenefit.benefitBalance.subCategory @<CodeableConcept>?; # Benefit SubCategory
fhir:ExplanationOfBenefit.benefitBalance.excluded @<boolean>?; # Excluded from the plan
fhir:ExplanationOfBenefit.benefitBalance.name @<string>?; # Short name for the benefit
fhir:ExplanationOfBenefit.benefitBalance.description @<string>?; # Description of the benefit
fhir:ExplanationOfBenefit.benefitBalance.network @<CodeableConcept>?; # In or out of network
fhir:ExplanationOfBenefit.benefitBalance.unit @<CodeableConcept>?; # Individual or family
fhir:ExplanationOfBenefit.benefitBalance.term @<CodeableConcept>?; # Annual or lifetime
fhir:ExplanationOfBenefit.benefitBalance.financial @<ExplanationOfBenefit.benefitBalance.financial>*; # Benefit Summary
fhir:index xsd:integer? # Relative position in a list
}
# Care Team members
<ExplanationOfBenefit.careTeam> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:modifierExtension @<Extension>*; # Extensions that cannot be ignored
fhir:ExplanationOfBenefit.careTeam.sequence @<positiveInt>; # Number to covey order of careteam
fhir:ExplanationOfBenefit.careTeam.provider # Member of the Care Team
( @<PractitionerReference> OR
@<OrganizationReference>
);
fhir:ExplanationOfBenefit.careTeam.responsible @<boolean>?; # Billing practitioner
fhir:ExplanationOfBenefit.careTeam.role @<CodeableConcept>?; # Role on the team
fhir:ExplanationOfBenefit.careTeam.qualification @<CodeableConcept>?; # Type, classification or
# Specialization
fhir:index xsd:integer? # Relative position in a list
}
# Added items details
<ExplanationOfBenefit.addItem.detail> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:modifierExtension @<Extension>*; # Extensions that cannot be ignored
fhir:ExplanationOfBenefit.addItem.detail.revenue @<CodeableConcept>?; # Revenue or cost center code
fhir:ExplanationOfBenefit.addItem.detail.category @<CodeableConcept>?; # Type of service or product
fhir:ExplanationOfBenefit.addItem.detail.service @<CodeableConcept>?; # Billing Code
fhir:ExplanationOfBenefit.addItem.detail.modifier @<CodeableConcept>*; # Service/Product billing modifiers
fhir:ExplanationOfBenefit.addItem.detail.fee @<Money>?; # Professional fee or Product charge
fhir:ExplanationOfBenefit.addItem.detail.noteNumber @<positiveInt>*; # List of note numbers which apply
fhir:ExplanationOfBenefit.addItem.detail.adjudication @<ExplanationOfBenefit.item.adjudication>*; # Added items detail adjudication
fhir:index xsd:integer? # Relative position in a list
}
# Adjudication details
<ExplanationOfBenefit.item.adjudication> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:modifierExtension @<Extension>*; # Extensions that cannot be ignored
fhir:ExplanationOfBenefit.item.adjudication.category @<CodeableConcept>; # Adjudication category such as
# co-pay, eligible, benefit, etc.
fhir:ExplanationOfBenefit.item.adjudication.reason @<CodeableConcept>?; # Adjudication reason
fhir:ExplanationOfBenefit.item.adjudication.amount @<Money>?; # Monetary amount
fhir:ExplanationOfBenefit.item.adjudication.value @<decimal>?; # Non-monitory value
fhir:index xsd:integer? # Relative position in a list
}
# Additional items
<ExplanationOfBenefit.item.detail> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:modifierExtension @<Extension>*; # Extensions that cannot be ignored
fhir:ExplanationOfBenefit.item.detail.sequence @<positiveInt>; # Service instance
fhir:ExplanationOfBenefit.item.detail.type @<CodeableConcept> AND
{fhir:value @fhirvs:v3-ActInvoiceGroupCode}; # Group or type of product or service
fhir:ExplanationOfBenefit.item.detail.revenue @<CodeableConcept>?; # Revenue or cost center code
fhir:ExplanationOfBenefit.item.detail.category @<CodeableConcept>?; # Type of service or product
fhir:ExplanationOfBenefit.item.detail.service @<CodeableConcept>?; # Billing Code
fhir:ExplanationOfBenefit.item.detail.modifier @<CodeableConcept>*; # Service/Product billing modifiers
fhir:ExplanationOfBenefit.item.detail.programCode @<CodeableConcept>*; # Program specific reason for item
# inclusion
fhir:ExplanationOfBenefit.item.detail.quantity @<SimpleQuantity>?; # Count of Products or Services
fhir:ExplanationOfBenefit.item.detail.unitPrice @<Money>?; # Fee, charge or cost per point
fhir:ExplanationOfBenefit.item.detail.factor @<decimal>?; # Price scaling factor
fhir:ExplanationOfBenefit.item.detail.net @<Money>?; # Total additional item cost
fhir:ExplanationOfBenefit.item.detail.udi @<Reference>*; # Unique Device Identifier
fhir:ExplanationOfBenefit.item.detail.noteNumber @<positiveInt>*; # List of note numbers which apply
fhir:ExplanationOfBenefit.item.detail.adjudication @<ExplanationOfBenefit.item.adjudication>*; # Detail adjudication
fhir:ExplanationOfBenefit.item.detail.subDetail @<ExplanationOfBenefit.item.detail.subDetail>*; # Additional items
fhir:index xsd:integer? # Relative position in a list
}
# Benefit Summary
<ExplanationOfBenefit.benefitBalance.financial> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:modifierExtension @<Extension>*; # Extensions that cannot be ignored
fhir:ExplanationOfBenefit.benefitBalance.financial.type @<CodeableConcept>; # Deductable, visits, benefit amount
( # Benefits allowed
fhir:ExplanationOfBenefit.benefitBalance.financial.benefitUnsignedInt @<unsignedInt> |
fhir:ExplanationOfBenefit.benefitBalance.financial.benefitString @<string> |
fhir:ExplanationOfBenefit.benefitBalance.financial.benefitMoney @<Money>
)?;
( # Benefits used
fhir:ExplanationOfBenefit.benefitBalance.financial.benefitUsedUnsignedInt @<unsignedInt> |
fhir:ExplanationOfBenefit.benefitBalance.financial.benefitUsedMoney @<Money>
)?;
fhir:index xsd:integer? # Relative position in a list
}
# Prosthetic details
<ExplanationOfBenefit.item.prosthesis> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:modifierExtension @<Extension>*; # Extensions that cannot be ignored
fhir:ExplanationOfBenefit.item.prosthesis.initial @<boolean>?; # Is this the initial service
fhir:ExplanationOfBenefit.item.prosthesis.priorDate @<date>?; # Initial service Date
fhir:ExplanationOfBenefit.item.prosthesis.priorMaterial @<CodeableConcept>?; # Prosthetic Material
fhir:index xsd:integer? # Relative position in a list
}
# Additional items
<ExplanationOfBenefit.item.detail.subDetail> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:modifierExtension @<Extension>*; # Extensions that cannot be ignored
fhir:ExplanationOfBenefit.item.detail.subDetail.sequence @<positiveInt>; # Service instance
fhir:ExplanationOfBenefit.item.detail.subDetail.type @<CodeableConcept> AND
{fhir:value @fhirvs:v3-ActInvoiceGroupCode}; # Type of product or service
fhir:ExplanationOfBenefit.item.detail.subDetail.revenue @<CodeableConcept>?; # Revenue or cost center code
fhir:ExplanationOfBenefit.item.detail.subDetail.category @<CodeableConcept>?; # Type of service or product
fhir:ExplanationOfBenefit.item.detail.subDetail.service @<CodeableConcept>?; # Billing Code
fhir:ExplanationOfBenefit.item.detail.subDetail.modifier @<CodeableConcept>*; # Service/Product billing modifiers
fhir:ExplanationOfBenefit.item.detail.subDetail.programCode @<CodeableConcept>*; # Program specific reason for item
# inclusion
fhir:ExplanationOfBenefit.item.detail.subDetail.quantity @<SimpleQuantity>?; # Count of Products or Services
fhir:ExplanationOfBenefit.item.detail.subDetail.unitPrice @<Money>?; # Fee, charge or cost per point
fhir:ExplanationOfBenefit.item.detail.subDetail.factor @<decimal>?; # Price scaling factor
fhir:ExplanationOfBenefit.item.detail.subDetail.net @<Money>?; # Net additional item cost
fhir:ExplanationOfBenefit.item.detail.subDetail.udi @<Reference>*; # Unique Device Identifier
fhir:ExplanationOfBenefit.item.detail.subDetail.noteNumber @<positiveInt>*; # List of note numbers which apply
fhir:ExplanationOfBenefit.item.detail.subDetail.adjudication @<ExplanationOfBenefit.item.adjudication>*; # SubDetail adjudication
fhir:index xsd:integer? # Relative position in a list
}
#---------------------- Data Types -------------------
# Primitive Type dateTime
<dateTime> CLOSED {
fhir:Element.id @<id>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:value xsd:gYear OR xsd:gYearMonth OR xsd:date OR xsd:dateTime?; # Primitive value for dateTime
fhir:index xsd:integer? # Relative position in a list
}
# Primitive Type date
<date> CLOSED {
fhir:Element.id @<id>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:value xsd:gYear OR xsd:gYearMonth OR xsd:date?; # Primitive value for date
fhir:index xsd:integer? # Relative position in a list
}
# Metadata about a resource
<Meta> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:Meta.versionId @<id>?; # Version specific identifier
fhir:Meta.lastUpdated @<instant>?; # When the resource version last
# changed
fhir:Meta.profile @<uri>*; # Profiles this resource claims to
# conform to
fhir:Meta.security @<Coding>*; # Security Labels applied to this
# resource
fhir:Meta.tag @<Coding>*; # Tags applied to this resource
fhir:index xsd:integer? # Relative position in a list
}
# Primitive Type code
<code> CLOSED {
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:value xsd:string?; # Primitive value for code
fhir:index xsd:integer? # Relative position in a list
}
# Primitive Type string
<string> CLOSED {
fhir:Element.id @<id>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:value xsd:string MAXLENGTH 1048576?; # Primitive value for string
fhir:index xsd:integer? # Relative position in a list
}
# An address expressed using postal conventions (as opposed to GPS or other location definition formats)
<Address> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:Address.use @<code> AND
{fhir:value @fhirvs:address-use}?; # home | work | temp | old - purpose
# of this address
fhir:Address.type @<code> AND
{fhir:value @fhirvs:address-type}?; # postal | physical | both
fhir:Address.text @<string>?; # Text representation of the address
fhir:Address.line @<string>*; # Street name, number, direction &
# P.O. Box etc.
fhir:Address.city @<string>?; # Name of city, town etc.
fhir:Address.district @<string>?; # District name (aka county)
fhir:Address.state @<string>?; # Sub-unit of country (abbreviations
# ok)
fhir:Address.postalCode @<string>?; # Postal code for area
fhir:Address.country @<string>?; # Country (e.g. can be ISO 3166 2 or
# 3 letter code)
fhir:Address.period @<Period>?; # Time period when address was/is in
# use
fhir:index xsd:integer? # Relative position in a list
}
# Content in a format defined elsewhere
<Attachment> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:Attachment.contentType @<code>?; # Mime type of the content, with
# charset etc.
fhir:Attachment.language @<code>?; # Human language of the content
# (BCP-47)
fhir:Attachment.data @<base64Binary>?; # Data inline, base64ed
fhir:Attachment.url @<uri>?; # Uri where the data can be found
fhir:Attachment.size @<unsignedInt>?; # Number of bytes of content (if url
# provided)
fhir:Attachment.hash @<base64Binary>?; # Hash of the data (sha-1, base64ed)
fhir:Attachment.title @<string>?; # Label to display in place of the
# data
fhir:Attachment.creation @<dateTime>?; # Date attachment was first created
fhir:index xsd:integer? # Relative position in a list
}
# An amount of economic utility in some recognised currency
<Money> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:Quantity.value @<decimal>?; # Numerical value (with implicit
# precision)
fhir:Quantity.comparator @<code> AND
{fhir:value @fhirvs:quantity-comparator}?; # < | <= | >= | > - how to
# understand the value
fhir:Quantity.unit @<string>?; # Unit representation
fhir:Quantity.system @<uri>?; # System that defines coded unit form
fhir:Quantity.code @<code>?; # Coded form of the unit
fhir:index xsd:integer? # Relative position in a list
}
# An identifier intended for computation
<Identifier> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:Identifier.use @<code> AND
{fhir:value @fhirvs:identifier-use}?; # usual | official | temp |
# secondary (If known)
fhir:Identifier.type @<CodeableConcept>?; # Description of identifier
fhir:Identifier.system @<uri>?; # The namespace for the identifier
fhir:Identifier.value @<string>?; # The value that is unique
fhir:Identifier.period @<Period>?; # Time period when id is/was valid
# for use
fhir:Identifier.assigner @<Reference>?; # Organization that issued id (may
# be just text)
fhir:index xsd:integer? # Relative position in a list
}
# A human-readable formatted text, including images
<Narrative> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:Narrative.status @<code> AND
{fhir:value @fhirvs:narrative-status}; # generated | extensions |
# additional | empty
fhir:Narrative.div xsd:string; # Limited xhtml content
fhir:index xsd:integer? # Relative position in a list
}
# A reference to a code defined by a terminology system
<Coding> CLOSED {
fhir:concept IRI?;
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:Coding.system @<uri>?; # Identity of the terminology system
fhir:Coding.version @<string>?; # Version of the system - if relevant
fhir:Coding.code @<code>?; # Symbol in syntax defined by the
# system
fhir:Coding.display @<string>?; # Representation defined by the
# system
fhir:Coding.userSelected @<boolean>?; # If this coding was chosen directly
# by the user
fhir:index xsd:integer? # Relative position in a list
}
# Primitive Type id
<id> CLOSED {
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:value xsd:string?; # Primitive value for id
fhir:index xsd:integer? # Relative position in a list
}
# Primitive Type positiveInt
<positiveInt> CLOSED {
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:value xsd:positiveInteger?; # Primitive value for positiveInt
fhir:index xsd:integer? # Relative position in a list
}
# A reference from one resource to another
<Reference> CLOSED {
fhir:link IRI?;
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:Reference.reference @<string>?; # Literal reference, Relative,
# internal or absolute URL
fhir:Reference.identifier @<Identifier>?; # Logical reference, when literal
# reference is not known
fhir:Reference.display @<string>?; # Text alternative for the resource
fhir:index xsd:integer? # Relative position in a list
}
# Base Resource
<Resource> {a .+;
fhir:Resource.id @<id>?; # Logical id of this artifact
fhir:Resource.meta @<Meta>?; # Metadata about the resource
fhir:Resource.implicitRules @<uri>?; # A set of rules under which this
# content was created
fhir:Resource.language @<code>?; # Language of the resource content
fhir:index xsd:integer?
}
# A fixed quantity (no comparator)
<SimpleQuantity> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:Quantity.value @<decimal>?; # Numerical value (with implicit
# precision)
fhir:Quantity.unit @<string>?; # Unit representation
fhir:Quantity.system @<uri>?; # System that defines coded unit form
fhir:Quantity.code @<code>?; # Coded form of the unit
fhir:index xsd:integer? # Relative position in a list
}
# Time range defined by start and end date/time
<Period> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:Period.start @<dateTime>?; # Starting time with inclusive
# boundary
fhir:Period.end @<dateTime>?; # End time with inclusive boundary,
# if not ongoing
fhir:index xsd:integer? # Relative position in a list
}
# A measured or measurable amount
<Quantity> CLOSED {
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:Quantity.value @<decimal>?; # Numerical value (with implicit
# precision)
fhir:Quantity.comparator @<code> AND
{fhir:value @fhirvs:quantity-comparator}?; # < | <= | >= | > - how to
# understand the value
fhir:Quantity.unit @<string>?; # Unit representation
fhir:Quantity.system @<uri>?; # System that defines coded unit form
fhir:Quantity.code @<code>?; # Coded form of the unit
fhir:index xsd:integer? # Relative position in a list
}
# Primitive Type uri
<uri> CLOSED {
fhir:Element.id @<id>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:value xsd:string?; # Primitive value for uri
fhir:index xsd:integer? # Relative position in a list
}
<Extension> {fhir:extension @<Extension>*;
fhir:index xsd:integer?
}
# Primitive Type boolean
<boolean> CLOSED {
fhir:Element.id @<id>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:value xsd:boolean?; # Primitive value for boolean
fhir:index xsd:integer? # Relative position in a list
}
# Primitive Type unsignedInt
<unsignedInt> CLOSED {
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:value xsd:nonNegativeInteger?; # Primitive value for unsignedInt
fhir:index xsd:integer? # Relative position in a list
}
# Primitive Type decimal
<decimal> CLOSED {
fhir:Element.id @<id>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:value xsd:decimal?; # Primitive value for decimal
fhir:index xsd:integer? # Relative position in a list
}
# Concept - reference to a terminology or just text
<CodeableConcept> CLOSED {
fhir:concept IRI*;
fhir:Element.id @<string>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:CodeableConcept.coding @<Coding>*; # Code defined by a terminology
# system
fhir:CodeableConcept.text @<string>?; # Plain text representation of the
# concept
fhir:index xsd:integer? # Relative position in a list
}
# Primitive Type instant
<instant> CLOSED {
fhir:Element.id @<id>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:value xsd:dateTime?; # Primitive value for instant
fhir:index xsd:integer? # Relative position in a list
}
# Primitive Type base64Binary
<base64Binary> CLOSED {
fhir:Element.id @<id>?; # xml:id (or equivalent in JSON)
fhir:extension @<Extension>*; # Additional Content defined by
# implementations
fhir:value xsd:base64Binary?; # Primitive value for base64Binary
fhir:index xsd:integer? # Relative position in a list
}
#---------------------- Reference Types -------------------
<PractitionerReference> CLOSED {
fhir:Element.id @<id>?;
fhir:extension @<Extension>*;
fhir:link @<Practitioner> OR CLOSED {a fhir:Practitioner}?;
fhir:Reference.reference @<string>?;
fhir:Reference.display @<string>?;
fhir:index xsd:integer?
}
<Practitioner> {
a [fhir:Practitioner];
fhir:nodeRole [fhir:treeRoot]?
}
<MedicationRequestReference> CLOSED {
fhir:Element.id @<id>?;
fhir:extension @<Extension>*;
fhir:link @<MedicationRequest> OR CLOSED {a fhir:MedicationRequest}?;
fhir:Reference.reference @<string>?;
fhir:Reference.display @<string>?;
fhir:index xsd:integer?
}
<MedicationRequest> {
a [fhir:MedicationRequest];
fhir:nodeRole [fhir:treeRoot]?
}
<OrganizationReference> CLOSED {
fhir:Element.id @<id>?;
fhir:extension @<Extension>*;
fhir:link @<Organization> OR CLOSED {a fhir:Organization}?;
fhir:Reference.reference @<string>?;
fhir:Reference.display @<string>?;
fhir:index xsd:integer?
}
<Organization> {
a [fhir:Organization];
fhir:nodeRole [fhir:treeRoot]?
}
<VisionPrescriptionReference> CLOSED {
fhir:Element.id @<id>?;
fhir:extension @<Extension>*;
fhir:link @<VisionPrescription> OR CLOSED {a fhir:VisionPrescription}?;
fhir:Reference.reference @<string>?;
fhir:Reference.display @<string>?;
fhir:index xsd:integer?
}
<VisionPrescription> {
a [fhir:VisionPrescription];
fhir:nodeRole [fhir:treeRoot]?
}
#---------------------- Value Sets ------------------------
# A code specifying the state of the resource instance.
fhirvs:explanationofbenefit-status ["active" "cancelled" "draft" "entered-in-error"]
# The type of an address (physical / postal)
fhirvs:address-type ["postal" "physical" "both"]
# This value set includes a sample set of Forms codes.
fhirvs:forms ["1" "2"]
# Set of codes indicating the type of incident or accident.
fhirvs:v3-ActIncidentCode ["MVA" "SCHOOL" "SPT" "WPA"]
# Identifies the purpose for this identifier, if known .
fhirvs:identifier-use ["usual" "official" "temp" "secondary"]
# Type of invoice element that is used to assist in describing an Invoice that is either submitted for adjudication or for which is returned on adjudication results. Invoice elements of this type signify a grouping of one or more children (detail) invoice elements. They do not have intrinsic costing associated with them, but merely reflect the sum of all costing for it's immediate children invoice elements.
fhirvs:v3-ActInvoiceGroupCode ["CPNDDRGING" "CPNDINDING" "CPNDSUPING" "DRUGING" "FRAMEING" "LENSING" "PRDING" "CPINV" "CSINV" "CSPINV" "FININV" "OHSINV" "PAINV" "RXCINV" "RXDINV" "SBFINV" "VRXINV"]
# The type of payee Resource
fhirvs:resource-type-link ["organization" "patient" "practitioner" "relatedperson"]
# The use of an address
fhirvs:address-use ["home" "work" "temp" "old"]
# The status of a resource narrative
fhirvs:narrative-status ["generated" "extensions" "additional" "empty"]
# This value set includes sample Claim Type codes.
fhirvs:claim-type ["institutional" "oral" "pharmacy" "professional" "vision"]
# The presentation types of notes.
fhirvs:note-type ["display" "print" "printoper"]
# How the Quantity should be understood and represented.
fhirvs:quantity-comparator ["<" "<=" ">=" ">"]
Usage note: every effort has been made to ensure that the ShEx files are correct and useful, but they are not a normative part of the specification.