Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

When discarded or rejected the solr document of the qa event is deleted.




Processing the decision

Every decision been made from this panel (about qa events) is reported on the outside through an http post call. It is directed to all the receivers configured at the configuration key: qaevents. + source + .acknowledge-url

...

{
"
eventId":"a542103b9dda29afc320fb36116fc761"
"status":"accepted/|discarded/rejected"
}|rejected"
}


On the Repository side what is performed is encapsulated in a JAVA class specialized to deal with a specific TOPIC. The /config/spring/api/qaevents.xml spring configuration file map each TOPIC to a specific implementation

<bean id="org.dspace.qaevent.service.QAEventActionService" class="org.dspace.qaevent.service.impl.QAEventActionServiceImpl">
        <property name="topicsToActions">
            <map>
                <!--The key are the TOPIC, the value must be a valid implementation of the 
                    org.dspace.qaevent.QAEventAction interface -->
               <entry value-ref="ProjectLinkedEntityAction">
                  <key><util:constant static-field="org.dspace.qaevent.QANotifyPatterns.TOPIC_ENRICH_MORE_PROJECT"/></key>
               </entry>
               <entry value-ref="ProjectLinkedEntityAction">
                  <key><util:constant static-field="org.dspace.qaevent.QANotifyPatterns.TOPIC_ENRICH_MISSING_PROJECT"/></key>
               </entry>
               <entry value-ref="AbstractMetadataAction">
                  <key><util:constant static-field="org.dspace.qaevent.QANotifyPatterns.TOPIC_ENRICH_MISSING_ABSTRACT"/></key>
               </entry>
               <entry value-ref="AddReviewMetadataAction">
                  <key><util:constant static-field="org.dspace.qaevent.QANotifyPatterns.TOPIC_ENRICH_MORE_REVIEW"/></key>
               </entry>
               <entry value-ref="AddEndorsedMetadataAction">
                  <key><util:constant static-field="org.dspace.qaevent.QANotifyPatterns.TOPIC_ENRICH_MORE_ENDORSEMENT"/></key>
               </entry>
               <entry value-ref="PIDMetadataAction">
                  <key><util:constant static-field="org.dspace.qaevent.QANotifyPatterns.TOPIC_ENRICH_MORE_PID"/></key>
               </entry>
               <entry value-ref="PIDMetadataAction">
                  <key><util:constant static-field="org.dspace.qaevent.QANotifyPatterns.TOPIC_ENRICH_MISSING_PID"/></key>
               </entry>
               <entry value-ref="AddLinkMetadataAction">
                  <key><util:constant static-field="org.dspace.qaevent.QANotifyPatterns.TOPIC_ENRICH_MORE_LINK"/></key>
               </entry>
            </map>   
        </property>
     </bean>


Each implementation allows to configure additional parameters to deal with the event as needed, ranging from the simple definition of the metadata to use to save the information as in the case of the Abstract related events

     <bean id="AbstractMetadataAction" class="org.dspace.qaevent.action.QAOpenaireSimpleMetadataAction">
        <property name="metadata" value="dc.description.abstract" />
     </bean>

to a dynamic mapping used for SUBJECT and PID related events

     <!-- Add a new identifier to the given item, using the defined types mapping -->
     <bean id="PIDMetadataAction" class="org.dspace.qaevent.action.QAOpenaireMetadataMapAction">
         <property name="types">
             <map>
    <!--The key are the type of identifier (or subject) reported in the message, the value is the metadata in 
        the linked entity where the information should be stored -->
               <entry key="default" value="dc.identifier.other" />
               <!-- <entry key="doi" value="dc.identifier.doi" />
               <entry key="pmid" value="dc.identifier.pmid" /> -->
             </map>
         </property>    
     </bean>

to the definition of the metadata used in linked entity for Project related events

     <!-- This action bind the publication to the project, otherwise if the project has not been specified, 
      create a new project with the available data and then bind it to the publication -->
     <bean id="ProjectLinkedEntityAction" class="org.dspace.qaevent.action.QAEntityOpenaireMetadataAction">
        <!-- which metadata will hold the relation between the publication and the project -->
        <property name="relation" value="isPublicationOfProject" />
        <!-- the type of local entity used to store the project details -->
        <property name="entityType" value="Project" />
        <property name="entityMetadata">
            <map>
    <!--The key are the json path of qa message, the value is the metadata in 
        the linked entity where the information should be stored -->
               <!--  <entry key="acronym" value="" /> -->
               <entry key="code" value="dc.identifier" />
               <!--  <entry key="funder" value="oairecerif.funder" /> -->
               <entry key="title" value="dc.title" />
               <!--  <entry key="fundingProgram" value="oairecerif.fundingProgram" /> -->
               <!--  <entry key="openaireId" value="oairecerif.funding.identifier" /> -->
            </map>
        </property>    
   </bean>


Quality Assurance Security

...