R6 Ballot (1st Draft)

This page is part of the FHIR Specification v6.0.0-ballot1: Release 6 Ballot (1st Draft) (see Ballot Notes). The current version is 5.0.0. For a full list of available versions, see the Directory of published versions

Imagingstudy.shex

Imaging Integration Work GroupMaturity Level: N/AStandards Status: InformativeCompartments: Patient

Raw ShEx

ShEx statement for imagingstudy

PREFIX fhir: <http://hl7.org/fhir/> 
PREFIX fhirvs: <http://hl7.org/fhir/ValueSet/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 

IMPORT <id.shex>
IMPORT <code.shex>
IMPORT <Task.shex>
IMPORT <Group.shex>
IMPORT <Device.shex>
IMPORT <string.shex>
IMPORT <Coding.shex>
IMPORT <Patient.shex>
IMPORT <dateTime.shex>
IMPORT <Location.shex>
IMPORT <CareTeam.shex>
IMPORT <CarePlan.shex>
IMPORT <Endpoint.shex>
IMPORT <Specimen.shex>
IMPORT <Reference.shex>
IMPORT <Encounter.shex>
IMPORT <Procedure.shex>
IMPORT <Identifier.shex>
IMPORT <Annotation.shex>
IMPORT <unsignedInt.shex>
IMPORT <Appointment.shex>
IMPORT <Practitioner.shex>
IMPORT <Organization.shex>
IMPORT <RelatedPerson.shex>
IMPORT <DomainResource.shex>
IMPORT <ServiceRequest.shex>
IMPORT <CodeableConcept.shex>
IMPORT <BackboneElement.shex>
IMPORT <PractitionerRole.shex>
IMPORT <CodeableReference.shex>
IMPORT <HealthcareService.shex>
IMPORT <AppointmentResponse.shex>


start=@<ImagingStudy> AND {fhir:nodeRole [fhir:treeRoot]}

# A set of images produced in single study (one or more series of references images)
<ImagingStudy> EXTENDS @<DomainResource> CLOSED {   

    a [fhir:ImagingStudy]?;
    fhir:nodeRole [fhir:treeRoot]?;

    fhir:identifier @<OneOrMore_Identifier>?;  # Identifiers for the whole study
    fhir:status @<code> AND
    	{fhir:v @fhirvs:imagingstudy-status};  # registered | available | cancelled 
                                            # | entered-in-error | unknown 
    fhir:modality @<OneOrMore_CodeableConcept>?;  # All of the distinct values for 
                                            # series' modalities 
    fhir:subject @<Reference> AND {fhir:link 
    			@<Device> OR 
    			@<Group> OR 
    			@<Patient> ? };  # Who or what is the subject of the 
                                            # study 
    fhir:encounter @<Reference> AND {fhir:link 
    			@<Encounter> ? }?;  # Encounter with which this imaging 
                                            # study is associated 
    fhir:started @<dateTime>?;              # When the study was started
    fhir:basedOn @<OneOrMore_Reference_Appointment_OR_AppointmentResponse_OR_CarePlan_OR_ServiceRequest_OR_Task>?;  # Request fulfilled
    fhir:partOf @<OneOrMore_Reference_Procedure>?;  # Part of referenced event
    fhir:referrer @<Reference> AND {fhir:link 
    			@<Practitioner> OR 
    			@<PractitionerRole> ? }?;  # Referring physician
    fhir:endpoint @<OneOrMore_Reference_Endpoint>?;  # Study access endpoint
    fhir:numberOfSeries @<unsignedInt>?;    # Number of Study Related Series
    fhir:numberOfInstances @<unsignedInt>?;  # Number of Study Related Instances
    fhir:procedure @<OneOrMore_CodeableReference>?;  # The performed procedure or code
    fhir:location @<Reference> AND {fhir:link 
    			@<Location> ? }?;  # Where ImagingStudy occurred
    fhir:reason @<OneOrMore_CodeableReference>?;  # Why the study was requested / 
                                            # performed 
    fhir:note @<OneOrMore_Annotation>?;     # User-defined comments
    fhir:description @<string>?;            # Institution-generated description
    fhir:series @<OneOrMore_ImagingStudy.series>?;  # Each study has one or more series 
                                            # of instances 
}  

