You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(141) |
Sep
(184) |
Oct
(159) |
Nov
(77) |
Dec
(114) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(212) |
Feb
(302) |
Mar
(323) |
Apr
(360) |
May
(302) |
Jun
(392) |
Jul
(299) |
Aug
(858) |
Sep
(499) |
Oct
(489) |
Nov
(324) |
Dec
(438) |
2008 |
Jan
(449) |
Feb
(388) |
Mar
(811) |
Apr
(583) |
May
(949) |
Jun
(1431) |
Jul
(943) |
Aug
(527) |
Sep
(576) |
Oct
(440) |
Nov
(1046) |
Dec
(658) |
2009 |
Jan
(259) |
Feb
(192) |
Mar
(495) |
Apr
(2322) |
May
(2023) |
Jun
(1387) |
Jul
(722) |
Aug
(771) |
Sep
(167) |
Oct
(142) |
Nov
(384) |
Dec
(884) |
2010 |
Jan
(344) |
Feb
(82) |
Mar
(248) |
Apr
(341) |
May
(389) |
Jun
(289) |
Jul
(19) |
Aug
(478) |
Sep
(274) |
Oct
(431) |
Nov
(322) |
Dec
(207) |
2011 |
Jan
(125) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Joseph I. <jos...@us...> - 2006-10-02 06:52:41
|
Update of /cvsroot/tolven/tolven/installer/template In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12238/installer/template Modified Files: ant-build.template Log Message: Added commons-lang.location=${tolven.location}/lib/commons-lang to the IzPack template Index: ant-build.template =================================================================== RCS file: /cvsroot/tolven/tolven/installer/template/ant-build.template,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ant-build.template 28 Sep 2006 07:14:23 -0000 1.1 --- ant-build.template 2 Oct 2006 06:52:38 -0000 1.2 *************** *** 81,84 **** --- 81,85 ---- commons-codec.location=${tolven.location}/lib/commons-codec commons-math.location=${tolven.location}/lib/commons-math + commons-lang.location=${tolven.location}/lib/commons-lang javamail.location=${tolven.location}/lib/javamail jaf.location=${tolven.location}/lib/jaf |
From: Joseph I. <jos...@us...> - 2006-10-02 06:49:06
|
Update of /cvsroot/tolven/tolven/installer/izpack-8.1/bin In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10138/installer/izpack-8.1/bin Modified Files: deployTolvenEAR.bat startAntelope.bat startAntelope.sh deployTolvenEAR.sh Log Message: Added apache-ant-1.6.5.zip to tolven/lib. apache-ant is unzipped into the installation directory during install. Antelope now uses an ANT_HOME that points the installed apache-ant. Index: deployTolvenEAR.sh =================================================================== RCS file: /cvsroot/tolven/tolven/installer/izpack-8.1/bin/deployTolvenEAR.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** deployTolvenEAR.sh 29 Sep 2006 07:26:31 -0000 1.1 --- deployTolvenEAR.sh 2 Oct 2006 06:49:03 -0000 1.2 *************** *** 1,3 **** #!/bin/bash ! ant -Dbasedir=$INSTALL_PATH/tolven -buildfile $INSTALL_PATH/tolven/build.xml deploy \ No newline at end of file --- 1,3 ---- #!/bin/bash ! $INSTALL_PATH/apache-ant-1.6.5/bin/ant -Dbasedir=$INSTALL_PATH/tolven -buildfile $INSTALL_PATH/tolven/build.xml deploy \ No newline at end of file Index: deployTolvenEAR.bat =================================================================== RCS file: /cvsroot/tolven/tolven/installer/izpack-8.1/bin/deployTolvenEAR.bat,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** deployTolvenEAR.bat 2 Oct 2006 00:54:17 -0000 1.2 --- deployTolvenEAR.bat 2 Oct 2006 06:49:03 -0000 1.3 *************** *** 1 **** ! ant -Dbasedir=$INSTALL_PATH\tolven -buildfile $INSTALL_PATH\tolven\build.xml deploy \ No newline at end of file --- 1 ---- ! $INSTALL_PATH\apache-ant-1.6.5\bin\ant -Dbasedir=$INSTALL_PATH\tolven -buildfile $INSTALL_PATH\tolven\build.xml deploy \ No newline at end of file Index: startAntelope.bat =================================================================== RCS file: /cvsroot/tolven/tolven/installer/izpack-8.1/bin/startAntelope.bat,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** startAntelope.bat 2 Oct 2006 00:54:17 -0000 1.1 --- startAntelope.bat 2 Oct 2006 06:49:03 -0000 1.2 *************** *** 1 **** --- 1,2 ---- + set ANT_HOME=$INSTALL_PATH\apache-ant-1.6.5 java -jar $INSTALL_PATH\tolven\lib\antelope\AntelopeApp_3.2.18\AntelopeApp.jar \ No newline at end of file Index: startAntelope.sh =================================================================== RCS file: /cvsroot/tolven/tolven/installer/izpack-8.1/bin/startAntelope.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** startAntelope.sh 2 Oct 2006 00:54:17 -0000 1.1 --- startAntelope.sh 2 Oct 2006 06:49:03 -0000 1.2 *************** *** 1,3 **** --- 1,4 ---- #!/bin/bash + ANT_HOME=$INSTALL_PATH/apache-ant-1.6.5 java -jar $INSTALL_PATH/tolven/lib/antelope/AntelopeApp_3.2.18/AntelopeApp.jar \ No newline at end of file |
From: Joseph I. <jos...@us...> - 2006-10-02 06:49:06
|
Update of /cvsroot/tolven/tolven In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10138 Modified Files: build.xml Log Message: Added apache-ant-1.6.5.zip to tolven/lib. apache-ant is unzipped into the installation directory during install. Antelope now uses an ANT_HOME that points the installed apache-ant. Index: build.xml =================================================================== RCS file: /cvsroot/tolven/tolven/build.xml,v retrieving revision 1.62 retrieving revision 1.63 diff -C2 -d -r1.62 -r1.63 *** build.xml 1 Oct 2006 07:17:54 -0000 1.62 --- build.xml 2 Oct 2006 06:49:04 -0000 1.63 *************** *** 17,20 **** --- 17,29 ---- </target> + <target name="unzip-apache-ant"> + <fail message="The destination ${tolven.home}/apache-ant-1.6.5 already exists. Please remove it first."> + <condition> + <available file="${tolven.home}/apache-ant-1.6.5" /> + </condition> + </fail> + <unzip src="${tolven.location}/lib/ant/apache-ant-1.6.5-bin.zip" dest="${tolven.home}" /> + </target> + <target name="stage-init-all"> <ant dir="${tolven.location}/security-config" antfile="${tolven.location}/security-config/build.xml" target="all" /> |
From: Joseph I. <jos...@us...> - 2006-10-02 06:49:05
|
Update of /cvsroot/tolven/tolven/installer/izpack-8.1 In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10138/installer/izpack-8.1 Modified Files: antActionsSpec.xml tolven-install-build.xml tolven-install.xml shortcutSpec.xml Log Message: Added apache-ant-1.6.5.zip to tolven/lib. apache-ant is unzipped into the installation directory during install. Antelope now uses an ANT_HOME that points the installed apache-ant. Index: antActionsSpec.xml =================================================================== RCS file: /cvsroot/tolven/tolven/installer/izpack-8.1/antActionsSpec.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** antActionsSpec.xml 2 Oct 2006 00:54:17 -0000 1.3 --- antActionsSpec.xml 2 Oct 2006 06:49:03 -0000 1.4 *************** *** 15,22 **** --- 15,35 ---- </antcall> </pack> + <pack name="install-apache-ant-1.6.5"> + <antcall order="afterpacks" basedir="$INSTALL_PATH/tolven" buildfile="$INSTALL_PATH/tolven/build.xml"> + <target name="unzip-apache-ant" /> + </antcall> + <antcall order="afterpacks" basedir="$INSTALL_PATH" buildfile="$INSTALL_PATH/tolven-install-build.xml"> + <target name="fix-ant-permissions" /> + <property name="install.path" value="$INSTALL_PATH" /> + </antcall> + </pack> <pack name="install-tolven-jboss.4.0.4.GA"> <antcall order="afterpacks" basedir="$INSTALL_PATH/tolven" buildfile="$INSTALL_PATH/tolven/build.xml"> <target name="unzip-tolven-jboss" /> </antcall> + <antcall order="afterpacks" basedir="$INSTALL_PATH" buildfile="$INSTALL_PATH/tolven-install-build.xml"> + <target name="fix-jboss-permissions" /> + <property name="install.path" value="$INSTALL_PATH" /> + </antcall> </pack> <pack name="create-tolven-stage"> Index: tolven-install-build.xml =================================================================== RCS file: /cvsroot/tolven/tolven/installer/izpack-8.1/tolven-install-build.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** tolven-install-build.xml 2 Oct 2006 00:54:17 -0000 1.3 --- tolven-install-build.xml 2 Oct 2006 06:49:03 -0000 1.4 *************** *** 43,45 **** --- 43,57 ---- </target> + <target name="fix-ant-permissions"> + <chmod perm="u+x"> + <fileset dir="${install.path}/apache-ant-1.6.5/bin" /> + </chmod> + </target> + + <target name="fix-jboss-permissions"> + <chmod perm="u+x"> + <fileset dir="${install.path}/tolven-jboss-4.0.4.GA/bin" /> + </chmod> + </target> + </project> Index: tolven-install.xml =================================================================== RCS file: /cvsroot/tolven/tolven/installer/izpack-8.1/tolven-install.xml,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** tolven-install.xml 2 Oct 2006 04:11:29 -0000 1.7 --- tolven-install.xml 2 Oct 2006 06:49:03 -0000 1.8 *************** *** 133,136 **** --- 133,143 ---- <depends packname="base" /> </pack> + <pack name="install-apache-ant-1.6.5" required="yes"> + <description> + Unzip Apache Ant + </description> + <depends packname="create-ant-properties" /> + <depends packname="create-tolven-properties" /> + </pack> <pack name="install-tolven-jboss.4.0.4.GA" required="yes"> <description> *************** *** 175,178 **** --- 182,189 ---- <depends packname="create-tolven-stage" /> </pack> + <pack name="short-cuts" required="yes"> + <description>Create Shortcuts</description> + <os family="windows" /> + </pack> <pack name="deploy-tolven-EAR" required="yes"> <description>Deploy tolven.EAR</description> Index: shortcutSpec.xml =================================================================== RCS file: /cvsroot/tolven/tolven/installer/izpack-8.1/shortcutSpec.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** shortcutSpec.xml 2 Oct 2006 04:11:29 -0000 1.1 --- shortcutSpec.xml 2 Oct 2006 06:49:03 -0000 1.2 *************** *** 9,12 **** --- 9,13 ---- programGroup="yes" desktop="no" applications="no" startMenu="yes" startup="no"> + <createForPack name="short-cuts" /> </shortcut> <shortcut name="Start Tolven JBoss" *************** *** 15,18 **** --- 16,20 ---- programGroup="yes" desktop="no" applications="no" startMenu="no" startup="no"> + <createForPack name="short-cuts" /> </shortcut> <shortcut name="Stop Tolven JBoss" *************** *** 21,24 **** --- 23,27 ---- programGroup="yes" desktop="no" applications="no" startMenu="no" startup="no"> + <createForPack name="short-cuts" /> </shortcut> </shortcuts> \ No newline at end of file |
From: Joseph I. <jos...@us...> - 2006-10-02 06:49:05
|
Update of /cvsroot/tolven/tolven/lib/ant In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10138/lib/ant Added Files: apache-ant-1.6.5-bin.zip Log Message: Added apache-ant-1.6.5.zip to tolven/lib. apache-ant is unzipped into the installation directory during install. Antelope now uses an ANT_HOME that points the installed apache-ant. --- NEW FILE: apache-ant-1.6.5-bin.zip --- (This appears to be a binary file; contents omitted.) |
From: Joseph I. <jos...@us...> - 2006-10-02 06:47:46
|
Update of /cvsroot/tolven/tolven/lib/ant In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10129/lib/ant Log Message: Directory /cvsroot/tolven/tolven/lib/ant added to the repository |
From: John C. <jc...@us...> - 2006-10-02 05:34:57
|
Update of /cvsroot/tolven/tolven/lib/commons-lang In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13097/lib/commons-lang Added Files: NOTICE.txt RELEASE-NOTES.txt commons-lang-2.1.jar LICENSE.txt Log Message: Add commons-lang --- NEW FILE: commons-lang-2.1.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: RELEASE-NOTES.txt --- $Id: RELEASE-NOTES.txt,v 1.1 2006/10/02 05:34:53 jchurin Exp $ Commons Lang Package Version 2.1 Release Notes INTRODUCTION: This document contains the release notes for the 2.1 version of Apache Jakarta Commons Lang. Commons Lang is a set of utility functions and reusable components that should be of use in any Java environment. INCOMPATIBLE CHANGES: - The Nestable interface defines the method indexOfThrowable(Class). Previously the implementations checked only for a specific Class. Now they check for subclasses of that Class as well. For most situations this will be the expected behaviour (ie. its a bug fix). If it causes problems, please use the ExceptionUtils.indexOfThrowable(Class) method instead. Note that the ExceptionUtils method is available in v1.0 and v2.0 of commons-lang and has not been changed. (An alternative to this is to change the public static matchSubclasses flag on NestableDelegate. However, we don't recommend that as a long-term solution.) - The StopWatch class has had much extra validation added. If your code previously relied on unusual aspects, it may no longer work. - Starting with version 2.1, Ant version 1.6.x is required to build. Copy junit.jar to ANT_HOME/lib. You can get JUnit from http://www.junit.org. See the developer's guide for more details. DEPRECATIONS: - The enum package has been renamed to enums for JDK1.5 compilance. All functionality is identical, just the package has changed. This package will be removed in v3.0. - NumberUtils.stringToInt - renamed to toInt - DateUtils - four constants, MILLIS_IN_* have been deprecated as they were defined as int not long. The replacements are MILLIS_PER_*. NEW FEATURES: New: - Mutable package - contains basic classes that hold an Object or primitive and provide both get and set methods. - DurationFormatUtils - provides various methods for formatting durations - CharEncoding - definitions of constants for character encoding work - CharUtils - utilities for working with characters Updated: - ArrayUtils - many more methods, especially List-like methods - BooleanUtils - isTrue and isFalse methods that handle null - ClassUtils - primitive to wrapper class conversion methods - ClassUtils - class name comparator - IllegalClassException - extra constructor for common instanceof case - NotImplementedException - supports nested exceptions - ObjectUtils - hashcode method handling null - StringUtils - isAsciiPrintable to check the contents of a string -- ordinalIndexOf to find the nth index of a string -- various remove methods to remove parts of a string -- various split methods to provide more control over splitting a string -- defaultIfEmpty to default a string if null or empty - SystemUtils - methods to get system properties as File objects -- extra constants representing system properties - Validate - new methods to check whether all elements in a collection are of a specific type - WordUtils - new methods to capitalize based on a set of specified delimiters - EqualsBuilder - now provides setter to internal state - ToStringStyle - new style, short prefix style - ReflectionToStringBuilder - more flags to control the output with regards to statics - ExceptionUtils - added indexOfType methods that check subclasses, thus leaving the existing indexOfThrowable method untouched (see incompatible changes section) - NumberUtils - various string to number parsing methods added - DateUtils - methods added to compare dates in various ways -- method to parse a date string using multiple patterns - FastDateFormat - extra formatting methods that take in a millisecond long value -- additional static factory methods - StopWatch - new methods for split behaviour BUG FIXES: 19331 General case: infinite loop: ToStringBuilder.reflectionToString 23174 EqualsBuilder.append(Object[], Object[]) throws NPE 23356 Make DurationFormatUtils public! 23557 WordUtils.capitalizeFully(String str) should take a delimiters 23683 New method for converting a primitive Class to its corresponding wrapper 23430 Minor javadoc fixes for StringUtils.contains(String, String) 23590 make optional parameters in FastDateFormat really optional 24056 Documentation error in StringUtils.replace 25227 StringEscapeUtils.unescapeHtml() doesn't handle hex entities 25454 new StringUtils.replaceChars behaves differently from old Ch 25560 DateUtils.truncate() is off by one hour when using a date in DST switch 'zone' 25627 DateUtils constants should be long 25683 Add method that validates Collection elements are a correct 25849 Add SystemUtils methods for directory properties. 26616 ClassCastException in Enum.equals(Object) 26699 Tokenizer Enhancements: reset input string, static CSV 26734 NullPointerException in EqualsBuilder.append(Object[], Object[]) 26877 Add SystemUtils.AWT_TOOLKIT and others. 26922 public static boolean DateUtils.equals(Date dt1, Date dt2) 27592 WordUtils capitalize improvement 27876 ReflectionToStringBuilder.toString(null) throws exception by design 27877 Make ClassUtils methods null-safe and not throw an IAE. 28468 StringUtils.defaultString: Documentation error 28554 Add hashCode-support to class ObjectUtils 29082 Enhancement of ExceptionUtils.CAUSE_METHOD_NAMES 29149 StringEscapeUtils.unescapeHtml() doesn't handle an empty entity 29294 lang.math.Fraction class deficiencies 29673 ExceptionUtils: new getCause() methodname (for tomcat) 29794 Add convenience format(long) methods to FastDateForma 30328 HashCodeBuilder does not use the same values as Boolean (fixed as documentation) 30334 New class proposal: CharacterEncoding 30674 parseDate class from HttpClient's DateParser class 30815 ArrayUtils.isEquals() throws ClassCastException when array1 30929 Nestable.indexOfThrowable(Class) uses Class.equals() to match 31395 DateUtils.truncate oddity at the far end of the Date spectrum 31478 Compile error with JDK 5 "enum" is a keyword 31572 o.a.c.lang.enum.ValuedEnum: 'enum'is a keyword in JDK1.5.0 31933 ToStringStyle setArrayEnd handled null incorrectly 32133 SystemUtils fails init on HP-UX 32198 Error in JavaDoc for StringUtils.chomp(String, String) 32625 Can't subclass EqualsBuilder because isEquals is private 33067 EqualsBuilder.append(Object[], Object[]) crashes with a NullPointerException if an element of the first array is null 33069 EqualsBuilder.append(Object[], Object[]) incorrectly checks that rhs[i] is instance of lhs[i]'s class 33574 unbalanced ReflectionToStringBuilder 33737 ExceptionUtils.addCauseMethodName(String) does not check for duplicates. --- NEW FILE: LICENSE.txt --- Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --- NEW FILE: NOTICE.txt --- This product includes software developed by The Apache Software Foundation (http://www.apache.org/). |
From: John C. <jc...@us...> - 2006-10-02 05:34:37
|
Update of /cvsroot/tolven/tolven/template In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13085/template Modified Files: ant-build.template Log Message: Add commons-lang Index: ant-build.template =================================================================== RCS file: /cvsroot/tolven/tolven/template/ant-build.template,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** ant-build.template 28 Sep 2006 07:14:23 -0000 1.47 --- ant-build.template 2 Oct 2006 05:34:35 -0000 1.48 *************** *** 81,84 **** --- 81,85 ---- commons-codec.location=${tolven.location}/lib/commons-codec commons-math.location=${tolven.location}/lib/commons-math + commons-lang.location=${tolven.location}/lib/commons-lang javamail.location=${tolven.location}/lib/javamail jaf.location=${tolven.location}/lib/jaf |
From: John C. <jc...@us...> - 2006-10-02 05:33:31
|
Update of /cvsroot/tolven/tolven/lib/commons-lang In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12670/lib/commons-lang Log Message: Directory /cvsroot/tolven/tolven/lib/commons-lang added to the repository |
From: John C. <jc...@us...> - 2006-10-02 05:30:24
|
Update of /cvsroot/tolven/tolvenEJB/src/org/tolven/gen/bean In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv11242/src/org/tolven/gen/bean Modified Files: GenMedical.java DemogMatcher.java CHRGeneratorBean.java GenSource.java Scenario.java Log Message: Add ePHR screens and generator Index: GenMedical.java =================================================================== RCS file: /cvsroot/tolven/tolvenEJB/src/org/tolven/gen/bean/GenMedical.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** GenMedical.java 29 Aug 2006 21:10:32 -0000 1.10 --- GenMedical.java 2 Oct 2006 05:30:08 -0000 1.11 *************** *** 14,20 **** --- 14,23 ---- package org.tolven.gen.bean; + import java.text.ParseException; import java.util.Date; import java.util.GregorianCalendar; + import javax.xml.bind.JAXBException; + import org.apache.commons.math.random.RandomData; import org.apache.commons.math.random.RandomDataImpl; *************** *** 22,27 **** --- 25,34 ---- import org.tolven.app.entity.MenuData; import org.tolven.app.entity.MenuStructure; + import org.tolven.ccr.ActorType; + import org.tolven.ccr.ActorType.Person; import org.tolven.core.entity.Account; import org.tolven.core.entity.TolvenUser; + import org.tolven.doc.entity.CCRException; + import org.tolven.doc.entity.DocCCR; import org.tolven.gen.entity.VirtualPerson; *************** *** 32,105 **** */ public class GenMedical { ! private MenuData patient = null; private Date now = null; private MenuLocal menu; - private VirtualPerson vp; - private TolvenUser user; private int startYear; ! MenuStructure msProblem; ! MenuStructure msProblemSum; ! MenuStructure msDisease; ! MenuStructure msActivity; ! MenuStructure msMhx; ! MenuStructure msLabResult; ! MenuStructure msLabResultSum; ! MenuStructure msRadResult; ! MenuStructure msRadResultSum; protected CHRGeneratorBean chrGen; protected RandomData rng = new RandomDataImpl(); /** * Construct a new medical data generator for a specific patient. * @param patient Contains the parent menu data (the patient) for the problems we'll be creating * @param now */ ! public GenMedical ( MenuLocal menu, MenuData patient, Date now, VirtualPerson vp, int startYear, CHRGeneratorBean chrGen, TolvenUser user) { this.menu = menu; ! this.patient = patient; this.now = now; ! this.vp = vp; this.startYear = startYear; this.chrGen = chrGen; - this.user = user; - msProblem = menu.findMenuStructure( patient.getAccount().getId(), "echr:patient:problems"); - msProblemSum = menu.findMenuStructure( patient.getAccount().getId(), "echr:patient:overview:summary:probsum"); - msDisease = menu.findMenuStructure( patient.getAccount().getId(), "echr:patients:disease"); - msActivity = menu.findMenuStructure( patient.getAccount().getId(), "echr:activity"); - msMhx = menu.findMenuStructure( patient.getAccount().getId(), "echr:patient:overview:summary:mhxsum"); - msLabResult = menu.findMenuStructure( patient.getAccount().getId(), "echr:patient:results:lab"); - msLabResultSum = menu.findMenuStructure( patient.getAccount().getId(), "echr:patient:overview:summary:labsum"); - msRadResult = menu.findMenuStructure( patient.getAccount().getId(), "echr:patient:results:rad"); - msRadResultSum = menu.findMenuStructure( patient.getAccount().getId(), "echr:patient:overview:summary:radsum"); } /** * Get the patient's age * @return The patient's age (in years) */ ! public int getAgeInYears( ) { ! return vp.getAgeInYears(now); } ! ! /** ! * Get Gender ! */ ! public String getGender() { ! return vp.getGender(); } /** ! * Get Date of birth */ ! public Date getDOB( ) { ! return vp.getDob(); } /** ! * Get Date of death */ ! public Date getDOD( ) { ! return vp.getDod(); } /** * Return a time relative to now --- 39,158 ---- */ public class GenMedical { ! ! public static class PatientMD { ! private MenuData patient = null; ! MenuStructure msProblem; ! MenuStructure msProblemSum; ! MenuStructure msDisease; ! MenuStructure msActivity; ! MenuStructure msMhx; ! MenuStructure msLabResult; ! MenuStructure msLabResultSum; ! MenuStructure msRadResult; ! MenuStructure msRadResultSum; ! ! public PatientMD( MenuLocal menu, MenuData patient ) { ! this.patient = patient; ! MenuStructure ms = patient.getMenuStructure(); ! if ("echr".equals(patient.getAccount().getKnownType())) { ! msDisease = menu.findMenuStructure( patient.getAccount().getId(), patient.getAccount().getKnownType() + ":patients:disease"); ! msActivity = menu.findMenuStructure( patient.getAccount().getId(), patient.getAccount().getKnownType() + ":activity"); ! } ! msProblem = menu.findDescendentMenuStructure( patient.getAccount().getId(), ms, "problems"); ! msProblemSum = menu.findDescendentMenuStructure( patient.getAccount().getId(), ms, "overview:summary:probsum"); ! msMhx = menu.findDescendentMenuStructure( patient.getAccount().getId(), ms, "overview:summary:mhxsum"); ! msLabResult = menu.findDescendentMenuStructure( patient.getAccount().getId(), ms, "results:lab"); ! msLabResultSum = menu.findDescendentMenuStructure( patient.getAccount().getId(), ms, "overview:summary:labsum"); ! msRadResult = menu.findDescendentMenuStructure( patient.getAccount().getId(), ms, "results:rad"); ! msRadResultSum = menu.findDescendentMenuStructure( patient.getAccount().getId(), ms, "overview:summary:radsum"); ! } ! } ! ! private PatientMD mdCHR = null; ! private PatientMD mdPHR = null; private Date now = null; + private Date dateOfDeath = null; private MenuLocal menu; private int startYear; ! private ActorType ccrPat; ! private boolean female; ! private boolean male; protected CHRGeneratorBean chrGen; protected RandomData rng = new RandomDataImpl(); + /** * Construct a new medical data generator for a specific patient. * @param patient Contains the parent menu data (the patient) for the problems we'll be creating * @param now + * @throws CCRException + * @throws JAXBException */ ! public GenMedical ( MenuLocal menu, MenuData mdCHR, MenuData mdPHR, Date now, int startYear, CHRGeneratorBean chrGen) throws JAXBException, CCRException { this.menu = menu; ! this.mdCHR = new PatientMD( menu, mdCHR ); ! this.mdPHR = new PatientMD( menu, mdPHR ); this.now = now; ! // We arbitrarily use the PHR patient ccd since we're just reading patient actor information ! DocCCR docCCR = (DocCCR) mdPHR.getDocument(); ! ccrPat = docCCR.getPatientActor(); ! // Figure out gender right away ! initGender(); this.startYear = startYear; this.chrGen = chrGen; } + /** * Get the patient's age * @return The patient's age (in years) + * @throws ParseException */ ! public int getAgeInYears( ) throws ParseException { ! Person person = ccrPat.getPerson(); ! if (person!=null && person.getDateOfBirth()!=null) { ! return person.getDateOfBirth().getAgeInYears(now); ! } ! return 0; } ! ! public Account getPHRAccount() { ! return mdPHR.patient.getAccount(); ! } ! ! public Account getCHRAccount() { ! return mdCHR.patient.getAccount(); } /** ! * If we cannot determine gender, then we assume thay are neither male nor female. ! * */ ! public void initGender() { ! Person person = ccrPat.getPerson(); ! if (person==null) return; ! if( person.getGender()==null) return; ! String gender = person.getGender().getText(); ! if (gender==null) return; ! if (gender.toLowerCase().startsWith("m")) male = true; ! if (gender.toLowerCase().startsWith("f")) female = true; } /** ! * Get Date of birth ! * @throws ParseException */ ! public Date getDOB( ) throws ParseException { ! Person person = ccrPat.getPerson(); ! if (person!=null && person.getDateOfBirth()!=null) { ! return person.getDateOfBirth().getDateValue(); ! } ! return null; } + public String getFamilyName( ) { + Person person = ccrPat.getPerson(); + if (person==null) return ""; + return person.getName().getCurrentName().getFamilyString(); + } /** * Return a time relative to now *************** *** 128,164 **** } ! public Account getAccount( ) { ! return patient.getAccount(); ! } ! ! /** ! * Generate a set of problems for this patient under echr:patient-nnn:overview:summary:probsum ! */ ! public void generateProblems( ) { ! // System.out.println( "[generateProblems] accountId: " + patient.getAccount().getId() ); ! // System.out.println( "[generateProblems] path: " + "echr:patient:overview:summary:probsum"); ! GregorianCalendar cal = new GregorianCalendar( ); ! cal.setTime( now ); ! cal.add(GregorianCalendar.YEAR, -7); ! generateProblem( cal.getTime(), "Congestive Heart Failure", "Active"); ! cal.setTime( now ); ! cal.add(GregorianCalendar.YEAR, -22); ! generateProblem( cal.getTime(), "Diabetes Mellitus", "Active"); ! cal.setTime( now ); ! cal.add(GregorianCalendar.YEAR, -16); ! generateProblem( cal.getTime(), "Hypertension", "Active"); ! cal.setTime( now ); ! cal.add(GregorianCalendar.YEAR, -3); ! generateProblem( cal.getTime(), "Myocardial Infarction", "Active"); ! } ! ! /** ! * Generate one problem ! * @return ! */ ! public MenuData generateProblem( Date onset, String problem, String status ) { MenuData md = new MenuData(); ! md.setMenuStructure( msProblem ); ! md.setParent01(patient); md.setDate01( onset); md.setString01(problem); --- 181,189 ---- } ! public void generateProblemDetail( PatientMD pmd, Date onset, String problem, String status ) { ! // Generate entry on problem list MenuData md = new MenuData(); ! md.setMenuStructure( pmd.msProblem ); ! md.setParent01(pmd.patient); md.setDate01( onset); md.setString01(problem); *************** *** 166,171 **** menu.persistMenuData( md); MenuData mds = new MenuData(); ! mds.setMenuStructure( msProblemSum ); ! mds.setParent01(patient); mds.setReference(md); mds.setDate01( onset); --- 191,197 ---- menu.persistMenuData( md); MenuData mds = new MenuData(); ! // Generate entry on problem summary ! mds.setMenuStructure( pmd.msProblemSum ); ! mds.setParent01(pmd.patient); mds.setReference(md); mds.setDate01( onset); *************** *** 173,258 **** mds.setString02(status); menu.persistMenuData( mds); // Add patient to disease list MenuData mdd = new MenuData(); ! mdd.setMenuStructure( msDisease ); ! mdd.setReference(patient); ! mdd.setDate01( patient.getDate01() ); mdd.setDate02( onset ); ! mdd.setString01(patient.getString01()); ! mdd.setString02(patient.getString02()); mdd.setString03(problem); ! mdd.setString04(patient.getString04()); menu.persistMenuData( mdd); - return md; - } - - /** - * Generate a set of medications for this patient under echr:patient-nnn:overview:summary:medsum - * @param patient Contains the parent menu data (the patient) data we'll be creating - * @param now - */ - public void generateMedications( ) { - MenuStructure ms = menu.findMenuStructure( patient.getAccount().getId(), "echr:patient:overview:summary:medsum"); - generateMedication( ms, "metformin (Glucophage XR), 500mg", "Refill"); - generateMedication(ms, "ezetimibe-simvastin (Vytorin) 10mg/20mg", "Active"); - generateMedication( ms, "insulin lispro (Humolog) 100 units/ml", "Active"); - generateMedication( ms, "vitamin C, 1000 IU", "Active"); - generateMedication( ms, "Super-cold formula", "Active"); - } - - /** - * Generate one medication - * @return - */ - public MenuData generateMedication( MenuStructure ms, String text, String status ) { - MenuData md = new MenuData(); - md.setMenuStructure( ms ); - md.setParent01(patient); - md.setString01(text); - md.setString02(status); - menu.persistMenuData( md); - return md; - } - /** - * Generate functional status for this patient under echr:patient-nnn:overview:summary:funStatsum - * @param patient Contains the parent menu data (the patient) data we'll be creating - * @param now - */ - public void generateFunctionalStatuses( ) { - MenuStructure ms = menu.findMenuStructure( patient.getAccount().getId(), "echr:patient:overview:summary:funStatsum"); - GregorianCalendar cal = new GregorianCalendar( ); - cal.setTime( now ); - cal.add(GregorianCalendar.YEAR, -1); - generateFunctionalStatus( ms, cal.getTime(), "Mobility - Limited"); } ! /** ! * Generate one functional status ! * @return ! */ ! public MenuData generateFunctionalStatus( MenuStructure ms, Date effective, String text ) { ! MenuData md = new MenuData(); ! md.setMenuStructure( ms ); ! md.setParent01(patient); ! md.setDate01( effective ); ! md.setString01(text); ! menu.persistMenuData( md); ! return md; ! } ! /** ! * Generate lab results for this patient under echr:patient-nnn:overview:summary:labsum ! * @param patient Contains the parent menu data (the patient) data we'll be creating ! * @param now ! */ ! public void generateLabResults( ) { ! GregorianCalendar cal = new GregorianCalendar( ); ! cal.setTime( now ); ! cal.add(GregorianCalendar.YEAR, -3); ! // generateLabResult( cal.getTime(), "Complete cbc w/auto wbc"); ! cal.setTime( now ); ! cal.add(GregorianCalendar.YEAR, -1); ! // generateLabResult( cal.getTime(), "Urinalysis, nonauto w/scope"); ! } /** --- 199,257 ---- mds.setString02(status); menu.persistMenuData( mds); + } + /** + * Generate one problem + * @return + */ + public void generateProblem( Date onset, String problem, String status ) { + generateProblemDetail( this.mdCHR, onset, problem, status ); + generateProblemDetail( this.mdPHR, onset, problem, status ); // Add patient to disease list MenuData mdd = new MenuData(); ! mdd.setMenuStructure( mdCHR.msDisease ); ! mdd.setReference(mdCHR.patient); ! mdd.setDate01( mdCHR.patient.getDate01() ); mdd.setDate02( onset ); ! mdd.setString01(mdCHR.patient.getString01()); ! mdd.setString02(mdCHR.patient.getString02()); mdd.setString03(problem); ! mdd.setString04(mdCHR.patient.getString04()); menu.persistMenuData( mdd); } ! // /** ! // * Generate one medication ! // * @return ! // */ ! // public void generateMedicationDetail( PatientMD pmd, String text, String status ) { ! // MenuData md = new MenuData(); ! // md.setMenuStructure( pmd.msMedication ); ! // md.setParent01(pmd.patient); ! // md.setString01(text); ! // md.setString02(status); ! // menu.persistMenuData( md); ! // } ! // /** ! // * Generate one medication ! // * @return ! // */ ! // public void generateMedication( String text, String status ) { ! // generateMedicationDetail( this.mdCHR, text, status ); ! // generateMedicationDetail( this.mdPHR, text, status ); ! // } ! // /** ! // * Generate one functional status ! // * @return ! // */ ! // public MenuData generateFunctionalStatus( Date effective, String text ) { ! // MenuData md = new MenuData(); ! // md.setMenuStructure( ms ); ! // md.setParent01(patient); ! // md.setDate01( effective ); ! // md.setString01(text); ! // menu.persistMenuData( md); ! // return md; ! // } /** *************** *** 264,268 **** * @return */ ! public void generateLabResult( String battery, LabTest test, int showInActivityIf) { // Anything before the start time we ignore. GregorianCalendar effectiveCal = new GregorianCalendar( ); --- 263,267 ---- * @return */ ! public void generateLabResultDetail( PatientMD pmd, String battery, LabTest test, int showInActivityIf) { // Anything before the start time we ignore. GregorianCalendar effectiveCal = new GregorianCalendar( ); *************** *** 272,277 **** // Normalized data should reference this entry MenuData md = new MenuData(); ! md.setMenuStructure( msLabResult ); ! md.setParent01(patient); md.setDate01( test.getEffectiveTime() ); md.setString01(battery); --- 271,276 ---- // Normalized data should reference this entry MenuData md = new MenuData(); ! md.setMenuStructure( pmd.msLabResult ); ! md.setParent01(pmd.patient); md.setDate01( test.getEffectiveTime() ); md.setString01(battery); *************** *** 285,291 **** // Summary entry referencing the result MenuData mds = new MenuData(); ! mds.setMenuStructure( msLabResultSum ); mds.setReference(md); ! mds.setParent01(patient); mds.setDate01( test.getEffectiveTime() ); mds.setString01(test.getTestName()); --- 284,290 ---- // Summary entry referencing the result MenuData mds = new MenuData(); ! mds.setMenuStructure( pmd.msLabResultSum ); mds.setReference(md); ! mds.setParent01(pmd.patient); mds.setDate01( test.getEffectiveTime() ); mds.setString01(test.getTestName()); *************** *** 301,309 **** // New Activity referencing the result just created MenuData mda = new MenuData(); ! mda.setMenuStructure( msActivity ); mds.setReference(md); mda.setDate01( test.getEffectiveTime() ); ! mda.setParent01(patient); ! mda.setString01(patient.getString02() + " " + patient.getString01()); mda.setString02(battery + " Result"); menu.persistMenuData( mda); --- 300,308 ---- // New Activity referencing the result just created MenuData mda = new MenuData(); ! mda.setMenuStructure( pmd.msActivity ); mds.setReference(md); mda.setDate01( test.getEffectiveTime() ); ! mda.setParent01(pmd.patient); ! mda.setString01(pmd.patient.getString02() + " " + pmd.patient.getString01()); mda.setString02(battery + " Result"); menu.persistMenuData( mda); *************** *** 311,325 **** } ! /** ! * Generate radiology (imaging) results for this patient under echr:patient-nnn:overview:summary:radsum ! * @param patient Contains the parent menu data (the patient) data we'll be creating ! * @param now ! */ ! public void generateRadResults( ) { ! MenuStructure ms = menu.findMenuStructure( patient.getAccount().getId(), "echr:patient:overview:summary:radsum"); ! GregorianCalendar cal = new GregorianCalendar( ); ! cal.setTime( now ); ! cal.add(GregorianCalendar.YEAR, -1); ! // generateRadResult( cal.getTime(), "Coronary angiogram"); } --- 310,316 ---- } ! public void generateLabResult( String battery, LabTest test, int showInActivityIf) { ! generateLabResultDetail( this.mdCHR, battery, test, showInActivityIf); ! generateLabResultDetail( this.mdPHR, battery, test, showInActivityIf); } *************** *** 328,332 **** * @return */ ! public void generateRadResult( Date effective, String test, String result, String interpretation ) { // Anything before the start time we ignore. GregorianCalendar effectiveCal = new GregorianCalendar( ); --- 319,323 ---- * @return */ ! public void generateRadResultDetail( PatientMD pmd, Date effective, String test, String result, String interpretation ) { // Anything before the start time we ignore. GregorianCalendar effectiveCal = new GregorianCalendar( ); *************** *** 334,339 **** if (effectiveCal.get(GregorianCalendar.YEAR) < this.getStartYear()) return; MenuData md = new MenuData(); ! md.setMenuStructure( msRadResult ); ! md.setParent01(patient); md.setDate01( effective ); md.setString01(test); --- 325,330 ---- if (effectiveCal.get(GregorianCalendar.YEAR) < this.getStartYear()) return; MenuData md = new MenuData(); ! md.setMenuStructure( pmd.msRadResult ); ! md.setParent01(pmd.patient); md.setDate01( effective ); md.setString01(test); *************** *** 344,350 **** // Summary entry referencing the result MenuData mds = new MenuData(); ! mds.setMenuStructure( msRadResultSum ); mds.setReference(md); ! mds.setParent01(patient); mds.setDate01( effective ); mds.setString01(test); --- 335,341 ---- // Summary entry referencing the result MenuData mds = new MenuData(); ! mds.setMenuStructure( pmd.msRadResultSum ); mds.setReference(md); ! mds.setParent01(pmd.patient); mds.setDate01( effective ); mds.setString01(test); *************** *** 360,368 **** // New Activity referencing the result just created MenuData mda = new MenuData(); ! mda.setMenuStructure( msActivity ); mds.setReference(md); mda.setDate01( effective ); ! mda.setParent01(patient); ! mda.setString01(patient.getString02() + " " + patient.getString01()); mda.setString02(test); menu.persistMenuData( mda); --- 351,359 ---- // New Activity referencing the result just created MenuData mda = new MenuData(); ! mda.setMenuStructure( pmd.msActivity ); mds.setReference(md); mda.setDate01( effective ); ! mda.setParent01(pmd.patient); ! mda.setString01(pmd.patient.getString02() + " " + pmd.patient.getString01()); mda.setString02(test); menu.persistMenuData( mda); *************** *** 370,424 **** } ! /** ! * Generate self-monitoring data for this patient under echr:patient-nnn:overview:summary:selfsum ! * @param patient Contains the parent menu data (the patient) data we'll be creating ! * @param now ! */ ! public void generateSelfAssessments() { ! MenuStructure ms = menu.findMenuStructure( patient.getAccount().getId(), "echr:patient:overview:summary:selfsum"); ! GregorianCalendar cal = new GregorianCalendar( ); ! cal.setTime( now ); ! cal.add(GregorianCalendar.YEAR, -1); ! generateSelfAssessment( ms, cal.getTime(), "Height & Weight"); ! cal.setTime( now ); ! cal.add(GregorianCalendar.YEAR, -1); ! generateSelfAssessment(ms, cal.getTime(), "Cardiac Monitoring"); ! cal.setTime( now ); ! cal.add(GregorianCalendar.YEAR, -1); ! generateSelfAssessment( ms, cal.getTime(), "Blood Pressure"); ! cal.setTime( now ); ! cal.add(GregorianCalendar.YEAR, -1); ! generateSelfAssessment( ms, cal.getTime(), "Respiratory Rate"); ! } ! ! /** ! * Generate one self-assessment ! * @return ! */ ! public MenuData generateSelfAssessment( MenuStructure ms, Date effective, String text ) { ! MenuData md = new MenuData(); ! md.setMenuStructure( ms ); ! md.setParent01(patient); ! md.setDate01( effective ); ! md.setString01(text); ! menu.persistMenuData( md); ! return md; } ! /** ! * Generate family history for this patient under echr:patient-nnn:overview:summary:mhxsum ! * @param patient Contains the parent menu data (the patient) data we'll be creating ! * @param now ! */ ! public void generateMedicalHistory( ) { ! GregorianCalendar cal = new GregorianCalendar( ); ! cal.setTime( now ); ! cal.add(GregorianCalendar.YEAR, -1); ! cal.add(GregorianCalendar.MONTH, 5); ! generateMedicalHistory( cal.getTime(), "New Patient", "Completed"); ! cal.setTime( now ); ! cal.add(GregorianCalendar.MONTH, -3); ! generateMedicalHistory( cal.getTime(), "Pre-visit questionnaire", "Pending"); ! } /** --- 361,381 ---- } ! public void generateRadResult( Date effective, String test, String result, String interpretation ) { ! generateRadResultDetail( this.mdCHR, effective, test, result, interpretation ); ! generateRadResultDetail( this.mdPHR, effective, test, result, interpretation ); } ! // /** ! // * Generate one self-assessment ! // * @return ! // */ ! // public void generateSelfAssessment( Date effective, String text ) { ! // MenuData md = new MenuData(); ! // md.setMenuStructure( pmd.ms ); ! // md.setParent01(pmd.patient); ! // md.setDate01( effective ); ! // md.setString01(text); ! // menu.persistMenuData( md); ! // } /** *************** *** 426,479 **** * @return */ ! public MenuData generateMedicalHistory( Date effective, String text, String status ) { MenuData md = new MenuData(); ! md.setMenuStructure( msMhx ); ! md.setParent01(patient); md.setDate01( effective ); md.setString01(text); md.setString02(status); menu.persistMenuData( md); - return md; - } - - /** - * Generate family history for this patient under echr:patient-nnn:overview:summary:fhxsum - * @param patient Contains the parent menu data (the patient) data we'll be creating - * @param now - */ - public void generateFamilyHistory( ) { - MenuStructure ms = menu.findMenuStructure( patient.getAccount().getId(), "echr:patient:overview:summary:fhxsum"); - // GregorianCalendar cal = new GregorianCalendar( ); - // cal.setTime( now ); - // cal.add(GregorianCalendar.YEAR, -1); - // generateFamilyHistory( patient, ms, cal.getTime(), "Item"); } ! /** ! * Generate one Family History item ! * @return ! */ ! public MenuData generateFamilyHistory( MenuStructure ms, Date effective, String text ) { ! MenuData md = new MenuData(); ! md.setMenuStructure( ms ); ! md.setParent01(patient); ! md.setDate01( effective ); ! md.setString01(text); ! menu.persistMenuData( md); ! return md; } ! /** ! * Generate immunization data for this patient under echr:patient-nnn:overview:summary:immsum ! * @param patient Contains the parent menu data (the patient) data we'll be creating ! * @param now ! */ ! public void generateImmunizations( ) { ! MenuStructure ms = menu.findMenuStructure( patient.getAccount().getId(), "echr:patient:overview:summary:immsum"); ! GregorianCalendar cal = new GregorianCalendar( ); ! cal.setTime( now ); ! cal.add(GregorianCalendar.YEAR, -1); ! generateImmunization( ms, cal.getTime(), "Influenza (Split virus, 6-35 mo. dosage)"); ! } /** --- 383,414 ---- * @return */ ! public void generateMedicalHistoryDetail( PatientMD pmd, Date effective, String text, String status ) { MenuData md = new MenuData(); ! md.setMenuStructure( pmd.msMhx ); ! md.setParent01(pmd.patient); md.setDate01( effective ); md.setString01(text); md.setString02(status); menu.persistMenuData( md); } ! public void generateMedicalHistory( Date effective, String text, String status ) { ! generateMedicalHistoryDetail( this.mdCHR, effective, text, status ); ! generateMedicalHistoryDetail( this.mdPHR, effective, text, status ); } ! // /** ! // * Generate one Family History item ! // * @return ! // */ ! // public MenuData generateFamilyHistory( Date effective, String text ) { ! // MenuData md = new MenuData(); ! // md.setMenuStructure( pmd.ms ); ! // md.setParent01(pmd.patient); ! // md.setDate01( effective ); ! // md.setString01(text); ! // menu.persistMenuData( md); ! // return md; ! // } /** *************** *** 481,493 **** * @return */ ! public MenuData generateImmunization(MenuStructure ms, Date effective, String text ) { ! MenuData md = new MenuData(); ! md.setMenuStructure( ms ); ! md.setParent01(patient); ! md.setDate01( effective ); ! md.setString01(text); ! menu.persistMenuData( md); ! return md; ! } /** * Add the patient to the NewActivity list as a "new patient" --- 416,428 ---- * @return */ ! // public MenuData generateImmunization(Date effective, String text ) { ! // MenuData md = new MenuData(); ! // md.setMenuStructure( pmd.ms ); ! // md.setParent01(pmd.patient); ! // md.setDate01( effective ); ! // md.setString01(text); ! // menu.persistMenuData( md); ! // return md; ! // } /** * Add the patient to the NewActivity list as a "new patient" *************** *** 496,510 **** * @param startYear * @return */ ! public void generateNewPatient( ) { Date effective; // New Activity referencing the result just created GregorianCalendar calDOB = new GregorianCalendar(); ! calDOB.setTime(vp.getDob()); GregorianCalendar calBegin = new GregorianCalendar(); calBegin.set(GregorianCalendar.YEAR, getStartYear() ); calBegin.set(GregorianCalendar.MONTH, 01 ); calBegin.set(GregorianCalendar.DAY_OF_MONTH, 01 ); ! if (calBegin.compareTo(calDOB) < 0) calBegin.setTime(vp.getDob()); // Choose a random time to add this new patient if (calBegin.getTimeInMillis() < getNow().getTime()) { --- 431,446 ---- * @param startYear * @return + * @throws ParseException */ ! public void generateNewPatient( ) throws ParseException { Date effective; // New Activity referencing the result just created GregorianCalendar calDOB = new GregorianCalendar(); ! calDOB.setTime(getDOB()); GregorianCalendar calBegin = new GregorianCalendar(); calBegin.set(GregorianCalendar.YEAR, getStartYear() ); calBegin.set(GregorianCalendar.MONTH, 01 ); calBegin.set(GregorianCalendar.DAY_OF_MONTH, 01 ); ! if (calBegin.compareTo(calDOB) < 0) calBegin.setTime(getDOB()); // Choose a random time to add this new patient if (calBegin.getTimeInMillis() < getNow().getTime()) { *************** *** 520,527 **** if (effective.after(recent.getTime())) { MenuData mda = new MenuData(); ! mda.setMenuStructure( msActivity ); mda.setDate01( effective ); ! mda.setParent01(patient); ! mda.setString01(patient.getString02() + " " + patient.getString01()); mda.setString02("New Patient"); menu.persistMenuData( mda); --- 456,463 ---- if (effective.after(recent.getTime())) { MenuData mda = new MenuData(); ! mda.setMenuStructure( mdCHR.msActivity ); mda.setDate01( effective ); ! mda.setParent01(mdCHR.patient); ! mda.setString01(mdCHR.patient.getString02() + " " + mdCHR.patient.getString01()); mda.setString02("New Patient"); menu.persistMenuData( mda); *************** *** 545,556 **** this.startYear = startYear; } ! public VirtualPerson getVp() { ! return vp; } ! public TolvenUser getUser() { ! return user; } ! public void setUser(TolvenUser user) { ! this.user = user; } --- 481,498 ---- this.startYear = startYear; } ! public boolean isFemale() { ! return female; } ! ! public boolean isMale() { ! return male; } ! ! public Date getDateOfDeath() { ! return dateOfDeath; ! } ! ! public void setDateOfDeath(Date dateOfDeath) { ! this.dateOfDeath = dateOfDeath; } Index: Scenario.java =================================================================== RCS file: /cvsroot/tolven/tolvenEJB/src/org/tolven/gen/bean/Scenario.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Scenario.java 21 Aug 2006 20:25:53 -0000 1.4 --- Scenario.java 2 Oct 2006 05:30:08 -0000 1.5 *************** *** 38,44 **** */ public boolean apply(GenMedical patient, Date startTime, Date endTime, RandomData rng) { ! System.out.println( "Generic Scenario " + getTitle() ! + " for " + patient.getVp().getFirst() + " " + patient.getVp().getLast() ! + " starting " + startTime + " ending " + endTime); return false; } --- 38,44 ---- */ public boolean apply(GenMedical patient, Date startTime, Date endTime, RandomData rng) { ! // System.out.println( "Generic Scenario " + getTitle() ! // + " for " + patient.getVp().getFirst() + " " + patient.getVp().getLast() ! // + " starting " + startTime + " ending " + endTime); return false; } Index: CHRGeneratorBean.java =================================================================== RCS file: /cvsroot/tolven/tolvenEJB/src/org/tolven/gen/bean/CHRGeneratorBean.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** CHRGeneratorBean.java 28 Sep 2006 19:07:39 -0000 1.8 --- CHRGeneratorBean.java 2 Oct 2006 05:30:08 -0000 1.9 *************** *** 15,18 **** --- 15,19 ---- import java.io.IOException; + import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; *************** *** 34,38 **** --- 35,41 ---- import org.apache.commons.math.random.RandomData; import org.apache.commons.math.random.RandomDataImpl; + import org.tolven.app.ECHRLocal; import org.tolven.app.MenuLocal; + import org.tolven.app.bean.ECHRBean; import org.tolven.app.entity.MenuData; import org.tolven.app.entity.MenuStructure; *************** *** 43,46 **** --- 46,50 ---- import org.tolven.ccr.ActorType.Address; import org.tolven.core.AccountDAOLocal; + import org.tolven.core.ActivationLocal; import org.tolven.core.entity.Account; import org.tolven.core.entity.TolvenUser; *************** *** 54,57 **** --- 58,62 ---- import org.tolven.gen.entity.VirtualPerson; import org.tolven.gen.util.GeneratePlace; + import org.tolven.security.TolvenPerson; /** *************** *** 70,73 **** --- 75,84 ---- @EJB + private ActivationLocal activationBean; + + @EJB + private ECHRLocal echr; + + @EJB private MenuLocal menu; *************** *** 81,85 **** private RandomData rng; private List<GenSource> criteria = null; - private static SimpleDateFormat iso8601d = new SimpleDateFormat("yyyy-MM-dd"); public CHRGeneratorBean( ) { --- 92,95 ---- *************** *** 163,166 **** --- 173,177 ---- father = null; } + MenuData mdFatherCHR = null; if (father!=null) { // And in this case, mom's name changes to dad's (just imply marriage) *************** *** 168,191 **** mother.setLast( father.getLast() ); family.setFamilyName( father.getLast() ); ! registerPatient( user, account, father, family, now, startYear ); System.out.println( "Registered father: " + father.getLast() + " " + father.getFirst()); } ! registerPatient( user, account, mother, family, now, startYear ); } // And pick up any remaining unattached men, too for ( VirtualPerson father : fathers ) { FamilyUnit family = new FamilyUnit(); placeGenerator.generateZipCode(family); placeGenerator.generateAddress(family); family.setFamilyName( father.getLast() ); ! registerPatient( user, account, father, family, now, startYear ); } } public void registerBaby( GenMedical mother, Date dob) { try { VirtualPerson person = personGen.generatePerson(); ! person.setLast(mother.getVp().getLast()); Date originalDOB = person.getDob(); person.setDob(dob); --- 179,259 ---- mother.setLast( father.getLast() ); family.setFamilyName( father.getLast() ); ! mdFatherCHR = registerPatient( user, account, father, family, now, startYear ); System.out.println( "Registered father: " + father.getLast() + " " + father.getFirst()); } ! MenuData mdMotherCHR = registerPatient( user, account, mother, family, now, startYear ); ! ! // Create a personal account for the famiily ! Account personalAccount = accountBean.createAccount( "ephr", "The " + mother.getLast() + " family" ); ! menu.createDefaultMenuStructure(personalAccount); ! // We're counting on this menu structure to exist for the rest of the process to work. ! menu.createDefaultMenuStructure(personalAccount); ! TolvenPerson tpm = new TolvenPerson( mother ); ! tpm.setUid( mother.getFirst().toLowerCase() + "." + mother.getLast().toLowerCase() ); ! tpm.setUserPassword( tpm.getUid() ); ! TolvenUser userm = activationBean.registerAndActivate(tpm, now); ! accountBean.addAccountUser(personalAccount, userm, now, true); ! ! MenuData mdMotherPHR = registerPatient( userm, personalAccount, mother, family, now, startYear ); ! if (mdMotherCHR!=null && mdMotherPHR!=null) { ! generateMedicalData( mdMotherCHR, mdMotherPHR, now, startYear, mother.getDod()); ! } ! if (father!=null) { ! TolvenPerson tpf = new TolvenPerson( father ); ! tpf.setUid( father.getFirst().toLowerCase() + "." + father.getLast().toLowerCase() ); ! tpf.setUserPassword( tpf.getUid() ); ! TolvenUser userf = activationBean.registerAndActivate(tpf, now); ! accountBean.addAccountUser(personalAccount, userf, now, true); ! MenuData mdFatherPHR = registerPatient( userf, personalAccount, father, family, now, startYear ); ! if (mdFatherCHR!=null && mdFatherPHR!=null) { ! generateMedicalData( mdFatherCHR, mdFatherPHR, now, startYear, father.getDod()); ! } ! } } // And pick up any remaining unattached men, too for ( VirtualPerson father : fathers ) { + // Create a personal account for the famiily + Account personalAccount = accountBean.createAccount( "ephr", father.getLast() + " Health Account" ); + menu.createDefaultMenuStructure(personalAccount); FamilyUnit family = new FamilyUnit(); placeGenerator.generateZipCode(family); placeGenerator.generateAddress(family); family.setFamilyName( father.getLast() ); ! // Clinical patient ! MenuData mdCHR = registerPatient( user, account, father, family, now, startYear ); ! TolvenPerson tpf = new TolvenPerson( father ); ! tpf.setUid( father.getFirst().toLowerCase() + "." + father.getLast().toLowerCase() ); ! tpf.setUserPassword( tpf.getUid() ); ! TolvenUser userf = activationBean.registerAndActivate(tpf, now); ! accountBean.addAccountUser(personalAccount, userf, now, true); ! // Personal patient ! MenuData mdPHR = registerPatient( userf, personalAccount, father, family, now, startYear ); ! if (mdCHR!=null && mdPHR!=null) { ! generateMedicalData( mdCHR, mdPHR, now, startYear, father.getDod()); ! } } } + /** + * Generate Medical data for a patient + * @throws CCRException + * @throws JAXBException + * @throws ParseException + */ + public void generateMedicalData( MenuData mdCHR, MenuData mdPHR, Date now, int startYear, Date dateOfDeath ) throws JAXBException, CCRException, ParseException { + // OK, nice start but let's give this person some medical data. + GenMedical genMed = new GenMedical( menu, mdCHR, mdPHR, now, startYear, this ); + genMed.setDateOfDeath(dateOfDeath); + genMed.generateNewPatient(); + for (GenSource gs: criteria) { + gs.generate( genMed ); + } + } + public void registerBaby( GenMedical mother, Date dob) { try { VirtualPerson person = personGen.generatePerson(); ! person.setLast(mother.getFamilyName()); Date originalDOB = person.getDob(); person.setDob(dob); *************** *** 195,199 **** start.setTime( dob ); System.out.print( "Registering baby: " + person.getDob()); ! registerPatient( mother.getUser(), mother.getAccount(), person, null, mother.getNow(), start.get(GregorianCalendar.YEAR) ); } catch (Exception e) { // forget it if there's a problem --- 263,271 ---- start.setTime( dob ); System.out.print( "Registering baby: " + person.getDob()); ! MenuData mdCHRBaby = registerPatient( null, mother.getCHRAccount(), person, null, mother.getNow(), start.get(GregorianCalendar.YEAR) ); ! MenuData mdPHRBaby = registerPatient( null, mother.getPHRAccount(), person, null, mother.getNow(), start.get(GregorianCalendar.YEAR) ); ! if (mdCHRBaby!=null && mdPHRBaby!=null) { ! generateMedicalData( mdCHRBaby, mdPHRBaby, mother.getNow(), mother.getStartYear(), person.getDod()); ! } } catch (Exception e) { // forget it if there's a problem *************** *** 201,204 **** --- 273,277 ---- } } + /** * This is where we add the generated patient to the full patient list of the account. *************** *** 208,217 **** * @throws IOException * @throws JAXBException */ ! public void registerPatient( TolvenUser user, Account account, VirtualPerson vp, FamilyUnit family, Date now, int startYear ) throws IOException, CCRException, JAXBException { initCriteria(); ! if (vp.getDob().after(now)) return; ! if (vp.getDod() != null && vp.getDod().before(now)) return; ! // Create the CCR document describing the patient. DocCCR ccr = documentLocal.createCCRDocument(user.getId(), account.getId()); --- 281,292 ---- * @throws IOException * @throws JAXBException + * @throws ParseException */ ! public MenuData registerPatient( TolvenUser user, Account account, VirtualPerson vp, FamilyUnit family, Date now, int startYear ) throws IOException, CCRException, JAXBException, ParseException { initCriteria(); ! if (vp.getDob().after(now)) return null; ! if (vp.getDod() != null && vp.getDod().before(now)) return null; ! ! String accountType = account.getKnownType(); // Create the CCR document describing the patient. DocCCR ccr = documentLocal.createCCRDocument(user.getId(), account.getId()); *************** *** 242,250 **** pat.getAddress().add(address); } if (vp.getDob()!=null) { DateTimeType dob = new DateTimeType(); ! dob.setExactDateTime(iso8601d.format(vp.getDob()) ); person.setDateOfBirth(dob); } if ("M".equals(vp.getGender())) { CodedDescriptionType genderCode = new CodedDescriptionType(); --- 317,327 ---- pat.getAddress().add(address); } + if (vp.getDob()!=null) { DateTimeType dob = new DateTimeType(); ! dob.setDateValue( vp.getDob() ); person.setDateOfBirth(dob); } + if ("M".equals(vp.getGender())) { CodedDescriptionType genderCode = new CodedDescriptionType(); *************** *** 258,294 **** } documentLocal.persistCCRDocument(ccr, true); ! // The generic, free-floating patient menu structure ! MenuStructure mspat = menu.findMenuStructure( account.getId(), "echr:patient"); ! // We have a live person at this point. ! MenuData mdpat = new MenuData(); ! mdpat.setMenuStructure( mspat ); ! mdpat.setDocument(ccr); ! mdpat.setDate01( vp.getDob()); ! mdpat.setString01(vp.getLast()); ! mdpat.setString02(vp.getFirst()); ! mdpat.setString03(vp.getMiddle()); ! mdpat.setString04(vp.getGender()); ! mdpat.setLong01(vp.getId()); // A weak link to Virtual person ! menu.persistMenuData(mdpat); ! // Put this patient on a/the patient list ! MenuStructure mspats = menu.findMenuStructure( account.getId(), "echr:patients:all"); ! MenuData mdpats = new MenuData(); ! mdpats.setMenuStructure( mspats ); ! mdpats.setDocument(ccr); ! mdpats.setDate01( mdpat.getDate01()); ! mdpats.setString01(mdpat.getString01()); ! mdpats.setString02(mdpat.getString02()); ! mdpats.setString03(mdpat.getString03()); ! mdpats.setString04(mdpat.getString04()); ! mdpats.setLong01(vp.getId()); // A weak link to Virtual person ! mdpats.setReference( mdpat); ! menu.persistMenuData(mdpats); ! // OK, nice start but let's give this person some medical data. ! GenMedical genMed = new GenMedical( menu, mdpat, now, vp, startYear, this, user); ! genMed.generateNewPatient(); ! for (GenSource gs: criteria) { ! gs.generate(genMed ); } // genMed.generateProblems( ); // genMed.generateMedications( ); --- 335,349 ---- } documentLocal.persistCCRDocument(ccr, true); + + MenuData mdpat = echr.addPatient(account, ccr, account.getKnownType() + ":patient", null); ! if ("echr".equals(accountType)) { ! echr.addPatient(account, ccr, account.getKnownType() + ":patients:all", mdpat); ! } + if ("ephr".equals(accountType)) { + echr.addPatient(account, ccr, account.getKnownType() + ":family", mdpat); + } + return mdpat; // genMed.generateProblems( ); // genMed.generateMedications( ); Index: DemogMatcher.java =================================================================== RCS file: /cvsroot/tolven/tolvenEJB/src/org/tolven/gen/bean/DemogMatcher.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** DemogMatcher.java 21 Aug 2006 00:26:29 -0000 1.2 --- DemogMatcher.java 2 Oct 2006 05:30:08 -0000 1.3 *************** *** 14,17 **** --- 14,18 ---- package org.tolven.gen.bean; + import java.text.ParseException; import java.util.Date; import java.util.GregorianCalendar; *************** *** 37,41 **** setLowAge( lowAge ); setHighAge( highAge); ! setGender( gender ); } --- 38,44 ---- setLowAge( lowAge ); setHighAge( highAge); ! if (gender!=null) { ! setGender( gender.substring(0, 1).toLowerCase() ); ! } } *************** *** 47,68 **** @Override protected boolean match(GenMedical patient) { ! int pAge = patient.getAgeInYears(); ! if (pAge < lowAge) return false; ! String pGender = patient.getGender(); ! if (!(pGender.equalsIgnoreCase(getGender()))) return false; return true; } protected Date getEarliest( GenMedical patient ) { ! GregorianCalendar eventLow = new GregorianCalendar(); ! eventLow.setTime(patient.getDOB()); ! eventLow.add( GregorianCalendar.YEAR, getLowAge()); ! return eventLow.getTime(); } protected Date getLatest( GenMedical patient ) { ! GregorianCalendar eventHigh = new GregorianCalendar(); ! eventHigh.setTime(patient.getDOB()); ! eventHigh.add( GregorianCalendar.YEAR, getHighAge()); ! return eventHigh.getTime(); } --- 50,96 ---- @Override protected boolean match(GenMedical patient) { ! int pAge; ! try { ! pAge = patient.getAgeInYears(); ! if (pAge < lowAge) return false; ! // If we're looking for a male, see if this is not one ! if ("m".equals(getGender())) { ! if (!patient.isMale()) return false; ! } ! // If we're looking for a female, see if this is not one ! if ("f".equals(getGender())) { ! if (!patient.isFemale()) return false; ! } ! } catch (ParseException e) { ! // TODO Auto-generated catch block ! e.printStackTrace(); ! } return true; } + protected Date getEarliest( GenMedical patient ) { ! try { ! GregorianCalendar eventLow = new GregorianCalendar(); ! eventLow.setTime(patient.getDOB()); ! eventLow.add( GregorianCalendar.YEAR, getLowAge()); ! return eventLow.getTime(); ! } catch (ParseException e) { ! // TODO Auto-generated catch block ! e.printStackTrace(); ! } ! return null; } protected Date getLatest( GenMedical patient ) { ! try { ! GregorianCalendar eventHigh = new GregorianCalendar(); ! eventHigh.setTime(patient.getDOB()); ! eventHigh.add( GregorianCalendar.YEAR, getHighAge()); ! return eventHigh.getTime(); ! } catch (ParseException e) { ! // TODO Auto-generated catch block ! e.printStackTrace(); ! } ! return null; } Index: GenSource.java =================================================================== RCS file: /cvsroot/tolven/tolvenEJB/src/org/tolven/gen/bean/GenSource.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** GenSource.java 21 Aug 2006 00:26:29 -0000 1.4 --- GenSource.java 2 Oct 2006 05:30:08 -0000 1.5 *************** *** 110,114 **** // Now carry out the appropriate scenario // Compute scenario endTime (dod or now) ! long msDOD = patient.getDOD( ).getTime(); long msNow = patient.getNow().getTime(); Date endTime; --- 110,114 ---- // Now carry out the appropriate scenario // Compute scenario endTime (dod or now) ! long msDOD = patient.getDateOfDeath( ).getTime(); long msNow = patient.getNow().getTime(); Date endTime; |
From: John C. <jc...@us...> - 2006-10-02 05:30:24
|
Update of /cvsroot/tolven/tolvenEJB In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv11242 Modified Files: build.xml Log Message: Add ePHR screens and generator Index: build.xml =================================================================== RCS file: /cvsroot/tolven/tolvenEJB/build.xml,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** build.xml 11 Aug 2006 00:22:15 -0000 1.10 --- build.xml 2 Oct 2006 05:30:08 -0000 1.11 *************** *** 15,18 **** --- 15,21 ---- <include name="*.jar"/> </fileset> + <fileset dir="${commons-lang.location}"> + <include name="*.jar"/> + </fileset> <fileset dir="${commons-math.location}"> <include name="*.jar"/> *************** *** 60,64 **** <manifest> <attribute name="Class-Path" ! value="./lib/commons-math-1.1.jar ./lib/jaxb-api.jar ./lib/jaxb-impl.jar ./lib/jaxb1-impl.jar ./lib/jsr173_1.0_api.jar"/> </manifest> <zipfileset dir="${httpcore.location}/lib"> --- 63,67 ---- <manifest> <attribute name="Class-Path" ! value="./lib/commons-lang-2.1.jar ./lib/commons-math-1.1.jar ./lib/jaxb-api.jar ./lib/jaxb-impl.jar ./lib/jaxb1-impl.jar ./lib/jsr173_1.0_api.jar"/> </manifest> <zipfileset dir="${httpcore.location}/lib"> *************** *** 82,85 **** --- 85,93 ---- </fileset> </copy> + <copy toDir="${tolvenEJB.location}/build/lib" overwrite="true" preservelastmodified="true"> + <fileset dir="${commons-lang.location}" > + <include name="*.jar"/> + </fileset> + </copy> </target> |
From: John C. <jc...@us...> - 2006-10-02 05:30:24
|
Update of /cvsroot/tolven/tolvenEJB/src/org/tolven/app/bean In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv11242/src/org/tolven/app/bean Modified Files: MenuBean.java MenuPath.java Added Files: ECHRBean.java Log Message: Add ePHR screens and generator Index: MenuBean.java =================================================================== RCS file: /cvsroot/tolven/tolvenEJB/src/org/tolven/app/bean/MenuBean.java,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** MenuBean.java 18 Sep 2006 15:41:41 -0000 1.30 --- MenuBean.java 2 Oct 2006 05:30:08 -0000 1.31 *************** *** 72,75 **** --- 72,90 ---- * @see MenuLocal */ + public MenuStructure findDescendentMenuStructure( long accountId, MenuStructure parent, String path) { + Account account = em.getReference( Account.class, accountId); + Query query = em.createQuery("SELECT m FROM MenuStructure m WHERE m.account = :account and m.path = :path"); + query.setParameter("account", account ); + query.setParameter("path", parent.getPath()+ ":" + path); + MenuStructure item = (MenuStructure)query.getSingleResult(); + // for (MenuStructure child : item.getChildren()) { // Make sure children are instantiated in the structure we return + // long id = child.getId(); + // } + return item; + } + + /** + * @see MenuLocal + */ public MenuData findMenuDataItem( MenuQueryControl ctrl ) { Query query = em.createQuery( "SELECT md FROM MenuData md WHERE md.account.id = :accountId and md.id = :id" ); *************** *** 242,259 **** } ! public MenuStructure createDefaultMenuStructure( Account account ) { ! System.out.println( "createDefaultMenuStructure, if needed, for account: " + account.getId()); ! MenuStructure root = getRootMenuStructure( account); ! if (root!=null) { ! System.out.println( "MenuStructure already exists"); ! return root; ! } ! // user parent template menuTemplate seq node menu text visible repeat role ! root = new MenuStructure( ! account, null, "tabs.xhtml", null, 1, "echr", null, "true", null, "tab" ); ! em.persist( root ); // New Activity Tab MenuStructure activity = new MenuStructure( ! account, root, "activity.xhtml", null, 1, "activity", "New Activity", "true", null, "tab" ); em.persist( activity ); em.persist( new MSColumn( activity, 1, "Date", "date01", "d MMM yyyy") ); --- 257,264 ---- } ! public void addNewActivityTab ( MenuStructure root ) { // New Activity Tab MenuStructure activity = new MenuStructure( ! root.getAccount(), root, "activity.xhtml", null, 1, "activity", "New Activity", "true", null, "tab" ); em.persist( activity ); em.persist( new MSColumn( activity, 1, "Date", "date01", "d MMM yyyy") ); *************** *** 264,274 **** em.persist( new MSColumn( activity, 6, "Due", "date02", "d MMM yyyy") ); // Patients Tab MenuStructure patients = new MenuStructure( ! account, root, "bar1.xhtml", null, 2, "patients", "Patients", "true", null, "tab" ); em.persist( patients ); MenuStructure allpatients = new MenuStructure( ! account, patients, "patients.xhtml", null, 1, "all", "My Patients", "true", "echr:patient", "tab" ); em.persist( allpatients ); em.persist( new MSColumn( allpatients, 1, "Name", "reference", "%s, %s", "string01,string02") ); --- 269,282 ---- em.persist( new MSColumn( activity, 6, "Due", "date02", "d MMM yyyy") ); + } + + public void addPatientsTab ( MenuStructure root ) { // Patients Tab MenuStructure patients = new MenuStructure( ! root.getAccount(), root, "bar1.xhtml", null, 2, "patients", "Patients", "true", null, "tab" ); em.persist( patients ); MenuStructure allpatients = new MenuStructure( ! root.getAccount(), patients, "patients.xhtml", null, 1, "all", "My Patients", "true", "echr:patient", "tab" ); em.persist( allpatients ); em.persist( new MSColumn( allpatients, 1, "Name", "reference", "%s, %s", "string01,string02") ); *************** *** 278,282 **** MenuStructure dispats = new MenuStructure( ! account, patients, "dispats.xhtml", null, 2, "disease", "Patients By Disease", "true", "echr:patient", "tab" ); em.persist( dispats ); em.persist( new MSColumn( dispats, 1, "Name", "reference", "%s, %s", "string01,string02") ); --- 286,290 ---- MenuStructure dispats = new MenuStructure( ! root.getAccount(), patients, "dispats.xhtml", null, 2, "disease", "Patients By Disease", "true", "echr:patient", "tab" ); em.persist( dispats ); em.persist( new MSColumn( dispats, 1, "Name", "reference", "%s, %s", "string01,string02") ); *************** *** 287,291 **** MenuStructure dmpats = new MenuStructure( ! account, patients, "dmpats.xhtml", null, 3, "dm", "Diabetes Registry", "true", "echr:patient", "tab" ); em.persist( dmpats ); em.persist( new MSColumn( dmpats, 1, "Diagnosis", "reference", "string03") ); --- 295,299 ---- MenuStructure dmpats = new MenuStructure( ! root.getAccount(), patients, "dmpats.xhtml", null, 3, "dm", "Diabetes Registry", "true", "echr:patient", "tab" ); em.persist( dmpats ); em.persist( new MSColumn( dmpats, 1, "Diagnosis", "reference", "string03") ); *************** *** 295,300 **** em.persist( new MSColumn( dmpats, 5, "Age", "date01", "age") ); em.persist( new MSColumn( dmpats, 6, "Sex", "string04", null) ); ! // Individual patient tab(s) MenuStructure patient = new MenuStructure( account, root, "patient.xhtml", "chartLink.xhtml", 3, "patient", "Patient", "false", "patient", "placeholder" ); --- 303,322 ---- em.persist( new MSColumn( dmpats, 5, "Age", "date01", "age") ); em.persist( new MSColumn( dmpats, 6, "Sex", "string04", null) ); + } ! public void addFamilyTab ( MenuStructure root ) { ! // Family Tab ! MenuStructure allpatients = new MenuStructure( ! root.getAccount(), root, "patients.xhtml", null, 1, "family", "My Family", "true", "ephr:patient", "tab" ); ! em.persist( allpatients ); ! em.persist( new MSColumn( allpatients, 1, "Name", "reference", "%s, %s", "string01,string02") ); ! em.persist( new MSColumn( allpatients, 2, "DOB", "date01", "d MMM yyyy") ); ! em.persist( new MSColumn( allpatients, 3, "Age", "date01", "age") ); ! em.persist( new MSColumn( allpatients, 4, "Sex", "string04", null) ); ! } ! ! public void addPatientTab ( MenuStructure root ) { ! Account account = root.getAccount(); ! // Individual patient tab(s) MenuStructure patient = new MenuStructure( account, root, "patient.xhtml", "chartLink.xhtml", 3, "patient", "Patient", "false", "patient", "placeholder" ); *************** *** 315,331 **** // PORTLETS MenuStructure probSummary = new MenuStructure( ! account, summary, "problemSummary.xhtml", null, 1, "probsum", "Problems", "true", null, "portlet" ); em.persist( probSummary ); MenuStructure medSummary = new MenuStructure( ! account, summary, "medsummary.xhtml", null, 2, "medsum", "Active Medications", "true", null, "portlet" ); em.persist( medSummary ); MenuStructure funStatSummary = new MenuStructure( ! account, summary, "funStatSummary.xhtml", null, 3, "funStatsum", "Functional Status", "true", null, "portlet" ); em.persist( funStatSummary ); MenuStructure labSummary = new MenuStructure( ! account, summary, "labSummary.xhtml", null, 4, "labsum", "Lab Results", "true", null, "portlet" ); em.persist( labSummary ); em.persist( new MSColumn( labSummary, 1, "Date", "date01", "yyyy") ); --- 337,353 ---- // PORTLETS MenuStructure probSummary = new MenuStructure( ! account, summary, "problemSummary.xhtml", null, 1, "probsum", "Problems", "true", root.getPath() + ":patient:problems", "portlet" ); em.persist( probSummary ); MenuStructure medSummary = new MenuStructure( ! account, summary, "medsummary.xhtml", null, 2, "medsum", "Active Medications", "true", root.getPath() + ":patient:meds", "portlet" ); em.persist( medSummary ); MenuStructure funStatSummary = new MenuStructure( ! account, summary, "funStatSummary.xhtml", null, 3, "funStatsum", "Functional Status", "true", root.getPath() + ":patient:funStat", "portlet" ); em.persist( funStatSummary ); MenuStructure labSummary = new MenuStructure( ! account, summary, "labSummary.xhtml", null, 4, "labsum", "Lab Results", "true", root.getPath() + ":patient:results:lab", "portlet" ); em.persist( labSummary ); em.persist( new MSColumn( labSummary, 1, "Date", "date01", "yyyy") ); *************** *** 334,338 **** MenuStructure radSummary = new MenuStructure( ! account, summary, "radSummary.xhtml", null, 5, "radsum", "Radiology Results", "true", null, "portlet" ); em.persist( radSummary ); em.persist( new MSColumn( radSummary, 1, "Date", "date01", "yyyy") ); --- 356,360 ---- MenuStructure radSummary = new MenuStructure( ! account, summary, "radSummary.xhtml", null, 5, "radsum", "Radiology Results", "true", root.getPath() + ":patient:results:rad", "portlet" ); em.persist( radSummary ); em.persist( new MSColumn( radSummary, 1, "Date", "date01", "yyyy") ); *************** *** 340,356 **** MenuStructure selfSummary = new MenuStructure( ! account, summary, "selfSummary.xhtml", null, 6, "selfsum", "Self-Monitoring", "true", null, "portlet" ); em.persist( selfSummary ); MenuStructure medhxfSummary = new MenuStructure( ! account, summary, "medhxfSummary.xhtml", null, 7, "mhxsum", "Medical History", "true", null, "portlet" ); em.persist( medhxfSummary ); MenuStructure famhxSummary = new MenuStructure( ! account, summary, "famhxSummary.xhtml", null, 8, "fhxsum", "Family History", "true", null, "portlet" ); em.persist( famhxSummary ); MenuStructure immSummary = new MenuStructure( ! account, summary, "immSummary.xhtml", null, 9, "immsum", "Immunizations", "true", null, "portlet" ); em.persist( immSummary ); --- 362,378 ---- MenuStructure selfSummary = new MenuStructure( ! account, summary, "selfSummary.xhtml", null, 6, "selfsum", "Self-Monitoring", "true", root.getPath() + ":patient:results:self", "portlet" ); em.persist( selfSummary ); MenuStructure medhxfSummary = new MenuStructure( ! account, summary, "medhxfSummary.xhtml", null, 7, "mhxsum", "Medical History", "true", root.getPath() + ":patient:medhx", "portlet" ); em.persist( medhxfSummary ); MenuStructure famhxSummary = new MenuStructure( ! account, summary, "famhxSummary.xhtml", null, 8, "fhxsum", "Family History", "true", root.getPath() + ":patient:fam", "portlet" ); em.persist( famhxSummary ); MenuStructure immSummary = new MenuStructure( ! account, summary, "immSummary.xhtml", null, 9, "immsum", "Immunizations", "true", root.getPath() + ":patient:imm", "portlet" ); em.persist( immSummary ); *************** *** 437,491 **** account, patient, "xml.xhtml", null, 9, "xml", "XML (demo)", "true", null, "tab" ); em.persist( xml ); - // Demo Tab MenuStructure demo = new MenuStructure( ! account, root, "bar1.xhtml", null, 4, "demo", "Demo", "true", null, "tab" ); em.persist( demo ); MenuStructure gen = new MenuStructure( ! account, demo, "bar2.xhtml", null, 1, "gen", "Generate Data", "true", null, "tab" ); em.persist( gen ); MenuStructure familyHx = new MenuStructure( ! account, gen, "test/testFamily.xhtml", null, 1, "fam", "Families", "true", null, "tab" ); em.persist( familyHx ); MenuStructure familyDetail = new MenuStructure( ! account, familyHx, "test/familyDetail.xhtml", null, 3, "detail", "Family detail", "true", null, "detail" ); em.persist( familyDetail ); MenuStructure people = new MenuStructure( ! account, gen, "test/genPerson.xhtml", null, 2, "people", "People", "true", null, "tab" ); em.persist( people ); MenuStructure patgen = new MenuStructure( ! account, gen, "test/patientGen.xhtml", null, 1, "patgen", "Patients", "true", null, "tab" ); em.persist( patgen ); MenuStructure perf = new MenuStructure( ! account, demo, "bar2.xhtml", null, 2, "perf", "Performance", "true", null, "tab" ); em.persist(perf); MenuStructure busy = new MenuStructure( ! account, perf, "test.xhtml", null, 1, "busy", "Busy", "true", null, "tab" ); em.persist( busy ); MenuStructure elapsed = new MenuStructure( ! account, perf, "test/perfLog.xhtml", null, 2, "elapsed", "Elapsed Times", "true", null, "tab" ); em.persist( elapsed ); MenuStructure debug = new MenuStructure( ! account, demo, "bar2.xhtml", null, 3, "debug", "Debug", "true", null, "tab" ); em.persist(debug); MenuStructure docs = new MenuStructure( ! account, debug, "test/docList.xhtml", null, 1, "docs", "Documents", "true", null, "tab" ); em.persist( docs ); MenuStructure docDetail = new MenuStructure( ! account, docs, "test/docDetail.xhtml", null, 3, "detail", "document Detail", "true", null, "detail" ); em.persist( docDetail ); // MenuStructure photos = new MenuStructure( // account, gen, "test/photoUpload.xhtml", null, 3, "photos", "Photos", "true", null, "tab" ); --- 459,546 ---- account, patient, "xml.xhtml", null, 9, "xml", "XML (demo)", "true", null, "tab" ); em.persist( xml ); + + } + + public void addDemoTab( MenuStructure root ) { // Demo Tab MenuStructure demo = new MenuStructure( ! root.getAccount(), root, "bar1.xhtml", null, 4, "demo", "Demo", "true", null, "tab" ); em.persist( demo ); MenuStructure gen = new MenuStructure( ! root.getAccount(), demo, "bar2.xhtml", null, 1, "gen", "Generate Data", "true", null, "tab" ); em.persist( gen ); MenuStructure familyHx = new MenuStructure( ! root.getAccount(), gen, "test/testFamily.xhtml", null, 1, "fam", "Families", "true", null, "tab" ); em.persist( familyHx ); MenuStructure familyDetail = new MenuStructure( ! root.getAccount(), familyHx, "test/familyDetail.xhtml", null, 3, "detail", "Family detail", "true", null, "detail" ); em.persist( familyDetail ); MenuStructure people = new MenuStructure( ! root.getAccount(), gen, "test/genPerson.xhtml", null, 2, "people", "People", "true", null, "tab" ); em.persist( people ); MenuStructure patgen = new MenuStructure( ! root.getAccount(), gen, "test/patientGen.xhtml", null, 1, "patgen", "Patients", "true", null, "tab" ); em.persist( patgen ); MenuStructure perf = new MenuStructure( ! root.getAccount(), demo, "bar2.xhtml", null, 2, "perf", "Performance", "true", null, "tab" ); em.persist(perf); MenuStructure busy = new MenuStructure( ! root.getAccount(), perf, "test.xhtml", null, 1, "busy", "Busy", "true", null, "tab" ); em.persist( busy ); MenuStructure elapsed = new MenuStructure( ! root.getAccount(), perf, "test/perfLog.xhtml", null, 2, "elapsed", "Elapsed Times", "true", null, "tab" ); em.persist( elapsed ); MenuStructure debug = new MenuStructure( ! root.getAccount(), demo, "bar2.xhtml", null, 3, "debug", "Debug", "true", null, "tab" ); em.persist(debug); MenuStructure docs = new MenuStructure( ! root.getAccount(), debug, "test/docList.xhtml", null, 1, "docs", "Documents", "true", null, "tab" ); em.persist( docs ); MenuStructure docDetail = new MenuStructure( ! root.getAccount(), docs, "test/docDetail.xhtml", null, 3, "detail", "document Detail", "true", null, "detail" ); em.persist( docDetail ); + + } + + public MenuStructure createDefaultMenuStructure( Account account ) { + System.out.println( "createDefaultMenuStructure, if needed, for account: " + account.getId()); + MenuStructure root = getRootMenuStructure( account); + if (root!=null) { + System.out.println( "MenuStructure already exists"); + return root; + } + if (account.getKnownType().equals("echr")) { + // user parent template menuTemplate seq node menu text visible repeat role + root = new MenuStructure( + account, null, "tabs.xhtml", null, 1, "echr", null, "true", null, "tab" ); + em.persist( root ); + addNewActivityTab( root ); + addPatientsTab( root ); + addPatientTab( root ); + addDemoTab( root ); + } + if (account.getKnownType().equals("ephr")) { + // user parent template menuTemplate seq node menu text visible repeat role + root = new MenuStructure( + account, null, "tabs.xhtml", null, 1, "ephr", null, "true", null, "tab" ); + em.persist( root ); + addFamilyTab( root ); + addPatientTab( root ); + addDemoTab( root ); + } + // MenuStructure photos = new MenuStructure( // account, gen, "test/photoUpload.xhtml", null, 3, "photos", "Photos", "true", null, "tab" ); Index: MenuPath.java =================================================================== RCS file: /cvsroot/tolven/tolvenEJB/src/org/tolven/app/bean/MenuPath.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** MenuPath.java 21 Aug 2006 00:26:30 -0000 1.3 --- MenuPath.java 2 Oct 2006 05:30:08 -0000 1.4 *************** *** 47,51 **** if (newPath.length()>0) newPath.append(":"); newPath.append(nodes[x]); ! if (nodeValues.containsKey(nodes[x])) { newPath.append("-"); newPath.append(nodeValues.get(nodes[x]).longValue()); --- 47,52 ---- if (newPath.length()>0) newPath.append(":"); newPath.append(nodes[x]); ! // A match and the value needs to be non-zero, then we copy it ! if (nodeValues.containsKey(nodes[x]) && nodeValues.get(nodes[x]).longValue()!=0) { newPath.append("-"); newPath.append(nodeValues.get(nodes[x]).longValue()); --- NEW FILE: ECHRBean.java --- package org.tolven.app.bean; import java.text.ParseException; import javax.annotation.EJB; import javax.ejb.Local; import javax.ejb.Stateless; import javax.xml.bind.JAXBException; import org.tolven.app.ECHRLocal; import org.tolven.app.MenuLocal; import org.tolven.app.entity.MenuData; import org.tolven.app.entity.MenuStructure; import org.tolven.ccr.ActorType; import org.tolven.ccr.ContinuityOfCareRecord; import org.tolven.ccr.DateTimeType; import org.tolven.ccr.PersonNameType; import org.tolven.core.entity.Account; import org.tolven.doc.entity.CCRException; import org.tolven.doc.entity.DocCCR; import org.tolven.gen.CHRGenerator; /** * Provide eCHR update behavior for Tolven Menu Data * @author John Churin * */ @Stateless @Local(ECHRLocal.class) public class ECHRBean { @EJB private MenuLocal menu; /** * Create a new patient from CCR * @param account * @param ccr * @param ref Optional referenced menu data such as when an item in a list (eg patients) references a drilldown item (eg patient) * @return MenuData containing the already persisted patient * @throws JAXBException * @throws ParseException * @throws CCRException */ public MenuData addPatient( Account account, DocCCR ccrDoc, String path, MenuData ref ) throws JAXBException, ParseException, CCRException { // The generic, free-floating patient menu structure MenuStructure mspat = menu.findMenuStructure( account.getId(), path); // We have a live person at this point. MenuData mdpat = new MenuData(); mdpat.setMenuStructure( mspat ); mdpat.setDocument(ccrDoc); ContinuityOfCareRecord ccr = ccrDoc.getCCR(); ActorType pat = ccrDoc.getPatientActor(); DateTimeType dob = pat.getPerson().getDateOfBirth(); if (dob.getExactDateTime()!=null) { mdpat.setDate01( dob.getDateValue()); } PersonNameType name = pat.getPerson().getName().getCurrentName(); if ( name!=null ) { mdpat.setString01(name.getFamilyString()); mdpat.setString02(name.getGivenString()); mdpat.setString03(name.getMiddleString()); } mdpat.setString04(pat.getPerson().getGender().getText()); mdpat.setReference( ref); // mdpat.setLong01(vp.getId()); // A weak link to Virtual person menu.persistMenuData(mdpat); return mdpat; } } |
From: John C. <jc...@us...> - 2006-10-02 05:30:24
|
Update of /cvsroot/tolven/tolvenEJB/src/org/tolven/ccr In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv11242/src/org/tolven/ccr Modified Files: PersonNameType.java DateTimeType.java Log Message: Add ePHR screens and generator Index: DateTimeType.java =================================================================== RCS file: /cvsroot/tolven/tolvenEJB/src/org/tolven/ccr/DateTimeType.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** DateTimeType.java 21 Jun 2006 02:29:54 -0000 1.2 --- DateTimeType.java 2 Oct 2006 05:30:08 -0000 1.3 *************** *** 9,13 **** --- 9,18 ---- package org.tolven.ccr; + import java.text.ParseException; + import java.text.SimpleDateFormat; import java.util.ArrayList; + import java.util.Calendar; + import java.util.Date; + import java.util.GregorianCalendar; import java.util.List; import javax.xml.bind.annotation.XmlAccessType; *************** *** 18,22 **** import org.tolven.ccr.DateTimeType.DateTimeRange.BeginRange; import org.tolven.ccr.DateTimeType.DateTimeRange.EndRange; ! /** --- 23,27 ---- import org.tolven.ccr.DateTimeType.DateTimeRange.BeginRange; import org.tolven.ccr.DateTimeType.DateTimeRange.EndRange; ! import org.apache.commons.lang.time.*; /** *************** *** 46,50 **** protected List<DateTimeRange> dateTimeRange; ! /** * Gets the value of the type property. * --- 51,58 ---- protected List<DateTimeRange> dateTimeRange; ! private static SimpleDateFormat iso8601 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZ"); ! private static SimpleDateFormat iso8601d = new SimpleDateFormat("yyyy-MM-dd"); ! ! /** * Gets the value of the type property. * *************** *** 70,73 **** --- 78,98 ---- } + public Date getDateValue( ) throws ParseException { + if (this.exactDateTime==null) return null; + return iso8601d.parse( this.exactDateTime.substring(0, 10) ); + } + + public Date getDateTimeValue( ) throws ParseException { + if (this.exactDateTime==null) return null; + return iso8601.parse( this.exactDateTime ); + } + + public void setDateTimeValue(Date date) { + this.exactDateTime = DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT.format(date); + } + + public void setDateValue(Date date) { + this.exactDateTime = DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT.format(date); + } /** * Gets the value of the exactDateTime property. *************** *** 106,109 **** --- 131,147 ---- } + public int getAgeInYears( Date now ) throws ParseException { + Date dob = getDateValue(); + if (dob==null) return 0; + GregorianCalendar n = new GregorianCalendar(); + n.setTime( now ); + GregorianCalendar b = new GregorianCalendar(); + b.setTime( dob ); + if (b.after(n)) return 0; + // Get age in years + int years = n.get(Calendar.YEAR)- b.get(Calendar.YEAR); + return years; + } + /** * Sets the value of the age property. Index: PersonNameType.java =================================================================== RCS file: /cvsroot/tolven/tolvenEJB/src/org/tolven/ccr/PersonNameType.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** PersonNameType.java 18 Sep 2006 15:40:02 -0000 1.2 --- PersonNameType.java 2 Oct 2006 05:30:08 -0000 1.3 *************** *** 45,48 **** --- 45,68 ---- protected List<String> nickName; + public static String combine( List<String> list) { + if (list==null) return ""; + StringBuffer sb = new StringBuffer( 100 ); + for (String s : list) { + sb.append(s); sb.append(" "); + } + return sb.toString(); + } + + public static List<String> split( String name ) { + List<String> components = new ArrayList<String>(); + String n[] = name.trim().split("\\s"); + for ( String s : n) { + if (s!=null) { + String st = s.trim(); + if (st.length()>0) components.add(s); + } + } + return components; + } /** * Gets the value of the given property. *************** *** 74,77 **** --- 94,100 ---- } + public String getGivenString() { + return combine(this.given); + } /** * Gets the value of the middle property. *************** *** 103,106 **** --- 126,132 ---- } + public String getMiddleString() { + return combine(this.middle); + } /** * Gets the value of the family property. *************** *** 132,135 **** --- 158,165 ---- } + public String getFamilyString() { + return combine(this.family); + } + /** * Gets the value of the suffix property. *************** *** 161,164 **** --- 191,198 ---- } + public String getSuffixString() { + return combine(this.suffix); + } + /** * Gets the value of the title property. *************** *** 190,193 **** --- 224,230 ---- } + public String getTitleString() { + return combine(this.title); + } /** * Gets the value of the nickName property. *************** *** 219,245 **** } ! public void setFamily(List<String> family) { this.family = family; } public void setGiven(List<String> given) { this.given = given; } public void setMiddle(List<String> middle) { this.middle = middle; } public void setNickName(List<String> nickName) { this.nickName = nickName; } ! public void setSuffix(List<String> suffix) { this.suffix = suffix; } public void setTitle(List<String> title) { this.title = title; } } --- 256,310 ---- } ! public String getNickNameString() { ! return combine(this.nickName); ! } ! ! public void setFamily(List<String> family) { this.family = family; } + public void setFamilyString(String family) { + this.family = split(family); + } + public void setGiven(List<String> given) { this.given = given; } + public void setGivenString(String given) { + this.given = split(given); + } + public void setMiddle(List<String> middle) { this.middle = middle; } + public void setMiddleString(String middle) { + this.middle = split(middle); + } + public void setNickName(List<String> nickName) { this.nickName = nickName; } ! public void setNickNameString(String nickName) { ! this.nickName = split(nickName); ! } ! ! public void setSuffix(List<String> suffix) { this.suffix = suffix; } + public void setSuffixString(String suffix) { + this.suffix = split(suffix); + } + public void setTitle(List<String> title) { this.title = title; } + public void setTitleString(String title) { + this.title = split(title); + } + } |
From: John C. <jc...@us...> - 2006-10-02 05:30:24
|
Update of /cvsroot/tolven/tolvenEJB/src/test/org/tolven/doc/entity In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv11242/src/test/org/tolven/doc/entity Added Files: InvitationTest.java Log Message: Add ePHR screens and generator --- NEW FILE: InvitationTest.java --- package test.org.tolven.doc.entity; import org.tolven.doc.bean.IdHash; import org.tolven.doc.entity.Invitation; import junit.framework.TestCase; public class InvitationTest extends TestCase { @Override protected void setUp() throws Exception { super.setUp(); } public void testGetId() { IdHash idHash = new IdHash( "ACBEFYQ", 5); for (long x = 0; x < 100; x++) { System.out.println( "IdHash [" + x + "]: " + idHash.encode(x)); } fail("Not yet implemented"); } public void testSetId() { fail("Not yet implemented"); } } |
From: John C. <jc...@us...> - 2006-10-02 05:30:24
|
Update of /cvsroot/tolven/tolvenEJB/src/org/tolven/doc/bean In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv11242/src/org/tolven/doc/bean Added Files: IdHash.java Log Message: Add ePHR screens and generator --- NEW FILE: IdHash.java --- package org.tolven.doc.bean; import org.apache.commons.math.random.RandomData; import org.apache.commons.math.random.RandomDataImpl; public class IdHash { String realAlphabet; String baseAlphabet = "ABCDEFGHJKLMNPRSTUVWXYZ123456789"; int length; RandomData rng; /** * Caller should get alphabet from tolven.properties such as * tolven.invitation.alphabet=abcdefgh546 * Punctuation characters are allowed but ignored. * case insensitive (the result is always lower case but uppercase will match) * Any character not in the supplied alphabet but in the base alphabet is * used as a noise character. Any character in the supplied alphabet that is not * in the base alphabet is ignored. * @param alphabet The letters and numbers of significance * @param length of the resuling invitation code * @throws IllegalArgumentException if characters are duplicated in the alphabet or if any letters in the * alphabet are not in the base alphabet. */ public IdHash(String alphabet, int length ) { rng = new RandomDataImpl(); if (alphabet.length() < 3) throw new IllegalArgumentException( "Need more than 3 characters in the aplhabet" ); if (length < 3) throw new IllegalArgumentException( "Code length must be longer than 3 characters" ); this.realAlphabet = alphabet; this.length = length; StringBuffer sb = new StringBuffer(alphabet.length()); for ( byte b : alphabet.getBytes()) { int c = sb.toString().indexOf(b); if (c < 0) { sb.append(b); } else { throw new IllegalArgumentException( "Alphabet [" + alphabet + "] has duplicate character " + b ); } } } public String encode( long id ) { return null; } } |
From: John C. <jc...@us...> - 2006-10-02 05:30:23
|
Update of /cvsroot/tolven/tolvenEJB/src/org/tolven/app In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv11242/src/org/tolven/app Modified Files: MenuLocal.java Added Files: ECHRLocal.java Log Message: Add ePHR screens and generator --- NEW FILE: ECHRLocal.java --- package org.tolven.app; import java.text.ParseException; import javax.xml.bind.JAXBException; import org.tolven.app.entity.MenuData; import org.tolven.core.entity.Account; import org.tolven.doc.entity.CCRException; import org.tolven.doc.entity.DocCCR; public interface ECHRLocal { /** * Create a new patient from CCR. * @param account * @param ccr * @param ref Optional referenced menu data such as when an item in a list (eg patients) references a drilldown item (eg patient) * @param path The path in Menu data to create this MenuData item * @return MenuData containing the already persisted patient */ public MenuData addPatient( Account account, DocCCR ccrDoc, String path, MenuData ref ) throws JAXBException, ParseException, CCRException; } Index: MenuLocal.java =================================================================== RCS file: /cvsroot/tolven/tolvenEJB/src/org/tolven/app/MenuLocal.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** MenuLocal.java 28 Aug 2006 19:37:36 -0000 1.12 --- MenuLocal.java 2 Oct 2006 05:30:08 -0000 1.13 *************** *** 33,42 **** public interface MenuLocal { /** ! * Given a Tolven accountId and the path to a menu item, return the corresponsing menustructure object. * @param userId tolven user id ! * @param path The path is colon-separated, without identifiers. For eample, "echr:activity" * @return The MenuStructure object (its parents will also be accessible from this object) */ public MenuStructure findMenuStructure( long accountId, String path ); /** * <p>Given a specific menuStructure and corresponding keys, return the data for that structure. --- 33,53 ---- public interface MenuLocal { /** ! * Given a Tolven accountId and the path to a menu item, return the corresponding menustructure object. * @param userId tolven user id ! * @param path The path is colon-separated, without identifiers. For example, "echr:activity" * @return The MenuStructure object (its parents will also be accessible from this object) */ public MenuStructure findMenuStructure( long accountId, String path ); + + /** + * Given a Tolven accountId, a menustructure and a partial path to a menu item within that menu structure, + * return the corresponsing menustructure object. + * @param userId tolven user id + * @param path The path is colon-separated, without identifiers. For example, if the path of the supplied menu structure is "echr:patient" then this paramater + * might contain "results:lab" + * @return The MenuStructure object (its parents will also be accessible from this object) + */ + public MenuStructure findDescendentMenuStructure( long accountId, MenuStructure parent, String path); + /** * <p>Given a specific menuStructure and corresponding keys, return the data for that structure. |
From: John C. <jc...@us...> - 2006-10-02 05:30:04
|
Update of /cvsroot/tolven/tolvenWEB/web/five In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10937/web/five Modified Files: problemSummary.xhtml radSummary.xhtml labSummary.xhtml Log Message: Add ePHR screens and generator Index: radSummary.xhtml =================================================================== RCS file: /cvsroot/tolven/tolvenWEB/web/five/radSummary.xhtml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** radSummary.xhtml 31 Aug 2006 05:17:12 -0000 1.5 --- radSummary.xhtml 2 Oct 2006 05:29:59 -0000 1.6 *************** *** 12,16 **** <h:dataTable id="radsum" value="#{menu.summaryMenuData}" var="md" cellspacing="0" border="0" cellpadding="3" width="100%"> <f:facet name="header"> ! <h:outputLink value="#" onclick="showPane('#{menu.menuDataItem.pathTo.echr.patient.results.rad.fullPath}')"> <h:outputText value="#{menu.thisMenu.text}"/> </h:outputLink> --- 12,16 ---- <h:dataTable id="radsum" value="#{menu.summaryMenuData}" var="md" cellspacing="0" border="0" cellpadding="3" width="100%"> <f:facet name="header"> ! <h:outputLink value="#" onclick="showPane('#{menu.drilldown}')"> <h:outputText value="#{menu.thisMenu.text}"/> </h:outputLink> *************** *** 25,29 **** </h:column> </h:dataTable> ! <h:outputLink rendered="#{menu.menuDataCount>6}" value="#" onclick="showPane('#{menu.menuDataItem.pathTo.echr.patient.results.rad.fullPath}')"> <h:outputText value="More..." style="COLOR: #333333; TEXT-DECORATION: none; FONT-SIZE: 75%;TEXT-ALIGN: right;"/> </h:outputLink> --- 25,29 ---- </h:column> </h:dataTable> ! <h:outputLink rendered="#{menu.menuDataCount>6}" value="#" onclick="showPane('#{menu.drilldown}')"> <h:outputText value="More..." style="COLOR: #333333; TEXT-DECORATION: none; FONT-SIZE: 75%;TEXT-ALIGN: right;"/> </h:outputLink> Index: problemSummary.xhtml =================================================================== RCS file: /cvsroot/tolven/tolvenWEB/web/five/problemSummary.xhtml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** problemSummary.xhtml 31 Aug 2006 05:17:12 -0000 1.5 --- problemSummary.xhtml 2 Oct 2006 05:29:59 -0000 1.6 *************** *** 12,16 **** <h:dataTable id="probsum" value="#{menu.menuData}" var="md" cellspacing="0" border="0" cellpadding="3" width="100%"> <f:facet name="header"> ! <h:outputLink value="#" onclick="showPane('#{menu.menuDataItem.pathTo.echr.patient.problems.fullPath}')"> <h:outputText value="#{menu.thisMenu.text}"/> </h:outputLink> --- 12,16 ---- <h:dataTable id="probsum" value="#{menu.menuData}" var="md" cellspacing="0" border="0" cellpadding="3" width="100%"> <f:facet name="header"> ! <h:outputLink value="#" onclick="showPane('#{menu.drilldown}')"> <h:outputText value="#{menu.thisMenu.text}"/> </h:outputLink> *************** *** 28,32 **** </h:column> </h:dataTable> ! <h:outputText rendered="#{menu.menuDataCount==0}" value="No problems"/> </ui:composition> </body> --- 28,35 ---- </h:column> </h:dataTable> ! <h:outputLink rendered="#{menu.menuDataCount>6}" value="#" onclick="showPane('#{menu.drilldown}')"> ! <h:outputText value="More..." style="COLOR: #333333; TEXT-DECORATION: none; FONT-SIZE: 75%;TEXT-ALIGN: right;"/> ! </h:outputLink> ! <h:outputText rendered="#{menu.menuDataCount==0}" value="No problems" style="COLOR: #333333; FONT-SIZE: 75%;TEXT-ALIGN: center;"/> </ui:composition> </body> Index: labSummary.xhtml =================================================================== RCS file: /cvsroot/tolven/tolvenWEB/web/five/labSummary.xhtml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** labSummary.xhtml 31 Aug 2006 05:17:12 -0000 1.5 --- labSummary.xhtml 2 Oct 2006 05:29:59 -0000 1.6 *************** *** 12,16 **** <h:dataTable id="labsum" value="#{menu.summaryMenuData}" var="md" cellspacing="0" border="0" cellpadding="3" width="100%"> <f:facet name="header"> ! <h:outputLink value="#" onclick="showPane('#{menu.menuDataItem.pathTo.echr.patient.results.lab.fullPath}')"> <h:outputText value="#{menu.thisMenu.text}"/> </h:outputLink> --- 12,16 ---- <h:dataTable id="labsum" value="#{menu.summaryMenuData}" var="md" cellspacing="0" border="0" cellpadding="3" width="100%"> <f:facet name="header"> ! <h:outputLink value="#" onclick="showPane('#{menu.drilldown}')"> <h:outputText value="#{menu.thisMenu.text}"/> </h:outputLink> *************** *** 28,32 **** </h:column> </h:dataTable> ! <h:outputLink rendered="#{menu.menuDataCount>6}" value="#" onclick="showPane('#{menu.menuDataItem.pathTo.echr.patient.results.lab.fullPath}')"> <h:outputText value="More..." style="COLOR: #333333; TEXT-DECORATION: none; FONT-SIZE: 75%;TEXT-ALIGN: right;"/> </h:outputLink> --- 28,32 ---- </h:column> </h:dataTable> ! <h:outputLink rendered="#{menu.menuDataCount>6}" value="#" onclick="showPane('#{menu.drilldown}')"> <h:outputText value="More..." style="COLOR: #333333; TEXT-DECORATION: none; FONT-SIZE: 75%;TEXT-ALIGN: right;"/> </h:outputLink> |
From: John C. <jc...@us...> - 2006-10-02 05:30:02
|
Update of /cvsroot/tolven/tolvenWEB/web/styles In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10937/web/styles Modified Files: patient.css clinical.css Added Files: echr.css ephr.css Log Message: Add ePHR screens and generator --- NEW FILE: echr.css --- body { FONT-SIZE: 75%; BACKGROUND: #f2f2f2; TEXT-ALIGN: left; margin: 0px; padding: 0px; } .loginArea { float:left; width:240px; border:solid 1px #3333CC; background-color:#99CCFF; padding:3px } .wholePage { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: 0px; FONT: 1em/1.4em Geneva, Arial, Helvetica, sans-serif; WIDTH: auto; COLOR: #000000; PADDING-TOP: 10px } .header { PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 100%; PADDING-TOP: 0px } .brandt { BACKGROUND: url(../images/lazye.png) no-repeat left top; FLOAT: left; WIDTH: 240px; HEIGHT: 90px; padding: 3px; } .brandp { BACKGROUND: url(../images/ePHR.png) no-repeat left top; FLOAT: left; WIDTH: 200px; HEIGHT: 40px } .brandc { BACKGROUND: url(../images/eCHR.png) no-repeat left top; FLOAT: left; WIDTH: 200px; HEIGHT: 40px } .info { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #6699cc; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #e5b27f 1px dotted } .allergies { PADDING-RIGHT: 10px; PADDING-LEFT: 0px; BACKGROUND: url(../images/phr_bkgd_allergies.gif) repeat-x left top; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: auto; PADDING-TOP: 0px; } .allergies img { FLOAT: left } .allergies p { PADDING-LEFT: 40px; BACKGROUND: url(../images/phr_img_warning.gif) no-repeat left center; PADDING-BOTTOM: 0.5em; MARGIN: 0px; WIDTH: auto; PADDING-TOP: 0.5em } .select { PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .customize { PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FLOAT: right; PADDING-BOTTOM: 8px; MARGIN: 0px; PADDING-TOP: 8px } .filter { PADDING-LEFT: 10px; BACKGROUND: #cc6600; PADDING-BOTTOM: 0.5em; COLOR: #ffffff } .filter UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .filter LI { PADDING-RIGHT: 14px; PADDING-LEFT: 0px; FLOAT: left; LIST-STYLE-IMAGE: url(none); PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .unknown { PADDING-LEFT: 10px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0.75em; COLOR: #333333 } .page { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; WIDTH: auto; PADDING-TOP: 10px; } .user { PADDING-RIGHT: 30px; FONT-WEIGHT: normal } .utility { PADDING-RIGHT: 10px; DISPLAY: block; FONT-WEIGHT: bold; FLOAT: left; COLOR: #999999; PADDING-TOP: 4px; FONT-FAMILY: 'Lucide Grande', Verdana, Arial, sans-serif; BORDER-COLLAPSE: collapse } .utility a { color: #8591b6 } .utility .field { BORDER-RIGHT: #999999 2px solid; BORDER-TOP: #999999 2px solid; BACKGROUND: #f2f2f2; BORDER-LEFT: #999999 2px solid; BORDER-BOTTOM: #999999 2px solid } .utility .button { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; BACKGROUND: #f2f2f2; PADDING-BOTTOM: 2px; COLOR: #999999; PADDING-TOP: 2px } .utility:hover { color: #666666 } .utility:hover a { COLOR: #0033cc } .utility:hover .field { BORDER-LEFT-COLOR: #666666; BACKGROUND: #ffffff; BORDER-BOTTOM-COLOR: #666666; BORDER-TOP-COLOR: #666666; BORDER-RIGHT-COLOR: #666666 } .utility:hover .button { BORDER-LEFT-COLOR: #666666; BACKGROUND: #ffffff; BORDER-BOTTOM-COLOR: #666666; BORDER-TOP-COLOR: #666666; BORDER-RIGHT-COLOR: #666666 } .utility .note { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0px; COLOR: #999999; LINE-HEIGHT: 1em; PADDING-TOP: 0px; TEXT-ALIGN: center } .content { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: auto; PADDING-TOP: 0px } .footer { PADDING-RIGHT: 10px; PADDING-LEFT: 20px; FONT-SIZE: 0.95em; PADDING-BOTTOM: 10px; COLOR: #999999; PADDING-TOP: 5px } .footer ul { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .footer li { PADDING-RIGHT: 20px; FLOAT: left; LIST-STYLE-IMAGE: url(none); LIST-STYLE-TYPE: none } .footer:hover { COLOR: #666666 } .footer:hover UL { COLOR: #666666 } .footer:hover LI { COLOR: #666666 } .footer:hover A { COLOR: #666666 } .footer A { COLOR: #999999 } .tabs { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; FONT: 1.2em 'Lucide Grande', Verdana, Arial, sans-serif; WIDTH: auto; COLOR: #ffffff; PADDING-TOP: 0px; height: 30px; } .tabs ul { float: right; PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .tabs li { float: left; PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; LIST-STYLE-IMAGE: url(none); PADDING-BOTTOM: 0px; MARGIN: 0px 2px 0px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .tabs li a { PADDING-RIGHT: 14px; DISPLAY: block; PADDING-LEFT: 20px; BACKGROUND: url(../images/phr_tab_inactive.gif) #90b4d7 no-repeat left top; PADDING-BOTTOM: 0.5em; MARGIN: 0px; COLOR: #ffffff; PADDING-TOP: 0.5em; TEXT-DECORATION: none } .tabs li a:hover { PADDING-RIGHT: 14px; DISPLAY: block; PADDING-LEFT: 20px; BACKGROUND: url(../images/phr_tab_inactive_hover.gif) #90b4d7 no-repeat left top; PADDING-BOTTOM: 0.5em; MARGIN: 0px; COLOR: #ffffff; PADDING-TOP: 0.5em; TEXT-DECORATION: none } .tabs li a.notice { PADDING-LEFT: 45px; BACKGROUND: url(../images/phr_img_notice.gif) #90b4d7 no-repeat left top; COLOR: #ffffff; TEXT-DECORATION: none } .tabs li a.notice:hover { PADDING-LEFT: 45px; BACKGROUND: url(../images/phr_img_notice_hover.gif) #90b4d7 no-repeat left top; COLOR: #ffffff; TEXT-DECORATION: none } .tabs li.active a { BACKGROUND: url(../images/phr_tab_active.gif) #6699cc no-repeat left top; COLOR: #ffffff; TEXT-DECORATION: none } .tabs img { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } .tabs .closetab { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: url(../images/phr_closetab_inactive.gif) no-repeat left center; PADDING-BOTTOM: 0px; MARGIN: 0px -8px 0px 10px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } .tabs .closetab:hover { BACKGROUND: url(../images/phr_closetab_inactive_over.gif) no-repeat left center } .bar1 { BACKGROUND: #6699cc; COLOR: #D9ECFF; FONT-FAMILY: 'Lucide Grande', Verdana, Arial, sans-serif; PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: auto; PADDING-TOP: 0px; height: 32px; } .bar1 ul { MARGIN: 0px; PADDING: 0px; } .bar1 li { DISPLAY: block; FLOAT: left; padding: 0px; } .bar1 li a { PADDING-RIGHT: 0.75em; DISPLAY: block; PADDING-LEFT: 0.75em; PADDING-BOTTOM: 8px; MARGIN: 0px; COLOR: #D9ECFF; PADDING-TOP: 7px; TEXT-DECORATION: none } .bar1 li a:hover { PADDING-RIGHT: 0.75em; DISPLAY: block; PADDING-LEFT: 0.75em; BACKGROUND: #527ba4; PADDING-BOTTOM: 8px; MARGIN: 0px; COLOR: #ffffff; PADDING-TOP: 7px; TEXT-DECORATION: none } .bar1 li.active a:hover { BACKGROUND: url(../images/phr_bkgd_nav1_active.gif) no-repeat center bottom; COLOR: #ffffff } .bar1 li.active a { BACKGROUND: url(../images/phr_bkgd_nav1_active.gif) no-repeat center bottom; COLOR: #ffffff } .bar2:before { content: "."; display:block; clear:both; height: 0px; visibility:hidden } .bar2 { COLOR: #4D4D4D; BACKGROUND: #ffffff; FONT-FAMILY: 'Lucide Grande', Verdana, Arial, sans-serif; BORDER-BOTTOM: 4px solid #666666; DISPLAY: block; MARGIN: 0px 0px 0px 5px; WIDTH: auto; padding: 0px; height: 33px; } .bar2 ul { MARGIN: 0px; PADDING: 0px; } .bar2 li { DISPLAY: block; FLOAT: left; padding: 0px; } .bar2 li a { PADDING-RIGHT: 0.75em; DISPLAY: block; PADDING-LEFT: 0.75em; PADDING-BOTTOM: 8px; MARGIN: 0px; COLOR: #4D4D4D; PADDING-TOP: 8px; TEXT-DECORATION: none; } .bar2 li.active a:hover { BACKGROUND: url(../images/bkgd_nav2_active.gif) no-repeat center bottom; COLOR: #191919 } .bar2 li a:hover { PADDING-RIGHT: 0.75em; DISPLAY: block; PADDING-LEFT: 0.75em; BACKGROUND: #cccccc; PADDING-BOTTOM: 8px; MARGIN: 0px; COLOR: #4D4D4D; PADDING-TOP: 8px; TEXT-DECORATION: none } .bar2 li.active a { BACKGROUND: url(../images/bkgd_nav2_active.gif) no-repeat center bottom; COLOR: #191919 } .pane { clear:both; BORDER-TOP: #6699cc 6px solid; BACKGROUND: #ffffff; MARGIN: 0px; BORDER-LEFT: #6699cc 6px solid; WIDTH: auto; padding: 0px } a:hover { BACKGROUND: #b8dcff } table { BORDER-COLLAPSE: collapse } tr { } td { } th { FONT-FAMILY: 'Lucide Grande', Verdana, Arial, sans-serif } thead th { background: url(../images/bkgd_th.gif) #cccccc repeat-x left center; color: #333333; FONT-FAMILY: 'Lucide Grande', Verdana, Arial, sans-serif; } th.sortup { BACKGROUND: url(../images/bkgd_th_active.gif) #99ccff repeat-x left center } th.sortup A { DISPLAY: block; BACKGROUND: url(../images/img_sortup.gif) no-repeat right center; COLOR: #333333; TEXT-DECORATION: none } th.sortdown { BACKGROUND: url(../images/bkgd_th_active.gif) #99ccff repeat-x left center } th.sortdown A { DISPLAY: block; BACKGROUND: url(../images/img_sortdown.gif) no-repeat right center; COLOR: #333333; TEXT-DECORATION: none } thead.sort A { DISPLAY: block; COLOR: #333333; TEXT-DECORATION: none } thead.sort A:hover { DISPLAY: block; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #333333; TEXT-DECORATION: none } col.columnhead { BORDER-RIGHT: #cccccc 1px solid } .activity { WIDTH: 100% } .activity TH { BORDER-RIGHT: #ffffff 1px solid; PADDING-RIGHT: 0.25em; PADDING-LEFT: 0.25em; PADDING-BOTTOM: 0.25em; PADDING-TOP: 0.25em; BORDER-BOTTOM: #666666 1px solid } .activity TH.caption { PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0.25em; MARGIN: 0px 0px 0em; FONT: bold italic 1em/1.6em Verdana, Arial, Helvetica, sans-serif; COLOR: #333333; PADDING-TOP: 0.5em; BORDER-BOTTOM: #999999 2px solid; BORDER-RIGHT-STYLE: none; TEXT-ALIGN: left } .activity TD { PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 0.5em; VERTICAL-ALIGN: top; PADDING-TOP: 0.5em; BORDER-RIGHT-STYLE: none; TEXT-ALIGN: left } .detail { WIDTH: 100% } .detail TH { BORDER-RIGHT: #ffffff 1px solid; PADDING-RIGHT: 0.25em; PADDING-LEFT: 0.25em; PADDING-BOTTOM: 0.25em; PADDING-TOP: 0.25em; BORDER-BOTTOM: #666666 1px solid } .detail TD { BORDER-RIGHT: #cccccc 1px dotted; PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 0.5em; VERTICAL-ALIGN: top; PADDING-TOP: 0.5em; TEXT-ALIGN: left } .detail TD TD { PADDING-RIGHT: 1em; PADDING-LEFT: 0px; PADDING-BOTTOM: 0.5em; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } .oldactivity { BACKGROUND: url(../images/bkgd_oldactivity.gif) #e6e6e6 repeat-x left top; PADDING-TOP: 10px } .timeCol { text-align: center; } .msCol { text-align: right; } .textCol { text-align: left; } .dataGrid { } .dataGridLoading { background-color: #E1E1E1; } #conceptDataGrid .col1 { width: 50px; text-align: right; } #conceptDataGrid .col2 { width: 100px; text-align: left; } #conceptDataGrid .col3 { width: 400px; text-align: left; } #labResultsDG .col1 { width: 150px; text-align: left; } #labResultsDG .col2 { width: 150px; text-align: left; } #labResultsDG .col3 { width: 350px; text-align: left; } #labResultsDG .col4 { width: 120px; text-align: left; } #problemListDG .col1 { width: 150px; text-align: left; } #problemListDG .col2 { width: 100px; text-align: left; } #problemListDG .col3 { width: 300px; text-align: left; } #problemListDG .col4 { width: 220px; text-align: left; } .overview { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; MARGIN: 0px; VERTICAL-ALIGN: top; WIDTH: 100%; PADDING-TOP: 0px; TEXT-ALIGN: left } .overview TD { PADDING-RIGHT: 20px; PADDING-LEFT: 0px; PADDING-BOTTOM: 20px; MARGIN: 0px; VERTICAL-ALIGN: top; PADDING-TOP: 10px; TEXT-ALIGN: left } .section { PADDING-RIGHT: 0px; BORDER-TOP: #999999 2px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 100%; PADDING-TOP: 0px; BORDER-COLLAPSE: collapse } .section CAPTION { PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0.25em; MARGIN: 0px 0px 0em; FONT: bold italic 1em/1.6em Verdana, Arial, Helvetica, sans-serif; COLOR: #333333; PADDING-TOP: 0px; TEXT-ALIGN: left } .section CAPTION A { COLOR: #333333; TEXT-DECORATION: none } .section CAPTION A:hover { BACKGROUND: none transparent scroll repeat 0% 0% } .section.unknown CAPTION A:hover { BACKGROUND: none transparent scroll repeat 0% 0%; content: url(../images/btn_showmore.gif) } .section TR { WIDTH: auto } .overview TABLE.section TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0.25em; MARGIN: 0px; PADDING-TOP: 0.25em } .overview TABLE.section TD.date { PADDING-RIGHT: 0px; PADDING-LEFT: 10px; MARGIN: 0px; WIDTH: 20px; TEXT-ALIGN: left } .overview TABLE.section TD.description { PADDING-RIGHT: 0px; PADDING-LEFT: 10px; MARGIN: 0px; TEXT-ALIGN: left } .overview TABLE.section TD.status { PADDING-RIGHT: 10px; PADDING-LEFT: 0px; MARGIN: 0px; WIDTH: 40px; TEXT-ALIGN: right } TR.alert { BACKGROUND: #cc0000; COLOR: #ffffff } .alert.unknown { BACKGROUND: url(../images/img_warning_sm.gif) no-repeat left center } .alert a { BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #ffffff; TEXT-DECORATION: none } .alert a:hover { BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #ffffff; TEXT-DECORATION: none } .alert.unknown a:hover { BACKGROUND: none transparent scroll repeat 0% 0%; content: url(../images/btn_removealert.gif) } .showhelp { MARGIN-LEFT: 10px } .showhelp:hover { BACKGROUND: none transparent scroll repeat 0% 0% } .showhelp img { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } FIELDSET { PADDING-RIGHT: 0em; PADDING-LEFT: 0em; PADDING-BOTTOM: 1em; MARGIN-LEFT: 20px; BORDER-TOP-STYLE: none; MARGIN-RIGHT: 20px; PADDING-TOP: 1em; BORDER-BOTTOM: #cccccc 1px dotted; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none } LEGEND { } LABEL { DISPLAY: block; PADDING-BOTTOM: 0.25em; PADDING-TOP: 0.25em } INPUT { } .title { DISPLAY: block; FLOAT: left; WIDTH: 140px; COLOR: #333333 } .radiobtn { DISPLAY: inline } .formbtn { MARGIN: 1em 20px } .checkbtn { DISPLAY: inline } --- NEW FILE: ephr.css --- body { FONT-SIZE: 75%; BACKGROUND: #f2f2f2; TEXT-ALIGN: left; margin: 0px; padding: 0px; } .loginArea { float:left; width:240px; border:solid 1px #3333CC; background-color:#99CCFF; padding:3px } .wholePage { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: 0px; FONT: 1em/1.4em Geneva, Arial, Helvetica, sans-serif; WIDTH: auto; COLOR: #000000; PADDING-TOP: 10px } .header { PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 100%; PADDING-TOP: 0px } .brandt { BACKGROUND: url(../images/lazye.png) no-repeat left top; FLOAT: left; WIDTH: 240px; HEIGHT: 90px; padding: 3px; } .brandp { BACKGROUND: url(../images/ePHR.png) no-repeat left top; FLOAT: left; WIDTH: 200px; HEIGHT: 40px } .brandc { BACKGROUND: url(../images/eCHR.png) no-repeat left top; FLOAT: left; WIDTH: 200px; HEIGHT: 40px } .info { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #CC6600; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #E5B27F 1px dotted } .allergies { PADDING-RIGHT: 10px; PADDING-LEFT: 0px; BACKGROUND: url(../images/bkgd_allergies.gif) repeat-x left top; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: auto; PADDING-TOP: 0px; } .allergies img { FLOAT: left } .allergies p { PADDING-LEFT: 40px; BACKGROUND: url(../images/img_warning.gif) no-repeat left center; PADDING-BOTTOM: 0.5em; MARGIN: 0px; WIDTH: auto; PADDING-TOP: 0.5em } .select { PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .customize { PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FLOAT: right; PADDING-BOTTOM: 8px; MARGIN: 0px; PADDING-TOP: 8px } .filter { PADDING-LEFT: 10px; BACKGROUND: #cc6600; PADDING-BOTTOM: 0.5em; COLOR: #ffffff } .filter UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .filter LI { PADDING-RIGHT: 14px; PADDING-LEFT: 0px; FLOAT: left; LIST-STYLE-IMAGE: url(none); PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .unknown { PADDING-LEFT: 10px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0.75em; COLOR: #333333 } .page { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; WIDTH: auto; PADDING-TOP: 10px; } .user { padding-right: 30px; font-weight: normal; } .utility { float: left; display: block; border-collapse: collapse; padding-right: 10px; font-family: 'Lucide Grande', Verdana, Arial, sans-serif; font-weight: bold; color: #999999; padding-top: 4px; } .utility a { color: #8591B6; } .utility .field { background: #F2F2F2; border: 2px solid #999999; } .utility .button { background: #F2F2F2; padding: 2px; font-weight: bold; color: #999999; } .utility:hover { color: #666666; } .utility:hover a { color: #0033CC; } .utility:hover .field { border-color: #666666; background: #FFFFFF; } .utility:hover .button { color: #666666; background: #FFFFFF; } .utility .note { font-size: 0.9em; font-weight: normal; color: #999999; text-align: center; padding: 0px; line-height: 1em; } .content { width: auto; margin: 0px; padding: 0px; } .footer { color: #666666; padding: 10px 10px 10px 20px; font-size: 0.95em; } .footer ul { margin: 0px; padding: 0px; } .footer li { PADDING-RIGHT: 20px; FLOAT: left; LIST-STYLE-IMAGE: url(none); LIST-STYLE-TYPE: none } .footer:hover { COLOR: #666666 } .footer:hover UL { COLOR: #666666 } .footer:hover LI { COLOR: #666666 } .footer:hover A { COLOR: #666666 } .footer A { COLOR: #999999 } .tabs { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; FONT: 1.2em 'Lucide Grande', Verdana, Arial, sans-serif; WIDTH: auto; COLOR: #ffffff; PADDING-TOP: 0px; height: 30px; } .tabs ul { float: right; PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .tabs li { float: left; PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; LIST-STYLE-IMAGE: url(none); PADDING-BOTTOM: 0px; MARGIN: 0px 2px 0px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .tabs li a { PADDING-RIGHT: 14px; DISPLAY: block; PADDING-LEFT: 20px; BACKGROUND: url(../images/tab_inactive.gif) #D79049 no-repeat left top; PADDING-BOTTOM: 0.5em; MARGIN: 0px; COLOR: #ffffff; PADDING-TOP: 0.5em; TEXT-DECORATION: none } .tabs li a:hover { PADDING-RIGHT: 14px; DISPLAY: block; PADDING-LEFT: 20px; BACKGROUND: url(../images/tab_inactive.gif) #D18A43 no-repeat left top; PADDING-BOTTOM: 0.5em; MARGIN: 0px; COLOR: #ffffff; PADDING-TOP: 0.5em; TEXT-DECORATION: none } .tabs li a.notice { PADDING-LEFT: 45px; BACKGROUND: url(../images/img_notice.gif) #D79049 no-repeat left top; COLOR: #ffffff; TEXT-DECORATION: none } .tabs li a.notice:hover { PADDING-LEFT: 45px; BACKGROUND: url(../images/img_notice_hover.gif) #D79049 no-repeat left top; COLOR: #ffffff; TEXT-DECORATION: none } .tabs li.active a { BACKGROUND: url(../images/tab_active.gif) #CC6600 no-repeat left top; COLOR: #ffffff; TEXT-DECORATION: none } .tabs img { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } .tabs .closetab { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: url(../images/closetab_inactive.gif) no-repeat left center; PADDING-BOTTOM: 0px; MARGIN: 0px -8px 0px 10px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } .tabs .closetab:hover { BACKGROUND: url(../images/closetab_inactive_over.gif) no-repeat left center } .bar1 { BACKGROUND: #CC6600; COLOR: #FFFFFF; FONT-FAMILY: 'Lucide Grande', Verdana, Arial, sans-serif; PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: auto; PADDING-TOP: 0px; height: 32px; } .bar1 ul { MARGIN: 0px; PADDING: 0px; } .bar1 li { DISPLAY: block; FLOAT: left; padding: 0px; } .bar1 li a { PADDING-RIGHT: 0.75em; DISPLAY: block; PADDING-LEFT: 0.75em; PADDING-BOTTOM: 8px; MARGIN: 0px; COLOR: #FFFFFF; PADDING-TOP: 7px; TEXT-DECORATION: none } .bar1 li a:hover { PADDING-RIGHT: 0.75em; DISPLAY: block; PADDING-LEFT: 0.75em; BACKGROUND: #D18A43; PADDING-BOTTOM: 8px; MARGIN: 0px; COLOR: #ffffff; PADDING-TOP: 7px; TEXT-DECORATION: none } .bar1 li.active a:hover { BACKGROUND: url(../images/bkgd_nav1_active.gif) no-repeat center bottom; COLOR: #ffffff } .bar1 li.active a { BACKGROUND: url(../images/bkgd_nav1_active.gif) no-repeat center bottom; COLOR: #ffffff } .bar2:before { content: "."; display:block; clear:both; height: 0px; visibility:hidden } .bar2 { COLOR: #333333; BACKGROUND: #ffffff; FONT-FAMILY: 'Lucide Grande', Verdana, Arial, sans-serif; BORDER-BOTTOM: 4px solid #666666; DISPLAY: block; MARGIN: 0px 0px 0px 5px; WIDTH: auto; padding: 0px; height: 33px; } .bar2 ul { MARGIN: 0px; PADDING: 0px; } .bar2 li { DISPLAY: block; FLOAT: left; padding: 0px; } .bar2 li a { PADDING-RIGHT: 0.75em; DISPLAY: block; PADDING-LEFT: 0.75em; PADDING-BOTTOM: 8px; MARGIN: 0px; COLOR: #333333; PADDING-TOP: 8px; TEXT-DECORATION: none; } .bar2 li.active a:hover { BACKGROUND: url(../images/bkgd_nav2_active.gif) no-repeat center bottom; COLOR: #191919 } .bar2 li a:hover { PADDING-RIGHT: 0.75em; DISPLAY: block; PADDING-LEFT: 0.75em; BACKGROUND: #cccccc; PADDING-BOTTOM: 8px; MARGIN: 0px; COLOR: #4D4D4D; PADDING-TOP: 8px; TEXT-DECORATION: none } .bar2 li.active a { BACKGROUND: url(../images/bkgd_nav2_active.gif) no-repeat center bottom; COLOR: #333333 } .pane { clear:both; BORDER-TOP: #CC6600 6px solid; BACKGROUND: #ffffff; MARGIN: 0px; BORDER-LEFT: #CC6600 6px solid; WIDTH: auto; padding: 0px } a:hover { BACKGROUND: #b8dcff } table { BORDER-COLLAPSE: collapse } tr { } td { } th { FONT-FAMILY: 'Lucide Grande', Verdana, Arial, sans-serif } thead th { background: url(../images/bkgd_th.gif) #cccccc repeat-x left center; color: #333333; FONT-FAMILY: 'Lucide Grande', Verdana, Arial, sans-serif; } th.sortup { BACKGROUND: url(../images/bkgd_th_active.gif) #99ccff repeat-x left center } th.sortup A { DISPLAY: block; BACKGROUND: url(../images/img_sortup.gif) no-repeat right center; COLOR: #333333; TEXT-DECORATION: none } th.sortdown { BACKGROUND: url(../images/bkgd_th_active.gif) #99ccff repeat-x left center } th.sortdown A { DISPLAY: block; BACKGROUND: url(../images/img_sortdown.gif) no-repeat right center; COLOR: #333333; TEXT-DECORATION: none } thead.sort A { DISPLAY: block; COLOR: #333333; TEXT-DECORATION: none } thead.sort A:hover { DISPLAY: block; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #333333; TEXT-DECORATION: none } col.columnhead { BORDER-RIGHT: #cccccc 1px solid } .activity { WIDTH: 100% } .activity TH { BORDER-RIGHT: #ffffff 1px solid; PADDING-RIGHT: 0.25em; PADDING-LEFT: 0.25em; PADDING-BOTTOM: 0.25em; PADDING-TOP: 0.25em; BORDER-BOTTOM: #666666 1px solid } .activity TH.caption { PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0.25em; MARGIN: 0px 0px 0em; FONT: bold italic 1em/1.6em Verdana, Arial, Helvetica, sans-serif; COLOR: #333333; PADDING-TOP: 0.5em; BORDER-BOTTOM: #999999 2px solid; BORDER-RIGHT-STYLE: none; TEXT-ALIGN: left } .activity TD { PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 0.5em; VERTICAL-ALIGN: top; PADDING-TOP: 0.5em; BORDER-RIGHT-STYLE: none; TEXT-ALIGN: left } .detail { WIDTH: 100% } .detail TH { BORDER-RIGHT: #ffffff 1px solid; PADDING-RIGHT: 0.25em; PADDING-LEFT: 0.25em; PADDING-BOTTOM: 0.25em; PADDING-TOP: 0.25em; BORDER-BOTTOM: #666666 1px solid } .detail TD { BORDER-RIGHT: #cccccc 1px dotted; PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 0.5em; VERTICAL-ALIGN: top; PADDING-TOP: 0.5em; TEXT-ALIGN: left } .detail TD TD { PADDING-RIGHT: 1em; PADDING-LEFT: 0px; PADDING-BOTTOM: 0.5em; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } .oldactivity { BACKGROUND: url(../images/bkgd_oldactivity.gif) #e6e6e6 repeat-x left top; PADDING-TOP: 10px } .timeCol { text-align: center; } .msCol { text-align: right; } .textCol { text-align: left; } .dataGrid { } .dataGridLoading { background-color: #E1E1E1; } #conceptDataGrid .col1 { width: 50px; text-align: right; } #conceptDataGrid .col2 { width: 100px; text-align: left; } #conceptDataGrid .col3 { width: 400px; text-align: left; } #labResultsDG .col1 { width: 150px; text-align: left; } #labResultsDG .col2 { width: 150px; text-align: left; } #labResultsDG .col3 { width: 350px; text-align: left; } #labResultsDG .col4 { width: 120px; text-align: left; } #problemListDG .col1 { width: 150px; text-align: left; } #problemListDG .col2 { width: 100px; text-align: left; } #problemListDG .col3 { width: 300px; text-align: left; } #problemListDG .col4 { width: 220px; text-align: left; } .overview { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; MARGIN: 0px; VERTICAL-ALIGN: top; WIDTH: 100%; PADDING-TOP: 0px; TEXT-ALIGN: left } .overview TD { PADDING-RIGHT: 20px; PADDING-LEFT: 0px; PADDING-BOTTOM: 20px; MARGIN: 0px; VERTICAL-ALIGN: top; PADDING-TOP: 10px; TEXT-ALIGN: left } .section { PADDING-RIGHT: 0px; BORDER-TOP: #999999 2px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 100%; PADDING-TOP: 0px; BORDER-COLLAPSE: collapse } .section CAPTION { PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0.25em; MARGIN: 0px 0px 0em; FONT: bold italic 1em/1.6em Verdana, Arial, Helvetica, sans-serif; COLOR: #333333; PADDING-TOP: 0px; TEXT-ALIGN: left } .section CAPTION A { COLOR: #333333; TEXT-DECORATION: none } .section CAPTION A:hover { BACKGROUND: none transparent scroll repeat 0% 0% } .section.unknown CAPTION A:hover { BACKGROUND: none transparent scroll repeat 0% 0%; content: url(../images/btn_showmore.gif) } .section TR { WIDTH: auto } .overview TABLE.section TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0.25em; MARGIN: 0px; PADDING-TOP: 0.25em } .overview TABLE.section TD.date { PADDING-RIGHT: 0px; PADDING-LEFT: 10px; MARGIN: 0px; WIDTH: 20px; TEXT-ALIGN: left } .overview TABLE.section TD.description { PADDING-RIGHT: 0px; PADDING-LEFT: 10px; MARGIN: 0px; TEXT-ALIGN: left } .overview TABLE.section TD.status { PADDING-RIGHT: 10px; PADDING-LEFT: 0px; MARGIN: 0px; WIDTH: 40px; TEXT-ALIGN: right } TR.alert { BACKGROUND: #cc0000; COLOR: #ffffff } .alert.unknown { BACKGROUND: url(../images/img_warning_sm.gif) no-repeat left center } .alert a { BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #ffffff; TEXT-DECORATION: none } .alert a:hover { BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #ffffff; TEXT-DECORATION: none } .alert.unknown a:hover { BACKGROUND: none transparent scroll repeat 0% 0%; content: url(../images/btn_removealert.gif) } .showhelp { MARGIN-LEFT: 10px } .showhelp:hover { BACKGROUND: none transparent scroll repeat 0% 0% } .showhelp img { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } FIELDSET { PADDING-RIGHT: 0em; PADDING-LEFT: 0em; PADDING-BOTTOM: 1em; MARGIN-LEFT: 20px; BORDER-TOP-STYLE: none; MARGIN-RIGHT: 20px; PADDING-TOP: 1em; BORDER-BOTTOM: #cccccc 1px dotted; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none } LEGEND { } LABEL { DISPLAY: block; PADDING-BOTTOM: 0.25em; PADDING-TOP: 0.25em } INPUT { } .title { DISPLAY: block; FLOAT: left; WIDTH: 140px; COLOR: #333333 } .radiobtn { DISPLAY: inline } .formbtn { MARGIN: 1em 20px } .checkbtn { DISPLAY: inline } Index: patient.css =================================================================== RCS file: /cvsroot/tolven/tolvenWEB/web/styles/patient.css,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** patient.css 23 Jul 2006 17:43:30 -0000 1.1 --- patient.css 2 Oct 2006 05:29:59 -0000 1.2 *************** *** 1,333 **** ! BODY { ! PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 75%; BACKGROUND: #f2f2f2; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; TEXT-ALIGN: left } .container { ! PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: 0px; FONT: 1em/1.4em Geneva, Arial, Helvetica, sans-serif; WIDTH: auto; COLOR: #000000; PADDING-TOP: 10px } .header { ! PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 100%; PADDING-TOP: 0px } .branding { ! BACKGROUND: url(../images/ePHR.png) no-repeat left top; FLOAT: left; WIDTH: 200px; HEIGHT: 40px ! } ! .info { ! PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #6699cc; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #e5b27f 1px dotted ! } ! .allergies { ! PADDING-RIGHT: 10px; PADDING-LEFT: 0px; BACKGROUND: url(../images/phr_bkgd_allergies.gif) repeat-x left top; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: auto; PADDING-TOP: 0px ! } ! .allergies IMG { ! FLOAT: left ! } ! .allergies P { ! PADDING-LEFT: 40px; BACKGROUND: url(../images/phr_img_warning.gif) no-repeat left center; PADDING-BOTTOM: 0.5em; MARGIN: 0px; WIDTH: auto; PADDING-TOP: 0.5em ! } ! .select { ! PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px ! } ! .customize { ! PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FLOAT: right; PADDING-BOTTOM: 8px; MARGIN: 0px; PADDING-TOP: 8px ! } ! .filter { ! PADDING-LEFT: 10px; BACKGROUND: #cc6600; PADDING-BOTTOM: 0.5em; COLOR: #ffffff ! } ! .filter UL { ! PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px ! } ! .filter LI { ! PADDING-RIGHT: 14px; PADDING-LEFT: 0px; FLOAT: left; LIST-STYLE-IMAGE: url(none); PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none ! } ! UNKNOWN { ! PADDING-LEFT: 10px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0.75em; COLOR: #333333 ! } ! #clear { ! CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: auto; PADDING-TOP: 0px; HEIGHT: 0px ! } ! .pane { ! CLEAR: both; PADDING-RIGHT: 0px; BORDER-TOP: #6699cc 6px solid; PADDING-LEFT: 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: #6699cc 6px solid; WIDTH: auto; PADDING-TOP: 0px ! } ! .page { ! PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; WIDTH: auto; PADDING-TOP: 10px } .utility { ! PADDING-RIGHT: 10px; DISPLAY: block; FONT-WEIGHT: bold; FLOAT: left; COLOR: #999999; PADDING-TOP: 4px; FONT-FAMILY: 'Lucide Grande', Verdana, Arial, sans-serif; BORDER-COLLAPSE: collapse } .user { ! PADDING-RIGHT: 30px; FONT-WEIGHT: normal } ! .utility A { ! COLOR: #8591b6 } .utility .field { ! BORDER-RIGHT: #999999 2px solid; BORDER-TOP: #999999 2px solid; BACKGROUND: #f2f2f2; BORDER-LEFT: #999999 2px solid; BORDER-BOTTOM: #999999 2px solid } .utility .button { ! PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; BACKGROUND: #f2f2f2; PADDING-BOTTOM: 2px; COLOR: #999999; PADDING-TOP: 2px } .utility:hover { ! COLOR: #666666 } ! .utility:hover A { ! COLOR: #0033cc } .utility:hover .field { ! BORDER-LEFT-COLOR: #666666; BACKGROUND: #ffffff; BORDER-BOTTOM-COLOR: #666666; BORDER-TOP-COLOR: #666666; BORDER-RIGHT-COLOR: #666666 } .utility:hover .button { ! BORDER-LEFT-COLOR: #666666; BACKGROUND: #ffffff; BORDER-BOTTOM-COLOR: #666666; BORDER-TOP-COLOR: #666666; BORDER-RIGHT-COLOR: #666666 } .utility .note { ! PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 0.9em; PADDING-BOTTOM: 0px; COLOR: #999999; LINE-HEIGHT: 1em; PADDING-TOP: 0px; TEXT-ALIGN: center } .content { ! PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: auto; PADDING-TOP: 0px } .footer { ! PADDING-RIGHT: 10px; PADDING-LEFT: 20px; FONT-SIZE: 0.95em; PADDING-BOTTOM: 10px; COLOR: #999999; PADDING-TOP: 10px } ! .footer:hover { ! COLOR: #666666 } ! .footer:hover UL { ! COLOR: #666666 } ! .footer:hover LI { ! COLOR: #666666 } ! .footer:hover A { ! COLOR: #666666 } ! .footer UL { ! PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } ! .footer LI { ! PADDING-RIGHT: 20px; FLOAT: left; LIST-STYLE-IMAGE: url(none); LIST-STYLE-TYPE: none } ! .footer A { ! COLOR: #999999 } ! .tab { ! PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; FONT: 1.2em 'Lucide Grande', Verdana, Arial, sans-serif; WIDTH: auto; COLOR: #ffffff; PADDING-TOP: 0px } ! .tab UL { ! PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } ! .tab LI { ! PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FLOAT: right; LIST-STYLE-IMAGE: url(none); PADDING-BOTTOM: 0px; MARGIN: 0px 2px 0px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } ! .tab LI A { ! PADDING-RIGHT: 14px; DISPLAY: block; PADDING-LEFT: 20px; BACKGROUND: url(../images/phr_tab_inactive.gif) #90b4d7 no-repeat left top; PADDING-BOTTOM: 0.5em; MARGIN: 0px; COLOR: #ffffff; PADDING-TOP: 0.5em; TEXT-DECORATION: none } ! .tab LI A:hover { ! PADDING-RIGHT: 14px; DISPLAY: block; PADDING-LEFT: 20px; BACKGROUND: url(../images/phr_tab_inactive_hover.gif) #90b4d7 no-repeat left top; PADDING-BOTTOM: 0.5em; MARGIN: 0px; COLOR: #ffffff; PADDING-TOP: 0.5em; TEXT-DECORATION: none } ! .tab LI A.notice { ! PADDING-LEFT: 45px; BACKGROUND: url(../images/phr_img_notice.gif) #90b4d7 no-repeat left top; COLOR: #ffffff; TEXT-DECORATION: none } ! .tab LI A.notice:hover { ! PADDING-LEFT: 45px; BACKGROUND: url(../images/phr_img_notice_hover.gif) #90b4d7 no-repeat left top; COLOR: #ffffff; TEXT-DECORATION: none } ! .tab LI A.active { ! FONT-WEIGHT: bold; BACKGROUND: url(../images/phr_tab_active.gif) #6699cc no-repeat left top; COLOR: #ffffff; TEXT-DECORATION: none } ! .tab IMG { ! BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } ! .tab .closetab { ! PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: url(../images/phr_closetab_inactive.gif) no-repeat left center; PADDING-BOTTOM: 0px; MARGIN: 0px -8px 0px 10px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } ! .tab .closetab:hover { ! BACKGROUND: url(../images/phr_closetab_inactive_over.gif) no-repeat left center } .nav1 { ! PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; BACKGROUND: #6699cc; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: auto; COLOR: #ffffff; PADDING-TOP: 0px; FONT-FAMILY: 'Lucide Grande', Verdana, Arial, sans-serif ! } ! .nav1 UL { ! PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } ! .nav1 LI { ! PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FLOAT: left; LIST-STYLE-IMAGE: url(none); PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } ! .nav1 LI A { ! PADDING-RIGHT: 0.75em; DISPLAY: block; PADDING-LEFT: 0.75em; PADDING-BOTTOM: 8px; MARGIN: 0px; COLOR: #ffffff; PADDING-TOP: 8px; TEXT-DECORATION: none } ! .nav1 LI A:hover { ! PADDING-RIGHT: 0.75em; DISPLAY: block; PADDING-LEFT: 0.75em; BACKGROUND: #527ba4; PADDING-BOTTOM: 8px; MARGIN: 0px; COLOR: #ffffff; PADDING-TOP: 8px; TEXT-DECORATION: none } ! .nav1 LI.active A { ! FONT-WEIGHT: bold; BACKGROUND: url(../images/phr_bkgd_nav1_active.gif) no-repeat center bottom; COLOR: #ffffff } .nav2 { ! PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 5px; WIDTH: auto; COLOR: #333333; PADDING-TOP: 0px; BORDER-BOTTOM: #666666 4px solid; FONT-FAMILY: 'Lucide Grande', Verdana, Arial, sans-serif } ! .nav2 UL { ! CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } ! .nav2 LI { ! PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FLOAT: left; LIST-STYLE-IMAGE: url(none); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } ! .nav2 LI A { ! PADDING-RIGHT: 0.75em; DISPLAY: block; PADDING-LEFT: 0.75em; PADDING-BOTTOM: 8px; MARGIN: 0px; COLOR: #333333; PADDING-TOP: 8px; TEXT-DECORATION: none } ! .nav2 LI A:hover { ! PADDING-RIGHT: 0.75em; DISPLAY: block; PADDING-LEFT: 0.75em; BACKGROUND: #cccccc; PADDING-BOTTOM: 8px; MARGIN: 0px; COLOR: #333333; PADDING-TOP: 8px; TEXT-DECORATION: none } ! .nav2 LI.active A { ! FONT-WEIGHT: bold; BACKGROUND: url(../images/bkgd_nav2_active.gif) no-repeat center bottom; COLOR: #333333 } ! A:hover { ! BACKGROUND: #b8dcff } ! TABLE { ! BORDER-COLLAPSE: collapse } ! TR { ! } ! TD { ! } ! TH { ! FONT-FAMILY: 'Lucide Grande', Verdana, Arial, sans-serif } ! THEAD TH { ! BACKGROUND: url(../images/bkgd_th.gif) #cccccc repeat-x left center; COLOR: #333333; FONT-FAMILY: 'Lucide Grande', Verdana, Arial, sans-serif; TEXT-ALIGN: center } ! TR.altrow { ! BACKGROUND: #f2f2f2 } ! TH.sortup { ! BACKGROUND: url(../images/bkgd_th_active.gif) #99ccff repeat-x left center } ! TH.sortup A { ! DISPLAY: block; BACKGROUND: url(../images/img_sortup.gif) no-repeat right center; COLOR: #333333; TEXT-DECORATION: none } ! TH.sortdown { ! BACKGROUND: url(../images/bkgd_th_active.gif) #99ccff repeat-x left center } ! TH.sortdown A { ! DISPLAY: block; BACKGROUND: url(../images/img_sortdown.gif) no-repeat right center; COLOR: #333333; TEXT-DECORATION: none } ! THEAD.sort A { ! DISPLAY: block; COLOR: #333333; TEXT-DECORATION: none } ! THEAD.sort A:hover { ! DISPLAY: block; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #333333; TEXT-DECORATION: none } ! COL.columnhead { ! BORDER-RIGHT: #cccccc 1px solid } .activity { ! WIDTH: 100% } ! .activity TH { ! BORDER-RIGHT: #ffffff 1px solid; PADDING-RIGHT: 0.25em; PADDING-LEFT: 0.25em; PADDING-BOTTOM: 0.25em; PADDING-TOP: 0.25em; BORDER-BOTTOM: #666666 1px solid } ! .activity TH.caption { ! PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0.25em; MARGIN: 0px 0px 0em; FONT: bold italic 1em/1.6em Verdana, Arial, Helvetica, sans-serif; COLOR: #333333; PADDING-TOP: 0.5em; BORDER-BOTTOM: #999999 2px solid; BORDER-RIGHT-STYLE: none; TEXT-ALIGN: left } ! .activity TD { ! PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 0.5em; VERTICAL-ALIGN: top; PADDING-TOP: 0.5em; BORDER-RIGHT-STYLE: none; TEXT-ALIGN: left } .detail { ! WIDTH: 100% ! } ! .detail TH { ! BORDER-RIGHT: #ffffff 1px solid; PADDING-RIGHT: 0.25em; PADDING-LEFT: 0.25em; PADDING-BOTTOM: 0.25em; PADDING-TOP: 0.25em; BORDER-BOTTOM: #666666 1px solid ! } ! .detail TD { ! BORDER-RIGHT: #cccccc 1px dotted; PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 0.5em; VERTICAL-ALIGN: top; PADDING-TOP: 0.5em; TEXT-ALIGN: left } ! .detail TD TD { ! PADDING-RIGHT: 1em; PADDING-LEFT: 0px; PADDING-BOTTOM: 0.5em; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } ! .oldactivity { ! BACKGROUND: url(../images/bkgd_oldactivity.gif) #e6e6e6 repeat-x left top; PADDING-TOP: 10px } ! UNKNOWN { ! COLOR: #333333 } .overview { ! PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; MARGIN: 0px; VERTICAL-ALIGN: top; WIDTH: 100%; PADDING-TOP: 0px; TEXT-ALIGN: left } ! .overview TD { ! PADDING-RIGHT: 20px; PADDING-LEFT: 0px; PADDING-BOTTOM: 20px; MARGIN: 0px; VERTICAL-ALIGN: top; PADDING-TOP: 10px; TEXT-ALIGN: left } .section { ! PADDING-RIGHT: 0px; BORDER-TOP: #999999 2px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 100%; PADDING-TOP: 0px; BORDER-COLLAPSE: collapse ! } ! .section CAPTION { ! PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0.25em; MARGIN: 0px 0px 0em; FONT: bold italic 1em/1.6em Verdana, Arial, Helvetica, sans-serif; COLOR: #333333; PADDING-TOP: 0px; TEXT-ALIGN: left ! } ! .section CAPTION A { ! COLOR: #333333; TEXT-DECORATION: none ! } ! .section CAPTION A:hover { ! BACKGROUND: none transparent scroll repeat 0% 0% ! } ! .section CAPTION A:hover:unknown { ! BACKGROUND: none transparent scroll repeat 0% 0%; content: url(../images/btn_showmore.gif) ! } ! .section TR { ! WIDTH: auto ! } ! .overview TABLE.section TD { ! PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0.25em; MARGIN: 0px; PADDING-TOP: 0.25em ! } ! .overview TABLE.section TD.date { ! PADDING-RIGHT: 0px; PADDING-LEFT: 10px; MARGIN: 0px; WIDTH: 20px; TEXT-ALIGN: left ! } ! .overview TABLE.section TD.description { ! PADDING-RIGHT: 0px; PADDING-LEFT: 10px; MARGIN: 0px; TEXT-ALIGN: left ! } ! .overview TABLE.section TD.status { ! PADDING-RIGHT: 10px; PADDING-LEFT: 0px; MARGIN: 0px; WIDTH: 40px; TEXT-ALIGN: right ! } ! TR.alert { ! BACKGROUND: #cc0000; COLOR: #ffffff ! } ! UNKNOWN { ! BACKGROUND: url(../images/img_warning_sm.gif) no-repeat left center ! } ! .alert A { ! BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #ffffff; TEXT-DECORATION: none ! } ! .alert A:hover { ! BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #ffffff; TEXT-DECORATION: none ! } ! .alert A:hover:unknown { ! BACKGROUND: none transparent scroll repeat 0% 0%; content: url(../images/btn_removealert.gif) ! } ! .showhelp { ! MARGIN-LEFT: 10px ! } ! .showhelp:hover { ! BACKGROUND: none transparent scroll repeat 0% 0% ! } ! .showhelp IMG { ! BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none ! } ! FIELDSET { ! PADDING-RIGHT: 0em; PADDING-LEFT: 0em; PADDING-BOTTOM: 1em; MARGIN-LEFT: 20px; BORDER-TOP-STYLE: none; MARGIN-RIGHT: 20px; PADDING-TOP: 1em; BORDER-BOTTOM: #cccccc 1px dotted; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none ! } ! LEGEND { ! } ! LABEL { ! DISPLAY: block; PADDING-BOTTOM: 0.25em; PADDING-TOP: 0.25em } ! INPUT { ! } ! .title { ! DISPLAY: block; FLOAT: left; WIDTH: 140px; COLOR: #333333 } ! .radiobtn { ! DISPLAY: inline } ! .formbtn { ! MARGIN: 1em 20px } ! .checkbtn { ! DISPLAY: inline } --- 1,421 ---- ! ! body { ! margin: 0px; ! padding: 0px; ! font-size: 75%; ! background: #F2F2F2; ! text-align: left; } .container { ! margin: 0px; ! padding: 10px; ! font: 1em/1.4em Geneva, Arial, Helvetica, sans-serif; ! color: #000000; ! width: auto; } .header { ! width: 100%; ! margin: 0px; ! padding: 0px 10px 0px 0px; ! float: left; } .branding { ! background: url(../images/eCHR.png) no-repeat left top; ! height: 40px; ! width: 200px; ! float: left; } .utility { ! float: left; ! display: block; ! border-collapse: collapse; ! padding-right: 10px; ! font-family: 'Lucide Grande', Verdana, Arial, sans-serif; ! font-weight: bold; ! color: #999999; ! padding-top: 4px; } .user { ! padding-right: 30px; ! font-weight: normal; } ! .utility a { ! color: #8591B6; } .utility .field { ! background: #F2F2F2; ! border: 2px solid #999999; } .utility .button { ! background: #F2F2F2; ! padding: 2px; ! font-weight: bold; ! color: #999999; } .utility:hover { ! color: #666666; } ! .utility:hover a { ! color: #0033CC; } .utility:hover .field { ! border-color: #666666; ! background: #FFFFFF; } .utility:hover .button { ! color: #666666; ! background: #FFFFFF; } .utility .note { ! font-size: 0.9em; ! font-weight: normal; ! color: #999999; ! text-align: center; ! padding: 0px; ! line-height: 1em; } .content { ! width: auto; ! margin: 0px; ! padding: 0px; } .footer { ! color: #666666; ! padding: 10px 10px 10px 20px; ! font-size: 0.95em; } ! .footer ul { ! margin: 0px; ! padding: 0px; } ! .footer li { ! float: left; ! padding-right: 20px; ! list-style: url(../chr_results_files/none) none; } ! .footer a { ! color: #666666; } ! .tab { ! color: #FFFFFF; ! width: auto; ! margin: 0px; ! padding: 0px; ! font: 1.2em 'Lucide Grande', Verdana, Arial, sans-serif; } ! .tab ul { ! margin: 0px; ! padding: 0px 10px; } ! .tab li { ! display: block; ! float: right; ! list-style: url(../chr_results_files/none) none; ! margin: 0px 2px 0px 0px; ! padding: 0px; } ! .tab li a { ! background: #D79049 url(../images/tab_inactive.gif) no-repeat left top; ! padding: 0.5em 14px 0.5em 20px; ! color: #FFFFFF; ! text-decoration: none; ! display: block; ! margin: 0px; } ! .tab li a.notice { ! background: #D79049 url(../images/img_notice.gif) no-repeat left top; ! color: #FFFFFF; ! text-decoration: none; ! padding-left: 45px; } ! ! .tab li a.active { ! background: #CC6600 url(../images/tab_active.gif) no-repeat left top; ! color: #FFFFFF; ! text-decoration: none; ! font-weight: bold; } ! .tab img { ! border-style: none; } ! .info { ! background: #CC6600; ! border-bottom: 1px dotted #E5B27F; ! margin: 0px; ! padding: 0px; } ! .allergies { ! background: url(../images/bkgd_allergies.gif) repeat-x left top; ! float: left; ! width: auto; ! margin: 0px; ! padding: 0px 10px 0px 0px; } ! .allergies img { ! float: left; } ! .allergies p { ! margin: 0px; ! padding-top: 0.5em; ! padding-bottom: 0.5em; ! width: auto; ! background: url(../images/img_warning.gif) no-repeat left center; ! padding-left: 40px; } ! .select { ! float: right; ! margin: 0px; ! padding: 0px 10px 0px 0px; } ! .filter { ! background: #CC6600; ! padding-bottom: 0.5em; ! padding-left: 10px; ! color: #FFFFFF; } ! .filter ul { ! margin: 0px; ! padding: 0px; } ! .filter li { ! margin: 0px; ! padding: 0px 14px 0px 0px; ! list-style: url(../chr_results_files/none) none; ! float: left; } .nav1 { ! width: auto; ! padding: 0px; ! color: #FFFFFF; ! margin: 0px; ! font-family: 'Lucide Grande', Verdana, Arial, sans-serif; ! background: #CC6600; ! display: block; } ! .nav1 ul { ! margin: 0px; ! padding: 0px; } ! .nav1 li { ! list-style: url(../chr_results_files/none) none; ! display: block; ! float: left; ! margin: 0px; ! padding: 0px 0.75em; } ! .nav1 li a { ! text-decoration: none; ! color: #FFFFFF; ! margin: 0px; ! padding: 8px 0px; ! display: block; } ! .nav1 li.active a { ! color: #FFFFFF; ! font-weight: bold; ! background: url(../images/bkgd_nav1_active.gif) no-repeat center bottom; } .nav2 { ! width: auto; ! padding: 0px; ! color: #333333; ! margin: 0px 0px 0px 5px; ! font-family: 'Lucide Grande', Verdana, Arial, sans-serif; ! background: #FFFFFF; ! border-bottom: 4px solid #666666; ! display: block; } ! .nav2 ul { ! margin: 0px; ! padding: 0px; ! clear: both; } ! .nav2 li { ! list-style: url(../chr_results_files/none) none; ! display: block; ! float: left; ! padding: 0px 0.75em; } ! .nav2 li a { ! text-decoration: none; ! color: #333333; ! padding: 8px 0px; ! display: block; ! margin: 0px; } ! .nav2 li.active a { ! color: #333333; ! font-weight: bold; ! background: url(../images/bkgd_nav2_active.gif) no-repeat center bottom; } ! #clear { ! clear: both; ! height: 0.1px; ! margin: 0px; ! padding: 0px; ! width: auto; ! font-size: 0.1px; } ! .pane { ! width: auto; ! padding: 0px; ! margin: 0px; ! border-left: 6px solid #CC6600; ! border-top: 6px solid #CC6600; ! background: #FFFFFF; ! clear: both; } ! .page { ! padding: 10px; ! width: auto; } ! table { ! display: table; ! border-collapse: collapse; } ! tr { ! display: table-row; } ! td { ! display: table-cell; } ! th { ! font-family: 'Lucide Grande', Verdana, Arial, sans-serif; } ! thead th { ! background: #CCCCCC url(../images/bkgd_th.gif) repeat-x left center; ! color: #333333; ! font-family: 'Lucide Grande', Verdana, Arial, sans-serif; ! text-align: center; } ! tr.altrow { ! background: #F2F2F2; } ! th.sortup { ! background: #99CCFF url(../images/bkgd_th_active.gif) repeat-x left center; } ! th.sortup a { ! background: url(../images/img_sortup.gif) no-repeat right center; ! display: block; ! text-decoration: none; ! color: #333333; } ! th.sortdown { ! background: #99CCFF url(../images/bkgd_th_active.gif) repeat-x left center; } ! th.sortdown a { ! background: url(../images/img_sortdown.gif) no-repeat right center; ! display: block; ! text-decoration: none; ! color: #333333; } ! thead.sort a { ! text-decoration: none; ! color: #333333; ! display: block; } ! col.columnhead { ! border-right: 1px solid #CCCCCC; } .activity { ! width: 100%; } ! .activity th { ! border-right: 1px solid #FFFFFF; ! padding: 0.25em; ! border-bottom: 1px solid #666666; } ! .activity th.caption { ! color: #333333; ! font: italic bold 1em/1.6em Verdana, Arial, Helvetica, sans-serif; ! margin: 0px 0px 0em; ! padding: 0.5em 0px 0.25em 10px; ! text-align: left; ! border-bottom: 2px solid #999999; ! border-right-style: none; } ! .activity td { ! border-right: none; ! padding: 0.5em 1em; ! text-align: left; ! vertical-align: top; } .detail { ! width: 100%; } ! .detail th { ! border-right: 1px solid #FFFFFF; ! padding: 0.25em; ! border-bottom: 1px solid #666666; } ! .detail td { ! border-right: 1px dotted #CCCCCC; ! padding: 0.5em 1em; ! text-align: left; ! vertical-align: top; } ! .detail td td { ! border-style: none; ! padding: 0px 1em 0.5em 0px; } .overview { ! width: 100%; ! margin: 0px; ! padding: 0px; ! text-align: left; ! vertical-align: top; ! display: table; ! background: #FFFFFF; } ! .overview td { ! text-align: left; ! margin: 0px; ! padding: 10px 20px 20px 0px; ! text-align: left; ! vertical-align: top; } .section { ! width: 100%; ! border-collapse: collapse; ! margin: 0px; ! padding: 0px; ! border-top: 2px solid #999999; } ! .section caption { ! color: #333333; ! font: italic bold 1em/1.6em Verdana, Arial, Helvetica, sans-serif; ! margin: 0px 0px 0em; ! padding: 0px 0px 0.25em 10px; ! text-align: left; } ! .section caption a { ! color: #333333; ! text-decoration: none; } ! .section tr { ! width: auto; } ! .overview table.section td { ! margin: 0px; ! padding: 0.25em 0px; } ! .overview table.section td.date { ! width: 20px; ! text-align: left; ! margin: 0px; ! padding-right: 0px; ! padding-left: 10px; } ! .overview table.section td.description { ! text-align: left; ! margin: 0px; ! padding-right: 0px; ! padding-left: 10px; } + .overview table.section td.status { + text-align: right; + width: 40px; + margin: 0px; + padding-right: 10px; + padding-left: 0px; + } \ No newline at end of file Index: clinical.css =================================================================== RCS file: /cvsroot/tolven/tolvenWEB/web/styles/clinical.css,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** clinical.css 22 Jun 2006 00:23:17 -0000 1.1 --- clinical.css 2 Oct 2006 05:29:59 -0000 1.2 *************** *** 1,420 **** ! body { ! margin: 0px; ! padding: 0px; ! font-size: 75%; ! background: #F2F2F2; ! text-align: left; } .container { ! margin: 0px; ! padding: 10px; ! font: 1em/1.4em Geneva, Arial, Helvetica, sans-serif; ! color: #000000; ! width: auto; } .header { ! width: 100%; ! margin: 0px; ! padding: 0px 10px 0px 0px; ! float: left; } .branding { ! background: url(../images/eCHR.png) no-repeat left top; ! height: 40px; ! width: 200px; ! float: left; } .utility { ! float: left; ! display: block; ! border-collapse: collapse; ! padding-right: 10px; ! font-family: 'Lucide Grande', Verdana, Arial, sans-serif; ! font-weight: bold; ! color: #999999; ! padding-top: 4px; } .user { ! padding-right: 30px; ! font-weight: normal; } ! .utility a { ! color: #8591B6; } .utility .field { ! background: #F2F2F2; ! border: 2px solid #999999; } .utility .button { ! background: #F2F2F2; ! padding: 2px; ! font-weight: bold; ! color: #999999; } .utility:hover { ! color: #666666; } ! .utility:hover a { ! color: #0033CC; } .utility:hover .field { ! border-color: #666666; ! background: #FFFFFF; } .utility:hover .button { ! color: #666666; ! background: #FFFFFF; } .utility .note { ! font-size: 0.9em; ! font-weight: normal; ! color: #999999; ! text-align: center; ! padding: 0px; ! line-height: 1em; } .content { ! width: auto; ! margin: 0px; ! padding: 0px; } .footer { ! color: #666666; ! padding: 10px 10px 10px 20px; ! font-size: 0.95em; } ! .footer ul { ! margin: 0px; ! padding: 0px; } ! .footer li { ! float: left; ! padding-right: 20px; ! list-style: url(../chr_results_files/none) none; } ! .footer a { ! color: #666666; } ! .tab { ! color: #FFFFFF; ! width: auto; ! margin: 0px; ! padding: 0px; ! font: 1.2em 'Lucide Grande', Verdana, Arial, sans-serif; } ! .tab ul { ! margin: 0px; ! padding: 0px 10px; } ! .tab li { ! display: block; ! float: right; ! list-style: url(../chr_results_files/none) none; ! margin: 0px 2px 0px 0px; ! padding: 0px; } ! .tab li a { ! background: #D79049 url(../images/tab_inactive.gif) no-repeat left top; ! padding: 0.5em 14px 0.5em 20px; ! color: #FFFFFF; ! text-decoration: none; ! display: block; ! margin: 0px; } ! .tab li a.notice { ! background: #D79049 url(../images/img_notice.gif) no-repeat left top; ! color: #FFFFFF; ! text-decoration: none; ! padding-left: 45px; } ! ! .tab li a.active { ! background: #CC6600 url(../images/tab_active.gif) no-repeat left top; ! color: #FFFFFF; ! text-decoration: none; ! font-weight: bold; } ! .tab img { ! border-style: none; } ! .info { ! background: #CC6600; ! border-bottom: 1px dotted #E5B27F; ! margin: 0px; ! padding: 0px; } ! .allergies { ! background: url(../images/bkgd_allergies.gif) repeat-x left top; ! float: left; ! width: auto; ! margin: 0px; ! padding: 0px 10px 0px 0px; } ! .allergies img { ! float: left; } ! .allergies p { ! margin: 0px; ! padding-top: 0.5em; ! padding-bottom: 0.5em; ! width: auto; ! background: url(../images/img_warning.gif) no-repeat left center; ! padding-left: 40px; } ! .select { ! float: right; ! margin: 0px; ! padding: 0px 10px 0px 0px; } ! .filter { ! background: #CC6600; ! padding-bottom: 0.5em; ! padding-left: 10px; ! color: #FFFFFF; } ! .filter ul { ! margin: 0px; ! padding: 0px; } ! .filter li { ! margin: 0px; ! padding: 0px 14px 0px 0px; ! list-style: url(../chr_results_files/none) none; ! float: left; } .nav1 { ! width: auto; ! padding: 0px; ! color: #FFFFFF; ! margin: 0px; ! font-family: 'Lucide Grande', Verdana, Arial, sans-serif; ! background: #CC6600; ! display: block; } ! .nav1 ul { ! margin: 0px; ! padding: 0px; } ! .nav1 li { ! list-style: url(../chr_results_files/none) none; ! display: block; ! float: left; ! margin: 0px; ! padding: 0px 0.75em; } ! .nav1 li a { ! text-decoration: none; ! color: #FFFFFF; ! margin: 0px; ! padding: 8px 0px; ! display: block; } ! .nav1 li.active a { ! color: #FFFFFF; ! font-weight: bold; ! background: url(../images/bkgd_nav1_active.gif) no-repeat center bottom; } .nav2 { ! width: auto; ! padding: 0px; ! color: #333333; ! margin: 0px 0px 0px 5px; ! font-family: 'Lucide Grande', Verdana, Arial, sans-serif; ! background: #FFFFFF; ! border-bottom: 4px solid #666666; ! display: block; } ! .nav2 ul { ! margin: 0px; ! padding: 0px; ! clear: both; } ! .nav2 li { ! list-style: url(../chr_results_files/none) none; ! display: block; ! float: left; ! padding: 0px 0.75em; } ! .nav2 li a { ! text-decoration: none; ! color: #333333; ! padding: 8px 0px; ! display: block; ! margin: 0px; } ! .nav2 li.active a { ! color: #333333; ! font-weight: bold; ! background: url(../images/bkgd_nav2_active.gif) no-repeat center bottom; } ! #clear { ! clear: both; ! height: 0.1px; ! margin: 0px; ! padding: 0px; ! width: auto; ! font-size: 0.1px; } ! .pane { ! width: auto; ! padding: 0px; ! margin: 0px; ! border-left: 6px solid #CC6600; ! border-top: 6px solid #CC6600; ! background: #FFFFFF; ! clear: both; } ! .page { ! padding: 10px; ! width: auto; } ! table { ! display: table; ! border-collapse: collapse; } ! tr { ! display: table-row; } ! td { ! display: table-cell; } ! th { ! font-family: 'Lucide Grande', Verdana, Arial, sans-serif; } ! thead th { ! background: #CCCCCC url(../images/bkgd_th.gif) repeat-x left center; ! color: #333333; ! font-family: 'Lucide Grande', Verdana, Arial, sans-serif; ! text-align: center; } ! tr.altrow { ! background: #F2F2F2; } ! th.sortup { ! background: #99CCFF url(../images/bkgd_th_active.gif) repeat-x left center; } ! th.sortup a { ! background: url(../images/img_sortup.gif) no-repeat right center; ! display: block; ! text-decoration: none; ! color: #333333; } ! th.sortdown { ! background: #99CCFF url(../images/bkgd_th_active.gif) repeat-x left center; } ! th.sortdown a { ! background: url(../images/img_sortdown.gif) no-repeat right center; ! display: block; ! text-decoration: none; ! color: #333333; } ! thead.sort a { ! text-decoration: none; ! color: #333333; ! display: block; } ! col.columnhead { ! border-right: 1px solid #CCCCCC; } .activity { ! width: 100%; } ! .activity th { ! border-right: 1px solid #FFFFFF; ! padding: 0.25em; ! border-bottom: 1px solid #666666; } ! .activity th.caption { ! color: #333333; ! font: italic bold 1em/1.6em Verdana, Arial, Helvetica, sans-serif; ! margin: 0px 0px 0em; ! padding: 0.5em 0px 0.25em 10px; ! text-align: left; ! border-bottom: 2px solid #999999; ! border-right-style: none; } ! .activity td { ! border-right: none; ! padding: 0.5em 1em; ! text-align: left; ! vertical-align: top; } .detail { ! width: 100%; } ! .detail th { ! border-right: 1px solid #FFFFFF; ! padding: 0.25em; ! border-bottom: 1px solid #666666; } ! .detail td { ! border-right: 1px dotted #CCCCCC; ! padding: 0.5em 1em; ! text-align: left; ! vertical-align: top; } ! .detail td td { ! border-style: none; ! padding: 0px 1em 0.5em 0px; } .overview { ! width: 100%; ! margin: 0px; ! padding: 0px; ! text-align: left; ! vertical-align: top; ! display: table; ! background: #FFFFFF; } ! .overview td { ! text-align: left; ! margin: 0px; ! padding: 10px 20px 20px 0px; ! text-align: left; ! vertical-align: top; } .section { ! width: 100%; ! border-collapse: collapse; ! margin: 0px; ! padding: 0px; ! border-top: 2px solid #999999; } ! .section caption { ! color: #333333; ! font: italic bold 1em/1.6em Verdana, Arial, Helvetica, sans-serif; ! margin: 0px 0px 0em; ! padding: 0px 0px 0.25em 10px; ! text-align: left; } ! .section caption a { ! color: #333333; ! text-decoration: none; } ! .section tr { ! width: auto; } ! .overview table.section td { ! margin: 0px; ! padding: 0.25em 0px; } ! .overview table.section td.date { ! width: 20px; ! text-align: left; ! margin: 0px; ! padding-right: 0px; ! padding-left: 10px; } ! .overview table.section td.description { ! text-align: left; ! margin: 0px; ! padding-right: 0px; ! padding-left: 10px; } ! .overview table.section td.status { ! text-align: right; ! width: 40px; ! margin: 0px; ! padding-right: 10px; ! padding-left: 0px; } --- 1,334 ---- ! BODY { ! PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 75%; BACKGROUND: #f2f2f2; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; TEXT-ALIGN: left } .container { ! PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: 0px; FONT: 1em/1.4em Geneva, Arial, Helvetica, sans-serif; WIDTH: auto; COLOR: #000000; PADDING-TOP: 10px } .header { ! PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 100%; PADDING-TOP: 0px } .branding { ! BACKGROUND: url(../images/ePHR.png) no-repeat left top; FLOAT: left; WIDTH: 200px; HEIGHT: 40px ! } ! .info { ! PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #6699cc; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: #e5b27f 1px dotted ! } ! .allergies { ! PADDING-RIGHT: 10px; PADDING-LEFT: 0px; BACKGROUND: url(../images/phr_bkgd_allergies.gif) repeat-x left top; FLOAT: left; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: auto; PADDING-TOP: 0px ! } ! .allergies IMG { ! FLOAT: left ! } ! .allergies P { ! PADDING-LEFT: 40px; BACKGROUND: url(../images/phr_img_warning.gif) no-repeat left center; PADDING-BOTTOM: 0.5em; MARGIN: 0px; WIDTH: auto; PADDING-TOP: 0.5em ! } ! .select { ! PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FLOA... [truncated message content] |
From: John C. <jc...@us...> - 2006-10-02 05:30:02
|
Update of /cvsroot/tolven/tolvenWEB/web/private In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10937/web/private Modified Files: selectAccount.xhtml adminAccount.xhtml userDemog.xhtml customize.xhtml Added Files: ephr.xhtml echr.xhtml Log Message: Add ePHR screens and generator --- NEW FILE: echr.xhtml --- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:c="http://java.sun.com/jstl/core"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <ui:composition template="../templates/portalTemplate.xhtml"> <ui:param name="initialPage" value="echr"/> <ui:param name="brand" value="brandc"/> <ui:define name="content"> <div id="contentArea" class="content"/> <div id="tabArea"/> <div id="paneArea" class="pane"/> </ui:define> </ui:composition> </body> </html> Index: customize.xhtml =================================================================== RCS file: /cvsroot/tolven/tolvenWEB/web/private/customize.xhtml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** customize.xhtml 2 Aug 2006 22:54:44 -0000 1.2 --- customize.xhtml 2 Oct 2006 05:29:59 -0000 1.3 *************** *** 11,14 **** --- 11,15 ---- <body> <ui:composition template="../templates/portalTemplate.xhtml"> + <ui:param name="initialPage" value="#{reg.account.knownType}"/> <ui:define name="content"> <h3>Advanced menu customization</h3> Index: selectAccount.xhtml =================================================================== RCS file: /cvsroot/tolven/tolvenWEB/web/private/selectAccount.xhtml,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** selectAccount.xhtml 1 Sep 2006 01:11:54 -0000 1.8 --- selectAccount.xhtml 2 Oct 2006 05:29:59 -0000 1.9 *************** *** 11,14 **** --- 11,16 ---- <body> <ui:composition template="../templates/portalTemplate.xhtml"> + <ui:param name="brand" value="brandt"/> + <ui:param name="initialPage" value="echr"/> <ui:define name="content"> <div id="paneArea" class="pane"> Index: userDemog.xhtml =================================================================== RCS file: /cvsroot/tolven/tolvenWEB/web/private/userDemog.xhtml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** userDemog.xhtml 31 Aug 2006 08:30:00 -0000 1.4 --- userDemog.xhtml 2 Oct 2006 05:29:59 -0000 1.5 *************** *** 12,15 **** --- 12,16 ---- <body> <ui:composition template="../templates/portalTemplate.xhtml"> + <ui:param name="initialPage" value="#{reg.account.knownType}"/> <ui:define name="content"> <h3>User Preferences</h3> *************** *** 64,68 **** <h3>You are logged into account #{reg.account.id} #{reg.account.title}</h3> <h:panelGrid columns="1"> ! <h:panelGroup rendered="#{top.accountAdmin}"> <h:outputLink value="adminAccount.jsf"> <h:outputText value="Administer this account"/> --- 65,69 ---- <h3>You are logged into account #{reg.account.id} #{reg.account.title}</h3> <h:panelGrid columns="1"> ! <h:panelGroup > <h:outputLink value="adminAccount.jsf"> <h:outputText value="Administer this account"/> Index: adminAccount.xhtml =================================================================== RCS file: /cvsroot/tolven/tolvenWEB/web/private/adminAccount.xhtml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** adminAccount.xhtml 31 Aug 2006 23:37:14 -0000 1.3 --- adminAccount.xhtml 2 Oct 2006 05:29:59 -0000 1.4 *************** *** 12,15 **** --- 12,16 ---- <body> <ui:composition template="../templates/portalTemplate.xhtml"> + <ui:param name="initialPage" value="#{reg.account.knownType}"/> <ui:define name="content"> <h3>Account #{reg.account.id} #{reg.account.title}</h3> --- NEW FILE: ephr.xhtml --- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:c="http://java.sun.com/jstl/core"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <ui:composition template="../templates/portalTemplate.xhtml"> <ui:param name="initialPage" value="ephr"/> <ui:param name="brand" value="brandp"/> <ui:define name="content"> <div id="contentArea" class="content"/> <div id="tabArea"/> <div id="paneArea" class="pane"/> </ui:define> </ui:composition> </body> </html> |
From: John C. <jc...@us...> - 2006-10-02 05:30:02
|
Update of /cvsroot/tolven/tolvenWEB/src/org/tolven/web In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10937/src/org/tolven/web Modified Files: TopAction.java PathELResolver.java RegisterAction.java MenuAction.java Log Message: Add ePHR screens and generator Index: TopAction.java =================================================================== RCS file: /cvsroot/tolven/tolvenWEB/src/org/tolven/web/TopAction.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** TopAction.java 3 Sep 2006 07:04:49 -0000 1.14 --- TopAction.java 2 Oct 2006 05:29:59 -0000 1.15 *************** *** 225,229 **** // System.out.println( "Session Attribute: " + x ); // } ! return "portal3"; } --- 225,231 ---- // System.out.println( "Session Attribute: " + x ); // } ! String knownType = accountUser.getAccount().getKnownType(); ! System.out.println( "Dispatching to KnownType: " + knownType ); ! return knownType; } Index: MenuAction.java =================================================================== RCS file: /cvsroot/tolven/tolvenWEB/src/org/tolven/web/MenuAction.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** MenuAction.java 3 Sep 2006 00:33:21 -0000 1.19 --- MenuAction.java 2 Oct 2006 05:29:59 -0000 1.20 *************** *** 84,87 **** --- 84,88 ---- */ public MenuStructure getThisMenu( ) { + System.out.println( "[MenuAction] Fetch MenuStructure for account: " + getAccountId() + " path: " + getTargetMenuPath().getPath() ); if (ms==null) ms = menuLocal.findMenuStructure( getAccountId(), getTargetMenuPath().getPath() ); // System.out.println( "[MenuAction] MenuStructure fetched for account: " + *************** *** 91,94 **** --- 92,105 ---- /** + * Return the path to the drilldown element, if any. for example, from the problem summary (heading) to the detailed problem list. + */ + public String getDrilldown( ) { + MenuStructure ms = getThisMenu(); + if (ms==null || ms.getRepeating()==null) return null; + // Merge ids in the current path with the repeating path, if any. + MenuPath mp = new MenuPath(ms.getRepeating(), getTargetMenuPath()); + return mp.getPathString(); + } + /** * Get the parent of the requested element */ Index: RegisterAction.java =================================================================== RCS file: /cvsroot/tolven/tolvenWEB/src/org/tolven/web/RegisterAction.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** RegisterAction.java 3 Sep 2006 07:06:15 -0000 1.15 --- RegisterAction.java 2 Oct 2006 05:29:59 -0000 1.16 *************** *** 80,83 **** --- 80,86 ---- private List<SelectItem> timeZones; + + private boolean ephr; + private boolean echr; // Search Criteria *************** *** 210,226 **** // inviting the user to join their account). but right now, we do it automatically. - // As soon as the user get's established, we'll allow them to create a new account using a - // JoinNewAccount invitation. - // We don't queue or send this one, the user will pick it up during login - JoinNewAccountInvitation joinAccountInvitationDetail = new JoinNewAccountInvitation(); - joinAccountInvitationDetail.setAccountType( accountType ); - Invitation invite = invitationBean.createInvitation(getTp().getUid(), joinAccountInvitationDetail ); - // TODO: This is language-dependent - but NOT global to the product. - invite.setTitle("Create and join a new account"); - invite.setCreated(getNow()); - // Immediately take the action if so requested, otherwise, we'll do this when the user gets the email invitation to activate - if (this.isNoActivation()) { - invitationBean.executeInvitation( invite, getNow()); - } return returnStatus; } --- 213,216 ---- *************** *** 239,246 **** error = true; } - if (!getRepeatUid().matches("[\\w\\.\\_\\-\\@]+") ) { - FacesContext.getCurrentInstance().addMessage( "register:uid2", new FacesMessage("Does not appear to be a valid email address")); - error = true; - } if (!getRepeatUserPassword().equals(getTp().getUserPassword())) { FacesContext.getCurrentInstance().addMessage( "register:userPassword2", new FacesMessage("Both passwords must match")); --- 229,232 ---- *************** *** 261,273 **** // As soon as the user get's established, we'll allow them to create a new account using a // JoinNewAccount invitation. ! // We don't queue or send this one, the user will pick it up during login ! JoinNewAccountInvitation joinAccountInvitationDetail = new JoinNewAccountInvitation(); ! joinAccountInvitationDetail.setAccountType( accountType ); ! Invitation invite = invitationBean.createInvitation(getTp().getUid(), joinAccountInvitationDetail ); ! // TODO: This is language-dependent - but NOT global to the product. ! invite.setTitle("Create and join a new account"); ! invite.setCreated(getNow()); ! // Immediately take the action if so requested, otherwise, we'll do this when the user gets the email invitation to activate ! invitationBean.executeInvitation( invite, getNow()); return returnStatus; } --- 247,279 ---- // As soon as the user get's established, we'll allow them to create a new account using a // JoinNewAccount invitation. ! // Create personal health record account ! if (this.isEphr()) { ! // As soon as the user get's established, we'll allow them to create a new account using a ! // JoinNewAccount invitation. ! // We don't queue or send this one, the user will pick it up during login ! JoinNewAccountInvitation joinAccountInvitationDetail = new JoinNewAccountInvitation(); ! joinAccountInvitationDetail.setAccountType( "ephr" ); ! Invitation invite = invitationBean.createInvitation(getTp().getUid(), joinAccountInvitationDetail ); ! // TODO: This is language-dependent - but NOT global to the product. ! invite.setTitle("Create and join a new personal health record account"); ! invite.setCreated(getNow()); ! // Immediately take the action if so requested, otherwise, we'll do this when the user gets the email invitation to activate ! invitationBean.executeInvitation( invite, getNow()); ! } ! // Create clinical health record account ! if (this.isEchr()) { ! // As soon as the user get's established, we'll allow them to create a new account using a ! // JoinNewAccount invitation. ! // We don't queue or send this one, the user will pick it up during login ! JoinNewAccountInvitation joinAccountInvitationDetail = new JoinNewAccountInvitation(); ! joinAccountInvitationDetail.setAccountType( "echr" ); ! Invitation invite = invitationBean.createInvitation(getTp().getUid(), joinAccountInvitationDetail ); ! // TODO: This is language-dependent - but NOT global to the product. ! invite.setTitle("Create and join a new clinical health record account"); ! invite.setCreated(getNow()); ! // Immediately take the action if so requested, otherwise, we'll do this when the user gets the email invitation to activate ! invitationBean.executeInvitation( invite, getNow()); ! } ! return returnStatus; } *************** *** 530,532 **** --- 536,554 ---- return timeZones; } + + public boolean isEchr() { + return echr; + } + + public void setEchr(boolean echr) { + this.echr = echr; + } + + public boolean isEphr() { + return ephr; + } + + public void setEphr(boolean ephr) { + this.ephr = ephr; + } } Index: PathELResolver.java =================================================================== RCS file: /cvsroot/tolven/tolvenWEB/src/org/tolven/web/PathELResolver.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** PathELResolver.java 21 Aug 2006 00:20:06 -0000 1.2 --- PathELResolver.java 2 Oct 2006 05:29:59 -0000 1.3 *************** *** 75,82 **** * <pre> echr:patient-123:results:lab </pre> * Knowing where to place the MD id in this case is simply a matter of finding which MenuStructure ! * node (or nodes) are placeholders and pulling, the corresponding node from the MenuDetail item. * The Path for the detail item in this case might be: * <pre> echr:patients:patient-123 </pre> ! * There's no requirement that the MenuData id actually be used in the target path. this would happen * if the intended target is not directly related to the menu data item. For example, a link on * a patient entry might be "make an appointment" which brings the user to the appointment pane so that --- 75,82 ---- * <pre> echr:patient-123:results:lab </pre> * Knowing where to place the MD id in this case is simply a matter of finding which MenuStructure ! * node (or nodes) are placeholders and pulling the corresponding node from the MenuDetail item. * The Path for the detail item in this case might be: * <pre> echr:patients:patient-123 </pre> ! * There is no requirement that the MenuData id actually be used in the target path. this would happen * if the intended target is not directly related to the menu data item. For example, a link on * a patient entry might be "make an appointment" which brings the user to the appointment pane so that |
From: John C. <jc...@us...> - 2006-10-02 05:30:02
|
Update of /cvsroot/tolven/tolvenWEB/web/templates In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10937/web/templates Modified Files: portalTemplate.xhtml Log Message: Add ePHR screens and generator Index: portalTemplate.xhtml =================================================================== RCS file: /cvsroot/tolven/tolvenWEB/web/templates/portalTemplate.xhtml,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** portalTemplate.xhtml 31 Aug 2006 08:29:22 -0000 1.9 --- portalTemplate.xhtml 2 Oct 2006 05:29:59 -0000 1.10 *************** *** 10,14 **** <title>Tolven Portal</title> <link ! href="#{facesContext.externalContext.request.contextPath}/styles/tolven6.css" type="text/css" rel="stylesheet" /> <script language="JavaScript" type="text/javascript" --- 10,14 ---- <title>Tolven Portal</title> <link ! href="#{facesContext.externalContext.request.contextPath}/styles/#{initialPage}.css" type="text/css" rel="stylesheet" /> <script language="JavaScript" type="text/javascript" *************** *** 32,36 **** <div class="wholePage"> <div class="header"> ! <div class="brandc"></div> <table class="utility"> <tr> --- 32,36 ---- <div class="wholePage"> <div class="header"> ! <div class="#{brand}"></div> <table class="utility"> <tr> *************** *** 44,49 **** <!--h:outputText value="Last Login: #{top.user.oldLastLogin}" /--> </td> ! <td> #{top.accountTitle}</td> ! </tr> </table> </div> --- 44,53 ---- <!--h:outputText value="Last Login: #{top.user.oldLastLogin}" /--> </td> ! <td> ! <h:outputText value="#{top.accountTitle} "/> ! <h:outputLink value="../private/adminAccount.jsf" rendered="#{top.accountAdmin}"> ! <h:outputText styleClass="smallText" value=" [Admin]" /> ! </h:outputLink> ! </td> </tr> </table> </div> *************** *** 63,67 **** <li><a href="#">Literature Search</a></li> <h:panelGroup rendered="#{top.accountUserId!=0}"> ! <li><a href="javascript:showPane('echr:demo');">[Demo]</a></li> <li><a href="javascript:getRemoteContent(visiblePage);" >[Refresh]</a></li> </h:panelGroup> --- 67,71 ---- <li><a href="#">Literature Search</a></li> <h:panelGroup rendered="#{top.accountUserId!=0}"> ! <li><a href="javascript:showPane('root:demo');">[Demo]</a></li> <li><a href="javascript:getRemoteContent(visiblePage);" >[Refresh]</a></li> </h:panelGroup> |
From: John C. <jc...@us...> - 2006-10-02 05:30:02
|
Update of /cvsroot/tolven/tolvenWEB/web/WEB-INF In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10937/web/WEB-INF Modified Files: faces-config.xml Log Message: Add ePHR screens and generator Index: faces-config.xml =================================================================== RCS file: /cvsroot/tolven/tolvenWEB/web/WEB-INF/faces-config.xml,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** faces-config.xml 28 Sep 2006 19:12:08 -0000 1.17 --- faces-config.xml 2 Oct 2006 05:30:00 -0000 1.18 *************** *** 129,133 **** <navigation-case> <from-outcome>cancel</from-outcome> ! <to-view-id>/private/portal3.xhtml</to-view-id> <redirect/> </navigation-case> --- 129,145 ---- <navigation-case> <from-outcome>cancel</from-outcome> ! <to-view-id>/private/selectAccount.xhtml</to-view-id> ! <redirect/> ! </navigation-case> ! </navigation-rule> ! <navigation-rule> ! <navigation-case> ! <from-outcome>echr</from-outcome> ! <to-view-id>/private/echr.xhtml</to-view-id> ! <redirect/> ! </navigation-case> ! <navigation-case> ! <from-outcome>ephr</from-outcome> ! <to-view-id>/private/ephr.xhtml</to-view-id> <redirect/> </navigation-case> *************** *** 184,188 **** <navigation-case> <from-outcome>cancel</from-outcome> ! <to-view-id>/private/portal3.xhtml</to-view-id> <redirect/> </navigation-case> --- 196,200 ---- <navigation-case> <from-outcome>cancel</from-outcome> ! <to-view-id>/private/selectAccount.xhtml</to-view-id> <redirect/> </navigation-case> *************** *** 251,260 **** <navigation-case> <from-action>#{top.postLogin}</from-action> - <from-outcome>portal3</from-outcome> - <to-view-id>/private/portal3.xhtml</to-view-id> - <redirect/> - </navigation-case> - <navigation-case> - <from-action>#{top.postLogin}</from-action> <from-outcome>selectAccount</from-outcome> <to-view-id>/private/selectAccount.xhtml</to-view-id> --- 263,266 ---- *************** *** 298,303 **** </navigation-case> <navigation-case> ! <from-outcome>portal3</from-outcome> ! <to-view-id>/private/portal3.xhtml</to-view-id> <redirect/> </navigation-case> --- 304,314 ---- </navigation-case> <navigation-case> ! <from-outcome>echr</from-outcome> ! <to-view-id>/private/echr.xhtml</to-view-id> ! <redirect/> ! </navigation-case> ! <navigation-case> ! <from-outcome>ephr</from-outcome> ! <to-view-id>/private/ephr.xhtml</to-view-id> <redirect/> </navigation-case> |
From: John C. <jc...@us...> - 2006-10-02 05:30:01
|
Update of /cvsroot/tolven/tolvenWEB/web/public In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10937/web/public Modified Files: newDemoUser.xhtml Log Message: Add ePHR screens and generator Index: newDemoUser.xhtml =================================================================== RCS file: /cvsroot/tolven/tolvenWEB/web/public/newDemoUser.xhtml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** newDemoUser.xhtml 3 Sep 2006 07:06:15 -0000 1.1 --- newDemoUser.xhtml 2 Oct 2006 05:29:59 -0000 1.2 *************** *** 34,38 **** <h:outputText value="A unique user id"/> <h:panelGroup> ! <h:inputText id="uid" value="#{reg.tp.uid}" size="15" required="true"/> <h:message for="uid" errorClass="errorMsg" infoClass="infoMsg" warnClass="warnMsg" fatalClass="fatalMsg"/> </h:panelGroup> --- 34,38 ---- <h:outputText value="A unique user id"/> <h:panelGroup> ! <h:inputText id="uid" value="#{reg.tp.uid}" size="15" required="false"/> <h:message for="uid" errorClass="errorMsg" infoClass="infoMsg" warnClass="warnMsg" fatalClass="fatalMsg"/> </h:panelGroup> *************** *** 52,55 **** --- 52,59 ---- <h:message for="userPassword2" errorClass="errorMsg" infoClass="infoMsg" warnClass="warnMsg" fatalClass="fatalMsg"/> </h:panelGroup> + <h:selectBooleanCheckbox value="#{reg.ephr}"/> + <h:outputText value="Create a new personal health record account"/> + <h:selectBooleanCheckbox value="#{reg.echr}"/> + <h:outputText value="Create a new clinical health record account"/> </h:panelGrid> <p>When you click Activate, you will be returned to the login page where you can login |
From: John C. <jc...@us...> - 2006-10-02 05:29:54
|
Update of /cvsroot/tolven/tolvenEJB/src/test/org/tolven/doc In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10919/src/test/org/tolven/doc Log Message: Directory /cvsroot/tolven/tolvenEJB/src/test/org/tolven/doc added to the repository |
From: John C. <jc...@us...> - 2006-10-02 05:29:54
|
Update of /cvsroot/tolven/tolvenEJB/src/test/org/tolven/doc/entity In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10919/src/test/org/tolven/doc/entity Log Message: Directory /cvsroot/tolven/tolvenEJB/src/test/org/tolven/doc/entity added to the repository |