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