extensions/net.sf.basedb.reggie/trunk/src/net/sf/basedb/reggie/activity/ActivityDef.java

Code
Comments
Other
Rev Date Author Line
5384 26 Apr 19 nicklas 1 package net.sf.basedb.reggie.activity;
5384 26 Apr 19 nicklas 2
5384 26 Apr 19 nicklas 3 import java.io.Serializable;
5384 26 Apr 19 nicklas 4
5421 13 May 19 nicklas 5 import net.sf.basedb.core.DbControl;
5384 26 Apr 19 nicklas 6 import net.sf.basedb.reggie.Reggie;
5384 26 Apr 19 nicklas 7
5384 26 Apr 19 nicklas 8 /**
5384 26 Apr 19 nicklas 9   Definition of activities. Typically, one of the pre-defined 
5384 26 Apr 19 nicklas 10   instances should be used. Note that serialization as part of the
5384 26 Apr 19 nicklas 11   activity log will bring back identical objects as separate instances
5384 26 Apr 19 nicklas 12   so it is not recommended that == is used for comparison. Compare
5384 26 Apr 19 nicklas 13   values returned by {@link #getId()} instead.
5384 26 Apr 19 nicklas 14   
5422 13 May 19 nicklas 15   To create actual activities, use {@link #merge(DbControl, int)} or {@link #merge(DbControl, String, int)}
5422 13 May 19 nicklas 16   to create activities that can be merged, or {@link #create(DbControl, int)}/{@link #create(DbControl, String, int)}
5384 26 Apr 19 nicklas 17   to create activities that can't be merged.
5384 26 Apr 19 nicklas 18   
5422 13 May 19 nicklas 19   Note that the activitets that are created are tied to the transaction
5422 13 May 19 nicklas 20   handled by the DbControl instance. They will be automatically registered
5422 13 May 19 nicklas 21   in the activity log after a successful commit only (unless the activity log is 
5422 13 May 19 nicklas 22   in debug mode, see {@link ActivityLog#debugMode()}.
5422 13 May 19 nicklas 23   
5384 26 Apr 19 nicklas 24   @author nicklas
5384 26 Apr 19 nicklas 25   @since 4.23
5384 26 Apr 19 nicklas 26 */
5384 26 Apr 19 nicklas 27 public class ActivityDef 
5384 26 Apr 19 nicklas 28   implements Serializable
5384 26 Apr 19 nicklas 29 {
5384 26 Apr 19 nicklas 30
5384 26 Apr 19 nicklas 31   private static final long serialVersionUID = 2629263037178007239L;
5384 26 Apr 19 nicklas 32
5384 26 Apr 19 nicklas 33   public static String getMessage(int count, String one, String many)
5384 26 Apr 19 nicklas 34   {
5384 26 Apr 19 nicklas 35     return (count == 1 ? one : many).replace("{COUNT}", Integer.toString(count));
5384 26 Apr 19 nicklas 36   }
5384 26 Apr 19 nicklas 37   
5384 26 Apr 19 nicklas 38   /**
5384 26 Apr 19 nicklas 39     Reggie was updated. Use {@link #merge(String, int)} with {@link Reggie#VERSION} as name.
5384 26 Apr 19 nicklas 40   */
5384 26 Apr 19 nicklas 41   public static final ActivityDef UPDATED_REGGIE = new ActivityDef("updated-reggie", "Reggie was updated to {NAME}");
5384 26 Apr 19 nicklas 42
5384 26 Apr 19 nicklas 43   /**
5384 26 Apr 19 nicklas 44     Specimen tubes was registered. Use {@link #merge(int)}.
5384 26 Apr 19 nicklas 45   */
5384 26 Apr 19 nicklas 46   public static final ActivityDef REGISTERED_SPECIMEN = new ActivityDef("registered-specimen", "Registered 1 specimen tube", "Registered {COUNT} specimen tubes");
5384 26 Apr 19 nicklas 47   /**
5384 26 Apr 19 nicklas 48     Specimen tubes was partitioned. Use {@link #merge(int)}.
5384 26 Apr 19 nicklas 49   */
5384 26 Apr 19 nicklas 50   public static final ActivityDef PARTITIONED_SPECIMEN = new ActivityDef("partioned-specimen", "Partitioned 1 specimen item", "Partitioned {COUNT} specimen items");
5384 26 Apr 19 nicklas 51
5384 26 Apr 19 nicklas 52   /**
5384 26 Apr 19 nicklas 53     Storage boxes was created. Use {@link #merge(int)}.
5384 26 Apr 19 nicklas 54   */
5384 26 Apr 19 nicklas 55   public static final ActivityDef CREATED_STORAGEBOX = new ActivityDef("created-storagebox", "Created 1 storage box", "Created {COUNT} storage boxes");
5384 26 Apr 19 nicklas 56   /**
5384 26 Apr 19 nicklas 57     Pause boxes was created. Use {@link #merge(int)}.
5384 26 Apr 19 nicklas 58   */
5384 26 Apr 19 nicklas 59   public static final ActivityDef CREATED_PAUSEBOX = new ActivityDef("created-pausebox", "Created 1 pause box", "Created {COUNT} pause boxes");
5384 26 Apr 19 nicklas 60   
5384 26 Apr 19 nicklas 61 //  public static final ActivityDef FLAGGED_RNA = new ActivityDef("flagged-rna", "Flagged 1 RNA item", "Flagged {COUNT} RNA items");
5384 26 Apr 19 nicklas 62 //  public static final ActivityDef FLAGGED_DNA = new ActivityDef("flagged-dna", "Flagged 1 DNA item", "Flagged {COUNT} DNA items");
5384 26 Apr 19 nicklas 63   
5384 26 Apr 19 nicklas 64   /**
5384 26 Apr 19 nicklas 65     RNA was normalized. Use {@link #merge(int)}.
5384 26 Apr 19 nicklas 66   */
5384 26 Apr 19 nicklas 67   public static final ActivityDef NORMALIZED_RNA = new ActivityDef("normalized-rna", "Normalized 1 RNA item", "Normalized {COUNT} RNA items");
5384 26 Apr 19 nicklas 68   /**
5384 26 Apr 19 nicklas 69     DNA was normalized. Use {@link #merge(int)}.
5384 26 Apr 19 nicklas 70   */
5384 26 Apr 19 nicklas 71   public static final ActivityDef NORMALIZED_DNA = new ActivityDef("normalized-dna", "Normalized 1 DNA item", "Normalized {COUNT} DNA items");
5384 26 Apr 19 nicklas 72
5384 26 Apr 19 nicklas 73   /**
5384 26 Apr 19 nicklas 74     RNA/DNA was extracted. Use {@link #merge(int)} or {@link #create(int)}.
5384 26 Apr 19 nicklas 75   */
5384 26 Apr 19 nicklas 76   public static final ActivityDef EXTRACTED_XNA = new ActivityDef("extracted-xna", "Extracted DNA/RNA from 1 sample", "Extracted DNA/RNA from {COUNT} samples");
5384 26 Apr 19 nicklas 77   /**
5384 26 Apr 19 nicklas 78     RNA aliquots was placed on Caliper or BA plate. Use {@link #merge(String, int)} with name of plate.
5384 26 Apr 19 nicklas 79   */
5384 26 Apr 19 nicklas 80   public static final ActivityDef PLACED_RNAQC = new ActivityDef("placed-rnaqc", "Added 1 RNA aliquot to {NAME}", "Added {COUNT} RNA aliquots to {NAME}");
5384 26 Apr 19 nicklas 81   /**
5384 26 Apr 19 nicklas 82     RQS was measured for Caliper plate. Use {@link #merge(String, int)} with name of plate.
5384 26 Apr 19 nicklas 83   */
5384 26 Apr 19 nicklas 84   public static final ActivityDef COMPLETED_CALIPER_RNAQC = new ActivityDef("completed-caliper-rnaqc", "RQS for {COUNT} RNA on {NAME}");
5384 26 Apr 19 nicklas 85   /**
5384 26 Apr 19 nicklas 86     RIN was measured for BA plate. Use {@link #merge(String, int)} with name of plate.
5384 26 Apr 19 nicklas 87   */
5384 26 Apr 19 nicklas 88   public static final ActivityDef COMPLETED_BA_RNAQC = new ActivityDef("completed-ba-rnaqc", "RIN for {COUNT} RNA on {NAME}");
5384 26 Apr 19 nicklas 89   
5384 26 Apr 19 nicklas 90   /**
5384 26 Apr 19 nicklas 91     Histology samples was embedded in paraffin blocks. Use {@link #merge(int)}.
5384 26 Apr 19 nicklas 92   */
5384 26 Apr 19 nicklas 93   public static final ActivityDef EMBEDDED_SAMPLES = new ActivityDef("embedded-samples", "Embedded 1 sample in paraffin block", "Embedded {COUNT} samples in paraffin blocks");
5384 26 Apr 19 nicklas 94   /**
5384 26 Apr 19 nicklas 95     HE glass was stained. Use {@link #merge(int)}.
5384 26 Apr 19 nicklas 96   */
5384 26 Apr 19 nicklas 97   public static final ActivityDef STAINED_HEGLASS = new ActivityDef("stained-heglass", "Stained 1 HE glass slide", "Stained {COUNT} HE glass slides");
5384 26 Apr 19 nicklas 98   /**
5384 26 Apr 19 nicklas 99     Histology samples was scored. Use {@link #merge(int)}.
5384 26 Apr 19 nicklas 100   */
5384 26 Apr 19 nicklas 101   public static final ActivityDef SCORED_HISTOLOGY = new ActivityDef("scored-histology", "Scored 1 histology item", "Scored {COUNT} histology items");
5384 26 Apr 19 nicklas 102
5384 26 Apr 19 nicklas 103   /**
5384 26 Apr 19 nicklas 104     A new mRNA plate was created. Use {@link #create(String, int)} with name of plate.
5384 26 Apr 19 nicklas 105   */
5384 26 Apr 19 nicklas 106   public static final ActivityDef DESIGNED_MRNAPLATE = new ActivityDef("designed-mrna", "Designed {NAME} with 1 RNA item", "Designed {NAME} with {COUNT} RNA items");
5384 26 Apr 19 nicklas 107 //  public static final ActivityDef RNA_DILUTION = new ActivityDef("rna-dilution", "RNA dilution for {NAME} completed");
5417 10 May 19 nicklas 108
5417 10 May 19 nicklas 109   /**
5417 10 May 19 nicklas 110     A new MIPs plate was created. Use {@link #create(String, int)} with name of plate.
5417 10 May 19 nicklas 111   */
5417 10 May 19 nicklas 112   public static final ActivityDef DESIGNED_MIPSPLATE = new ActivityDef("designed-mips", "Designed {NAME} with 1 DNA item", "Designed {NAME} with {COUNT} DNA items");
5384 26 Apr 19 nicklas 113   
5384 26 Apr 19 nicklas 114   /**
5384 26 Apr 19 nicklas 115     Libprep was completed for a plate. Use {@link #create(String, int)} with name of plate.
5384 26 Apr 19 nicklas 116   */
5384 26 Apr 19 nicklas 117   public static final ActivityDef COMPLETED_LIBPLATE = new ActivityDef("completed-libprep", "{NAME} completed with 1 library", "{NAME} completed with {COUNT} libraries");
5384 26 Apr 19 nicklas 118
5384 26 Apr 19 nicklas 119   /**
5384 26 Apr 19 nicklas 120     Pooling of libraries. Use {@link #create(String, int)} with {NAME} set to '1 pool' or 'X pools'.
5384 26 Apr 19 nicklas 121   */
5384 26 Apr 19 nicklas 122   public static final ActivityDef POOLED_LIBRARIES = new ActivityDef("pooled-libraries", "Pooled 1 library", "Pooled {COUNT} libraries into {NAME}");
5384 26 Apr 19 nicklas 123
5384 26 Apr 19 nicklas 124   /**
5470 05 Jun 19 nicklas 125     RNA sequencing of a flow cell started. Use {@link #create(String, int)} with name of flow cell.
5384 26 Apr 19 nicklas 126   */
5470 05 Jun 19 nicklas 127   public static final ActivityDef RNA_SEQUENCING_STARTED = new ActivityDef("sequencing-started-rna", "RNA sequencing started for {NAME}");
5384 26 Apr 19 nicklas 128   /**
5470 05 Jun 19 nicklas 129     MIPs sequencing of a flow cell started. Use {@link #create(String, int)} with name of flow cell.
5470 05 Jun 19 nicklas 130   */
5470 05 Jun 19 nicklas 131   public static final ActivityDef MIPS_SEQUENCING_STARTED = new ActivityDef("sequencing-started-mips", "MIPs sequencing started for {NAME}");
5470 05 Jun 19 nicklas 132   /**
5869 19 Mar 20 nicklas 133     External sequencing of a flow cell started. Use {@link #create(String, int)} with name of flow cell.
5869 19 Mar 20 nicklas 134     @since 4.26
5869 19 Mar 20 nicklas 135   */
5869 19 Mar 20 nicklas 136   public static final ActivityDef EXTERNAL_SEQUENCING_STARTED = new ActivityDef("sequencing-started-external", "External sequencing started for {NAME}");
5869 19 Mar 20 nicklas 137   /**
5384 26 Apr 19 nicklas 138     Sequencing of a flow cell ended. Use {@link #create(String, int)} with name of flow cell.
5384 26 Apr 19 nicklas 139   */
5384 26 Apr 19 nicklas 140   public static final ActivityDef SEQUENCING_ENDED = new ActivityDef("sequencing-ended", "Sequencing ended for {NAME}");
5384 26 Apr 19 nicklas 141   /**
5384 26 Apr 19 nicklas 142     Sequencing of a flow cell confirmed. Use {@link #create(String, int)} with name of flow cell.
5384 26 Apr 19 nicklas 143   */
5384 26 Apr 19 nicklas 144   public static final ActivityDef SEQUENCING_CONFIRMED = new ActivityDef("sequencing-confirmed", "Sequencing confirmed for {NAME}");
5384 26 Apr 19 nicklas 145   /**
5384 26 Apr 19 nicklas 146     Sequencing of a flow cell auto-confirmed. Use {@link #create(String, int)} with name of flow cell.
5384 26 Apr 19 nicklas 147   */
5384 26 Apr 19 nicklas 148   public static final ActivityDef SEQUENCING_AUTOCONFIRMED = new ActivityDef("sequencing-autoconfirmed", "Sequencing auto-confirmed for {NAME}");
5384 26 Apr 19 nicklas 149   
5384 26 Apr 19 nicklas 150   /**
5580 20 Aug 19 nicklas 151     Demux manually confirmed. Use {@link #merge(String, int)} with name of pipeline.
5384 26 Apr 19 nicklas 152   */
5580 20 Aug 19 nicklas 153   public static final ActivityDef DEMUX_CONFIRMED = new ActivityDef("demux-confirmed", "Demux confirmed for 1 {NAME} library", "Demux confirmed for {COUNT} {NAME} libraries");
5384 26 Apr 19 nicklas 154
5384 26 Apr 19 nicklas 155   /**
5580 20 Aug 19 nicklas 156     Demux auto-confirmed. Use {@link #merge(String, int)} with name of pipeline.
5384 26 Apr 19 nicklas 157   */
5580 20 Aug 19 nicklas 158   public static final ActivityDef DEMUX_AUTOCONFIRMED = new ActivityDef("demux-autoconfirmed", "Demux auto-confirmed for 1 {NAME} library", "Demux auto-confirmed for {COUNT} {NAME} libraries");
5384 26 Apr 19 nicklas 159
5384 26 Apr 19 nicklas 160   /**
7032 10 Feb 23 nicklas 161     JSON import manually completed. Use {@link #merge(int)}.
7032 10 Feb 23 nicklas 162     @since 4.44
7032 10 Feb 23 nicklas 163   */
7032 10 Feb 23 nicklas 164   public static final ActivityDef JSON_IMPORT_COMPLETED = new ActivityDef("json-import-completed", "JSON import completed for 1 sample", "JSON import completed for {COUNT} samples");
7226 01 Jun 23 nicklas 165
7226 01 Jun 23 nicklas 166   /**
7226 01 Jun 23 nicklas 167     JSON auto-import completed. Use {@link #merge(int)}.
7226 01 Jun 23 nicklas 168     @since 4.48
7226 01 Jun 23 nicklas 169   */
7226 01 Jun 23 nicklas 170   public static final ActivityDef JSON_AUTO_IMPORT_COMPLETED = new ActivityDef("json-auto-import-completed", "JSON auto-import completed for 1 sample", "JSON auto-import completed for {COUNT} samples");
7226 01 Jun 23 nicklas 171
7032 10 Feb 23 nicklas 172   
7032 10 Feb 23 nicklas 173   /**
7144 05 May 23 nicklas 174     Import of transport boxes completed. Use {@link #merge(int, int)}.
7144 05 May 23 nicklas 175     @since 4.47
7144 05 May 23 nicklas 176   */
7144 05 May 23 nicklas 177   public static final ActivityDef TRANSPORT_BOX_IMPORT_COMPLETED = new ActivityDef("transport-box-import-completed", "Imported 1 transport box with {COUNT2} samples", "Imported {COUNT} transport boxes with {COUNT2} samples");
7144 05 May 23 nicklas 178
7144 05 May 23 nicklas 179   /**
7186 22 May 23 nicklas 180     Move samples from transport boxes completed. Use {@link #merge(int, int)}.
7186 22 May 23 nicklas 181     @since 4.47
7186 22 May 23 nicklas 182   */
7186 22 May 23 nicklas 183   public static final ActivityDef TRANSPORT_BOX_SAMPLES_MOVED = new ActivityDef("transport-box-samples-moved", "Moved {COUNT2} samples from 1 transport box", "Moved {COUNT2} samples from {COUNT} transport boxes");
7186 22 May 23 nicklas 184     
7186 22 May 23 nicklas 185   /**
6184 26 Mar 21 nicklas 186     FASTQ import manually confirmed. Use {@link #merge(int)}.
6184 26 Mar 21 nicklas 187     @since 4.32
6184 26 Mar 21 nicklas 188   */
6184 26 Mar 21 nicklas 189   public static final ActivityDef FASTQ_IMPORT_CONFIRMED = new ActivityDef("fastq-import-confirmed", "FASTQ import confirmed for 1 library", "FASTQ import confirmed for {COUNT} libraries");
6184 26 Mar 21 nicklas 190   /**
6184 26 Mar 21 nicklas 191     FASTQ import auto-confirmed. Use {@link #merge(int)}.
6184 26 Mar 21 nicklas 192     @since 4.32
6184 26 Mar 21 nicklas 193   */
6184 26 Mar 21 nicklas 194   public static final ActivityDef FASTQ_IMPORT_AUTOCONFIRMED = new ActivityDef("fastq-import-autoconfirmed", "FASTQ import auto-confirmed for 1 library", "FASTQ import auto-confirmed for {COUNT} libraries");
6184 26 Mar 21 nicklas 195   
6184 26 Mar 21 nicklas 196   /**
5384 26 Apr 19 nicklas 197     HISAT alignment manually confirmed. Use {@link #merge(int)}.
5384 26 Apr 19 nicklas 198   */
5384 26 Apr 19 nicklas 199   public static final ActivityDef HISAT_CONFIRMED = new ActivityDef("hisat-confirmed", "HISAT confirmed for 1 library", "HISAT confirmed for {COUNT} libraries");
5384 26 Apr 19 nicklas 200   /**
5384 26 Apr 19 nicklas 201     HISAT alignment auto-confirmed. Use {@link #merge(int)}.
5384 26 Apr 19 nicklas 202   */
5384 26 Apr 19 nicklas 203   public static final ActivityDef HISAT_AUTOCONFIRMED = new ActivityDef("hisat-autoconfirmed", "HISAT auto-confirmed for 1 library", "HISAT auto-confirmed for {COUNT} libraries");
5384 26 Apr 19 nicklas 204
5384 26 Apr 19 nicklas 205   /**
7092 04 Apr 23 nicklas 206     BWA-MEM2 alignment manually confirmed. Use {@link #merge(int)}.
7092 04 Apr 23 nicklas 207     @since 4.46
7092 04 Apr 23 nicklas 208   */
7092 04 Apr 23 nicklas 209   public static final ActivityDef BWA_MEM2_CONFIRMED = new ActivityDef("bwa-mem2-confirmed", "BWA-MEM2 alignment confirmed for 1 library", "BWA-MEM2 confirmed for {COUNT} libraries");
7092 04 Apr 23 nicklas 210   /**
7092 04 Apr 23 nicklas 211     BWA-MEM2 alignment auto-confirmed. Use {@link #merge(int)}.
7092 04 Apr 23 nicklas 212     @since 4.46
7092 04 Apr 23 nicklas 213   */
7092 04 Apr 23 nicklas 214   public static final ActivityDef BWA_MEM2_AUTOCONFIRMED = new ActivityDef("bwa-mem2-autoconfirmed", "BWA-MEM2 alignment auto-confirmed for 1 library", "BWA-MEM2 auto-confirmed for {COUNT} libraries");
7092 04 Apr 23 nicklas 215
7092 04 Apr 23 nicklas 216   
7092 04 Apr 23 nicklas 217   /**
5845 26 Feb 20 nicklas 218     MIPs alignment manually confirmed. Use {@link #merge(int)}.
5845 26 Feb 20 nicklas 219     @since 4.26
5845 26 Feb 20 nicklas 220   */
5845 26 Feb 20 nicklas 221   public static final ActivityDef MIPS_ALIGNMENT_CONFIRMED = new ActivityDef("mipsalign-confirmed", "Alignment confirmed for 1 MIPs library", "Alignment confirmed for {COUNT} MIPs libraries");
5845 26 Feb 20 nicklas 222   /**
5845 26 Feb 20 nicklas 223     MIPs alignment auto-confirmed. Use {@link #merge(int)}.
5845 26 Feb 20 nicklas 224     @since 4.26
5845 26 Feb 20 nicklas 225   */
5845 26 Feb 20 nicklas 226   public static final ActivityDef MIPS_ALIGNMENT_AUTOCONFIRMED = new ActivityDef("mipsalign-autoconfirmed", "Alignment auto-confirmed for 1 MIPs library", "Alignment auto-confirmed for {COUNT} MIPs libraries");
5845 26 Feb 20 nicklas 227
5845 26 Feb 20 nicklas 228   /**
5384 26 Apr 19 nicklas 229     HISAT alignment manually confirmed. Use {@link #merge(int)}.
5384 26 Apr 19 nicklas 230   */
5384 26 Apr 19 nicklas 231   public static final ActivityDef GENOTYPE_QC = new ActivityDef("genotype-qc", "Genotype QC performed for 1 alignment", "Genotype QC performed for {COUNT} alignments");
5384 26 Apr 19 nicklas 232
5384 26 Apr 19 nicklas 233   /**
5384 26 Apr 19 nicklas 234     StringTie manually confirmed. Use {@link #merge(int)}.
5384 26 Apr 19 nicklas 235   */
5384 26 Apr 19 nicklas 236   public static final ActivityDef STRINGTIE_CONFIRMED = new ActivityDef("stringtie-confirmed", "StringTie confirmed for 1 library", "StringTie confirmed for {COUNT} libraries");
5384 26 Apr 19 nicklas 237   /**
5384 26 Apr 19 nicklas 238     StringTie auto-confirmed. Use {@link #merge(int)}.
5384 26 Apr 19 nicklas 239   */
5384 26 Apr 19 nicklas 240   public static final ActivityDef STRINGTIE_AUTOCONFIRMED = new ActivityDef("stringtie-autoconfirmed", "StringTie auto-confirmed for 1 library", "StringTie auto-confirmed for {COUNT} libraries");
5384 26 Apr 19 nicklas 241
5384 26 Apr 19 nicklas 242   /**
5728 15 Nov 19 nicklas 243     Variant calling manually confirmed. Use {@link #merge(int)}.
5728 15 Nov 19 nicklas 244     @since 4.24
5728 15 Nov 19 nicklas 245   */
5728 15 Nov 19 nicklas 246   public static final ActivityDef VARIANT_CALLING_CONFIRMED = new ActivityDef("variantcalling-confirmed", "Variant calling confirmed for 1 alignment", "Variant calling confirmed for {COUNT} alignments");
5728 15 Nov 19 nicklas 247   /**
5728 15 Nov 19 nicklas 248     Variant calling auto-confirmed. Use {@link #merge(int)}.
5728 15 Nov 19 nicklas 249     @since 4.24
5728 15 Nov 19 nicklas 250   */
5728 15 Nov 19 nicklas 251   public static final ActivityDef VARIANT_CALLING_AUTOCONFIRMED = new ActivityDef("variantcalling-autoconfirmed", "Variant calling auto-confirmed for 1 alignment", "Variant calling auto-confirmed for {COUNT} alignments");
5728 15 Nov 19 nicklas 252
5728 15 Nov 19 nicklas 253   /**
7437 15 Nov 23 nicklas 254     WGS Variant calling manually confirmed. Use {@link #merge(int)}.
7437 15 Nov 23 nicklas 255     @since 4.50
7437 15 Nov 23 nicklas 256   */
7437 15 Nov 23 nicklas 257   public static final ActivityDef WGS_VARIANT_CALLING_CONFIRMED = new ActivityDef("wgs-variantcalling-confirmed", "WGS variant calling confirmed for 1 alignment", "WGS variant calling confirmed for {COUNT} alignments");
7437 15 Nov 23 nicklas 258   /**
7437 15 Nov 23 nicklas 259     WGS Variant calling auto-confirmed. Use {@link #merge(int)}.
7437 15 Nov 23 nicklas 260     @since 4.50
7437 15 Nov 23 nicklas 261   */
7437 15 Nov 23 nicklas 262   public static final ActivityDef WGS_VARIANT_CALLING_AUTOCONFIRMED = new ActivityDef("wgs-variantcalling-autoconfirmed", "WGS variant calling auto-confirmed for 1 alignment", "WGS variant calling auto-confirmed for {COUNT} alignments");
7437 15 Nov 23 nicklas 263
7437 15 Nov 23 nicklas 264   
7437 15 Nov 23 nicklas 265   /**
6880 22 Nov 22 nicklas 266     Methylation beta-analysis manually confirmed. Use {@link #merge(int)}.
6880 22 Nov 22 nicklas 267     @since 4.41
6880 22 Nov 22 nicklas 268   */
6880 22 Nov 22 nicklas 269   public static final ActivityDef METHYLATION_BETA_CONFIRMED = new ActivityDef("methylation-beta-confirmed", "Beta-values confirmed for 1 methylation item", "Beta-values confirmed for {COUNT} methylation items");
6880 22 Nov 22 nicklas 270   /**
6880 22 Nov 22 nicklas 271     Methylation beta-analysis auto-confirmed. Use {@link #merge(int)}.
6880 22 Nov 22 nicklas 272     @since 4.41
6880 22 Nov 22 nicklas 273   */
6880 22 Nov 22 nicklas 274   public static final ActivityDef METHYLATION_BETA_AUTOCONFIRMED = new ActivityDef("methylation-beta-autoconfirmed", "Beta-values auto-confirmed for 1 methylation item", "Beta-values auto-confirmed for {COUNT} methylation items");
6880 22 Nov 22 nicklas 275   
6880 22 Nov 22 nicklas 276   /**
7293 22 Aug 23 nicklas 277     ASCAT results manually confirmed. Use {@link #merge(int)}.
7293 22 Aug 23 nicklas 278     @since 4.49
7293 22 Aug 23 nicklas 279   */
7293 22 Aug 23 nicklas 280   public static final ActivityDef ASCAT_ACCEPTED = new ActivityDef("ascat-confirmed", "ASCAT results accepted for 1 item", "ASCAT results accepted for {COUNT} items");
7293 22 Aug 23 nicklas 281
7293 22 Aug 23 nicklas 282   /**
5384 26 Apr 19 nicklas 283     Legacy pipeline manually confirmed. Use {@link #merge(int)}.
5384 26 Apr 19 nicklas 284   */
5384 26 Apr 19 nicklas 285   public static final ActivityDef LEGACY_PIPELINE_CONFIRMED = new ActivityDef("legacy-confirmed", "Legacy pipeline confirmed for 1 library", "Legacy pipeline confirmed for {COUNT} libraries");
5384 26 Apr 19 nicklas 286   /**
5384 26 Apr 19 nicklas 287     Legacy pipeline auto-confirmed. Use {@link #merge(int)}.
5384 26 Apr 19 nicklas 288   */
5384 26 Apr 19 nicklas 289   public static final ActivityDef LEGACY_PIPELINE_AUTOCONFIRMED = new ActivityDef("legacy-autoconfirmed", "Legacy pipeline auto-confirmed for 1 library", "Legacy pipeline auto-confirmed for {COUNT} libraries");
5384 26 Apr 19 nicklas 290   
5384 26 Apr 19 nicklas 291   /**
5384 26 Apr 19 nicklas 292     Pilot report created. Use {@link #merge(int)}.
5384 26 Apr 19 nicklas 293   */
5384 26 Apr 19 nicklas 294   public static final ActivityDef PILOT_REPORT = new ActivityDef("pilot-report", "Created 1 pilot report", "Created {COUNT} pilot reports");
5672 15 Oct 19 nicklas 295
5672 15 Oct 19 nicklas 296   /**
5672 15 Oct 19 nicklas 297     SCAN-B report created. Use {@link #merge(int)}.
5672 15 Oct 19 nicklas 298     @since 4.24
5672 15 Oct 19 nicklas 299   */
5672 15 Oct 19 nicklas 300   public static final ActivityDef SCANB_REPORT = new ActivityDef("scanb-report", "Created 1 SCAN-B report", "Created {COUNT} SCAN-B reports");
5384 26 Apr 19 nicklas 301   
5387 26 Apr 19 nicklas 302   /**
5387 26 Apr 19 nicklas 303     Pathology referral was registered. Use {@link #merge(int)}.
5387 26 Apr 19 nicklas 304   */
5387 26 Apr 19 nicklas 305   public static final ActivityDef REGISTERED_PATHOLOGY_REFERRAL = new ActivityDef("registered-pathology", "Registered 1 pathology referral form", "Registered {COUNT} pathology referral forms");
5387 26 Apr 19 nicklas 306   /**
5387 26 Apr 19 nicklas 307     Patient was registered. Use {@link #merge(int)}.
5387 26 Apr 19 nicklas 308   */
5387 26 Apr 19 nicklas 309   public static final ActivityDef REGISTERED_PATIENT = new ActivityDef("registered-patient", "Registered 1 patient", "Registered {COUNT} patients");
5387 26 Apr 19 nicklas 310   /**
5387 26 Apr 19 nicklas 311     Blood was registered. Use {@link #merge(int)}.
5387 26 Apr 19 nicklas 312   */
5387 26 Apr 19 nicklas 313   public static final ActivityDef REGISTERED_BLOOD = new ActivityDef("registered-blood", "Registered 1 blood referral form", "Registered {COUNT} blood referral forms");
5387 26 Apr 19 nicklas 314   /**
5387 26 Apr 19 nicklas 315     Follow-up blood was registered. Use {@link #merge(int)}.
5387 26 Apr 19 nicklas 316   */
5387 26 Apr 19 nicklas 317   public static final ActivityDef REGISTERED_FOLLOWUP_BLOOD = new ActivityDef("registered-followp-blood", "Registered 1 follow-up blood referral form", "Registered {COUNT} follow-up blood referral forms");
5387 26 Apr 19 nicklas 318   /**
5387 26 Apr 19 nicklas 319     Consent was registered. Use {@link #merge(int)}.
5387 26 Apr 19 nicklas 320   */
5387 26 Apr 19 nicklas 321   public static final ActivityDef REGISTERED_CONSENT = new ActivityDef("registered-consent", "Registered 1 consent", "Registered {COUNT} consents");
5387 26 Apr 19 nicklas 322
5387 26 Apr 19 nicklas 323   /**
5387 26 Apr 19 nicklas 324     INCA annotations updated. Use {@link #create(int)}.
5387 26 Apr 19 nicklas 325   */
5387 26 Apr 19 nicklas 326   public static final ActivityDef UPDATED_INCA = new ActivityDef("updated-inca", "INCA annotations updated on 1 case", "INCA annotations updated on {COUNT} cases");
5400 06 May 19 nicklas 327
5400 06 May 19 nicklas 328   /**
5402 07 May 19 nicklas 329     MIPs aliquots imported. Use {@link #merge(int)}.
5400 06 May 19 nicklas 330   */
5400 06 May 19 nicklas 331   public static final ActivityDef IMPORTED_MIPS_ALIQUOTS = new ActivityDef("imported-mips-aliquots", "Imported 1 aliquot for MIPs analysis", "Imported {COUNT} aliquots for MIPs analysis");
5634 01 Oct 19 nicklas 332   
5634 01 Oct 19 nicklas 333   /**
5634 01 Oct 19 nicklas 334     RNA aliquots imported. Use {@link #merge(int)}.
5634 01 Oct 19 nicklas 335   */
5634 01 Oct 19 nicklas 336   public static final ActivityDef IMPORTED_RNA_ALIQUOTS = new ActivityDef("imported-rna-aliquots", "Imported 1 aliquot for RNAseq analysis", "Imported {COUNT} aliquots for RNAseq analysis");
5634 01 Oct 19 nicklas 337   
5740 20 Nov 19 nicklas 338   /**
5740 20 Nov 19 nicklas 339     Reggie the Snake was summoned.
5740 20 Nov 19 nicklas 340   */
5740 20 Nov 19 nicklas 341   public static final ActivityDef REGGIE_THE_SNAKE_WAS_SUMMONED = new ActivityDef("reggie-the-snake-was-summoned", "🐍 Reggie the Snake was summoned", "🐍🐍 Reggie the Snake was summoned {COUNT} times");
5740 20 Nov 19 nicklas 342   
5384 26 Apr 19 nicklas 343   private final String id;
5384 26 Apr 19 nicklas 344   private final String one;
5384 26 Apr 19 nicklas 345   private final String many;
5384 26 Apr 19 nicklas 346   
5384 26 Apr 19 nicklas 347   public ActivityDef(String id, String all)
5384 26 Apr 19 nicklas 348   {
5384 26 Apr 19 nicklas 349     this(id, all, all);
5384 26 Apr 19 nicklas 350   }
5384 26 Apr 19 nicklas 351   
5384 26 Apr 19 nicklas 352   public ActivityDef(String id, String one, String many)
5384 26 Apr 19 nicklas 353   {
5384 26 Apr 19 nicklas 354     this.id = id;
5384 26 Apr 19 nicklas 355     this.one = one;
5384 26 Apr 19 nicklas 356     this.many = many;
5384 26 Apr 19 nicklas 357   }
5384 26 Apr 19 nicklas 358   
5384 26 Apr 19 nicklas 359   public String getId()
5384 26 Apr 19 nicklas 360   {
5384 26 Apr 19 nicklas 361     return id;
5384 26 Apr 19 nicklas 362   }
5384 26 Apr 19 nicklas 363   
5384 26 Apr 19 nicklas 364   /**
5384 26 Apr 19 nicklas 365     Generate a message for an activity event. If the count
5384 26 Apr 19 nicklas 366     is 1 the 'one' message template is used, otherwise the
5384 26 Apr 19 nicklas 367     'many' template is used. In both cases, the '{COUNT}' string
5384 26 Apr 19 nicklas 368     is replaced with the count parameter.
5384 26 Apr 19 nicklas 369   */
5384 26 Apr 19 nicklas 370   public String getMessage(int count)
5384 26 Apr 19 nicklas 371   {
5384 26 Apr 19 nicklas 372     return (count == 1 ? one : many).replace("{COUNT}", Integer.toString(count));
5384 26 Apr 19 nicklas 373   }
5384 26 Apr 19 nicklas 374   
5384 26 Apr 19 nicklas 375   /**
5384 26 Apr 19 nicklas 376     Generate a message for a named activity event. {@link #getMessage(int)}
5384 26 Apr 19 nicklas 377     is called to get the base message and then '{NAME}' is replaced
5384 26 Apr 19 nicklas 378     with the name parameter.
5384 26 Apr 19 nicklas 379   */
5384 26 Apr 19 nicklas 380   public String getMessage(String name, int count)
5384 26 Apr 19 nicklas 381   {
5384 26 Apr 19 nicklas 382     return getMessage(count).replace("{NAME}", name);
5384 26 Apr 19 nicklas 383   }
5384 26 Apr 19 nicklas 384   
5384 26 Apr 19 nicklas 385   /**
5384 26 Apr 19 nicklas 386     Create an unnamed mergable activity.
5384 26 Apr 19 nicklas 387   */
5421 13 May 19 nicklas 388   public CountedActivity merge(DbControl dc, int count)
5384 26 Apr 19 nicklas 389   {
5422 13 May 19 nicklas 390     String userName = dc.getSessionControl().getLoggedInUserName();
5422 13 May 19 nicklas 391     String projectName = dc.getSessionControl().getActiveProjectName();
5422 13 May 19 nicklas 392     CountedActivity activity = new CountedActivity(this, count, userName, projectName);
5421 13 May 19 nicklas 393     dc.addTransactionalAction(activity);
5421 13 May 19 nicklas 394     return activity;
5384 26 Apr 19 nicklas 395   }
5384 26 Apr 19 nicklas 396
5384 26 Apr 19 nicklas 397   /**
5384 26 Apr 19 nicklas 398     Create an named mergable activity.
5384 26 Apr 19 nicklas 399   */
5421 13 May 19 nicklas 400   public CountedActivity merge(DbControl dc, String name, int count)
5384 26 Apr 19 nicklas 401   {
5422 13 May 19 nicklas 402     String userName = dc.getSessionControl().getLoggedInUserName();
5422 13 May 19 nicklas 403     String projectName = dc.getSessionControl().getActiveProjectName();
5422 13 May 19 nicklas 404     CountedActivity activity = new CountedActivity(this, name, count, userName, projectName);
5421 13 May 19 nicklas 405     dc.addTransactionalAction(activity);
5421 13 May 19 nicklas 406     return activity;
5384 26 Apr 19 nicklas 407   }
5384 26 Apr 19 nicklas 408
5384 26 Apr 19 nicklas 409   
5384 26 Apr 19 nicklas 410   /**
7144 05 May 23 nicklas 411     Create an unnamed mergable activity with 2 counters.
7144 05 May 23 nicklas 412     @since 4.47
7144 05 May 23 nicklas 413   */
7144 05 May 23 nicklas 414   public CountedActivity2 merge(DbControl dc, int count, int count2)
7144 05 May 23 nicklas 415   {
7144 05 May 23 nicklas 416     String userName = dc.getSessionControl().getLoggedInUserName();
7144 05 May 23 nicklas 417     String projectName = dc.getSessionControl().getActiveProjectName();
7144 05 May 23 nicklas 418     CountedActivity2 activity = new CountedActivity2(this, count, count2, userName, projectName);
7144 05 May 23 nicklas 419     dc.addTransactionalAction(activity);
7144 05 May 23 nicklas 420     return activity;
7144 05 May 23 nicklas 421   }
7144 05 May 23 nicklas 422   
7144 05 May 23 nicklas 423   /**
7144 05 May 23 nicklas 424     Create an named mergable activity.
7144 05 May 23 nicklas 425     @since 4.47
7144 05 May 23 nicklas 426   */
7144 05 May 23 nicklas 427   public CountedActivity2 merge(DbControl dc, String name, int count, int count2)
7144 05 May 23 nicklas 428   {
7144 05 May 23 nicklas 429     String userName = dc.getSessionControl().getLoggedInUserName();
7144 05 May 23 nicklas 430     String projectName = dc.getSessionControl().getActiveProjectName();
7144 05 May 23 nicklas 431     CountedActivity2 activity = new CountedActivity2(this, name, count, count2, userName, projectName);
7144 05 May 23 nicklas 432     dc.addTransactionalAction(activity);
7144 05 May 23 nicklas 433     return activity;
7144 05 May 23 nicklas 434   }
7144 05 May 23 nicklas 435
7144 05 May 23 nicklas 436   
7144 05 May 23 nicklas 437   /**
5384 26 Apr 19 nicklas 438     Create an unnamed activity that is not mergeable.
5384 26 Apr 19 nicklas 439   */
5421 13 May 19 nicklas 440   public SimpleActivity create(DbControl dc, int count)
5384 26 Apr 19 nicklas 441   {
5422 13 May 19 nicklas 442     String userName = dc.getSessionControl().getLoggedInUserName();
5422 13 May 19 nicklas 443     String projectName = dc.getSessionControl().getActiveProjectName();
5422 13 May 19 nicklas 444     SimpleActivity activity = new SimpleActivity(getMessage(count), userName, projectName);
5421 13 May 19 nicklas 445     dc.addTransactionalAction(activity);
5421 13 May 19 nicklas 446     return activity;
5384 26 Apr 19 nicklas 447   }
5384 26 Apr 19 nicklas 448   
5384 26 Apr 19 nicklas 449   /**
5384 26 Apr 19 nicklas 450     Create an named activity that is not mergeable.
5384 26 Apr 19 nicklas 451   */
5421 13 May 19 nicklas 452   public SimpleActivity create(DbControl dc, String name, int count)
5384 26 Apr 19 nicklas 453   {
5422 13 May 19 nicklas 454     String userName = dc.getSessionControl().getLoggedInUserName();
5422 13 May 19 nicklas 455     String projectName = dc.getSessionControl().getActiveProjectName();
5422 13 May 19 nicklas 456     SimpleActivity activity = new SimpleActivity(getMessage(name, count), userName, projectName);
5421 13 May 19 nicklas 457     dc.addTransactionalAction(activity);
5421 13 May 19 nicklas 458     return activity;
5384 26 Apr 19 nicklas 459   }
5384 26 Apr 19 nicklas 460   
5384 26 Apr 19 nicklas 461 }