The following types are used internally in data types The following types are used for structural RIM attributes root fixed to 2.16.840.1.113883.1.3 OCL (not self.root.oclIsUndefined()) and self.root='2.16.840.1.113883.1.3' extension required OCL not self.extension.oclIsUndefined() typeCode fixed to RCT OCL self.typeCode.oclIsUndefined() or self.typeCode=ParticipationType::RCT contextControlCode fixed to OP OCL self.contextControlCode.oclIsUndefined() or self.contextControlCode=NullFlavor::OP patientRole required OCL not self.patientRole.oclIsUndefined() classCode fixed to PAT OCL self.classCode.oclIsUndefined() or self.classCode=RoleClass::PAT id required OCL self.id->size()>0 classCode fixed to PSN OCL self.classCode.oclIsUndefined() or self.classCode=EntityClass::PSN determinerCode fixed to INSTANCE OCL self.determinerCode.oclIsUndefined() or self.determinerCode=EntityDeterminer::INSTANCE guardianPerson or guardianOrganization attribute must be present OCL Bag{self.guardianPerson.oclIsUndefined(),self.guardianOrganization.oclIsUndefined()}->one(bl : Boolean| bl = false) classCode is fixed to GUARD value OCL self.classCode.oclIsUndefined() or self.classCode=RoleClass::GUARD classCode fixed to PSN OCL self.classCode.oclIsUndefined() or self.classCode=EntityClass::PSN determinerCode fixed to INSTANCE OCL self.determinerCode.oclIsUndefined() or self.determinerCode=EntityDeterminer::INSTANCE classCode fixed to ORG OCL self.classCode.oclIsUndefined() or self.classCode=EntityClassOrganization::ORG determinerCode fixed to INSTANCE OCL self.determinerCode.oclIsUndefined() or self.determinerCode=EntityDeterminer::INSTANCE classCode fixed to PART OCL self.classCode.oclIsUndefined() or self.classCode=RoleClass::PART classCode is fixed to BIRTHPL value OCL self.classCode.oclIsUndefined() or self.classCode=RoleClass::BIRTHPL place is required OCL not self.place.oclIsUndefined() classCode fixed to PLC OCL self.classCode.oclIsUndefined() or self.classCode=EntityClassPlace::PLC determinerCode fixed to INSTANCE OCL self.determinerCode.oclIsUndefined() or self.determinerCode=EntityDeterminer::INSTANCE typeCode is fixed to AUT OCL self.typeCode.oclIsUndefined() or self.typeCode=ParticipationType::AUT contextControlCode fixed to OP OCL self.contextControlCode.oclIsUndefined() or self.contextControlCode=NullFlavor::OP time is required OCL not self.time.oclIsUndefined() assignedAuthor is required OCL not self.assignedAuthor.oclIsUndefined() classCode fixed to ASSIGNED value OCL self.classCode.oclIsUndefined() or self.classCode=RoleClassAssignedEntity::ASSIGNED only one of assignedAuthoringDevice ,assignedPerson can be present OCL not ( (not self.assignedPerson.oclIsUndefined()) and (not self.assignedAuthoringDevice.oclIsUndefined()) ) id must be present OCL not self.id->isEmpty() classCode fixed to DEV value OCL self.classCode.oclIsUndefined() or self.classCode=EntityClassDevice::DEV determinerCode fixed to INSTANCE value OCL self.determinerCode.oclIsUndefined() or self.determinerCode=EntityDeterminer::INSTANCE classCode fixed to MNT OCL self.classCode.oclIsUndefined() or self.classCode=RoleClass::MNT maintainingPerson required OCL not self.maintainingPerson.oclIsUndefined() typeCode fixed to ENT value OCL self.typeCode.oclIsUndefined() or self.typeCode=ParticipationType::ENT contextControlCode is fixed to OP value OCL self.contextControlCode.oclIsUndefined() or self.contextControlCode=NullFlavor::OP assignedEntity is required OCL not self.assignedEntity.oclIsUndefined() classCode is fixed to ASSIGNED OCL self.classCode.oclIsUndefined() or self.classCode=RoleClassAssignedEntity::ASSIGNED id shall be present OCL not self.id->isEmpty() assignedEntity or relatedEntity must be present OCL Bag{self.relatedEntity.oclIsUndefined(),self.assignedEntity.oclIsUndefined()}->one(bl : Boolean | bl = false) typeCode is fixed to INF value OCL self.typeCode.oclIsUndefined() or self.typeCode=ParticipationType::INF contextControlCode is fixed to OP value OCL self.contextControlCode.oclIsUndefined() or self.contextControlCode=NullFlavor::OP typeCode fixed to CST OCL self.typeCode.oclIsUndefined() or self.typeCode=ParticipationType::CST assignedCustodian required OCL not self.assignedCustodian.oclIsUndefined() classCode is fixed to ASSIGNED OCL self.classCode.oclIsUndefined() or self.classCode=RoleClassAssignedEntity::ASSIGNED representedCustodianOrganization required OCL not self.representedCustodianOrganization.oclIsUndefined() classCode fixed to ORG value OCL self.classCode.oclIsUndefined() or self.classCode=EntityClassOrganization::ORG determinerCode fixed to INSTANCE value OCL self.determinerCode.oclIsUndefined() or self.determinerCode=EntityDeterminer::INSTANCE id required OCL self.id->size()>0 intendedRecipient required OCL not self.intendedRecipient.oclIsUndefined() typeCode is fixed to LA OCL self.typeCode.oclIsUndefined() or self.typeCode=ParticipationType::LA contextControlCode is fxed to OP value OCL self.contextControlCode.oclIsUndefined() or self.contextControlCode=NullFlavor::OP time required OCL not self.time.oclIsUndefined() signatureCode required OCL not self.signatureCode.oclIsUndefined() assignedEntity required OCL not self.assignedEntity.oclIsUndefined() typeCode is fixed to AUTHEN value OCL self.typeCode.oclIsUndefined() or self.typeCode=ParticipationType::AUTHEN time is required OCL not self.time.oclIsUndefined() signatureCode required OCL not self.signatureCode.oclIsUndefined() assignedEntity required OCL not self.assignedEntity.oclIsUndefined() contextControlCode fixed to OP OCL self.contextControlCode.oclIsUndefined() or self.contextControlCode=NullFlavor::OP associatedEntity required OCL not self.associatedEntity.oclIsUndefined() typeCode is fixed to FLFS OCL self.typeCode.oclIsUndefined() or self.typeCode=ActRelationshipFulfills::FLFS order required OCL not self.order.oclIsUndefined() moodCode fixed to RQO OCL self.moodCode.oclIsUndefined() or self.moodCode=ActMood::RQO id required OCL not self.id->isEmpty() typeCode is fixed to DOC value OCL self.typeCode.oclIsUndefined() or self.typeCode=ActRelationshipType::DOC serviceEvent required OCL not self.serviceEvent.oclIsUndefined() moodCode fixed to EVN OCL self.moodCode.oclIsUndefined() or self.moodCode=ActMood::EVN assignedEntity required OCL not self.assignedEntity.oclIsUndefined() parentDocument required OCL not self.parentDocument.oclIsUndefined() classCode fixed to DOCCLIN OCL self.classCode.oclIsUndefined() or self.classCode=ActClinicalDocument::DOCCLIN moodCode fixed to EVN OCL self.moodCode.oclIsUndefined() or self.moodCode=ActMood::EVN id required OCL self.id->size()>0 classCode fixed to DOCCLIN value OCL self.classCode.oclIsUndefined() or self.classCode=ActClinicalDocument::DOCCLIN moodCode fixed to EVN value OCL self.moodCode.oclIsUndefined() or self.moodCode=ActMood::EVN typeId is required OCL not self.typeId.oclIsUndefined() id is required OCL not self.id.oclIsUndefined() code is required OCL not self.code.oclIsUndefined() effectiveTime is required OCL not self.effectiveTime.oclIsUndefined() confidentialityCode required OCL not self.confidentialityCode.oclIsUndefined() recordTarget is required OCL self.recordTarget->size()>0 author is required OCL self.author->size()>0 custodian is required OCL not self.custodian.oclIsUndefined() component required OCL not self.component.oclIsUndefined() typeCode fixed to AUTH value OCL self.typeCode.oclIsUndefined() or self.typeCode=ActRelationshipType::AUTH consent is required OCL not self.consent.oclIsUndefined() classCode fixed to CONS value OCL self.classCode.oclIsUndefined() or self.classCode=ActClass::CONS moodCode fixed to EVN value OCL self.moodCode.oclIsUndefined() or self.moodCode=ActMood::EVN statusCode is required OCL not self.statusCode.oclIsUndefined() typeCode fixed to COMP value OCL self.typeCode.oclIsUndefined() or self.typeCode=ActRelationshipHasComponent::COMP encompassingEncounter required OCL not self.encompassingEncounter.oclIsUndefined() classCode is fixed to ENC OCL self.classCode.oclIsUndefined() or self.classCode=ActClass::ENC moodCode is fixed to EVN OCL self.moodCode.oclIsUndefined() or self.moodCode=ActMood::EVN effectiveTime required OCL not self.effectiveTime.oclIsUndefined() typeCode fixed to RESP OCL self.typeCode.oclIsUndefined() or self.typeCode=ParticipationType::RESP assignedEntity required OCL not self.assignedEntity.oclIsUndefined() assignedEntity required OCL not self.assignedEntity.oclIsUndefined() typeCode is fixed to LOC value OCL self.typeCode.oclIsUndefined() or self.typeCode=ParticipationTargetLocation::LOC healthCareFacility required OCL not self.healthCareFacility.oclIsUndefined() only one of structuredBody, nonXMLBody can be present OCL self.structuredBody.oclIsUndefined() xor self.nonXMLBody.oclIsUndefined() typeCode is fixed to COMP OCL self.typeCode.oclIsUndefined() or self.typeCode=ActRelationshipHasComponent::COMP contextConductionInd fixed to true OCL self.contextConductionInd.oclIsUndefined() or self.contextConductionInd=true classCode fixed to DOCBODY OCL self.classCode.oclIsUndefined() or self.classCode=ActClass::DOCBODY moodCode fixed to EVN OCL self.moodCode.oclIsUndefined() or self.moodCode=ActMood::EVN text is required OCL not self.text.oclIsUndefined() classCode fixed to DOCBODY OCL self.classCode.oclIsUndefined() or self.classCode=ActClass::DOCBODY moodCode fixed to EVN OCL self.moodCode.oclIsUndefined() or self.moodCode=ActMood::EVN component required OCL self.component->size()>0 typeCode fixed to COMP value OCL self.typeCode.oclIsUndefined() or self.typeCode=ActRelationshipHasComponent::COMP contextConductionInd fixed to true OCL self.contextConductionInd.oclIsUndefined() or self.contextConductionInd=true section is required OCL not self.section.oclIsUndefined() classCode fixed to DOCSECT OCL self.classCode.oclIsUndefined() or self.classCode=ActClass::DOCSECT moodCode fixed to EVN OCL self.moodCode.oclIsUndefined() or self.moodCode=ActMood::EVN typeCode fixed to SBJ OCL self.typeCode.oclIsUndefined() or self.typeCode=ParticipationTargetSubject::SBJ contextControlCode fixed to OP OCL self.contextControlCode.oclIsUndefined() or self.contextControlCode=NullFlavor::OP relatedSubject required OCL not self.relatedSubject.oclIsUndefined() classCode fixed to PSN OCL self.classCode.oclIsUndefined() or self.classCode=EntityClass::PSN determinerCode fixed to INSTANCE OCL self.determinerCode.oclIsUndefined() or self.determinerCode=EntityDeterminer::INSTANCE only on of these attribute must be present : act, encounter, observation, observationMedia, organizer, procedure, regionOfInterest, substanceAdministration, supply OCL Bag{self.act.oclIsUndefined(), self.encounter.oclIsUndefined(), self.observation.oclIsUndefined(), self.observationMedia.oclIsUndefined(), self.organizer.oclIsUndefined(), self.procedure.oclIsUndefined(), self.regionOfInterest.oclIsUndefined(), self.substanceAdministration.oclIsUndefined(), self.supply.oclIsUndefined()}->one(bl : Boolean | bl = false) contextConductionInd fixed to true OCL self.contextConductionInd.oclIsUndefined() or self.contextConductionInd=true code is required OCL not self.code.oclIsUndefined() typeCode fixed to SPC OCL self.typeCode.oclIsUndefined() or self.typeCode=ParticipationType::SPC specimenRole required OCL not self.specimenRole.oclIsUndefined() classCode fixed to SPEC OCL self.classCode.oclIsUndefined() or self.classCode=RoleClassSpecimen::SPEC classCode fixed to ENT OCL self.classCode.oclIsUndefined() or self.classCode=EntityClassRoot::ENT determinerCode fixed to INSTANCE OCL self.determinerCode.oclIsUndefined() or self.determinerCode=EntityDeterminer::INSTANCE typeCode fixed to PRF OCL self.typeCode.oclIsUndefined() or self.typeCode=ParticipationPhysicalPerformer::PRF assignedEntity required OCL not self.assignedEntity.oclIsUndefined() contextControlCode fixed to OP OCL self.contextControlCode.oclIsUndefined() or self.contextControlCode=NullFlavor::OP participantRole required OCL not self.participantRole.oclIsUndefined() only one of these attribute can be present : playingDevice, playingEntity OCL Bag{(not self.playingDevice.oclIsUndefined()),(not self.playingEntity.oclIsUndefined())}->one(bl : Boolean | bl = true) classCode is fixed to DEV value OCL self.classCode.oclIsUndefined() or self.classCode=EntityClassDevice::DEV determinerCode is fixed to INSTANCE value OCL self.determinerCode.oclIsUndefined() or self.determinerCode=EntityDeterminer::INSTANCE determinerCode fixed to INSTANCE value OCL self.determinerCode.oclIsUndefined() or self.determinerCode=EntityDeterminer::INSTANCE on POCDMT000040EntryRelationship only one element of these must be present : act, encounter, observation, observationMedia, organizer, procedure, regionOfInterest, substanceAdministration, supply OCL Bag{self.act.oclIsUndefined(), self.encounter.oclIsUndefined(), self.observation.oclIsUndefined(), self.observationMedia.oclIsUndefined(), self.organizer.oclIsUndefined(), self.procedure.oclIsUndefined(), self.regionOfInterest.oclIsUndefined(), self.substanceAdministration.oclIsUndefined(), self.supply.oclIsUndefined()}->one(bl : Boolean| bl = false) only one of these attributes must be present : externalAct, externalObservation, externalProcedure, externalDocument OCL Bag{self.externalAct.oclIsUndefined(), self.externalObservation.oclIsUndefined(), self.externalProcedure.oclIsUndefined(), self.externalDocument.oclIsUndefined()}->one(bl : Boolean | bl = false) moodCode is fixed to EVN value OCL self.moodCode.oclIsUndefined() or self.moodCode=ActMood::EVN moodCode is fixed to EVN OCL self.moodCode.oclIsUndefined() or self.moodCode=ActMood::EVN moodCode is fixed to EVN value OCL self.moodCode.oclIsUndefined() or self.moodCode=ActMood::EVN classCode is fixed to PROC value OCL self.classCode.oclIsUndefined() or self.classCode=ActClass::PROC moodCode is fixed to EVN OCL self.moodCode.oclIsUndefined() or self.moodCode=ActMood::EVN typeCode fixed to PRCN OCL self.typeCode.oclIsUndefined() or self.typeCode=ActRelationshipType::PRCN criterion required OCL not self.criterion.oclIsUndefined() classCode fixed to OBS value OCL self.classCode.oclIsUndefined() or self.classCode=ActClassObservation::OBS moodCode fixed to EVN.CRT value OCL self.moodCode.oclIsUndefined() or self.moodCode=ActMood::EVNCRT code required OCL not self.code.oclIsUndefined() typeCode fixed to REFV OCL self.typeCode.oclIsUndefined() or self.typeCode=ActRelationshipType::REFV observationRange required OCL not self.observationRange.oclIsUndefined() moodCode fixed to EVN.CRT OCL self.moodCode.oclIsUndefined() or self.moodCode=ActMood::EVNCRT value required OCL not self.value.oclIsUndefined() statusCode required OCL not self.statusCode.oclIsUndefined() only one of act, encounter, observation, observationMedia, organizer, procedure, regionOfInterest, substanceAdministration, supply, must be present OCL Bag{self.act.oclIsUndefined(), self.encounter.oclIsUndefined(), self.observation.oclIsUndefined(), self.observationMedia.oclIsUndefined(), self.organizer.oclIsUndefined(), self.procedure.oclIsUndefined(), self.regionOfInterest.oclIsUndefined(), self.substanceAdministration.oclIsUndefined(), self.supply.oclIsUndefined()}->one(x | x = false) typeCode fixed to COMP value OCL self.typeCode.oclIsUndefined() or self.typeCode=ActRelationshipHasComponent::COMP contextConductionInd fixed to true OCL self.contextConductionInd.oclIsUndefined() or self.contextConductionInd=true classCode fixed to ROIOVL OCL (not self.classCode.oclIsUndefined()) and self.classCode=ActClass::ROIOVL moodCode fixed to EVN OCL (not self.moodCode.oclIsUndefined()) and self.moodCode=ActMood::EVN id required OCL self.id->size()>0 code required OCL not self.code.oclIsUndefined() value required OCL self.value->size()>0 classCode fixed to SBADM OCL (not self.classCode.oclIsUndefined()) and self.classCode=ActClass::SBADM consumable required OCL not self.consumable.oclIsUndefined() typeCode fixed to CSM value OCL self.typeCode.oclIsUndefined() or self.typeCode=ParticipationType::CSM manufacturedProduct required OCL not self.manufacturedProduct.oclIsUndefined() only one element must be present : manufacturedLabeledDrug, manufacturedMaterial OCL Bag{self.manufacturedLabeledDrug.oclIsUndefined(), self.manufacturedMaterial.oclIsUndefined()}->one(bl : Boolean | bl = false) classCode fixed to MANU OCL self.classCode.oclIsUndefined() or self.classCode=RoleClassManufacturedProduct::MANU classCode is fixed to MMAT OCL self.classCode.oclIsUndefined() or self.classCode=EntityClassManufacturedMaterial::MMAT determinerCode is fixed to KIND OCL self.determinerCode.oclIsUndefined() or self.determinerCode=EntityDeterminerDetermined::KIND classCode is fixed to MMAT OCL self.classCode.oclIsUndefined() or self.classCode=EntityClassManufacturedMaterial::MMAT determinerCode fixed to KIND OCL self.determinerCode.oclIsUndefined() or self.determinerCode=EntityDeterminerDetermined::KIND classCode fixed to SPLY OCL (not self.classCode.oclIsUndefined()) and self.classCode=ActClassSupply::SPLY typeCode fixed to PRD OCL self.typeCode.oclIsUndefined() or self.typeCode=ParticipationType::PRD manufacturedProduct required OCL not self.manufacturedProduct.oclIsUndefined() typeCode fixed to COMP value OCL self.typeCode.oclIsUndefined() or self.typeCode=ActRelationshipHasComponent::COMP contextConductionInd fixed to true OCL self.contextConductionInd.oclIsUndefined() or self.contextConductionInd=true section is required OCL not self.section.oclIsUndefined()