package edu.ualberta.med.biobank.tools.heartproblem;
import org.apache.log4j.Logger;
import edu.ualberta.med.biobank.client.util.ServiceConnection;
import edu.ualberta.med.biobank.common.wrappers.SpecimenWrapper;
import edu.ualberta.med.biobank.model.ActivityStatus;
import edu.ualberta.med.biobank.server.applicationservice.BiobankApplicationService;
import edu.ualberta.med.biobank.tools.GenericAppArgs;
import edu.ualberta.med.biobank.tools.utils.HostUrl;
/**
* The Calgary techs for the HEART study were adding PAXgene tubes to collection
* events, unaware that they should not be doing this. These source specimens
* must be set back to active activity status.
*
* The list of PAXgene source specimens were sent in an email to Elizabeth
* Taylor on Dec 2, 2011.
*
*/
@Deprecated
public class CalgaryPaxgeneFix {
private static String USAGE = "Usage: calgarypaxgenefix [options]\n\n"
+ "Options\n"
+ " -H, --host hostname for BioBank server and MySQL server\n"
+ " -p, --port port number for BioBank server\n"
+ " -u, --user user name to log into BioBank server\n"
+ " -w, --password password to log into BioBank server\n"
+ " -v, --verbose shows verbose output\n"
+ " -h, --help shows this text\n"; //$NON-NLS-1$
private static final Logger LOGGER = Logger
.getLogger(CalgaryPaxgeneFix.class.getName());
public static final String[] PAXGENE_INV_IDS = { "CCWK", "CCWL", "DAHK",
"DAHL", "DAHP", "DAHQ", "DAHR", "DAHS", "DAHT", "DAHU", "DAHV", "DAHW",
"DAHX", "DAHY", "DAHZ", "DAIA", "DAIG", "DAII", "DAIP", "DAIQ", "DAIU",
"DAIV", "DAJJ", "DAJK", "DAJM", "DAJN", "DAKD", "DAKE", "DAKL", "DAKM",
"MNGRWBCF1WZ5", "LIMAM7YCM77I", "O9Q24HNBB286", "WZ8IQ8IFSWWC",
"1PJKAY6GUEIM", "VQDQSAU4EUZI", "MARDIFNHE9X7", "M50LRM0O9BX1",
"D1WQPIKSQI49", "2K2JBOLFG1IJ", "D5V7T4SL71O2", "YX28ABA31VY3",
"45ZA6H21RRX5", "OMCBXMEKLI1Y", "IMRJAMT5C4DQ", "RC3MNYYJ1HL1",
"PZDG9SA06A06", "2U3O92FA7VN0", "O8WF6X1UC3QM", "40IWWJHQ02H5",
"16H1BIW2T07T", "ME0A1O4QLO4K", "DAINPV42CMS5", "K95JRWGJMPS3",
"31CHX7OYVF3W", "HW6OCZH2A94G", "H5YXC5NW5FWI", "A6WYI8I5X2VS",
"4EF6M0WAMX0K", "LSMAEIRG960Z", "S8D007IDQPBN", "YZ8B0ABNF61O",
"O3LZH0RFUTSD", "VFHACO879BVQ", "MADU0EBOSKLN", "ZU47Y9MRJJTE",
"XSJRN8EE8T1S", "J8I7SVA5OESU", "GIC0EP2CSH2F", "2W19FZ2G9XJV",
"KBCDP3QOHTD7", "SRQO8K031AVH", "9TFH7VW0N0IB", "7WWRQ9M0DQHJ",
"KGARTZJVZJ63", "E422X4UAPE59", "MR8FT44EXCO2", "OVPEIPHBVDXE",
"4YIJSDLABY3B", "M5PM0CVK6NJ1", "T1PJ1GJCYGY4", "ASODYRZXZAZ9",
"JJC661AP1241", "UXGI1JNXM8S0", "XVKV4UNPO6ME", "PEBB89YWGND7",
"NRDHI2BSOI0N", "XMJPIBEAH0UA", "VJ35OH25MX9S", "OZ0X2S71HX0T",
"3TG1G028OHZR", "2ZXETJ1OB2MD", "80TXQECO05XU", "H8LTT4R2A4T2",
"S9OOOZLTFW89", "LKLTICQFB3OG", "TTJXLG1KY9QW", "KWZPUBNG9HNT",
"4AZKQ046PMNG", "4XZI597UV9HN", "7W83DCMTC0EK", "C70DNX2RRMQJ",
"DI20IUQ4GLZN", "9A5AVYP44GCS", "ORCAF8Z314UC", "04P4XQYPZGR7",
"7DCF01HO7ETU", "36HR9AK1DFNB", "3YPRGR4S9J7V", "34EJS9V9S8E7",
"JLLXS4WMFG0A", "AO6WKF2REFKJ", "QTJL93Q2MCWG", "HIO4ONH4ZI97",
"98R5BYN6GM8M", "PC7T0QV8TQGA" };
private BiobankApplicationService appService;
public CalgaryPaxgeneFix(GenericAppArgs appArgs) throws Exception {
LOGGER.debug("username: " + appArgs.username);
String hostUrl = HostUrl.getHostUrl(appArgs.hostname, appArgs.port);
appService = ServiceConnection.getAppService(hostUrl, appArgs.username,
appArgs.password);
for (String invId : PAXGENE_INV_IDS) {
SpecimenWrapper spc = SpecimenWrapper
.getSpecimen(appService, invId);
if (spc == null) {
LOGGER.info("specimen with inventory id not found: " + invId);
continue;
}
if (spc.getActivityStatus().getName().equals("Active")) {
LOGGER.info("specimen with inventory id is already ACTIVE: "
+ invId);
continue;
}
if (!spc.getActivityStatus().getName().equals("Closed")) {
throw new Exception("specimen with inv id " + invId
+ " does not have activity status closed: "
+ spc.getActivityStatus().getName());
}
spc.setActivityStatus(ActivityStatus.ACTIVE);
spc.persist();
LOGGER.info("fixed activity status for " + invId);
}
LOGGER.info("Done");
}
public static void main(String[] argv) {
try {
GenericAppArgs args = new GenericAppArgs(argv);
if (args.help) {
System.out.println(USAGE);
System.exit(0);
} else if (args.error) {
System.out.println(args.errorMsg + "\n" + USAGE);
System.exit(-1);
}
new CalgaryPaxgeneFix(args);
} catch (Exception e) {
e.printStackTrace();
}
}
}