├── .gitignore ├── LICENSE.txt ├── README.md ├── core ├── LICENSE.txt ├── pom.xml └── src │ └── main │ ├── java │ └── tr │ │ └── com │ │ └── srdc │ │ └── mdr │ │ └── core │ │ ├── MDRConstants.java │ │ ├── api │ │ ├── MDRNode.java │ │ ├── ai │ │ │ ├── AdministeredItem.java │ │ │ ├── ClassificationScheme.java │ │ │ ├── Concept.java │ │ │ ├── ConceptRelationship.java │ │ │ ├── ConceptualDomain.java │ │ │ ├── Context.java │ │ │ ├── DataElement.java │ │ │ ├── DataElementConcept.java │ │ │ ├── DerivationRule.java │ │ │ ├── EnumeratedConceptualDomain.java │ │ │ ├── EnumeratedValueDomain.java │ │ │ ├── NonEnumeratedConceptualDomain.java │ │ │ ├── NonEnumeratedValueDomain.java │ │ │ ├── ObjectClass.java │ │ │ ├── Property.java │ │ │ ├── RepresentationClass.java │ │ │ └── ValueDomain.java │ │ └── composite │ │ │ ├── ClassificationSchemeItem.java │ │ │ ├── ClassificationSchemeItemRelationship.java │ │ │ ├── ConceptualDomainRelationship.java │ │ │ ├── Contact.java │ │ │ ├── DataElementConceptRelationship.java │ │ │ ├── DataElementDerivation.java │ │ │ ├── DataElementExample.java │ │ │ ├── Datatype.java │ │ │ ├── Definition.java │ │ │ ├── Designation.java │ │ │ ├── LanguageIdentification.java │ │ │ ├── LanguageSection.java │ │ │ ├── Organization.java │ │ │ ├── PermissibleValue.java │ │ │ ├── ReferenceDocument.java │ │ │ ├── Registrar.java │ │ │ ├── RegistrationAuthority.java │ │ │ ├── RegistrationAuthorityIdentifier.java │ │ │ ├── UnitOfMeasure.java │ │ │ ├── ValueDomainRelationship.java │ │ │ └── ValueMeaning.java │ │ ├── impl │ │ ├── Repository.java │ │ ├── RepositoryDefaults.java │ │ ├── RepositoryManager.java │ │ ├── ai │ │ │ ├── AdministeredItemImpl.java │ │ │ ├── ClassificationSchemeImpl.java │ │ │ ├── ConceptImpl.java │ │ │ ├── ConceptRelationshipImpl.java │ │ │ ├── ConceptualDomainImpl.java │ │ │ ├── ContextImpl.java │ │ │ ├── DataElementConceptImpl.java │ │ │ ├── DataElementImpl.java │ │ │ ├── DerivationRuleImpl.java │ │ │ ├── EnumeratedConceptualDomainImpl.java │ │ │ ├── EnumeratedValueDomainImpl.java │ │ │ ├── NonEnumeratedConceptualDomainImpl.java │ │ │ ├── NonEnumeratedValueDomainImpl.java │ │ │ ├── ObjectClassImpl.java │ │ │ ├── PropertyImpl.java │ │ │ ├── RepresentationClassImpl.java │ │ │ └── ValueDomainImpl.java │ │ └── composite │ │ │ ├── AdministeredItemContextImpl.java │ │ │ ├── AdministrationRecordImpl.java │ │ │ ├── ClassificationSchemeItemAssociationImpl.java │ │ │ ├── ClassificationSchemeItemImpl.java │ │ │ ├── ClassificationSchemeItemRelationshipImpl.java │ │ │ ├── ConceptualDomainRelationshipAssociationImpl.java │ │ │ ├── ConceptualDomainRelationshipImpl.java │ │ │ ├── ContactImpl.java │ │ │ ├── DataElementConceptRelationshipAssociationImpl.java │ │ │ ├── DataElementConceptRelationshipImpl.java │ │ │ ├── DataElementDerivationImpl.java │ │ │ ├── DataElementExampleImpl.java │ │ │ ├── DatatypeImpl.java │ │ │ ├── DefinitionImpl.java │ │ │ ├── DesignationImpl.java │ │ │ ├── ItemIdentifierImpl.java │ │ │ ├── LanguageIdentificationImpl.java │ │ │ ├── LanguageSectionImpl.java │ │ │ ├── OrganizationImpl.java │ │ │ ├── PermissibleValueImpl.java │ │ │ ├── ReferenceDocumentImpl.java │ │ │ ├── RegistrarImpl.java │ │ │ ├── RegistrationAuthorityIdentifierImpl.java │ │ │ ├── RegistrationAuthorityImpl.java │ │ │ ├── StewardshipImpl.java │ │ │ ├── StewardshipRelationshipImpl.java │ │ │ ├── SubmissionImpl.java │ │ │ ├── SubmissionRelationshipImpl.java │ │ │ ├── TerminologicalEntryImpl.java │ │ │ ├── UnitOfMeasureImpl.java │ │ │ ├── ValueDomainRelationshipAssociationImpl.java │ │ │ ├── ValueDomainRelationshipImpl.java │ │ │ ├── ValueImpl.java │ │ │ └── ValueMeaningImpl.java │ │ ├── model │ │ ├── Abbreviation.java │ │ ├── AbstractMDRResource.java │ │ ├── ISODataType.java │ │ ├── MDRException.java │ │ ├── MDRResource.java │ │ ├── MDRResourceFactory.java │ │ ├── Util.java │ │ ├── Vocabulary.java │ │ └── iso11179 │ │ │ ├── AdministeredItemResource.java │ │ │ ├── ClassificationSchemeResource.java │ │ │ ├── ConceptRelationshipResource.java │ │ │ ├── ConceptResource.java │ │ │ ├── ConceptualDomainResource.java │ │ │ ├── ContextResource.java │ │ │ ├── DataElementConceptResource.java │ │ │ ├── DataElementResource.java │ │ │ ├── DerivationRuleResource.java │ │ │ ├── EnumeratedConceptualDomainResource.java │ │ │ ├── EnumeratedValueDomainResource.java │ │ │ ├── NonEnumeratedConceptualDomainResource.java │ │ │ ├── NonEnumeratedValueDomainResource.java │ │ │ ├── ObjectClassResource.java │ │ │ ├── PropertyResource.java │ │ │ ├── RepresentationClassResource.java │ │ │ ├── ValueDomainResource.java │ │ │ └── composite │ │ │ ├── AdministeredItemContextResource.java │ │ │ ├── AdministrationRecordResource.java │ │ │ ├── ClassificationSchemeItemAssociationResource.java │ │ │ ├── ClassificationSchemeItemRelationshipResource.java │ │ │ ├── ClassificationSchemeItemResource.java │ │ │ ├── ConceptualDomainRelationshipAssociationResource.java │ │ │ ├── ConceptualDomainRelationshipResource.java │ │ │ ├── ContactResource.java │ │ │ ├── DataElementConceptRelationshipAssociationResource.java │ │ │ ├── DataElementConceptRelationshipResource.java │ │ │ ├── DataElementDerivationResource.java │ │ │ ├── DataElementExampleResource.java │ │ │ ├── DatatypeResource.java │ │ │ ├── DefinitionResource.java │ │ │ ├── DesignationResource.java │ │ │ ├── ItemIdentifierResource.java │ │ │ ├── LanguageIdentificationResource.java │ │ │ ├── LanguageSectionResource.java │ │ │ ├── OrganizationResource.java │ │ │ ├── PermissibleValueResource.java │ │ │ ├── ReferenceDocumentResource.java │ │ │ ├── RegistrarResource.java │ │ │ ├── RegistrationAuthorityIdentifierResource.java │ │ │ ├── RegistrationAuthorityResource.java │ │ │ ├── StewardshipRelationshipResource.java │ │ │ ├── StewardshipResource.java │ │ │ ├── SubmissionRelationshipResource.java │ │ │ ├── SubmissionResource.java │ │ │ ├── TerminologicalEntryResource.java │ │ │ ├── UnitOfMeasureResource.java │ │ │ ├── ValueDomainRelationshipAssociationResource.java │ │ │ ├── ValueDomainRelationshipResource.java │ │ │ ├── ValueMeaningResource.java │ │ │ └── ValueResource.java │ │ ├── store │ │ ├── MDRDatabase.java │ │ ├── MDRDatabaseManager.java │ │ └── query │ │ │ ├── ResourceQueryFactory.java │ │ │ ├── TDBQueryFactory.java │ │ │ └── VirtuosoQueryFactory.java │ │ └── util │ │ ├── Country.java │ │ ├── Language.java │ │ ├── MappingRelation.java │ │ ├── SKOS.java │ │ └── Status.java │ └── resources │ ├── log4j.properties │ └── model │ └── salus.mdr.owl ├── demo ├── README.MD ├── pom.xml └── src │ └── main │ └── webapp │ ├── WEB-INF │ └── web.xml │ ├── css │ ├── bootstrap │ │ ├── bootstrap-responsive.css │ │ ├── bootstrap-responsive.min.css │ │ ├── bootstrap.css │ │ └── bootstrap.min.css │ └── main.css │ ├── img │ ├── bootstrap │ │ ├── glyphicons-halflings-white.png │ │ └── glyphicons-halflings.png │ └── icons │ │ ├── loading-black.gif │ │ ├── loading-transparent.gif │ │ ├── logo.png │ │ ├── salus-name.png │ │ └── saluslogoweb-large.png │ ├── index.html │ └── js │ ├── libs │ ├── bootstrap │ │ ├── bootbox.js │ │ ├── bootstrap.js │ │ └── bootstrap.min.js │ ├── jquery │ │ ├── jquery-1.9.0.js │ │ └── jquery.cookie.js │ ├── require │ │ ├── require.js │ │ ├── require.min.js │ │ └── text.js │ └── underscore │ │ ├── underscore-min.js │ │ └── underscore.js │ └── populate.js ├── dex ├── pom.xml └── src │ └── main │ ├── java │ └── ihe │ │ └── qrph │ │ └── dex │ │ └── _2013 │ │ ├── ContentModelType.java │ │ ├── DataElementExchangePortType.java │ │ ├── DataElementExchangeService.java │ │ ├── DataElementSummaryType.java │ │ ├── DataElementType.java │ │ ├── MappingSpecificationType.java │ │ ├── ObjectFactory.java │ │ ├── RetrieveDataElementListRequestType.java │ │ ├── RetrieveDataElementListResponseType.java │ │ ├── RetrieveMetadataRequestType.java │ │ ├── RetrieveMetadataResponseType.java │ │ ├── ValueDomainType.java │ │ ├── ValueSetType.java │ │ └── package-info.java │ └── resources │ ├── DEX.wsdl │ └── DEX.xsd ├── lib ├── eu │ └── salusproject │ │ └── security-privacy.authentication │ │ └── 1.0.0-os │ │ ├── _maven.repositories │ │ ├── _remote.repositories │ │ ├── security-privacy.authentication-1.0.0-os-sources.jar │ │ ├── security-privacy.authentication-1.0.0-os.jar │ │ └── security-privacy.authentication-1.0.0-os.pom ├── org │ └── apache │ │ └── jena │ │ └── jena-larq │ │ └── 1.0.1-SNAPSHOT │ │ ├── _maven.repositories │ │ ├── jena-larq-1.0.1-SNAPSHOT.jar │ │ ├── jena-larq-1.0.1-SNAPSHOT.jar.lastUpdated │ │ ├── jena-larq-1.0.1-SNAPSHOT.pom │ │ ├── jena-larq-1.0.1-SNAPSHOT.pom.lastUpdated │ │ └── resolver-status.properties ├── tr │ └── com │ │ └── srdc │ │ ├── semantic-mdr │ │ └── semantic-mdr.configuration │ │ │ ├── 1.0.0 │ │ │ ├── _maven.repositories │ │ │ ├── _remote.repositories │ │ │ ├── m2e-lastUpdated.properties │ │ │ ├── semantic-mdr.configuration-1.0.0-sources.jar │ │ │ ├── semantic-mdr.configuration-1.0.0-sources.jar.lastUpdated │ │ │ ├── semantic-mdr.configuration-1.0.0.jar │ │ │ └── semantic-mdr.configuration-1.0.0.pom │ │ │ └── maven-metadata-local.xml │ │ ├── triplestore │ │ ├── 1.0.0 │ │ │ ├── _maven.repositories │ │ │ ├── _remote.repositories │ │ │ ├── triplestore-1.0.0-sources.jar │ │ │ ├── triplestore-1.0.0.jar │ │ │ └── triplestore-1.0.0.pom │ │ └── maven-metadata-local.xml │ │ └── virt-jena │ │ ├── 2.6.2-srdc │ │ ├── _maven.repositories │ │ ├── _remote.repositories │ │ ├── virt-jena-2.6.2-srdc-sources.jar │ │ ├── virt-jena-2.6.2-srdc.jar │ │ └── virt-jena-2.6.2-srdc.pom │ │ └── maven-metadata-local.xml └── virtuoso │ └── virtjdbc4 │ ├── 4.0 │ ├── _maven.repositories │ ├── virtjdbc4-4.0.jar │ └── virtjdbc4-4.0.pom │ └── maven-metadata-local.xml ├── parent └── pom.xml ├── pom.xml └── web ├── README.MD ├── pom.xml └── src └── main ├── java └── tr │ └── com │ └── srdc │ └── mdr │ └── web │ ├── MDRServletContextListener.java │ ├── dex │ └── ws │ │ └── DEXService.java │ ├── html │ ├── api │ │ ├── AuthenticationService.java │ │ ├── ConceptualDomainService.java │ │ ├── ContextService.java │ │ ├── DataElementConceptService.java │ │ ├── DataElementService.java │ │ ├── ObjectClassService.java │ │ ├── PropertyService.java │ │ ├── RepositoryService.java │ │ ├── ValueDomainService.java │ │ └── exporter │ │ │ └── ExportService.java │ ├── models │ │ ├── AdministeredItemModel.java │ │ ├── ConceptualDomainModel.java │ │ ├── ContextModel.java │ │ ├── DataElementConceptModel.java │ │ ├── DataElementMappingModel.java │ │ ├── DataElementModel.java │ │ ├── DataTypeModel.java │ │ ├── ExtractionSpecificationModel.java │ │ ├── LoginModel.java │ │ ├── MappingModel.java │ │ ├── ObjectClassModel.java │ │ ├── PermissibleValueModel.java │ │ ├── PropertyModel.java │ │ ├── ValueDomainModel.java │ │ └── ValueMeaningModel.java │ └── util │ │ ├── MDRWebExceptionMapper.java │ │ └── WebUtil.java │ └── rest │ └── api │ ├── ContextService.java │ ├── DataElementService.java │ ├── serialize │ └── SerializationService.java │ ├── sparql │ └── SPARQLService.java │ └── util │ ├── GraphStream.java │ └── ResponseCorsFilter.java ├── resources ├── SDMetricsPF │ ├── contents.xml │ ├── contents_d6.xml │ ├── contents_ea.xml │ ├── contents_poseidon4.xml │ ├── metamodel.xml │ ├── metamodel2.xml │ ├── metamodel_describe6.xml │ ├── metamodel_poseidon4.xml │ ├── readme.html │ ├── readme_d6.html │ ├── readme_ea.html │ ├── readme_poseidon4.html │ ├── xmiTrans1_0.xml │ ├── xmiTrans1_1.xml │ ├── xmiTrans2_0.xml │ ├── xmiTransEA1_1.xml │ ├── xmiTrans_describe6.xml │ └── xmiTrans_poseidon4.xml ├── dex │ └── appContext.xml ├── input │ ├── BRIDG.xml │ ├── metamodel.xml │ ├── uml1_3.xml │ ├── uml1_4.xml │ ├── uml2.xml │ ├── uml2_1.xml │ └── xmiTransEA1_1.xml ├── log4j.properties ├── rest │ ├── dex-serialization-query.rq │ ├── resources-context-all.rq │ ├── resources-dataelement-all-from-context.rq │ └── resources-dataelement-get-extractions.rq └── salus.conf └── webapp ├── WEB-INF └── web.xml ├── css ├── bootstrap │ ├── bootstrap-responsive.css │ ├── bootstrap-responsive.min.css │ ├── bootstrap.css │ └── bootstrap.min.css └── main.css ├── img ├── bootstrap │ ├── glyphicons-halflings-white.png │ └── glyphicons-halflings.png ├── icons │ ├── loading-black.gif │ ├── loading-transparent.gif │ ├── logo.png │ └── saluslogoweb-large.png └── login │ ├── fp7.png │ ├── salus-name.png │ ├── salus_100x100.png │ ├── salus_100x40.png │ ├── srdc_100x100.png │ ├── ss_cloud.png │ └── ss_federated.png ├── index.html ├── js ├── layouts │ └── main │ │ └── main.layout.js ├── libs │ ├── backbone │ │ ├── backbone-min.js │ │ ├── backbone-relational.js │ │ ├── backbone.js │ │ ├── backbone.marionette.js │ │ ├── backbone.marionette.min.js │ │ └── backbone.paginator.js │ ├── bootstrap │ │ ├── bootbox.js │ │ ├── bootstrap-better-typeahead.js │ │ ├── bootstrap.js │ │ └── bootstrap.min.js │ ├── jquery │ │ ├── jquery-1.9.0.js │ │ └── jquery.cookie.js │ ├── json │ │ └── json2.js │ ├── modernizr │ │ └── modernizr-2.6.1-respond-1.1.0.min.js │ ├── require │ │ ├── require.js │ │ ├── require.min.js │ │ └── text.js │ └── underscore │ │ ├── underscore-min.js │ │ └── underscore.js ├── main.js ├── mdr │ ├── mdr.application.js │ └── mdr.model.locator.js ├── models │ ├── administered.item.collection.js │ ├── administered.item.model.js │ ├── auth │ │ ├── login.model.js │ │ ├── organization.model.js │ │ └── user.model.js │ ├── classification │ │ ├── extraction.specification.collection.js │ │ ├── extraction.specification.model.js │ │ ├── mapping.collection.js │ │ └── mapping.model.js │ ├── conceptualdomain │ │ └── conceptual.domain.model.js │ ├── context │ │ └── context.model.js │ ├── dataelement │ │ └── data.element.model.js │ ├── datatype │ │ ├── data.type.collection.js │ │ └── data.type.model.js │ ├── dec │ │ └── data.element.concept.model.js │ ├── objectclass │ │ └── object.class.model.js │ ├── paginated.collection.js │ ├── paginator │ │ ├── paginator.collection.js │ │ └── paginator.model.js │ ├── permissiblevalue │ │ ├── permissible.value.collection.js │ │ └── permissible.value.model.js │ ├── property │ │ └── property.model.js │ ├── valuedomain │ │ └── value.domain.model.js │ └── valuemeaning │ │ ├── value.meaning.collection.js │ │ └── value.meaning.model.js ├── regions │ └── content.region.js ├── router │ └── mdr.router.js └── views │ ├── auth │ ├── login.view.js │ └── user.panel.view.js │ ├── breadcrumb │ └── breadcrumb.view.js │ ├── conceptualdomain │ ├── conceptual.domain.composite.view.js │ ├── conceptual.domain.item.view.js │ └── conceptual.domain.modal.view.js │ ├── context │ ├── context.list.item.view.js │ ├── context.list.view.js │ └── context.modal.view.js │ ├── dataelement │ ├── data.element.composite.view.js │ ├── data.element.detailed.view.js │ ├── data.element.item.view.js │ ├── data.element.modal.view.js │ ├── data.element.serialization.modal.view.js │ └── specification.modal.view.js │ ├── dec │ ├── data.element.concept.composite.view.js │ ├── data.element.concept.item.view.js │ └── data.element.concept.modal.view.js │ ├── objectclass │ ├── object.class.composite.view.js │ ├── object.class.item.view.js │ └── object.class.modal.view.js │ ├── paginator │ ├── paginator.composite.view.js │ └── paginator.item.view.js │ ├── permissiblevalue │ ├── permissible.value.composite.view.js │ └── permissible.value.item.view.js │ ├── query │ ├── query.result.view.js │ └── query.view.js │ ├── search │ ├── search.result.composite.view.js │ ├── search.result.item.view.js │ └── search.view.js │ └── valuemeaning │ ├── value.meaning.composite.view.js │ └── value.meaning.item.view.js └── templates ├── app └── main.layout.template.html ├── auth ├── login.form.html └── user.panel.html ├── breadcrumb └── breadcrumb.template.html ├── conceptualdomain ├── conceptual.domain.item.view.template.html ├── conceptual.domain.modal.template.html └── conceptual.domain.template.html ├── context ├── context.list.item.template.html └── context.modal.template.html ├── dataelement ├── data.element.detailed.template.html ├── data.element.item.view.template.html ├── data.element.modal.template.html ├── data.element.serialization.modal.template.html ├── data.element.template.html └── specification.modal.template.html ├── dec ├── data.element.concept.item.view.template.html ├── data.element.concept.modal.template.html └── data.element.concept.template.html ├── objectclass ├── object.class.item.view.template.html ├── object.class.modal.template.html └── object.class.template.html ├── paginator ├── paginator.item.view.template.html └── paginator.template.html ├── permissiblevalue ├── permissible.value.item.template.html └── permissible.value.template.html ├── property ├── property.item.view.template.html ├── property.modal.template.html └── property.template.html ├── query ├── query.result.view.template.html └── query.template.html ├── search ├── search.result.item.view.template.html ├── search.result.template.html └── search.template.html └── valuemeaning ├── value.meaning.item.view.template.html └── value.meaning.template.html /.gitignore: -------------------------------------------------------------------------------- 1 | .project 2 | .settings 3 | .classpath 4 | bin 5 | *.class 6 | target 7 | build 8 | *.log 9 | databases 10 | stores 11 | *~ 12 | catalog-* -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/MDRNode.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api; 2 | 3 | 4 | import tr.com.srdc.mdr.core.model.MDRResource; 5 | 6 | import com.hp.hpl.jena.ontology.OntClass; 7 | 8 | 9 | /** 10 | * @author anil 11 | * 12 | */ 13 | public interface MDRNode { 14 | 15 | /** 16 | * @return the {@link OntClass} version of this instance. 17 | */ 18 | OntClass asJenaClass(); 19 | 20 | /** 21 | * @return the {@link MDRResource} version of this instance. 22 | */ 23 | MDRResource asMDRResource(); 24 | 25 | /** 26 | * Deletes this node from the repository and all the references referring to 27 | * this,
28 | * if node acts as a container for other nodes which are not referenced from 29 | * any other node, also contained nodes will be deleted from the repository 30 | */ 31 | void delete(); 32 | 33 | } 34 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/ai/Concept.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.ai; 2 | 3 | import tr.com.srdc.mdr.core.model.iso11179.ConceptResource; 4 | 5 | /** 6 | * An Object Class is a set of ideas, abstractions, or things in the real world 7 | * that can be identified with explicit boundaries and meaning and whose 8 | * properties and behavior follow the same rules. It may be either a single or a 9 | * group of associated concepts, abstractions, or things. An Object Class may be 10 | * a single unit of thought (i.e., Concept) or a set of Concepts in a 11 | * relationship with each other to form a more complex concept (i.e., Concept 12 | * Relationship). A Concept and a Concept Relationship are subtypes of an Object 13 | * Class. Each Concept Relationship carries a concept relationship type 14 | * description that describes the nature of the relationship. 15 | * 16 | * @author anil 17 | * 18 | */ 19 | public interface Concept extends ObjectClass { 20 | 21 | @Override 22 | /** 23 | * @return the {@link ConceptResource} version this instance. 24 | */ 25 | ConceptResource asMDRResource(); 26 | } 27 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/ai/ConceptRelationship.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.ai; 2 | 3 | import tr.com.srdc.mdr.core.model.iso11179.ConceptRelationshipResource; 4 | 5 | 6 | /** 7 | * An Object Class is a set of ideas, abstractions, or things in the real world 8 | * that can be identified with explicit boundaries and meaning and whose 9 | * properties and behavior follow the same rules. It may be either a single or a 10 | * group of associated concepts, abstractions, or things. An Object Class may be 11 | * a single unit of thought (i.e., Concept) or a set of Concepts in a 12 | * relationship with each other to form a more complex concept (i.e., Concept 13 | * Relationship). A Concept and a Concept Relationship are subtypes of an Object 14 | * Class. Each Concept Relationship carries a concept relationship type 15 | * description that describes the nature of the relationship. 16 | * 17 | * @author anil 18 | * 19 | */ 20 | public interface ConceptRelationship extends ObjectClass { 21 | 22 | @Override 23 | /** 24 | * @return the {@link ConceptRelationshipResource} version this instance. 25 | */ 26 | ConceptRelationshipResource asMDRResource(); 27 | 28 | // /** 29 | // * @return Description for the type of relatinoship over the set of 30 | // * {@link Concept}s 31 | // */ 32 | // String getTypeDescription(); 33 | // 34 | // /** 35 | // * Adds a {@link Concept} to the set of related Concepts of this 36 | // * ConceptRelationship 37 | // * 38 | // * @param concept 39 | // * {@link Concept} to add related set 40 | // */ 41 | // void addRelatedConcept(Concept concept); 42 | // 43 | // /** 44 | // * @return List of all Concepts which are related through this 45 | // * ConceptRelationship 46 | // * @throws MDRException 47 | // */ 48 | // List getRelatedConcepts() throws MDRException; 49 | } 50 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/ai/DerivationRule.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.ai; 2 | 3 | import tr.com.srdc.mdr.core.model.iso11179.DerivationRuleResource; 4 | 5 | 6 | /** 7 | * A Data Element may have a Derivation Rule that is a specification of 8 | * derivation for the data element. The derivation rule may range from a simple 9 | * operation such as subtraction to a very complex set of derivations 10 | * (derivation being defined as a relationship between a derivation rule and an 11 | * input set upon which it acts). Derivation rules are not limited to arithmetic 12 | * and logical operations. As an Administered Item, a Derivation Rule carries 13 | * its own Administration Record information, allowing it to be identified, 14 | * named, defined and optionally classified in a Classification Scheme. A 15 | * Derivation Rule may be registered as an Administered Item without necessarily 16 | * being associated with any Data Element Derivation. 17 | * 18 | * @author anil 19 | * 20 | */ 21 | public interface DerivationRule extends AdministeredItem { 22 | 23 | @Override 24 | /** 25 | * @return the {@link DerivationRuleResource} version this instance. 26 | */ 27 | DerivationRuleResource asMDRResource(); 28 | 29 | // /** 30 | // * Method to create a {@link DataElementDerivation} with given input/output 31 | // * {@link DataElement}'s and applying this DerivationRule as a rule 32 | // * specification 33 | // * 34 | // * @param input 35 | // * DataElements which will be the input of DataElementDerivation 36 | // * @param output 37 | // * DataElements which are the derivations of input DataElements 38 | // * as a result of applying this DerivationRule 39 | // * @return 40 | // */ 41 | // DataElementDerivation createDerivation(DataElement input, DataElement output); 42 | // 43 | // /** 44 | // * @return List of all {@link DataElementDerivation}'s which are applying 45 | // * this DerivationRule 46 | // * @throws MDRException 47 | // */ 48 | // List getDataElementDerivations() throws MDRException; 49 | // 50 | // /** 51 | // * @return Specification of the DerivationRule which will be applied on 52 | // * {@link DataElement}s to derive new ones from existings. 53 | // */ 54 | // String getSpecification(); 55 | } 56 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/ai/EnumeratedValueDomain.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.ai; 2 | 3 | import java.util.List; 4 | 5 | import tr.com.srdc.mdr.core.api.composite.PermissibleValue; 6 | import tr.com.srdc.mdr.core.model.iso11179.EnumeratedValueDomainResource; 7 | 8 | 9 | /** 10 | * An Enumerated Value Domain is one where the Value Domain is expressed as an 11 | * explicit set of two or more Permissible Values. As a sub-type of Value 12 | * Domain, an Enumerated Value Domain inherits the attributes and relationships 13 | * of the former. 14 | * 15 | * @author anil 16 | * 17 | */ 18 | public interface EnumeratedValueDomain extends ValueDomain { 19 | 20 | @Override 21 | /** 22 | * @return the {@link EnumeratedValueDomainResource} version this instance. 23 | */ 24 | EnumeratedValueDomainResource asMDRResource(); 25 | 26 | /** 27 | * @return Returns a list of all {@link PermissibleValue}s of this 28 | * EnumeratedValueDomain 29 | */ 30 | List getPermissibleValues(); 31 | 32 | /** 33 | * Adds given {@link PermissibleValue}s to the value set of 34 | * EnumeratedValueDomain 35 | * 36 | * @param pv 37 | */ 38 | void addPermissibleValue(PermissibleValue... pv); 39 | 40 | // /** 41 | // * Each EnumeratedValueDomain has a set of {@link PermissibleValue}s, at 42 | // * least size of 2, from which {@link DataElement}s formed by this 43 | // * ValueDoamin can take a value 44 | // * 45 | // * @return unmodifiable List of all PermissibleValues contained by this 46 | // * ValueDomain 47 | // */ 48 | // List getPermissibleValues() throws MDRException; 49 | 50 | } 51 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/ai/NonEnumeratedConceptualDomain.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.ai; 2 | 3 | import tr.com.srdc.mdr.core.api.composite.Datatype; 4 | import tr.com.srdc.mdr.core.model.iso11179.NonEnumeratedConceptualDomainResource; 5 | 6 | /** 7 | * A Conceptual Domain that cannot be expressed as a finite set of Value 8 | * Meanings is called a Non-enumerated Conceptual Domain. It may be expressed 9 | * via a description or specification, such as a rule, a procedure, or a range 10 | * (i.e., interval). As a sub-type of Conceptual Domain, a Non-enumerated 11 | * Conceptual Domain inherits the attributes and relationships of the former. 12 | * 13 | * @author anil 14 | * 15 | */ 16 | public interface NonEnumeratedConceptualDomain extends ConceptualDomain { 17 | 18 | @Override 19 | /** 20 | * @return the {@link NonEnumeratedConceptualDomainResource} version this instance. 21 | */ 22 | NonEnumeratedConceptualDomainResource asMDRResource(); 23 | 24 | /** 25 | * @return Description of this NonEnumeratedConceptualDomain 26 | */ 27 | String getDomainDescription(); 28 | 29 | /** 30 | * Create a {@link NonEnumeratedValueDomain} out of this 31 | * {@link NonEnumeratedConceptualDomain} with the given name, definition and 32 | * dataType. Definition is copied to the description of the created 33 | * {@link NonEnumeratedValueDomain}. 34 | * 35 | * @param name 36 | * @param definition 37 | * @param dataType 38 | * @return 39 | */ 40 | NonEnumeratedValueDomain createNonEnumeratedValueDomain(String name, 41 | String definition, Datatype dataType); 42 | } 43 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/ai/NonEnumeratedValueDomain.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.ai; 2 | 3 | import tr.com.srdc.mdr.core.model.iso11179.NonEnumeratedValueDomainResource; 4 | 5 | /** 6 | * A Value Domain may be expressed via a description or specification, such as a 7 | * rule, a procedure, or a range (i.e., interval), rather than as an explicit 8 | * set of Permissible Values. Such a Value Domain is call a Nonenumerated Value 9 | * Domain. As a sub-type of Value Domain, a Non-enumerated Value Domain inherits 10 | * the attributes and relationships of the former. 11 | * 12 | * @author anil 13 | * 14 | */ 15 | public interface NonEnumeratedValueDomain extends ValueDomain { 16 | 17 | @Override 18 | /** 19 | * @return the {@link NonEnumeratedValueDomainResource} version this instance. 20 | */ 21 | NonEnumeratedValueDomainResource asMDRResource(); 22 | 23 | /** 24 | * @return Domain description of this NonEnumeratedConceptualDomain 25 | */ 26 | String getDomainDescription(); 27 | 28 | // /** 29 | // * @return Domain description of the ValueDomain, which describes the 30 | // values 31 | // * that DataElement can take, instead of specifying all values 32 | // * explicitly. 33 | // */ 34 | // String getDomainDescription(); 35 | 36 | } 37 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/ai/Property.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.ai; 2 | 3 | import tr.com.srdc.mdr.core.model.iso11179.PropertyResource; 4 | 5 | 6 | /** 7 | * A Property is a characteristic common to all members of an 8 | * {@link ObjectClass}. It may be any feature that humans naturally use to 9 | * distinguish one individual object from another. It is the human perception of 10 | * a single characteristic of an Object Class in the real world. It is 11 | * conceptual and thus has no particular associated means of representation by 12 | * which the Property can be communicated.
13 | * As an {@link AdministeredItem}, a Property carries its own Administration 14 | * Record information, allowing it to be identified, named, defined and 15 | * optionally classified within a {@link ClassificationScheme}. A Property may 16 | * be registered as an Administered Item without necessarily being associated 17 | * with a {@link DataElementConcept} or, through the latter, an 18 | * {@link ObjectClass}. 19 | * 20 | * @author anil 21 | * 22 | */ 23 | 24 | public interface Property extends AdministeredItem { 25 | 26 | @Override 27 | /** 28 | * @return the {@link PropertyResource} version this instance. 29 | */ 30 | PropertyResource asMDRResource(); 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/ClassificationSchemeItem.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.composite; 2 | 3 | import tr.com.srdc.mdr.core.api.MDRNode; 4 | import tr.com.srdc.mdr.core.api.ai.ClassificationScheme; 5 | import tr.com.srdc.mdr.core.model.iso11179.composite.ClassificationSchemeItemResource; 6 | 7 | /** 8 | * 9 | * A Classification Scheme Item represents an individual item within a 10 | * Classification Scheme. The Classification Scheme Item may have either a 11 | * classification scheme item type name, a classification scheme item value, or 12 | * both. 13 | * 14 | * @author anil 15 | * 16 | */ 17 | public interface ClassificationSchemeItem extends MDRNode { 18 | 19 | @Override 20 | /** 21 | * @return the {@link ClassificationSchemeItemResource} version this instance. 22 | */ 23 | ClassificationSchemeItemResource asMDRResource(); 24 | 25 | /** 26 | * 27 | * @return the {@link ClassificationScheme} containing this 28 | * {@link ClassificationSchemeItem} 29 | */ 30 | ClassificationScheme getClassificationScheme(); 31 | 32 | /** 33 | * 34 | * @return the type name of a {@link ClassificationSchemeItem}. If attribute 35 | * does not exist return null 36 | */ 37 | String getTypeName(); 38 | 39 | /** 40 | * 41 | * @return the item value of a {@link ClassificationSchemeItem}. If 42 | * attribute does not exist return null 43 | */ 44 | String getItemValue(); 45 | } 46 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/ClassificationSchemeItemRelationship.java: -------------------------------------------------------------------------------- 1 | //TODO: ClassificationSchemeItemRelationship created by Classification scheme, how to relate items other than constructor? 2 | package tr.com.srdc.mdr.core.api.composite; 3 | 4 | import tr.com.srdc.mdr.core.api.MDRNode; 5 | import tr.com.srdc.mdr.core.model.iso11179.composite.ClassificationSchemeItemRelationshipResource; 6 | 7 | /** 8 | * 9 | * A Classification Scheme Item Relationship associates two or more 10 | * Classification Scheme Items within a Classification Scheme. Such 11 | * relationships serve to assist navigation through a large number of 12 | * Classification Scheme Items. 13 | * 14 | * @author anil 15 | * 16 | */ 17 | public interface ClassificationSchemeItemRelationship extends MDRNode { 18 | 19 | @Override 20 | /** 21 | * @return the {@link ClassificationSchemeItemRelationshipResource} version this instance. 22 | */ 23 | ClassificationSchemeItemRelationshipResource asMDRResource(); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/ConceptualDomainRelationship.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.composite; 2 | 3 | import tr.com.srdc.mdr.core.api.MDRNode; 4 | import tr.com.srdc.mdr.core.api.ai.ConceptualDomain; 5 | import tr.com.srdc.mdr.core.model.iso11179.composite.ConceptualDomainRelationshipResource; 6 | 7 | /** 8 | * A {@link ConceptualDomain} may be associated with other 9 | * {@link ConceptualDomain}s, via the Conceptual Domain Relationship. The nature 10 | * of the relationship is described using the conceptual domain relationship 11 | * type description. Through the Conceptual Domain Relationship, a 12 | * {@link ConceptualDomain} may be composed of other {@link ConceptualDomain} or 13 | * may be a member (component) of a larger {@link ConceptualDomain}. 14 | * 15 | * @author anil 16 | * 17 | */ 18 | public interface ConceptualDomainRelationship extends MDRNode { 19 | 20 | @Override 21 | /** 22 | * @return the {@link ConceptualDomainRelationshipResource} version this instance. 23 | */ 24 | ConceptualDomainRelationshipResource asMDRResource(); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/Contact.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.composite; 2 | 3 | import tr.com.srdc.mdr.core.api.MDRNode; 4 | import tr.com.srdc.mdr.core.model.iso11179.composite.ContactResource; 5 | 6 | /** 7 | * The composite datatype Contact is used to specify the contact information for 8 | * registrar contact, stewardship contact and submission contact. 9 | * 10 | * @author anil 11 | * 12 | */ 13 | public interface Contact extends MDRNode { 14 | 15 | @Override 16 | /** 17 | * @return the {@link ContactResource} version this instance. 18 | */ 19 | ContactResource asMDRResource(); 20 | 21 | /** 22 | * @return the name of the contact 23 | */ 24 | String getName(); 25 | 26 | /** 27 | * 28 | * @return the title of a {@link Contact}. If the attribute does not exist 29 | * return null 30 | */ 31 | String getTitle(); 32 | 33 | } 34 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/DataElementConceptRelationship.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.composite; 2 | 3 | import tr.com.srdc.mdr.core.api.MDRNode; 4 | import tr.com.srdc.mdr.core.api.ai.DataElementConcept; 5 | import tr.com.srdc.mdr.core.model.iso11179.composite.DataElementConceptRelationshipResource; 6 | 7 | /** 8 | * A {@link DataElementConcept} may be associated with other 9 | * {@link DataElementConcept}s, via the Data Element Concept Relationship. The 10 | * nature of the relationship is described using the data element concept 11 | * relationship type description. 12 | * 13 | * @author anil 14 | * 15 | */ 16 | public interface DataElementConceptRelationship extends MDRNode { 17 | 18 | @Override 19 | /** 20 | * @return the {@link DataElementConceptRelationshipResource} version this instance. 21 | */ 22 | DataElementConceptRelationshipResource asMDRResource(); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/DataElementDerivation.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.composite; 2 | 3 | import java.util.List; 4 | 5 | import tr.com.srdc.mdr.core.api.MDRNode; 6 | import tr.com.srdc.mdr.core.api.ai.DataElement; 7 | import tr.com.srdc.mdr.core.api.ai.DerivationRule; 8 | import tr.com.srdc.mdr.core.model.MDRException; 9 | import tr.com.srdc.mdr.core.model.iso11179.composite.DataElementDerivationResource; 10 | 11 | 12 | 13 | /** 14 | * A Data Element Derivation is the application of a Derivation Rule to one or 15 | * more input Data Elements, to derive one or more output Data Elements. 16 | * 17 | * @author anil 18 | * 19 | */ 20 | public interface DataElementDerivation extends MDRNode { 21 | 22 | @Override 23 | /** 24 | * @return the {@link DataElementDerivationResource} version this instance. 25 | */ 26 | DataElementDerivationResource asMDRResource(); 27 | 28 | /** 29 | * 30 | * @return {@link DerivationRule} applied to this 31 | * {@link DataElementDerivation} 32 | */ 33 | DerivationRule getDerivationRule(); 34 | 35 | /** 36 | * 37 | * @return the unmodifiable list of {@link DataElement} which is input to 38 | * this {@link DataElementDerivation} 39 | * @throws MDRException 40 | */ 41 | List getInputDataElements() throws MDRException; 42 | 43 | /** 44 | * 45 | * @return the unmodifiable list of {@link DataElement} derived from this 46 | * {@link DataElementDerivation} 47 | * @throws MDRException 48 | */ 49 | List getOutputDataElements() throws MDRException; 50 | 51 | } 52 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/DataElementExample.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.composite; 2 | 3 | import java.util.List; 4 | 5 | import tr.com.srdc.mdr.core.api.MDRNode; 6 | import tr.com.srdc.mdr.core.api.ai.DataElement; 7 | import tr.com.srdc.mdr.core.model.MDRException; 8 | import tr.com.srdc.mdr.core.model.iso11179.composite.DataElementExampleResource; 9 | 10 | 11 | 12 | /** 13 | * A Data Element may have Data Element Examples that are used to provide 14 | * representative samples of the Data Element. 15 | * 16 | * @author anil 17 | * 18 | */ 19 | public interface DataElementExample extends MDRNode { 20 | 21 | @Override 22 | /** 23 | * @return the {@link DataElementExampleResource} version this instance. 24 | */ 25 | DataElementExampleResource asMDRResource(); 26 | 27 | String getExampleItem(); 28 | 29 | /** 30 | * 31 | * @return the unmodifiable list of {@link DataElement} exemplified by this 32 | * {@link DataElementExample} 33 | * @throws MDRException 34 | */ 35 | List getDataElements() throws MDRException; 36 | } 37 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/Datatype.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.composite; 2 | 3 | import tr.com.srdc.mdr.core.api.MDRNode; 4 | import tr.com.srdc.mdr.core.model.iso11179.composite.DatatypeResource; 5 | 6 | /** 7 | * A Value Domain is associated with a Datatype — a set of distinct values, 8 | * characterized by properties of those values and by operations on those 9 | * values, for example the category used for the collection of letters, digits, 10 | * and/or symbols to depict values of a Data Element determined by the 11 | * operations that may be performed on the Data Element.
12 | * A Datatype is designated by a data type name, and described by a datatype 13 | * description. The datatype name is usually drawn from some external source, 14 | * which is designated by a datatype scheme reference. Additional information 15 | * may optionally be provided using the datatype annotation 16 | * 17 | * @author anil 18 | * 19 | */ 20 | public interface Datatype extends MDRNode { 21 | 22 | @Override 23 | /** 24 | * @return the {@link DatatypeResource} version this instance. 25 | */ 26 | DatatypeResource asMDRResource(); 27 | 28 | String getName(); 29 | 30 | String getSchemeReference(); 31 | 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/Definition.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.composite; 2 | 3 | import tr.com.srdc.mdr.core.api.MDRNode; 4 | import tr.com.srdc.mdr.core.model.iso11179.composite.DefinitionResource; 5 | 6 | /** 7 | * 8 | * The Definition class provides the defining entry of a Language Section in the 9 | * Terminological Entry for an Administered Item in a particular Context. In 10 | * other words, it is where the definition for an Administered Item is specified 11 | * in a particular language for a particular Context. Where multiple Definitions 12 | * are provided within the same Language Section, one of them may be specified 13 | * as the preferred definition. 14 | * 15 | * @author anil 16 | * 17 | */ 18 | public interface Definition extends MDRNode { 19 | 20 | @Override 21 | /** 22 | * @return the {@link DefinitionResource} version this instance. 23 | */ 24 | DefinitionResource asMDRResource(); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/Designation.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.composite; 2 | 3 | import tr.com.srdc.mdr.core.api.MDRNode; 4 | import tr.com.srdc.mdr.core.model.iso11179.composite.DesignationResource; 5 | 6 | /** 7 | * The Designation class provides the naming entry of a Language Section in the 8 | * Terminological Entry for an Administered Item in a particular Context. In 9 | * other words, it is where the name for an Administered Item is specified in a 10 | * particular language for a particular Context. Where multiple Designations are 11 | * provided within the same Language Section, one of them may be specified as 12 | * the preferred designation. 13 | * 14 | * @author anil 15 | * 16 | */ 17 | public interface Designation extends MDRNode { 18 | 19 | @Override 20 | /** 21 | * @return the {@link DesignationResource} version this instance. 22 | */ 23 | DesignationResource asMDRResource(); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/LanguageIdentification.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.composite; 2 | 3 | import tr.com.srdc.mdr.core.api.MDRNode; 4 | import tr.com.srdc.mdr.core.model.iso11179.composite.LanguageIdentificationResource; 5 | import tr.com.srdc.mdr.core.util.Country; 6 | import tr.com.srdc.mdr.core.util.Language; 7 | 8 | /** 9 | * The composite datatype Language Identification serves as an identifier for a 10 | * language. It is used in: 11 | *
    12 | *
  • the {@link RegistrationAuthority} class to identify the default 13 | * language(s) of the registration authority
  • 14 | *
  • the {@link ReferenceDocument} class to identify the language(s) used 15 | * within the document
  • 16 | *
  • the {@link LanguageSection} class of the Naming and Definition region to 17 | * identify the language used for names and definitions within that section.
  • 18 | *
19 | *
20 | * The identifier comprises a mandatory language identifier and an optional 21 | * country identifier, the latter being used to distinguish variations in 22 | * language use in different countries. 23 | * 24 | * @author anil 25 | * 26 | */ 27 | public interface LanguageIdentification extends MDRNode { 28 | 29 | @Override 30 | /** 31 | * @return the {@link LanguageIdentificationResource} version this instance. 32 | */ 33 | LanguageIdentificationResource asMDRResource(); 34 | 35 | Language getLanguage(); 36 | 37 | /** 38 | * 39 | * @return the {@link Country} of a {@link LanguageIdentification}. If the 40 | * attribute does not exist return null 41 | */ 42 | Country getCountry(); 43 | 44 | } 45 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/LanguageSection.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.composite; 2 | 3 | import tr.com.srdc.mdr.core.api.MDRNode; 4 | import tr.com.srdc.mdr.core.model.iso11179.composite.LanguageSectionResource; 5 | 6 | /** 7 | * 8 | * If a registry supports multiple languages, the language(s) associated with 9 | * particular names and definitions need to be identified. A Language Section 10 | * partitions a Terminological Entry by Language. A language section language 11 | * identifier identifies the Language associated with a particular Language 12 | * Section. A Language Section contains zero or more Designations. A Language 13 | * Section contains zero or more Definitions. 14 | * 15 | * @author anil 16 | * 17 | */ 18 | public interface LanguageSection extends MDRNode { 19 | 20 | @Override 21 | /** 22 | * @return the {@link LanguageSectionResource} version this instance. 23 | */ 24 | LanguageSectionResource asMDRResource(); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/Organization.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.composite; 2 | 3 | import tr.com.srdc.mdr.core.api.MDRNode; 4 | import tr.com.srdc.mdr.core.model.iso11179.composite.OrganizationResource; 5 | 6 | public interface Organization extends MDRNode { 7 | 8 | @Override 9 | /** 10 | * @return the {@link OrganizationResource} version this instance. 11 | */ 12 | OrganizationResource asMDRResource(); 13 | 14 | String getName(); 15 | 16 | /** 17 | * 18 | * @return the mail address of {@link Organization}. If the attribute does 19 | * not exist return null 20 | */ 21 | String getMailAddress(); 22 | 23 | /** 24 | * 25 | * @param identifier 26 | * @return the {@link ReferenceDocument} provided by this 27 | * {@link Organization} 28 | */ 29 | ReferenceDocument createReferenceDocument(String identifier); 30 | 31 | /** 32 | * 33 | * @param identifier 34 | * @param typeDescription 35 | * Optional. 36 | * @param languageIdentification 37 | * Optional. 38 | * @param title 39 | * Optional. 40 | * @return the {@link ReferenceDocument} provided by this 41 | * {@link Organization} 42 | */ 43 | ReferenceDocument createReferenceDocument(String identifier, 44 | String typeDescription, 45 | LanguageIdentification languageIdentification, String title); 46 | 47 | } 48 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/PermissibleValue.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.composite; 2 | 3 | import java.util.Calendar; 4 | 5 | import tr.com.srdc.mdr.core.api.MDRNode; 6 | import tr.com.srdc.mdr.core.model.iso11179.composite.PermissibleValueResource; 7 | import tr.com.srdc.mdr.core.model.iso11179.composite.ValueMeaningResource; 8 | import tr.com.srdc.mdr.core.model.iso11179.composite.ValueResource; 9 | 10 | 11 | 12 | /** 13 | * A Permissible Value is an expression of a Value Meaning within an Enumerated 14 | * Value Domain. It is one of a set of such values that comprises an Enumerated 15 | * Value Domain. Each Permissible Value is associated with a Value Meaning. 16 | * 17 | * @author anil 18 | * 19 | */ 20 | public interface PermissibleValue extends MDRNode { 21 | 22 | @Override 23 | /** 24 | * @return the {@link PermissibleValueResource} version this instance. 25 | */ 26 | PermissibleValueResource asMDRResource(); 27 | 28 | Calendar getBeginDate(); 29 | 30 | /** 31 | * 32 | * @return the end date of {@link PermissibleValue}. If the attribute does 33 | * not exist return null 34 | */ 35 | Calendar getEndDate(); 36 | 37 | /** 38 | * 39 | * @return the value meaning identifier of a {@link ValueMeaningResource} 40 | * used in this {@link PermissibleValue} 41 | */ 42 | String getValueMeaningIdentifier(); 43 | 44 | /** 45 | * 46 | * @return the value item of a {@link ValueResource} used in this 47 | * {@link PermissibleValue} 48 | */ 49 | String getValueItem(); 50 | 51 | /** 52 | * 53 | * @return the value meaning description of a {@link ValueMeaningResource} 54 | * used in this {@link PermissibleValue}. If the attribute does not 55 | * exist return null 56 | */ 57 | String getValueMeaningDescription(); 58 | } 59 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/ReferenceDocument.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.composite; 2 | 3 | import java.util.List; 4 | 5 | import tr.com.srdc.mdr.core.api.MDRNode; 6 | import tr.com.srdc.mdr.core.model.MDRException; 7 | import tr.com.srdc.mdr.core.model.iso11179.composite.ReferenceDocumentResource; 8 | 9 | 10 | 11 | /** 12 | * An Administered Item may be described by one or more Reference Documents. For 13 | * each Reference Document, the Organization that originated the Reference 14 | * Document must be identified. 15 | * 16 | * @author anil 17 | * 18 | */ 19 | public interface ReferenceDocument extends MDRNode { 20 | 21 | @Override 22 | /** 23 | * @return the {@link ReferenceDocumentResource} version this instance. 24 | */ 25 | ReferenceDocumentResource asMDRResource(); 26 | 27 | String getIdentifier(); 28 | 29 | /** 30 | * 31 | * @return the type description of {@link ReferenceDocument}. If the 32 | * attribute does not exist return null 33 | */ 34 | String getTypeDescription(); 35 | 36 | /** 37 | * 38 | * @return the unmodifiable list of {@link LanguageIdentification} of 39 | * {@link ReferenceDocument}. 40 | * @throws MDRException 41 | */ 42 | List getLanguageIdentifications() 43 | throws MDRException; 44 | 45 | /** 46 | * 47 | * @return the title of {@link ReferenceDocument}. If attribute does not 48 | * exist return null 49 | */ 50 | String getTitle(); 51 | 52 | /** 53 | * 54 | * @return the unmodifiable list of {@link Organization} providing this 55 | * {@link ReferenceDocument} 56 | * @throws MDRException 57 | */ 58 | List getProviderOrganizations() throws MDRException; 59 | 60 | } 61 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/Registrar.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.composite; 2 | 3 | import tr.com.srdc.mdr.core.api.MDRNode; 4 | import tr.com.srdc.mdr.core.model.iso11179.composite.RegistrarResource; 5 | 6 | /** 7 | * 8 | * A Registration Authority is represented by one or more Registrars. Registrars 9 | * are the persons who perform the administrative steps to register Administered 10 | * Items in a Metadata Registry. 11 | * 12 | * @author anil 13 | * 14 | */ 15 | public interface Registrar extends MDRNode { 16 | 17 | @Override 18 | /** 19 | * @return the {@link RegistrarResource} version this instance. 20 | */ 21 | RegistrarResource asMDRResource(); 22 | 23 | /** 24 | * 25 | * @return the {@link RegistrationAuthority} represented by this 26 | * {@link Registrar} 27 | */ 28 | RegistrationAuthority getRegistrationAuthority(); 29 | 30 | Contact getContact(); 31 | 32 | String getIdentifier(); 33 | 34 | } 35 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/RegistrationAuthority.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.composite; 2 | 3 | import java.util.List; 4 | 5 | import tr.com.srdc.mdr.core.model.MDRException; 6 | import tr.com.srdc.mdr.core.model.iso11179.composite.RegistrationAuthorityResource; 7 | 8 | 9 | 10 | /** 11 | * A Registration Authority is any Organization authorized to register metadata. 12 | * A Registration Authority is a subtype of Organization and inherits all of its 13 | * attributes and relationships. An Administered Item has a Registration 14 | * Authority that is its owner. A Registration Authority may register many 15 | * Administered Items. 16 | * 17 | * @author anil 18 | * 19 | */ 20 | public interface RegistrationAuthority extends Organization { 21 | 22 | @Override 23 | /** 24 | * @return the {@link RegistrationAuthorityResource} version this instance. 25 | */ 26 | RegistrationAuthorityResource asMDRResource(); 27 | 28 | /** 29 | * 30 | * @return 31 | */ 32 | RegistrationAuthorityIdentifier getIdentifier(); 33 | 34 | /** 35 | * 36 | * @return the unmodifiable list of {@link LanguageIdentification} 37 | * @throws MDRException 38 | */ 39 | List getLanguageIdentifications() 40 | throws MDRException; 41 | 42 | } 43 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/RegistrationAuthorityIdentifier.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.composite; 2 | 3 | import tr.com.srdc.mdr.core.api.MDRNode; 4 | import tr.com.srdc.mdr.core.model.iso11179.composite.RegistrationAuthorityIdentifierResource; 5 | 6 | public interface RegistrationAuthorityIdentifier extends MDRNode { 7 | // TODO : Setter getter for the attributes of Registration Authority 8 | // Identifier 9 | 10 | @Override 11 | /** 12 | * @return the {@link RegistrationAuthorityIdentifierResource} version this instance. 13 | */ 14 | RegistrationAuthorityIdentifierResource asMDRResource(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/UnitOfMeasure.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.composite; 2 | 3 | import tr.com.srdc.mdr.core.api.MDRNode; 4 | import tr.com.srdc.mdr.core.model.iso11179.composite.UnitOfMeasureResource; 5 | 6 | /** 7 | * If meaningful, a Value Domain may be associated with a Unit of Measure — the 8 | * unit in which any associated Data Element values are specified. The unit is 9 | * designated by a unit of measure name. When specified, the unit must be 10 | * consistent with the dimensionality specified in the corresponding Conceptual 11 | * Domain. Optionally, a unit of measure precision may be specified, as the 12 | * number of decimal places to be supported in the associated Data Element 13 | * values. This precision shall be considered a default that may be overridden 14 | * for any particular Data Element. 15 | * 16 | * @author anil 17 | * 18 | */ 19 | public interface UnitOfMeasure extends MDRNode { 20 | 21 | @Override 22 | /** 23 | * @return the {@link UnitOfMeasureResource} version this instance. 24 | */ 25 | UnitOfMeasureResource asMDRResource(); 26 | 27 | String getName(); 28 | 29 | int getPrecision(); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/ValueDomainRelationship.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.composite; 2 | 3 | import tr.com.srdc.mdr.core.api.MDRNode; 4 | import tr.com.srdc.mdr.core.api.ai.ValueDomain; 5 | import tr.com.srdc.mdr.core.model.iso11179.composite.ValueDomainRelationshipResource; 6 | 7 | /** 8 | * A {@link ValueDomain} may be associated with other {@link ValueDomain}s, via 9 | * the Value Domain Relationship. The nature of the relationship is described 10 | * using the value domain relationship type description. Through the Value 11 | * Domain Relationship, a {@link ValueDomain} may be composed of other 12 | * {@link ValueDomain} or may be a member (component) of a larger 13 | * {@link ValueDomain}. 14 | * 15 | * @author anil 16 | * 17 | */ 18 | public interface ValueDomainRelationship extends MDRNode { 19 | 20 | @Override 21 | /** 22 | * @return the {@link ValueDomainRelationshipResource} version this instance. 23 | */ 24 | ValueDomainRelationshipResource asMDRResource(); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/api/composite/ValueMeaning.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.api.composite; 2 | 3 | import tr.com.srdc.mdr.core.api.MDRNode; 4 | import tr.com.srdc.mdr.core.model.iso11179.composite.ValueMeaningResource; 5 | 6 | public interface ValueMeaning extends MDRNode { 7 | 8 | @Override 9 | ValueMeaningResource asMDRResource(); 10 | 11 | /** 12 | * @return the description for the semantics of this ValueMeaning 13 | */ 14 | String getDescription(); 15 | 16 | /** 17 | * @return Unique Identifier for this ValueMeaning, to be used for matching 18 | * with {@link PermissibleValue}s 19 | */ 20 | String getIdentifier(); 21 | 22 | /** 23 | * Creates a {@link PermissibleValue} by providing a representation for this 24 | * ValueMeaning 25 | */ 26 | PermissibleValue createPermissibleValue(String valueItem); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/impl/RepositoryManager.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.impl; 2 | 3 | import org.slf4j.Logger; 4 | import org.slf4j.LoggerFactory; 5 | 6 | import tr.com.srdc.mdr.core.model.MDRException; 7 | import tr.com.srdc.mdr.core.store.MDRDatabase; 8 | import tr.com.srdc.mdr.core.store.MDRDatabaseManager; 9 | 10 | 11 | public class RepositoryManager { 12 | 13 | private static final Logger logger = LoggerFactory 14 | .getLogger(RepositoryManager.class); 15 | 16 | private static RepositoryManager repositoryManager; 17 | 18 | private MDRDatabase mdrDatabase; 19 | 20 | // Currently, only one repository exists. 21 | // TODO Lateron, user management facilities may require one repository 22 | // for each user which all process on the same MDRDatabase 23 | private Repository repository; 24 | 25 | // Each Repository works on the same MDRDatabase. 26 | private RepositoryManager() { 27 | try { 28 | mdrDatabase = MDRDatabaseManager.getInstance().createMDRDatabase(); 29 | repository = new Repository(mdrDatabase); 30 | mdrDatabase.setSyncMode(true); 31 | 32 | } catch (MDRException e) { 33 | logger.error("Repository could not be initialized for the user", e); 34 | throw new IllegalStateException(e); 35 | } 36 | } 37 | 38 | public static RepositoryManager getInstance() { 39 | if (repositoryManager == null) { 40 | repositoryManager = new RepositoryManager(); 41 | } 42 | return repositoryManager; 43 | } 44 | 45 | public Repository getRepository() { 46 | return repository; 47 | } 48 | 49 | } 50 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/Abbreviation.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model; 2 | 3 | import com.hp.hpl.jena.ontology.OntModel; 4 | 5 | /** 6 | * Abbreviations to identify the URIs of the resources within the 7 | * {@link OntModel}. 8 | * 9 | * @author anil 10 | * 11 | */ 12 | public enum Abbreviation { 13 | ItemIdentifier("II"), AdministrationRecord("AR"), AdministeredItem("AI"), ClassificationScheme( 14 | "CS"), ClassificationSchemeItem("CSI"), ClassificationSchemeItemRelationship( 15 | "CSIR"), Concept("CON"), ConceptualDomain("CD"), ConceptualDomainRelationship( 16 | "CDR"), ConceptRelationship("CONR"), Contact("CNT"), Context("CX"), DataElement( 17 | "DE"), DataElementConcept("DEC"), DataElementDerivation("DER"), DataElementExample( 18 | "DAE"), DataElementConceptRelationship("DECR"), Datatype("DT"), Designation( 19 | "DES"), Definition("DEF"), DerivationRule("DR"), LanguageSection( 20 | "LS"), ObjectClass("OC"), Property("PR"), RepresentationClass("RC"), ValueDomain( 21 | "VD"), Organization("ORG"), RegistrationAuthority("RA"), ReferenceDocument( 22 | "RD"), Submission("SUB"), Stewardship("STEW"), AdministeredItemContext( 23 | "AIC"), TerminologicalEntry("TE"), UnitOfMeasure("UOM"), NonEnumeratedConceptualDomain( 24 | "NECD"), NonEnumeratedValueDomain("NEVD"), EnumeratedConceptualDomain( 25 | "ECD"), EnumeratedValueDomain("EVD"), Value("VAL"), ValueDomainRelationship( 26 | "VDR"), ValueMeaning("VM"), PermissibleValue("PVAL"); 27 | 28 | private final String abbreviation; 29 | 30 | private Abbreviation(String abbreviation) { 31 | this.abbreviation = abbreviation; 32 | } 33 | 34 | @Override 35 | public final String toString() { 36 | return this.abbreviation; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/ISODataType.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model; 2 | 3 | public enum ISODataType { 4 | 5 | INTEGER("integer"), REAL("real"), BOOLEAN("boolean"), CHARACTER("character"), STRING( 6 | "characterstring"), TIME("time"), CD("CD"), CD_CV("CD.CV"), TS_DATE( 7 | "TS.DATE"), TS_DATETIME("TS.DATETIME"), II("II"), INT_NONNEG( 8 | "INT.NONNEG"), PQ("PQ"), PQ_TIME("PQ.TIME"), IVL_TS("IVL.TS"), IVL_PQ( 9 | "IVL.PQ"), PIVL_TS("PIVL.TS"); 10 | 11 | private final String identifier; 12 | 13 | private ISODataType(String identifier) { 14 | this.identifier = identifier; 15 | } 16 | 17 | @Override 18 | public final String toString() { 19 | return this.identifier; 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/MDRException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | package tr.com.srdc.mdr.core.model; 5 | 6 | /** 7 | * @author anil 8 | * 9 | */ 10 | public class MDRException extends Exception { 11 | 12 | private static final long serialVersionUID = -596274139454781905L; 13 | 14 | public MDRException(String msg) { 15 | super(msg); 16 | } 17 | 18 | public MDRException(Throwable cause) { 19 | super(cause); 20 | } 21 | 22 | public MDRException(String msg, Throwable cause) { 23 | super(msg, cause); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/MDRResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model; 2 | 3 | 4 | import tr.com.srdc.mdr.core.api.MDRNode; 5 | 6 | import com.hp.hpl.jena.ontology.OntClass; 7 | 8 | 9 | /** 10 | * 11 | * Representation of the ontological classes within the MDR Model. 12 | * Low-level, Semantic Data Manipulation API is based on Jena API, hence this 13 | * OWL class extends {@link OntClass}. 14 | * 15 | * @author anil 16 | * 17 | */ 18 | public interface MDRResource extends OntClass, MDRNode { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/iso11179/ConceptResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model.iso11179; 2 | 3 | import java.util.List; 4 | 5 | import tr.com.srdc.mdr.core.api.ai.Concept; 6 | import tr.com.srdc.mdr.core.model.MDRException; 7 | import tr.com.srdc.mdr.core.model.Vocabulary; 8 | 9 | 10 | 11 | /** 12 | * 13 | * An Object Class is a set of ideas, abstractions, or things in the real world 14 | * that can be identified with explicit boundaries and meaning and whose 15 | * properties and behavior follow the same rules. It may be either a single or a 16 | * group of associated concepts, abstractions, or things. An Object Class may be 17 | * a single unit of thought (i.e., Concept) or a set of Concepts in a 18 | * relationship with each other to form a more complex concept (i.e., Concept 19 | * Relationship). A Concept and a Concept Relationship are subtypes of an Object 20 | * Class. 21 | * 22 | * @author anil 23 | * 24 | */ 25 | public interface ConceptResource extends ObjectClassResource, Concept { 26 | 27 | /** 28 | * Adds {@link Vocabulary#usedInConceptRelationship} property with given 29 | * value 30 | * 31 | * @param usedInConceptRelationship 32 | */ 33 | void addUsedInConceptRelationship( 34 | ConceptRelationshipResource usedInConceptRelationship); 35 | 36 | /** 37 | * Removes {@link Vocabulary#usedInConceptRelationship} property with given 38 | * value 39 | * 40 | * @param usedInConceptRelationship 41 | */ 42 | void removeUsedInConceptRelationship( 43 | ConceptRelationshipResource usedInConceptRelationship); 44 | 45 | /** 46 | * 47 | * @return {@link List} of all {@link Vocabulary#usedInConceptRelationship} 48 | * property values 49 | * @throws MDRException 50 | */ 51 | List getUsedInConceptRelationships() 52 | throws MDRException; 53 | 54 | } -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/iso11179/EnumeratedConceptualDomainResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model.iso11179; 2 | 3 | import java.util.List; 4 | 5 | import tr.com.srdc.mdr.core.api.ai.EnumeratedConceptualDomain; 6 | import tr.com.srdc.mdr.core.model.MDRException; 7 | import tr.com.srdc.mdr.core.model.Vocabulary; 8 | import tr.com.srdc.mdr.core.model.iso11179.composite.ValueMeaningResource; 9 | 10 | 11 | 12 | /** 13 | * @author anil 14 | * 15 | */ 16 | public interface EnumeratedConceptualDomainResource extends ConceptualDomainResource, 17 | EnumeratedConceptualDomain { 18 | 19 | /** 20 | * Adds {@link Vocabulary#containingValueMeaningSet} property with given 21 | * value 22 | * 23 | * @param containingValueMeaningSet 24 | */ 25 | void addContainingValueMeaningSet(ValueMeaningResource containingValueMeaningSet); 26 | 27 | /** 28 | * removes {@link Vocabulary#containingValueMeaningSet} property with given 29 | * value 30 | * 31 | * @param containingValueMeaningSet 32 | */ 33 | void removeContainingValueMeaningSet( 34 | ValueMeaningResource containingValueMeaningSet); 35 | 36 | /** 37 | * {@link List} of all {@link Vocabulary#containingValueMeaningSet} property 38 | * values 39 | * 40 | * @return 41 | * @throws MDRException 42 | */ 43 | List getContainingValueMeaningSets() throws MDRException; 44 | 45 | } -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/iso11179/EnumeratedValueDomainResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model.iso11179; 2 | 3 | import java.util.List; 4 | 5 | import tr.com.srdc.mdr.core.api.ai.EnumeratedValueDomain; 6 | import tr.com.srdc.mdr.core.model.MDRException; 7 | import tr.com.srdc.mdr.core.model.Vocabulary; 8 | import tr.com.srdc.mdr.core.model.iso11179.composite.PermissibleValueResource; 9 | 10 | 11 | 12 | /** 13 | * 14 | * An Enumerated Value Domain is one where the Value Domain is expressed as an 15 | * explicit set of two or more Permissible Values. As a sub-type of Value 16 | * Domain, an Enumerated Value Domain inherits the attributes and relationships 17 | * of the former. 18 | * 19 | * @author anil 20 | * 21 | */ 22 | public interface EnumeratedValueDomainResource extends ValueDomainResource, 23 | EnumeratedValueDomain { 24 | 25 | /** 26 | * Adds {@link Vocabulary#containingPermissibleValueSet with given value 27 | * @param containingPermissibleValueSet 28 | */ 29 | void addContainingPermissibleValueSet( 30 | PermissibleValueResource containingPermissibleValueSet); 31 | 32 | /** 33 | * Removes {@link Vocabulary#containingPermissibleValueSet} with given value 34 | * 35 | * @param containingPermissibleValueSet 36 | * throws {@link IllegalStateException} when try to last 2 37 | * property 38 | */ 39 | void removeContaningPermissibleValueSet( 40 | PermissibleValueResource containingPermissibleValueSet); 41 | 42 | /** 43 | * 44 | * @return {@link List} of all 45 | * {@link Vocabulary#containingPermissibleValueSet} property values 46 | * @throws MDRException 47 | */ 48 | List getContainingPermissibleValueSets() 49 | throws MDRException; 50 | 51 | } -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/iso11179/NonEnumeratedValueDomainResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model.iso11179; 2 | 3 | import tr.com.srdc.mdr.core.api.ai.NonEnumeratedValueDomain; 4 | import tr.com.srdc.mdr.core.model.Vocabulary; 5 | 6 | /** 7 | * 8 | * A Value Domain that is specified by a description rather than a list of all 9 | * Permissible Values. 10 | * 11 | * @author serike 12 | * 13 | */ 14 | public interface NonEnumeratedValueDomainResource extends ValueDomainResource, 15 | NonEnumeratedValueDomain { 16 | 17 | /** 18 | * Set the {@link Vocabulary#nonEnumeratedDomainDescription} of 19 | * {@link NonEnumeratedValueDomainResource}. 20 | * 21 | * @param nonEnumeratedDomainDescription 22 | *
23 | * An {@link Vocabulary#nonEnumeratedDomainDescription} of a 24 | * {@link NonEnumeratedValueDomainResource}. 25 | */ 26 | void setNonEnumeratedDomainDescription(String nonEnumeratedDomainDescription); 27 | 28 | /** 29 | * @return the {@link Vocabulary#nonEnumeratedDomainDescription} of a 30 | * {@link NonEnumeratedValueDomainResource} 31 | */ 32 | String getNonEnumeratedDomainDescription(); 33 | 34 | /** 35 | * Set the 36 | * {@link Vocabulary#representingNonEnumeratedConceptualDomainRepresentation} 37 | * of this {@link NonEnumeratedValueDomainResource}. 38 | * 39 | * @param representingNonEnumeratedConceptualDomainRepresentation 40 | */ 41 | void setRepresentingNonEnumeratedConceptualDomainRepresentation( 42 | NonEnumeratedConceptualDomainResource representingNonEnumeratedConceptualDomainRepresentation); 43 | 44 | /** 45 | * @return the 46 | * {@link Vocabulary#representingNonEnumeratedConceptualDomainRepresentation} 47 | * of a {@link NonEnumeratedValueDomainResource}. 48 | * 49 | */ 50 | NonEnumeratedConceptualDomainResource getRepresentingNonEnumeratedConceptualDomainRepresentation(); 51 | 52 | } -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/iso11179/ObjectClassResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model.iso11179; 2 | 3 | import tr.com.srdc.mdr.core.api.ai.ObjectClass; 4 | import tr.com.srdc.mdr.core.model.iso11179.composite.AdministrationRecordResource; 5 | 6 | /** 7 | * An Object Class is a set of ideas, abstractions, or things in the real world 8 | * that can be identified with explicit boundaries and meaning and whose 9 | * properties and behavior follow the same rules. It may be either a single or a 10 | * group of associated concepts, abstractions, or things. An Object Class may be 11 | * a single unit of thought (i.e., Concept) or a set of Concepts in a 12 | * relationship with each other to form a more complex concept (i.e., Concept 13 | * Relationship). A Concept and a Concept Relationship are subtypes of an Object 14 | * Class. Each Concept Relationship carries a concept relationship type 15 | * description that describes the nature of the relationship. 16 | * 17 | * @author anil 18 | * 19 | */ 20 | public interface ObjectClassResource extends AdministeredItemResource, ObjectClass { 21 | 22 | /** 23 | * Set the Administration Record of {@link ObjectClassResource}. 24 | * 25 | * @param objectClassAdministrationRecord 26 | *
27 | * An {@link AdministrationRecordResource} of a {@link ObjectClassResource} 28 | * . 29 | */ 30 | void setAdministrationRecord( 31 | AdministrationRecordResource objectClassAdministrationRecord); 32 | 33 | /** 34 | * @return {@link AdministrationRecordResource} the Administration Record of a 35 | * {@link ObjectClassResource}. 36 | * 37 | */ 38 | AdministrationRecordResource getAdministrationRecord(); 39 | 40 | } -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/iso11179/PropertyResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model.iso11179; 2 | 3 | import tr.com.srdc.mdr.core.api.ai.Property; 4 | import tr.com.srdc.mdr.core.model.iso11179.composite.AdministrationRecordResource; 5 | 6 | /** 7 | * 8 | * A Property is a characteristic common to all members of an Object Class. It 9 | * may be any feature that humans naturally use to distinguish one individual 10 | * object from another. It is the human perception of a single characteristic of 11 | * an Object Class in the real world. It is conceptual and thus has no 12 | * particular associated means of representation by which the Property can be 13 | * communicated. 14 | * 15 | * @author mert 16 | * 17 | */ 18 | public interface PropertyResource extends AdministeredItemResource, Property { 19 | 20 | /** 21 | * @return the {@link AdministrationRecordResource} of a {@link PropertyResource}. 22 | * 23 | */ 24 | AdministrationRecordResource getAdministrationRecord(); 25 | 26 | /** 27 | * Set the Administration Record of {@link PropertyResource}. 28 | * 29 | * @param propertyAdministrationRecord 30 | *
31 | * An {@link AdministrationRecordResource} of a {@link PropertyResource}. 32 | */ 33 | void setAdministrationRecord( 34 | AdministrationRecordResource propertyAdministrationRecord); 35 | 36 | } -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/iso11179/composite/AdministeredItemContextResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model.iso11179.composite; 2 | 3 | import java.util.List; 4 | 5 | import tr.com.srdc.mdr.core.model.MDRException; 6 | import tr.com.srdc.mdr.core.model.MDRResource; 7 | import tr.com.srdc.mdr.core.model.iso11179.AdministeredItemResource; 8 | import tr.com.srdc.mdr.core.model.iso11179.ContextResource; 9 | 10 | 11 | 12 | /** 13 | * 14 | * This class is additionally created to handle the n-ary relation between 15 | * {@link AdministeredItemResource}, {@link TerminologicalEntryResource} and 16 | * {@link ContextResource}. Each {@link AdministeredItemContextResource} must have one 17 | * {@link ContextResource} and one {@link TerminologicalEntryResource}. Each 18 | * {@link AdministeredItemResource} must have at least one 19 | * {@link AdministeredItemContextResource}. 20 | * 21 | * @author anil 22 | * 23 | */ 24 | public interface AdministeredItemContextResource extends MDRResource { 25 | 26 | void setContext(ContextResource context); 27 | 28 | ContextResource getContext(); 29 | 30 | void setTerminologicalEntry(TerminologicalEntryResource terminologicalEntry); 31 | 32 | TerminologicalEntryResource getTerminologicalEntry(); 33 | 34 | void addGrouping(AdministeredItemResource administeredItem); 35 | 36 | void removeGrouping(AdministeredItemResource administeredItem); 37 | 38 | List getGroupings() throws MDRException; 39 | 40 | } -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/iso11179/composite/ConceptualDomainRelationshipResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model.iso11179.composite; 2 | 3 | import java.util.List; 4 | 5 | import tr.com.srdc.mdr.core.api.composite.ConceptualDomainRelationship; 6 | import tr.com.srdc.mdr.core.model.MDRException; 7 | import tr.com.srdc.mdr.core.model.MDRResource; 8 | import tr.com.srdc.mdr.core.model.Vocabulary; 9 | 10 | 11 | 12 | /** 13 | * 14 | * A Conceptual Domain may be associated with other ConceptualDomains , via the 15 | * Conceptual Domaint Relationship. The nature of the relationship is described 16 | * using the Conceptual Domain relationship type description. 17 | * 18 | * @author anil 19 | * 20 | */ 21 | public interface ConceptualDomainRelationshipResource extends MDRResource, 22 | ConceptualDomainRelationship { 23 | 24 | /** 25 | * Sets the {@link Vocabulary#conceptualDomainRelationshipTypeDescription} 26 | * property with given value 27 | * 28 | * @param conceptualDomainRelationshipTypeDescription 29 | */ 30 | void setConceptualDomainRelationshipTypeDescription( 31 | String conceptualDomainRelationshipTypeDescription); 32 | 33 | /** 34 | * 35 | * @return Value of 36 | * {@link Vocabulary#conceptualDomainRelationshipTypeDescription} 37 | * property 38 | */ 39 | String getConceptualDomainRelationshipTypeDescription(); 40 | 41 | /** 42 | * Add {@link Vocabulary#describingConceptualDomainRelationship} property 43 | * with given value 44 | * 45 | * @param describingConceptualDomainRelationship 46 | */ 47 | void addDescribingConceptualDomainRelationship( 48 | ConceptualDomainRelationshipAssociationResource describingConceptualDomainRelationship); 49 | 50 | /** 51 | * Remove {@link Vocabulary#describingConceptualDomainRelationship} property 52 | * with given value 53 | * 54 | * @param describingConceptualDomainRelationship 55 | */ 56 | void removeDescribingConceptualDomainRelationship( 57 | ConceptualDomainRelationshipAssociationResource describingConceptualDomainRelationship); 58 | 59 | /** 60 | * 61 | * @return {@link List} of all 62 | * {@link Vocabulary#describingConceptualDomainRelationship} 63 | * property values 64 | * @throws MDRException 65 | */ 66 | List getDescribingConceptualDomainRelationships() 67 | throws MDRException; 68 | 69 | } -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/iso11179/composite/ContactResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model.iso11179.composite; 2 | 3 | import tr.com.srdc.mdr.core.api.composite.Contact; 4 | import tr.com.srdc.mdr.core.impl.composite.ContactImpl; 5 | import tr.com.srdc.mdr.core.model.MDRResource; 6 | 7 | /** 8 | * The composite data type Contact is used to specify the contact information 9 | * for registrar contact, stewardship contact and submission contact. 10 | * 11 | * @author anil 12 | * 13 | */ 14 | public interface ContactResource extends MDRResource, Contact { 15 | 16 | /** 17 | * Set the contact information of {@link ContactImpl}. 18 | * 19 | * @param contactInformation 20 | *
21 | * The contact information of a {@link ContactImpl}. 22 | */ 23 | void setContactInformation(String contactInformation); 24 | 25 | /** 26 | * @return the contact information of a {@link ContactImpl}.
27 | * 28 | */ 29 | String getContactInformation(); 30 | 31 | /** 32 | * Set the contact name of this {@link ContactImpl}. 33 | * 34 | * @param contactName 35 | *
36 | * The contact information of a {@link ContactImpl}. 37 | */ 38 | void setContactName(String contactName); 39 | 40 | /** 41 | * @return the contact name of a {@link ContactImpl}.
42 | * 43 | */ 44 | String getContactName(); 45 | 46 | /** 47 | * Set the contact title of this {@link ContactImpl}. 48 | * 49 | * @param contactInformation 50 | *
51 | * The contact title of a {@link ContactImpl}. 52 | */ 53 | void setContactTitle(String contactTitle); 54 | 55 | /** 56 | * @return the contact title of a {@link ContactImpl}.
57 | * 58 | */ 59 | String getContactTitle(); 60 | 61 | } -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/iso11179/composite/DataElementExampleResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model.iso11179.composite; 2 | 3 | import java.util.List; 4 | 5 | import tr.com.srdc.mdr.core.api.composite.DataElementExample; 6 | import tr.com.srdc.mdr.core.model.MDRException; 7 | import tr.com.srdc.mdr.core.model.MDRResource; 8 | import tr.com.srdc.mdr.core.model.Vocabulary; 9 | import tr.com.srdc.mdr.core.model.iso11179.DataElementResource; 10 | 11 | 12 | 13 | /** 14 | * 15 | * A Data Element may have Data Element Examples that are used to provide 16 | * representative samples of the Data Element. 17 | * 18 | * @author anil 19 | * 20 | */ 21 | public interface DataElementExampleResource extends MDRResource, 22 | DataElementExample { 23 | 24 | /** 25 | * sets {@link Vocabulary#dataElementExampleItem} property with given value 26 | * 27 | * @param dataElementExampleItem 28 | */ 29 | void setDataElementExampleItem(String dataElementExampleItem); 30 | 31 | /** 32 | * 33 | * @return value of {@link Vocabulary#dataElementExampleItem} property 34 | */ 35 | String getDataElementExampleItem(); 36 | 37 | /** 38 | * Adds {@link Vocabulary#exemplifyingExemplification} property with given 39 | * value 40 | * 41 | * @param exemplifyingExemplification 42 | * if given null throws 43 | * {@link IllegalArgumentException} 44 | */ 45 | void addExemplifyingExemplification( 46 | DataElementResource exemplifyingExemplification); 47 | 48 | /** 49 | * removes {@link Vocabulary#exemplifyingExemplification} with given value 50 | * 51 | * @param exemplifyingExemplification 52 | * there should be at least 1 value of the property, if try to 53 | * remove all, throws {@link IllegalArgumentException} 54 | */ 55 | void removeExemplifyingExemplification( 56 | DataElementResource exemplifyingExemplification); 57 | 58 | /** 59 | * 60 | * @return List of all {@link Vocabulary#exemplifyingExemplification} 61 | * property values 62 | * @throws MDRException 63 | */ 64 | List getExemplifyingExemplifications() throws MDRException; 65 | 66 | } -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/iso11179/composite/DatatypeResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model.iso11179.composite; 2 | 3 | import tr.com.srdc.mdr.core.api.composite.Datatype; 4 | import tr.com.srdc.mdr.core.model.MDRResource; 5 | import tr.com.srdc.mdr.core.model.Vocabulary; 6 | 7 | /** 8 | * 9 | * A Datatype is designated by a data type name, and described by a datatype 10 | * description. The datatype name is usually drawn from some external source, 11 | * which is designated by a datatype scheme reference. Additional information 12 | * may optionally be provided using the datatype annotation. 13 | * 14 | * @author anil 15 | * @author mert 16 | * 17 | */ 18 | public interface DatatypeResource extends MDRResource, Datatype { 19 | 20 | /** 21 | * sets {@link Vocabulary#datatypeName} property with given value 22 | * 23 | * @param datatypeName 24 | */ 25 | void setDatatypeName(String datatypeName); 26 | 27 | /** 28 | * 29 | * @return value of {@link Vocabulary#datatypeName} property 30 | */ 31 | String getDatatypeName(); 32 | 33 | /** 34 | * sets {@link Vocabulary#datatypeDescription} proprety with given value 35 | * 36 | * @param datatypeDescription 37 | * if given null, removes property 38 | */ 39 | void setDatatypeDescription(String datatypeDescription); 40 | 41 | /** 42 | * 43 | * @return value of {@link Vocabulary#datatypeDescription} property,
44 | * null if such property does not exist 45 | */ 46 | String getDatatypeDescription(); 47 | 48 | /** 49 | * sets {@link Vocabulary#datatypeSchemeReference} property with given value 50 | * 51 | * @param datatypeSchemeReference 52 | */ 53 | void setDatatypeSchemeReference(String datatypeSchemeReference); 54 | 55 | /** 56 | * 57 | * @return value of {@link Vocabulary#datatypeSchemeReference} property 58 | */ 59 | String getDatatypeSchemeReference(); 60 | 61 | /** 62 | * sets {@link Vocabulary#datatypeAnnotation} proprety with given value 63 | * 64 | * @param datatypeAnnotation 65 | * if given null, removes property 66 | */ 67 | void setDatatypeAnnotation(String datatypeAnnotation); 68 | 69 | /** 70 | * 71 | * @return value of {@link Vocabulary#datatypeAnnotation} property,
72 | * null if such property does not exist 73 | */ 74 | String getDatatypeAnnotation(); 75 | 76 | } -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/iso11179/composite/ItemIdentifierResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model.iso11179.composite; 2 | 3 | import tr.com.srdc.mdr.core.model.MDRResource; 4 | import tr.com.srdc.mdr.core.model.Vocabulary; 5 | 6 | /** 7 | * The composite data type Item Identifier is used to specify the unique 8 | * identifier for an Administered Item. 9 | * 10 | * @author anil 11 | * 12 | */ 13 | public interface ItemIdentifierResource extends MDRResource { 14 | 15 | /** 16 | * Method for setting the {@link RegistrationAuthorityIdentifierResource} for 17 | * {@link ItemIdentifierResource}. 18 | * 19 | * @param itemRegistrationAuthorityIdentifier 20 | */ 21 | void setItemRegistrationAuthorityIdentifier( 22 | RegistrationAuthorityIdentifierResource itemRegistrationAuthorityIdentifier); 23 | 24 | /** 25 | * Method for getting the {@link RegistrationAuthorityIdentifierResource} of 26 | * {@link ItemIdentifierResource}. 27 | * 28 | * @return {@link RegistrationAuthorityIdentifierResource} 29 | */ 30 | RegistrationAuthorityIdentifierResource getItemRegistrationAuthorityIdentifier(); 31 | 32 | /** 33 | * Method for setting the {@link Vocabulary#dataIdentifier} for 34 | * {@link ItemIdentifierResource}. 35 | * 36 | * @param dataIdentifier 37 | */ 38 | void setDataIdentifier(String dataIdentifier); 39 | 40 | /** 41 | * Method for getting the {@link Vocabulary#dataIdentifier} of 42 | * {@link ItemIdentifierResource}. 43 | * 44 | * @return {@link Vocabulary#dataIdentifier} 45 | */ 46 | String getDataIdentifier(); 47 | 48 | /** 49 | * Method for setting the {@link Vocabulary#version} for 50 | * {@link ItemIdentifierResource}. 51 | * 52 | * @param version 53 | */ 54 | void setVersion(String version); 55 | 56 | /** 57 | * Method for getting the {@link Vocabulary#version} of 58 | * {@link ItemIdentifierResource}. 59 | * 60 | * @return {@link Vocabulary#version} 61 | */ 62 | String getVersion(); 63 | 64 | } -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/iso11179/composite/LanguageIdentificationResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model.iso11179.composite; 2 | 3 | import tr.com.srdc.mdr.core.api.composite.LanguageIdentification; 4 | import tr.com.srdc.mdr.core.impl.composite.LanguageIdentificationImpl; 5 | import tr.com.srdc.mdr.core.model.MDRResource; 6 | import tr.com.srdc.mdr.core.model.Vocabulary; 7 | import tr.com.srdc.mdr.core.util.Country; 8 | import tr.com.srdc.mdr.core.util.Language; 9 | 10 | /** 11 | * The composite data type to represent a Language Identification together with 12 | * the language code and country code.
13 | * 14 | * @author anil 15 | * 16 | */ 17 | public interface LanguageIdentificationResource extends MDRResource, 18 | LanguageIdentification { 19 | 20 | /** 21 | * Method for setting the {@link Vocabulary#languageIdentifier} for 22 | * {@link LanguageIdentificationImpl}. 23 | * 24 | * @param languageIdentifier 25 | */ 26 | void setLanguageIdentifier(Language languageIdentifier); 27 | 28 | /** 29 | * Method for getting the {@link Vocabulary#languageIdentifier} of 30 | * {@link LanguageIdentificationImpl}. 31 | * 32 | * @return {@link Language} 33 | */ 34 | Language getLanguageIdentifier(); 35 | 36 | /** 37 | * Method for setting the {@link Vocabulary#countryIdentifier} for 38 | * {@link LanguageIdentificationImpl}. 39 | * 40 | * @param countryIdentifier 41 | */ 42 | void setCountryIdentifier(Country countryIdentifier); 43 | 44 | /** 45 | * Method for getting the {@link Vocabulary#countryIdentifier} of 46 | * {@link LanguageIdentificationImpl}. 47 | * 48 | * @return {@link Country} 49 | */ 50 | Country getCountryIdentifier(); 51 | 52 | } -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/iso11179/composite/RegistrarResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model.iso11179.composite; 2 | 3 | import tr.com.srdc.mdr.core.api.composite.Registrar; 4 | import tr.com.srdc.mdr.core.model.MDRResource; 5 | import tr.com.srdc.mdr.core.model.Vocabulary; 6 | 7 | /** 8 | * 9 | * A Registration Authority is represented by one or more Registrars. Registrars 10 | * are the persons who perform the administrative steps to register Administered 11 | * Items in a Metadata Registry. 12 | * 13 | * @author anil 14 | * 15 | */ 16 | public interface RegistrarResource extends MDRResource, Registrar { 17 | 18 | /** 19 | * Sets {@link Vocabulary#registrarIdentifier} property with given value 20 | * 21 | * @param registrarIdentifier 22 | * value of {@link Vocabulary#registrarIdentifier} property
23 | */ 24 | void setRegistrarIdentifier(String registrarIdentifier); 25 | 26 | /** 27 | * 28 | * @return {@link String} value of {@link Vocabulary#registrarIdentifier} 29 | * property,
30 | */ 31 | String getRegistrarIdentifier(); 32 | 33 | /** 34 | * Sets {@link Vocabulary#registrarContact} property with given value 35 | * 36 | * @param registrarContact 37 | * value of {@link Vocabulary#registrarContact} property
38 | */ 39 | void setRegistrarContact(ContactResource registrarContact); 40 | 41 | /** 42 | * 43 | * @return {@link ContactResource} object, value of 44 | * {@link Vocabulary#registrarContact} property,
45 | */ 46 | ContactResource getRegistrarContact(); 47 | 48 | /** 49 | * 50 | * @return 51 | */ 52 | RegistrationAuthorityResource getRepresent(); 53 | 54 | /** 55 | * 56 | * @param registrationAuthority 57 | */ 58 | void setRepresent(RegistrationAuthorityResource registrationAuthority); 59 | 60 | } -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/iso11179/composite/StewardshipResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model.iso11179.composite; 2 | 3 | import java.util.List; 4 | 5 | import tr.com.srdc.mdr.core.model.MDRException; 6 | import tr.com.srdc.mdr.core.model.MDRResource; 7 | import tr.com.srdc.mdr.core.model.Vocabulary; 8 | 9 | 10 | 11 | /** 12 | * 13 | * An Organization shall be identified as the steward responsible for 14 | * administering each Administered Item. This relationship identifies a 15 | * stewardship contact for the Administered Item. 16 | * 17 | * @author anil 18 | * 19 | */ 20 | public interface StewardshipResource extends MDRResource { 21 | 22 | /** 23 | * Sets {@link Vocabulary#stewardshipContact} property with given value 24 | * 25 | * @param stewardshipContact 26 | * value of {@link Vocabulary#stewardshipContact} property,
27 | */ 28 | void setStewardshipContact(ContactResource stewardshipContact); 29 | 30 | /** 31 | * 32 | * @return {@link ContactResource} object, value of 33 | * {@link Vocabulary#stewardshipContact} property,
34 | */ 35 | ContactResource getStewardshipContact(); 36 | 37 | /** 38 | * Adds {@link Vocabulary#administers} property with given value 39 | * 40 | * @param administers 41 | * value of {@link Vocabulary#administers} property 42 | */ 43 | void addAdministers(StewardshipRelationshipResource administers); 44 | 45 | /** 46 | * 47 | * @return {@link List} of {@link Vocabulary#administers} property values 48 | */ 49 | List getAdministers() throws MDRException; 50 | 51 | /** 52 | * Method to remove administers property of {@link StewardshipResource} 53 | * 54 | * @param administers 55 | */ 56 | void removeAdministers(StewardshipRelationshipResource administers); 57 | 58 | } -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/iso11179/composite/SubmissionResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model.iso11179.composite; 2 | 3 | import java.util.List; 4 | 5 | import tr.com.srdc.mdr.core.model.MDRException; 6 | import tr.com.srdc.mdr.core.model.MDRResource; 7 | import tr.com.srdc.mdr.core.model.Vocabulary; 8 | 9 | 10 | 11 | /** 12 | * 13 | * For each Administered Item, an Organization shall be identified as the 14 | * submitter. This relationship identifies a submission contact for the 15 | * Administered Item 16 | * 17 | * @author anil 18 | * 19 | */ 20 | public interface SubmissionResource extends MDRResource { 21 | 22 | /** 23 | * Sets {@link Vocabulary#submissionContact} property with given value 24 | * 25 | * @param submissionContact 26 | * value of {@link Vocabulary#submissionContact} property,
27 | */ 28 | void setSubmissionContact(ContactResource submissionContact); 29 | 30 | /** 31 | * 32 | * @return {@link ContactResource} object, value of 33 | * {@link Vocabulary#submissionContact} property,
34 | */ 35 | ContactResource getSubmissionContact(); 36 | 37 | /** 38 | * Adds {@link Vocabulary#submits} property with given value 39 | * 40 | * @param submits 41 | * value of {@link Vocabulary#submits} property 42 | */ 43 | void addSubmits(SubmissionRelationshipResource submits); 44 | 45 | /** 46 | * 47 | * @return {@link List} of {@link Vocabulary#submits} property values 48 | */ 49 | List getSubmits() throws MDRException; 50 | 51 | /** 52 | * Method to remove submits property of {@link SubmissionResource} 53 | * 54 | * @param submits 55 | */ 56 | void removeSubmits(SubmissionRelationshipResource submits); 57 | 58 | } -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/iso11179/composite/UnitOfMeasureResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model.iso11179.composite; 2 | 3 | import tr.com.srdc.mdr.core.api.composite.UnitOfMeasure; 4 | import tr.com.srdc.mdr.core.model.MDRResource; 5 | import tr.com.srdc.mdr.core.model.Vocabulary; 6 | 7 | /** 8 | * 9 | * If meaningful, a Value Domain may be associated with a Unit of Measure — the 10 | * unit in which any associated Data Element values are specified. The unit is 11 | * designated by a unit of measure name. When specified, the unit must be 12 | * consistent with the dimensionality specified in the corresponding Conceptual 13 | * Domain. Optionally, a unit of measure precision may be specified, as the 14 | * number of decimal places to be supported in the associated Data Element 15 | * values. This precision shall be considered a default that may be overridden 16 | * for any particular Data Element. 17 | * 18 | * @author anil 19 | * 20 | */ 21 | public interface UnitOfMeasureResource extends MDRResource, UnitOfMeasure { 22 | 23 | /** 24 | * Sets {@link Vocabulary#unitOfMeasureName} property with given value 25 | * 26 | * @param unitOfMeasureName 27 | */ 28 | void setUnitOfMeasureName(String unitOfMeasureName); 29 | 30 | /** 31 | * 32 | * @return value of {@link Vocabulary#unitOfMeasureName} property 33 | */ 34 | String getUnitOfMeasureName(); 35 | 36 | /** 37 | * Sets {@link Vocabulary#unitOfMeasurePrecision} with given value 38 | * 39 | * @param unitOfMeasurePrecision 40 | */ 41 | void setUnitOfMeasurePrecision(Integer unitOfMeasurePrecision); 42 | 43 | /** 44 | * 45 | * @return value of {@link Vocabulary#unitOfMeasurePrecision} property 46 | */ 47 | Integer getUnitOfMeasurePrecision(); 48 | 49 | } -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/iso11179/composite/ValueDomainRelationshipAssociationResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model.iso11179.composite; 2 | 3 | import java.util.List; 4 | 5 | import tr.com.srdc.mdr.core.model.Abbreviation; 6 | import tr.com.srdc.mdr.core.model.MDRException; 7 | import tr.com.srdc.mdr.core.model.MDRResource; 8 | import tr.com.srdc.mdr.core.model.Vocabulary; 9 | import tr.com.srdc.mdr.core.model.iso11179.ValueDomainResource; 10 | 11 | 12 | 13 | /** 14 | * 15 | * ValueDomainRelationshipAssociation represents the relation between 16 | *
    17 | *
  • ValueDomain Relationship
  • 18 | *
  • Association Among ValueDomain s
  • 19 | *
20 | *
21 | * Since {@link Abbreviation} backed by Jena TripleStore, such an holder class is 22 | * required for n-ary relations 23 | * 24 | * @author anil 25 | * 26 | */ 27 | public interface ValueDomainRelationshipAssociationResource extends MDRResource { 28 | 29 | /** 30 | * Sets {@link Vocabulary#describedByValueDomainRelationship} property with 31 | * given value 32 | * 33 | * @param describedByValueDomainRelationship 34 | */ 35 | void setDescribedByValueDomainRelationship( 36 | ValueDomainRelationshipResource describedByValueDomainRelationship); 37 | 38 | /** 39 | * 40 | * @return Value of {@link Vocabulary#describedByValueDomainRelationship} 41 | * property 42 | */ 43 | ValueDomainRelationshipResource getDescribedByValueDomainRelationship(); 44 | 45 | /** 46 | * Adds {@link Vocabulary#relatingValueDomainRelationship} property with 47 | * given value 48 | * 49 | * @param relatingValueDomainRelationship 50 | */ 51 | void addRelatingValueDomainRelationship( 52 | ValueDomainResource relatingValueDomainRelationship); 53 | 54 | /** 55 | * Removes {@link Vocabulary#relatingValueDomainRelationship} property with 56 | * given value 57 | * 58 | * @param relatingValueDomainRelationship 59 | */ 60 | void removeRelatingValueDomainRelationship( 61 | ValueDomainResource relatingValueDomainRelationship); 62 | 63 | /** 64 | * 65 | * @return {@link List} of all 66 | * {@link Vocabulary#relatingValueDomainRelationship} property 67 | * values 68 | * @throws MDRException 69 | */ 70 | List getRelatingValueDomainRelationships() 71 | throws MDRException; 72 | 73 | } -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/iso11179/composite/ValueDomainRelationshipResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model.iso11179.composite; 2 | 3 | import java.util.List; 4 | 5 | import tr.com.srdc.mdr.core.api.composite.ValueDomainRelationship; 6 | import tr.com.srdc.mdr.core.model.MDRException; 7 | import tr.com.srdc.mdr.core.model.MDRResource; 8 | import tr.com.srdc.mdr.core.model.Vocabulary; 9 | 10 | 11 | 12 | /** 13 | * 14 | * A Value Domain may be associated with other Value Domains, via the Value 15 | * Domain Relationship. The nature of the relationship is described using the 16 | * Value Domain relationship type description. 17 | * 18 | * @author anil 19 | * 20 | */ 21 | public interface ValueDomainRelationshipResource extends MDRResource, 22 | ValueDomainRelationship { 23 | 24 | /** 25 | * Sets the {@link Vocabulary#ValueDomainRelationshipTypeDescription} 26 | * property with given value 27 | * 28 | * @param valueDomainRelationshipTypeDescription 29 | */ 30 | void setValueDomainRelationshipTypeDescription( 31 | String valueDomainRelationshipTypeDescription); 32 | 33 | /** 34 | * 35 | * @return Value of 36 | * {@link Vocabulary#ValueDomainRelationshipTypeDescription} 37 | * property 38 | */ 39 | String getValueDomainRelationshipTypeDescription(); 40 | 41 | /** 42 | * Add {@link Vocabulary#describingValueDomainRelationship} property with 43 | * given value 44 | * 45 | * @param describingValueDomainRelationship 46 | */ 47 | void addDescribingValueDomainRelationship( 48 | ValueDomainRelationshipAssociationResource describingValueDomainRelationship); 49 | 50 | /** 51 | * Remove {@link Vocabulary#describingValueDomainRelationship} property with 52 | * given value 53 | * 54 | * @param describingValueDomainRelationship 55 | */ 56 | void removeDescribingValueDomainRelationship( 57 | ValueDomainRelationshipAssociationResource describingValueDomainRelationship); 58 | 59 | /** 60 | * 61 | * @return {@link List} of all 62 | * {@link Vocabulary#describingValueDomainRelationship} property 63 | * values 64 | * @throws MDRException 65 | */ 66 | List getDescribingValueDomainRelationships() 67 | throws MDRException; 68 | 69 | } -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/model/iso11179/composite/ValueResource.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.model.iso11179.composite; 2 | 3 | import java.util.List; 4 | 5 | import tr.com.srdc.mdr.core.model.MDRException; 6 | import tr.com.srdc.mdr.core.model.MDRResource; 7 | import tr.com.srdc.mdr.core.model.Vocabulary; 8 | 9 | 10 | 11 | /** 12 | * 13 | * This is the actual value associated with a Permissible Value in an Enumerated 14 | * Value Domain. 15 | * 16 | * @author anil 17 | * 18 | */ 19 | public interface ValueResource extends MDRResource { 20 | 21 | /** 22 | * Sets {@link Vocabulary#valueItem} property with given value 23 | * 24 | * @param valueItem 25 | */ 26 | void setValueItem(String valueItem); 27 | 28 | /** 29 | * 30 | * @return Value of {@link Vocabulary#valueItem} property 31 | */ 32 | String getValueItem(); 33 | 34 | /** 35 | * Adds {@link Vocabulary#usedInPermittedValue} property with given value 36 | * 37 | * @param usedInPermittedValue 38 | */ 39 | void addUsedInPermittedValue(PermissibleValueResource usedInPermittedValue); 40 | 41 | /** 42 | * Removes {@link Vocabulary#usedInPermittedValue} property with given value 43 | * 44 | * @param usedInPermittedValue 45 | */ 46 | void removeUsedInPermittedValue(PermissibleValueResource usedInPermittedValue); 47 | 48 | /** 49 | * 50 | * @return {@link List} of all {@link Vocabulary#usedInPermittedValue} 51 | * property values 52 | * @throws MDRException 53 | */ 54 | List getUsedInPermittedValues() throws MDRException; 55 | 56 | } -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/store/MDRDatabaseManager.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.store; 2 | 3 | import tr.com.srdc.mdr.core.model.MDRException; 4 | import tr.com.srdc.triplestore.JenaStore; 5 | import tr.com.srdc.triplestore.TripleStoreProvider.TripleStoreType; 6 | import tr.com.srdc.triplestore.tdb.TDBStore; 7 | 8 | public class MDRDatabaseManager { 9 | 10 | private static MDRDatabaseManager instance; 11 | 12 | private static final String MDRJenaStoreName = "mdr"; 13 | 14 | private MDRDatabase mdrDatabase; 15 | 16 | private MDRDatabaseManager() { 17 | } 18 | 19 | public static MDRDatabaseManager getInstance() { 20 | if (instance == null) { 21 | instance = new MDRDatabaseManager(); 22 | } 23 | return instance; 24 | } 25 | 26 | /** 27 | * Create a {@link MDRDatabase} which is backed by a {@link TDBStore} by 28 | * default whose name is "mdr". 29 | * 30 | * @return 31 | * @throws MDRException 32 | */ 33 | public MDRDatabase createMDRDatabase() throws MDRException { 34 | return createMDRDatabase(TripleStoreType.JenaTDB, MDRJenaStoreName); 35 | } 36 | 37 | /** 38 | * Create a {@link MDRDatabase} which is backed by a {@link JenaStore} with 39 | * given storeType and storeName. 40 | * 41 | * @param storeType 42 | * @param storeName 43 | * @return 44 | * @throws MDRException 45 | */ 46 | public MDRDatabase createMDRDatabase(TripleStoreType storeType, 47 | String storeName) throws MDRException { 48 | if (mdrDatabase == null) { 49 | mdrDatabase = new MDRDatabase(storeType, storeName); 50 | } 51 | return mdrDatabase; 52 | } 53 | 54 | /** 55 | * Get the default {@link MDRDatabase} which is backed by a {@link TDBStore} 56 | * whose name is "mdr". 57 | * 58 | * @return 59 | * @throws MDRException 60 | */ 61 | public MDRDatabase getMDRDatabase() throws MDRException { 62 | if (mdrDatabase == null) { 63 | throw new MDRException( 64 | "Default MDRDatabase has not been created yet."); 65 | } 66 | return mdrDatabase; 67 | } 68 | 69 | public MDRDatabase getMDRDatabase(String name) { 70 | return mdrDatabase; 71 | } 72 | 73 | public void removeMDRDatabase() throws MDRException { 74 | mdrDatabase.remove(); 75 | mdrDatabase = null; 76 | } 77 | 78 | } 79 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/util/MappingRelation.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.util; 2 | 3 | import tr.com.srdc.mdr.core.MDRConstants; 4 | 5 | /** 6 | * Used to describe mapping relation. 7 | * 8 | * SubjectOID, Relation, ObjectOID 9 | * 10 | */ 11 | public class MappingRelation { 12 | private String subjectOID; 13 | private String relationType; 14 | private String objectOID; 15 | 16 | public String getObjectOID() { 17 | return objectOID; 18 | } 19 | 20 | public void setObjectOID(String objectOID) { 21 | this.objectOID = objectOID; 22 | } 23 | 24 | public String getSubjectOID() { 25 | return subjectOID; 26 | } 27 | 28 | public void setSubjectOID(String subjectOID) { 29 | this.subjectOID = subjectOID; 30 | } 31 | 32 | public String getRelationType() { 33 | return relationType; 34 | } 35 | 36 | public void setRelationType(String relationType) { 37 | this.relationType = relationType; 38 | } 39 | 40 | /** 41 | * @return whether this relation is symmetric or not. 42 | */ 43 | public boolean isSymmetric() { 44 | if (relationType.equals(MDRConstants.SKOS_MAPPING_RELATION) 45 | || relationType.equals(MDRConstants.SKOS_CLOSE_MATCH) 46 | || relationType.equals(MDRConstants.SKOS_EXACT_MATCH) 47 | || relationType.equals(MDRConstants.SKOS_RELATED_MATCH)) { 48 | return true; 49 | } 50 | return false; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/util/SKOS.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.util; 2 | 3 | import com.hp.hpl.jena.rdf.model.Property; 4 | import com.hp.hpl.jena.rdf.model.ResourceFactory; 5 | 6 | public class SKOS { 7 | public static final Property prefLabel = ResourceFactory 8 | .createProperty("http://www.w3.org/2004/02/skos/core#prefLabel"); 9 | public static final Property notation = ResourceFactory 10 | .createProperty("http://www.w3.org/2004/02/skos/core#notation"); 11 | 12 | public static final String Concept = "http://www.w3.org/2004/02/skos/core#Concept"; 13 | public static final String ConceptScheme = "http://www.w3.org/2004/02/skos/core#ConceptScheme"; 14 | } 15 | -------------------------------------------------------------------------------- /core/src/main/java/tr/com/srdc/mdr/core/util/Status.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.core.util; 2 | 3 | public enum Status { 4 | ALL("ALL"), Application("Application"), Candidate("Candidate"), Proposed( 5 | "Proposed"), Qualified("Qualified"), Standard("Standard"), StandardizedElsewhere( 6 | "StandardizedElsewhere"), Superceded("Superceded"), Suspended( 7 | "Suspended"); 8 | 9 | private final String statusEnum; 10 | 11 | private Status(String abbreviation) { 12 | this.statusEnum = abbreviation; 13 | } 14 | 15 | @Override 16 | public final String toString() { 17 | return this.statusEnum; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /core/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.appender.Stdout=org.apache.log4j.ConsoleAppender 2 | log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout 3 | log4j.appender.Stdout.layout.conversionPattern=%-5p - %-26.26c{1} - %m\n 4 | 5 | log4j.rootLogger=INFO,Stdout 6 | 7 | log4j.logger.org.apache.wicket=INFO 8 | log4j.logger.org.apache.wicket.protocol.http.HttpSessionStore=INFO 9 | log4j.logger.org.apache.wicket.version=INFO 10 | log4j.logger.org.apache.wicket.RequestCycle=INFO 11 | 12 | 13 | -------------------------------------------------------------------------------- /demo/README.MD: -------------------------------------------------------------------------------- 1 | To run this demo cd to demo folder 2 | > cd mdr/demo 3 | 4 | Start demo by deploying services to jetty 5 | > mvn jetty:run 6 | 7 | As default value, service starts to run under port 9090, just point your web browser to 8 | http://localhost:9090 9 | 10 | Main functionality of this demo is to design a form and auto population of this form from a patient summary using MDR Annotations. 11 | - Click on add new field and enter a field label 12 | - Type a content model name and choose a content model from list 13 | - Select a data element by dragging onto form field 14 | - submit a valid CDA document by click on "upload patient summary" 15 | - click on "Populate" -------------------------------------------------------------------------------- /demo/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /demo/src/main/webapp/img/bootstrap/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/demo/src/main/webapp/img/bootstrap/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /demo/src/main/webapp/img/bootstrap/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/demo/src/main/webapp/img/bootstrap/glyphicons-halflings.png -------------------------------------------------------------------------------- /demo/src/main/webapp/img/icons/loading-black.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/demo/src/main/webapp/img/icons/loading-black.gif -------------------------------------------------------------------------------- /demo/src/main/webapp/img/icons/loading-transparent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/demo/src/main/webapp/img/icons/loading-transparent.gif -------------------------------------------------------------------------------- /demo/src/main/webapp/img/icons/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/demo/src/main/webapp/img/icons/logo.png -------------------------------------------------------------------------------- /demo/src/main/webapp/img/icons/salus-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/demo/src/main/webapp/img/icons/salus-name.png -------------------------------------------------------------------------------- /demo/src/main/webapp/img/icons/saluslogoweb-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/demo/src/main/webapp/img/icons/saluslogoweb-large.png -------------------------------------------------------------------------------- /dex/src/main/java/ihe/qrph/dex/_2013/ContentModelType.java: -------------------------------------------------------------------------------- 1 | 2 | package ihe.qrph.dex._2013; 3 | 4 | import javax.xml.bind.annotation.XmlAccessType; 5 | import javax.xml.bind.annotation.XmlAccessorType; 6 | import javax.xml.bind.annotation.XmlElement; 7 | import javax.xml.bind.annotation.XmlType; 8 | 9 | 10 | /** 11 | *

Java class for ContentModelType complex type. 12 | * 13 | *

The following schema fragment specifies the expected content contained within this class. 14 | * 15 | *

16 |  * <complexType name="ContentModelType">
17 |  *   <complexContent>
18 |  *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
19 |  *       <sequence>
20 |  *         <element name="id" type="{http://www.w3.org/2001/XMLSchema}string"/>
21 |  *         <element name="name" type="{http://www.w3.org/2001/XMLSchema}string"/>
22 |  *       </sequence>
23 |  *     </restriction>
24 |  *   </complexContent>
25 |  * </complexType>
26 |  * 
27 | * 28 | * 29 | */ 30 | @XmlAccessorType(XmlAccessType.FIELD) 31 | @XmlType(name = "ContentModelType", propOrder = { 32 | "id", 33 | "name" 34 | }) 35 | public class ContentModelType { 36 | 37 | @XmlElement(required = true) 38 | protected String id; 39 | @XmlElement(required = true) 40 | protected String name; 41 | 42 | /** 43 | * Gets the value of the id property. 44 | * 45 | * @return 46 | * possible object is 47 | * {@link String } 48 | * 49 | */ 50 | public String getId() { 51 | return id; 52 | } 53 | 54 | /** 55 | * Sets the value of the id property. 56 | * 57 | * @param value 58 | * allowed object is 59 | * {@link String } 60 | * 61 | */ 62 | public void setId(String value) { 63 | this.id = value; 64 | } 65 | 66 | /** 67 | * Gets the value of the name property. 68 | * 69 | * @return 70 | * possible object is 71 | * {@link String } 72 | * 73 | */ 74 | public String getName() { 75 | return name; 76 | } 77 | 78 | /** 79 | * Sets the value of the name property. 80 | * 81 | * @param value 82 | * allowed object is 83 | * {@link String } 84 | * 85 | */ 86 | public void setName(String value) { 87 | this.name = value; 88 | } 89 | 90 | } 91 | -------------------------------------------------------------------------------- /dex/src/main/java/ihe/qrph/dex/_2013/DataElementExchangePortType.java: -------------------------------------------------------------------------------- 1 | package ihe.qrph.dex._2013; 2 | 3 | import javax.jws.WebMethod; 4 | import javax.jws.WebParam; 5 | import javax.jws.WebResult; 6 | import javax.jws.WebService; 7 | import javax.jws.soap.SOAPBinding; 8 | import javax.xml.bind.annotation.XmlSeeAlso; 9 | 10 | /** 11 | * This class was generated by Apache CXF 2.7.5 12 | * 2013-07-31T17:14:40.927+03:00 13 | * Generated source version: 2.7.5 14 | * 15 | */ 16 | @WebService(targetNamespace = "urn:ihe:qrph:dex:2013", name = "DataElementExchangePortType") 17 | @XmlSeeAlso({ObjectFactory.class}) 18 | @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE) 19 | public interface DataElementExchangePortType { 20 | 21 | @WebResult(name = "RetrieveDataElementListResponse", targetNamespace = "urn:ihe:qrph:dex:2013", partName = "body") 22 | @WebMethod(operationName = "RetrieveDataElementList", action = "urn:ihe:qrph:dex:2013:RetrieveDataElementList") 23 | public RetrieveDataElementListResponseType retrieveDataElementList( 24 | @WebParam(partName = "body", name = "RetrieveDataElementListRequest", targetNamespace = "urn:ihe:qrph:dex:2013") 25 | RetrieveDataElementListRequestType body 26 | ); 27 | 28 | @WebResult(name = "RetrieveMetadataResponse", targetNamespace = "urn:ihe:qrph:dex:2013", partName = "body") 29 | @WebMethod(operationName = "RetrieveMetadata", action = "urn:ihe:qrph:dex:2013:RetrieveMetadata") 30 | public RetrieveMetadataResponseType retrieveMetadata( 31 | @WebParam(partName = "body", name = "RetrieveMetadataRequest", targetNamespace = "urn:ihe:qrph:dex:2013") 32 | RetrieveMetadataRequestType body 33 | ); 34 | } 35 | -------------------------------------------------------------------------------- /dex/src/main/java/ihe/qrph/dex/_2013/RetrieveMetadataResponseType.java: -------------------------------------------------------------------------------- 1 | 2 | package ihe.qrph.dex._2013; 3 | 4 | import javax.xml.bind.annotation.XmlAccessType; 5 | import javax.xml.bind.annotation.XmlAccessorType; 6 | import javax.xml.bind.annotation.XmlElement; 7 | import javax.xml.bind.annotation.XmlType; 8 | 9 | 10 | /** 11 | *

Java class for RetrieveMetadataResponseType complex type. 12 | * 13 | *

The following schema fragment specifies the expected content contained within this class. 14 | * 15 | *

16 |  * <complexType name="RetrieveMetadataResponseType">
17 |  *   <complexContent>
18 |  *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
19 |  *       <sequence>
20 |  *         <element name="DataElement" type="{urn:ihe:qrph:dex:2013}DataElementType"/>
21 |  *       </sequence>
22 |  *     </restriction>
23 |  *   </complexContent>
24 |  * </complexType>
25 |  * 
26 | * 27 | * 28 | */ 29 | @XmlAccessorType(XmlAccessType.FIELD) 30 | @XmlType(name = "RetrieveMetadataResponseType", propOrder = { 31 | "dataElement" 32 | }) 33 | public class RetrieveMetadataResponseType { 34 | 35 | @XmlElement(name = "DataElement", required = true) 36 | protected DataElementType dataElement; 37 | 38 | /** 39 | * Gets the value of the dataElement property. 40 | * 41 | * @return 42 | * possible object is 43 | * {@link DataElementType } 44 | * 45 | */ 46 | public DataElementType getDataElement() { 47 | return dataElement; 48 | } 49 | 50 | /** 51 | * Sets the value of the dataElement property. 52 | * 53 | * @param value 54 | * allowed object is 55 | * {@link DataElementType } 56 | * 57 | */ 58 | public void setDataElement(DataElementType value) { 59 | this.dataElement = value; 60 | } 61 | 62 | } 63 | -------------------------------------------------------------------------------- /dex/src/main/java/ihe/qrph/dex/_2013/package-info.java: -------------------------------------------------------------------------------- 1 | @javax.xml.bind.annotation.XmlSchema(namespace = "urn:ihe:qrph:dex:2013", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) 2 | package ihe.qrph.dex._2013; 3 | -------------------------------------------------------------------------------- /lib/eu/salusproject/security-privacy.authentication/1.0.0-os/_maven.repositories: -------------------------------------------------------------------------------- 1 | #NOTE: This is an internal implementation file, its format can be changed without prior notice. 2 | #Mon Jun 09 09:20:23 EEST 2014 3 | security-privacy.authentication-1.0.0-os.pom>in-project-triplestore= 4 | security-privacy.authentication-1.0.0-os.jar>in-project-triplestore= 5 | -------------------------------------------------------------------------------- /lib/eu/salusproject/security-privacy.authentication/1.0.0-os/_remote.repositories: -------------------------------------------------------------------------------- 1 | #NOTE: This is an Aether internal implementation file, its format can be changed without prior notice. 2 | #Mon Jun 09 09:47:55 EEST 2014 3 | security-privacy.authentication-1.0.0-os.pom>= 4 | security-privacy.authentication-1.0.0-os-sources.jar>= 5 | security-privacy.authentication-1.0.0-os.jar>= 6 | -------------------------------------------------------------------------------- /lib/eu/salusproject/security-privacy.authentication/1.0.0-os/security-privacy.authentication-1.0.0-os-sources.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/lib/eu/salusproject/security-privacy.authentication/1.0.0-os/security-privacy.authentication-1.0.0-os-sources.jar -------------------------------------------------------------------------------- /lib/eu/salusproject/security-privacy.authentication/1.0.0-os/security-privacy.authentication-1.0.0-os.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/lib/eu/salusproject/security-privacy.authentication/1.0.0-os/security-privacy.authentication-1.0.0-os.jar -------------------------------------------------------------------------------- /lib/eu/salusproject/security-privacy.authentication/1.0.0-os/security-privacy.authentication-1.0.0-os.pom: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | 5 | security-privacy.authentication 6 | jar 7 | User Authentication Module 8 | 9 | eu.salusproject 10 | 1.0.0-os 11 | 12 | 13 | 14 | 15 | tr.com.srdc.semantic-mdr 16 | semantic-mdr.configuration 17 | 1.0.0 18 | 19 | 20 | 21 | 22 | 23 | com.h2database 24 | h2 25 | 1.3.161 26 | 27 | 28 | 29 | 30 | commons-codec 31 | commons-codec 32 | 1.8 33 | 34 | 35 | 36 | commons-io 37 | commons-io 38 | 2.4 39 | 40 | 41 | 42 | 43 | org.slf4j 44 | slf4j-log4j12 45 | 1.7.5 46 | 47 | 48 | log4j 49 | log4j 50 | 1.2.17 51 | 52 | 53 | 54 | 55 | 56 | in-project-triplestore 57 | In Project Repo for TripleStore 58 | file://${project.basedir}/lib 59 | 60 | 61 | 62 | 63 | 64 | 65 | org.apache.maven.plugins 66 | maven-source-plugin 67 | 68 | 69 | attach-sources 70 | 71 | jar 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /lib/org/apache/jena/jena-larq/1.0.1-SNAPSHOT/_maven.repositories: -------------------------------------------------------------------------------- 1 | #NOTE: This is an internal implementation file, its format can be changed without prior notice. 2 | #Thu Jul 11 17:51:07 EEST 2013 3 | jena-larq-1.0.1-SNAPSHOT.pom>in-project-triplestore= 4 | jena-larq-1.0.1-SNAPSHOT.jar>in-project-triplestore= 5 | -------------------------------------------------------------------------------- /lib/org/apache/jena/jena-larq/1.0.1-SNAPSHOT/jena-larq-1.0.1-SNAPSHOT.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/lib/org/apache/jena/jena-larq/1.0.1-SNAPSHOT/jena-larq-1.0.1-SNAPSHOT.jar -------------------------------------------------------------------------------- /lib/org/apache/jena/jena-larq/1.0.1-SNAPSHOT/jena-larq-1.0.1-SNAPSHOT.jar.lastUpdated: -------------------------------------------------------------------------------- 1 | #NOTE: This is an internal implementation file, its format can be changed without prior notice. 2 | #Thu Jul 11 17:51:07 EEST 2013 3 | http\://repository.apache.org/snapshots/.lastUpdated=1373554253927 4 | file\://${project.basedir}/lib/.error= 5 | file\://D\:\\Projects\\DataDictionaryServer\\codebase\\semantic-mdr\\core/lib/.error= 6 | file\://${project.basedir}/lib/.lastUpdated=1373554253936 7 | file\://D\:\\Projects\\DataDictionaryServer\\codebase\\semantic-mdr\\core/lib/.lastUpdated=1373554253932 8 | file\://D\:\\Projects\\DataDictionaryServer\\codebase\\triplestore/lib/.lastUpdated=1373554267498 9 | http\://repository.apache.org/snapshots/.error= 10 | -------------------------------------------------------------------------------- /lib/org/apache/jena/jena-larq/1.0.1-SNAPSHOT/jena-larq-1.0.1-SNAPSHOT.pom.lastUpdated: -------------------------------------------------------------------------------- 1 | #NOTE: This is an internal implementation file, its format can be changed without prior notice. 2 | #Thu Jul 11 17:51:07 EEST 2013 3 | http\://repository.apache.org/snapshots/.lastUpdated=1373554252689 4 | file\://${project.basedir}/lib/.error= 5 | file\://D\:\\Projects\\DataDictionaryServer\\codebase\\semantic-mdr\\core/lib/.error= 6 | file\://${project.basedir}/lib/.lastUpdated=1373554252698 7 | file\://D\:\\Projects\\DataDictionaryServer\\codebase\\semantic-mdr\\core/lib/.lastUpdated=1373554252694 8 | file\://D\:\\Projects\\DataDictionaryServer\\codebase\\triplestore/lib/.lastUpdated=1373554267400 9 | http\://repository.apache.org/snapshots/.error= 10 | -------------------------------------------------------------------------------- /lib/org/apache/jena/jena-larq/1.0.1-SNAPSHOT/resolver-status.properties: -------------------------------------------------------------------------------- 1 | #NOTE: This is an Aether internal implementation file, its format can be changed without prior notice. 2 | #Thu Jul 11 17:50:50 EEST 2013 3 | maven-metadata-in-project-semantic-mdr.xml.lastUpdated=1373554247065 4 | maven-metadata-in-project-triplestore.xml.error= 5 | maven-metadata-apache.snapshots.xml.lastUpdated=1373554250459 6 | maven-metadata-apache.snapshots.xml.error= 7 | maven-metadata-in-project-semantic-mdr.xml.error= 8 | maven-metadata-in-project-triplestore.xml.lastUpdated=1373554247069 9 | -------------------------------------------------------------------------------- /lib/tr/com/srdc/semantic-mdr/semantic-mdr.configuration/1.0.0/_maven.repositories: -------------------------------------------------------------------------------- 1 | #NOTE: This is an internal implementation file, its format can be changed without prior notice. 2 | #Mon Jun 09 09:20:23 EEST 2014 3 | semantic-mdr.configuration-1.0.0.pom>in-project-triplestore= 4 | semantic-mdr.configuration-1.0.0.jar>in-project-triplestore= 5 | -------------------------------------------------------------------------------- /lib/tr/com/srdc/semantic-mdr/semantic-mdr.configuration/1.0.0/_remote.repositories: -------------------------------------------------------------------------------- 1 | #NOTE: This is an Aether internal implementation file, its format can be changed without prior notice. 2 | #Mon Jun 09 09:41:58 EEST 2014 3 | semantic-mdr.configuration-1.0.0-sources.jar>= 4 | semantic-mdr.configuration-1.0.0.jar>= 5 | semantic-mdr.configuration-1.0.0.pom>= 6 | -------------------------------------------------------------------------------- /lib/tr/com/srdc/semantic-mdr/semantic-mdr.configuration/1.0.0/m2e-lastUpdated.properties: -------------------------------------------------------------------------------- 1 | #Mon Jun 09 09:42:07 EEST 2014 2 | central|http\://repo.maven.apache.org/maven2|sources=1402296127605 3 | in-project-triplestore|file\:///media/depo/Projects/semanticmdr-opensource/codebase/web/../lib|sources=1402296127605 4 | -------------------------------------------------------------------------------- /lib/tr/com/srdc/semantic-mdr/semantic-mdr.configuration/1.0.0/semantic-mdr.configuration-1.0.0-sources.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/lib/tr/com/srdc/semantic-mdr/semantic-mdr.configuration/1.0.0/semantic-mdr.configuration-1.0.0-sources.jar -------------------------------------------------------------------------------- /lib/tr/com/srdc/semantic-mdr/semantic-mdr.configuration/1.0.0/semantic-mdr.configuration-1.0.0-sources.jar.lastUpdated: -------------------------------------------------------------------------------- 1 | #NOTE: This is an internal implementation file, its format can be changed without prior notice. 2 | #Mon Jun 09 09:33:14 EEST 2014 3 | file\:///media/depo/Projects/semanticmdr-opensource/codebase/web/../lib/.error= 4 | http\://repo.maven.apache.org/maven2/.lastUpdated=1402295594475 5 | file\:///media/depo/Projects/semanticmdr-opensource/codebase/web/../lib/.lastUpdated=1402295594056 6 | http\://repo.maven.apache.org/maven2/.error= 7 | -------------------------------------------------------------------------------- /lib/tr/com/srdc/semantic-mdr/semantic-mdr.configuration/1.0.0/semantic-mdr.configuration-1.0.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/lib/tr/com/srdc/semantic-mdr/semantic-mdr.configuration/1.0.0/semantic-mdr.configuration-1.0.0.jar -------------------------------------------------------------------------------- /lib/tr/com/srdc/semantic-mdr/semantic-mdr.configuration/1.0.0/semantic-mdr.configuration-1.0.0.pom: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | 5 | semantic-mdr.configuration 6 | jar 7 | Semantic MDR EE Configuration Manager 8 | Simple bean keeping the configuration values for all Semantic MDR EE components 9 | tr.com.srdc.semantic-mdr 10 | 1.0.0 11 | 12 | 13 | 14 | org.slf4j 15 | slf4j-log4j12 16 | 1.7.5 17 | 18 | 19 | log4j 20 | log4j 21 | 1.2.17 22 | 23 | 24 | 25 | 26 | 27 | org.apache.maven.plugins 28 | maven-source-plugin 29 | 30 | 31 | attach-sources 32 | 33 | jar 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /lib/tr/com/srdc/semantic-mdr/semantic-mdr.configuration/maven-metadata-local.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tr.com.srdc.semantic-mdr 4 | semantic-mdr.configuration 5 | 6 | 1.0.0 7 | 8 | 1.0.0 9 | 10 | 20140509142516 11 | 12 | 13 | -------------------------------------------------------------------------------- /lib/tr/com/srdc/triplestore/1.0.0/_maven.repositories: -------------------------------------------------------------------------------- 1 | #NOTE: This is an internal implementation file, its format can be changed without prior notice. 2 | #Mon Jun 09 09:20:23 EEST 2014 3 | triplestore-1.0.0.pom>in-project-triplestore= 4 | triplestore-1.0.0.jar>in-project-triplestore= 5 | -------------------------------------------------------------------------------- /lib/tr/com/srdc/triplestore/1.0.0/_remote.repositories: -------------------------------------------------------------------------------- 1 | #NOTE: This is an Aether internal implementation file, its format can be changed without prior notice. 2 | #Mon Jun 09 09:46:59 EEST 2014 3 | triplestore-1.0.0.pom>= 4 | triplestore-1.0.0-sources.jar>= 5 | triplestore-1.0.0.jar>= 6 | -------------------------------------------------------------------------------- /lib/tr/com/srdc/triplestore/1.0.0/triplestore-1.0.0-sources.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/lib/tr/com/srdc/triplestore/1.0.0/triplestore-1.0.0-sources.jar -------------------------------------------------------------------------------- /lib/tr/com/srdc/triplestore/1.0.0/triplestore-1.0.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/lib/tr/com/srdc/triplestore/1.0.0/triplestore-1.0.0.jar -------------------------------------------------------------------------------- /lib/tr/com/srdc/triplestore/maven-metadata-local.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tr.com.srdc 4 | triplestore 5 | 6 | 1.0.0 7 | 8 | 1.0.0 9 | 10 | 20140509142602 11 | 12 | 13 | -------------------------------------------------------------------------------- /lib/tr/com/srdc/virt-jena/2.6.2-srdc/_maven.repositories: -------------------------------------------------------------------------------- 1 | #NOTE: This is an internal implementation file, its format can be changed without prior notice. 2 | #Mon Jun 09 09:20:24 EEST 2014 3 | virt-jena-2.6.2-srdc.pom>in-project-triplestore= 4 | virt-jena-2.6.2-srdc.jar>in-project-triplestore= 5 | -------------------------------------------------------------------------------- /lib/tr/com/srdc/virt-jena/2.6.2-srdc/_remote.repositories: -------------------------------------------------------------------------------- 1 | #NOTE: This is an Aether internal implementation file, its format can be changed without prior notice. 2 | #Mon Jun 09 09:52:47 EEST 2014 3 | virt-jena-2.6.2-srdc.jar>= 4 | virt-jena-2.6.2-srdc-sources.jar>= 5 | virt-jena-2.6.2-srdc.pom>= 6 | -------------------------------------------------------------------------------- /lib/tr/com/srdc/virt-jena/2.6.2-srdc/virt-jena-2.6.2-srdc-sources.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/lib/tr/com/srdc/virt-jena/2.6.2-srdc/virt-jena-2.6.2-srdc-sources.jar -------------------------------------------------------------------------------- /lib/tr/com/srdc/virt-jena/2.6.2-srdc/virt-jena-2.6.2-srdc.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/lib/tr/com/srdc/virt-jena/2.6.2-srdc/virt-jena-2.6.2-srdc.jar -------------------------------------------------------------------------------- /lib/tr/com/srdc/virt-jena/2.6.2-srdc/virt-jena-2.6.2-srdc.pom: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | 5 | tr.com.srdc 6 | virt-jena 7 | 2.6.2-srdc 8 | jar 9 | Virtuoso Jena Wrapper - SRDC updates with org.apache.jena 10 | 11 | 12 | UTF-8 13 | 14 | 15 | 16 | 17 | virtuoso 18 | virtjdbc4 19 | 4.0 20 | 21 | 22 | org.apache.jena 23 | jena-core 24 | 2.10.0 25 | 26 | 27 | org.apache.jena 28 | jena-arq 29 | 2.10.0 30 | 31 | 32 | 33 | 34 | 35 | 36 | org.apache.maven.plugins 37 | maven-compiler-plugin 38 | 3.1 39 | 40 | true 41 | UTF-8 42 | 1.7 43 | 1.7 44 | 45 | 46 | 47 | compile 48 | 49 | compile 50 | 51 | 52 | 53 | 54 | 55 | org.apache.maven.plugins 56 | maven-source-plugin 57 | 58 | 59 | attach-sources 60 | 61 | jar 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | in-project-virtjdbc 72 | In Project Repo for VirtJDBC 73 | file://${project.basedir}/lib 74 | 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /lib/tr/com/srdc/virt-jena/maven-metadata-local.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tr.com.srdc 4 | virt-jena 5 | 6 | 2.6.2-srdc 7 | 8 | 2.6.2-srdc 9 | 10 | 20130509132130 11 | 12 | 13 | -------------------------------------------------------------------------------- /lib/virtuoso/virtjdbc4/4.0/_maven.repositories: -------------------------------------------------------------------------------- 1 | #NOTE: This is an internal implementation file, its format can be changed without prior notice. 2 | #Wed Jan 30 11:17:50 EET 2013 3 | virtjdbc3-3.0.jar>= 4 | virtjdbc3-3.0.pom>= 5 | -------------------------------------------------------------------------------- /lib/virtuoso/virtjdbc4/4.0/virtjdbc4-4.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/lib/virtuoso/virtjdbc4/4.0/virtjdbc4-4.0.jar -------------------------------------------------------------------------------- /lib/virtuoso/virtjdbc4/4.0/virtjdbc4-4.0.pom: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | virtuoso 6 | virtjdbc4 7 | 4.0 8 | POM was created from install:install-file 9 | 10 | -------------------------------------------------------------------------------- /lib/virtuoso/virtjdbc4/maven-metadata-local.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | virtuoso 4 | virtjdbc4 5 | 6 | 4.0 7 | 8 | 4.0 9 | 10 | 20130130091750 11 | 12 | 13 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | 5 | tr.com.srdc 6 | semantic-mdr 7 | 1.0.0 8 | pom 9 | 10 | Semantic Metadata Registry/Repository 11 | SALUS Semantic ISO11179 based Metadata Registry 12 | 13 | 14 | core 15 | demo 16 | dex 17 | 18 | parent 19 | web 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /web/src/main/java/tr/com/srdc/mdr/web/MDRServletContextListener.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.web; 2 | 3 | import javax.servlet.ServletContextEvent; 4 | import javax.servlet.ServletContextListener; 5 | 6 | import org.slf4j.Logger; 7 | import org.slf4j.LoggerFactory; 8 | 9 | import eu.salusproject.securityprivacy.authentication.db.Database; 10 | import tr.com.srdc.mdr.configuration.SemanticMDRConfiguration; 11 | import tr.com.srdc.mdr.core.impl.Repository; 12 | import tr.com.srdc.mdr.core.impl.RepositoryManager; 13 | import tr.com.srdc.mdr.core.model.MDRException; 14 | 15 | public class MDRServletContextListener implements ServletContextListener { 16 | private static final Logger logger = LoggerFactory 17 | .getLogger(MDRServletContextListener.class); 18 | 19 | @Override 20 | public void contextInitialized(ServletContextEvent sce) { 21 | String dbDirectoryPath = sce.getServletContext().getInitParameter( 22 | "database.dir"); 23 | if (dbDirectoryPath != null && !dbDirectoryPath.isEmpty()) { 24 | SemanticMDRConfiguration.init(dbDirectoryPath); 25 | } else { 26 | SemanticMDRConfiguration.init(sce.getServletContext().getRealPath( 27 | "/")); 28 | } 29 | Database.getInstance(); 30 | Repository repository = RepositoryManager.getInstance().getRepository(); 31 | try { 32 | repository.getMDRDatabase().setSyncMode(false); 33 | repository.getDefaults().initDefaultResources(); 34 | } catch (MDRException e) { 35 | logger.error("Default Resource from Repository Defaults could not be created"); 36 | } finally { 37 | repository.getMDRDatabase().setSyncMode(true); 38 | } 39 | logger.info("MDR servlet context initialized"); 40 | } 41 | 42 | @Override 43 | public void contextDestroyed(ServletContextEvent sce) { 44 | logger.info("Closing down..."); 45 | RepositoryManager.getInstance().getRepository().getMDRDatabase() 46 | .close(); 47 | logger.info("MDRDatabase closed successfully while exiting the MDRServlet."); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /web/src/main/java/tr/com/srdc/mdr/web/html/api/DataElementConceptService.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.web.html.api; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import javax.ws.rs.CookieParam; 7 | import javax.ws.rs.GET; 8 | import javax.ws.rs.Path; 9 | import javax.ws.rs.PathParam; 10 | import javax.ws.rs.Produces; 11 | import javax.ws.rs.core.MediaType; 12 | import javax.ws.rs.core.Response; 13 | 14 | import tr.com.srdc.mdr.core.api.ai.DataElement; 15 | import tr.com.srdc.mdr.core.api.ai.DataElementConcept; 16 | import tr.com.srdc.mdr.core.impl.Repository; 17 | import tr.com.srdc.mdr.core.impl.RepositoryManager; 18 | import tr.com.srdc.mdr.web.html.models.DataElementConceptModel; 19 | import tr.com.srdc.mdr.web.html.models.DataElementModel; 20 | import tr.com.srdc.mdr.web.html.util.WebUtil; 21 | 22 | 23 | @Path("/dec/{decid}") 24 | public class DataElementConceptService { 25 | 26 | @GET 27 | @Produces(MediaType.APPLICATION_JSON) 28 | public Response getDataElementConcept( 29 | @CookieParam(AuthenticationService.SID) String sessionID, 30 | @PathParam("decid") String decID) { 31 | WebUtil.checkUserSession(sessionID); 32 | Repository repository = RepositoryManager.getInstance().getRepository(); 33 | DataElementConcept dec = repository.getDataElementConcept(decID); 34 | 35 | return Response.ok(new DataElementConceptModel(dec.asMDRResource())) 36 | .build(); 37 | } 38 | 39 | @GET 40 | @Path("/de") 41 | @Produces(MediaType.APPLICATION_JSON) 42 | public Response listDataElements( 43 | @CookieParam(AuthenticationService.SID) String sessionID, 44 | @PathParam("decid") String decID) { 45 | WebUtil.checkUserSession(sessionID); 46 | Repository repository = RepositoryManager.getInstance().getRepository(); 47 | DataElementConcept dec = repository.getDataElementConcept(decID); 48 | List deList = dec.getDataElements(); 49 | 50 | List deModelList = new ArrayList(); 51 | for (DataElement de : deList) { 52 | deModelList.add(new DataElementModel(de)); 53 | } 54 | 55 | return Response.ok(deModelList).build(); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /web/src/main/java/tr/com/srdc/mdr/web/html/api/PropertyService.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.web.html.api; 2 | 3 | import javax.ws.rs.CookieParam; 4 | import javax.ws.rs.GET; 5 | import javax.ws.rs.Path; 6 | import javax.ws.rs.PathParam; 7 | import javax.ws.rs.Produces; 8 | import javax.ws.rs.core.MediaType; 9 | import javax.ws.rs.core.Response; 10 | 11 | import tr.com.srdc.mdr.core.api.ai.Property; 12 | import tr.com.srdc.mdr.core.impl.Repository; 13 | import tr.com.srdc.mdr.core.impl.RepositoryManager; 14 | import tr.com.srdc.mdr.core.impl.ai.PropertyImpl; 15 | import tr.com.srdc.mdr.core.model.Abbreviation; 16 | import tr.com.srdc.mdr.core.store.MDRDatabase; 17 | import tr.com.srdc.mdr.web.html.models.PropertyModel; 18 | import tr.com.srdc.mdr.web.html.util.WebUtil; 19 | 20 | 21 | @Path("/property/{propertyid}") 22 | public class PropertyService { 23 | 24 | @GET 25 | @Produces(MediaType.APPLICATION_JSON) 26 | public Response getProperty( 27 | @CookieParam(AuthenticationService.SID) String sessionID, 28 | @PathParam("propertyid") String propertyID) { 29 | WebUtil.checkUserSession(sessionID); 30 | Repository repository = RepositoryManager.getInstance().getRepository(); 31 | MDRDatabase mdrDatabase = repository.getMDRDatabase(); 32 | 33 | Property property = new PropertyImpl(mdrDatabase.getOntModel() 34 | .getResource( 35 | mdrDatabase.getResourceFactory().makeID( 36 | Abbreviation.Property.toString(), propertyID)), 37 | mdrDatabase); 38 | return Response.ok(new PropertyModel(property)).build(); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /web/src/main/java/tr/com/srdc/mdr/web/html/api/ValueDomainService.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.web.html.api; 2 | 3 | import javax.ws.rs.CookieParam; 4 | import javax.ws.rs.GET; 5 | import javax.ws.rs.Path; 6 | import javax.ws.rs.PathParam; 7 | import javax.ws.rs.Produces; 8 | import javax.ws.rs.core.MediaType; 9 | import javax.ws.rs.core.Response; 10 | 11 | import tr.com.srdc.mdr.core.api.ai.EnumeratedValueDomain; 12 | import tr.com.srdc.mdr.core.api.ai.ValueDomain; 13 | import tr.com.srdc.mdr.core.impl.Repository; 14 | import tr.com.srdc.mdr.core.impl.RepositoryManager; 15 | import tr.com.srdc.mdr.web.html.models.ValueDomainModel; 16 | import tr.com.srdc.mdr.web.html.util.WebUtil; 17 | 18 | 19 | @Path("/vd/{vdid}") 20 | public class ValueDomainService { 21 | 22 | @GET 23 | @Produces(MediaType.APPLICATION_JSON) 24 | public Response getValueDomain( 25 | @CookieParam(AuthenticationService.SID) String sessionID, 26 | @PathParam("vdid") String valueDomainID) { 27 | WebUtil.checkUserSession(sessionID); 28 | Repository repository = RepositoryManager.getInstance().getRepository(); 29 | ValueDomain vd = repository.getValueDomain(valueDomainID); 30 | if (vd == null) { 31 | return Response.noContent().build(); 32 | } 33 | 34 | if (vd instanceof EnumeratedValueDomain) { 35 | return Response.ok(new ValueDomainModel(vd, true)).build(); 36 | } else { 37 | return Response.ok(new ValueDomainModel(vd, false)).build(); 38 | } 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /web/src/main/java/tr/com/srdc/mdr/web/html/models/ConceptualDomainModel.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.web.html.models; 2 | 3 | import tr.com.srdc.mdr.core.api.ai.ConceptualDomain; 4 | 5 | public class ConceptualDomainModel extends AdministeredItemModel { 6 | 7 | private boolean enumerated; 8 | 9 | private String dimensionality; 10 | 11 | public ConceptualDomainModel() { 12 | super(); 13 | this.enumerated = false; 14 | } 15 | 16 | public ConceptualDomainModel(ConceptualDomain conceptualDomain, 17 | boolean enumerated) { 18 | super(conceptualDomain); 19 | this.enumerated = enumerated; 20 | this.dimensionality = conceptualDomain.getDimensionality(); 21 | } 22 | 23 | public boolean isEnumerated() { 24 | return enumerated; 25 | } 26 | 27 | public void setEnumerated(boolean enumerated) { 28 | this.enumerated = enumerated; 29 | } 30 | 31 | public String getDimensionality() { 32 | return dimensionality; 33 | } 34 | 35 | public void setDimensionality(String dimensionality) { 36 | this.dimensionality = dimensionality; 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /web/src/main/java/tr/com/srdc/mdr/web/html/models/ContextModel.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.web.html.models; 2 | 3 | import tr.com.srdc.mdr.core.api.ai.Context; 4 | 5 | /** 6 | * @author anil 7 | * 8 | */ 9 | public class ContextModel extends AdministeredItemModel { 10 | 11 | public ContextModel() { 12 | super(); 13 | } 14 | 15 | public ContextModel(Context context) { 16 | super(context); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /web/src/main/java/tr/com/srdc/mdr/web/html/models/DataElementMappingModel.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.web.html.models; 2 | 3 | public class DataElementMappingModel { 4 | private String match; 5 | private String mdr; 6 | private String matchedURI; 7 | public String getMatch() { 8 | return match; 9 | } 10 | public void setMatch(String match) { 11 | this.match = match; 12 | } 13 | public String getMdr() { 14 | return mdr; 15 | } 16 | public void setMdr(String mdr) { 17 | this.mdr = mdr; 18 | } 19 | public String getMatchedURI() { 20 | return matchedURI; 21 | } 22 | public void setMatchedURI(String matchedDE) { 23 | this.matchedURI = matchedDE; 24 | } 25 | 26 | 27 | } 28 | -------------------------------------------------------------------------------- /web/src/main/java/tr/com/srdc/mdr/web/html/models/DataTypeModel.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.web.html.models; 2 | 3 | import tr.com.srdc.mdr.core.api.composite.Datatype; 4 | 5 | public class DataTypeModel { 6 | 7 | private String datatypeName; 8 | private String schemeReference; 9 | 10 | public DataTypeModel() { 11 | } 12 | 13 | public DataTypeModel(Datatype datatype) { 14 | super(); 15 | this.datatypeName = datatype.getName(); 16 | this.schemeReference = datatype.getSchemeReference(); 17 | } 18 | 19 | public String getDatatypeName() { 20 | return datatypeName; 21 | } 22 | 23 | public void setDatatypeName(String datatypeName) { 24 | this.datatypeName = datatypeName; 25 | } 26 | 27 | public String getSchemeReference() { 28 | return schemeReference; 29 | } 30 | 31 | public void setSchemeReference(String schemeReference) { 32 | this.schemeReference = schemeReference; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /web/src/main/java/tr/com/srdc/mdr/web/html/models/ExtractionSpecificationModel.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.web.html.models; 2 | 3 | import org.codehaus.jackson.annotate.JsonIgnoreProperties; 4 | 5 | import tr.com.srdc.mdr.core.MDRConstants; 6 | import tr.com.srdc.mdr.core.api.composite.ClassificationSchemeItem; 7 | 8 | @JsonIgnoreProperties(ignoreUnknown = true) 9 | public class ExtractionSpecificationModel { 10 | private String type; 11 | private String modelOID; 12 | private String modelName; 13 | private String value; 14 | 15 | public ExtractionSpecificationModel() { 16 | super(); 17 | } 18 | 19 | public ExtractionSpecificationModel(ClassificationSchemeItem csi) { 20 | String oid = csi.getClassificationScheme().getUniqueID(); 21 | this.setModelOID(oid); 22 | this.setValue(csi.getItemValue()); 23 | this.setType(csi.getTypeName()); 24 | this.setModelName(MDRConstants.getContentModelFromOID(oid)); 25 | } 26 | 27 | public String getType() { 28 | return type; 29 | } 30 | 31 | public void setType(String type) { 32 | this.type = type; 33 | } 34 | 35 | public String getValue() { 36 | return value; 37 | } 38 | 39 | public void setValue(String name) { 40 | this.value = name; 41 | } 42 | 43 | public String getModelOID() { 44 | return modelOID; 45 | } 46 | 47 | public void setModelOID(String modelOID) { 48 | this.modelOID = modelOID; 49 | } 50 | 51 | public String getModelName() { 52 | return modelName; 53 | } 54 | 55 | public void setModelName(String modelName) { 56 | this.modelName = modelName; 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /web/src/main/java/tr/com/srdc/mdr/web/html/models/LoginModel.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.web.html.models; 2 | 3 | public class LoginModel { 4 | 5 | private String username; 6 | private String password; 7 | private boolean staySignedIn; 8 | 9 | public LoginModel() { 10 | 11 | } 12 | 13 | public LoginModel(String username, String password, boolean staySignedIn) { 14 | super(); 15 | this.username = username; 16 | this.password = password; 17 | this.staySignedIn = staySignedIn; 18 | } 19 | 20 | public String getUsername() { 21 | return username; 22 | } 23 | 24 | public void setUsername(String username) { 25 | this.username = username; 26 | } 27 | 28 | public String getPassword() { 29 | return password; 30 | } 31 | 32 | public void setPassword(String password) { 33 | this.password = password; 34 | } 35 | 36 | public boolean isStaySignedIn() { 37 | return staySignedIn; 38 | } 39 | 40 | public void setStaySignedIn(boolean staySignedIn) { 41 | this.staySignedIn = staySignedIn; 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /web/src/main/java/tr/com/srdc/mdr/web/html/models/MappingModel.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.web.html.models; 2 | 3 | import org.codehaus.jackson.annotate.JsonIgnoreProperties; 4 | 5 | import tr.com.srdc.mdr.core.api.composite.ClassificationSchemeItem; 6 | import tr.com.srdc.mdr.core.impl.Repository; 7 | import tr.com.srdc.mdr.core.impl.RepositoryManager; 8 | 9 | @JsonIgnoreProperties(ignoreUnknown=true) 10 | public class MappingModel { 11 | private String matchType; 12 | private String termName; 13 | private String termSystem; 14 | private String termSystemOID; 15 | private String termUUID; 16 | 17 | public MappingModel() { 18 | super(); 19 | } 20 | 21 | public MappingModel(ClassificationSchemeItem csi) { 22 | setMatchType(csi.getTypeName()); 23 | setTermUUID(csi.getItemValue()); 24 | setTermSystem(csi.getClassificationScheme().getName()); 25 | setTermSystemOID(csi.getClassificationScheme().getUniqueID()); 26 | Repository repository = RepositoryManager.getInstance().getRepository(); 27 | setTermName(repository.getDataElement(termUUID).getName()); 28 | 29 | } 30 | 31 | public String getMatchType() { 32 | return matchType; 33 | } 34 | 35 | public void setMatchType(String type) { 36 | this.matchType = type; 37 | } 38 | 39 | public String getTermUUID() { 40 | return termUUID; 41 | } 42 | 43 | public void setTermUUID(String termUUID) { 44 | this.termUUID = termUUID; 45 | } 46 | 47 | public String getTermSystem() { 48 | return termSystem; 49 | } 50 | 51 | public void setTermSystem(String termSystem) { 52 | this.termSystem = termSystem; 53 | } 54 | 55 | public String getTermName() { 56 | return termName; 57 | } 58 | 59 | public void setTermName(String termName) { 60 | this.termName = termName; 61 | } 62 | 63 | public String getTermSystemOID() { 64 | return termSystemOID; 65 | } 66 | 67 | public void setTermSystemOID(String termSystemOID) { 68 | this.termSystemOID = termSystemOID; 69 | } 70 | 71 | } -------------------------------------------------------------------------------- /web/src/main/java/tr/com/srdc/mdr/web/html/models/ObjectClassModel.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.web.html.models; 2 | 3 | import org.codehaus.jackson.annotate.JsonIgnoreProperties; 4 | 5 | import tr.com.srdc.mdr.core.api.ai.ObjectClass; 6 | 7 | 8 | @JsonIgnoreProperties(ignoreUnknown = true) 9 | public class ObjectClassModel extends AdministeredItemModel { 10 | 11 | private String parentConceptID; 12 | 13 | public ObjectClassModel() { 14 | super(); 15 | } 16 | 17 | public ObjectClassModel(ObjectClass objectClass) { 18 | super(objectClass); 19 | 20 | if (objectClass.getParentConcept() != null) { 21 | this.parentConceptID = objectClass.getParentConcept().getUniqueID(); 22 | } 23 | } 24 | 25 | /** 26 | * 27 | * @return the parentConceptID 28 | */ 29 | public String getParentConceptID() { 30 | return parentConceptID; 31 | } 32 | 33 | /** 34 | * 35 | * @param parentConceptID 36 | * the parentConceptID to set 37 | */ 38 | public void setParentConceptID(String parentConceptID) { 39 | this.parentConceptID = parentConceptID; 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /web/src/main/java/tr/com/srdc/mdr/web/html/models/PermissibleValueModel.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.web.html.models; 2 | 3 | import tr.com.srdc.mdr.core.api.composite.PermissibleValue; 4 | 5 | public class PermissibleValueModel { 6 | 7 | private ValueMeaningModel valueMeaning; 8 | private String valueItem; 9 | 10 | public PermissibleValueModel() { 11 | } 12 | 13 | public PermissibleValueModel(PermissibleValue pv) { 14 | super(); 15 | this.valueItem = pv.getValueItem(); 16 | this.valueMeaning = new ValueMeaningModel(pv.asMDRResource() 17 | .getHasPermissibleValueMeaning()); 18 | } 19 | 20 | public ValueMeaningModel getValueMeaning() { 21 | return this.valueMeaning; 22 | } 23 | 24 | public void setValueMeaning(ValueMeaningModel valueMeaning) { 25 | this.valueMeaning = valueMeaning; 26 | } 27 | 28 | public String getValueItem() { 29 | return valueItem; 30 | } 31 | 32 | public void setValueItem(String valueItem) { 33 | this.valueItem = valueItem; 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /web/src/main/java/tr/com/srdc/mdr/web/html/models/PropertyModel.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.web.html.models; 2 | 3 | import tr.com.srdc.mdr.core.api.ai.AdministeredItem; 4 | 5 | public class PropertyModel extends AdministeredItemModel { 6 | 7 | public PropertyModel() { 8 | } 9 | 10 | public PropertyModel(AdministeredItem item) { 11 | super(item); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /web/src/main/java/tr/com/srdc/mdr/web/html/models/ValueMeaningModel.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.web.html.models; 2 | 3 | import org.slf4j.Logger; 4 | import org.slf4j.LoggerFactory; 5 | 6 | import tr.com.srdc.mdr.core.model.MDRException; 7 | import tr.com.srdc.mdr.core.model.iso11179.composite.ValueMeaningResource; 8 | 9 | 10 | public class ValueMeaningModel { 11 | private static final Logger logger = LoggerFactory 12 | .getLogger(ValueMeaningModel.class); 13 | private String id; 14 | private String description; 15 | private String conceptualDomainID; 16 | 17 | public ValueMeaningModel() { 18 | super(); 19 | } 20 | 21 | public ValueMeaningModel(ValueMeaningResource valueMeaning) { 22 | super(); 23 | this.id = valueMeaning.getValueMeaningIdentifier(); 24 | this.description = valueMeaning.getValueMeaningDescription(); 25 | try { 26 | this.conceptualDomainID = valueMeaning 27 | .getContainedInValueMeaningSets().get(0).getUniqueID(); 28 | } catch (MDRException e) { 29 | logger.error( 30 | "Containing Enumerated Conceptual Domain of could not be retrieved", 31 | id); 32 | } 33 | } 34 | 35 | /** 36 | * @return the id 37 | */ 38 | public String getId() { 39 | return id; 40 | } 41 | 42 | /** 43 | * @param id 44 | * the id to set 45 | */ 46 | public void setId(String id) { 47 | this.id = id; 48 | } 49 | 50 | /** 51 | * @return the description 52 | */ 53 | public String getDescription() { 54 | return description; 55 | } 56 | 57 | /** 58 | * @param description 59 | * the description to set 60 | */ 61 | public void setDescription(String description) { 62 | this.description = description; 63 | } 64 | 65 | /** 66 | * @return the conceptualDomainID 67 | */ 68 | public String getConceptualDomainID() { 69 | return conceptualDomainID; 70 | } 71 | 72 | /** 73 | * @param conceptualDomainID 74 | * the conceptualDomainID to set 75 | */ 76 | public void setConceptualDomainID(String conceptualDomainID) { 77 | this.conceptualDomainID = conceptualDomainID; 78 | } 79 | 80 | } 81 | -------------------------------------------------------------------------------- /web/src/main/java/tr/com/srdc/mdr/web/html/util/MDRWebExceptionMapper.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.web.html.util; 2 | 3 | import javax.ws.rs.core.Response; 4 | import javax.ws.rs.ext.ExceptionMapper; 5 | import javax.ws.rs.ext.Provider; 6 | 7 | import org.slf4j.Logger; 8 | import org.slf4j.LoggerFactory; 9 | 10 | @Provider 11 | public class MDRWebExceptionMapper implements ExceptionMapper { 12 | 13 | private static final Logger logger = LoggerFactory 14 | .getLogger(MDRWebExceptionMapper.class); 15 | 16 | @Override 17 | public Response toResponse(RuntimeException runtimeException) { 18 | // This is to map run time exceptions to HTTP error status 19 | // Normally with runtime exceptions, users see full stack trace on web 20 | // page 21 | // With this mapper, stack trace is given as log message and client gets 22 | // a valid 23 | // HTTP response with valid error code 24 | logger.error( 25 | "Runtime exception caught, HTTP Response with Status NoContent ", 26 | runtimeException); 27 | return Response.noContent().build(); 28 | } 29 | } -------------------------------------------------------------------------------- /web/src/main/java/tr/com/srdc/mdr/web/rest/api/util/GraphStream.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.web.rest.api.util; 2 | 3 | import java.io.IOException; 4 | import java.io.OutputStream; 5 | 6 | import javax.ws.rs.WebApplicationException; 7 | import javax.ws.rs.core.StreamingOutput; 8 | 9 | import com.hp.hpl.jena.rdf.model.Model; 10 | 11 | public class GraphStream implements StreamingOutput { 12 | 13 | private Model model; 14 | private String lang; 15 | 16 | public GraphStream() { 17 | this.model = null; 18 | } 19 | 20 | public void setModel(Model model) { 21 | this.model = model; 22 | } 23 | 24 | public void setLanguage(String lang) { 25 | this.lang = lang; 26 | } 27 | 28 | @Override 29 | public void write(OutputStream output) throws IOException, 30 | WebApplicationException { 31 | try { 32 | model.write(output, lang); 33 | } catch (Exception e) { 34 | throw new WebApplicationException(e); 35 | } 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /web/src/main/java/tr/com/srdc/mdr/web/rest/api/util/ResponseCorsFilter.java: -------------------------------------------------------------------------------- 1 | package tr.com.srdc.mdr.web.rest.api.util; 2 | 3 | import javax.ws.rs.core.Response; 4 | import javax.ws.rs.core.Response.ResponseBuilder; 5 | 6 | import com.sun.jersey.spi.container.ContainerRequest; 7 | import com.sun.jersey.spi.container.ContainerResponse; 8 | import com.sun.jersey.spi.container.ContainerResponseFilter; 9 | 10 | public class ResponseCorsFilter implements ContainerResponseFilter { 11 | 12 | @Override 13 | public ContainerResponse filter(ContainerRequest req, 14 | ContainerResponse contResp) { 15 | 16 | ResponseBuilder resp = Response.fromResponse(contResp.getResponse()); 17 | resp.header("Access-Control-Allow-Origin", "*").header( 18 | "Access-Control-Allow-Methods", "GET, POST, OPTIONS"); 19 | 20 | String reqHead = req.getHeaderValue("Access-Control-Request-Headers"); 21 | 22 | if (null != reqHead && !reqHead.equals(null)) { 23 | resp.header("Access-Control-Allow-Headers", reqHead); 24 | } 25 | 26 | contResp.setResponse(resp.build()); 27 | return contResp; 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /web/src/main/resources/SDMetricsPF/contents.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | true 6 | 7 | 8 | metamodel.xml 9 | metrics.xml 10 | UML 1.x and XMI 1.0 11 | false 12 | xmiTrans1_0.xml 13 | 1.0 14 | 15 | 16 | true 17 | 18 | 19 | metamodel.xml 20 | metrics.xml 21 | UML 1.x and XMI 1.1-1.3 22 | false 23 | xmiTrans1_1.xml 24 | 1.1;1.2;1.3 25 | 26 | 27 | true 28 | 29 | 30 | metamodel2.xml 31 | metrics2.xml 32 | UML 2.x and XMI 2.0/2.1 33 | false 34 | xmiTrans2_0.xml 35 | 2.0;2.1 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /web/src/main/resources/SDMetricsPF/contents_d6.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | false 6 | Embarcadero's Describe 7 | 6.0 8 | metamodel_describe6.xml 9 | metrics_describe6.xml 10 | Embarcardero Describe 6 11 | false 12 | xmiTrans_describe6.xml 13 | 2.0 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /web/src/main/resources/SDMetricsPF/contents_ea.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | false 6 | 7 | 8 | SDMetricsResource:metamodel.xml 9 | SDMetricsResource:metrics.xml 10 | UML 1.x and XMI 1.1-1.3 with Enterprise Architect 11 | false 12 | xmiTransEA1_1.xml 13 | 1.1;1.2;1.3 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /web/src/main/resources/SDMetricsPF/contents_poseidon4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | false 6 | Netbeans XMI Writer 7 | 1.0 8 | metamodel_poseidon4.xml 9 | metrics_poseidon4.xml 10 | Poseidon 4 11 | false 12 | xmiTrans_poseidon4.xml 13 | 1.2 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /web/src/main/resources/SDMetricsPF/readme_d6.html: -------------------------------------------------------------------------------- 1 | SDMetrics Project Files for Embarcadero Describe 6 2 | 3 | Description

4 | 5 |

The UML metamodel of Embarcardero Describe 6 is a mixture of UML1.4, 2.0, 6 | and proprietary extensions. Describe stores its models in *.etd files, 7 | which are XMI files. Although Describe specifies XMI version 8 | 2.0 in its output files, the XMI files actually follow the XMI 1.1/1.2 9 | production rules.

10 | 11 |

The project files in this archive provide a meta model definition, 12 | XMI transformations, and metric and rules definitions which take all 13 | of these idiosyncracies into account.

14 | 15 |

Contents

16 | 17 | 18 | 19 | 20 | 21 |
FileDescription
metamodel_describe6.xmlMetamodel for Describe 6
xmiTrans_describe6.xmlXMI transformation for Describe's *.etd files
metrics_describe6.xmlMetric definitions
22 | 23 |

Revision History

24 | 25 |
  • 12-Oct-2005: initial release
26 | 27 | 28 | For the latest project files updates, visit the 29 | SDMetrics Project File Downloads Page. 30 | 31 | 32 | -------------------------------------------------------------------------------- /web/src/main/resources/SDMetricsPF/readme_ea.html: -------------------------------------------------------------------------------- 1 | SDMetrics Project Files for Enterprise Architect 2 | 3 | Description

4 | 5 |

This archive provides an XMI transformation file for 6 | the SDMetrics default metamodel 7 | for UML1.x and XMI 1.2 files saved by Enterprise Architect.

8 | 9 |

SDMetrics' default XMI transformations expect all model elements in 10 | the XMI file to have and XMI ID. Enterprise Architect does not 11 | provide XMI IDs for all model elements - this specialized 12 | transformation file accounts for this.

13 | 14 |

Contents

15 | 16 | 17 | 18 | 19 |
FileDescription
xmiTransEA1_1.xmlXMI transformation for XMI 1.2 files saved by Enterprise Architect
20 | 21 | 22 |

Revision History

23 | 24 |
    25 |
  • 24-Feb-2011: corrected extraction of diagram type
  • 26 |
  • 28-Sep-2005: updated for SDMetrics V2.0 UML1.x metamodel
  • 27 |
  • 01-Dec-2004: updated for SDMetrics V1.3 UML1.x metamodel
  • 28 |
  • 12-May-2003: initial release
  • 29 |
30 | 31 | 32 | For the latest project files updates, visit the 33 | SDMetrics Project File Downloads Page. 34 | 35 | 36 | -------------------------------------------------------------------------------- /web/src/main/resources/SDMetricsPF/readme_poseidon4.html: -------------------------------------------------------------------------------- 1 | SDMetrics Project Files for Poseidon 4.0/4.1 2 | 3 | 4 | Description

5 | 6 |

Metamodel, XMI transformations and metric definitions for 7 | Gentleware Poseidon for UML V4.0 and V4.1.

8 | 9 |

Poseidon 4 uses the UML2.0 metamodel for statechart diagrams, 10 | sequence diagrams, and activity diagrams. The other diagram types 11 | still use a UML1.x meta model, in particular collaboration diagrams 12 | still use UML1.x objects, links, and stimuli. Other peculiarities 13 | of the XMI exporter include:

14 | 15 |
    16 |
  • In the XMI files, element types from the UML1.4 metamodel use 17 | namespace "UML", element types from UML2 use namespace "UML2".
  • 18 |
  • Object and control flows in UML2 activity graphs are not differentiated 19 | in the XMI file, both are encoded with UML2:ActivityEdge elements. 20 | Consequently, metrics and design rules that take this difference into 21 | account no longer apply. For some reason, object nodes are encoded with 22 | UML2:Pin, and there are instances of UML2:CallAction. 23 | ActivityEdge, Pin, and CallAction are abstract in the UML2 metamodel, so 24 | there should not be any instances of these types.
  • 25 |
  • Types of (UML1.4!) attributes and parameters no longer are encoded 26 | with the usual UML:Parameter.type and UML:StructuralFeature.type elements, 27 | but with a UML2:TypedElement.type element. So they managed to mix UML1 28 | and UML2 in a single model element now...
  • 29 |
30 | 31 |

The XMI transformation file takes these details into account.

32 | 33 |

Contents

34 | 35 | 36 | 37 | 38 | 39 | 40 |
FileDescription
metamodel_poseidon4.xmlMetamodel for Poseidon 4
xmiTrans_poseidon4.xmlXMI transformation for Poseidon 4 metamodel
metrics_poseidon4.xmlMetric definitions for Poseidon 4
41 | 42 |

Revision History

43 | 44 |
  • 26-Mar-2006: initial release
45 | 46 | 47 | For the latest project files updates, visit the 48 | SDMetrics Project File Downloads Page. 49 | 50 | 51 | -------------------------------------------------------------------------------- /web/src/main/resources/dex/appContext.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /web/src/main/resources/input/uml1_3.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/web/src/main/resources/input/uml1_3.xml -------------------------------------------------------------------------------- /web/src/main/resources/input/uml1_4.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/web/src/main/resources/input/uml1_4.xml -------------------------------------------------------------------------------- /web/src/main/resources/input/uml2.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/web/src/main/resources/input/uml2.xml -------------------------------------------------------------------------------- /web/src/main/resources/input/uml2_1.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/web/src/main/resources/input/uml2_1.xml -------------------------------------------------------------------------------- /web/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.appender.Stdout=org.apache.log4j.ConsoleAppender 2 | log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout 3 | log4j.appender.Stdout.layout.conversionPattern=%-5p - %-26.26c{1} - %m\n 4 | 5 | log4j.rootLogger=INFO,Stdout 6 | 7 | 8 | -------------------------------------------------------------------------------- /web/src/main/resources/rest/resources-context-all.rq: -------------------------------------------------------------------------------- 1 | PREFIX rdf: 2 | PREFIX owl: 3 | PREFIX xsd: 4 | PREFIX rdfs: 5 | PREFIX foaf: 6 | PREFIX schema: 7 | PREFIX skos: 8 | PREFIX dcterms: 9 | PREFIX dc: 10 | PREFIX mdr: 11 | PREFIX dex: 12 | 13 | CONSTRUCT { 14 | ?co a mdr:Context. 15 | ?co a skos:ConceptScheme. 16 | ?co a dex:Context. 17 | 18 | ?co skos:prefLabel ?displayName. 19 | 20 | ?co skos:definition ?definition. 21 | 22 | ?co schema:description ?description. 23 | ?co dc:description ?description. 24 | 25 | ?co dc:identifier ?uuid. 26 | ?co dcterms:identifier ?uuid. 27 | } 28 | WHERE { 29 | ?co rdfs:subClassOf mdr:Context. 30 | ?co mdr:contextDescription ?description. 31 | ?co mdr:contextDescriptionLanguageIdentifier mdr:MDRLanguageIdentification. # The default context does not have a language identifier 32 | 33 | ?co mdr:having ?aic. 34 | ?aic mdr:administeredItemContextContext mdr:MDRContext. 35 | ?aic mdr:administeredItemContextTerminologicalEntry ?te. 36 | ?te mdr:containingTerminologicalEntryLanguage ?ls. 37 | ?ls mdr:containingDefinitionEntry ?def. 38 | ?def mdr:definitionText ?definition. 39 | 40 | ?ls mdr:containingNameEntry ?des. 41 | ?des mdr:name ?displayName. 42 | 43 | ?co mdr:contextAdministrationRecord ?car. 44 | ?car mdr:administeredItemIdentifier ?aii. 45 | ?aii mdr:dataIdentifier ?uuid. 46 | } -------------------------------------------------------------------------------- /web/src/main/resources/rest/resources-dataelement-all-from-context.rq: -------------------------------------------------------------------------------- 1 | PREFIX rdf: 2 | PREFIX owl: 3 | PREFIX xsd: 4 | PREFIX rdfs: 5 | PREFIX foaf: 6 | PREFIX schema: 7 | PREFIX skos: 8 | PREFIX dcterms: 9 | PREFIX dc: 10 | PREFIX mdr: 11 | PREFIX dex: 12 | 13 | CONSTRUCT { 14 | ?de a mdr:Context. 15 | ?de a skos:Concept. 16 | ?de a dex:Context. 17 | 18 | ?de skos:prefLabel ?displayName. 19 | ?de skos:definition ?definition. 20 | ?de schema:description ?definition. 21 | ?de dc:description ?definition. 22 | 23 | ?de dc:identifier ?deuuid. 24 | ?de dcterms:identifier ?deuuid. 25 | } 26 | WHERE { 27 | ?de rdfs:subClassOf mdr:DataElement . 28 | ?de mdr:having ?aic . 29 | ?aic mdr:administeredItemContextContext ?cx. 30 | ?cx mdr:contextAdministrationRecord ?car. 31 | ?car mdr:administeredItemIdentifier ?aii. 32 | ?aii mdr:dataIdentifier ?uuid. 33 | 34 | ?aic mdr:administeredItemContextTerminologicalEntry ?te. 35 | ?te mdr:containingTerminologicalEntryLanguage ?ls. 36 | ?ls mdr:containingNameEntry ?des. 37 | ?des mdr:name ?displayName. 38 | ?ls mdr:containingDefinitionEntry ?def. 39 | ?def mdr:definitionText ?definition. 40 | 41 | ?arProperty rdfs:subPropertyOf mdr:administeredItemAdministrationRecord. 42 | ?de ?arProperty ?ar. 43 | ?ar mdr:administeredItemIdentifier ?ii. 44 | ?ii mdr:dataIdentifier ?deuuid. 45 | } -------------------------------------------------------------------------------- /web/src/main/resources/rest/resources-dataelement-get-extractions.rq: -------------------------------------------------------------------------------- 1 | PREFIX rdf: 2 | PREFIX owl: 3 | PREFIX xsd: 4 | PREFIX rdfs: 5 | PREFIX schema: 6 | PREFIX skos: 7 | PREFIX mdr: 8 | SELECT DISTINCT ?extractionSpec WHERE { 9 | ?a rdfs:subClassOf mdr:DataElement . 10 | ?a mdr:dataElementAdministrationRecord ?ar. 11 | ?ar mdr:administeredItemIdentifier ?ii. 12 | ?ii mdr:dataIdentifier ?uuid. 13 | 14 | ?a skos:exactMatch* ?b. 15 | ?b mdr:classifiedBy ?csi. 16 | ?csi mdr:containedIn ?cs. 17 | ?cs mdr:classificationSchemeTypeName ?contentModel. 18 | ?csi mdr:classificationSchemeItemTypeName ?specFormat. 19 | ?csi mdr:classificationSchemeItemValue ?extractionSpec. 20 | } -------------------------------------------------------------------------------- /web/src/main/resources/salus.conf: -------------------------------------------------------------------------------- 1 | # User authentication and session control DB Path 2 | authentication.db.folder = ../authentication/authentication 3 | 4 | # Endpoints for SALUS components 5 | saqm.url.lispa = http://localhost:8079/safetyanalysisquerymanager/ 6 | saqm.url.tud = http://localhost:8080/safetyanalysisquerymanager/ 7 | 8 | # Endpoint for de-identification services 9 | # For e2b de-identification, client should append "e2b" to the below url 10 | # For CIM patient summary de-identification, client should append "cim" to the below url 11 | deidentification.url = http://localhost:8080/deidentification/ 12 | 13 | # Endpoint for the terminology server 14 | terminologyserver.url = http://95.9.71.171:8080/terminologyserver 15 | 16 | # URL of the SIL-DS Services 17 | # The clients need to append subURLs to access specific services 18 | # e.g. "patient", "population", "range" 19 | sil.silds.url = http://aca.agfa.net/cscqc/query 20 | 21 | # SAQM specific properties 22 | saqm.term.reasoning.url = http://localhost:8080/athena/entities 23 | 24 | # Are we on LISPA or TUD? 25 | # For the components which will be deployed in Care Zone 26 | ehr.source = TUD 27 | 28 | # Sending e-mails for the E2B reports 29 | mail.smtp.host = smtp.gmail.com 30 | mail.smtp.port = 587 31 | mail.smtp.username = salus.project.eu@gmail.com 32 | mail.smtp.password = Salus2011 -------------------------------------------------------------------------------- /web/src/main/webapp/img/bootstrap/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/web/src/main/webapp/img/bootstrap/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /web/src/main/webapp/img/bootstrap/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/web/src/main/webapp/img/bootstrap/glyphicons-halflings.png -------------------------------------------------------------------------------- /web/src/main/webapp/img/icons/loading-black.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/web/src/main/webapp/img/icons/loading-black.gif -------------------------------------------------------------------------------- /web/src/main/webapp/img/icons/loading-transparent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/web/src/main/webapp/img/icons/loading-transparent.gif -------------------------------------------------------------------------------- /web/src/main/webapp/img/icons/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/web/src/main/webapp/img/icons/logo.png -------------------------------------------------------------------------------- /web/src/main/webapp/img/icons/saluslogoweb-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/web/src/main/webapp/img/icons/saluslogoweb-large.png -------------------------------------------------------------------------------- /web/src/main/webapp/img/login/fp7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/web/src/main/webapp/img/login/fp7.png -------------------------------------------------------------------------------- /web/src/main/webapp/img/login/salus-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/web/src/main/webapp/img/login/salus-name.png -------------------------------------------------------------------------------- /web/src/main/webapp/img/login/salus_100x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/web/src/main/webapp/img/login/salus_100x100.png -------------------------------------------------------------------------------- /web/src/main/webapp/img/login/salus_100x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/web/src/main/webapp/img/login/salus_100x40.png -------------------------------------------------------------------------------- /web/src/main/webapp/img/login/srdc_100x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/web/src/main/webapp/img/login/srdc_100x100.png -------------------------------------------------------------------------------- /web/src/main/webapp/img/login/ss_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/web/src/main/webapp/img/login/ss_cloud.png -------------------------------------------------------------------------------- /web/src/main/webapp/img/login/ss_federated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srdc/semanticMDR/8b61546cf183f09279bee37ed1b8b06f972131e3/web/src/main/webapp/img/login/ss_federated.png -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/administered.item.collection.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'js/models/context/context.model', 'js/models/objectclass/object.class.model', 'js/models/conceptualdomain/conceptual.domain.model', 'js/models/valuedomain/value.domain.model', 'js/models/dec/data.element.concept.model', 'js/models/dataelement/data.element.model'], function(Backbone, ContextModel, ObjectClassModel, ConceptualDomainModel, ValueDomainModel, DataElementConceptModel, DataElementModel) { 2 | var AdministeredItemCollection = Backbone.Collection.extend({ 3 | initialize : function(models, options) { 4 | this.options = options 5 | this.model = options.model; 6 | if (options && options.contextID) { 7 | this.contextID = options.contextID; 8 | } 9 | if (options.searchURL) { 10 | this.searchURL = options.searchURL; 11 | } 12 | }, 13 | url : function() { 14 | if (this.options.url) { 15 | return URL + this.options.url; 16 | } else if (this.model == ObjectClassModel) { 17 | return URL + "context/" + this.contextID + "/oc"; 18 | } else if (this.model == ContextModel) { 19 | return URL + 'repository'; 20 | } else if (this.model == ConceptualDomainModel) { 21 | return URL + "repository/cd"; 22 | } else if (this.model == DataElementConceptModel) { 23 | return URL + "oc/" + this.options.objectClassID + "/dec"; 24 | } else if (this.model == DataElementModel) { 25 | // if some searchURL is given with DataElementModel 26 | if (this.searchURL) { 27 | return URL + this.searchURL; 28 | } else if (this.options.dataElementConceptID) { 29 | return URL + "dec/" + this.options.dataElementConceptID + "/de"; 30 | } else if (this.options.contextID) { 31 | return URL + "context/" + this.options.contextID + "/de"; 32 | } 33 | } else if (this.model == ValueDomainModel) { 34 | return URL + "cd/" + this.options.conceptualDomainID + "/vd"; 35 | } 36 | } 37 | }); 38 | return AdministeredItemCollection; 39 | }); 40 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/administered.item.model.js: -------------------------------------------------------------------------------- 1 | define(['backbone'], function(Backbone) { 2 | var AdministeredItemModel = Backbone.Model.extend({ 3 | defaults : { 4 | id : null, 5 | name : "", 6 | definition : "", 7 | registrationStatus : "", 8 | administrativeStatus : "", 9 | administrativeNote : "", 10 | explanatoryComment : "", 11 | contextID : "" 12 | } 13 | }); 14 | return AdministeredItemModel; 15 | }); 16 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/auth/login.model.js: -------------------------------------------------------------------------------- 1 | define(['backbone'], function(Backbone) { 2 | var LoginModel = Backbone.Model.extend({ 3 | defaults: { 4 | username: "", 5 | password: "", 6 | staySignedIn: false 7 | } 8 | }); 9 | return LoginModel; 10 | }); 11 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/auth/organization.model.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'relational'], function(Backbone) { 2 | var OrganizationModel = Backbone.RelationalModel.extend({ 3 | defaults : { 4 | id : '', 5 | name : '', 6 | address : '', 7 | phone : '', 8 | fax : '', 9 | email : '', 10 | country : '', 11 | registrationTime : '' 12 | } 13 | }); 14 | return OrganizationModel; 15 | }); 16 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/auth/user.model.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'relational', 'js/models/auth/organization.model'], function(Backbone, Relational, OrganizationModel) { 2 | var UserModel = Backbone.RelationalModel.extend({ 3 | url : URL + 'auth', 4 | defaults : { 5 | id : '', 6 | email : '', 7 | password : '', 8 | title : '', 9 | name : '', 10 | surname : '', 11 | accessLevel : '', 12 | affiliation : '', 13 | registrationTime : '' 14 | }, 15 | relations : [{ 16 | type : Backbone.HasOne, 17 | key : 'affiliation', 18 | relatedModel : OrganizationModel 19 | }] 20 | }); 21 | return UserModel; 22 | }); 23 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/classification/extraction.specification.collection.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'js/models/classification/extraction.specification.model'], function(Backbone,ExtractionSpecificationModel) { 2 | var ExtractionSpecificationCollection = Backbone.Collection.extend({ 3 | model : ExtractionSpecificationModel 4 | }); 5 | return ExtractionSpecificationCollection; 6 | }); -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/classification/extraction.specification.model.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'relational'], function(Backbone, Realational) { 2 | var ExtractionSpecificationModel = Backbone.RelationalModel.extend({ 3 | defaults : { 4 | type : '', 5 | value : '', 6 | modelName : '' 7 | }, 8 | url : function() { 9 | return URL + 'de/' + this.get('dataElementID') + '/extractionspecification'; 10 | } 11 | }); 12 | return ExtractionSpecificationModel; 13 | }); -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/classification/mapping.collection.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'js/models/classification/mapping.model'], function(Backbone, MappingModel) { 2 | var MappingCollection = Backbone.Collection.extend({ 3 | model : MappingModel 4 | }); 5 | return MappingCollection; 6 | }); -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/classification/mapping.model.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'relational'], function(Backbone, Realational) { 2 | var MappingModel = Backbone.RelationalModel.extend({ 3 | defaults : { 4 | termSystem : '', 5 | matchType : '', 6 | termUUID : '', 7 | termName : '', 8 | termSystemOID : '' 9 | }, 10 | url : function() { 11 | return URL + 'de/' + this.get('dataElementID') + '/mapping'; 12 | } 13 | }); 14 | return MappingModel; 15 | }); 16 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/conceptualdomain/conceptual.domain.model.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'underscore', 'js/models/administered.item.model.js'], function(Backbone, _, AdministeredItemModel) { 2 | var ConceptualDomainModel = AdministeredItemModel.extend({ 3 | defaults : { 4 | dimensionality : "", 5 | enumerated : "" 6 | }, 7 | 8 | url : function() { 9 | if (this.get('method') == 'get') { 10 | return URL + 'cd/' + this.get('id'); 11 | } else { 12 | return URL + "repository/cd"; 13 | } 14 | } 15 | }); 16 | _.extend(ConceptualDomainModel.prototype.defaults, AdministeredItemModel.prototype.defaults); 17 | return ConceptualDomainModel; 18 | }); 19 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/context/context.model.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'underscore', 'js/models/administered.item.model.js'], function(Backbone, _, AdministeredItemModel) { 2 | var ContextModel = AdministeredItemModel.extend({ 3 | defaults : { 4 | description : "" 5 | }, 6 | urlRoot : URL + 'repository' 7 | }); 8 | _.extend(ContextModel.prototype.defaults, AdministeredItemModel.prototype.defaults); 9 | return ContextModel; 10 | }); 11 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/dataelement/data.element.model.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'underscore', 'js/models/administered.item.model.js', 'js/models/classification/extraction.specification.model', 'js/models/classification/extraction.specification.collection', 'js/models/classification/mapping.model', 'js/models/classification/mapping.collection' ], function(Backbone, _, AdministeredItemModel, ExtractionSpecificationModel, ExtractionSpecificationCollection, MappingModel, MappingCollection) { 2 | var DataElementModel = AdministeredItemModel.extend({ 3 | defaults : { 4 | dataElementConceptID : "", 5 | dataElementConceptName : "", 6 | valueDomainID : "", 7 | valueDomainName : "", 8 | extractionSpecs : [], 9 | mappings : [], 10 | }, 11 | relations : [{ 12 | type : Backbone.HasMany, 13 | relatedModel : ExtractionSpecificationModel, 14 | key : 'extractionSpecs', 15 | collectionType : ExtractionSpecificationCollection 16 | }, 17 | { 18 | type: Backbone.HasMany, 19 | relatedModel: MappingModel, 20 | key : 'mappings', 21 | collectionType: MappingCollection 22 | }], 23 | url : function() { 24 | if (this.isNew()) { 25 | return URL + 'context/' + this.get('contextID') + '/de'; 26 | } else { 27 | return URL + 'de/' + this.get('id'); 28 | } 29 | } 30 | }); 31 | _.extend(DataElementModel.prototype.defaults, AdministeredItemModel.prototype.defaults); 32 | return DataElementModel; 33 | }); 34 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/datatype/data.type.collection.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'js/models/datatype/data.type.model'], function(Backbone, DataTypeModel) { 2 | var DatatypeCollection = Backbone.Collection.extend({ 3 | model : DataTypeModel, 4 | url : URL + "repository/dt" 5 | }); 6 | return DatatypeCollection; 7 | }); 8 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/datatype/data.type.model.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'relational'], function(Backbone) { 2 | var DataTypeModel = Backbone.RelationalModel.extend({ 3 | defaults : {// TODO fix the defaults 4 | datatypeName : 'default', 5 | schemeReference : 'default' 6 | } 7 | }); 8 | return DataTypeModel; 9 | }); 10 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/dec/data.element.concept.model.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'underscore', 'js/models/administered.item.model.js'], function(Backbone, _, AdministeredItemModel) { 2 | var DataElementConceptModel = AdministeredItemModel.extend({ 3 | defaults : { 4 | propertyName : '', 5 | objectClassName : '', 6 | propertyID : '', 7 | objectClassID : '', 8 | objectClassQualifier : '', 9 | propertyQualifier : '', 10 | conceptualDomainID : '', 11 | propertyDefinition : '' 12 | }, 13 | url : function() { 14 | 15 | if (this.get('objectClassID')) { 16 | return URL + 'oc/' + this.get('objectClassID') + '/dec'; 17 | } else { 18 | return URL + 'dec/' + this.get('id'); 19 | } 20 | 21 | } 22 | }); 23 | _.extend(DataElementConceptModel.prototype.defaults, AdministeredItemModel.prototype.defaults); 24 | return DataElementConceptModel; 25 | }); 26 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/objectclass/object.class.model.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'underscore', 'js/models/administered.item.model.js'], function(Backbone, _, AdministeredItemModel) { 2 | var ObjectClassModel = AdministeredItemModel.extend({ 3 | defaults : { 4 | parentConceptID: "" 5 | }, 6 | url : function() { 7 | 8 | if (this.get('contextID')) { 9 | return URL + 'context/' + this.get('contextID') + '/oc'; 10 | } else { 11 | return URL + 'oc/' + this.get('id'); 12 | } 13 | } 14 | }); 15 | _.extend(ObjectClassModel.prototype.defaults, AdministeredItemModel.prototype.defaults); 16 | return ObjectClassModel; 17 | }); 18 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/paginated.collection.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'jquery', 'paginator'], function(Backbone, $, Paginator) { 2 | var PaginatedCollection = Backbone.Paginator.requestPager.extend({ 3 | initialize : function(models, options) { 4 | this.paginator_core.url = options.url; 5 | // || options.offset === 0 is added to condition. Because when offset is 0, it evaluates to 0 6 | if (options.offset || options.offset === 0) { 7 | this.paginator_ui.currentPage = Math.floor(options.offset / this.paginator_ui.perPage); 8 | } 9 | }, 10 | paginator_core : { 11 | dataType : 'json', 12 | }, 13 | getCurrentOffset : function() { 14 | return this.currentPage * this.perPage; 15 | }, 16 | paginator_ui : { 17 | // the lowest page index your API allows to be accessed 18 | firstPage : 0, 19 | 20 | // which page should the paginator start from 21 | // (also, the actual page the paginator is on) 22 | currentPage : 0, 23 | 24 | // how many items per page should be shown 25 | perPage : 10, 26 | 27 | totalPages : 0 28 | }, 29 | server_api : { 30 | 'limit' : function() { 31 | return this.perPage; 32 | }, 33 | 'offset' : function() { 34 | return this.currentPage * this.perPage; 35 | }, 36 | } 37 | }); 38 | return PaginatedCollection; 39 | }); 40 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/paginator/paginator.collection.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'js/models/paginator/paginator.model'], function(Backbone, PaginatorModel) { 2 | var PaginatorCollection = Backbone.Collection.extend({ 3 | model : PaginatorModel 4 | }); 5 | return PaginatorCollection; 6 | }); 7 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/paginator/paginator.model.js: -------------------------------------------------------------------------------- 1 | define(['backbone'], function(Backbone) { 2 | var AdministeredItemModel = Backbone.Model.extend({ 3 | defaults : { 4 | pageNumber : 0 5 | } 6 | }); 7 | return AdministeredItemModel; 8 | }); 9 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/permissiblevalue/permissible.value.collection.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'js/models/permissiblevalue/permissible.value.model'], function(Backbone, PermissibleValueModel) { 2 | var PermissibleValueCollection = Backbone.Collection.extend({ 3 | model : PermissibleValueModel 4 | }); 5 | return PermissibleValueCollection; 6 | }); -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/permissiblevalue/permissible.value.model.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'relational', 'js/models/valuemeaning/value.meaning.model'], function(Backbone, Realational, ValueMeaningModel) { 2 | var PermissibleValueModel = Backbone.RelationalModel.extend({ 3 | defaults : { 4 | valueMeaning : '', 5 | valueItem : '' 6 | }, 7 | relations : [{ 8 | type : Backbone.HasOne, 9 | key : 'valueMeaning', 10 | relatedModel : ValueMeaningModel 11 | }] 12 | }); 13 | return PermissibleValueModel; 14 | }); 15 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/property/property.model.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'underscore', 'js/models/administered.item.model.js'], function(Backbone, _, AdministeredItemModel) { 2 | var PropertyModel = AdministeredItemModel.extend({ 3 | }); 4 | return PropertyModel; 5 | }); 6 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/valuedomain/value.domain.model.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'relational', 'underscore', 'js/models/administered.item.model.js', 'js/models/datatype/data.type.model', 'js/models/permissiblevalue/permissible.value.model', 'js/models/permissiblevalue/permissible.value.collection'], function(Backbone, Relational, _, AdministeredItemModel, DataTypeModel, PermissibleValueModel, PermissibleValueCollection) { 2 | var ValueDomainModel = AdministeredItemModel.extend({ 3 | defaults : { 4 | dataType : '', 5 | conceptualDomainID : '', 6 | permissibleValues : [], 7 | enumerated : '' 8 | }, 9 | relations : [{ 10 | type : Backbone.HasOne, 11 | relatedModel : DataTypeModel, 12 | key : 'dataType' 13 | }, { 14 | type : Backbone.HasMany, 15 | relatedModel : PermissibleValueModel, 16 | key : 'permissibleValues', 17 | collectionType : PermissibleValueCollection 18 | }], 19 | urlRoot : function() { 20 | return URL + 'vd'; 21 | } 22 | }); 23 | _.extend(ValueDomainModel.prototype.defaults, AdministeredItemModel.prototype.defaults); 24 | return ValueDomainModel; 25 | }); 26 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/valuemeaning/value.meaning.collection.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'js/models/valuemeaning/value.meaning.model'], function(Backbone, ValueMeaningModel) { 2 | var ValueMeaningCollection = Backbone.Collection.extend({ 3 | initialize : function(models, options) { 4 | this.options = options; 5 | this.model = ValueMeaningModel; 6 | }, 7 | url : function() { 8 | return URL + "cd/" + this.options.conceptualDomainID + "/vm"; 9 | } 10 | }); 11 | return ValueMeaningCollection; 12 | }); 13 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/models/valuemeaning/value.meaning.model.js: -------------------------------------------------------------------------------- 1 | define(['backbone', 'relational'], function(Backbone, Relational) { 2 | var ValueMeaningModel = Backbone.RelationalModel.extend({ 3 | defaults : { 4 | id : null, 5 | description : "", 6 | conceptualDomainID : "" 7 | }, 8 | url : function() { 9 | return URL + "cd/" + this.get('conceptualDomainID') + "/vm"; 10 | } 11 | }); 12 | return ValueMeaningModel; 13 | }); 14 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/regions/content.region.js: -------------------------------------------------------------------------------- 1 | define(['jquery', 'backbone', 'marionette'], function($, Backbone, Marionette) { 2 | var ContentRegion = Marionette.Region.extend({ 3 | el : '#content' 4 | }); 5 | 6 | ContentRegion.prototype.open = function(view) { 7 | if (isBack) { 8 | this.$el.html(view.el); 9 | var width = this.$el.outerWidth(); 10 | this.$el.css('margin-left', '-100%'); 11 | this.$el.animate({ 12 | marginLeft : 0 13 | }); 14 | } else { 15 | this.$el.html(view.el); 16 | var width = this.$el.outerWidth(); 17 | this.$el.css('margin-left', width) 18 | this.$el.animate({ 19 | marginLeft : 0 20 | }); 21 | } 22 | isBack = false; 23 | } 24 | 25 | return ContentRegion; 26 | }); -------------------------------------------------------------------------------- /web/src/main/webapp/js/views/auth/user.panel.view.js: -------------------------------------------------------------------------------- 1 | define(['jquery', 'backbone', 'marionette', 'text!templates/auth/user.panel.html'], function($, Backbone, Marionette, userPanel) { 2 | var UserPanelView = Marionette.ItemView.extend({ 3 | initialize: function() { 4 | this.locator = this.options.app.getMDRModelLocator(); 5 | this.model = this.locator.getUserModel(); 6 | }, 7 | template : userPanel, 8 | events : { 9 | 'click button' : 'logout' 10 | }, 11 | 12 | logout : function() { 13 | this.model.clear(); 14 | $.ajax({ 15 | type : 'DELETE', 16 | url : URL + 'auth', 17 | success : function () {} 18 | }); 19 | $.removeCookie('SID'); 20 | this.options.app.vent.trigger('auth:logout'); 21 | } 22 | }); 23 | return UserPanelView; 24 | }); 25 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/views/conceptualdomain/conceptual.domain.item.view.js: -------------------------------------------------------------------------------- 1 | define(['jquery', 'backbone', 'marionette', 'bootstrap', 'text!templates/conceptualdomain/conceptual.domain.item.view.template.html', 'js/views/conceptualdomain/conceptual.domain.modal.view'], function($, Backbone, Marionette, BootStrap, ConceptualDomainItemViewTemplate, ConceptualDomainModalView) { 2 | // TODO display edit modal 3 | 4 | var ConceptualDomainItemView = Marionette.ItemView.extend({ 5 | template : ConceptualDomainItemViewTemplate, 6 | tagName : 'tr', 7 | events : { 8 | 'click .icon-edit' : 'editCDClick', 9 | 'dblclick' : 'listValueMeanings', 10 | 'click .icon-chevron-right' : 'listValueMeanings' 11 | }, 12 | modelEvents : { 13 | "change" : 'render' 14 | }, 15 | ui : { 16 | viewValueMeanings : '.icon-chevron-right' 17 | }, 18 | editCDClick : function(e) { 19 | e.stopPropagation(); 20 | // This function is called when an edit button of an conceptual domain is clicked 21 | // model of this view is conceptualDomain to be updated, ModalWindow with this.model rendered 22 | var self = this; 23 | self.options.app.vent.trigger('modalWindow:show', new ConceptualDomainModalView({ 24 | model : self.model, 25 | app : self.options.app 26 | })); 27 | }, 28 | 29 | listValueMeanings : function() { 30 | if(!this.model.get('enumerated')) { 31 | // if not enumerated nothing to open 32 | return; 33 | } 34 | this.options.app.vent.trigger('valueMeaning:list', this.model.get('id')); 35 | }, 36 | 37 | onRender : function() { 38 | if (!this.model.get('enumerated')) { 39 | this.ui.viewValueMeanings.hide(); 40 | } 41 | } 42 | }); 43 | return ConceptualDomainItemView; 44 | }); 45 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/views/context/context.list.item.view.js: -------------------------------------------------------------------------------- 1 | define(['marionette', 'bootbox', 'text!templates/context/context.list.item.template.html', 'js/views/context/context.modal.view'], function(Marionette, bootbox, ContextListItemViewTemplate, ContextModalView) { 2 | // TODO fix events. 3 | // TODO add click event that displays corresponding data menu 4 | var ContextListView = Marionette.ItemView.extend({ 5 | template : ContextListItemViewTemplate, 6 | tagName : 'li', 7 | events : { 8 | 'click a' : 'openContext', 9 | 'click .icon-edit' : 'editContext', 10 | 'click .icon-remove' : 'removeContext', 11 | 'mouseover a' : 'showEditIcon', 12 | 'mouseleave a' : 'hideEditIcon' 13 | }, 14 | 15 | modelEvents : { 16 | "change" : "modelChanged" 17 | }, 18 | 19 | openContext : function(e) { 20 | e.preventDefault(); 21 | $('#contextSection').siblings().html(this.model.get('name') + ' '); 22 | 23 | this.options.app.vent.trigger('menu:browse', this.model.get('id')); 24 | }, 25 | 26 | editContext : function(e) { 27 | e.preventDefault(); 28 | e.stopPropagation(); 29 | var vent = this.options.app.vent; 30 | var self = this; 31 | vent.trigger('modalWindow:show', new ContextModalView({ 32 | model : self.model, 33 | app : self.options.app 34 | })); 35 | }, 36 | 37 | removeContext : function(e) { 38 | e.preventDefault(); 39 | e.stopPropagation(); 40 | var self = this; 41 | var success = function() { 42 | alert('Deleted'); 43 | }; 44 | 45 | bootbox.confirm(self.model.get('name') + ' will be deleted', function(result) { 46 | if (result) { 47 | self.model.destroy({ 48 | async : false, 49 | success : success, 50 | error : function(jxQHR, textStatus) { 51 | if (textStatus.status == 200) { 52 | success(); 53 | } 54 | } 55 | }); 56 | } 57 | }); 58 | }, 59 | 60 | showEditIcon : function() { 61 | this.$("i").show(); 62 | }, 63 | 64 | hideEditIcon : function() { 65 | this.$("i").hide(); 66 | }, 67 | 68 | modelChanged : function() { 69 | this.options.collection.render(); 70 | } 71 | }); 72 | return ContextListView; 73 | }); 74 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/views/context/context.list.view.js: -------------------------------------------------------------------------------- 1 | define(['marionette', 'js/views/context/context.list.item.view'], function(Marionette, ContextListItemView) { 2 | var ContextListView = Marionette.CollectionView.extend({ 3 | //tagName : 'ul', 4 | //className : 'dropdown-menu', 5 | initialize : function() { 6 | this.collection = this.options.app.getMDRModelLocator().getContextCollection(); 7 | }, 8 | itemView : ContextListItemView, 9 | buildItemView : function(item, ItemViewType, itemViewOptions) { 10 | var options = { 11 | model : item, 12 | app : this.options.app, 13 | collection : this 14 | }; 15 | var view = new ItemViewType(options); 16 | return view; 17 | } 18 | }); 19 | return ContextListView; 20 | }); 21 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/views/dataelement/data.element.item.view.js: -------------------------------------------------------------------------------- 1 | define(['jquery', 'backbone', 'marionette', 'bootstrap', 'text!templates/dataelement/data.element.item.view.template.html', 'js/views/dataelement/data.element.modal.view'], function($, Backbone, Marionette, BootStrap, DataElementItemViewTemplate, DataElementModalView) { 2 | // TODO display edit modal 3 | 4 | var DataElementItemView = Marionette.ItemView.extend({ 5 | template : DataElementItemViewTemplate, 6 | tagName : "tr", 7 | events : { 8 | 'click .icon-edit' : 'edit', 9 | 'click .icon-chevron-right' : 'openDetailed' 10 | }, 11 | modelEvents : { 12 | "change" : 'render' 13 | }, 14 | edit : function() { 15 | this.options.app.vent.trigger('modalWindow:show', new DataElementModalView({ 16 | model : this.model, 17 | dataElementConceptID : this.options.dataElementConceptID, 18 | app : this.options.app 19 | })); 20 | }, 21 | openDetailed : function() { 22 | this.options.app.vent.trigger('dataElement:detailed', this.model.get('id')); 23 | } 24 | }); 25 | return DataElementItemView; 26 | }); 27 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/views/dec/data.element.concept.item.view.js: -------------------------------------------------------------------------------- 1 | define(['jquery', 'backbone', 'marionette', 'bootstrap', 'text!templates/dec/data.element.concept.item.view.template.html', 'js/views/dec/data.element.concept.modal.view', 'js/views/dataelement/data.element.modal.view'], function($, Backbone, Marionette, BootStrap, DataElementConceptItemViewTemplate, DataElementConceptModalView, DataElementModalView) { 2 | var DataElementConceptItemView = Marionette.ItemView.extend({ 3 | template : DataElementConceptItemViewTemplate, 4 | tagName : "tr", 5 | events : { 6 | 'click .icon-edit' : 'editDECClick', 7 | 'dblclick' : 'showDetailedDataElement', 8 | 'click .icon-chevron-right' : 'showDetailedDataElement' 9 | }, 10 | modelEvents : { 11 | "change" : 'render' 12 | }, 13 | editDECClick : function(e) { 14 | e.stopPropagation(); 15 | // This function is called when an edit button of an data element concept is clicked 16 | // model of this view is DataElementConcept to be updated, ModalWindow with this.model rendered 17 | var self = this; 18 | self.options.app.vent.trigger('modalWindow:show', new DataElementConceptModalView({ 19 | model : self.model, 20 | app : self.options.app 21 | })); 22 | }, 23 | showDetailedDataElement : function() { 24 | var self = this; 25 | var locator = this.options.app.getMDRModelLocator(); 26 | var de = locator.getDataElementCollectionOfDEC(this.model.get("id")).at(0); 27 | if (de) { 28 | this.options.app.vent.trigger('dataElement:detailed', de.get("id")); 29 | } else { 30 | alert('No Data Element to detail, first add one'); 31 | this.options.app.vent.trigger('modalWindow:show', new DataElementModalView({ 32 | conceptualDomainID : self.model.get('conceptualDomainID'), 33 | dataElementConceptID : self.model.get('id'), 34 | app : self.options.app 35 | })); 36 | } 37 | } 38 | }); 39 | return DataElementConceptItemView; 40 | }); 41 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/views/objectclass/object.class.item.view.js: -------------------------------------------------------------------------------- 1 | define(['jquery', 2 | 'backbone', 3 | 'marionette', 4 | 'bootstrap', 5 | 'text!templates/objectclass/object.class.item.view.template.html', 6 | 'js/views/objectclass/object.class.modal.view'], 7 | function($, Backbone, Marionette, BootStrap, ObjectClassItemViewTemplate, ObjectClassModalView) { 8 | // TODO display edit modal 9 | 10 | var ObjectClassItemView = Marionette.ItemView.extend({ 11 | template : ObjectClassItemViewTemplate, 12 | tagName : "tr", 13 | events : { 14 | 'click .icon-edit' : 'editOCClick', 15 | 'dblclick' : 'listProperties', 16 | 'click .icon-chevron-right' : 'listProperties' 17 | }, 18 | modelEvents : { 19 | 'change' : 'render' 20 | }, 21 | 22 | editOCClick : function(e) { 23 | e.stopPropagation(); 24 | // This function is called when an edit button of an object class is clicked 25 | // model of this view is ObjectClass to be updated, ModalWindow with this.model rendered 26 | var self = this; 27 | self.options.app.vent.trigger('modalWindow:show', new ObjectClassModalView({ 28 | model : self.model, 29 | app : self.options.app 30 | })); 31 | }, 32 | 33 | listProperties : function() { 34 | this.options.app.vent.trigger('dataElementConcept:list', this.model.get('id'), 0); 35 | } 36 | }); 37 | return ObjectClassItemView; 38 | }); 39 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/views/paginator/paginator.item.view.js: -------------------------------------------------------------------------------- 1 | define(['jquery', 'backbone', 'marionette', 'bootstrap', 'text!templates/paginator/paginator.item.view.template.html'], function($, Backbone, Marionette, BootStrap, PaginatorItemViewTemplate) { 2 | var PaginatorItemView = Marionette.ItemView.extend({ 3 | template : PaginatorItemViewTemplate, 4 | tagName : "li", 5 | events : { 6 | 'click a' : 'goToPage' 7 | }, 8 | goToPage : function(e) { 9 | e.preventDefault(); 10 | if (this.options.paginatedCollection.currentPage != this.model.get('pageNumber') - 1) { 11 | var self = this; 12 | document.body.style.cursor = 'wait'; 13 | this.options.paginatedCollection.goTo(this.model.get('pageNumber') - 1, { 14 | success : function() { 15 | self.options.paginator.navigateHistory(self.options.paginatedCollection.server_api.offset()); 16 | self.options.paginator.setButtonEffects(); 17 | document.body.style.cursor = 'default'; 18 | } 19 | }); 20 | } 21 | } 22 | }); 23 | return PaginatorItemView; 24 | }); 25 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/views/permissiblevalue/permissible.value.composite.view.js: -------------------------------------------------------------------------------- 1 | define(['marionette', 'js/views/permissiblevalue/permissible.value.item.view', 'text!templates/permissiblevalue/permissible.value.template.html'], function(Marionette, PermissibleValueItemTemplate, PermissibleValueTemplate) { 2 | var PermissibleValueCompositeView = Marionette.CompositeView.extend({ 3 | template : PermissibleValueTemplate, 4 | itemView : PermissibleValueItemTemplate, 5 | itemViewContainer : 'tbody', 6 | buildItemView : function(item, ItemViewType, itemViewOptions) { 7 | var options = { 8 | model : item, 9 | vent : this.options.vent, 10 | collection : this 11 | }; 12 | var view = new ItemViewType(options); 13 | return view; 14 | }, 15 | fetchForm : function() { 16 | this.children.each(function(view) { 17 | view.setModel(); 18 | }); 19 | return this.collection; 20 | } 21 | }); 22 | return PermissibleValueCompositeView; 23 | }); 24 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/views/permissiblevalue/permissible.value.item.view.js: -------------------------------------------------------------------------------- 1 | define(['jquery', 'backbone', 'marionette', 'bootstrap', 'text!templates/permissiblevalue/permissible.value.item.template.html'], function($, Backbone, Marionette, BootStrap, PermissibleValueItemTemplate) { 2 | var PermissibleValueItemView = Marionette.ItemView.extend({ 3 | template : PermissibleValueItemTemplate, 4 | tagName : 'tr', 5 | ui : { 6 | value : '#value' 7 | }, 8 | setModel : function() { 9 | this.model.set('valueItem', this.ui.value.val()); 10 | } 11 | }); 12 | return PermissibleValueItemView; 13 | }); 14 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/views/query/query.result.view.js: -------------------------------------------------------------------------------- 1 | define(['jquery', 'backbone', 'marionette', 'bootstrap', 'text!templates/query/query.result.view.template.html'], function($, Backbone, Marionette, BootStrap, QueryResultViewTemplate) { 2 | var QueryResultItemView = Marionette.ItemView.extend({ 3 | template : QueryResultViewTemplate, 4 | onRender: function() { 5 | this.$el.find("#qresult")[0].innerHTML = (this.options.qresult) 6 | }, 7 | modelEvents : { 8 | "change" : 'render' 9 | }, 10 | events : { 11 | 'click button' : 'newquery' 12 | }, 13 | newquery : function() { 14 | this.options.app.vent.trigger('menu:query'); 15 | }, 16 | }); 17 | return QueryResultItemView; 18 | }); 19 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/views/search/search.result.composite.view.js: -------------------------------------------------------------------------------- 1 | define(['jquery', 'backbone', 'marionette', 'bootstrap', 'js/views/search/search.result.item.view', 'text!templates/search/search.result.template.html', 'js/views/paginator/paginator.composite.view'], function($, Backbone, Marionette, BootStrap, SearchResultItemView, SearchResultTemplate, PaginatorCompositeView) { 2 | var SearchResultCompositeView = Marionette.CompositeView.extend({ 3 | template : SearchResultTemplate, 4 | itemView : SearchResultItemView, 5 | itemViewContainer : 'tbody', 6 | initialize : function() { 7 | this.collection = this.options.app.getMDRModelLocator().searchDataElement(this.options.keyword, this.options.offset); 8 | 9 | this.paginator = new PaginatorCompositeView({ 10 | paginatedCollection : this.collection, 11 | layer : this 12 | }); 13 | this.paginator.render(); 14 | }, 15 | paginator : null, 16 | ui : { 17 | paginatorBar : '#paginatorBar' 18 | }, 19 | buildItemView : function(item, ItemViewType, itemViewOptions) { 20 | var self = this; 21 | var options = { 22 | model : item, 23 | app : self.options.app, 24 | }; 25 | var view = new ItemViewType(options); 26 | return view; 27 | }, 28 | onRender : function() { 29 | if (this.collection.length == 0) { 30 | this.$('.alert').show(); 31 | this.$('.table').hide(); 32 | } 33 | if (this.collection.totalPages > 1) { 34 | this.ui.paginatorBar.append(this.paginator.el); 35 | this.paginator.delegateEvents(); 36 | } 37 | }, 38 | navigateHistory : function(offset) { 39 | var keyword = this.options.keyword; 40 | Backbone.history.navigate('repository/search/' + keyword + '/' + offset); 41 | } 42 | }); 43 | return SearchResultCompositeView; 44 | }); 45 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/views/search/search.result.item.view.js: -------------------------------------------------------------------------------- 1 | define(['jquery', 'backbone', 'marionette', 'bootstrap', 'text!templates/search/search.result.item.view.template.html', 'js/views/dataelement/data.element.modal.view'], function($, Backbone, Marionette, BootStrap, SearchResultItemViewTemplate, DataElementModalView) { 2 | // TODO display edit modal 3 | 4 | var SearchResultItemView = Marionette.ItemView.extend({ 5 | template : SearchResultItemViewTemplate, 6 | tagName : "tr", 7 | initialize : function() { 8 | // contextName is set so that can be displayed on search result 9 | var modelLocator = this.options.app.getMDRModelLocator(); 10 | var contextList = modelLocator.getContextCollection(); 11 | var contextID = this.model.get('contextID'); 12 | this.model.set('contextName', contextList.get(contextID).get('name')); 13 | }, 14 | modelEvents : { 15 | "change" : 'render' 16 | }, 17 | events : { 18 | 'click .icon-chevron-right' : 'openDetailed', 19 | 'dblclick' : 'openDetailed' 20 | }, 21 | openDetailed : function() { 22 | this.options.app.vent.trigger('dataElement:detailed', this.model.get('id')); 23 | } 24 | }); 25 | return SearchResultItemView; 26 | }); 27 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/views/search/search.view.js: -------------------------------------------------------------------------------- 1 | define(['jquery', 'backbone', 'marionette', 'text!templates/search/search.template.html', 'js/models/administered.item.collection', 'js/models/dataelement/data.element.model'], function($, Backbone, Marionette, SearchTemplate, AdministeredItemCollection, DataElementModel) { 2 | var SearchView = Marionette.ItemView.extend({ 3 | initialize : function() { 4 | this.options.app.vent.trigger('breadcrumb:change', { 5 | 'location' : 'search' 6 | }); 7 | }, 8 | template : SearchTemplate, 9 | events : { 10 | 'click button' : 'search', 11 | 'keyup input' : 'keyup' 12 | }, 13 | search : function() { 14 | var keyword = this.$('input').val(); 15 | var app = this.options.app; 16 | $('#loadingOverlay').fadeIn({ 17 | complete : function() { 18 | app.vent.trigger('dataElement:search', keyword, 0); 19 | } 20 | }); 21 | 22 | }, 23 | keyup : function(e) { 24 | // if key is the enter button 25 | if (e.keyCode == 13) { 26 | this.$('button').click(); 27 | } 28 | } 29 | }); 30 | 31 | return SearchView; 32 | }); 33 | -------------------------------------------------------------------------------- /web/src/main/webapp/js/views/valuemeaning/value.meaning.item.view.js: -------------------------------------------------------------------------------- 1 | define(['jquery', 'backbone', 'marionette', 'bootstrap', 'text!templates/valuemeaning/value.meaning.item.view.template.html'], function($, Backbone, Marionette, BootStrap, ValueMeaningItemViewTemplate) { 2 | var ValueMeaningtItemView = Marionette.ItemView.extend({ 3 | template : ValueMeaningItemViewTemplate, 4 | tagName : 'tr', 5 | ui : { 6 | valueDomainID : '.valueDomainID', 7 | valueDomainDescription : '.valueDomainDescription' 8 | }, 9 | events : { 10 | 'click .icon-remove' : 'deleteValueDomain' 11 | }, 12 | deleteValueDomain : function() { 13 | this.model.destroy({ 14 | wait : true, 15 | dataType : 'text', 16 | headers : { 17 | 'Accept' : 'application/json', 18 | 'Content-Type' : 'application/json' 19 | }, 20 | data : JSON.stringify(this.model) 21 | }); 22 | } 23 | }); 24 | return ValueMeaningtItemView; 25 | }); 26 | -------------------------------------------------------------------------------- /web/src/main/webapp/templates/auth/user.panel.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/main/webapp/templates/breadcrumb/breadcrumb.template.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/main/webapp/templates/conceptualdomain/conceptual.domain.item.view.template.html: -------------------------------------------------------------------------------- 1 | 2 | <%= name %> 3 | <%= definition %> 4 | <%= dimensionality %> 5 | <%= enumerated %> 6 | 7 | 8 | -------------------------------------------------------------------------------- /web/src/main/webapp/templates/conceptualdomain/conceptual.domain.template.html: -------------------------------------------------------------------------------- 1 |
2 | 5 |
6 |
7 |
No Conceptual Domains Added Yet
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
NameDefinitionDimensionalityEnumerated
21 |
22 |
23 | 24 | -------------------------------------------------------------------------------- /web/src/main/webapp/templates/context/context.list.item.template.html: -------------------------------------------------------------------------------- 1 | <%= name %> -------------------------------------------------------------------------------- /web/src/main/webapp/templates/dataelement/data.element.item.view.template.html: -------------------------------------------------------------------------------- 1 | 2 | <%= name %> 3 | <%= definition %> 4 | -------------------------------------------------------------------------------- /web/src/main/webapp/templates/dataelement/data.element.serialization.modal.template.html: -------------------------------------------------------------------------------- 1 | 47 | -------------------------------------------------------------------------------- /web/src/main/webapp/templates/dataelement/data.element.template.html: -------------------------------------------------------------------------------- 1 |
2 | 5 |
6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
NameDefinition
18 |
19 |
-------------------------------------------------------------------------------- /web/src/main/webapp/templates/dataelement/specification.modal.template.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/main/webapp/templates/dec/data.element.concept.item.view.template.html: -------------------------------------------------------------------------------- 1 | 2 | <%= name %> 3 | <%= definition %> 4 | <%= propertyName %> 5 | -------------------------------------------------------------------------------- /web/src/main/webapp/templates/dec/data.element.concept.template.html: -------------------------------------------------------------------------------- 1 |
2 | 5 |
6 |

7 |
8 |
No Data Element Concepts Added Yet
9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
NameDefinitionProperty Name
21 |
22 |
23 | 24 | -------------------------------------------------------------------------------- /web/src/main/webapp/templates/objectclass/object.class.item.view.template.html: -------------------------------------------------------------------------------- 1 | 2 | <%= name %> 3 | <%= definition %> 4 | 5 | -------------------------------------------------------------------------------- /web/src/main/webapp/templates/objectclass/object.class.template.html: -------------------------------------------------------------------------------- 1 |
2 | 5 |
6 |

7 |
8 |
No Object Classes Added Yet
9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
NameDefinition
20 |
21 |
22 | -------------------------------------------------------------------------------- /web/src/main/webapp/templates/paginator/paginator.item.view.template.html: -------------------------------------------------------------------------------- 1 | <%= pageNumber %> -------------------------------------------------------------------------------- /web/src/main/webapp/templates/paginator/paginator.template.html: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /web/src/main/webapp/templates/permissiblevalue/permissible.value.item.template.html: -------------------------------------------------------------------------------- 1 | <%= valueMeaning.id %> 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /web/src/main/webapp/templates/permissiblevalue/permissible.value.template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Value MeaningValue
-------------------------------------------------------------------------------- /web/src/main/webapp/templates/property/property.item.view.template.html: -------------------------------------------------------------------------------- 1 | <%= name %> 2 | <%= definition %> 3 | <%= registrationStatus %> 4 | <%= administrativeStatus %> 5 | <%= administrativeNote %> 6 | <%= explanatoryComment %> -------------------------------------------------------------------------------- /web/src/main/webapp/templates/property/property.modal.template.html: -------------------------------------------------------------------------------- 1 |
2 | 48 | 56 |
-------------------------------------------------------------------------------- /web/src/main/webapp/templates/property/property.template.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
NameDefinitionRegistration StatusAdministrative StatusAdministrative NoteExplanatory Comment
15 |
16 | 17 | 20 | -------------------------------------------------------------------------------- /web/src/main/webapp/templates/query/query.result.view.template.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | 8 |
9 |
-------------------------------------------------------------------------------- /web/src/main/webapp/templates/query/query.template.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 |
5 | Result Format: 6 | 13 |
14 |
15 |
16 | 20 |
21 |
-------------------------------------------------------------------------------- /web/src/main/webapp/templates/search/search.result.item.view.template.html: -------------------------------------------------------------------------------- 1 | <%= name %> 2 | <%= definition %> 3 | <%= contextName %> 4 | 5 | -------------------------------------------------------------------------------- /web/src/main/webapp/templates/search/search.result.template.html: -------------------------------------------------------------------------------- 1 |
2 |
No Data Elements Found
3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
NameDefinitionContext
13 |
14 |
-------------------------------------------------------------------------------- /web/src/main/webapp/templates/search/search.template.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 6 |
7 | 8 | Advanced Search 9 | 10 |
11 | 14 | 17 | 20 |
-------------------------------------------------------------------------------- /web/src/main/webapp/templates/valuemeaning/value.meaning.item.view.template.html: -------------------------------------------------------------------------------- 1 | <%= id %> 2 | <%= description %> 3 | 4 | -------------------------------------------------------------------------------- /web/src/main/webapp/templates/valuemeaning/value.meaning.template.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 14 | 17 | 21 | 22 | 23 | 24 |
IDDescription
12 | 13 | 15 | 16 | 18 |
25 |
26 |
27 | --------------------------------------------------------------------------------