[Oscarmcmaster-cvscommit] oscar_mcmaster/web/WEB-INF/classes/src/oscar/oscarRx/util RxUtil.java, 1
open source web-based Electronic Medical Record (EMR) system
Brought to you by:
davidhcchan,
jaygallagher
From: Jackson Bi <yg...@us...> - 2010-03-16 18:43:36
|
Update of /cvsroot/oscarmcmaster/oscar_mcmaster/web/WEB-INF/classes/src/oscar/oscarRx/util In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv28200 Modified Files: Tag: RELEASE_9_12 RxUtil.java Log Message: -util method to determine if a quantity typed is mitte -get duration from mitte -get durationUnit from mitte -replace Mitte from special when reRx Index: RxUtil.java =================================================================== RCS file: /cvsroot/oscarmcmaster/oscar_mcmaster/web/WEB-INF/classes/src/oscar/oscarRx/util/RxUtil.java,v retrieving revision 1.16.2.12 retrieving revision 1.16.2.13 diff -C2 -d -r1.16.2.12 -r1.16.2.13 *** RxUtil.java 10 Mar 2010 18:54:41 -0000 1.16.2.12 --- RxUtil.java 16 Mar 2010 18:43:23 -0000 1.16.2.13 *************** *** 287,292 **** } return null; ! } ! public static String findDuration(RxPrescriptionData.Prescription rx) {//calculate duration based on quantity, takemax,takemin,frequency,durationUnit. //get frequency,takemax,takemin,durationUnit by parsing special. instrucParser(rx); --- 287,386 ---- } return null; ! } ! public static boolean isMitte(String qStr){ ! boolean isMitte=false; ! String[] durationUnits = ! {"[0-9]+\\s+(?i)days\\s", "[0-9]+\\s+(?i)weeks\\s", "[0-9]+\\s+(?i)months\\s", "[0-9]+\\s+(?i)day\\s", "[0-9]+\\s+(?i)week\\s", "[0-9]+\\s+(?i)month\\s", ! "[0-9]+\\s+(?i)d\\s", "[0-9]+\\s+(?i)w\\s", "[0-9]+\\s+(?i)m\\s", "[0-9]+\\s+(?i)mo\\s", ! "[0-9]+\\s+(?i)days$", "[0-9]+\\s+(?i)weeks$", "[0-9]+\\s+(?i)months$", "[0-9]+\\s+(?i)day$", "[0-9]+\\s+(?i)week$", "[0-9]+\\s+(?i)month$", ! "[0-9]+\\s+(?i)d$", "[0-9]+\\s+(?i)w$", "[0-9]+\\s+(?i)m$","[0-9]+\\s+(?i)mo$", ! "\\s[0-9]+(?i)days\\s", "\\s[0-9]+(?i)weeks\\s", "\\s[0-9]+(?i)months\\s", "\\s[0-9]+(?i)day\\s", "\\s[0-9]+(?i)week\\s", "\\s[0-9]+(?i)month\\s", ! "\\s[0-9]+(?i)d\\s", "\\s[0-9]+(?i)w\\s", "\\s[0-9]+(?i)m\\s","\\s[0-9]+(?i)mo\\s", ! "\\s[0-9]+(?i)days$", "\\s[0-9]+(?i)weeks$", "\\s[0-9]+(?i)months$", "\\s[0-9]+(?i)day$", "\\s[0-9]+(?i)week$", "\\s[0-9]+(?i)month$", ! "\\s[0-9]+(?i)d$", "\\s[0-9]+(?i)w$", "\\s[0-9]+(?i)m$","\\s[0-9]+(?i)mo$", ! }; ! for (String s : durationUnits) { ! Pattern p = Pattern.compile(s); ! Matcher m = p.matcher(qStr); ! if (m.find()) { ! String foundStr = (qStr.substring(m.start(), m.end())).trim(); ! qStr=qStr.replace(foundStr, ""); ! qStr=qStr.trim(); ! if(qStr.length()==0){ ! isMitte=true; ! break; ! } ! } ! } ! return isMitte; ! } ! ! public static String getDurationFromQuantityText(String qStr){ ! String retStr=""; ! String[] durationUnits = ! {"[0-9]+\\s+(?i)days\\s", "[0-9]+\\s+(?i)weeks\\s", "[0-9]+\\s+(?i)months\\s", "[0-9]+\\s+(?i)day\\s", "[0-9]+\\s+(?i)week\\s", "[0-9]+\\s+(?i)month\\s", ! "[0-9]+\\s+(?i)d\\s", "[0-9]+\\s+(?i)w\\s", "[0-9]+\\s+(?i)m\\s", "[0-9]+\\s+(?i)mo\\s", ! "[0-9]+\\s+(?i)days$", "[0-9]+\\s+(?i)weeks$", "[0-9]+\\s+(?i)months$", "[0-9]+\\s+(?i)day$", "[0-9]+\\s+(?i)week$", "[0-9]+\\s+(?i)month$", ! "[0-9]+\\s+(?i)d$", "[0-9]+\\s+(?i)w$", "[0-9]+\\s+(?i)m$","[0-9]+\\s+(?i)mo$", ! "\\s[0-9]+(?i)days\\s", "\\s[0-9]+(?i)weeks\\s", "\\s[0-9]+(?i)months\\s", "\\s[0-9]+(?i)day\\s", "\\s[0-9]+(?i)week\\s", "\\s[0-9]+(?i)month\\s", ! "\\s[0-9]+(?i)d\\s", "\\s[0-9]+(?i)w\\s", "\\s[0-9]+(?i)m\\s","\\s[0-9]+(?i)mo\\s", ! "\\s[0-9]+(?i)days$", "\\s[0-9]+(?i)weeks$", "\\s[0-9]+(?i)months$", "\\s[0-9]+(?i)day$", "\\s[0-9]+(?i)week$", "\\s[0-9]+(?i)month$", ! "\\s[0-9]+(?i)d$", "\\s[0-9]+(?i)w$", "\\s[0-9]+(?i)m$","\\s[0-9]+(?i)mo$", ! }; ! for (String s : durationUnits) { ! Pattern p = Pattern.compile(s); ! Matcher m = p.matcher(qStr); ! if (m.find()) { ! String foundStr=(qStr.substring(m.start(), m.end())).trim(); ! Pattern p2=Pattern.compile("[0-9]+"); ! Matcher m2=p2.matcher(foundStr); ! if(m2.find()){ ! String duration=(foundStr.substring(m2.start(), m2.end())).trim(); ! retStr=duration; ! } ! break; ! } ! } ! return retStr; ! } ! ! public static String getDurationUnitFromQuantityText(String qStr){ ! String retStr=""; ! String[] durationUnits = ! {"[0-9]+\\s+(?i)days\\s", "[0-9]+\\s+(?i)weeks\\s", "[0-9]+\\s+(?i)months\\s", "[0-9]+\\s+(?i)day\\s", "[0-9]+\\s+(?i)week\\s", "[0-9]+\\s+(?i)month\\s", ! "[0-9]+\\s+(?i)d\\s", "[0-9]+\\s+(?i)w\\s", "[0-9]+\\s+(?i)m\\s", "[0-9]+\\s+(?i)mo\\s", ! "[0-9]+\\s+(?i)days$", "[0-9]+\\s+(?i)weeks$", "[0-9]+\\s+(?i)months$", "[0-9]+\\s+(?i)day$", "[0-9]+\\s+(?i)week$", "[0-9]+\\s+(?i)month$", ! "[0-9]+\\s+(?i)d$", "[0-9]+\\s+(?i)w$", "[0-9]+\\s+(?i)m$","[0-9]+\\s+(?i)mo$", ! "\\s[0-9]+(?i)days\\s", "\\s[0-9]+(?i)weeks\\s", "\\s[0-9]+(?i)months\\s", "\\s[0-9]+(?i)day\\s", "\\s[0-9]+(?i)week\\s", "\\s[0-9]+(?i)month\\s", ! "\\s[0-9]+(?i)d\\s", "\\s[0-9]+(?i)w\\s", "\\s[0-9]+(?i)m\\s","\\s[0-9]+(?i)mo\\s", ! "\\s[0-9]+(?i)days$", "\\s[0-9]+(?i)weeks$", "\\s[0-9]+(?i)months$", "\\s[0-9]+(?i)day$", "\\s[0-9]+(?i)week$", "\\s[0-9]+(?i)month$", ! "\\s[0-9]+(?i)d$", "\\s[0-9]+(?i)w$", "\\s[0-9]+(?i)m$","\\s[0-9]+(?i)mo$", ! }; ! for (String s : durationUnits) { ! Pattern p = Pattern.compile(s); ! Matcher m = p.matcher(qStr); ! if (m.find()) { ! String foundStr=(qStr.substring(m.start(), m.end())).trim(); ! Pattern p2=Pattern.compile("[0-9]+"); ! Matcher m2=p2.matcher(foundStr); ! if(m2.find()){ ! String duration=(foundStr.substring(m2.start(), m2.end())).trim(); ! String durationUnit=foundStr.replace(duration, "").trim(); ! if(durationUnit.startsWith("d")||durationUnit.startsWith("D")) ! retStr="D"; ! else if(durationUnit.startsWith("w")||durationUnit.startsWith("W")) ! retStr="W"; ! else if(durationUnit.startsWith("m")||durationUnit.startsWith("M")) ! retStr="M"; ! else ! retStr=""; ! break; ! } ! } ! } ! return retStr; ! } ! ! public static String findDuration(RxPrescriptionData.Prescription rx) {//calculate duration based on quantity, takemax,takemin,frequency,durationUnit. //get frequency,takemax,takemin,durationUnit by parsing special. instrucParser(rx); *************** *** 573,579 **** Matcher m1 = p1.matcher(instructions); if (m1.find()) { ! p("" + m1.start(), "" + m.start()); ! durationSpec = instructions.substring(m1.start(), m.start()); ! duration = durationSpec.trim(); p("duration here1", duration); } --- 667,673 ---- Matcher m1 = p1.matcher(instructions); if (m1.find()) { ! p("" + m1.start(), "" + m.start()); ! durationSpec = instructions.substring(m1.start(), m.start()); ! duration = durationSpec.trim(); p("duration here1", duration); } *************** *** 823,826 **** --- 917,924 ---- special=special.replace(regex5, ""); } + String regex6= "Mitte:\\s*[0-9]+\\s*\\w+"; + p = Pattern.compile(regex6); + m = p.matcher(special); + special = m.replaceAll(""); /* System.out.println("regex5=" + regex5); if (regex5 != null) { |