# A single SOP instance from the series
<ImagingStudy.series.instance> EXTENDS @<BackboneElement> CLOSED {   
    fhir:uid @<id>;                         # DICOM SOP Instance UID
    fhir:sopClass @<Coding>;                # DICOM class type
    fhir:number @<unsignedInt>?;            # The number of this instance in the 
                                            # series 
    fhir:title @<string>?;                  # Description of instance
}  

# Each study has one or more series of instances
<ImagingStudy.series> EXTENDS @<BackboneElement> CLOSED {   
    fhir:uid @<id>;                         # DICOM Series Instance UID for the 
                                            # series 
    fhir:number @<unsignedInt>?;            # Numeric identifier of this series
    fhir:modality @<CodeableConcept>;       # The modality used for this series
    fhir:description @<string>?;            # A short human readable summary of 
                                            # the series 
    fhir:numberOfInstances @<unsignedInt>?;  # Number of Series Related Instances
    fhir:endpoint @<OneOrMore_Reference_Endpoint>?;  # Series access endpoint
    fhir:bodySite @<CodeableReference>?;    # Body part examined
    fhir:laterality @<CodeableConcept>?;    # Body part laterality
    fhir:specimen @<OneOrMore_Reference_Specimen>?;  # Specimen imaged
    fhir:started @<dateTime>?;              # When the series started
    fhir:performer @<OneOrMore_ImagingStudy.series.performer>?;  # Who performed the series
    fhir:instance @<OneOrMore_ImagingStudy.series.instance>?;  # A single SOP instance from the 
                                            # series 
}  

# Who performed the series
<ImagingStudy.series.performer> EXTENDS @<BackboneElement> CLOSED {   
    fhir:function @<CodeableConcept>?;      # Type of performance
    fhir:actor @<Reference> AND {fhir:link 
    			@<CareTeam> OR 
    			@<Device> OR 
    			@<HealthcareService> OR 
    			@<Organization> OR 
    			@<Patient> OR 
    			@<Practitioner> OR 
    			@<PractitionerRole> OR 
    			@<RelatedPerson> ? };  # Who performed the series
}  

#---------------------- Cardinality Types (OneOrMore) -------------------

<OneOrMore_Identifier> CLOSED {
    rdf:first @<Identifier>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Identifier> 
}

<OneOrMore_CodeableConcept> CLOSED {
    rdf:first @<CodeableConcept>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_CodeableConcept> 
}

<OneOrMore_Reference_Appointment_OR_AppointmentResponse_OR_CarePlan_OR_ServiceRequest_OR_Task> CLOSED {
    rdf:first @<Reference> AND {fhir:link 
			@<Appointment> OR 
			@<AppointmentResponse> OR 
			@<CarePlan> OR 
			@<ServiceRequest> OR 
			@<Task> } ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Reference_Appointment_OR_AppointmentResponse_OR_CarePlan_OR_ServiceRequest_OR_Task> 
}

<OneOrMore_Reference_Procedure> CLOSED {
    rdf:first @<Reference> AND {fhir:link 
			@<Procedure> } ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Reference_Procedure> 
}

<OneOrMore_Reference_Endpoint> CLOSED {
    rdf:first @<Reference> AND {fhir:link 
			@<Endpoint> } ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Reference_Endpoint> 
}

<OneOrMore_CodeableReference> CLOSED {
    rdf:first @<CodeableReference>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_CodeableReference> 
}

<OneOrMore_Annotation> CLOSED {
    rdf:first @<Annotation>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Annotation> 
}

<OneOrMore_ImagingStudy.series> CLOSED {
    rdf:first @<ImagingStudy.series>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_ImagingStudy.series> 
}

<OneOrMore_Reference_Specimen> CLOSED {
    rdf:first @<Reference> AND {fhir:link 
			@<Specimen> } ;
    rdf:rest [rdf:nil] OR @<OneOrMore_Reference_Specimen> 
}

<OneOrMore_ImagingStudy.series.performer> CLOSED {
    rdf:first @<ImagingStudy.series.performer>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_ImagingStudy.series.performer> 
}

<OneOrMore_ImagingStudy.series.instance> CLOSED {
    rdf:first @<ImagingStudy.series.instance>  ;
    rdf:rest [rdf:nil] OR @<OneOrMore_ImagingStudy.series.instance> 
}

#---------------------- Value Sets ------------------------

# The status of the ImagingStudy.
fhirvs:imagingstudy-status ["registered" "available" "cancelled" "entered-in-error" "unknown"]


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.