ShEx statement for claim
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=@<Claim> AND {fhir:nodeRole [fhir:treeRoot]}
# Claim, Pre-determination or Pre-authorization
<Claim> CLOSED {
a [fhir:Claim];
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:Claim.identifier @<Identifier>*; # Claim number
fhir:Claim.status @<code> AND
{fhir:value @fhirvs:fm-status}?; # active | cancelled | draft |
# entered-in-error
fhir:Claim.type @<CodeableConcept> AND
{fhir:value @fhirvs:claim-type}?; # Type or discipline
fhir:Claim.subType @<CodeableConcept>*; # Finer grained claim type
# information
fhir:Claim.use @<code> AND
{fhir:value @fhirvs:claim-use}?; # complete | proposed | exploratory
# | other
fhir:Claim.patient @<Reference>?; # The subject of the Products and
# Services
fhir:Claim.billablePeriod @<Period>?; # Period for charge submission
fhir:Claim.created @<dateTime>?; # Creation date
fhir:Claim.enterer @<Reference>?; # Author
fhir:Claim.insurer @<Reference>?; # Target
fhir:Claim.provider @<Reference>?; # Responsible provider
fhir:Claim.organization @<Reference>?; # Responsible organization
fhir:Claim.priority @<CodeableConcept>?; # Desired processing priority
fhir:Claim.fundsReserve @<CodeableConcept>?; # Funds requested to be reserved
fhir:Claim.related @<Claim.related>*; # Related Claims which may be
# revelant to processing this claimn
fhir:Claim.prescription # Prescription
( @<MedicationRequestReference> OR
@<VisionPrescriptionReference>
)?;
fhir:Claim.originalPrescription @<Reference>?; # Original Prescription
fhir:Claim.payee @<Claim.payee>?; # Party to be paid any benefits
# payable
fhir:Claim.referral @<Reference>?; # Treatment Referral
fhir:Claim.facility @<Reference>?; # Servicing Facility
fhir:Claim.careTeam @<Claim.careTeam>*; # Members of the care team
fhir:Claim.information @<Claim.information>*; # Exceptions, special
# considerations, the condition,
# situation, prior or concurrent
# issues
fhir:Claim.diagnosis @<Claim.diagnosis>*; # Diagnosis
fhir:Claim.procedure @<Claim.procedure>*; # Procedures performed
fhir:Claim.insurance @<Claim.insurance>*; # Insurance or medical plan
fhir:Claim.accident @<Claim.accident>?; # Details about an accident
fhir:Claim.employmentImpacted @<Period>?; # Period unable to work
fhir:Claim.hospitalization @<Period>?; # Period in hospital
fhir:Claim.item @<Claim.item>*; # Goods and Services
fhir:Claim.total @<Money>?; # Total claim cost
fhir:index xsd:integer? # Relative position in a list
}
# Details about an accident
<Claim.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:Claim.accident.date @<date>; # When the accident occurred see
# information codes see information
# codes
fhir:Claim.accident.type @<CodeableConcept> AND
{fhir:value @fhirvs:v3-ActIncidentCode}?; # The nature of the accident
( # Accident Place
fhir:Claim.accident.locationAddress @<Address> |
fhir:Claim.accident.locationReference @<Reference>
)?;
fhir:index xsd:integer? # Relative position in a list
}
# Goods and Services
<Claim.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:Claim.item.sequence @<positiveInt>; # Service instance
fhir:Claim.item.careTeamLinkId @<positiveInt>*; # Applicable careTeam members
fhir:Claim.item.diagnosisLinkId @<positiveInt>*; # Applicable diagnoses
fhir:Claim.item.procedureLinkId @<positiveInt>*; # Applicable procedures
fhir:Claim.item.informationLinkId @<positiveInt>*; # Applicable exception and
# supporting information
fhir:Claim.item.revenue @<CodeableConcept>?; # Revenue or cost center code
fhir:Claim.item.category @<CodeableConcept>?; # Type of service or product
fhir:Claim.item.service @<CodeableConcept>?; # Billing Code
fhir:Claim.item.modifier @<CodeableConcept>*; # Service/Product billing modifiers
fhir:Claim.item.programCode @<CodeableConcept>*; # Program specific reason for item
# inclusion
( # Date or dates of Service
fhir:Claim.item.servicedDate @<date> |
fhir:Claim.item.servicedPeriod @<Period>
)?;
( # Place of service
fhir:Claim.item.locationCodeableConcept @<CodeableConcept> |
fhir:Claim.item.locationAddress @<Address> |
fhir:Claim.item.locationReference @<Reference>
)?;
fhir:Claim.item.quantity @<SimpleQuantity>?; # Count of Products or Services
fhir:Claim.item.unitPrice @<Money>?; # Fee, charge or cost per point
fhir:Claim.item.factor @<decimal>?; # Price scaling factor
fhir:Claim.item.net @<Money>?; # Total item cost
fhir:Claim.item.udi @<Reference>*; # Unique Device Identifier
fhir:Claim.item.bodySite @<CodeableConcept>?; # Service Location
fhir:Claim.item.subSite @<CodeableConcept>*; # Service Sub-location
fhir:Claim.item.detail @<Claim.item.detail>*; # Additional items
fhir:Claim.item.prosthesis @<Claim.item.prosthesis>?; # Prosthetic details
fhir:index xsd:integer? # Relative position in a list
}
# Party to be paid any benefits payable
<Claim.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:Claim.payee.type @<CodeableConcept>; # Type of party: Subscriber,
# Provider, other
fhir:Claim.payee.resourceType @<Coding>?; # organization | patient |
# practitioner | relatedperson
fhir:Claim.payee.party # Party to receive the payable
( @<PractitionerReference> OR
@<OrganizationReference> OR
@<PatientReference> OR
@<RelatedPersonReference>
)?;
fhir:index xsd:integer? # Relative position in a list
}
# Procedures performed
<Claim.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:Claim.procedure.sequence @<positiveInt>; # Procedure sequence for reference
fhir:Claim.procedure.date @<dateTime>?; # When the procedure was performed
( # Patient's list of procedures
# performed
fhir:Claim.procedure.procedureCodeableConcept @<CodeableConcept> |
fhir:Claim.procedure.procedureReference @<Reference>
);
fhir:index xsd:integer? # Relative position in a list
}
# Members of the care team
<Claim.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:Claim.careTeam.sequence @<positiveInt>; # Number to covey order of careTeam
fhir:Claim.careTeam.provider # Provider individual or organization
( @<PractitionerReference> OR
@<OrganizationReference>
);
fhir:Claim.careTeam.responsible @<boolean>?; # Billing provider
fhir:Claim.careTeam.role @<CodeableConcept>?; # Role on the team
fhir:Claim.careTeam.qualification @<CodeableConcept>?; # Type, classification or
# Specialization
fhir:index xsd:integer? # Relative position in a list
}
# Exceptions, special considerations, the condition, situation, prior or concurrent issues
<Claim.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:Claim.information.category @<CodeableConcept>; # Category of information
fhir:Claim.information.code @<CodeableConcept>?; # Type of information
( # When it occurred
fhir:Claim.information.timingDate @<date> |
fhir:Claim.information.timingPeriod @<Period>
)?;
( # Additional Data or supporting
# information
fhir:Claim.information.valueString @<string> |
fhir:Claim.information.valueQuantity @<Quantity> |
fhir:Claim.information.valueAttachment @<Attachment> |
fhir:Claim.information.valueReference @<Reference>
)?;
fhir:Claim.information.reason @<CodeableConcept>?; # Reason associated with the
# information
fhir:index xsd:integer? # Relative position in a list
}
# Diagnosis
<Claim.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:Claim.diagnosis.sequence @<positiveInt>; # Number to covey order of diagnosis
( # Patient's diagnosis
fhir:Claim.diagnosis.diagnosisCodeableConcept @<CodeableConcept> |
fhir:Claim.diagnosis.diagnosisReference @<Reference>
);
fhir:Claim.diagnosis.type @<CodeableConcept>*; # Type of Diagnosis
fhir:Claim.diagnosis.packageCode @<CodeableConcept>?; # Package billing code
fhir:index xsd:integer? # Relative position in a list
}
# Related Claims which may be revelant to processing this claimn
<Claim.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:Claim.related.claim @<Reference>?; # Reference to the related claim
fhir:Claim.related.relationship @<CodeableConcept>?; # How the reference claim is related
fhir:Claim.related.reference @<Identifier>?; # Related file or case reference
fhir:index xsd:integer? # Relative position in a list
}
# Insurance or medical plan
<Claim.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:Claim.insurance.sequence @<positiveInt>; # Service instance identifier
fhir:Claim.insurance.focal @<boolean>; # Is the focal Coverage
fhir:Claim.insurance.coverage @<Reference>; # Insurance information
fhir:Claim.insurance.businessArrangement @<string>?; # Business agreement
fhir:Claim.insurance.preAuthRef @<string>*; # Pre-Authorization/Determination
# Reference
fhir:Claim.insurance.claimResponse @<Reference>?; # Adjudication results
fhir:index xsd:integer? # Relative position in a list
}
# Prosthetic details
<Claim.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:Claim.item.prosthesis.initial @<boolean>?; # Is this the initial service
fhir:Claim.item.prosthesis.priorDate @<date>?; # Initial service Date
fhir:Claim.item.prosthesis.priorMaterial @<CodeableConcept>?; # Prosthetic Material
fhir:index xsd:integer? # Relative position in a list
}
# Additional items
<Claim.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:Claim.item.detail.sequence @<positiveInt>; # Service instance
fhir:Claim.item.detail.revenue @<CodeableConcept>?; # Revenue or cost center code
fhir:Claim.item.detail.category @<CodeableConcept>?; # Type of service or product
fhir:Claim.item.detail.service @<CodeableConcept>?; # Billing Code
fhir:Claim.item.detail.modifier @<CodeableConcept>*; # Service/Product billing modifiers
fhir:Claim.item.detail.programCode @<CodeableConcept>*; # Program specific reason for item
# inclusion
fhir:Claim.item.detail.quantity @<SimpleQuantity>?; # Count of Products or Services
fhir:Claim.item.detail.unitPrice @<Money>?; # Fee, charge or cost per point
fhir:Claim.item.detail.factor @<decimal>?; # Price scaling factor
fhir:Claim.item.detail.net @<Money>?; # Total additional item cost
fhir:Claim.item.detail.udi @<Reference>*; # Unique Device Identifier
fhir:Claim.item.detail.subDetail @<Claim.item.detail.subDetail>*; # Additional items
fhir:index xsd:integer? # Relative position in a list
}
# Additional items
<Claim.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:Claim.item.detail.subDetail.sequence @<positiveInt>; # Service instance
fhir:Claim.item.detail.subDetail.revenue @<CodeableConcept>?; # Revenue or cost center code
fhir:Claim.item.detail.subDetail.category @<CodeableConcept>?; # Type of service or product
fhir:Claim.item.detail.subDetail.service @<CodeableConcept>?; # Billing Code
fhir:Claim.item.detail.subDetail.modifier @<CodeableConcept>*; # Service/Product billing modifiers
fhir:Claim.item.detail.subDetail.programCode @<CodeableConcept>*; # Program specific reason for item
# inclusion
fhir:Claim.item.detail.subDetail.quantity @<SimpleQuantity>?; # Count of Products or Services
fhir:Claim.item.detail.subDetail.unitPrice @<Money>?; # Fee, charge or cost per point
fhir:Claim.item.detail.subDetail.factor @<decimal>?; # Price scaling factor
fhir:Claim.item.detail.subDetail.net @<Money>?; # Net additional item cost
fhir:Claim.item.detail.subDetail.udi @<Reference>*; # Unique Device Identifier
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
}
# 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
}
# 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
}
# 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?
}
# 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
}
# 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
}
# 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
}
# 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
}
# 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
}
#---------------------- 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]?
}
<PatientReference> CLOSED {
fhir:Element.id @<id>?;
fhir:extension @<Extension>*;
fhir:link @<Patient> OR CLOSED {a fhir:Patient}?;
fhir:Reference.reference @<string>?;
fhir:Reference.display @<string>?;
fhir:index xsd:integer?
}
<Patient> {
a [fhir:Patient];
fhir:nodeRole [fhir:treeRoot]?
}
<RelatedPersonReference> CLOSED {
fhir:Element.id @<id>?;
fhir:extension @<Extension>*;
fhir:link @<RelatedPerson> OR CLOSED {a fhir:RelatedPerson}?;
fhir:Reference.reference @<string>?;
fhir:Reference.display @<string>?;
fhir:index xsd:integer?
}
<RelatedPerson> {
a [fhir:RelatedPerson];
fhir:nodeRole [fhir:treeRoot]?
}
#---------------------- Value Sets ------------------------
# The type of an address (physical / postal)
fhirvs:address-type ["postal" "physical" "both"]
# 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"]
# Complete, proposed, exploratory, other
fhirvs:claim-use ["complete" "proposed" "exploratory" "other"]
# The use of an address
fhirvs:address-use ["home" "work" "temp" "old"]
# This value set includes STatus codes.
fhirvs:fm-status ["active" "cancelled" "draft" "entered-in-error"]
# 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"]
# 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.