List of sub-attributes must be : authorInstitution, authorPerson, authorRole, authorSpecialty and authorTelecommunication (IHE_ITI_TF V3, 4.2.3.1.4)
OCL
self.slot->forAll(sl : SlotType1 |
sl.name.oclIsUndefined() or
(sl.name = 'authorInstitution') or
(sl.name = 'authorPerson') or
(sl.name = 'authorRole') or
(sl.name = 'authorSpecialty') or
(sl.name = 'authorTelecommunication')
)
If present, the author attribute shall have one or more values (IHE_ITI_TF V3, 4.2.3.1.4)
OCL
self.slot->size()>0
Only One instance of the authorPerson sub-attribute is allowed (IHE_ITI_TF V3, 4.2.3.1.4)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and sl.name = 'authorPerson')->size()<2 and
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and sl.name = 'authorPerson')->forAll(sl : SlotType1 |
(not sl.valueList.oclIsUndefined()) and sl.valueList.value->size()<2 )
AuthorInstitution must have XON structure is specified (IHE_ITI_TF V3, 4.2.3.1.4.1)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'authorInstitution') )->forAll(sl : SlotType1 | (not sl.valueList.oclIsUndefined()) and sl.valueList.value->forAll(val : String | sl.isXON(val) ) )
authorPerson must have XCN structure if present (IHE_ITI_TF V3, 4.2.3.1.4.2)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'authorPerson') )->forAll(sl : SlotType1 | sl.valueList.value->forAll(val : String | sl.isXCN(val) ) )
authorTelecommunication must have XTN structure if present (IHE_ITI_TF V3, 4.2.3.1.4.5)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'authorTelecommunication') )->forAll(sl : SlotType1 | sl.valueList.value->forAll(val : String | sl.isXTN(val) ) )
the value of patientId must no be null (IHE_ITI_TF V3, 4.2.3.2.16)
OCL
(not self.value.oclIsUndefined() ) and (not (self.value=''))
patientId must have CX structure (IHE_ITI_TF V3, 4.2.3.2.16)
OCL
self.value.oclIsUndefined() or self.isCX_XDS(self.value)
XDSDocumentEntry must have the status Approved or Deprecated (urn:oasis:names:tc:ebxml-regrep:StatusType:Approved or urn:oasis:names:tc:ebxml-regrep:StatusType:Deprecated) (IHE_ITI_TF V3, 4.2.3.2.2)
OCL
self.status.oclIsUndefined() or
(
(self.status = 'urn:oasis:names:tc:ebxml-regrep:StatusType:Approved') or
(self.status = 'urn:oasis:names:tc:ebxml-regrep:StatusType:Deprecated')
)
At most one classCode can be present on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.3)
OCL
self.classification->select(cl : ClassificationType | (not cl.classificationScheme.oclIsUndefined()) and cl.classificationScheme = 'urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a')->size()<2
entryUUID required on XDSDocumentEntry (IHE_ITI_TF V3, 4.3.1.1)
OCL
(not self.id.oclIsUndefined() ) and (not (self.id=''))
the formatCode is unique on XDSDocumentEntry when present (IHE_ITI_TF V3, 4.2.3.2.9)
OCL
self.classification->select(cl : ClassificationType |
(not cl.classificationScheme.oclIsUndefined()) and
cl.classificationScheme = 'urn:uuid:a09d5840-386c-46f2-b5ad-9c3699a4309d'
)->size()<2
If present on XDSDocumentEntry, hash shall have a single value (IHE_ITI_TF V3, 4.2.3.2.10)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'hash') )->forAll(sl : SlotType1 |
(not sl.valueList.oclIsUndefined()) and (sl.valueList.value->size()=1) ) and
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'hash') )->size()<2)
healthCareFacilityTypeCode can have a single value on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.11)
OCL
self.classification->select(cl : ClassificationType |
(not cl.classificationScheme.oclIsUndefined()) and
cl.classificationScheme = 'urn:uuid:f33fb8ac-18af-42cc-ae0e-ed0b0bdb91e1'
)->size()<2
languageCode shall have a single value on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.13)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'languageCode'))->forAll(sl : SlotType1 |
(not sl.valueList.oclIsUndefined()) and (sl.valueList.value->size()=1)
)
if present on XDSDocumentEntry, legalAuthenticator shall have a single value (IHE_ITI_TF V3, 4.2.3.2.14)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'legalAuthenticator'))->forAll(sl : SlotType1 | (not sl.valueList.oclIsUndefined()) and (sl.valueList.value->size()=1) ) and
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'legalAuthenticator'))->size()<2)
mimeType is required on XDSDocumentEntry (IHE_ITI_TF V3, 4.3.1.1)
OCL
(not self.mimeType.oclIsUndefined()) and (not (self.mimeType=''))
PatientId is unique on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.16)
OCL
self.externalIdentifier->select(ext : ExternalIdentifierType |
(not ext.identificationScheme.oclIsUndefined()) and
(ext.identificationScheme = 'urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427')
)->size()<2
repositoryUniqueId have a single value on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.18)
OCL
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'repositoryUniqueId'))->size() < 2) and
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'repositoryUniqueId'))->forAll(sl : SlotType1 | (not sl.valueList.oclIsUndefined()) and (sl.valueList.value->size()=1) )
serviceStartTime have a single value on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.19)
OCL
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'serviceStartTime'))->size() < 2) and
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'serviceStartTime'))->forAll(sl : SlotType1 |
(not sl.valueList.oclIsUndefined()) and (sl.valueList.value->size()=1)
)
serviceStartTime required if known on XDSDocumentEntry(IHE_ITI_TF V3, 4.2.3.2.19)
OCL
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'serviceStartTime'))->size() > 0) and
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'serviceStartTime'))->forAll(sl : SlotType1 | (not sl.valueList.oclIsUndefined()) and (sl.valueList.value->size()>0))
serviceStopTime have a single value on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.20)
OCL
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'serviceStopTime'))->size() < 2) and
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'serviceStopTime'))->forAll(sl : SlotType1 |
(not sl.valueList.oclIsUndefined()) and (sl.valueList.value->size()=1)
)
serviceStopTime required if known on XDSDocumentEntry (IHE_ITI_TF V3, 4.3.1.1)
OCL
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'serviceStopTime'))->size() >0) and
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'serviceStopTime'))->forAll(sl : SlotType1 | (not sl.valueList.oclIsUndefined()) and (sl.valueList.value->size()>0)))
If present, size shall have a single value on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.21)
OCL
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'size'))->size() < 2) and
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'size'))->forAll(sl : SlotType1 |
(not sl.valueList.oclIsUndefined()) and (sl.valueList.value->size()=1)
)
sourcePatientId is unique on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.22)
OCL
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'sourcePatientId'))->size() <2) and
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'sourcePatientId'))->forAll(sl : SlotType1 | not sl.valueList.oclIsUndefined() )
sourcePatientInfo shall have a single value, a single sourcePatientInfo may be present on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.23)
OCL
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'sourcePatientInfo'))->size() < 2) and
self.slot->select(sl : SlotType1 | sl.name = 'sourcePatientInfo')->forAll(sl : SlotType1 | not sl.valueList.oclIsUndefined() )
if present, the title shall have a single value on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.24)
OCL
self.name.oclIsUndefined() or (self.name.localizedString->size() = 1)
typeCode is unique on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.25)
OCL
self.classification->select(cl : ClassificationType |
(not cl.classificationScheme.oclIsUndefined()) and
(cl.classificationScheme = 'urn:uuid:f0306f51-975f-434e-a61c-c59651d33983')
)->size()<2
uniqueId is required, and shall have a single value on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.26)
OCL
self.externalIdentifier->select(ext : ExternalIdentifierType |
(not ext.identificationScheme.oclIsUndefined()) and
(ext.identificationScheme = 'urn:uuid:2e82c1f6-a085-4c72-9da3-8640a32e42ab')
)->size()=1
URI shall have a single value if present on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.27)
OCL
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'URI'))->size() < 2) and
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'URI'))->forAll(sl : SlotType1 | (not sl.valueList.oclIsUndefined()) )
creationTime must have DTM structure if present (IHE_ITI_TF V3, 4.2.3.2.6)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'creationTime'))->forAll(sl : SlotType1 |
(not sl.valueList.oclIsUndefined()) and
(sl.valueList.value->size()=1) and
sl.isDTM(sl.valueList.value->first())
)
hash metadata must have SHA1 structure (IHE_ITI_TF V3, 4.2.3.2.10)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'hash'))->forAll(sl : SlotType1 |
(not sl.valueList.oclIsUndefined()) and
sl.valueList.value->forAll(val : String | sl.isSHA1(val))
)
homeCommunityId must have an OID URN structure (IHE_ITI_TF V3, 4.2.3.2.12)
OCL
self.home.oclIsUndefined() or self.isURNOID(self.home) or self.matches(self.home, 'urn:oid:(\\d\\.?)*')
legalAuthenticator must have the structure XCN if present (IHE_ITI_TF V3, 4.2.3.2.14)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'legalAuthenticator'))->forAll(sl : SlotType1 |
(not sl.valueList.oclIsUndefined()) and
(sl.valueList.value->forAll(val : String | sl.isXCN(val)))
)
serviceStartTime metadata must have DTM structure(IHE_ITI_TF V3, 4.2.3.2.19)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'serviceStartTime'))->forAll(sl : SlotType1 |
sl.valueList.oclIsUndefined() or
sl.valueList.value->forAll(val : String | sl.isDTM(val))
)
serviceStopTime metadata must have DTM structure (IHE_ITI_TF V3, 4.2.3.2.20)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'serviceStopTime'))->forAll(sl : SlotType1 |
sl.valueList.oclIsUndefined() or
sl.valueList.value->forAll(val : String | sl.isDTM(val))
)
size metadata must be an integer (IHE_ITI_TF V3, 4.2.3.2.21)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'size'))->forAll(sl : SlotType1 |
sl.valueList.oclIsUndefined() or
sl.valueList.value->forAll(val : String | sl.matches(val, '[0-9]*'))
)
sourcePatientId metadata must have CX structure, with an ID and an AuthorityDomain, all other components shall be ommited (IHE_ITI_TF V3, 4.2.3.2.22)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'sourcePatientId'))->forAll(sl : SlotType1 |
sl.valueList.oclIsUndefined() or
sl.valueList.value->forAll(val : String | sl.isCX_XDS(val))
)
There shall be zero or one practiceSettingCode (IHE_ITI_TF V3, 4.2.3.2.17)
OCL
self.classification->select(cl : ClassificationType |
(not cl.classificationScheme.oclIsUndefined()) and
(cl.classificationScheme = 'urn:uuid:cccf5598-8b07-4b77-a05e-ae952c785ead')
)->size()<2
the repositoryUniqueId has a max length of 64 characters (IHE_ITI_TF V3, 4.2.3.2.18)
OCL
self.slot->select(sl : SlotType1 |
(not sl.name.oclIsUndefined()) and
sl.name='repositoryUniqueId'
)->forAll(sl : SlotType1 |
sl.valueList.oclIsUndefined() or
sl.valueList.value->size()=0 or
(
sl.valueList.value->size()=1 and
sl.valueList.value->first().size()<65
)
)
the repositoryUniqueId shall be an OID (IHE_ITI_TF V3, 4.2.3.2.18)
OCL
self.slot->select(sl : SlotType1 |
(not sl.name.oclIsUndefined()) and
sl.name='repositoryUniqueId'
)->forAll(sl : SlotType1 |
sl.valueList.oclIsUndefined() or
sl.valueList.value->size()=0 or
(
sl.valueList.value->size()=1 and
self.isOID(sl.valueList.value->first())
)
)
referencedIdList metadata shall have the form CXi (IHE_ITI_TF V3, 4.2.3.2.28)
OCL
self.slot->select(sl : SlotType1 |
(not sl.name.oclIsUndefined()) and
sl.name='urn:ihe:iti:xds:2013:referenceIdList'
)->forAll(sl : SlotType1 |
sl.valueList.oclIsUndefined() or
sl.valueList.value->forAll(val : String |
self.isCXi(val)
)
)
UniqueId shall have a single value (IHE_ITI_TF V3, 4.2.3.2.26)
OCL
(not self.value.oclIsUndefined()) and (not (self.value=''))
List of sub-attributes must be : authorInstitution, authorPerson, authorRole, authorSpecialty and authorTelecommunication (IHE_ITI_TF V3, 4.2.3.1.4)
OCL
self.slot->forAll(sl : SlotType1 |
sl.name.oclIsUndefined() or
(sl.name = 'authorInstitution') or
(sl.name = 'authorPerson') or
(sl.name = 'authorRole') or
(sl.name = 'authorSpecialty') or
(sl.name = 'authorTelecommunication')
)
If present, the author attribute shall have one or more values (IHE_ITI_TF V3, 4.2.3.1.4)
OCL
self.slot->size()>0
Only One instance of the authorPerson sub-attribute is allowed (IHE_ITI_TF V3, 4.2.3.1.4)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and sl.name = 'authorPerson')->size()<2 and
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and sl.name = 'authorPerson')->forAll(sl : SlotType1 |
(not sl.valueList.oclIsUndefined()) and sl.valueList.value->size()<2 )
AuthorInstitution must have XON structure is specified (IHE_ITI_TF V3, 4.2.3.1.4.1)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'authorInstitution'))->forAll(sl : SlotType1 |
sl.valueList.oclIsUndefined() or
sl.valueList.value->forAll(val : String | sl.isXON(val))
)
authorPerson must have XCN structure if present (IHE_ITI_TF V3, 4.2.3.1.4.2)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'authorPerson'))->forAll(sl : SlotType1 |
sl.valueList.oclIsUndefined() or
sl.valueList.value->forAll(val : String | sl.isXCN(val))
)
authorTelecommunication must have XTN structure if present (IHE_ITI_TF V3, 4.2.3.1.4.5)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'authorTelecommunication') )->forAll(sl : SlotType1 | sl.valueList.value->forAll(val : String | sl.isXTN(val) ) )
status of a SubmissionSet shall be Approved : 'urn:oasis:names:tc:ebxml-regrep:StatusType:Approved' (IHE_ITI_TF V3, 4.2.3.3.2)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType |
rp.status.oclIsUndefined() or
rp.status='urn:oasis:names:tc:ebxml-regrep:StatusType:Approved'
)
The author is required on SubmissionSet if known (IHE_ITI_TF V3, 4.2.3.3.1)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType |
rp.classification->select(cl : ClassificationType |
(not cl.classificationScheme.oclIsUndefined()) and
(cl.classificationScheme='urn:uuid:a7058bb9-b4e4-4307-ba5b-e3f0ab85e12d')
)->size() > 0
)
contentTypeCode unique on SubmissionSet (IHE_ITI_TF V3, 4.2.3.3.4)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType | rp.classification->select(cl : ClassificationType | (not cl.classificationScheme.oclIsUndefined()) and (cl.classificationScheme='urn:uuid:aa543740-bdda-424e-8c96-df4873be8500'))->size() < 2 )
entryUUID is required on SubmissionSet (IHE_ITI_TF V3, 4.3.1.1)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType | (not rp.id.oclIsUndefined()) and (not (rp.id='')) )
intendedRecipient shall have one or more values if present on SubmissionSet (IHE_ITI_TF V3, 4.2.3.3.7)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType | rp.slot->select(sl : SlotType1 | sl.name='intendedRecipient')->forAll(sl : SlotType1 | (not sl.valueList.oclIsUndefined()) and (sl.valueList.value->size()>0) ))
patientId shall have a single value on SubmissionSet (IHE_ITI_TF V3, 4.2.3.3.8)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType | rp.externalIdentifier->select(ext : ExternalIdentifierType |
(not ext.identificationScheme.oclIsUndefined()) and
(ext.identificationScheme='urn:uuid:6b5aea1a-874d-4603-a4bc-96a0a7b38446'))->size() < 2
)
XDSSubmissionSet.sourceId shall have a single value (IHE_ITI_TF V3, 4.2.3.3.9)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType |
rp.externalIdentifier->select(ext : ExternalIdentifierType | (not ext.identificationScheme.oclIsUndefined()) and (ext.identificationScheme='urn:uuid:554ac39e-e3fe-47fe-b233-965d2a147832'))->size()<2
)
submissionTime can have a singleValue on SubmissionSet (IHE_ITI_TF V3, 4.2.3.3.10)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType |
rp.slot->select(sl : SlotType1 |
(not sl.name.oclIsUndefined()) and
(sl.name='submissionTime')
)->forAll(sl : SlotType1 |
sl.valueList.oclIsUndefined() or
sl.valueList.value->size()<2
)
)
uniqueId shall have at most a single value on SubmissionSet (IHE_ITI_TF V3, 4.2.3.3.12)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType |
rp.externalIdentifier->select(ext : ExternalIdentifierType | (not ext.identificationScheme.oclIsUndefined()) and (ext.identificationScheme='urn:uuid:96fdda7c-d067-4183-912e-bf5ee74998a8'))->size() < 2
)
allowed slot on submissionSet are only submissionTime and intendedRecipient, others are extraMetadata (IHE_ITI_TF V3, 4.2.3.3)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType | rp.slot->forAll(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name='submissionTime' or sl.name='intendedRecipient')) )
allowed classification on submissionSet are only author and contentTypeCode (IHE_ITI_TF V3, 4.2.3.3)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType | rp.classification->forAll(cl : ClassificationType | cl.classificationScheme.oclIsUndefined() or cl.classificationScheme='urn:uuid:a7058bb9-b4e4-4307-ba5b-e3f0ab85e12d' or cl.classificationScheme='urn:uuid:aa543740-bdda-424e-8c96-df4873be8500') )
submissionTime metadata must have DTM structure (IHE_ITI_TF V3, 4.2.3.3.10)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType | rp.slot->select(sl : SlotType1 |
(not sl.name.oclIsUndefined()) and (sl.name='submissionTime'))->forAll(sl : SlotType1 | sl.valueList.oclIsUndefined() or (sl.valueList.value->forAll(val : String | sl.isDTM(val))) )
)
homeCommunityId shoud have OID URN structure (IHE_ITI_TF V3, 4.2.3.3.6)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType | rp.home.oclIsUndefined() or rp.isURNOID(rp.home) )
entryUUID SHOULD have the structure of UUID (IHE_ITI_TF V3, 4.2.3.3.5)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType |
(not rp.id.oclIsUndefined()) and
rp.isUUID(rp.id)
)
The structure of intendedRecipien shall be 'XON|XCN|XTN' (IHE_ITI_TF V3, 4.2.3.3.7)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType |
rp.slot->select(sl : SlotType1 | sl.name='intendedRecipient')->forAll(sl : SlotType1 |
(not sl.valueList.oclIsUndefined()) and
(sl.valueList.value->size()>0) and
sl.valueList.value->forAll(st : String |
rp.matches(st, '[^\\|]*(\\|[^\\|]*)?(\\|[^\\|]*)?')
)
)
)
There can be only one description on SubmissionSet (IHE_ITI_TF V3, 4.2.3.3.3)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType |
rp.description.oclIsUndefined() or
rp.description.localizedString->size()<2
)
There can be only one title on SubmissionSet (IHE_ITI_TF V3, 4.2.3.3.10)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType |
rp.name.oclIsUndefined() or
rp.name.localizedString->size()<2
)
only one limitedMetadata attribute can be present (IHE_ITI_TF V3, 4.2.3.3.13)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType |
rp.classification->select(cl : ClassificationType |
(not cl.classificationNode.oclIsUndefined()) and
(cl.classificationNode='urn:uuid:5003a9db-8d8d-49e6-bf0c-990e34ac7707')
)->size()<2
)
XDSSubmissionSet.patientId shall have a single value (IHE_ITI_TF V3, 4.2.3.3.8)
OCL
(not self.value.oclIsUndefined()) and (not (self.value=''))
patientId must have CX structure (IHE_ITI_TF V3, 4.2.3.3.8)
OCL
self.value.oclIsUndefined() or self.isCX_XDS(self.value)
the name/localizedString/@value shall have the value 'XDSSubmissionSet.patientId' (IHE_ITI_TF V3, 4.2.3.3.8)
OCL
(not self.name.oclIsUndefined()) and
self.name.localizedString->size()=1 and
(not self.name.localizedString->first().value.oclIsUndefined() ) and
self.name.localizedString->first().value='XDSSubmissionSet.patientId'
sourceId metadata must have OID structure (IHE_ITI_TF V3, 4.2.3.3.9)
OCL
self.value.oclIsUndefined() or self.isOID(self.value)
XDSSubmissionSet.uniqueId/@value required and shall have a single value (IHE_ITI_TF V3, 4.2.3.3.12)
OCL
(not self.value.oclIsUndefined()) and (not (self.value=''))
uniqueId metadata must have OID structure (IHE_ITI_TF V3, 4.2.3.3.12)
OCL
self.value.oclIsUndefined() or self.isOID(self.value)
status of XDSFolder shall be Approved (IHE_ITI_TF V3, 4.2.3.4.1)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType |
(rp.status.oclIsUndefined()) or
( (rp.status='urn:oasis:names:tc:ebxml-regrep:StatusType:Approved') )
)
if XDSFolder present, lastUpdateTime shall have a single value at most (IHE_ITI_TF V3, 4.2.3.4.6)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType |
rp.slot->select(sl : SlotType1 |
(not sl.name.oclIsUndefined()) and
(sl.name='lastUpdateTime')
)->forAll(sl : SlotType1 |
(not sl.valueList.oclIsUndefined()) and
(sl.valueList.value->size() = 1)
)
)
the uniqueId of XDSFolder is unique (IHE_ITI_TF V3, 4.2.3.4.9)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType |
rp.externalIdentifier->select(ext : ExternalIdentifierType | (not ext.identificationScheme.oclIsUndefined()) and (ext.identificationScheme='urn:uuid:75df8f67-9973-4fbe-a900-df66cefecc5a'))->size()<2
)
allowed Slot on XDSFolder is only lastUpdateTime, otherwise it's an extraMetadata (IHE_ITI_TF V3, 4.2.3.4)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType | rp.slot->forAll(sl : SlotType1 | (not sl.name.oclIsUndefined()) and sl.name='lastUpdateTime') )
Allowed Classification on XDSFolder are only XDSFolder.patientId and XDSFolder.uniqueId (IHE_ITI_TF V3, 4.2.3.4)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType | rp.externalIdentifier->forAll(ext : ExternalIdentifierType | (not ext.identificationScheme.oclIsUndefined()) and (ext.identificationScheme='urn:uuid:f64ffdf0-4b97-4e06-b79f-a52b38ec2f8a' or ext.identificationScheme='urn:uuid:75df8f67-9973-4fbe-a900-df66cefecc5a')) )
homeCommunityId must have OID URN structure (IHE_ITI_TF V3, 4.2.3.4.5)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType | rp.home.oclIsUndefined() or rp.isURNOID(rp.home) )
lastUpdateTime metadata must have DTM structure (IHE_ITI_TF V3, 4.2.3.4.6)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType |
rp.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name='lastUpdateTime'))->forAll(sl : SlotType1 | (sl.valueList.oclIsUndefined()) or (sl.valueList.value->forAll(val : String | sl.isDTM(val))) )
)
There can be at most one comment in the XDSFolder (IHE_ITI_TF V3, 4.2.3.4.3)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType |
rp.description.oclIsUndefined() or
rp.description.localizedString->size()<2
)
The title shall have a single value if present (IHE_ITI_TF V3, 4.2.3.4.8)
OCL
self.RegistryPackage->select(
rp : RegistryPackageType |
(
rp.classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0)
or
(
self.Classification->select(
cl : ClassificationType | (not cl.classificationNode.oclIsUndefined()) and (cl.classificationNode='urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2') and (not cl.classifiedObject.oclIsUndefined()) and (cl.classifiedObject=rp.id)
)->size()>0
)
)->forAll(rp : RegistryPackageType |
rp.name.oclIsUndefined() or
rp.name.localizedString->size()<2
)
PatientId shall have a single value on XDSFolder (IHE_ITI_TF V3, 4.2.3.4.7)
OCL
(not self.value.oclIsUndefined()) and (not (self.value=''))
patientId metadata must have CX structure (IHE_ITI_TF V3, 4.2.3.4.7)
OCL
self.value.oclIsUndefined() or self.isCX_XDS(self.value)
UniqueId shall have a single value on XDSFolder (IHE_ITI_TF V3, 4.2.3.4.9)
OCL
(not self.value.oclIsUndefined()) and (not (self.value=''))
uniqueId metadata must have OID structure (IHE_ITI_TF V3, 4.2.3.4.9)
OCL
self.value.oclIsUndefined() or self.isOID(self.value)
All Document element on the provide and register SHALL have an ID, and this ID shall matches an ID from the list of XDSDocumentEntry (IHE_ITI_TF V3, 4.2)
OCL
self.document->forAll(doc : DocumentType |
(not doc.id.oclIsUndefined()) and
(not self.submitObjectsRequest.oclIsUndefined()) and
(not self.submitObjectsRequest.registryObjectList.oclIsUndefined()) and
self.submitObjectsRequest.registryObjectList.ExtrinsicObject->exists(ext : ExtrinsicObjectType |
(not ext.id.oclIsUndefined()) and
(ext.id=doc.id)
)
)
exactly one XDSSubmissionSet shall be present in On-Demand Document Entry Request (IHE suppl OnDemand Document, 3.61.4.1.2)
OCL
self.registryObjectList.oclIsUndefined() or
self.registryObjectList.RegistryPackage->select(rp : RegistryPackageType |
(
rp.classification->select(cl : ClassificationType |
(not cl.classificationNode.oclIsUndefined()) and
(cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and
(not cl.classifiedObject.oclIsUndefined()) and
(cl.classifiedObject=rp.id)
)->size()>0
)
or
(
self.registryObjectList.Classification->select(cl : ClassificationType |
(not cl.classificationNode.oclIsUndefined()) and
(cl.classificationNode='urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd') and
(not cl.classifiedObject.oclIsUndefined()) and
(cl.classifiedObject=rp.id)
)->size()>0
)
)->size()=1
one or more On-Demand Document Entry SHALL be present in Register On-Demand Document Entry request (IHE suppl OnDemand Document, 3.61.4.1.2)
OCL
self.registryObjectList.oclIsUndefined() or
self.registryObjectList.ExtrinsicObject->select(ext : ExtrinsicObjectType|
(not ext.objectType.oclIsUndefined()) and
ext.objectType='urn:uuid:34268e47-fdf5-41a6-ba33-82133c465248'
)->size()>0
Stable Document Entries SHALL NOT be present in Register On-Demand Document Entry request (IHE suppl OnDemand Document, 3.61.4.1.2)
OCL
self.registryObjectList.oclIsUndefined() or
self.registryObjectList.ExtrinsicObject->select(ext : ExtrinsicObjectType|
(not ext.objectType.oclIsUndefined()) and
ext.objectType='urn:uuid:7edca82f-054d-47f2-a032-9b2a5b5186c1'
)->size()=0
these metadatas shall be conform to 4.2.3.1.2 : XDSDocumentEntry.confidentialityCode, XDSDocumentEntry.classCode, XDSDocumentEntry.eventCodeList,
XDSDocumentEntry.formatCode, XDSDocumentEntry.healthCareFacilityTypeCode, XDSDocumentEntry.practiceSettingCode, XDSDocumentEntry.typeCode,
SubmissionSet.contentTypeCode, XDSFolder.codeList (IHE_ITI_TF V3, 4.2.3.1.2)
OCL
(not self.classificationScheme.oclIsUndefined()) and
(
self.classificationScheme='urn:uuid:f4f85eac-e6cb-4883-b524-f2705394840f' or -- XDSDocumentEntry.confidentialityCode
self.classificationScheme='urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a' or --XDSDocumentEntry.classCode
self.classificationScheme='urn:uuid:2c6b8cb7-8b2a-4051-b291-b1ae6a575ef4' or --XDSDocumentEntry.eventCodeList,
self.classificationScheme='urn:uuid:a09d5840-386c-46f2-b5ad-9c3699a4309d' or--XDSDocumentEntry.formatCode
self.classificationScheme='urn:uuid:f33fb8ac-18af-42cc-ae0e-ed0b0bdb91e1' or --XDSDocumentEntry.healthCareFacilityTypeCode
self.classificationScheme='urn:uuid:cccf5598-8b07-4b77-a05e-ae952c785ead' or --XDSDocumentEntry.practiceSettingCode
self.classificationScheme='urn:uuid:aa543740-bdda-424e-8c96-df4873be8500' or --SubmissionSet.contentTypeCode
self.classificationScheme='urn:uuid:1ba97051-7806-41a8-a48b-8fce7af683c5' or --XDSFolder.codeList
self.classificationScheme='urn:uuid:f0306f51-975f-434e-a61c-c59651d33983' --XDSDocumentEntry.typeCode
)
classificationObject shall be present (IHE_ITI_TF V3, 4.2.3.1.2)
OCL
(not self.classifiedObject.oclIsUndefined())
ObjectTye when present shall have the value urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification (IHE_ITI_TF V3, 4.2.3.1.2)
OCL
self.objectType.oclIsUndefined() or self.objectType='urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification'
nodeRepresentation attribute is required (IHE_ITI_TF V3, 4.2.3.1.2)
OCL
(not self.nodeRepresentation.oclIsUndefined())
the displayName is required (Name/LocalizedString/@value) (IHE_ITI_TF V3, 4.2.3.1.2)
OCL
(not self.name.oclIsUndefined()) and
self.name.localizedString->exists(loc : LocalizedStringType |
(not loc.value.oclIsUndefined())
)
slot/@name is required and fixed to 'codingScheme' (IHE_ITI_TF V3, 4.2.3.1.2)
OCL
self.slot->size()=1 and
self.slot->forAll(sl : SlotType1 |
(not sl.name.oclIsUndefined()) and
sl.name='codingScheme'
)
one and only one value shall be present (Slot/ValueList/Value/@text()) (IHE_ITI_TF V3, 4.2.3.1.2)
OCL
self.slot->exists(sl : SlotType1 |
(not sl.valueList.oclIsUndefined()) and
sl.valueList.value->size()=1
)
classification shall not contain other Slot (IHE_ITI_TF V3, 4.2.3.1.2)
OCL
self.slot->size()=1
classification shall not contain other Name (IHE_ITI_TF V3, 4.2.3.1.2)
OCL
self.name.oclIsUndefined() or self.name.localizedString->size()<2
classification shall not contain other classifications (IHE_ITI_TF V3, 4.2.3.1.2)
OCL
self.classification->size()=0
classification shall not contain other externalIdentifier (IHE_ITI_TF V3, 4.2.3.1.2)
OCL
self.externalIdentifier->size()=0
externalIdentifier shall have the constraints of the paragraph 4.3.1.1(IHE_ITI_TF V3, 4.3.1.1)
OCL
(not self.identificationScheme.oclIsUndefined()) and
(
self.identificationScheme='urn:uuid:6b5aea1a-874d-4603-a4bc-96a0a7b38446' or -- SubmissionSet.patientId
self.identificationScheme='urn:uuid:554ac39e-e3fe-47fe-b233-965d2a147832' or -- SubmissionSet.sourceId
self.identificationScheme='urn:uuid:96fdda7c-d067-4183-912e-bf5ee74998a8' or -- SubmissionSet.uniqueId
self.identificationScheme='urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427' or -- DocEntry.patientId
self.identificationScheme='urn:uuid:2e82c1f6-a085-4c72-9da3-8640a32e42ab' or -- DocEntry.uniqueId
self.identificationScheme='urn:uuid:f64ffdf0-4b97-4e06-b79f-a52b38ec2f8a' or -- Folder.patientId
self.identificationScheme='urn:uuid:75df8f67-9973-4fbe-a900-df66cefecc5a' -- Folder.uniqueId
)
the value element is required(IHE_ITI_TF V3, 4.2.3.1.3)
OCL
not self.value.oclIsUndefined()
if present, objectType attribute shall have the value 'urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier'(IHE_ITI_TF V3, 4.2.3.1.3)
OCL
self.objectType.oclIsUndefined() or self.objectType='urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier'
registryObject attribute shall be present(IHE_ITI_TF V3, 4.2.3.1.3)
OCL
not self.registryObject.oclIsUndefined()
readable name shall be present(IHE_ITI_TF V3, 4.2.3.1.3)
OCL
(not self.name.oclIsUndefined()) and
self.name.localizedString->size()=1 and
(not self.name.localizedString->first().value.oclIsUndefined())
the name of each slot shall be unique (IHE_ITI_TF V3, 4.2.3.1.6)
OCL
self.slot->forAll(sl : SlotType1|
sl.name.oclIsUndefined() or
self.slot->select(sl1 : SlotType1 | (not sl1.name.oclIsUndefined()) and sl1.name=sl.name)->size()=1
)
the name of each slot shall be unique (IHE_ITI_TF V3, 4.2.3.1.6)
OCL
self.slot->forAll(sl : SlotType1|
sl.name.oclIsUndefined() or
self.slot->select(sl1 : SlotType1 | (not sl1.name.oclIsUndefined()) and sl1.name=sl.name)->size()=1
)
XDSDocumentEntry must have the status Approved or Deprecated (urn:oasis:names:tc:ebxml-regrep:StatusType:Approved or urn:oasis:names:tc:ebxml-regrep:StatusType:Deprecated) (IHE_ITI_TF V3, 4.2.3.2.2)
OCL
self.status.oclIsUndefined() or
(
(self.status = 'urn:oasis:names:tc:ebxml-regrep:StatusType:Approved') or
(self.status = 'urn:oasis:names:tc:ebxml-regrep:StatusType:Deprecated')
)
At most one classCode can be present on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.3)
OCL
self.classification->select(cl : ClassificationType | (not cl.classificationScheme.oclIsUndefined()) and cl.classificationScheme = 'urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a')->size()<2
entryUUID required on XDSDocumentEntry (IHE_ITI_TF V3, 4.3.1.1)
OCL
(not self.id.oclIsUndefined() ) and (not (self.id=''))
the formatCode is unique on XDSDocumentEntry when present (IHE_ITI_TF V3, 4.2.3.2.9)
OCL
self.classification->select(cl : ClassificationType |
(not cl.classificationScheme.oclIsUndefined()) and
cl.classificationScheme = 'urn:uuid:a09d5840-386c-46f2-b5ad-9c3699a4309d'
)->size()<2
healthCareFacilityTypeCode can have a single value on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.11)
OCL
self.classification->select(cl : ClassificationType |
(not cl.classificationScheme.oclIsUndefined()) and
cl.classificationScheme = 'urn:uuid:f33fb8ac-18af-42cc-ae0e-ed0b0bdb91e1'
)->size()<2
languageCode shall have a single value on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.13)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'languageCode'))->forAll(sl : SlotType1 |
(not sl.valueList.oclIsUndefined()) and (sl.valueList.value->size()=1)
)
if present on XDSDocumentEntry, legalAuthenticator shall have a single value (IHE_ITI_TF V3, 4.2.3.2.14)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'legalAuthenticator'))->forAll(sl : SlotType1 | (not sl.valueList.oclIsUndefined()) and (sl.valueList.value->size()=1) ) and
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'legalAuthenticator'))->size()<2)
mimeType is required on XDSDocumentEntry (IHE_ITI_TF V3, 4.3.1.1)
OCL
(not self.mimeType.oclIsUndefined()) and (not (self.mimeType=''))
PatientId is unique on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.22)
OCL
self.externalIdentifier->select(ext : ExternalIdentifierType |
(not ext.identificationScheme.oclIsUndefined()) and
(ext.identificationScheme = 'urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427')
)->size()<2
repositoryUniqueId have a single value on XDSDocumentEntry (IHE_ITI_Suppl_On_Demand_Documents, 3.61)
OCL
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'repositoryUniqueId'))->size() < 2) and
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'repositoryUniqueId'))->forAll(sl : SlotType1 | (not sl.valueList.oclIsUndefined()) and (sl.valueList.value->size()=1) )
serviceStartTime have a single value on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.19)
OCL
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'serviceStartTime'))->size() < 2) and
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'serviceStartTime'))->forAll(sl : SlotType1 |
(not sl.valueList.oclIsUndefined()) and (sl.valueList.value->size()=1)
)
serviceStartTime required if known on XDSDocumentEntry(IHE_ITI_TF V3, 4.2.3.2.19)
OCL
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'serviceStartTime'))->size() > 0) and
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'serviceStartTime'))->forAll(sl : SlotType1 | (not sl.valueList.oclIsUndefined()) and (sl.valueList.value->size()>0))
serviceStopTime have a single value on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.20)
OCL
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'serviceStopTime'))->size() < 2) and
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'serviceStopTime'))->forAll(sl : SlotType1 |
(not sl.valueList.oclIsUndefined()) and (sl.valueList.value->size()=1)
)
serviceStopTime required if known on XDSDocumentEntry (IHE_ITI_TF V3, 4.3.1.1)
OCL
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'serviceStopTime'))->size() >0) and
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'serviceStopTime'))->forAll(sl : SlotType1 | (not sl.valueList.oclIsUndefined()) and (sl.valueList.value->size()>0)))
If present, size shall have a single value on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.21)
OCL
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'size'))->size() < 2) and
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'size'))->forAll(sl : SlotType1 |
(not sl.valueList.oclIsUndefined()) and (sl.valueList.value->size()=1)
)
sourcePatientId is unique on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.22)
OCL
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'sourcePatientId'))->size() <2) and
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'sourcePatientId'))->forAll(sl : SlotType1 | not sl.valueList.oclIsUndefined() )
sourcePatientInfo shall have a single valueList, a single sourcePatientInfo may be present on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.23)
OCL
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'sourcePatientInfo'))->size() < 2) and
self.slot->select(sl : SlotType1 | sl.name = 'sourcePatientInfo')->forAll(sl : SlotType1 | not sl.valueList.oclIsUndefined() )
if present, the title shall have a single value on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.24)
OCL
self.name.oclIsUndefined() or (self.name.localizedString->size() = 1)
typeCode is unique on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.25)
OCL
self.classification->select(cl : ClassificationType |
(not cl.classificationScheme.oclIsUndefined()) and
(cl.classificationScheme = 'urn:uuid:f0306f51-975f-434e-a61c-c59651d33983')
)->size()<2
uniqueId is required, and shall have a single value on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.26)
OCL
self.externalIdentifier->select(ext : ExternalIdentifierType |
(not ext.identificationScheme.oclIsUndefined()) and
(ext.identificationScheme = 'urn:uuid:2e82c1f6-a085-4c72-9da3-8640a32e42ab')
)->size()=1
URI shall have a single value if present on XDSDocumentEntry (IHE_ITI_TF V3, 4.2.3.2.27)
OCL
(self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'URI'))->size() < 2) and
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'URI'))->forAll(sl : SlotType1 | (not sl.valueList.oclIsUndefined()) )
homeCommunityId must have an OID URN structure (IHE_ITI_TF V3, 4.2.3.2.12)
OCL
self.home.oclIsUndefined() or self.isURNOID(self.home) or self.matches(self.home, 'urn:oid:(\\d\\.?)*')
legalAuthenticator must have the structure XCN if present (IHE_ITI_TF V3, 4.2.3.2.14)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'legalAuthenticator'))->forAll(sl : SlotType1 |
(not sl.valueList.oclIsUndefined()) and
(sl.valueList.value->forAll(val : String | sl.isXCN(val)))
)
serviceStartTime metadata must have DTM structure(IHE_ITI_TF V3, 4.2.3.2.19)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'serviceStartTime'))->forAll(sl : SlotType1 |
sl.valueList.oclIsUndefined() or
sl.valueList.value->forAll(val : String | sl.isDTM(val))
)
serviceStopTime metadata must have DTM structure (IHE_ITI_TF V3, 4.2.3.2.20)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'serviceStopTime'))->forAll(sl : SlotType1 |
sl.valueList.oclIsUndefined() or
sl.valueList.value->forAll(val : String | sl.isDTM(val))
)
size metadata must be an integer (IHE_ITI_TF V3, 4.2.3.2.21)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'size'))->forAll(sl : SlotType1 |
sl.valueList.oclIsUndefined() or
sl.valueList.value->forAll(val : String | sl.matches(val, '[0-9]*'))
)
sourcePatientId metadata must have CX structure, with an ID and an AuthorityDomain, all other components shall be ommited (IHE_ITI_TF V3, 4.2.3.2.22)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'sourcePatientId'))->forAll(sl : SlotType1 |
sl.valueList.oclIsUndefined() or
sl.valueList.value->forAll(val : String | sl.isCX_XDS(val))
)
There shall be zero or one practiceSettingCode (IHE_ITI_TF V3, 4.2.3.2.17)
OCL
self.classification->select(cl : ClassificationType |
(not cl.classificationScheme.oclIsUndefined()) and
(cl.classificationScheme = 'urn:uuid:cccf5598-8b07-4b77-a05e-ae952c785ead')
)->size()<2
the repositoryUniqueId has a max length of 64 characters (IHE_ITI_TF V3, 4.2.3.2.18)
OCL
self.slot->select(sl : SlotType1 |
(not sl.name.oclIsUndefined()) and
sl.name='repositoryUniqueId'
)->forAll(sl : SlotType1 |
sl.valueList.oclIsUndefined() or
sl.valueList.value->size()=0 or
(
sl.valueList.value->size()=1 and
sl.valueList.value->first().size()<65
)
)
the repositoryUniqueId shall be an OID (IHE_ITI_TF V3, 4.2.3.2.18)
OCL
self.slot->select(sl : SlotType1 |
(not sl.name.oclIsUndefined()) and
sl.name='repositoryUniqueId'
)->forAll(sl : SlotType1 |
sl.valueList.oclIsUndefined() or
sl.valueList.value->size()=0 or
(
sl.valueList.value->size()=1 and
self.isOID(sl.valueList.value->first())
)
)
referencedIdList metadata shall have the form CXi (IHE_ITI_TF V3, 4.2.3.2.28)
OCL
self.slot->select(sl : SlotType1 |
(not sl.name.oclIsUndefined()) and
sl.name='urn:ihe:iti:xds:2013:referenceIdList'
)->forAll(sl : SlotType1 |
sl.valueList.oclIsUndefined() or
sl.valueList.value->forAll(val : String |
self.isCXi(val)
)
)
creationTime shall not be specified in a Register On-Demand Document Entry request (IHE_ITI_Suppl_On_Demand_Documents, 3.61.4.1.2)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'creationTime'))->size()=0
hash metadata shall not be specified in a Register On-Demand Document Entry Request (IHE_ITI_Suppl_On_Demand_Documents, 3.61.4.1.2)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'hash'))->size()=0
legalAuthenticator SHOULD NOT be specified as having no clear meaning in the context of an On-Demand Document Entry (IHE_ITI_Suppl_On_Demand_Documents, 3.61.4.1.2)
OCL
self.slot->select(sl : SlotType1 | (not sl.name.oclIsUndefined()) and (sl.name = 'legalAuthenticator'))->size()=0