The value of interactionId SHALL be set to PRPA_IN201305UV02 (Table 3.47.4.1.2-7: Wrappers and Constraints)
OCL
not (self.interactionId.oclIsUndefined()) and
not (self.interactionId.extension.oclIsUndefined()) and
self.interactionId.extension='PRPA_IN201305UV02'
The value of processingModeCode SHALL be set to T (Table 3.47.4.1.2-7: Wrappers and Constraints)
OCL
self.processingModeCode.oclIsUndefined() or
(not (self.processingModeCode.code.oclIsUndefined()) and
self.processingModeCode.code='T')
The acceptAckCode SHALL be set to AL (Table 3.47.4.1.2-7: Wrappers and Constraints)
OCL
not(self.acceptAckCode.oclIsUndefined()) and
not (self.acceptAckCode.code.oclIsUndefined()) and
self.acceptAckCode.code='AL'
There SHALL be only one receiver device (Table 3.47.4.1.2-7: Wrappers and Constraints)
OCL
self.receiver->size()=1
Valid values are D (Debugging), T (Testing), P (Production) (Table O.1.1-1: Model Attributes)
OCL
not self.processingCode.oclIsUndefined()
and not self.processingCode.code.oclIsUndefined()
and (self.processingCode.code='D'
or self.processingCode.code='T'
or self.processingCode.code='P')
The trigger event code in ControlActProcess/code/@code SHALL be set to PRPA_TE201305UV02 (Table 3.47.4.1.2-7: Wrappers and Constraints)
OCL
not (self.code.oclIsUndefined()) and not (self.code.code.oclIsUndefined()) and self.code.code='PRPA_TE201305UV02'
QueryByParameter SHALL be present (Figure O-2.3-3: Message information model)
OCL
not self.queryByParameter.oclIsUndefined()
The Patient Demographics Supplier is required to send an immediate response ie responsePriorityCode SHALL be set to I
OCL
self.responsePriorityCode.oclIsUndefined() or (not(self.responsePriorityCode.code.oclIsUndefined()) and self.responsePriorityCode.code='I')
The mode of the response SHALL always be real-time ie responseModalityCode SHALL be set to R (Table 3.47.4.1.2-1: Model Attributes)
OCL
self.responseModalityCode.oclIsUndefined() or (not self.responseModalityCode.code.oclIsUndefined() and self.responseModalityCode.code='R')
The responseModalityCode element of the QueryByParameter element is required to be sent (Table 3.47.4.1.2-1)
OCL
not(self.responseModalityCode.oclIsUndefined())
responsePriorityCode element of the QueryByParameter element is required to be sent (Table 3.47.4.1.2-1)
OCL
not self.responseModalityCode.oclIsUndefined()
The value of authorOrPerformer.typeCode SHALL be set to AUT (Table 3.47.4.1.2-7: Wrappers and Constraints)
OCL
not (self.typeCode.oclIsUndefined()) and self.typeCode=XParticipationAuthorPerformer::AUT
If present livingSubjectAdministrativeGender element SHALL NOT be repeated (Figure 3.47.4.1.2-1: Message Information Model for the Query by Demographics message - ITI TF-2b)
OCL
self.livingSubjectAdministrativeGender->size() <= 1
PatientAddress SHALL NOT be repeated [0..1] (Figure 3.47.4.1.2-1: Message Information Model for the Query by Demographics message - ITI TF-2b)
OCL
self.patientAddress->size() <= 1
LivingSubjectBirthTime SHALL NOT be repeated [0..1] (Figure 3.47.4.1.2-1: Message Information Model for the Query by Demographics message - ITI TF-2b)
OCL
self.livingSubjectBirthTime->size() <= 1
PatientTelecom SHALL NOT be repeated [0..1] (Section 3.47.4.1.2.2 - ITI TF-2b)
OCL
self.patientTelecom->size() <= 1
PrincipalCareProviderId SHALL NOT be repeated [0..1] (Section 3.47.4.1.2.2 - ITI TF-2b)
OCL
self.principalCareProviderId->size() <= 1
PrincipalCareProvisionId SHALL NOT be repeated [0..1] (Section 3.47.4.1.2.2 - ITI TF-2b)
OCL
self.principalCareProvisionId->size() <= 1
MothersMaidenName SHALL NOT be repeated [0..1] (Section 3.47.4.1.2.2 - ITI TF-2b)
OCL
self.mothersMaidenName->size() <= 1
LivingSubjectDeceasedTime SHALL NOT be repeated [0..1] (Section 3.47.4.1.2.2 - ITI TF-2b)
OCL
self.livingSubjectDeceasedTime->size() <= 1
PatientStatusCode SHALL NOT be repeated [0..1] (Section 3.47.4.1.2.2 - ITI TF-2b)
OCL
self.patientStatusCode->size() <= 1
LivingSubjectBirthPlaceName SHALL NOT be repeated [0..1] (Section 3.47.4.1.2.2 - ITI TF-2b)
OCL
self.livingSubjectBirthPlaceName->size() <= 1
LivingSubjectBirthPlaceAddress SHALL NOT be repeated [0..1] (Section 3.47.4.1.2.2 - ITI TF-2b)
OCL
self.livingSubjectBirthPlaceAddress->size() <= 1
The data type of MatchAlgorithm.value is constrained to ST (Section 3.47.4.1.2.2 - ITI TF-2b)
OCL
self.value.oclIsKindOf(ST)
The data type of MinimumDegreeMatch.value is constraint to INT
OCL
self.value.oclIsKindOf(INT)
The data type of LivingSubjectName.value is constraint to PN (Section 3.47.4.1.2.2 - ITI TF-2b)
OCL
self.value->forAll(en : EN |
not (en.oclIsKindOf(TN) or en.oclIsKindOf(ON))
)
Exactly one value attribute SHALL be present in LivingSubjectName parameter (Section 3.47.4.1.2.2 - ITI TF-2b)
OCL
self.value->size() = 1
Exactly one value attribute SHALL be present in LivingSubjectBirthPlaceAddress parameter (Section 3.47.4.1.2.2 - ITI TF-2b)
OCL
self.value->size() = 1
Exactly one value attribute SHALL be present in LivingSubjectBirthTime parameter (Section 3.47.4.1.2.2 - ITI TF-2b)
OCL
self.value->size() = 1
Exactly one value attribute SHALL be present in LivingSubjectDeceasedTime parameter (Section 3.47.4.1.2.2 - ITI TF-2b)
OCL
self.value->size() = 1
Exactly one value attribute SHALL be present in LivingSubjectId parameter (Section 3.47.4.1.2.2 - ITI TF-2b)
OCL
self.value->size() = 1
IHE requirements for patient identifiers: value.root attribute SHALL be present and format as a valid ISO OID, and extension SHALL be present (Table E-2.2-2)
OCL
self.value->forAll(ii : II |
not ii.root.oclIsUndefined() and
ii.isOID(ii.root) and
not(ii.extension.oclIsUndefined())
)
Exactly one value attribute SHALL be present in OtherIDsScopingOrganization parameter (Section 3.47.4.1.2.2 - ITI TF-2b)
OCL
self.value->size() = 1
IHE restriction: The value.root attribute SHALL be a valid ISO OID, and the value.extension attribute SHALL NOT be present (Table 3.47.4.1.2-1 from TF ITI-2b)
OCL
self.value->forAll(ii : II |
not ii.root.oclIsUndefined() and
ii.isOID(ii.root) and
ii.extension.oclIsUndefined()
)
Exactly one value attribute SHALL be present in MothersMaidenName parameter (Section 3.47.4.1.2.2 - ITI TF-2b)
OCL
self.value->size() = 1
Exactly one value attribute SHALL be present in PrincipalCareProviderId parameter (Section 3.47.4.1.2.2 - ITI TF-2b)
OCL
self.value->size() = 1
Exactly one value attribute SHALL be present in PrincipalCareProvisionId parameter (Section 3.47.4.1.2.2 - ITI TF-2b)
OCL
self.value->size() = 1
acceptAckCode SHALL be set to NE as this is an acknowledgment itself (Table O-1.3-2: Model Attributes)
OCL
not self.acceptAckCode.oclIsUndefined() and not self.acceptAckCode.code.oclIsUndefined() and self.acceptAckCode.code='NE'
message SHALL contain exactly one receiver (Figure O-1.3-2: Message Information Model)
OCL
self.receiver->size() = 1
Exactly one acknowledgement SHALL be present (Figure O.1.3-2: Message Information Model)
OCL
self.acknowledgement->size()=1
The value of interactionId SHALL be set to PRPA_IN201306UV02 (Table 3.47.4.2.2-9: Wrappers and Constraints - ITI-2b)
OCL
not self.interactionId.oclIsUndefined()
and not self.interactionId.extension.oclIsUndefined()
and self.interactionId.extension='PRPA_IN201306UV02'
The value of processingModeCode SHALL be set to T (Table 3.47.4.2.2-9: Wrappers and Constraints - ITI-2b)
OCL
not self.processingModeCode.oclIsUndefined() and not self.processingModeCode.code.oclIsUndefined() and self.processingModeCode.code='T'
Subject SHALL contain exactly one contextConductionInd attribute (Table O.2.2-2)
OCL
not self.contextConductionInd.oclIsUndefined()
The context conduction Indicator value in this control act wrapper SHALL be 'false' (Table O.2.2-2)
OCL
not self.contextConductionInd.oclIsUndefined() and self.contextConductionInd=false
Patient SHALL have exactly one providerOrganization attribute (Figure 3.47.2.2.-1: Message Information Model for the Patient Registry Find Candidates Response message)
OCL
not self.providerOrganization.oclIsUndefined()
statusCode SHALL be set to 'active' (Table 3.47.4.2.2-8: Model Attributes - ITI-2b)
OCL
not self.statusCode.oclIsUndefined() and not self.statusCode.code.oclIsUndefined() and self.statusCode.code='active'
Patient SHALL have exactly one patientPerson attribute (Figure 3.47.4.2.2-1: Message Information Model for the Patient Registry Find Candidates Response message)
OCL
not self.patientPerson.oclIsUndefined() and self.patientNonPersonLivingSubject.oclIsUndefined()
patientPerson/@classCode SHALL be present (Table 3.47.4.2.2-8: Model Attributes - ITI-2b)
OCL
not self.classCode.oclIsUndefined()
patientPerson/@determinerCode SHALL be present (Table 3.47.4.2.2-8: Model Attributes - ITI-2b)
OCL
not self.determinerCode.oclIsUndefined()
personRelationship/@classCode SHALL be present (Table 3.47.4.2.2-8: Model Attributes - ITI-2b)
OCL
not self.classCode.oclIsUndefined()
asCitizen/@classCode SHALL be present (Table 3.47.4.2.2-8: Model Attributes - ITI-2b)
OCL
not self.classCode.oclIsUndefined()
politicalNation/@classCode SHALL be present (Table 3.47.4.2.2-8: Model Attributes - ITI-2b)
OCL
not self.classCode.oclIsUndefined()
politicalNation/@determinerCode SHALL be present (Table 3.47.4.2.2-8: Model Attributes - ITI-2b)
OCL
not self.determinerCode.oclIsUndefined()
The trigger event code in Control Act Process.code SHALL be set to PRPA_TE201306UV02 (Table 3.47.4.2.2-9: Wrappers and Constraints - ITI-2b)
OCL
not self.code.oclIsUndefined() and not self.code.code.oclIsUndefined() and self.code.code='PRPA_TE201306UV02'
The SHALL be a QueryByParameter copy of the original query (Table 3.47.4.2.2-9: Wrappers and Constraints - ITI-2b)
OCL
not self.queryByParameter.oclIsUndefined()
There SHALL be NO replacementOf act-relationship present in this message (Table 3.47.4.2.2-9: Wrappers and Constraints - ITI-2b)
OCL
self.replacementOf->size() = 0
Since this is an Accept Acknowledgement, the possible values are AA, AE or AR (A reference is needed there)
OCL
not self.typeCode.oclIsUndefined()
and not self.typeCode.code.oclIsUndefined()
and (
self.typeCode.code='AA'
or self.typeCode.code='AE'
or self.typeCode.code='AR'
)
A numeric value indicating the quality of the mathch for this record. Datatype of value attribute SHALL be INT. Table 3.47.4.2.2-8
OCL
self.value.oclIsKindOf(INT)
acceptAckCode SHALL be set to AL (Table 3.47.4.3.2-1: Wrappers and Constraints)
OCL
not self.acceptAckCode.oclIsUndefined() and not self.acceptAckCode.code.oclIsUndefined() and self.acceptAckCode.code='AL'
Exactly one acknowledgement SHALL be present (Figure O.1.3-2: Message Information Model)
OCL
self.acknowledgement->size()=1
message SHALL contain exactly one receiver (Figure O-1.3-2: Message Information Model)
OCL
self.receiver->size() = 1
The value of interactionId SHALL be set to QUQI_IN000003UV01 (Table 3.47.4.3.2-1: Wrappers and Constraints)
OCL
not self.interactionId.oclIsUndefined()
and not self.interactionId.extension.oclIsUndefined()
and self.interactionId.extension='QUQI_IN000003UV01'
The value of processingModeCode SHALL be set to T (Table 3.47.4.3.2-1: Wrappers and Constraints)
OCL
not self.processingModeCode.oclIsUndefined()
and not self.processingModeCode.code.oclIsUndefined()
and self.processingModeCode.code='T'
The trigger event code in ControlActProcess.code SHALL be set to PRPA_TE000003UV01 (Table 3.47.4.3.2-1: Wrappers and Constraints)
OCL
not self.code.oclIsUndefined()
and not self.code.code.oclIsUndefined()
and self.code.code='PRPA_TE000003UV01'
The Acknowledgement.typeCode SHALL be set to AA
OCL
not self.typeCode.oclIsUndefined()
and not self.typeCode.code.oclIsUndefined()
and self.typeCode.code='AA'
The assigned entity for this participant SHALL be either an organization or a device (Table O.2.1-1: Model Attributes)
OCL
if (not self.assignedEntity.oclIsUndefined())
then
self.assignedEntity.assignedPerson.oclIsUndefined()
else self.assignedEntity.oclIsUndefined()
endif
PriorRegistration SHALL have a statusCode attribute (Table O.2.1-1: Model Attributes)
OCL
not self.statusCode.oclIsUndefined()
Message.acceptAckCode is fixed to NE (don't ack an ack) (Section O.1.2: Send accept acknowledgement information model)
OCL
not self.acceptAckCode.oclIsUndefined()
and not self.acceptAckCode.code.oclIsUndefined()
and self.acceptAckCode.code='NE'
Acknowledgement is a required class. Message SHALL contain exactly one Acknowledgement attribute (Figure O.1.2-1: Message Information Model)
OCL
self.acknowledgement->size()=1
Valid values for processingCode attribute are D (Debugging), T (Testing) and P (Production) (Table O.1.2-1: Model Attributes)
OCL
not self.processingCode.oclIsUndefined()
and not self.processingCode.code.oclIsUndefined()
and (
self.processingCode.code='T'
or self.processingCode.code='D'
or self.processingCode.code='P'
)
Valid values for processingModeCode are A (Archive), T (Current processing), I (Initial Load) and R (Restore from archive) (Table O.1.2-1: Model Attributes)
OCL
not self.processingModeCode.oclIsUndefined()
and not self.processingModeCode.code.oclIsUndefined()
and (
self.processingModeCode.code='A'
or self.processingModeCode.code='T'
or self.processingModeCode.code='I'
or self.processingModeCode.code='R'
)
ControlActProcess SHALL have one [1..1] queryByParamerter
OCL
not (self.queryByParameter.oclIsUndefined())
ControlActProcess.code.code SHALL be set to PRPA_TE201309UV02
OCL
not (self.code.oclIsUndefined())
and self.code.code='PRPA_TE201309UV02'
ControlActProcess.authorOrPerformer.typeCode SHALL be set to AUT
OCL
self.authorOrPerformer->forAll( var : QUQIMT021001UV01AuthorOrPerformer |
not (var.typeCode.oclIsUndefined())
and var.typeCode=XParticipationAuthorPerformer::AUT
)
Exactly one QueryByParameter.queryId SHALL be present
OCL
not(self.queryId.oclIsUndefined())
QueryByParameter.statusCode is defaulted to "new"
OCL
not (self.statusCode.oclIsUndefined())
and not(self.statusCode.code.oclIsUndefined())
and self.statusCode.code = 'new'
QueryByParameter.responsePriorityCode is required and is fixed to I (Immediate)
OCL
not (self.responsePriorityCode.oclIsUndefined())
and not (self.responsePriorityCode.code.oclIsUndefined())
and self.responsePriorityCode.code='I'
If one or more DataSource parameters are present, each SHALL contain exactly one [1..1] DataSource.value parameter
The value.root attribute SHALL be a valid ISO OID The value.extension attribute SHALL NOT be present
OCL
self.value->select(var : II |
(not var.root.oclIsUndefined()) and var.isOID(var.root) and var.extension.oclIsUndefined())->size() = 1
Exactly one [1..1] PatientIdentifier.value SHALL be present
OCL
self.value->size()=1
ParameterList SHALL have one [1..1] PatientIdentifier
OCL
self.patientIdentifier->size()=1
Message.interactionId SHALL be set to PRPA_IN201309UV02
OCL
self.interactionId->forAll( ii : II |
ii.extension='PRPA_IN201309UV02'
)
Message.processingModeCode.code SHALL be set to T
OCL
not (self.processingModeCode.code.oclIsUndefined())
and self.processingModeCode.code='T'
Message SHALL have just one [1..1] receiver and receiver SHALL have one [1..1] device
OCL
self.receiver->size()=1
The id attribute of Provider Organization shall have only a root
OCL
self.id->forAll(ii : II |
not (ii.root.oclIsUndefined()) and
ii.assigningAuthorityName.oclIsUndefined() and
ii.extension.oclIsUndefined() and
ii.displayable.oclIsUndefined()
)
The id/@root attribute of Provider Organization shall be expressed as an ISO OID
OCL
self.id->forAll(ii : II |
not ii.root.oclIsUndefined() and
ii.isOID(ii.root)
)
The Provider Organization needs to be identified by at least one of address, telecommunications address, or contact person.
OCL
not (self.contactPerson.oclIsUndefined())
or self.telecom->size() > 0
or self.addr->size() > 0
otherIDs.id.root SHALL be identical to scopingOrganization.id.root
OCL
self.id->size() > 0
and not (self.scopingOrganization.oclIsUndefined())
and self.scopingOrganization.id->size() > 0
and self.id->forAll(ii : II |
not (ii.root.oclIsUndefined()) and
self.scopingOrganization.id->select(ii2: II |
not (ii2.root.oclIsUndefined())
and not (ii.root = ii2.root))->size() = 0
)
All IHE Actors are required to send the extension attribute for any id element representing a patient identifier
OCL
self.id->forAll(ii: II | not (ii.extension.oclIsUndefined()))
The focal entity choice is restricted to be only a person
OCL
not (self.patientPerson.oclIsUndefined()) and self.patientNonPersonLivingSubject.oclIsUndefined()
All IHE Actors are required to send the extension attribute for any id element representing a patient identifier
OCL
self.id->forAll(ii: II | not (ii.extension.oclIsUndefined()))
When the Patient role is scoped by a Provider organization, only patient IDs assigned by the provider organization are allowed in the Patient class, the root element of the patient
IDs shall match the root element of the provider organization ID.
OCL
(self.providerOrganization.oclIsUndefined() or self.providerOrganization.id->size() = 0)
xor
self.id->forAll(ii: II |
self.providerOrganization.id->exists(orgid: II | not (orgid.root.oclIsUndefined()) and orgid.root = ii.root))
patientPerson.classCode attribute is mandatory
OCL
not (self.classCode.oclIsUndefined())
patientPerson.determinerCode attribute is mandatory
OCL
not (self.determinerCode.oclIsUndefined())
All IHE Actors are required to send the extension attribute for any id element representing a patient identifier
OCL
self.id->forAll(ii: II | not (ii.extension.oclIsUndefined()))
The relationship holder of the personal relationship is restricted to be a person
OCL
not (self.relationshipHolder1.oclIsUndefined()) and self.relationshipHolder2.oclIsUndefined()
personalRelationship.classCode attribute is mandatory
OCL
not (self.classCode.oclIsUndefined())
asCitizen.classCode attribute is mandatory
OCL
not (self.classCode.oclIsUndefined())
politicalNation.classCode attribute is mandatory
OCL
not (self.classCode.oclIsUndefined())
politicalNation.determinerCode attribute is mandatory
OCL
not (self.determinerCode.oclIsUndefined())
birthPlace.classCode attribute is mandatory
OCL
not (self.classCode.oclIsUndefined())
Either BirthPlace.addr or an associated BirthPlace.name must be valued
OCL
not (self.birthplace.oclIsUndefined() or self.birthplace.name->size() = 0) or not (self.addr.oclIsUndefined())
The value of processingModeCode SHALL be set to T
OCL
not (self.processingModeCode.oclIsUndefined()) and not (self.processingModeCode.code.oclIsUndefined()) and self.processingModeCode.code = 'T'
The value of acceptAckCode SHALL be set to AL
OCL
not (self.acceptAckCode.oclIsUndefined()) and not (self.acceptAckCode.code.oclIsUndefined()) and self.acceptAckCode.code = 'AL'
For Add Patient Record message, the value of interactionId SHALL be set to PRPA_IN201301UV02
OCL
not (self.interactionId.oclIsUndefined()) and not (self.interactionId.extension.oclIsUndefined()) and self.interactionId.extension = 'PRPA_IN201301UV02'
There SHALL be only one receiver Device
OCL
self.receiver->size() = 1
For Add Patient Record message, the trigger event code ControlActProcess.code SHALL be set to PRPA_TE201301UV02
OCL
not (self.code.oclIsUndefined()) and not (self.code.code.oclIsUndefined()) and self.code.code = 'PRPA_TE201301UV02'
RegistrationEvent.statusCode SHALL be set to active
OCL
not (self.statusCode.oclIsUndefined()) and not (self.statusCode.code.oclIsUndefined()) and self.statusCode.code = 'active'
There SHALL be no ReplacementOf act relationship for the Add Patient Record and Revise Patient Record interactions.
OCL
self.replacementOf->size() = 0
RegistrationEvent.effectiveTime and the author.time SHALL be valued with the same time expression
OCL
((self.effectiveTime.oclIsUndefined() or self.effectiveTime.value.oclIsUndefined())
or
(self.author.oclIsUndefined() or self.author.time.oclIsUndefined() or self.author.time.value.oclIsUndefined()))
or
(self.effectiveTime.value = self.author.time.value)
The context conduction Indicator value in the MFMI_MT700701UV01 control act wrapper is mandatory and SHALL be false
OCL
not (self.contextConductionInd.oclIsUndefined()) and not (self.contextConductionInd)
otherIDs.id.root SHALL be identical to scopingOrganization.id.root
OCL
self.id->size() > 0
and not (self.scopingOrganization.oclIsUndefined())
and self.scopingOrganization.id->size() > 0
and self.id->forAll(ii : PRPAMT201302UV02OtherIDsId |
not (ii.root.oclIsUndefined()) and
self.scopingOrganization.id->select(ii2: II |
not (ii.root = ii2.root))->size() = 0
)
All IHE Actors are required to send the extension attribute for any id element representing a patient identifier
OCL
self.id->forAll(ii: PRPAMT201302UV02OtherIDsId | not (ii.extension.oclIsUndefined()))
birthPlace.classCode attribute is mandatory
OCL
not (self.classCode.oclIsUndefined())
Either BirthPlace.addr or an associated BirthPlace.name must be valued
OCL
not (self.birthplace.oclIsUndefined() or self.birthplace.name->size() = 0) or not (self.addr.oclIsUndefined())
asCitizen.classCode attribute is mandatory
OCL
not (self.classCode.oclIsUndefined())
For Revise Patient Record message, the trigger event code ControlActProcess.code SHALL be set to PRPA_TE201302UV02
OCL
not (self.code.oclIsUndefined()) and not (self.code.code.oclIsUndefined()) and self.code.code = 'PRPA_TE201302UV02'
For Revise Patient Record message, the value of interactionId SHALL be set to PRPA_IN201302UV02
OCL
not (self.interactionId.oclIsUndefined()) and not (self.interactionId.extension.oclIsUndefined()) and self.interactionId.extension = 'PRPA_IN201302UV02'
The value of processingModeCode SHALL be set to T
OCL
not (self.processingModeCode.oclIsUndefined()) and not (self.processingModeCode.code.oclIsUndefined()) and self.processingModeCode.code = 'T'
The value of acceptAckCode SHALL be set to AL
OCL
not (self.acceptAckCode.oclIsUndefined()) and not (self.acceptAckCode.code.oclIsUndefined()) and self.acceptAckCode.code = 'AL'
There SHALL be only one receiver Device
OCL
self.receiver->size() = 1
politicalNation.classCode attribute is mandatory
OCL
not (self.classCode.oclIsUndefined())
politicalNation.determinerCode attribute is mandatory
OCL
not (self.determinerCode.oclIsUndefined())
The focal entity choice is restricted to be only a person
OCL
not (self.patientPerson.oclIsUndefined()) and self.patientNonPersonLivingSubject.oclIsUndefined()
The provider Organization which is scoping the patient role is required
OCL
not(self.providerOrganization.oclIsUndefined())
All IHE Actors are required to send the extension attribute for any id element representing a patient identifier
OCL
self.id->forAll(ii: PRPAMT201302UV02PatientId | not (ii.extension.oclIsUndefined()))
When the Patient role is scoped by a Provider organization, only patient IDs assigned by the provider organization are allowed in the Patient class, the root element of the patient
IDs shall match the root element of the provider organization ID.
OCL
(self.providerOrganization.oclIsUndefined() or self.providerOrganization.id->size() = 0)
xor
self.id->forAll(ii: PRPAMT201302UV02PatientId |
self.providerOrganization.id->exists(orgid: II | not (orgid.root.oclIsUndefined()) and orgid.root = ii.root))
The relationship holder of the personal relationship is restriced to be a person
OCL
not (self.relationshipHolder1.oclIsUndefined()) and self.relationshipHolder2.oclIsUndefined()
personalRelationship.classCode attribute is mandatory
OCL
not (self.classCode.oclIsUndefined())
patientPerson.classCode attribute is mandatory
OCL
not (self.classCode.oclIsUndefined())
patientPerson.determinerCode attribute is mandatory
OCL
not (self.determinerCode.oclIsUndefined())
All IHE Actors are required to send the extension attribute for any id element representing a patient identifier
OCL
self.id->forAll(ii: PRPAMT201302UV02PersonId | not (ii.extension.oclIsUndefined()))
RegistrationEvent.statusCode SHALL be set to active
OCL
not (self.statusCode.oclIsUndefined()) and not (self.statusCode.code.oclIsUndefined()) and self.statusCode.code = 'active'
There SHALL be no ReplacementOf act relationship for the Add Patient Record and Revise Patient Record interactions.
OCL
self.replacementOf->size() = 0
RegistrationEvent.effectiveTime and the author.time SHALL be valued with the same time expression
OCL
((self.effectiveTime.oclIsUndefined() or self.effectiveTime.value.oclIsUndefined())
or
(self.author.oclIsUndefined() or self.author.time.oclIsUndefined() or self.author.time.value.oclIsUndefined()))
or
(self.effectiveTime.value = self.author.time.value)
The context conduction Indicator value in the MFMI_MT700701UV01 control act wrapper is mandatory and SHALL be false
OCL
not (self.contextConductionInd.oclIsUndefined()) and not (self.contextConductionInd)
For Patients Registry Duplicates Resolved message, the interactionId SHALL be set to PRPA_IN201304UV02
OCL
not (self.interactionId.oclIsUndefined()) and not (self.interactionId.extension.oclIsUndefined()) and self.interactionId.extension = 'PRPA_IN201304UV02'
The value of processingModeCode SHALL be set to T
OCL
not (self.processingModeCode.oclIsUndefined()) and not (self.processingModeCode.code.oclIsUndefined()) and self.processingModeCode.code = 'T'
The value of acceptAckCode SHALL be set to AL
OCL
not (self.acceptAckCode.oclIsUndefined()) and not (self.acceptAckCode.code.oclIsUndefined()) and self.acceptAckCode.code = 'AL'
There SHALL be only one receiver Device
OCL
self.receiver->size() = 1
The trigger event code in ControlActProcess.code SHALL be set to PRPA_TE201304UV02
OCL
not (self.code.oclIsUndefined()) and not (self.code.code.oclIsUndefined()) and self.code.code = 'PRPA_TE201304UV02'
registrationEvent.statusCode SHALL be set to active
OCL
not (self.statusCode.oclIsUndefined()) and not (self.statusCode.code.oclIsUndefined()) and self.statusCode.code = 'active'
There SHALL be an InReplacementOf act relationship
OCL
self.replacementOf->size() = 1
RegistrationEvent.effectiveTime and the author.time SHALL be valued with the same time expression
OCL
((self.effectiveTime.oclIsUndefined() or self.effectiveTime.value.oclIsUndefined())
or
(self.author.oclIsUndefined() or self.author.time.oclIsUndefined() or self.author.time.value.oclIsUndefined()))
or
(self.effectiveTime.value = self.author.time.value)
The value of PriorRegistration.statusCode SHALL be "obsolete"
OCL
not (self.statusCode.oclIsUndefined()) and not (self.statusCode.code.oclIsUndefined()) and self.statusCode.code = 'obsolete'
There SHALL be a PriorRegisteredRole role
OCL
not (self.subject1.oclIsUndefined()) and not(self.subject1.priorRegisteredRole.oclIsUndefined())
There SHALL be a single PriorRegisteredRole.id attribute, representing the subsumed patient identifier
OCL
self.id->size() = 1
All IHE Actors are required to send the extension attribute for any id element representing a patient identifier
OCL
self.id->forAll(ii: II | not (ii.extension.oclIsUndefined()))
The focal entity choice is restricted to be only a person
OCL
not (self.patientPerson.oclIsUndefined()) and self.patientNonPersonLivingSubject.oclIsUndefined()
This record is active, that means that the statusCode.code attribute is valued to "active"
OCL
not (self.statusCode.oclIsUndefined()) and not (self.statusCode.code.oclIsUndefined()) and self.statusCode.code = 'active'
All IHE Actors are required to send the extension attribute for any id element representing a patient identifier
OCL
self.id->forAll(ii: II | not (ii.extension.oclIsUndefined()))
When the Patient role is scoped by a Provider organization, only patient IDs assigned by the provider organization are allowed in the Patient class, the root element of the patient
IDs shall match the root element of the provider organization ID.
OCL
(self.providerOrganization.oclIsUndefined() or self.providerOrganization.id->size() = 0)
xor
self.id->forAll(ii: II |
self.providerOrganization.id->exists(orgid: II | not (orgid.root.oclIsUndefined()) and orgid.root = ii.root))
Person.name must be non-null
OCL
self.name->size() > 0
and
self.name->exists(pn: PN |
pn.family->size() > 0
or pn.given->size() > 0
or pn.prefix->size() > 0
or pn.suffix->size() > 0
)
patientPerson.classCode attribute is mandatory
OCL
not (self.classCode.oclIsUndefined())
patientPerson.determinerCode attribute is mandatory
OCL
not (self.determinerCode.oclIsUndefined())
All IHE Actors are required to send the extension attribute for any id element representing a patient identifier
OCL
self.id->forAll(ii: II | not (ii.extension.oclIsUndefined()))
All IHE Actors are required to send the extension attribute for any id element representing a patient identifier
OCL
self.id->forAll(ii: II | not (ii.extension.oclIsUndefined()))
The context conduction Indicator value in the MFMI_MT700701UV01 control act wrapper is mandatory and SHALL be false
OCL
not (self.contextConductionInd.oclIsUndefined()) and not (self.contextConductionInd)
Patient SHALL have one or more [1..*] id and nullFlavor SHALL be undefined
OCL
self.id->size()>0
and self.id->forAll(ii : II |
ii.nullFlavor.oclIsUndefined()
)
Patient SHALL have one [1..1] statusCode and is value is fixed to active
OCL
not (self.statusCode.oclIsUndefined())
and not (self.statusCode.code.oclIsUndefined())
and self.statusCode.code='active'
The focal entity choice is restricted to be only a person
OCL
self.patientNonPersonLivingSubject.oclIsUndefined()
and not (self.patientPerson.oclIsUndefined())
IHE requires that the Patient Identifier Cross-reference Manager populates element assigningAuthorityName of any id attribute representing a patient identifier
OCL
self.id->forAll(ii: II |
not (ii.assigningAuthorityName.oclIsUndefined())
)
All IHE Actors are required to send the extension attribute for any id element representing a patient identifier
OCL
self.id->forAll(ii: II |
not (ii.extension.oclIsUndefined())
)
When the Patient role is scoped by a Provider organization, only patient IDs assigned by the provider organization are allowed in the Patient class, the root element of the patient IDs shall match the root element of the provider organization ID.
OCL
(
self.providerOrganization.oclIsUndefined()
or self.providerOrganization.id->size() = 0
)
xor
self.id->forAll(ii: II |
self.providerOrganization.id->exists(orgid: II |
not (orgid.root.oclIsUndefined()) and
orgid.root = ii.root
)
)
OtherIDs SHALL have one [1..1] classCode and is value is fixed to ROL
OCL
not (self.classCode.oclIsUndefined())
and self.classCode='ROL'
OtherIDs SHALL have one or more [1..*] id and nullFlavor SHALL be undefined
OCL
self.id->select(ii : II |
ii.nullFlavor.oclIsUndefined()
)->size()>0
IHE requires that the Patient Identifier Cross-reference Manager populates element assigningAuthorityName of any id attribute representing a patient identifier
OCL
self.id->forAll(ii: II |
not (ii.assigningAuthorityName.oclIsUndefined())
)
All IHE Actors are required to send the extension attribute for any id element representing a patient identifier
OCL
self.id->forAll(ii: II |
not (ii.extension.oclIsUndefined())
)
Message.interactionId SHALL be set to PRPA_IN201310UV02
OCL
self.interactionId->forAll( ii : II |
ii.extension='PRPA_IN201310UV02'
)
Message.processingModeCode SHALL be set to T
OCL
not (self.processingModeCode.code.oclIsUndefined())
and self.processingModeCode.code='T'
Message.acceptAckCode SHALL be set to NE
OCL
not (self.acceptAckCode.code.oclIsUndefined())
and self.acceptAckCode.code='NE'
Message SHALL have just one [1..1] receiver and receiver SHALL have one [1..1] device
OCL
self.receiver->size()=1
Acknowledgment is a required class (see TF ITI-2x section O.1.2) and SHALL be present exactly once.
OCL
self.acknowledgement->size() = 1
ControlActProcess.moodCode SHALL be set to EVN
OCL
not (self.moodCode.oclIsUndefined())
and self.moodCode=XActMoodIntentEvent::EVN
ControlActProcess.code.code SHALL be set to PRPA_TE201310UV02
OCL
not (self.code.oclIsUndefined())
and not (self.code.code.oclIsUndefined())
and self.code.code='PRPA_TE201310UV02'
ControlActProcess SHALL have one or zero [0..1] subject
OCL
self.subject->size() < 2
ControlActProcess SHALL have one [1..1] QueryByParameter copy of the original query.
OCL
not (self.queryByParameter.oclIsUndefined())
RegistrationEvent SHALL be no replacementOf act-relationship present in this message
OCL
self.replacementOf->size()=0
IHE requires that the Patient Identifier Cross-reference Manager populates element assigningAuthorityName of any id attribute representing a patient identifier
OCL
self.id->forAll(ii: II |
not (ii.assigningAuthorityName.oclIsUndefined())
)
All IHE Actors are required to send the extension attribute for any id element representing a patient identifier
OCL
self.id->forAll(ii: II |
not (ii.extension.oclIsUndefined())
)
otherIDs.id.root SHALL be identical to scopingOrganization.id.root
OCL
self.id->size() > 0
and not (self.scopingOrganization.oclIsUndefined())
and self.scopingOrganization.id->size() > 0
and self.id->forAll(ii : PRPAMT201302UV02OtherIDsId |
not (ii.root.oclIsUndefined()) and
self.scopingOrganization.id->select(ii2: II |
not (ii.root = ii2.root))->size() = 0
)
scopingOrganization.id.extension SHALL NOT have any value
OCL
self.scopingOrganization.oclIsUndefined()
xor (not (self.scopingOrganization.id->size() = 0)
and self.scopingOrganization.id->forAll(ii: II | ii.extension.oclIsUndefined()))
IHE requires that the Patient Identifier Cross-reference Manager populates element assigningAuthorityName of any id attribute representing a patient identifier
OCL
self.id->forAll(ii: PRPAMT201302UV02OtherIDsId | not (ii.assigningAuthorityName.oclIsUndefined()))
All IHE Actors are required to send the extension attribute for any id element representing a patient identifier
OCL
self.id->forAll(ii: PRPAMT201302UV02OtherIDsId | not (ii.extension.oclIsUndefined()))
For Revise Patient Record message, the trigger event code ControlActProcess.code SHALL be set to PRPA_TE201302UV02
OCL
not (self.code.oclIsUndefined()) and not (self.code.code.oclIsUndefined()) and self.code.code = 'PRPA_TE201302UV02'
For Revise Patient Record message, the value of interactionId SHALL be set to PRPA_IN201302UV02
OCL
not (self.interactionId.oclIsUndefined()) and not (self.interactionId.extension.oclIsUndefined()) and self.interactionId.extension = 'PRPA_IN201302UV02'
The value of processingModeCode SHALL be set to T
OCL
not (self.processingModeCode.oclIsUndefined()) and not (self.processingModeCode.code.oclIsUndefined()) and self.processingModeCode.code = 'T'
The value of acceptAckCode SHALL be set to AL
OCL
not (self.acceptAckCode.oclIsUndefined()) and not (self.acceptAckCode.code.oclIsUndefined()) and self.acceptAckCode.code = 'AL'
There SHALL be only one receiver Device
OCL
self.receiver->size() = 1
The focal entity choice is restricted to be only a person
OCL
not (self.patientPerson.oclIsUndefined()) and self.patientNonPersonLivingSubject.oclIsUndefined()
Patient.statusCode attribute is fixed to 'active'
OCL
not (self.statusCode.oclIsUndefined()) and not (self.statusCode.code.oclIsUndefined()) and self.statusCode.code = 'active'
At least one of the id attributes of the Patient class SHALL have a root component matching the value of ProviderOrganization.id.root
OCL
(self.providerOrganization.oclIsUndefined() or self.providerOrganization.id->size() = 0 or self.id->size() = 0)
xor (self.id->exists(pid: PRPAMT201302UV02PatientId |
not (pid.root.oclIsUndefined())
and self.providerOrganization.id->exists(ii: II |
not (ii.root.oclIsUndefined()) and ii.root = pid.root)
)
)
IHE requires that the Patient Identifier Cross-reference Manager populates element assigningAuthorityName of any id attribute representing a patient identifier
OCL
self.id->forAll(ii: PRPAMT201302UV02PatientId | not (ii.assigningAuthorityName.oclIsUndefined()))
All IHE Actors are required to send the extension attribute for any id element representing a patient identifier
OCL
self.id->forAll(ii: PRPAMT201302UV02PatientId | not (ii.extension.oclIsUndefined()))
When the Patient role is scoped by a Provider organization, only patient IDs assigned by the provider organization are allowed in the Patient class, the root element of the patient
IDs shall match the root element of the provider organization ID.
OCL
(self.providerOrganization.oclIsUndefined() or self.providerOrganization.id->size() = 0)
xor
self.id->forAll(ii: PRPAMT201302UV02PatientId |
self.providerOrganization.id->exists(orgid: II | not (orgid.root.oclIsUndefined()) and orgid.root = ii.root))
patientPerson.classCode attribute is mandatory
OCL
not (self.classCode.oclIsUndefined())
patientPerson.determinerCode attribute is mandatory
OCL
not (self.determinerCode.oclIsUndefined())
IHE requires that the Patient Identifier Cross-reference Manager populates element assigningAuthorityName of any id attribute representing a patient identifier
OCL
self.id->forAll(ii: PRPAMT201302UV02PersonId | not (ii.assigningAuthorityName.oclIsUndefined()))
All IHE Actors are required to send the extension attribute for any id element representing a patient identifier
OCL
self.id->forAll(ii: PRPAMT201302UV02PersonId | not (ii.extension.oclIsUndefined()))
RegistrationEvent.statusCode SHALL be set to active
OCL
not (self.statusCode.oclIsUndefined()) and not (self.statusCode.code.oclIsUndefined()) and self.statusCode.code = 'active'
There SHALL be no ReplacementOf act relationship for the Add Patient Record and Revise Patient Record interactions.
OCL
self.replacementOf->size() = 0
RegistrationEvent.effectiveTime and the author.time SHALL be valued with the same time expression
OCL
((self.effectiveTime.oclIsUndefined() or self.effectiveTime.value.oclIsUndefined())
or
(self.author.oclIsUndefined() or self.author.time.oclIsUndefined() or self.author.time.value.oclIsUndefined()))
or
(self.effectiveTime.value = self.author.time.value)
The Provider Organization needs to be identified by at least one of address, telecommunications address, or contact person.
OCL
not (self.contactPerson.oclIsUndefined())
or self.telecom->size() > 0
or self.addr->size() > 0
The id attribute of Provider Organization shall have only a root
OCL
self.id->forAll(ii : II |
not (ii.root.oclIsUndefined()) and
ii.assigningAuthorityName.oclIsUndefined() and
ii.extension.oclIsUndefined() and
ii.displayable.oclIsUndefined()
)
The id/@root attribute of Provider Organization shall be expressed as an ISO OID
OCL
self.id->forAll(ii : II |
not ii.root.oclIsUndefined() and
ii.isOID(ii.root)
)
The context conduction Indicator value in the MFMI_MT700701UV01 control act wrapper is mandatory and SHALL be false
OCL
not (self.contextConductionInd.oclIsUndefined()) and not (self.contextConductionInd)
IHE restriction: id.root SHALL be an ISO OID, and id.extension SHALL not have a value (Table O.1.1-1: Model Attributes)
OCL
self.id->forAll(ii : II |
not ii.root.oclIsUndefined() and
ii.isOID(ii.root) and
ii.extension.oclIsUndefined()
)
IHE restriction: id.root SHALL be an ISO OID, and id.extension SHALL NOT have a value
OCL
self.id->forAll(ii : II |
not ii.root.oclIsUndefined() and
ii.isOID(ii.root) and
ii.extension.oclIsUndefined()
)
typeCode attribute of receiver SHALL be equal to RCV (Table O.1.1-1: Model attributes)
OCL
self.typeCode=CommunicationFunctionType::RCV
typeCode attribute of device SHALL be equal to RCV (Table O.1.1-1: Model attributes)
OCL
self.typeCode=CommunicationFunctionType::SND
QueryContinuation SHALL have a queryId attribute (Table O.2.4-4: Model Attributes)
OCL
not self.queryId.oclIsUndefined()
Default value of queryContinuation/statusCode is 'waitContinuedQueryResponse'; the only other possible value is 'aborted', indicating taht no more results are needed from the query fulfiller (Table O.2.4-4: Model Attributes)
OCL
not self.statusCode.oclIsUndefined()
and not self.statusCode.code.oclIsUndefined()
and (
self.statusCode.code='waitContinuedQueryResponse'
or
self.statusCode.code='aborted'
)
QueryId SHALL have a queryId attribute (Table O.2.2-2)
OCL
not self.queryId.oclIsUndefined()
QueryAck SHALL have a statusCode element (Table O.2.2-2)
OCL
not self.statusCode.oclIsUndefined()
statusCode attribute SHALL be present (Table O.2.2-2)
OCL
not self.statusCode.oclIsUndefined()
typeCode attribute of receiver SHALL be equal to RCV (Table O.1.1-1: Model attributes)
OCL
self.typeCode=CommunicationFunctionType::RCV
typeCode attribute of device SHALL be equal to RCV (Table O.1.1-1: Model attributes)
OCL
self.typeCode=CommunicationFunctionType::SND
IHE restriction: id.root SHALL be an ISO OID, and id.extension SHALL not have a value (Table O.1.1-1: Model Attributes)
OCL
self.id->forAll(ii : II |
not ii.root.oclIsUndefined() and
ii.isOID(ii.root) and
ii.extension.oclIsUndefined()
)
IHE restriction: id.root SHALL be an ISO OID, and id.extension SHALL NOT have a value
OCL
self.id->forAll(ii : II |
not ii.root.oclIsUndefined() and
ii.isOID(ii.root) and
ii.extension.oclIsUndefined()
)
The acknowledgement type. Since this is an Accept Acknowledgement, the possible values are CA (Accept Acknowledgement Commit Accept), CE (Accept Acknowledgement Commit Error), or CR (Accept Acknowledgement Commit
Reject). Table O.1.2-1
OCL
not self.typeCode.oclIsUndefined()
and not self.typeCode.code.oclIsUndefined()
and (
self.typeCode.code='CA'
or self.typeCode.code='CE'
or self.typeCode.code='CR'
)
typeCode attribute of receiver SHALL be equal to RCV (Table O.1.1-1: Model attributes)
OCL
self.typeCode=CommunicationFunctionType::RCV
typeCode attribute of device SHALL be equal to RCV (Table O.1.1-1: Model attributes)
OCL
self.typeCode=CommunicationFunctionType::SND
IHE restriction: id.root SHALL be an ISO OID, and id.extension SHALL not have a value (Table O.1.1-1: Model Attributes)
OCL
self.id->forAll(ii : II |
not ii.root.oclIsUndefined() and
ii.isOID(ii.root) and
ii.extension.oclIsUndefined()
)
IHE restriction: id.root SHALL be an ISO OID, and id.extension SHALL NOT have a value
OCL
self.id->forAll(ii : II |
not ii.root.oclIsUndefined() and
ii.isOID(ii.root) and
ii.extension.oclIsUndefined()
)
The responsePriorityCode SHALL be valued with "I" indicates that the Responding Gateway is required to send an immediate response. (Table 3.55.4.1.2-1)
OCL
not (self.responsePriorityCode.oclIsUndefined()) and not(self.responsePriorityCode.code.oclIsUndefined()) and self.responsePriorityCode.code='I'
There shall be only one receiver Device
OCL
self.receiver->size() = 1
The acceptAckCode shall be set to NE
OCL
not (self.acceptAckCode.oclIsUndefined()) and not (self.acceptAckCode.code.oclIsUndefined()) and self.acceptAckCode.code = 'NE'
The value of processingModeCode shall be set to T
OCL
not(self.processingModeCode.oclIsUndefined()) and not(self.processingModeCode.code.oclIsUndefined()) and self.processingModeCode.code = 'T'
The value of interactionId shall be set to PRPA_IN201306UV02
OCL
not(self.interactionId.oclIsUndefined()) and not (self.interactionId.extension.oclIsUndefined()) and self.interactionId.extension = 'PRPA_IN201306UV02'
The relationship holder of the personal relationship is restricted to be a person (using CMET COCT_MT030207UV)
OCL
self.relationshipHolder2.oclIsUndefined()
The patient entity is restricted to be only a person
OCL
self.patientNonPersonLivingSubject.oclIsUndefined()
Exactly one Patient.id element shall be present
OCL
self.id->size() = 1
Patient.statusCode element shall be set to active
OCL
not (self.statusCode.oclIsUndefined()) and not (self.statusCode.code.oclIsUndefined()) and self.statusCode.code = 'active'
Patient.confidentialityCode element shall be taken from CWE:Confidentiality (value set with OID 2.16.840.1.113883.5.25)
OCL
self.confidentialityCode->size() = 0
or (
self.confidentialityCode->forAll(ce : CE |
(not ce.code.oclIsUndefined())
and ce.matchesCodeToValueSet('2.16.840.1.113883.5.25', ce.code)
)
)
Patient.veryImportantPersonCode element shall be taken from CWE:PatientImportance (value set with OID 2.16.840.1.113883.5.1075)
OCL
self.veryImportantPersonCode.oclIsUndefined()
or (
(not self.veryImportantPersonCode.code.oclIsUndefined())
and self.veryImportantPersonCode.matchesCodeToValueSet('2.16.840.1.113883.5.1075', self.veryImportantPersonCode.code)
)
Either Person.name or Patient.id must be non-null
OCL
((self.id->size() > 0) and (self.id->forAll(ii : II | ii.nullFlavor.oclIsUndefined())))
or (
(not self.patientPerson.oclIsUndefined())
and (self.patientPerson.name->size() > 0)
and (self.patientPerson.name->forAll(pn : PN | pn.nullFlavor.oclIsUndefined()))
)
Person.administrativeGenderCode element shall be taken from CWE:AdministrativeGender (value set with OID 2.16.840.1.113883.1.11.1)
OCL
self.administrativeGenderCode.oclIsUndefined()
or (
(not self.administrativeGenderCode.code.oclIsUndefined())
and self.administrativeGenderCode.matchesCodeToValueSet('2.16.840.1.113883.1.11.1', self.administrativeGenderCode.code)
)
Person.maritalStatusCode element shall be taken from CWE:MaritalStatus (value set with OID 2.16.840.1.113883.5.2)
OCL
self.maritalStatusCode.oclIsUndefined()
or (
(not self.maritalStatusCode.code.oclIsUndefined())
and self.maritalStatusCode.matchesCodeToValueSet('2.16.840.1.113883.5.2', self.maritalStatusCode.code)
)
Person.religionAffiliationCode element shall be taken from CWE:ReligiousAffiliation (value set with OID 2.16.840.1.113883.5.1076)
OCL
self.religiousAffiliationCode.oclIsUndefined()
or (
(not self.religiousAffiliationCode.code.oclIsUndefined())
and self.religiousAffiliationCode.matchesCodeToValueSet('code', self.religiousAffiliationCode.code)
)
Person.raceCode element shall be taken from CWE:Race (value set with OID 2.16.840.1.113883.5.104)
OCL
self.raceCode->size() = 0
or (
self.raceCode->forAll(ce : CE |
(not ce.code.oclIsUndefined())
and ce.matchesCodeToValueSet('2.16.840.1.113883.5.104', ce.code)
)
)
Person.ethnicGroupCode element shall be taken from CWE:Ethnicity (value set with OID 2.16.840.1.113883.5.50)
OCL
(self.ethnicGroupCode->size() = 0)
or (
self.ethnicGroupCode->forAll(ce : CE |
( not ce.code.oclIsUndefined()) and ce.matchesCodeToValueSet('2.16.840.1.113883.5.50', ce.code)
)
)
asEmployee.classCode shall be equal to EMP
OCL
not (self.classCode.oclIsUndefined()) and self.classCode = RoleClassEmployee::EMP
asEmployee.statusCode element shall be taken from CWE:RoleStatus (value set with OID 2.16.840.1.113883.5.1068)
OCL
self.statusCode.oclIsUndefined()
or (not(self.statusCode.code.oclIsUndefined()) and self.statusCode.matchesCodeToValueSet('2.16.840.1.113883.5.1068', self.statusCode.code))
The trigger event code in ControlActProcess.code shall be set to PRPA_TE201306UV02
OCL
not (self.code.oclIsUndefined()) and not(self.code.code.oclIsUndefined()) and self.code.code = 'PRPA_TE201306UV02'
There shall be a QueryByParameter copy of the original query which shall be in the control act wrapper following the queryAck element
OCL
not(self.queryByParameter.oclIsUndefined())
There shall be no replacementOf act-relationship present in this message
OCL
self.replacementOf->size() = 0
The id element designating the homeCommunityId shall have only the root element, the content of which is the homeCommunityId
OCL
(not self.custodian.oclIsUndefined())
and (not self.custodian.assignedEntity.oclIsUndefined())
and (
self.custodian.assignedEntity.id->forAll(ii : II | ii.extension.oclIsUndefined()
and (not ii.root.oclIsUndefined())
and ii.assigningAuthorityName.oclIsUndefined()
and ii.displayable.oclIsUndefined()
)
)
The QueryAck.resultCurrentQuantity attribute shall not be populated
OCL
self.resultCurrentQuantity.oclIsUndefined() or not(self.resultCurrentQuantity.nullFlavor.oclIsUndefined())
The QueryAck.resultTotalQuantity attribute shall not be populated
OCL
self.resultTotalQuantity.oclIsUndefined() or not(self.resultTotalQuantity.nullFlavor.oclIsUndefined())
The QueryAck.resultRemainingQuantity attribute shall not be populated
OCL
self.resultRemainingQuantity.oclIsUndefined() or not(self.resultRemainingQuantity.nullFlavor.oclIsUndefined())
detectedIssueEvent.code code shall be set to _ActAdministrativeDetectedIssueManagementCode
OCL
not (self.code.oclIsUndefined()) and not(self.code.code.oclIsUndefined()) and self.code.code = '_ActAdministrativeDetectedIssueManagementCode'
detectedIssueEvent.code codeSystem shall be set to 2.16.840.1.113883.5.4
OCL
not(self.code.oclIsUndefined()) and not(self.code.codeSystem.oclIsUndefined()) and self.code.codeSystem = '2.16.840.1.113883.5.4'
Values for actOrderRequired.code element shall be taken from value set with OID 1.3.6.1.4.1.12559.11.4.2.31
OCL
not (self.code.oclIsUndefined()) and not(self.code.code.oclIsUndefined()) and self.code.matchesCodeToValueSet('1.3.6.1.4.1.12559.11.4.2.31', self.code.code)
codeSystem for ActOrderRequired.code shall be set to 1.3.6.1.4.1.19376.1.2.27.1
OCL
(not self.code.oclIsUndefined()) and (not self.code.codeSystem.oclIsUndefined()) and self.code.codeSystem = '1.3.6.1.4.1.19376.1.2.27.1'
Values for detectedIssueManagement.code element shall be taken from value set with OID 1.3.6.1.4.1.12559.11.4.2.32
OCL
not (self.code.oclIsUndefined()) and not(self.code.code.oclIsUndefined()) and self.code.matchesCodeToValueSet('1.3.6.1.4.1.12559.11.4.2.32', self.code.code)
codeSystem for detectedIssueManagement.code shall be set to 1.3.6.1.4.1.19376.1.2.27.3
OCL
not (self.code.oclIsUndefined()) and not(self.code.codeSystem.oclIsUndefined()) and self.code.codeSystem = '1.3.6.1.4.1.19376.1.2.27.3'
reponsePriorityCode SHALL be valued with D to indicate the Responding Gateway is required to send a deferred response (Table 3.55.4.1.2-1)
OCL
not (self.responsePriorityCode.oclIsUndefined()) and not(self.responsePriorityCode.code.oclIsUndefined()) and self.responsePriorityCode.code='D'
The respondTo element of the transmission wrapper SHALL be present (Section 3.55.6.2)
OCL
self.respondTo->size() > 0
The respondTo element SHALL contain a telecom element (Section 3.55.6.2)
OCL
not (self.telecom.oclIsUndefined())
typeCode attribute of respondTo element SHALL be set to 'RSP'
OCL
not (self.typeCode.oclIsUndefined()) and self.typeCode=CommunicationFunctionType::RSP
entityRsp classCode SHALL be set to "ENT"
OCL
not (self.classCode.oclIsUndefined()) and self.classCode=EntityClassRoot::ENT
The mode of the response SHALL always be real-time ie responseModalityCode SHALL be set to R (Table 3.55.4.1.2-1)
OCL
not(self.responseModalityCode.oclIsUndefined()) and not(self.responseModalityCode.code.oclIsUndefined()) and self.responseModalityCode.code='R'
the responsePriorityCode element is required (Table 3.55.4.1.2-1)
OCL
not self.responsePriorityCode.oclIsUndefined()
The responseModalityCode SHALL be specified (Table 3.55.4.1.2-1)
OCL
not (self.responseModalityCode.oclIsUndefined())
The status of the query SHALL be set to 'new' (Table 3.55.4.2.1-1)
OCL
not (self.statusCode.oclIsUndefined()) and not(self.statusCode.code.oclIsUndefined()) and self.statusCode.code = 'new'
If present the initialQuantityCode element, the defaut value for code attribute is 'RD' (Table 3.55.4.2.1-1)
OCL
self.initialQuantityCode.oclIsUndefined() or (self.initialQuantityCode.code.oclIsUndefined() xor self.initialQuantityCode.code='RD')
The initialQuantity element is not supported, any value will be ignored by responder. (Table 3.55.4.2.1-1)
OCL
self.initialQuantity.oclIsUndefined()
The initialQuantityCode element is not supported, any value will be ignored by responder. (Table 3.55.4.2.1-1)
OCL
self.initialQuantityCode.oclIsUndefined()
The name of the algorithm SHALL comply with datatype ST (Table 3.55.4.1.2-1)
OCL
self.value.oclIsKindOf(ST)
The value of the degree match SHALL be an integer (Table 3.55.4.1.2-1)
OCL
self.value.oclIsKindOf(INT)
The numeric value of the degree of match SHALL be valued between 0 and 100 (Table 3.55.4.1.2-1)
OCL
self.value.oclAsType(INT).value >= 0 and self.value.oclAsType(INT).value <= 100
The value of interactionId SHALL be set to PRPA_IN201305UV02 (Table 3.55.4.1.2-2)
OCL
not self.interactionId.oclIsUndefined() and not self.interactionId.extension.oclIsUndefined() and self.interactionId.extension='PRPA_IN201305UV02'
The value of processingModeCode SHALL be set to T (Table 3.55.4.1.2-2)
OCL
not self.processingModeCode.oclIsUndefined() and not self.processingModeCode.code.oclIsUndefined() and self.processingModeCode.code='T'
The acceptAckCode SHALL be set to AL
OCL
not self.acceptAckCode.oclIsUndefined() and not self.acceptAckCode.code.oclIsUndefined() and self.acceptAckCode.code='AL'
There SHALL be only one receiver Device
OCL
self.receiver->size()=1
The trigger event code in ControlActProcess.code SHALL be set to PRPA_TE201305UV02
OCL
not (self.code.oclIsUndefined()) and not (self.code.code.oclIsUndefined()) and self.code.code='PRPA_TE201305UV02'
If the Initiating Gateway is grouped with a Responding Gateway, it SHALL specify its homeCommunityId as follows: the homeCommunityId is specified as the id element
within the Organization associated with the device of the sender; the id element designating the homeCommunityId shall have only the root element. (Section 3.55.4.1.2.4)
OCL
not(self.device.oclIsUndefined())
and not(self.device.asAgent.oclIsUndefined())
and not(self.device.asAgent.representedOrganization.oclIsUndefined())
and self.device.asAgent.representedOrganization.id->size() > 0
and self.device.asAgent.representedOrganization.id->forAll(val : II |
not(val.root.oclIsUndefined()) and val.extension.oclIsUndefined()
)
In an authorOrPerformer participant is present, the value of authorOrPerformer.typeCode SHALL be set to AUT
OCL
not(self.typeCode.oclIsUndefined()) and self.typeCode=XParticipationAuthorPerformer::AUT
In the case of the MothersMaidenName parameter, the person name may consist of only the given name part, the family name
part, or both (Table 3.55.4.1.2-1)
OCL
self.value->forAll(val: PN |
val.given->size() > 0 or val.family->size() > 0
)
The value attribute of the mothersMaideName parameter SHALL be present exactly once (Table 3.55.4.1.2-1)
OCL
self.value->size() = 1
The use attribute of the value element of MothersMaidenName parameter SHALL NOT be set to 'SRCH' (Section
3.55.4.1.2.1)
OCL
self.value->forAll(val: PN |
val.oclIsUndefined() xor not(val.use='SRCH')
)
There SHALL have only one id in the 'value' attribute of the PrincipalCareProviderId parameter (Table 3.55.4.1.2-1)
OCL
self.value->size() = 1
LivingSubjectAdministrativeGender value SHALL be valued with either F, M or UN (CWE:AdministrativeGender) (Table
3.55.4.1.2-1)
OCL
self.value->forAll(val: CE |
not (val.code.oclIsUndefined()) and (val.code = 'F' or val.code = 'M' or val.code='UN')
)
QueryByParameter/parameterList/livingSubjectAdministrativeGender/value SHALL be present exactly once (Table
3.55.4.1.2-1)
OCL
self.value ->size() = 1
value element of LivingSubjectBirthTime parameter SHALL be present exactly once (Table 3.55.4.1.2-1)
OCL
self.value->size() = 1
The use attribute of the value element of LivingSubjectName parameter SHALL NOT be set to 'SRCH' (Table 3.55.4.1.2-1)
OCL
self.value->forAll(val: EN |
val.oclAsType(PN).use.oclIsUndefined() xor not (val.oclAsType(PN).use = 'SRCH')
)
the value element of LivingSubjectName parameter SHALL be present exactly once
OCL
self.value->size() = 1
The datatype of LivingSubjectName.value is constrained to PN (Section 3.55.4.1.2.2)
OCL
self.value->forAll(val: EN |
not (val.oclIsKindOf(TN) or val.oclIsKindOf(ON))
)
LivingSubjectAdministrativeGender parameter SHALL be present at most once (Figure 3.55.4.1.2-1)
OCL
self.livingSubjectAdministrativeGender->size() <= 1
LivingSubjectBirthPlaceAddress parameter SHALL be present at most once (Figure 3.55.4.1.2-1)
OCL
self.livingSubjectBirthPlaceAddress->size() <= 1
LivingSubjectBirthPlaceName parameter SHALL be present at most once (Figure 3.55.4.1.2-1)
OCL
self.livingSubjectBirthPlaceName->size() <= 1
LivingSubjectBirthTime parameter SHALL be present at most once (Figure 3.55.4.1.2-1)
OCL
self.livingSubjectBirthTime->size() <= 1
MothersMaidenName parameter SHALL be present at most once (Figure 3.55.4.1.2-1)
OCL
self.mothersMaidenName->size() <= 1
PatientAddress parameter SHALL be present at most once (Figure 3.55.4.1.2-1)
OCL
self.patientAddress->size() <= 1
PatientTelecom parameter SHALL be present at most once (Figure 3.55.4.1.2-1)
OCL
self.patientTelecom->size() <= 1
If the LivingSubjectIdParameter is specified, LivingSubjectName and LivingSubjectBirthTime are optional. Otherwise,
those two parameters are required (Section 3.55.4.1.2.1)
OCL
self.livingSubjectId->size() >= 1 or (self.livingSubjectName->size() >= 1 and self.livingSubjectBirthTime->size() >=
1)