diff options
author | Alvin Li <liweitianux@gmail.com> | 2013-10-30 10:16:21 +0800 |
---|---|---|
committer | Alvin Li <liweitianux@gmail.com> | 2013-10-30 10:16:21 +0800 |
commit | 1e4a9c0565c3d2f52ec205ae7627ebfc84278735 (patch) | |
tree | b26921e2f5fdec3fa7578584d10ba476abbace40 | |
parent | 02afd8a32edb13ea7fc2266ac80092ea15c0930c (diff) | |
download | 97dev-master.tar.bz2 |
* moved 'ValueKind' model from 'recommend/models' to 'indicator/models'
* added field 'type' for 'indicator.models.Indicator'
* added field 'kind' for 'indicator.models.IndicatorRecord',
'InnateConfine'
* updated methods for models 'Indicator', 'IndicatorRecord',
'InnateConfine'
* updated views and templates for 'apps/indicator'
* added 'INDICATOR_RECOMMEND_PERIOD' into 'settings.py'
* added 'type' field for 'indicator.models.Indicator' in
'search_indexes.py'
* added a confirm step for 'EditHistoryData' page when delete a record
* removed dir 'backupdata'; 'queries.txt' moved to 'backup' dir
* moved *.json to 'backup' dir
* removed 'apps/managers*.py'
* updated 'indicator/popup/IndexDesc.html'
* created dir 'apps/indicator/obsolete';
* moved 'indicator/forms.py' to dir 'obsolete';
* splitted views related forms.py from 'views.py', and placed in
'obsolete/views_forms.py'
* loadded newest data into database
* cleaned pervious data files in 'backup' dir
* updated 'README.txt'; added a solution to a redis problem
* added field 'type' of 'indicator.models.Indicator';
for filtering search results and only returning 'NORMAL_TYPE'
120 files changed, 3229 insertions, 4051 deletions
diff --git a/97suifangqa/.gitignore b/97suifangqa/.gitignore index 2d2fae0..d5ddc10 100644 --- a/97suifangqa/.gitignore +++ b/97suifangqa/.gitignore @@ -10,4 +10,5 @@ env/env backup/ apps/*/fixtures_bak/ +dump.rdb diff --git a/97suifangqa/README.txt b/97suifangqa/README.txt index 76c5533..465e6db 100644 --- a/97suifangqa/README.txt +++ b/97suifangqa/README.txt @@ -3,6 +3,12 @@ ## run redis & celery $ redis-server -$ python manage.py celeryd worker -E -$ python manage.py celerycam (for monitoring) +$ python manage.py celery worker --loglevel=info +$ python manage.py celerycam # for monitoring + +## 'redis' troubleshooting +如果 redis-server 启动时出现如下错误: +> [20101] 30 Oct 08:52:02 # Can't handle RDB format version 6 +> 20101] 30 Oct 08:52:02 # Fatal error loading the DB. Exiting. +则尝试删除当前目录下的 'dump.rdb' 文件,然后重新启动。 diff --git a/97suifangqa/apps/__init__.py b/97suifangqa/apps/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/97suifangqa/apps/__init__.py +++ /dev/null diff --git a/97suifangqa/apps/indicator/fixtures_bak/initial_data.json b/97suifangqa/apps/indicator/fixtures_bak/initial_data.json deleted file mode 100644 index d26f8b9..0000000 --- a/97suifangqa/apps/indicator/fixtures_bak/initial_data.json +++ /dev/null @@ -1,862 +0,0 @@ -[ - { - "pk": 4, - "model": "indicator.indicatorcategory", - "fields": { - "pinyin": "gan-chuan-ci", - "englishName": "Liver Puncture", - "addByUser": 1, - "name": "\u809d\u7a7f\u523a", - "description": "\u809d\u7a7f\u523a" - } - }, - { - "pk": 3, - "model": "indicator.indicatorcategory", - "fields": { - "pinyin": "gan-gong-neng", - "englishName": "Liver Function", - "addByUser": 1, - "name": "\u809d\u529f\u80fd", - "description": "\u809d\u529f\u80fd" - } - }, - { - "pk": 5, - "model": "indicator.indicatorcategory", - "fields": { - "pinyin": "lei-bie-5", - "englishName": "category5", - "addByUser": 1, - "name": "\u7c7b\u522b5", - "description": "\u7c7b\u522b5\r\n\u6d4b\u8bd5" - } - }, - { - "pk": 6, - "model": "indicator.indicatorcategory", - "fields": { - "pinyin": "lei-bie-6", - "englishName": "category6", - "addByUser": 1, - "name": "\u7c7b\u522b6", - "description": "\u7c7b\u522b6\r\n\r\n\u6d4b\u8bd5" - } - }, - { - "pk": 7, - "model": "indicator.indicatorcategory", - "fields": { - "pinyin": "lei-bie-7", - "englishName": "category7", - "addByUser": 1, - "name": "\u7c7b\u522b7", - "description": "\u7c7b\u522b7\r\n\r\n\u6d4b\u8bd5" - } - }, - { - "pk": 2, - "model": "indicator.indicatorcategory", - "fields": { - "pinyin": "liang-dui-ban", - "englishName": "TODO", - "addByUser": 1, - "name": "\u4e24\u5bf9\u534a", - "description": "\u4e59\u809d\u4e24\u5bf9\u534a" - } - }, - { - "pk": 1, - "model": "indicator.indicatorcategory", - "fields": { - "pinyin": "xie-chang-gui", - "englishName": "Blood Routine", - "addByUser": 1, - "name": "\u8840\u5e38\u89c4", - "description": "\u8840\u5e38\u89c4" - } - }, - { - "pk": 3, - "model": "indicator.indicator", - "fields": { - "addByUser": 1, - "name": "\u6d4b\u8bd51", - "dataType": "PM", - "pinyin": "ce-shi-1", - "helpText": "\u5e2e\u52a9 help", - "englishName": "test1", - "categories": [ - 2 - ], - "description": "forms \u6d4b\u8bd51\r\npm type" - } - }, - { - "pk": 4, - "model": "indicator.indicator", - "fields": { - "addByUser": 1, - "name": "\u5b9a\u503c2", - "dataType": "FL", - "pinyin": "ding-zhi-2", - "helpText": "\u6d6e\u70b9\u5b9a\u503c", - "englishName": "float2", - "categories": [ - 2, - 1 - ], - "description": "float type" - } - }, - { - "pk": 2, - "model": "indicator.indicator", - "fields": { - "addByUser": 1, - "name": "\u8303\u56f41", - "dataType": "RG", - "pinyin": "fan-wei-1", - "helpText": "\u8303\u56f4\u578b", - "englishName": "range1", - "categories": [ - 1 - ], - "description": "range type\r\n\r\n\u8303\u56f4\u578b" - } - }, - { - "pk": 1, - "model": "indicator.indicator", - "fields": { - "addByUser": 1, - "name": "\u8c37\u4e19\u8f6c\u6c28\u9176", - "dataType": "FL", - "pinyin": "gu-bing-zhuan-an-mei", - "helpText": "\u63a5\u53d7\u5b9a\u503c\u6570\u636e\uff0c\u5982: 45, 38.7", - "englishName": "Alanine Transaminase", - "categories": [ - 3 - ], - "description": "\u8c37\u4e19\u8f6c\u6c28\u9176\r\nAlanine transaminase (ALT)\r\n\r\n\u6d6e\u70b9\u5b9a\u503c\u578b\u6570\u636e" - } - }, - { - "pk": 1, - "model": "indicator.userindicator", - "fields": { - "followedHistories": [], - "followedIndicators": [ - 3, - 4, - 2, - 1 - ], - "user": 1 - } - }, - { - "pk": 2, - "model": "indicator.userindicator", - "fields": { - "followedHistories": [], - "followedIndicators": [], - "user": 2 - } - }, - { - "pk": 3, - "model": "indicator.userindicator", - "fields": { - "followedHistories": [], - "followedIndicators": [], - "user": 3 - } - }, - { - "pk": 4, - "model": "indicator.userindicator", - "fields": { - "followedHistories": [], - "followedIndicators": [], - "user": 4 - } - }, - { - "pk": 18, - "model": "indicator.indicatorrecord", - "fields": { - "indicator": 1, - "notes": "\u8865\u5145\r\n\u8bb0\u5f558", - "created_at": "2013-08-22T06:56:08.417Z", - "updated_at": "2013-08-22T06:56:08.417Z", - "value": "45", - "val_min": null, - "user": 1, - "date": "2013-06-29", - "val_max": null, - "unit": 4 - } - }, - { - "pk": 17, - "model": "indicator.indicatorrecord", - "fields": { - "indicator": 1, - "notes": "\u8865\u5145\r\n\u8bb0\u5f557", - "created_at": "2013-08-22T06:48:18.864Z", - "updated_at": "2013-08-22T06:55:36.704Z", - "value": "57", - "val_min": null, - "user": 1, - "date": "2013-07-04", - "val_max": null, - "unit": 1 - } - }, - { - "pk": 15, - "model": "indicator.indicatorrecord", - "fields": { - "indicator": 1, - "notes": "\u8865\u5145\r\n\u8bb0\u5f555", - "created_at": "2013-08-22T06:44:43.567Z", - "updated_at": "2013-08-22T06:44:43.567Z", - "value": "81", - "val_min": null, - "user": 1, - "date": "2013-07-07", - "val_max": null, - "unit": 1 - } - }, - { - "pk": 16, - "model": "indicator.indicatorrecord", - "fields": { - "indicator": 1, - "notes": "\u8865\u5145\r\n\u8bb0\u5f556", - "created_at": "2013-08-22T06:45:19.971Z", - "updated_at": "2013-08-22T06:47:19.645Z", - "value": "98", - "val_min": null, - "user": 1, - "date": "2013-07-13", - "val_max": null, - "unit": 1 - } - }, - { - "pk": 12, - "model": "indicator.indicatorrecord", - "fields": { - "indicator": 1, - "notes": "\u8865\u5145\r\n\u8bb0\u5f554", - "created_at": "2013-08-22T06:41:28.455Z", - "updated_at": "2013-08-22T06:41:28.455Z", - "value": "31", - "val_min": null, - "user": 1, - "date": "2013-07-18", - "val_max": null, - "unit": 1 - } - }, - { - "pk": 11, - "model": "indicator.indicatorrecord", - "fields": { - "indicator": 1, - "notes": "\u8865\u5145\r\n\u8bb0\u5f553", - "created_at": "2013-08-22T06:40:45.950Z", - "updated_at": "2013-08-22T06:40:54.585Z", - "value": "49", - "val_min": null, - "user": 1, - "date": "2013-07-21", - "val_max": null, - "unit": 1 - } - }, - { - "pk": 10, - "model": "indicator.indicatorrecord", - "fields": { - "indicator": 1, - "notes": "\u8865\u5145\r\n\u8bb0\u5f552", - "created_at": "2013-08-22T06:37:16.110Z", - "updated_at": "2013-08-22T06:39:16.251Z", - "value": "78", - "val_min": null, - "user": 1, - "date": "2013-07-27", - "val_max": null, - "unit": 1 - } - }, - { - "pk": 9, - "model": "indicator.indicatorrecord", - "fields": { - "indicator": 1, - "notes": "\u8865\u5145\r\n\u8bb0\u5f551", - "created_at": "2013-08-22T06:36:32.924Z", - "updated_at": "2013-08-22T06:36:32.924Z", - "value": "59", - "val_min": null, - "user": 1, - "date": "2013-08-01", - "val_max": null, - "unit": 1 - } - }, - { - "pk": 1, - "model": "indicator.indicatorrecord", - "fields": { - "indicator": 1, - "notes": "\u8c37\u4e19\u8f6c\u6c28\u9176\r\n\r\n\u7b2c1\u6761\u8bb0\u5f55\r\nmodified", - "created_at": "2013-08-05T15:48:00.035Z", - "updated_at": "2013-08-26T12:13:14.102Z", - "value": "50", - "val_min": null, - "user": 1, - "date": "2013-08-05", - "val_max": null, - "unit": 1 - } - }, - { - "pk": 2, - "model": "indicator.indicatorrecord", - "fields": { - "indicator": 1, - "notes": "\u8bb0\u5f552", - "created_at": "2013-08-09T10:53:15.927Z", - "updated_at": "2013-08-26T12:12:42.041Z", - "value": "100", - "val_min": null, - "user": 1, - "date": "2013-08-09", - "val_max": null, - "unit": 1 - } - }, - { - "pk": 4, - "model": "indicator.indicatorrecord", - "fields": { - "indicator": 1, - "notes": "\u8bb0\u5f553", - "created_at": "2013-08-18T13:33:20.569Z", - "updated_at": "2013-09-12T07:11:09.763Z", - "value": "78.3", - "val_min": null, - "user": 1, - "date": "2013-08-15", - "val_max": null, - "unit": 1 - } - }, - { - "pk": 13, - "model": "indicator.indicatorrecord", - "fields": { - "indicator": 1, - "notes": "\u8bb0\u5f554", - "created_at": "2013-08-22T06:42:44.782Z", - "updated_at": "2013-08-22T06:45:43.807Z", - "value": "89", - "val_min": null, - "user": 1, - "date": "2013-08-18", - "val_max": null, - "unit": 1 - } - }, - { - "pk": 14, - "model": "indicator.indicatorrecord", - "fields": { - "indicator": 1, - "notes": "\u8bb0\u5f555", - "created_at": "2013-08-22T06:43:32.415Z", - "updated_at": "2013-08-22T06:43:32.415Z", - "value": "56", - "val_min": null, - "user": 1, - "date": "2013-08-22", - "val_max": null, - "unit": 1 - } - }, - { - "pk": 6, - "model": "indicator.indicatorrecord", - "fields": { - "indicator": 2, - "notes": "", - "created_at": "2013-08-18T13:46:26.511Z", - "updated_at": "2013-08-18T13:46:26.511Z", - "value": "", - "val_min": 10000.0, - "user": 1, - "date": "2013-08-05", - "val_max": 23000.0, - "unit": 3 - } - }, - { - "pk": 5, - "model": "indicator.indicatorrecord", - "fields": { - "indicator": 2, - "notes": "", - "created_at": "2013-08-18T13:37:41.124Z", - "updated_at": "2013-08-26T16:04:54.703Z", - "value": "", - "val_min": 15000.0, - "user": 1, - "date": "2013-08-10", - "val_max": 20000.0, - "unit": 3 - } - }, - { - "pk": 7, - "model": "indicator.indicatorrecord", - "fields": { - "indicator": 2, - "notes": "range type\r\nrecord 3", - "created_at": "2013-08-19T11:30:26.675Z", - "updated_at": "2013-08-19T11:30:26.675Z", - "value": "", - "val_min": 15000.0, - "user": 1, - "date": "2013-08-17", - "val_max": 30000.0, - "unit": 3 - } - }, - { - "pk": 21, - "model": "indicator.indicatorrecord", - "fields": { - "indicator": 2, - "notes": "", - "created_at": "2013-09-12T07:21:24.976Z", - "updated_at": "2013-09-12T07:21:24.977Z", - "value": "", - "val_min": 50000.0, - "user": 1, - "date": "2013-09-01", - "val_max": 80000.0, - "unit": 3 - } - }, - { - "pk": 3, - "model": "indicator.indicatorrecord", - "fields": { - "indicator": 3, - "notes": "pm type\r\nrecord 1", - "created_at": "2013-08-16T16:07:00.547Z", - "updated_at": "2013-09-09T01:56:20.103Z", - "value": "+", - "val_min": null, - "user": 1, - "date": "2013-08-16", - "val_max": null, - "unit": null - } - }, - { - "pk": 20, - "model": "indicator.indicatorrecord", - "fields": { - "indicator": 4, - "notes": "", - "created_at": "2013-09-12T07:12:42.394Z", - "updated_at": "2013-09-12T07:12:42.394Z", - "value": "600", - "val_min": null, - "user": 1, - "date": "2013-09-02", - "val_max": null, - "unit": 4 - } - }, - { - "pk": 19, - "model": "indicator.indicatorrecord", - "fields": { - "indicator": 4, - "notes": "", - "created_at": "2013-09-11T16:35:15.307Z", - "updated_at": "2013-09-11T16:35:15.307Z", - "value": "710", - "val_min": null, - "user": 1, - "date": "2013-09-12", - "val_max": null, - "unit": 4 - } - }, - { - "pk": 1, - "model": "indicator.recordhistory", - "fields": { - "val_min_bak": null, - "created_at": "2013-08-05T16:07:01.832Z", - "indicatorRecord": 1, - "reason": "\u6d4b\u8bd5\r\nadmin\u754c\u9762\u76f4\u63a5\u4fee\u6539", - "unit_bak": 1, - "val_max_bak": null, - "value_bak": "250", - "date_bak": "2013-08-05", - "notes_bak": "\u6307\u68071\r\n\u7b2c1\u6761\u8bb0\u5f55" - } - }, - { - "pk": 2, - "model": "indicator.recordhistory", - "fields": { - "val_min_bak": null, - "created_at": "2013-08-10T11:40:23.170Z", - "indicatorRecord": 1, - "reason": "\u6d4b\u8bd5\u4fee\u6539", - "unit_bak": 1, - "val_max_bak": null, - "value_bak": "250", - "date_bak": "2013-08-05", - "notes_bak": "\u6307\u68071\r\n\u7b2c1\u6761\u8bb0\u5f55" - } - }, - { - "pk": 3, - "model": "indicator.recordhistory", - "fields": { - "val_min_bak": null, - "created_at": "2013-08-26T08:08:16.911Z", - "indicatorRecord": 1, - "reason": "test reason", - "unit_bak": 1, - "val_max_bak": null, - "value_bak": "50", - "date_bak": "2013-08-05", - "notes_bak": "\u8c37\u4e19\u8f6c\u6c28\u9176\r\n\r\n\u7b2c1\u6761\u8bb0\u5f55\r\n" - } - }, - { - "pk": 4, - "model": "indicator.recordhistory", - "fields": { - "val_min_bak": null, - "created_at": "2013-08-26T12:11:29.572Z", - "indicatorRecord": 1, - "reason": "test", - "unit_bak": 1, - "val_max_bak": null, - "value_bak": "50", - "date_bak": "2013-08-05", - "notes_bak": "\u8c37\u4e19\u8f6c\u6c28\u9176\r\n\r\n\u7b2c1\u6761\u8bb0\u5f55\r\nmodified" - } - }, - { - "pk": 5, - "model": "indicator.recordhistory", - "fields": { - "val_min_bak": null, - "created_at": "2013-08-26T12:20:54.790Z", - "indicatorRecord": 1, - "reason": "test", - "unit_bak": 1, - "val_max_bak": null, - "value_bak": "50", - "date_bak": "2013-08-05", - "notes_bak": "\u8c37\u4e19\u8f6c\u6c28\u9176\r\n\r\n\u7b2c1\u6761\u8bb0\u5f55\r\nmodified" - } - }, - { - "pk": 13, - "model": "indicator.recordhistory", - "fields": { - "val_min_bak": null, - "created_at": "2013-09-09T01:53:47.362Z", - "indicatorRecord": 3, - "reason": "test to modify pm_data 1", - "unit_bak": null, - "val_max_bak": null, - "value_bak": "+", - "date_bak": "2013-08-17", - "notes_bak": "pm type\r\nrecord 1" - } - }, - { - "pk": 14, - "model": "indicator.recordhistory", - "fields": { - "val_min_bak": null, - "created_at": "2013-09-09T01:54:44.215Z", - "indicatorRecord": 3, - "reason": "test to modify pm_data 2, modified date", - "unit_bak": null, - "val_max_bak": null, - "value_bak": "-", - "date_bak": "2013-08-17", - "notes_bak": "pm type\r\nrecord 1" - } - }, - { - "pk": 15, - "model": "indicator.recordhistory", - "fields": { - "val_min_bak": null, - "created_at": "2013-09-09T01:56:19.906Z", - "indicatorRecord": 3, - "reason": "test 3, modified date & value", - "unit_bak": null, - "val_max_bak": null, - "value_bak": "-", - "date_bak": "2013-08-18", - "notes_bak": "pm type\r\nrecord 1" - } - }, - { - "pk": 7, - "model": "indicator.recordhistory", - "fields": { - "val_min_bak": null, - "created_at": "2013-08-26T12:24:26.681Z", - "indicatorRecord": 4, - "reason": "modification test1", - "unit_bak": 1, - "val_max_bak": null, - "value_bak": "150", - "date_bak": "2013-08-15", - "notes_bak": "\u8bb0\u5f553" - } - }, - { - "pk": 8, - "model": "indicator.recordhistory", - "fields": { - "val_min_bak": null, - "created_at": "2013-08-26T12:29:57.344Z", - "indicatorRecord": 4, - "reason": "modification test2", - "unit_bak": 1, - "val_max_bak": null, - "value_bak": "0", - "date_bak": "2013-08-15", - "notes_bak": "\u8bb0\u5f553" - } - }, - { - "pk": 16, - "model": "indicator.recordhistory", - "fields": { - "val_min_bak": null, - "created_at": "2013-09-12T07:11:09.554Z", - "indicatorRecord": 4, - "reason": "test", - "unit_bak": 1, - "val_max_bak": null, - "value_bak": "81.3", - "date_bak": "2013-08-14", - "notes_bak": "\u8bb0\u5f553" - } - }, - { - "pk": 9, - "model": "indicator.recordhistory", - "fields": { - "val_min_bak": 15000.0, - "created_at": "2013-08-26T16:04:54.516Z", - "indicatorRecord": 5, - "reason": "modify1(popup)", - "unit_bak": 3, - "val_max_bak": 25000.0, - "value_bak": "", - "date_bak": "2013-08-10", - "notes_bak": "" - } - }, - { - "pk": 1, - "model": "indicator.unit", - "fields": { - "indicator": 1, - "description": "IU/L\r\n\r\n\u8c37\u4e19\u8f6c\u6c28\u9176\r\nAlanine transaminase (ALT)", - "symbol": "IU/L", - "addByUser": 1, - "standard": true, - "relation": "v", - "name": "\u62f7\u8d1d/\u5347" - } - }, - { - "pk": 2, - "model": "indicator.unit", - "fields": { - "indicator": 1, - "description": "", - "symbol": "unit12", - "addByUser": 1, - "standard": false, - "relation": "log10(v) + 10", - "name": "\u5355\u4f4d12" - } - }, - { - "pk": 3, - "model": "indicator.unit", - "fields": { - "indicator": 2, - "description": "", - "symbol": "\u62f7\u8d1d/mL", - "addByUser": 1, - "standard": true, - "relation": "v", - "name": "\u62f7\u8d1d/mL" - } - }, - { - "pk": 4, - "model": "indicator.unit", - "fields": { - "indicator": 4, - "description": "\u7b80\u5355\u63cf\u8ff0", - "symbol": "unit41", - "addByUser": 1, - "standard": true, - "relation": "v", - "name": "\u5355\u4f4d41" - } - }, - { - "pk": 1, - "model": "indicator.innateconfine", - "fields": { - "math_max": 200.0, - "indicator": 1, - "human_max": 64.0, - "description": "\u8c37\u4e19\u8f6c\u6c28\u9176\r\n\r\n\u6b63\u5e38\u503c\u8303\u56f4\r\n\u5141\u8bb8\u6570\u636e\u8303\u56f4", - "val_norm": "", - "addByUser": 1, - "human_min": 10.0, - "unit": 1, - "math_min": 0.0 - } - }, - { - "pk": 2, - "model": "indicator.innateconfine", - "fields": { - "math_max": 80000.0, - "indicator": 2, - "human_max": 50000.0, - "description": "\u6307\u6807\r\n\r\n\u6570\u636e\u7c7b\u578b\uff1a\u8303\u56f4\u578b\r\n\r\n\u6570\u636e\u8303\u56f4", - "val_norm": "", - "addByUser": 1, - "human_min": 10000.0, - "unit": 3, - "math_min": 5000.0 - } - }, - { - "pk": 3, - "model": "indicator.innateconfine", - "fields": { - "math_max": null, - "indicator": 3, - "human_max": null, - "description": "pm type", - "val_norm": "+", - "addByUser": 1, - "human_min": null, - "unit": null, - "math_min": null - } - }, - { - "pk": 4, - "model": "indicator.innateconfine", - "fields": { - "math_max": 15000.0, - "indicator": 4, - "human_max": 10000.0, - "description": "float type", - "val_norm": "", - "addByUser": 1, - "human_min": 500.0, - "unit": 4, - "math_min": 0.0 - } - }, - { - "pk": 1, - "model": "indicator.relatedindicator", - "fields": { - "indicator": 1, - "weight": 5.9, - "created_at": "2013-08-10T22:40:00.035Z", - "updated_at": "2013-08-10T22:40:00.326Z", - "blog": null, - "annotation": 2, - "objectType": "AN" - } - }, - { - "pk": 3, - "model": "indicator.relatedindicator", - "fields": { - "indicator": 1, - "weight": 8.0, - "created_at": "2013-08-11T00:56:08.080Z", - "updated_at": "2013-08-11T00:56:08.080Z", - "blog": null, - "annotation": 1, - "objectType": "AN" - } - }, - { - "pk": 2, - "model": "indicator.relatedindicator", - "fields": { - "indicator": 2, - "weight": 8.3, - "created_at": "2013-08-10T22:50:00.035Z", - "updated_at": "2013-08-10T22:50:00.326Z", - "blog": 3, - "annotation": null, - "objectType": "BL" - } - }, - { - "pk": 4, - "model": "indicator.relatedindicator", - "fields": { - "indicator": 1, - "weight": 4.0, - "created_at": "2013-08-11T00:56:49.463Z", - "updated_at": "2013-08-11T00:56:49.463Z", - "blog": 1, - "annotation": null, - "objectType": "BL" - } - }, - { - "pk": 5, - "model": "indicator.relatedindicator", - "fields": { - "indicator": 1, - "weight": 6.0, - "created_at": "2013-08-11T00:57:23.067Z", - "updated_at": "2013-08-11T00:57:23.067Z", - "blog": 3, - "annotation": null, - "objectType": "BL" - } - } -]
\ No newline at end of file diff --git a/97suifangqa/apps/indicator/models.py b/97suifangqa/apps/indicator/models.py index 87cd80f..cf9b716 100644 --- a/97suifangqa/apps/indicator/models.py +++ b/97suifangqa/apps/indicator/models.py @@ -79,6 +79,10 @@ class IndicatorCategory(models.Model): # {{{ class Indicator(models.Model): # {{{ """ 指标模型 + + type: + normal: 普通类别,用户可以follow/unfollow + basic: 基本信息指标,用于记录基本信息,不可以follow """ name = models.CharField(u"指标名称", max_length=100) pinyin = models.CharField(u"拼音", max_length=200, @@ -88,6 +92,16 @@ class Indicator(models.Model): # {{{ description = models.TextField(u"指标描述", blank=True) # Indicator 接受数据类型/格式等说明/示例 helpText = models.CharField(u"帮助", max_length=300, blank=True) + # indicator type + NORMAL_TYPE = u'NORM' + BASIC_TYPE = u'BASI' + INDICATOR_TYPES = ( + (NORMAL_TYPE, u"普通指标"), + (BASIC_TYPE, u"基本信息指标"), + ) + type = models.CharField(u"指标类型", max_length=4, + choices=INDICATOR_TYPES, + help_text=u"基本信息指标:用于记录用户的基本信息,不可以被用户关注") # 记录添加指标的用户,用户只能修改自己添加的指标 addByUser = models.ForeignKey(User, verbose_name=u"添加的用户", related_name="indicators") @@ -95,21 +109,23 @@ class Indicator(models.Model): # {{{ categories = models.ManyToManyField(IndicatorCategory, verbose_name=u"所属类别", related_name="indicators") # DATA_TYPES for indicator - INTEGER_TYPE = u'IN' # 整数型 - FLOAT_TYPE = u'FL' # 浮点型 - RANGE_TYPE = u'RG' # 范围型(eg. 250-500) + INTEGER_TYPE = u'IN' # 整数型 + FLOAT_TYPE = u'FL' # 浮点型 + RANGE_TYPE = u'RG' # 范围型(eg. 250-500) FLOAT_RANGE_TYPE = u'FR' # 浮点型/范围型,接受定值或范围 - PM_TYPE = u'PM' # +/- 型 - RADIO_TYPE = u'RD' # 单选型 - CHECKBOX_TYPE = u'CB' # 多选多 + PM_TYPE = u'PM' # +/- 型 + KIND_TYPE = u'KD' # 种类型 + RADIO_TYPE = u'RD' # 单选型 + CHECKBOX_TYPE = u'CB' # 多选多 DATA_TYPES = ( - (INTEGER_TYPE, u"整数型"), - (FLOAT_TYPE, u"浮点定值型"), - (RANGE_TYPE, u"浮点范围型"), + (INTEGER_TYPE, u"整数型"), + (FLOAT_TYPE, u"浮点定值型"), + (RANGE_TYPE, u"浮点范围型"), (FLOAT_RANGE_TYPE, u"定值或范围型"), - (PM_TYPE, u"阴阳型(+/-)"), - #(RADIO_TYPE, u"单选型"), - #(CHECKBOX_TYPE, u"多选型"), + (PM_TYPE, u"阴阳型(+/-)"), + (KIND_TYPE, u"种类型"), + #(RADIO_TYPE, u"单选型"), + #(CHECKBOX_TYPE, u"多选型"), ) dataType = models.CharField(u"数据类型", max_length=2, choices=DATA_TYPES) @@ -119,8 +135,8 @@ class Indicator(models.Model): # {{{ ordering = ['pinyin', 'id'] def __unicode__(self): - return u"< Indicator: #%s, %s, dataType %s addBy %s >"\ - % (self.id, self.name, self.dataType, + return u"< Indicator: #%s(%s), %s, dataType %s addBy %s >"\ + % (self.id, self.type, self.name, self.dataType, self.addByUser.username) def show(self): @@ -140,11 +156,11 @@ class Indicator(models.Model): # {{{ self.pinyin = p.get_pinyin(self.name) super(Indicator, self).save(**kwargs) - def check_unit(self, **kwargs): + def check_unit(self, **kwargs): # {{{ """ Check if the validity of the units specified for the indicator. A indicator must have one 'standard unit'. - if indicator.dataType in [INTEGER_TYPE, PM_TYPE], + if indicator.dataType in [INTEGER_TYPE, PM_TYPE, KIND_TYPE], then units are not needed. """ if self.dataType in [self.FLOAT_TYPE, self.RANGE_TYPE, @@ -153,13 +169,14 @@ class Indicator(models.Model): # {{{ if std_unit: return True else: - print u"Indicator id=%s 未指定标准单位" % self.id + print u"Indicator(id=%s)未指定标准单位" % self.id return False else: - print u"dataType=%s 不需要单位" % self.dataType + #print u"dataType='%s' 不需要单位" % self.dataType return True + # }}} - def _get_unit(self, type="standard"): + def _get_unit(self, type="standard"): # {{{ if type == "standard": _units = self.units.filter(standard=True) elif type == "other": @@ -167,8 +184,9 @@ class Indicator(models.Model): # {{{ else: _units = [] return list(_units) + # }}} - def get_unit(self, type="standard"): + def get_unit(self, type="standard"): # {{{ """ return a 'list' which contains the 'Unit's related to the indicator @@ -185,6 +203,17 @@ class Indicator(models.Model): # {{{ return _units else: return self._get_unit(type) + # }}} + + def get_kind(self): + """ + get the valid ValueKind's that can be used with this indicator + (1) general 'ValueKind's + (2) 'ValueKind's related to this indicator + """ + general_kinds = list(ValueKind.objects.filter(indicator=None)) + ind_kinds = list(ValueKind.objects.filter(indicator=self)) + return list(general_kinds + ind_kinds) def check_confine(self): """ @@ -225,6 +254,7 @@ class Indicator(models.Model): # {{{ 'englishName': self.englishName, 'description': self.description, 'helpText': self.helpText, + 'type': self.type, 'addByUser_id': self.addByUser.id, 'dataType': self.dataType, 'categories_id': [c.id @@ -291,6 +321,13 @@ class IndicatorRecord(models.Model): # {{{ null=True, blank=True) val_max = models.FloatField(u"数据范围上限", null=True, blank=True) + # kind (for KIND_TYPE) + kind = models.ForeignKey("ValueKind", + related_name="indicator_records", + verbose_name=u"指标种类值", + null=True, blank=True, + help_text=u"仅供'种类型'指标填写") + # notes notes = models.TextField(u"记录说明", blank=True) class Meta: @@ -309,7 +346,8 @@ class IndicatorRecord(models.Model): # {{{ if self.is_valid() and self.check_confine(): super(IndicatorRecord, self).save(**kwargs) else: - raise ValueError(u'您输入的数据不符合要求') + raise ValueError(u'Error: 您输入的数据不符合要求') + return self def is_valid(self, **kwargs): # {{{ """验证输入数据是否合法""" @@ -317,8 +355,8 @@ class IndicatorRecord(models.Model): # {{{ qs = IndicatorRecord.objects.filter(indicator=self.indicator, date=self.date) if qs and qs[0].id != self.id: - #raise ValueError(u'date="%s" 该日期已经存在记录' % self.date) - print u'date="%s" 该日期已经存在记录' % self.date + #raise ValueError(u'Error: date="%s" 该日期已经存在记录' % self.date) + print u'Error: date="%s" 该日期已经存在记录' % self.date return False # check unit sind = self.indicator @@ -327,12 +365,12 @@ class IndicatorRecord(models.Model): # {{{ # unit required ind_units = sind.get_unit(type="all") if not self.unit: - #raise ValueError(u'未填写单位') - print u'未填写单位' + #raise ValueError(u'Error: 未填写单位') + print u'Error: 未填写单位' return False elif self.unit not in ind_units: - #raise ValueError(u'所选单位与该指标不符') - print u'所选单位与该指标不符' + #raise ValueError(u'Error: 所选单位与该指标不符') + print u'Error: 所选单位与该指标不符' return False # check dataType if self.indicator.dataType == self.indicator.INTEGER_TYPE: @@ -341,8 +379,8 @@ class IndicatorRecord(models.Model): # {{{ value = int(self.value) return True except ValueError: - #raise ValueError(u'您提交的指标数据类型不正确') - print u'您提交的指标数据类型不正确' + #raise ValueError(u'Error: 您提交的指标数据类型不正确') + print u'Error: 您提交的指标数据类型不正确' return False elif self.indicator.dataType == self.indicator.FLOAT_TYPE: # 浮点型 @@ -350,17 +388,17 @@ class IndicatorRecord(models.Model): # {{{ value = float(self.value) return True except ValueError: - #raise ValueError(u'value 数据类型不正确') - print u'value 数据类型不正确' + #raise ValueError(u'Error: value 数据类型不正确') + print u'Error: value 数据类型不正确' return False elif self.indicator.dataType == self.indicator.RANGE_TYPE: # 范围型 if (self.val_max is None) or (self.val_min is None): - #raise ValueError(u'val_max 或 val_min 未填写') - print u'val_max 或 val_min 未填写' + #raise ValueError(u'Error: val_max 或 val_min 未填写') + print u'Error: val_max 或 val_min 未填写' return False if (self.val_max <= self.val_min): - #raise ValueError(u'val_max <= val_min') + #raise ValueError(u'Error: val_max <= val_min') print u'Error: val_max <= val_min' return False return True @@ -372,33 +410,44 @@ class IndicatorRecord(models.Model): # {{{ value = float(self.value) return True except ValueError: - #raise ValueError(u'value 数据类型不正确') - print u'value 数据类型不正确' + #raise ValueError(u'Error: value 数据类型不正确') + print u'Error: value 数据类型不正确' return False elif (self.val_max is not None) and (self.val_min is not None): # 范围值 if (self.val_max <= self.val_min): - #raise ValueError(u'val_max <= val_min') + #raise ValueError(u'Error: val_max <= val_min') print u'Error: val_max <= val_min' return False else: return True else: - #raise ValueError(u'您提交的指标数据不符合要求') - print u'您提交的指标数据不符合要求' + #raise ValueError(u'Error: 您提交的指标数据不符合要求') + print u'Error: 您提交的指标数据不符合要求' return False elif self.indicator.dataType == self.indicator.PM_TYPE: # +/- 型,无单位要求 if (len(self.value) == 1) and (self.value in [u'+', u'-']): return True else: - #raise ValueError(u'value 只接受 "+" 或 "-"') + #raise ValueError(u'Error: value 只接受 "+" 或 "-"') print u'Error: value 只接受 "+" 或 "-"' return False - ## TODO: RADIO_TYPE, CHECKBOX_TYPE + elif self.indicator.dataType == self.indicator.KIND_TYPE: + ## KIND_TYPE + ## only the general 'ValueKind's and the ones related + ## to this indicator can be used + valid_kinds = self.indicator.get_kind() + if self.kind in valid_kinds: + return True + else: + #raise ValueError(u'Error: kind 不符合要求') + print u'Error: kind 不符合要求' + return False elif self.indicator.dataType in [self.indicator.RADIO_TYPE, self.indicator.CHECKBOX_TYPE]: - #raise ValueError(u'RADIO_TYPE, CHECKBOX_TYPE 验证未实现') + ## TODO: RADIO_TYPE, CHECKBOX_TYPE + #raise ValueError(u'Error: RADIO_TYPE, CHECKBOX_TYPE 验证未实现') print u'Error: RADIO_TYPE, CHECKBOX_TYPE 验证未实现' return False else: @@ -478,7 +527,7 @@ class IndicatorRecord(models.Model): # {{{ # check finished return True else: - # INTEGER_TYPE or PM_TYPE + # INTEGER_TYPE or PM_TYPE or KIND_TYPE return True # }}} @@ -489,6 +538,12 @@ class IndicatorRecord(models.Model): # {{{ """ # check the indicator.dataType sind = self.indicator + # kind_dump + if self.kind: + kind_dump = self.kind.dump() + else: + kind_dump = {} + # if sind.dataType in [sind.FLOAT_TYPE, sind.RANGE_TYPE, sind.FLOAT_RANGE_TYPE]: # self.value @@ -514,6 +569,7 @@ class IndicatorRecord(models.Model): # {{{ 'val_max': val_max, 'val_min': val_min, 'unit': self.unit.dump(), + 'kind': kind_dump, 'notes': self.notes, 'record_histories_id': [rh.id for rh in self.record_histories.all()], @@ -526,6 +582,7 @@ class IndicatorRecord(models.Model): # {{{ 'val_max': self.val_max, 'val_min': self.val_min, 'unit': {}, + 'kind': kind_dump, 'notes': self.notes, 'record_histories_id': [rh.id for rh in self.record_histories.all()], @@ -586,6 +643,11 @@ class IndicatorRecord(models.Model): # {{{ raise ValueError(errmsg) else: val_min_std = None + # kind_dump + if self.kind: + kind_dump = self.kind.dump + else: + kind_dump = {} # output data data_std = { 'id': self.id, @@ -594,6 +656,7 @@ class IndicatorRecord(models.Model): # {{{ 'val_max': val_max_std, 'val_min': val_min_std, 'unit': std_unit.dump(), + 'kind': kind_dump, 'notes': self.notes, 'record_histories_id': [rh.id for rh in self.record_histories.all()], @@ -685,7 +748,15 @@ class IndicatorRecord(models.Model): # {{{ return True else: return False + elif sind.dataType == sind.KIND_TYPE: + ## KIND_TYPE + kind_id = data_std['kind_id'] + if kind_id == sic.kind.id: + return True + else: + return False elif sind.dataType in [sind.RADIO_TYPE, sind.CHECKBOX_TYPE]: + ## TODO: RADIO_TYPE, CHECKBOX_TYPE print u'Error: RADIO_TYPE, CHECKBOX_TYPE 验证未实现' #raise ValueError(u'RADIO_TYPE, CHECKBOX_TYPE 验证未实现') return None @@ -695,12 +766,17 @@ class IndicatorRecord(models.Model): # {{{ return None # }}} - def dump(self, **kwargs): + def dump(self, **kwargs): # {{{ # check if the indicator needs unit if self.unit: unit_id = self.unit.id else: unit_id = None + # kind_id + if self.kind: + kind_dump = self.kind.dump() + else: + kind_dump = {} # dump dump_data = { 'id': self.id, @@ -713,11 +789,13 @@ class IndicatorRecord(models.Model): # {{{ 'value': self.value, 'val_min': self.val_min, 'val_max': self.val_max, + 'kind': kind_dump, 'notes': self.notes, 'record_histories_id': [rh.id for rh in self.record_histories.all()], } return dump_data + # }}} # }}} @@ -744,6 +822,10 @@ class RecordHistory(models.Model): # {{{ null=True, blank=True, editable=False) val_max_bak = models.FloatField(u"原数据范围上限", null=True, blank=True, editable=False) + kind_bak = models.ForeignKey("ValueKind", + related_name="record_histories", + verbose_name=u"原种类值", + null=True, blank=True, editable=False) notes_bak = models.TextField(u"原记录说明", blank=True, editable=False) @@ -763,6 +845,7 @@ class RecordHistory(models.Model): # {{{ self.value_bak = sr.value self.val_min_bak = sr.val_min self.val_max_bak = sr.val_max + self.kind_bak = sr.kind self.notes_bak = sr.notes # save super(RecordHistory, self).save(**kwargs) @@ -773,6 +856,11 @@ class RecordHistory(models.Model): # {{{ unit_bak_id = self.unit_bak.id else: unit_bak_id = None + # kind_bak_id + if self.kind_bak: + kind_bak_id = self.kind_bak.id + else: + kind_bak_id = None # dump dump_data = { 'id': self.id, @@ -784,6 +872,7 @@ class RecordHistory(models.Model): # {{{ 'value_bak': self.value_bak, 'val_min_bak': self.val_min_bak, 'val_max_bak': self.val_max_bak, + 'kind_bak_id': kind_bak_id, 'notes_bak': self.notes_bak, } return dump_data @@ -829,23 +918,23 @@ class Unit(models.Model): # {{{ if self.id == std_unit.id: return True else: - print u"该指标已经指定了标准单位" - raise ValueError(u"该指标已经指定了标准单位") + print u"Error: 该指标已经指定了标准单位" + raise ValueError(u"Error: 该指标已经指定了标准单位") return False else: return True else: if (not self.relation): - print u"单位映射关系未填写" - raise ValueError(u"单位映射关系未填写") + print u"Error: 单位映射关系未填写" + raise ValueError(u"Error: 单位映射关系未填写") return False else: try: fsym = sympy.sympify(self.relation) return True except SympifyError: - print u"'%s' 不是合法的算术表达式" % self.relation - raise ValueError(u"'%s' 不是合法的算术表达式"\ + print u"Error: '%s' 不是合法的算术表达式" % self.relation + raise ValueError(u"Error: '%s' 不是合法的算术表达式"\ % self.relation) return False @@ -878,6 +967,10 @@ class InnateConfine(models.Model): # {{{ 如果数据类型需要单位,则必须使用"标准单位"; IndicatorRecord.is_normal() 方法需要如此; 因为 标准单位 到 其他单位 的换算没有实现。 + + KIND_TYPE: + 对于'种类型'指标,如果每个可选种类不区分正常和异常, + 且程序其他地方也不涉及是否正常,则可以随便选一个。 """ # indicator indicator = models.OneToOneField("Indicator", @@ -889,6 +982,12 @@ class InnateConfine(models.Model): # {{{ # normal value (for INTEGER_TYPE, PM_TYPE) val_norm = models.CharField(u"正常值", max_length=30, blank=True, help_text=u'填写"整数型","阴阳(+/-)型数据"') + # normal kind (for KIND_TYPE) + kind_norm = models.ForeignKey("ValueKind", + related_name="innate_confines", + verbose_name=u"正常种类值", + null=True, blank=True, + help_text=u"仅供'种类型'指标填写") # normal range human_min = models.FloatField(u"人体正常值下限", null=True, blank=True) @@ -929,10 +1028,15 @@ class InnateConfine(models.Model): # {{{ sind = self.indicator if sind.dataType in [sind.FLOAT_TYPE, sind.RANGE_TYPE, sind.FLOAT_RANGE_TYPE]: - # check unit - if not (self.unit and self.unit.standard): - raise ValueError(u'单位未填写/不是标准单位') + # check unit if given + # check the unit if related to the indicator + ind_std_unit = sind.get_unit(type="standard") + if self.unit and self.unit in ind_std_unit: + return True + else: + raise ValueError(u'ERROR: 单位未填写/不是该指标的标准单位') return False + # if (self.human_max is None) or (self.human_min is None): raise ValueError(u'Error: human_max 或 human_min 未填写') return False @@ -959,7 +1063,7 @@ class InnateConfine(models.Model): # {{{ val_norm = int(self.val_norm) return True except ValueError: - raise ValueError(u'val_norm="%s" 不是整数型值' + raise ValueError(u'ERROR: val_norm="%s" 不是整数型值' % self.val_norm) return False elif sind.dataType == sind.PM_TYPE: @@ -968,14 +1072,27 @@ class InnateConfine(models.Model): # {{{ self.val_norm in [u'+', u'-']): return True else: - raise ValueError(u'value 只接受 "+" 或 "-"') + raise ValueError(u'ERROR: value 只接受 "+" 或 "-"') + return False + elif sind.dataType == sind.KIND_TYPE: + ## KIND type + ## (KIND type indicator not need 'InnateConfine') + if not self.kind_norm: + raise ValueError(u'ERROR: kind_norm 未填写') return False - ## TODO: RADIO_TYPE, CHECKBOX_TYPE + else: + valid_kinds = self.indicator.get_kind() + if self.kind_norm in valid_kinds: + return True + else: + raise ValueError(u'ERROR: kind_norm 不符合要求') + return False elif sind.dataType in [sind.RADIO_TYPE, sind.CHECKBOX_TYPE]: - raise ValueError(u'RADIO_TYPE, CHECKBOX_TYPE 验证未实现') + ## TODO: RADIO_TYPE, CHECKBOX_TYPE + raise ValueError(u'ERROR: RADIO_TYPE, CHECKBOX_TYPE 验证未实现') return False else: - raise ValueError(u'数据不符合要求') + raise ValueError(u'ERROR: 数据不符合要求') return False # }}} @@ -985,12 +1102,18 @@ class InnateConfine(models.Model): # {{{ unit_dump = self.unit.dump() else: unit_dump = {} + # check 'kind_norm' + if self.kind_norm: + kind_norm_dump = self.kind_norm.dump() + else: + kind_norm_dump = {} # dump dump_data = { 'id': self.id, 'indicator_id': self.indicator.id, 'unit': unit_dump, 'val_norm': self.val_norm, + 'kind_norm': kind_norm_dump, 'human_min': self.human_min, 'human_max': self.human_max, 'math_min': self.math_min, @@ -1123,17 +1246,76 @@ class RelatedIndicator(models.Model): # {{{ # }}} +class ValueKind(models.Model): # {{{ + """ + 记录某指标可以可使用的"种类"值 + + 并为需要使用"种类"值的地方提供可选范围(e.g.: recommend.ResearchAtom) + 使用统一的符号(symbol)来寻找及匹配 + """ + name = models.CharField(u"名称", max_length=30) + symbol = models.CharField(u"符号", max_length=30, + help_text=u"仅能使用字母、数字和下划线,最长30字符") + description = models.TextField(u"描述", blank=True) + indicator = models.ForeignKey("Indicator", + related_name="value_kinds", verbose_name=u"关联的指标", + null=True, blank=True) + + class Meta: + verbose_name_plural = u"指标可用种类" + + def __unicode__(self): + if self.indicator: + indicator_name = self.indicator.name + else: + indicator_name = '*' + return u'< ValueKind: %s(%s) for indicator(%s) >' %\ + (self.name, self.symbol, indicator_name) + + def save(self, **kwargs): + if self.is_valid(): + super(ValueKind, self).save(**kwargs) + else: + return self + + def is_valid(self): + # check symbol + sym_regex = re.compile(r'^[_0-9a-zA-Z]+$') + if sym_regex.search(self.symbol): + return True + else: + raise ValueError(u"仅能使用字母、数字和下划线,最长30字符") + return False + + def dump(self, **kwargs): + if self.indicator: + indicator_id = self.indicator.id + else: + indicator_id = None + # + dump_data = { + 'id': self.id, + 'name': self.name, + 'symbol': self.symbol, + 'description': self.description, + 'indicator_id': indicator_id, + } + return dump_data +# }}} + + admin.site.register([ - IndicatorCategory, - Indicator, - UserIndicator, - IndicatorRecord, - RecordHistory, - Unit, - InnateConfine, - StatisticalConfine, - RelatedIndicator, - ]) + IndicatorCategory, + Indicator, + UserIndicator, + IndicatorRecord, + RecordHistory, + Unit, + InnateConfine, + StatisticalConfine, + RelatedIndicator, + ValueKind, +]) # vim: set ts=4 sw=4 tw=0 fenc=utf-8 ft=python: # diff --git a/97suifangqa/apps/indicator/forms.py b/97suifangqa/apps/indicator/obsolete/forms.py index 2e0b709..2e0b709 100644 --- a/97suifangqa/apps/indicator/forms.py +++ b/97suifangqa/apps/indicator/obsolete/forms.py diff --git a/97suifangqa/apps/indicator/obsolete/views_forms.py b/97suifangqa/apps/indicator/obsolete/views_forms.py new file mode 100644 index 0000000..89af21f --- /dev/null +++ b/97suifangqa/apps/indicator/obsolete/views_forms.py @@ -0,0 +1,311 @@ +# -*- coding: utf-8 -*- + +""" +views for used with forms.py + +splitted from 'views.py' +""" + +from indicator.forms import * + +########################################################### +###### forms ###### + +## add_edit_category # {{{ +@login_required +def add_edit_category(request, category_id=None, template='indicator/simple.html'): + """ + add/edit category: 'models.IndicatorCategory' + for 'staff' or 'normal user' + """ + # get or create model instance + if category_id: + category_id = int(category_id) + category = get_object_or_404(im.IndicatorCategory, + id=category_id) + action = 'Edit' + # check the user + # 'staff' can edit all data; + # normal users can only edit their own. + if category.addByUser != request.user and ( + not request.user.is_staff): + return HttpResponseForbidden() + else: + category = im.IndicatorCategory(addByUser=request.user) + action = 'Add' + + if request.method == 'POST': + form = IndicatorCategoryForm(request.POST, instance=category) + if form.is_valid(): + # form posted and valid + # save form to create/update the model instance + form.save() + # redirect url, avoid page reload/refresh + return HttpResponseRedirect('/indicator/done/') + else: + # form with data of the specified instance + form = IndicatorCategoryForm(instance=category) + + return render(request, template, { + 'object': 'IndicatorCategory', + 'action': action, + 'form': form, + }) +# }}} + + +# add_edit_indicator # {{{ +@login_required +def add_edit_indicator(request, indicator_id=None, template='indicator/simple.html'): + """ + add/edit indicator: 'models.Indicator' + for 'staff' or 'normal user' + """ + if indicator_id: + indicator_id = int(indicator_id) + indicator = get_object_or_404(im.Indicator, + id=indicator_id) + action = 'Edit' + # check the user + # 'staff' can edit all data; + # normal users can only edit their own. + if indicator.addByUser != request.user and ( + not request.user.is_staff): + return HttpResponseForbidden() + else: + indicator = im.Indicator(addByUser=request.user) + action = 'Add' + + if request.method == 'POST': + form = IndicatorForm(request.POST, instance=indicator) + if form.is_valid(): + # form posted and valid + form.save() + # redirect url, avoid page reload/refresh + return HttpResponseRedirect('/indicator/done/') + else: + # form with instance + form = IndicatorForm(instance=indicator) + + return render(request, template, { + 'object': 'Indicator', + 'action': action, + 'form': form, + }) +# }}} + + +## add_edit_unit {{{ +@login_required +def add_edit_unit(request, unit_id=None, template='indicator/simple.html'): + """ + add unit for indicator + """ + if unit_id: + unit_id = int(unit_id) + unit = get_object_or_404(im.Unit, id=unit_id) + action = 'Edit' + # check the user + # 'staff' can edit all data; + # normal users can only edit their own. + if unit.addByUser != request.user and ( + not request.user.is_staff): + return HttpResponseForbidden() + else: + unit = im.Unit(addByUser=request.user) + action = 'Add' + + if request.method == 'POST': + form = UnitForm(request.POST, instance=unit) + if form.is_valid(): + # form posted and valid + form.save() + # redirect url, avoid page reload/refresh + return HttpResponseRedirect('/indicator/done/') + else: + # form with instance + form = UnitForm(instance=unit) + + return render(request, template, { + 'object': 'Unit', + 'action': action, + 'form': form, + }) +# }}} + + +## add_edit_confine {{{ +@login_required +def add_edit_confine(request, confine_id=None, template='indicator/simple.html'): + """ + InnateConfine + add confines for indicator + """ + if confine_id: + confine_id = int(confine_id) + confine = get_object_or_404(im.InnateConfine, id=confine_id) + action = 'Edit' + # check the user + # 'staff' can edit all data; + # normal users can only edit their own. + if confine.addByUser != request.user and ( + not request.user.is_staff): + return HttpResponseForbidden() + else: + confine = im.InnateConfine(addByUser=request.user) + action = 'Add' + + if request.method == 'POST': + form = InnateConfineForm(request.POST, instance=confine) + if form.is_valid(): + # form posted and valid + form.save() + # redirect url, avoid page reload/refresh + return HttpResponseRedirect('/indicator/done/') + else: + # form with instance + form = InnateConfineForm(instance=confine) + + return render(request, template, { + 'object': 'InnateConfine', + 'action': action, + 'form': form, + }) +# }}} + + +## add_edit_record {{{ +@login_required +def add_edit_record(request, record_id=None, template='indicator/simple.html'): + """ + add/edit 'IndicatorRecord' + + staff 能自由地修改所有的记录,并且无需填写"修改原因"; + 普通用户只能修改自己的记录,而且必须填写"修改原因" -> RecordHistory + + TODO: + * 当用户选择好"indicator"后,重新筛选"unit",只提供与"indicator" + 对应的"unit"供选择; + * 对"普通用户"增加限制,修改数据"记录"时必须同时提交"修改原因", + 对应模型"RecordHistory"。 + """ + if record_id: + record_id = int(record_id) + record = get_object_or_404(im.IndicatorRecord, id=record_id) + action = 'Edit' + # check the user + if request.user.is_staff: + # 'staff' can edit all data; + pass + elif request.user == record.user: + # user modify the record + return HttpResponse("Not finished yet ...") + #return modify_record(request, record_id) + else: + return HttpResponseForbidden() + else: + record = im.IndicatorRecord(user=request.user) + action = 'Add' + + if request.method == 'POST': + form = IndicatorRecordForm(request.POST, instance=record) + if form.is_valid(): + #raise ValueError + form.save() + # redirect url, avoid page reload/refresh + return HttpResponseRedirect('/indicator/done/') + else: + # form with instance + form = IndicatorRecordForm(instance=record) + + return render(request, template, { + 'object': 'IndicatorRecord', + 'action': action, + 'form': form, + }) +# }}} + + +## modify_record {{{ +@login_required +def modify_record(request, record_id=None, template='indicator/simple.html'): + """ + modify an existing IndicatorRecord + + TODO: + a new 'RecordHistory' is added to record the modification reason + and backup the original data + """ + if record_id: + record_id = int(record_id) + record = get_object_or_404(im.IndicatorRecord, id=record_id) + action = 'Edit' + # check the user + if request.user.is_staff: + # 'staff' can edit all data; + return add_edit_record(request, record_id) + elif request.user == record.user: + # user modify the record + action = 'Modify' + pass + else: + return HttpResponseForbidden() + else: + return add_edit_record(request) + + if request.method == 'POST': + form = IndicatorRecordForm(request.POST, instance=record) + if form.is_valid(): + # form posted and valid + # TODO + raise ValueError(u"该功能尚未完整实现") + form.save() + # redirect url, avoid page reload/refresh + return HttpResponseRedirect('/indicator/done/') + else: + # form with instance + form = IndicatorRecordForm(instance=record) + + return render(request, template, { + 'object': 'IndicatorRecord', + 'action': action, + 'form': form, + }) +## }}} + + +## add_recordhistory_view {{{ +@login_required +def add_recordhistory_view(request, record_id, template='indicator/simple.html'): + """ + add 'RecordHistory' for a record by given + + 'staff' should use the 'admin' interface. + """ + record_id = int(record_id) + record = get_object_or_404(im.IndicatorRecord, id=record_id) + recordhistory = im.RecordHistory(indicatorRecord=record) + action = 'Add' + # check the user + if request.user != record.user: + return HttpResponseForbidden() + + if request.method == 'POST': + form = RecordHistoryForm(request.POST, instance=recordhistory) + if form.is_valid(): + # form posted and valid + form.save() + # redirect url, avoid page reload/refresh + return HttpResponseRedirect('/indicator/done/') + else: + # form with instance + form = RecordHistoryForm(instance=recordhistory) + + return render(request, template, { + 'object': 'RecordHistory', + 'action': action, + 'form': form, + }) +# }}} + + diff --git a/97suifangqa/apps/indicator/search_indexes.py b/97suifangqa/apps/indicator/search_indexes.py index f225b2c..aa0653d 100644 --- a/97suifangqa/apps/indicator/search_indexes.py +++ b/97suifangqa/apps/indicator/search_indexes.py @@ -12,7 +12,7 @@ class IndicatorCategoryIndex(indexes.SearchIndex, indexes.Indexable): search index for 'Indicator' """ text = indexes.CharField(document=True, use_template=True) - # pinyin: for ordering the search result + # fields used to filter results pinyin = indexes.CharField(model_attr='pinyin') addByUser = indexes.CharField(model_attr='addByUser') @@ -33,8 +33,9 @@ class IndicatorIndex(indexes.SearchIndex, indexes.Indexable): search index for 'Indicator' """ text = indexes.CharField(document=True, use_template=True) - # pinyin: for ordering the search result + # fields used to filter results pinyin = indexes.CharField(model_attr='pinyin') + type = indexes.CharField(model_attr='type') addByUser = indexes.CharField(model_attr='addByUser') dataType = indexes.CharField(model_attr='dataType') categories_id = indexes.MultiValueField() diff --git a/97suifangqa/apps/indicator/static/css/delete_card_tip.css b/97suifangqa/apps/indicator/static/css/delete_card_tip.css index 89eee88..9fef26f 100644 --- a/97suifangqa/apps/indicator/static/css/delete_card_tip.css +++ b/97suifangqa/apps/indicator/static/css/delete_card_tip.css @@ -4,6 +4,7 @@ background-color: #FFFFFF; border: 1px solid #94C721; padding: 0 20px 0 20px; + border-radius: 3px; } .delete_card_tip_title_line { height: 42px; @@ -26,26 +27,49 @@ cursor: pointer; } .delete_card_tip_content { - height: 55px; + height: 60px; line-height: 55px; color: #4A4A4A; font-size: 14px; + text-align: center } .delete_card_tip_action { height: 67px; + margin-left: -20px; } -.delete_card_tip_action .action_confirm_cancel, .delete_card_tip_action .action_confirm_ignore { +.delete_card_tip_action .action_confirm_ignore { background-color: #99CC33; - border-radius: 2px; - width: 75px; + border-radius: 3px; + width: 100px; color: white; cursor: pointer; - height: 22px; - line-height: 22px; + height: 26px; display: inline-block; text-align: center; - margin-top: 13px; text-decoration: none; + font-size: 15px; + padding:2px; + padding-top:7px; + margin-right: 20px; + +} + +.delete_card_tip_action .action_confirm_cancel{ + background-color: #a8a8a8; + border-radius: 3px; + width: 100px; + color: white; + cursor: pointer; + height: 26px; + display: inline-block; + text-align: center; + text-decoration: none; + padding:2px; + font-size: 15px; + padding-top:7px; + margin-right: 40px; + + } .delete_card_tip_action .action_confirm_cancel { margin: 0 11px 0 213px; diff --git a/97suifangqa/apps/indicator/static/css/edit_history_data.css b/97suifangqa/apps/indicator/static/css/edit_history_data.css index e1caa9f..d3124de 100644 --- a/97suifangqa/apps/indicator/static/css/edit_history_data.css +++ b/97suifangqa/apps/indicator/static/css/edit_history_data.css @@ -23,16 +23,18 @@ input[type="radio"]:checked + label { #edit_history_data_container { width: 588px; - height: 180px; + height: 230px; background-color: #FFFFFF; border: 1px solid #94C721; padding: 0 20px 0 20px; + border-radius: 3px; } .edit_history_data_title_line { height: 42px; line-height: 42px; border-bottom: 1px solid #D6D0D6; width: 588px; + margin-top: 10px; } .edit_history_data_title_line .edit_history_data_title { font-weight: bold; @@ -51,6 +53,7 @@ input[type="radio"]:checked + label { .edit_history_data_content { color: #4A4A4A; font-size: 14px; + margin-top:10px; } .edit_history_data_content .refer_range { height: 26px; @@ -60,9 +63,11 @@ input[type="radio"]:checked + label { } .edit_history_data_content .refer_range .refer_text { margin-right: 8px; + margin-bottom:-5px; } .edit_history_data_content .refer_range .refer_value { margin-right: 8px; + margin-bottom:-10px; } .edit_history_data_content .edit_data { line-height: 26px; @@ -70,6 +75,7 @@ input[type="radio"]:checked + label { .edit_history_data_content .edit_data .date { height: 26px; line-height: 26px; + margin-top: -10px; } .edit_history_data_content .edit_data .date .date_text { margin-right: 8px; @@ -93,11 +99,11 @@ input[type="radio"]:checked + label { font-weight: bold; } .edit_history_data_content .edit_data .state .normal { - background-color: #B8DB70; + /*background-color: #B8DB70;*/ padding: 2px; } .edit_history_data_content .edit_data .state .abnormal { - background-color: #FFB3B3; + color: #99CC33; padding: 2px; } .edit_history_data_content .edit_data .state .unknown { @@ -105,19 +111,45 @@ input[type="radio"]:checked + label { padding: 2px; } .edit_history_data_content .edit_data #delete_btn { - float: right; - height: 26px; - line-height: 22px; - padding: 1px 26px; - margin-right: 8px; - background-color: #E64848; + background-color: rgb(50, 53, 61); + border-radius: 3px 3px 3px 3px; + color: rgb(255, 255, 255); + float: right; + font-size: 15px; + height: 35px; + margin-right: 15px; + margin-top: 5px; + padding: 1px 26px 1px 20px; + width: 100px; } .edit_history_data_content .edit_data #edit_btn, .edit_history_data_content .editing_data #save_btn { - float: right; - height: 26px; - line-height: 22px; - padding: 1px 26px; + border-radius: 3px 3px 3px 3px; + float: right; + font-size: 15px; + height: 35px; + margin-top: 5px; + padding: 1px 26px 1px 20px; + width: 100px +} +.edit_history_data_content .delete_prompt { + float: right; + height: 35px; + margin-top: 10px; +} +.edit_history_data_content .delete_prompt div { + float: right; + margin-right: 10px; +} +.edit_history_data_content .delete_prompt .prompt { + font-size: 16px; + line-height: 24px; + padding: 1px 10px 1px 10px; +} +.edit_history_data_content .delete_prompt .prompt_btns { + cursor: pointer; } + + .edit_history_data_content .editing_data { line-height: 26px; display: none; @@ -138,30 +170,40 @@ input[type="radio"]:checked + label { position: relative; } .edit_history_data_content .editing_data .date .datepicker { - background: #FFFFFF; - border: 1px solid #9C9C9C; - color: #B9B9B9; - width: 131px; - height: 17px; - line-height: 17px; - position: relative; - padding-top: 2px; - padding-bottom: 2px; + background: none repeat scroll 0 0 rgb(255, 255, 255); + border: 1px solid rgb(217, 217, 217); + border-radius: 3px 3px 3px 3px; + color: rgb(217, 217, 217); + height: 30px; + line-height: 17px; + margin: -3px 0 15px; + padding-top: 2px; + position: absolute; + width: 123px; } + +.edit_history_data_content .editing_data .date .datepicker:focus { + outline:0; + border-color:#99cc33; +} + .edit_history_data_content .editing_data .date .ui-datepicker-trigger { position: absolute; - top: 4px; - right: 8px; + top: 5px; + right: 20px; + /* margin-right: -10px; */ cursor: pointer; + margin-top: -1px; + /* margin-left: -50px; */ + } .edit_history_data_content .editing_data .date .datepicker_container .valid { - border: 2px solid green; + color:inherit; } .edit_history_data_content .editing_data .date .datepicker_container .invalid { border: 2px solid red; } .edit_history_data_content .editing_data .data { - height: 26px; line-height: 26px; float: left; top: 1px; @@ -169,14 +211,24 @@ input[type="radio"]:checked + label { .edit_history_data_content .editing_data .data .prompt { margin-right: 8px; float: left; + margin-top: 16px; + line-height: 1.6em; } .edit_history_data_content .editing_data .data input { color: #5C5C5C; background-color: #FFFFFF; - border: 1px solid #9C9C9C; + border: 1px solid rgb(217,217,217); + border-radius: 3px; + padding-left: 10px; +} + +.edit_history_data_content .editing_data .data input:focus { + border-color:#99cc33; } + .edit_history_data_content .editing_data .data .valid { - border: 2px solid green; + /* border: 2px solid green; */ + color: inherit; } .edit_history_data_content .editing_data .data .invalid { border: 2px solid red; @@ -186,17 +238,20 @@ input[type="radio"]:checked + label { float: left; } .edit_history_data_content .editing_data .data .data_input { - width: 200px; - height: 17px; - line-height: 17px; - padding-top: 2px; - padding-bottom: 2px; - margin-right: 8px; + float: right; + height: 28px; + line-height: 17px; + margin-right: 8px; + margin-top: 10px; + padding-bottom: 2px; + padding-top: 2px; + width: 120px; } .edit_history_data_content .editing_data .data_unit { height: 26px; line-height: 26px; margin-right: 8px; + margin-top: 16px; } .edit_history_data_content .editing_data .reason { height: 26px; @@ -206,6 +261,7 @@ input[type="radio"]:checked + label { .edit_history_data_content .editing_data .reason .prompt { margin-right: 8px; float: left; + margin-top: 10px; } .edit_history_data_content .editing_data .reason input { color: #5C5C5C; @@ -216,12 +272,19 @@ input[type="radio"]:checked + label { border: 2px solid green; } .edit_history_data_content .editing_data .reason .invalid { - border: 2px solid red; } .edit_history_data_content .editing_data .reason .reason_input { width: 330px; - height: 17px; + height: 26px; line-height: 17px; padding-top: 2px; padding-bottom: 2px; + margin-top: 7px; + border-radius: 3px; + border-color: rgb(217,217,217); } + +.edit_history_data_content .editing_data .reason .reason_input :focus{ + + border-color:#99cc33; + } diff --git a/97suifangqa/apps/indicator/static/css/nav.css b/97suifangqa/apps/indicator/static/css/nav.css new file mode 100644 index 0000000..a103f90 --- /dev/null +++ b/97suifangqa/apps/indicator/static/css/nav.css @@ -0,0 +1,1213 @@ +@charset "UTF-8";
+/**
+ * @file
+ * Blog specific styles
+ */
+/* line 10, ../../../sass/sass/blog.scss */
+body.scrolled-down.blog #blog-top-nav {
+ background-color: white;
+}
+/* line 13, ../../../sass/sass/blog.scss */
+body.scrolled-down.blog #blog-top-nav .background {
+ border-bottom: 1px solid #eee;
+}
+
+/* line 22, ../../../sass/sass/blog.scss */
+.blog .post-question input[type="text"] {
+ background-color: #8b8885;
+ color: white;
+ border: 1px solid white;
+ -webkit-box-shadow: 0px 0px 2px white;
+ -moz-box-shadow: 0px 0px 2px white;
+ box-shadow: 0px 0px 2px white;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"].placeholder {
+ color: #eeeeee;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"]:focus.placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"].input-placeholder {
+ color: #eeeeee;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"]:focus.input-placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"]:-moz-placeholder {
+ color: #eeeeee;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"]:focus:-moz-placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"]::-webkit-input-placeholder {
+ color: #eeeeee;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"]:focus::-webkit-input-placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"]::-moz-placeholder {
+ color: #eeeeee;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"]:focus::-moz-placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"]:-ms-input-placeholder {
+ color: #eeeeee;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"]:focus:-ms-input-placeholder {
+ color: transparent;
+}
+/* line 32, ../../../sass/sass/blog.scss */
+.blog #sidebar-first #header {
+ position: absolute;
+ bottom: 30px;
+ text-align: center;
+ width: auto;
+
+}
+/* line 40, ../../../sass/sass/blog.scss */
+ #nav-ribbon {
+ font-size: 1.07143em;
+ line-height: 1.33333em;
+ margin-bottom: 1.5em;
+ color: white;
+ position: relative;
+ white-space: nowrap;
+ height: 33px;
+ min-width: 89px;
+ -webkit-transition: min-width 0.3s ease;
+ -webkit-transition-delay: 0s;
+ -moz-transition: min-width 0.3s ease 0s;
+ -o-transition: min-width 0.3s ease 0s;
+ transition: min-width 0.3s ease 0s;
+}
+/* line 56, ../../../sass/sass/blog.scss */
+ #nav-ribbon .controls-wrap,
+ #nav-ribbon .head-background,
+ #nav-ribbon .tail-cut {
+ height: 33px;
+}
+/* line 60, ../../../sass/sass/blog.scss */
+ #nav-ribbon .controls-wrap {
+ position: absolute;
+ padding-left: 20px;
+}
+/* line 67, ../../../sass/sass/blog.scss */
+ #nav-ribbon .head-background,
+ #nav-ribbon .links-wrap,
+ #nav-ribbon .tail {
+ background-color: #0063a8;
+}
+/* line 71, ../../../sass/sass/blog.scss */
+ #nav-ribbon .head-background {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 20px;
+ -webkit-box-shadow: inset 20px 0px 20px -20px;
+ -moz-box-shadow: inset 20px 0px 20px -20px;
+ box-shadow: inset 20px 0px 20px -20px;
+}
+/* line 81, ../../../sass/sass/blog.scss */
+ #nav-ribbon .links-wrap,
+ #nav-ribbon .tail,
+ #nav-ribbon .tail-cut {
+ float: left;
+}
+/* line 85, ../../../sass/sass/blog.scss */
+ #nav-ribbon .links-wrap {
+ -webkit-transition: width 0.3s ease;
+ -webkit-transition-delay: 0s;
+ -moz-transition: width 0.3s ease 0s;
+ -o-transition: width 0.3s ease 0s;
+ transition: width 0.3s ease 0s;
+ width: 0px;
+ overflow: hidden;
+}
+/* line 93, ../../../sass/sass/blog.scss */
+ #nav-ribbon:hover .links-wrap, #nav-ribbon.active .links-wrap,
+ #nav-ribbon ul.links {
+ width: 174px;
+}
+/* line 100, ../../../sass/sass/blog.scss */
+ #nav-ribbon:hover, #nav-ribbon.active {
+ min-width: 263px;
+}
+/* line 105, ../../../sass/sass/blog.scss */
+ #nav-ribbon ul.links li a,
+#nav-ribbon .tail {
+ line-height: 33px;
+ text-align: center;
+}
+/* line 110, ../../../sass/sass/blog.scss */
+#nav-ribbon ul.links {
+ display: block;
+ white-space: nowrap;
+ margin: 0;
+ padding: 0;
+}
+/* line 115, ../../../sass/sass/blog.scss */
+#nav-ribbon ul.links li {
+ display: block;
+ padding: 0;
+ float: left;
+}
+/* line 119, ../../../sass/sass/blog.scss */
+#nav-ribbon ul.links li a {
+ width: 86px;
+ display: block;
+ color: white;
+ border-right: 1px solid #267ab5;
+}
+/* line 126, ../../../sass/sass/blog.scss */
+#nav-ribbon ul.links li a:hover, #nav-ribbon ul.links li a:active, #nav-ribbon ul.links li a.active {
+ text-decoration: none;
+ background-color: #00497f;
+}
+/* line 134, ../../../sass/sass/blog.scss */
+#nav-ribbon .tail {
+ width: 50px;
+ cursor: pointer;
+}
+/* line 139, ../../../sass/sass/blog.scss */
+#nav-ribbon .tail-cut {
+ width: 19px;
+ height: 33px;
+ background: url(../../static/images/nav-ribbon-tail-cut.png);
+}
+
+/* line 150, ../../../sass/sass/blog.scss */
+.blog-details #return-to-results-button {
+ visibility: hidden;
+}
+/* line 154, ../../../sass/sass/blog.scss */
+.blog-details.blog-results-detail #return-to-results-button {
+ visibility: visible;
+}
+/* line 159, ../../../sass/sass/blog.scss */
+.blog-details a.jargon:hover {
+ text-decoration: none;
+ border-bottom: 1px dashed;
+}
+/* line 163, ../../../sass/sass/blog.scss */
+.blog-details .jargon-explanations {
+ display: none;
+}
+/* line 168, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .region-wrap,
+.blog-details #content .region-wrap {
+ padding-top: 0.5em;
+ padding-left: 2em;
+ padding-right: 2em;
+}
+/* line 177, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav {
+ z-index: 10;
+ position: absolute;
+}
+/* line 181, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .breadcrumb {
+ margin-top: 1.5em;
+}
+/* line 184, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .breadcrumb ul.inline li {
+ padding-right: 0;
+}
+/* line 186, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .breadcrumb ul.inline li a.button {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ padding-left:0.8em;
+ padding-right: 0.8em;
+ border-radius: 3px 3px 3px 3px;
+ font-weight: bold;
+}
+/* line 191, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .breadcrumb ul.inline li a.button.first {
+ background-image: url(../../images/breadcrumb-dark-grey-button-left-arrow-wbg.png);
+ background-position: center left;
+ background-repeat: no-repeat;
+ -webkit-border-radius: 0 3px 3px 0;
+ -moz-border-radius: 0 3px 3px 0;
+ -ms-border-radius: 0 3px 3px 0;
+ -o-border-radius: 0 3px 3px 0;
+ border-radius: 0 3px 3px 0;
+ border: none;
+ padding-left: 20px;
+}
+/* line 198, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .breadcrumb ul.inline li a.button.first:hover {
+ background-color: #4c4948;
+}
+/* line 211, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .section-name {
+ font-size: 18px;
+ color: #9fa0a0;
+}
+/* line 215, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .section-nav {
+ width: auto;
+}
+/* line 222, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .section-nav ul.links {
+ display: block;
+ width: auto;
+ margin: 0;
+}
+/* line 226, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .section-nav ul.links li {
+ margin-right: 3em;
+ padding: 0;
+}
+/* line 229, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .section-nav ul.links li a {
+ color: inherit;
+}
+/* line 231, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .section-nav ul.links li a.active {
+ color: #99cc33;
+ /*border-bottom: 1px dashed #99cc33;*/
+ text-decoration: none;
+}
+/* line 237, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .section-nav ul.links:hover li a.active {
+ color: inherit;
+ border-bottom: none;
+}
+/* line 244, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .section-nav ul.links li a:hover, .blog-details #blog-top-nav .section-nav ul.links:hover li a:hover {
+ color: #99cc33;
+ /*border-bottom: 1px dashed #99cc33;*/
+ text-decoration: none;
+}
+/* line 250, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .background {
+ z-index: -1;
+ position: absolute;
+ top: 0;
+ bottom: -2px;
+ left: 0;
+ right: 0;
+ margin-left: 2em;
+ margin-right: 2em;
+ background-color: white;
+ border-bottom: 1px solid transparent;
+}
+/* line 265, ../../../sass/sass/blog.scss */
+.blog-details #content {
+ margin-top: 150px;
+ position: relative;
+}
+/* line 268, ../../../sass/sass/blog.scss */
+.blog-details #content .text {
+ font-size: 1.14286em;
+ line-height: 1.6875em;
+}
+/* line 270, ../../../sass/sass/blog.scss */
+.blog-details #content .text h3 {
+ font-size: 1.1em;
+ color: #4c4a49;
+ line-height: 1.5em;
+}
+/* line 274, ../../../sass/sass/blog.scss */
+.blog-details #content .text h4 {
+ color: #4c4a49;
+}
+/* line 280, ../../../sass/sass/blog.scss */
+.blog-details #content .text .image-wrap {
+ border: 1px solid #c9caca;
+ margin-bottom: 1.14286em;
+}
+/* line 285, ../../../sass/sass/blog.scss */
+.blog-details #content .text a.enlarge-image {
+ cursor: pointer;
+ cursor: url(../../images/zoom.cur), auto;
+}
+/* line 290, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box {
+ z-index: 1;
+ position: absolute;
+ display: none;
+ position: absolute;
+ margin-top: 8px;
+ left: 20px;
+ right: 20px;
+ background-color: white;
+ border: 1px solid #8fc31f;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ -ms-border-radius: 2px;
+ -o-border-radius: 2px;
+ border-radius: 2px;
+ -webkit-box-shadow: 0px 0px 30px #999999;
+ -moz-box-shadow: 0px 0px 30px #999999;
+ box-shadow: 0px 0px 30px #999999;
+}
+/* line 105, ../../../sass/sass/_custom.scss */
+.blog-details #content .jargon-explanation-box.open {
+ display: block;
+}
+/* line 300, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box .content-wrap {
+ padding-left: 1.5em;
+ padding-right: 1.5em;
+ padding-top: 0.7em;
+}
+/* line 306, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box .content-wrap .jargon-details {
+ min-height: 150px;
+ max-height: 250px;
+ overflow: auto;
+}
+/* line 311, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box .content-wrap .references {
+ font-size: 0.8em;
+ font-style: italic;
+}
+/* line 316, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box .text-pointer {
+ z-index: 10;
+ position: absolute;
+ width: 20px;
+ height: 8px;
+ background-image: url(../../images/popup-text-pointer.png);
+ top: -8px;
+ margin-left: -10px;
+ left: 10px;
+}
+/* line 326, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box .close-box {
+ z-index: 1;
+ position: absolute;
+ width: 20px;
+ height: 20px;
+ background: url(../../images/grey-cross.png) no-repeat center center;
+ cursor: pointer;
+ right: 1.5em;
+ top: 1.5em;
+}
+/* line 336, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box h3.name {
+ margin: 0;
+ border-bottom: 1px solid #c9cacb;
+ margin-top: 0em;
+ margin-bottom: 1em;
+}
+/* line 342, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box .like-button {
+ display: block;
+ margin: 1em;
+ width: auto;
+}
+/* line 347, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box .like-button * {
+ vertical-align: middle;
+}
+/* line 350, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box .like-button a.login-button {
+ vertical-align: top;
+}
+/* line 356, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box .content-wrap,
+.blog-details #content .jargon-explanation-box .like-button {
+ visibility: hidden;
+}
+/* line 360, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box .loading-image {
+ visibility: visible;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin-top: -38.5px;
+ margin-left: -53.5px;
+}
+/* line 371, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box.loaded .content-wrap,
+.blog-details #content .jargon-explanation-box.loaded .like-button {
+ visibility: visible;
+}
+/* line 374, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box.loaded .loading-image {
+ visibility: hidden;
+}
+/* line 378, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box.modal {
+ position: fixed;
+ z-index: 2001;
+ padding: 0;
+ left: 50%;
+ margin-left: -350px;
+ width: 700px;
+ top: 50% !important;
+ -webkit-box-shadow: 0px 0px 30px #444444;
+ -moz-box-shadow: 0px 0px 30px #444444;
+ box-shadow: 0px 0px 30px #444444;
+}
+/* line 383, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box.modal .text-pointer {
+ display: none;
+}
+/* line 390, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card-brief {
+ font-size: 0.875em;
+ line-height: 1.63265em;
+}
+/* line 393, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card {
+ font-size: 0.875em;
+ line-height: 1.30612em;
+ cursor: pointer;
+ border: 1px solid #c9caca;
+}
+/* line 397, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card .back .card-wrap {
+ height: 200px;
+ color: white;
+ background-color: #4c4948;
+ background-image: url(../../images/card-bg-grey.png);
+ background-repeat: no-repeat;
+ background-position: center center;
+ text-align: center;
+ line-height: 1.5em;
+}
+/* line 407, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card .back .card-wrap .content-wrap {
+ padding-top: 2em;
+}
+/* line 411, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card .front .card-wrap {
+ height: 200px;
+ position: relative;
+ overflow: hidden;
+}
+/* line 415, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card .front .card-wrap .card-title {
+ font-weight: normal;
+ background-color: #4c4948;
+ color: white;
+ margin: 0;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ width: auto;
+ line-height: 50px;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ padding-top: 0;
+ padding-bottom: 0;
+}
+/* line 433, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card .front .card-wrap .card-subtitle {
+ font-size: 0.95em;
+ font-weight: normal;
+ color: white;
+ background-color: #3e3a39;
+ padding: 0;
+ margin: 0;
+ position: absolute;
+ bottom: 50px;
+ left: 0;
+ right: 0;
+ padding-left: 0.5em;
+ padding-top: 0.1em;
+ padding-bottom: 0.1em;
+}
+/* line 450, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card .front .card-wrap .card-details {
+ padding: 0.5em;
+}
+/* line 455, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card .front {
+ height: 200px;
+}
+/* line 459, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card .back {
+ height: 0;
+}
+/* line 463, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card .abstract {
+ display: none;
+}
+/* line 468, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card .front,
+.blog-details #content .cards .card .back {
+ overflow: hidden;
+ -webkit-transition: height 0.3s ease;
+ -webkit-transition-delay: 0s;
+ -moz-transition: height 0.3s ease 0s;
+ -o-transition: height 0.3s ease 0s;
+ transition: height 0.3s ease 0s;
+}
+/* line 475, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card:hover .front, .blog-details #content .cards .card:active .front {
+ height: 0;
+}
+/* line 478, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card:hover .back, .blog-details #content .cards .card:active .back {
+ height: 200px;
+}
+/* line 484, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card.green .back .card-wrap {
+ background-image: url(../../images/card-bg-green.png);
+ background-color: #8fc41f;
+}
+/* line 488, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card.green .front .card-wrap {
+ color: #8fc41f;
+}
+/* line 490, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card.green .front .card-wrap .card-title {
+ background-color: #8fc41f;
+}
+/* line 493, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card.green .front .card-wrap .card-subtitle {
+ background-color: #7cb617;
+}
+/* line 500, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card.blue .back .card-wrap {
+ background-image: url(../../images/card-bg-blue.png);
+ background-color: #0063a8;
+}
+/* line 504, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card.blue .front .card-wrap {
+ color: #006699;
+}
+/* line 506, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card.blue .front .card-wrap .card-title {
+ background-color: #0063a8;
+}
+/* line 509, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card.blue .front .card-wrap .card-subtitle {
+ background-color: #00508f;
+}
+/* line 517, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first,
+.blog-details #sidebar-second {
+ position: absolute;
+ min-height: 650px;
+ height: auto;
+ top: 0;
+ bottom: 0;
+}
+/* line 525, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second #login {
+ margin-top: 1.5em;
+}
+/* line 528, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .social {
+ font-size: 1em;
+ line-height: 1.42857em;
+ margin-top: 3em;
+}
+/* line 532, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .social ul.buttons li {
+ padding: 0;
+}
+/* line 535, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .social ul.buttons .multi-segment-button .segment.first {
+ width: 60px;
+ white-space: nowrap;
+ overflow: hidden;
+}
+/* line 540, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .social ul.buttons .multi-segment-button {
+ font-weight: bold;
+}
+/* line 544, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .social ul.buttons #like-button .like-button {
+ background-image: url(../../images/grey-star.png);
+ background-repeat: no-repeat;
+ background-position: 10px center;
+}
+/* line 550, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .social ul.buttons #no-idea-button {
+ float: right;
+}
+/* line 552, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .social ul.buttons #no-idea-button .no-idea-button {
+ background-image: url(../../images/white-unhappy-face.png);
+ background-repeat: no-repeat;
+ background-position: 10px center;
+}
+/* line 561, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .comments {
+ margin-top: 2.5em;
+}
+/* line 563, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .comments ol {
+ font-size: 0.92857em;
+ line-height: 1.38462em;
+ max-height: 400px;
+ overflow: hidden;
+ overflow: auto;
+ counter-reset: comments-counter;
+ margin: 0;
+ padding: 0;
+}
+/* line 571, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .comments ol li:before {
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ -ms-border-radius: 3px;
+ -o-border-radius: 3px;
+ border-radius: 3px;
+ width: 1.3em;
+ text-align: center;
+ font-family: "Courier New", "DejaVu Sans Mono", monospace, sans-serif, "STHeiti", "WenQuanYi Micro Hei", "Microsoft YaHei", SimSun, sans-serif;
+ background-color: #898989;
+ color: white;
+ float: left;
+ margin-left: -2em;
+ padding-left: 0.05em;
+ content: counter(comments-counter);
+ counter-increment: comments-counter;
+}
+/* line 581, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .comments ol li {
+ margin-left: 2em;
+ margin-bottom: 1em;
+}
+/* line 584, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .comments ol li a {
+ color: inherit;
+}
+/* line 592, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second #card-abstract {
+ margin-top: 3em;
+ -webkit-transition: all ease;
+ -webkit-transition-delay: 0.5s;
+ -moz-transition: all ease 0.5s;
+ -o-transition: all ease 0.5s;
+ transition: all ease 0.5s;
+ visibility: hidden;
+ opacity: 0;
+}
+/* line 124, ../../../sass/sass/_custom.scss */
+.blog-details #sidebar-second #card-abstract.show {
+ visibility: visible;
+ opacity: 1;
+}
+/* line 598, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .jargon-list {
+ font-size: 1em;
+ line-height: 1.71429em;
+}
+/* line 600, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .jargon-list ul {
+ margin: 0;
+ padding: 0;
+ max-height: 400px;
+ overflow: auto;
+}
+/* line 605, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .jargon-list ul li {
+ padding: 0;
+}
+/* line 607, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .jargon-list ul li a {
+ outline: 0;
+ display: block;
+ color: inherit;
+ text-decoration: none;
+ padding-left: 1.5em;
+ padding-top: 0.3em;
+ padding-bottom: 0.3em;
+}
+/* line 619, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .jargon-list ul li a:hover,
+.blog-details #sidebar-second .jargon-list ul li a .active {
+ background-color: #898989;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ -ms-border-radius: 3px;
+ -o-border-radius: 3px;
+ border-radius: 3px;
+ color: white;
+ text-decoration: none;
+}
+/* line 630, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first {
+ z-index: 10;
+ padding-top: 1.5em;
+ padding-bottom: 1.5em;
+}
+/* line 637, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first #nav-ribbon {
+ margin-left: -20px;
+}
+/* line 640, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .post-question {
+ overflow: hidden;
+ width: auto;
+}
+/* line 643, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .post-question .question {
+ width: 60%;
+}
+/* line 646, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .post-question .submit {
+ float: right;
+ width: 30%;
+}
+/* line 651, ../../../sass/sass/blog.scss */
+.related-questions {
+ padding:15px 13px 15px 13px;
+ background-color: white;
+ margin-top: 0;
+ margin-bottom: 17px;
+ -webkit-box-shadow: 0px 0px 5px #bbbbbb;
+ -moz-box-shadow: 0px 0px 5px #bbbbbb;
+ box-shadow: 0px 0px 5px #bbbbbb;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ -ms-border-radius: 2px;
+ -o-border-radius: 2px;
+ border-radius: 3px;
+ width:300px;
+ font-size:15px;
+ line-height: 1.6em;
+}
+
+.related-questions:hover{
+ box-shadow:0px 0px 10px #898989;
+ -webkit-box-shadow: 0px 0px 10px #898989;
+ -moz-box-shadow: 0px 0px 10px #898989;
+ -ms-box-shadow:0px 0px 10px #898989;
+ -o-box-shadow:0px 0px 10px #898989;
+}
+
+.related-questions span{
+ color: #a8a8a8;
+}
+/* line 658, ../../../sass/sass/blog.scss */
+.related-questions h3 {
+ margin: 0;
+ line-height: 1.5em;
+}
+/* line 665, ../../../sass/sass/blog.scss */
+.related-questions a {
+ color: #727171;
+}
+
+.related-questions a {
+ text-decoration: none;
+}
+/* line 669, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .toc {
+ margin-top: 1em;
+}
+/* line 675, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .toc .toc-title {
+ margin: 0;
+ padding-left: 1em;
+ border-bottom: 1px solid #c9caca;
+ -webkit-box-shadow: 0px 1px 0px 0px white;
+ -moz-box-shadow: 0px 1px 0px 0px white;
+ box-shadow: 0px 1px 0px 0px white;
+}
+/* line 681, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .toc ul.links {
+ font-size: 16.38px;
+ margin: 0;
+ padding: 0;
+}
+/* line 685, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .toc ul.links li {
+ list-style: none;
+ background-image: url(../../images/righticon.png);
+ background-repeat: no-repeat;
+ background-position: center right;
+ margin: 0;
+ padding-left: 1em;
+ border-bottom: 1px solid #c9caca;
+ -webkit-box-shadow: 0px 1px 0px 0px white;
+ -moz-box-shadow: 0px 1px 0px 0px white;
+ box-shadow: 0px 1px 0px 0px white;
+ -webkit-transition: 0.1s ease;
+ -webkit-transition-delay: 0s;
+ -moz-transition: 0.1s ease 0s;
+ -o-transition: 0.1s ease 0s;
+ transition: 0.1s ease 0s;
+}
+/* line 694, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .toc ul.links li:hover, .blog-details #sidebar-first .toc ul.links li.active {
+ background-color: white;
+}
+/* line 698, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .toc ul.links li a {
+ display: block;
+ color: inherit;
+ padding-top: 0.4em;
+ padding-bottom: 0.4em;
+}
+/* line 705, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .toc ul.links li a:hover {
+ text-decoration: none;
+}
+/* line 714, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first {
+ background-color: #f3f2f0;
+}
+/* line 717, ../../../sass/sass/blog.scss */
+.blog-details .page-expand {
+ height: 0;
+}
+@media all and (min-width: 1300px) and (min-height: 670px) {
+ /* line 724, ../../../sass/sass/blog.scss */
+ .blog-details #sidebar-first,
+ .blog-details #sidebar-second,
+ .blog-details #blog-top-nav {
+ position: fixed;
+ }
+ /* line 727, ../../../sass/sass/blog.scss */
+ .blog-details .page-expand {
+ height: 100%;
+ }
+}
+/* line 732, ../../../sass/sass/blog.scss */
+.blog-details #back-to-top-button {
+ bottom: 50px;
+ left: 960px;
+}
+/* line 736, ../../../sass/sass/blog.scss */
+.blog-details .confirm-dialog {
+ padding-top: 4em;
+ min-width: 500px;
+ min-height: 80px;
+ text-align: center;
+}
+/* line 741, ../../../sass/sass/blog.scss */
+.blog-details .confirm-dialog .controls {
+ text-align: right;
+ position: absolute;
+ bottom: 2em;
+ right: 2em;
+}
+/* line 750, ../../../sass/sass/blog.scss */
+.blog-details.blog-results #sidebar-second .lists-container {
+ display: none;
+}
+
+/* line 759, ../../../sass/sass/blog.scss */
+.blog-list #content .region-wrap {
+ margin-top: 1.5em;
+}
+/* line 762, ../../../sass/sass/blog.scss */
+.blog-list #content #login {
+ position: absolute;
+ right: 0;
+ top: 0;
+}
+/* line 767, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-top-nav {
+ position: relative;
+ margin-top: 2em;
+ padding-top: 2em;
+}
+/* line 771, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-top-nav .search-type-nav {
+ vertical-align: bottom;
+ /*border-bottom: 1px solid #c9caca;*/
+}
+/* line 776, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-top-nav .search-type-nav ul.links li a {
+ color: inherit;
+}
+/* line 780, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-top-nav .search-type-nav ul.links li a:hover,
+.blog-list #content #blog-list-top-nav .search-type-nav ul.links li a.active {
+ text-decoration: none;
+ color: #0063a8;
+ border-bottom: 1px solid #0063a8;
+}
+/* line 786, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-top-nav .search-type-nav ul.links li.first-level {
+ font-size: 1.5em;
+ padding-right: 50px;
+}
+/* line 791, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-top-nav .search-type-nav ul.links li.second-level a {
+ padding-bottom: 2px;
+}
+/* line 799, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-content .not-found {
+ text-align: center;
+ margin-top: 2em;
+}
+/* line 802, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-content .not-found .message {
+ font-size: 1.2em;
+ margin-top: 0.5em;
+}
+/* line 808, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-content ul.articles {
+ padding: 0;
+}
+/* line 810, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-content ul.articles li {
+ list-style: none;
+}
+/* line 815, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-content .articles .article {
+ margin-bottom: 40px;
+}
+/* line 819, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-content .articles .article .article-title {
+ font-weight: bold;
+ font-size: 1.42857em;
+ line-height: 1.45em;
+ color: black;
+ margin-bottom: 0.5em;
+}
+/* line 131, ../../../sass/sass/_custom.scss */
+.blog-list #content #blog-list-content .articles .article .article-title a {
+ color: inherit;
+}
+/* line 827, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-content .articles .article .excerpt {
+ font-size: 1.14286em;
+ line-height: 1.6875em;
+ margin-top: 0.5em;
+}
+/* line 833, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-content ul.rating-blocks li {
+ vertical-align: middle;
+ padding: 0;
+ display: -moz-inline-block;
+ display: inline-block;
+ color: transparent;
+ overflow: hidden;
+ width: 12px;
+ height: 12px;
+ background-color: #948b7a;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ -ms-border-radius: 2px;
+ -o-border-radius: 2px;
+ border-radius: 2px;
+ margin-right: -1px;
+}
+/* line 845, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-content ul.rating-blocks li.filled {
+ background-color: #4a453d;
+}
+/* line 856, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first #header {
+ z-index: 2;
+}
+/* line 859, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .region-wrap {
+ z-index: 2;
+ position: relative;
+ padding-left: 1em;
+ padding-right: 1em;
+}
+/* line 867, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first #nav-ribbon {
+ margin-top: 1em;
+ z-index: 2;
+ margin-left: -20px;
+}
+/* line 872, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .hover-overlay {
+ color: white;
+ z-index: 1;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-color: #91908f;
+ background-color: rgba(0, 0, 0, 0.5);
+ visibility: hidden;
+ opacity: 0;
+ -webkit-transition: all 0.3s ease;
+ -webkit-transition-delay: 0s;
+ -moz-transition: all 0.3s ease 0s;
+ -o-transition: all 0.3s ease 0s;
+ transition: all 0.3s ease 0s;
+}
+/* line 885, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .hover-overlay .region-wrap {
+ padding-left: 3.3em;
+ padding-top: 8em;
+ padding-right: 3.3em;
+}
+/* line 891, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .hover-overlay .region-wrap h3 {
+ margin-bottom: 0;
+}
+/* line 894, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .hover-overlay .region-wrap .user-info h3 {
+ margin-top: 0;
+}
+/* line 897, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .hover-overlay .region-wrap ul {
+ margin: 0;
+ padding: 0;
+}
+/* line 900, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .hover-overlay .region-wrap ul li {
+ list-style: none;
+}
+/* line 905, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .hover-overlay a {
+ color: white;
+}
+/* line 909, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .post-question {
+ z-index: 2;
+ padding-left: 1em;
+ padding-right: 1em;
+ overflow: hidden;
+ width: auto;
+}
+/* line 917, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .post-question .question {
+ width: 60%;
+ border: 1px solid #c2b59e;
+ background-color: #918e8c;
+ background-color: rgba(0, 0, 0, 0.5);
+}
+/* line 923, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .post-question .submit {
+ float: right;
+ width: 30%;
+ border: none;
+}
+/* line 929, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first:hover .hover-overlay {
+ visibility: visible;
+ opacity: 1;
+}
+
+/* line 936, ../../../sass/sass/blog.scss */
+body.blog-index {
+ color: white;
+}
+/* line 938, ../../../sass/sass/blog.scss */
+body.blog-index #main {
+ position: relative;
+}
+/* line 940, ../../../sass/sass/blog.scss */
+body.blog-index #main .background {
+ z-index: -1000;
+ background: url(../../images/back_main.jpg) no-repeat 80%;
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+}
+/* line 949, ../../../sass/sass/blog.scss */
+body.blog-index #main #login {
+ position: absolute;
+ top: 15px;
+ right: -250px;
+}
+/* line 954, ../../../sass/sass/blog.scss */
+body.blog-index #main .post-question {
+ margin-top: 270px;
+}
+/* line 956, ../../../sass/sass/blog.scss */
+body.blog-index #main .post-question .question {
+ background-color: white;
+ border: 1px solid #d0d1d1;
+ color: black;
+ width: 400px;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question.placeholder {
+ color: #d0d1d1;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question:focus.placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question.input-placeholder {
+ color: #d0d1d1;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question:focus.input-placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question:-moz-placeholder {
+ color: #d0d1d1;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question:focus:-moz-placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question::-webkit-input-placeholder {
+ color: #d0d1d1;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question:focus::-webkit-input-placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question::-moz-placeholder {
+ color: #d0d1d1;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question:focus::-moz-placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question:-ms-input-placeholder {
+ color: #d0d1d1;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question:focus:-ms-input-placeholder {
+ color: transparent;
+}
+/* line 964, ../../../sass/sass/blog.scss */
+body.blog-index #main .post-question .submit {
+ width: 84px;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+ border: none;
+}
+/* line 969, ../../../sass/sass/blog.scss */
+body.blog-index #main .post-question .question, body.blog-index #main .post-question .submit {
+ font-size: 1.14286em;
+ line-height: 1.25em;
+ vertical-align: 2px;
+}
+/* line 974, ../../../sass/sass/blog.scss */
+body.blog-index #main #logo {
+ margin-top: 65px;
+ /*margin-left:120px;*/
+ width: 100%;
+ text-align: center;
+}
+/* line 979, ../../../sass/sass/blog.scss */
+body.blog-index #main #copyright {
+ position: fixed;
+ bottom: 75px;
+ left: 75px;
+}
+
+.blog-list #content #blog-list-content ul.articles .excerpt ol li{
+ list-style: decimal;
+}
diff --git a/97suifangqa/apps/indicator/static/css/new_delete_index.css b/97suifangqa/apps/indicator/static/css/new_delete_index.css index fde8168..635f327 100644 --- a/97suifangqa/apps/indicator/static/css/new_delete_index.css +++ b/97suifangqa/apps/indicator/static/css/new_delete_index.css @@ -3,9 +3,9 @@ float: left; position: relative; z-index: 999; - width: 865px; + width: 900px; height: 85px; - margin-left: 457px; + margin-left: 320px; } #login_container .logged-in { float: right; @@ -55,8 +55,9 @@ margin-top: 10px; position: absolute; z-index: 999; - width: 168px; - height: 91px; + width: 170px; + height: 28px; + margin-left:-20px; } #login.logged-in .drop-down-menu .text-pointer { background: url("../images/login-menu-popup-pointer.png") no-repeat scroll 0 0 transparent; @@ -98,6 +99,7 @@ #new_delete_container { float: left; margin-left: 457px; + margin-top:-11px; position: relative; /* position: absolute; @@ -110,11 +112,15 @@ } .new_delete_title .content { float: left; - font-weight: bold; + font-weight: normal; font-size: 20px; - color: #4A4A4A; + color: #a8a8a8; height: 26px; line-height: 26px; + margin-bottom: 10px; + cursor: default; + margin-top: -2px; + } .new_delete_title .search { float: right; @@ -125,45 +131,69 @@ } .new_delete_title .search input { float: left; - height: 20px; + height: 30px; line-height: normal; - width: 127px; - border: 1px solid #CACACA; + width: 150px; + border: 1px solid #d9d9d9; background-color: #FFFFFF; - padding: 0; - border-radius: 2px; + padding-bottom:3px; + border-radius: 3px; color: #000000; position: relative; top: 2px; - margin-right: 2px; + margin-left:-50px; + font-weight: normal; + margin-top: -7px; + +} +.new_delete_title .search input:focus { + border-color:#99cc33; + outline:0; } .new_delete_title .search input::-moz-placeholder { - color: #9D9D9D; - font-weight: bold; + color: #72717; + font-weight: normal; +} +.new_delete_title .search input::placeholder { + color: #727171; + font-weight: normal; +} +.new_delete_title .search input::-webkit-placeholder { + color: #727171; + font-weight: normal; } .new_delete_title .search img { float: right; position: relative; top: 2px; cursor: pointer; + margin-top: -7px; + } .index_navigation { - margin: 10px 0; + margin-top: 10px; + margin-bottom: 6px; + width: 705px; } .index_navigation .index_type { float: left; - width: 77px; - height: 22px; + width: 90px; + height: 28px; line-height: 22px; text-align: center; - border: 1px solid #B5B5B5; - border-radius: 2px; - margin-right: 9px; + border: 1px solid #d9d9d9; + border-radius: 3px; + margin-right: 8.6px; + margin-top: 2px; + margin-bottom: 4px; + padding-top: 6px; + font-size: 15px; } .index_navigation .index_type a { color: #7E7E7E; cursor: pointer; text-decoration: none; + margin-bottom:-10px; } /* .index_navigation #index_all { @@ -186,10 +216,11 @@ float: left; width: 302px; height: 437px; - border: 1px solid #b6b6b6; + border: 1px solid #d9d9d9; z-index: 1; position: relative; padding: 6px 12px 0 12px; + border-radius: 3px; } .show_indexes .add_concerned_icon { float: left; @@ -234,16 +265,22 @@ } .index_line { margin-top: 3px; + height: 23px; + border-radius: 3px; + padding-left: 5px; + padding-top:2px; + padding-bottom:2px; } .index_line .index_name, .index_line .index_category { float: left; - font-size: 14px; + font-size: 15px; width: 45px; height: 20px; - line-height: 20px; - color: #4A4A4A; - font-weight: bold; - cursor: pointer; + line-height: 1.6em; + color: #909090; + font-weight: normal; + cursor: default; + } .index_lines .add .icon { width: 20px; @@ -265,7 +302,9 @@ left: 260px; } .index_lines .add, .index_lines .minus { - background: #8FC31F; + background: #8fc21f; + height: 23px; + margin-bottom:3px; } .index_line .index_name { width: 185px; @@ -298,12 +337,21 @@ } .all_condition .index_all_letter div { float: left; - color: #8F8F8F; - font-size: 15px; - margin-right: 7px; + color: #b3b3b2; + font-size: 16px; + margin-right: 8px; + margin-top:3px; cursor: pointer; + font-weight: normal; + /* letter-spacing: 2px; */ + border-color: #b3b3b3 + +} +.all_condition .index_all_letter .disabled { + cursor: default; + color: #D9D9D9; } -.all_condition .index_all_letter .letter_selected{ +.all_condition .index_all_letter .letter_selected { color: #99CC33; } .index_letter_container { @@ -318,7 +366,7 @@ height: 32px; line-height: 32px; font-weight: bold; - font-size: 32px; + font-size: 22px; color: #4A4A4A; border-bottom: 1px solid #BFBFBF; } @@ -343,21 +391,26 @@ margin-bottom: 10px; } .link_container .status_link { - width: 694px; + width: 105px; height: 37px; line-height: 37px; - border: 1px solid #B5B5B5; - border-radius: 2px; + border-radius: 3px; /* background-color: #F7F7F7; */ - background-color: #F3F3F1; + background-color: #99cc33; text-align: center; + float: right; + font-color:white; +} + +.link_container .status_link:hover{ + background-color:#93C430; + cursor: default; } + .link_container .status_link a { - color: #4A4A4A; + color: white; text-decoration: none; - font-weight: bold; - font-size: 19px; - letter-spacing: 1px; + font-size: 16px; cursor: pointer; } diff --git a/97suifangqa/apps/indicator/static/css/normalize.css b/97suifangqa/apps/indicator/static/css/normalize.css index ab1eadb..f9916ec 100644 --- a/97suifangqa/apps/indicator/static/css/normalize.css +++ b/97suifangqa/apps/indicator/static/css/normalize.css @@ -565,6 +565,8 @@ input[type="submit"] { /* 2 */ } + + /* line 574, ../../../sass/sass/normalize.scss */ .button, button, @@ -586,9 +588,11 @@ input[type="reset"] { color: white; padding-left: 0.8em; padding-right: 0.8em; - height: 2.1em; - line-height: 2.1em; + padding-bottom: 0.5em; + height: 3em; + line-height: 1.5em; vertical-align: middle; + font-size: 16px; } /* line 588, ../../../sass/sass/normalize.scss */ .button:hover, @@ -648,8 +652,8 @@ a.button:visited { /* line 619, ../../../sass/sass/normalize.scss */ input[type="text"] { - background-color: #8b8885; - border: 1px solid white; + background-color: white; + -webkit-box-shadow: 0px 0px 2px white; -moz-box-shadow: 0px 0px 2px white; box-shadow: 0px 0px 2px white; @@ -658,12 +662,18 @@ input[type="text"] { padding-top: 0; padding-bottom: 0; line-height: 1.95em; - height: 1.95em; + height: 29px; color: white; + font-size:15px; } +input[type="text"]:focus { + border-color:#99cc33; + outline:0; +} + /* line 65, ../../../sass/sass/_custom.scss */ input[type="text"].placeholder { - color: #eeeeee; + color: #a6a6a6; } /* line 68, ../../../sass/sass/_custom.scss */ input[type="text"]:focus.placeholder { @@ -671,7 +681,7 @@ input[type="text"]:focus.placeholder { } /* line 65, ../../../sass/sass/_custom.scss */ input[type="text"].input-placeholder { - color: #eeeeee; + color: #a6a6a6; } /* line 68, ../../../sass/sass/_custom.scss */ input[type="text"]:focus.input-placeholder { @@ -679,7 +689,7 @@ input[type="text"]:focus.input-placeholder { } /* line 65, ../../../sass/sass/_custom.scss */ input[type="text"]:-moz-placeholder { - color: #eeeeee; + color: #a6a6a6; } /* line 68, ../../../sass/sass/_custom.scss */ input[type="text"]:focus:-moz-placeholder { @@ -687,7 +697,7 @@ input[type="text"]:focus:-moz-placeholder { } /* line 65, ../../../sass/sass/_custom.scss */ input[type="text"]::-webkit-input-placeholder { - color: #eeeeee; + color: #a6a6a6; } /* line 68, ../../../sass/sass/_custom.scss */ input[type="text"]:focus::-webkit-input-placeholder { @@ -695,7 +705,7 @@ input[type="text"]:focus::-webkit-input-placeholder { } /* line 65, ../../../sass/sass/_custom.scss */ input[type="text"]::-moz-placeholder { - color: #eeeeee; + color: #a6a6a6; } /* line 68, ../../../sass/sass/_custom.scss */ input[type="text"]:focus::-moz-placeholder { @@ -703,7 +713,7 @@ input[type="text"]:focus::-moz-placeholder { } /* line 65, ../../../sass/sass/_custom.scss */ input[type="text"]:-ms-input-placeholder { - color: #eeeeee; + color: #a6a6a6; } /* line 68, ../../../sass/sass/_custom.scss */ input[type="text"]:focus:-ms-input-placeholder { diff --git a/97suifangqa/apps/indicator/static/css/sheet_default.css b/97suifangqa/apps/indicator/static/css/sheet_default.css index 82d8fbb..22e5afd 100644 --- a/97suifangqa/apps/indicator/static/css/sheet_default.css +++ b/97suifangqa/apps/indicator/static/css/sheet_default.css @@ -24,9 +24,10 @@ input[type="radio"]:checked + label { #login_container { float: left; position: relative; - width: 865px; + z-index: 999; + width: 900px; height: 85px; - margin-left: 457px; + margin-left: 320px; } #login_container .logged-in { float: right; @@ -67,7 +68,7 @@ input[type="radio"]:checked + label { line-height: 1em; } #login.logged-in .drop-down-menu { - background-color: #FFFFFF; + background-color: #FFFFFF; border: 1px solid #C9C9C9; border-radius: 2px 2px 2px 2px; box-shadow: 0 0 10px rgba(85, 85, 85, 0.5); @@ -76,8 +77,9 @@ input[type="radio"]:checked + label { margin-top: 10px; position: absolute; z-index: 999; - width: 168px; - height: 91px; + width: 170px; + height: 28px; + margin-left:-20px; } #login.logged-in .drop-down-menu .text-pointer { background: url("../images/login-menu-popup-pointer.png") no-repeat scroll 0 0 transparent; @@ -131,10 +133,12 @@ input[type="radio"]:checked + label { width: 696px; } .index_title { - color: #4a4a4a; + color: #a8a8a8; font-size: 20px; - letter-spacing: 2px; - font-weight: bold; + font-weight: normal; + font-size:1.4em; + margin-bottom:10px; + margin-top:-10px; } .index_sub_title { margin-top: 9px; @@ -178,14 +182,17 @@ input[type="radio"]:checked + label { float: left; } .detail_card_info .card_title .collapse_btn { - width: 80px; - height: 23px; + width: 100px; + height: 35px; line-height: 23px; font-size: 14px; vertical-align: baseline; position: relative; bottom: -10px; float: right; + margin-top:-12px; + padding-top:0.3em; + font-size: 15px; } .detail_card_info .search_data_div { margin-top: 9px; @@ -194,10 +201,36 @@ input[type="radio"]:checked + label { } .detail_card_info .search_data_div input[type='button'] { width: 100px; - height: 23px; line-height: 23px; float: left; + text-align: center; + padding-right:20px; + padding-top:5px; + height: 35px; + font-size: 15px; + border-radius: 3px; + border-color: #d9d9d9; + font-color:#7e7e7e; + margin-right:5px; +} + +.detail_card_info .search_data_div input[type='button']:hover{ + cursor: pointer; + -webkit-appearance: none; + background-color: #99cc33; + border: 1px solid #f3f2f0; + -webkit-box-shadow: 0px 0px 2px white; + -moz-box-shadow: 0px 0px 2px white; + box-shadow: 0px 0px 2px white; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -ms-border-radius: 3px; + -o-border-radius: 3px; + border-radius: 3px; + color: white; + } + .detail_card_info .search_data_div .shift_date { margin-left: 4px; } @@ -216,20 +249,28 @@ input[type="radio"]:checked + label { } .detail_card_info .search_data_div .datepicker_container .datepicker { background: #FFFFFF; - border: 1px solid #9C9C9C; + border: 1px solid #d9d9d9; color: #B9B9B9; - width: 117px; - height: 17px; - line-height: 17px; + width: 110px; + height: 30px; position: relative; padding-top: 2px; padding-bottom: 2px; + padding-left:10px; + border-radius:3px; + margin-left: 5px; } +.detail_card_info .search_data_div .datepicker_container .datepicker:focus{ + border-color: #99cc33; + outline:0; +} + .detail_card_info .search_data_div .datepicker_container .ui-datepicker-trigger { position: absolute; top: 2px; right: 8px; cursor: pointer; + margin-top: 6px; } .detail_card_info .chart { height: 400px; @@ -243,19 +284,23 @@ input[type="radio"]:checked + label { .detail_card_info .table_div table tr td { border: 1px solid #CACACA; text-align: center; + height: 40px; } .detail_card_info .table_div table .first_line { background: #99CC33; - height: 29px; + height: 35px; color: #FFFFFF; + font-size:16px; } .detail_card_info .table_div table .state .normal { - background-color: #B8DB70; + color:inherit; padding: 2px; } .detail_card_info .table_div table .state .abnormal { - background-color: #FFB3B3; - padding: 2px; + border-radius: 3px; + margin:3px 0 3px 0; + height: 35px; + color:#99cc33; } .detail_card_info .table_div table .state .unknown { background-color: #B3D9FF; @@ -269,19 +314,31 @@ input[type="radio"]:checked + label { width: 107px; height: 24px; line-height: 24px; + color:#7d7d7d; + background-color: white; + font-size:15px; + margin:5px 19px 5px 0; + border-color:white; } .detail_card_info .see_more .see_more_btn:disabled { - background-color: #CCCCCC; + color:#7d7d7d; + background-color: white; + font-size:15px; + margin:5px 19px 5px 0; + border-color:white; } .index_card { width: 328px; height: 434px; border: 1px solid #CACACA; margin-top: 9px; - border-radius: 2px; + border-radius: 3px; padding: 5px 5px 0 8px; position: relative; } + + + /* recommended indicator's card */ #index_status_container .recommended { width: 326px; @@ -291,21 +348,24 @@ input[type="radio"]:checked + label { .index_card_fir { float: left; } + .index_card_sec { float: right; } .index_card .card_title { height: 40px; line-height: 40px; - color: #7D7D7D; + /*color: #7D7D7D;*/ font-weight: bold; font-size: 18px; + border-radius:5px; } .index_card .refer_range { color: #4B4B4B; } .index_card .refer_range .refer_text { margin-right: 5px; + margin-bottom:10px; } .index_card .refer_range .refer_value { margin-right: 5px; @@ -316,7 +376,7 @@ input[type="radio"]:checked + label { margin-top: 7px; } .index_card .edit_data .explain_icon { - margin-right: 2px; + margin-right: 5px; float: right; } .index_card .edit_data .small_edit_icon { @@ -382,16 +442,30 @@ input[type="radio"]:checked + label { } .index_card .editing_data .data .data_input { width: 165px; - height: 17px; + height: 26px; + border: 1px solid #d9d9d9; line-height: 17px; padding-top: 2px; padding-bottom: 2px; margin-right: 8px; + margin-top:-6px; + border-radius:3px; + -moz-border-radius: 3px; + -ms-border-radius: 3px; + -o-border-radius: 3px; + font-size:14px; + line-height: 20px; + vertical-align: middle; } +.index_card .editing_data .data .data_input:focus { + border: 1px solid #99cc33; +} + .index_card .editing_data .data_unit { float: left; height: 25px; line-height: 25px; + margin-top:0px; } .index_card .editing_data .date .datepicker_container { width: 148px; @@ -400,24 +474,32 @@ input[type="radio"]:checked + label { margin-top: 5px; } .index_card .editing_data .date .datepicker_container .datepicker { - background: #FFFFFF; - border: 1px solid #9C9C9C; + background: white; + border: 1px solid #d9d9d9; color: #B9B9B9; - width: 131px; - height: 17px; + width: 165px; + height: 26px; line-height: 17px; position: relative; padding-top: 2px; padding-bottom: 2px; + margin-top:0px; + border-radius:3px; } .index_card .editing_data .date .datepicker_container .ui-datepicker-trigger { position: absolute; top: 2px; right: 8px; + margin-top:5px; + margin-right:-30px; cursor: pointer; } + +.index_card .editing_data .date .datepicker_container .datepicker:focus { + border-color:#99cc33; +} .index_card .editing_data .date .datepicker_container .valid { - border: 2px solid green; + color: #000; } .index_card .editing_data .date .datepicker_container .invalid { border: 2px solid red; @@ -426,9 +508,9 @@ input[type="radio"]:checked + label { .index_card .editing_data .cancel_edit_icon { float: right; background:url(../images/cancel_edit.png) no-repeat; - width: 23px; - height: 23px; - margin-right: 3px; + width: 24px; + height: 24px; + margin-right: 5px; cursor: pointer; } .index_card .editing_data .confirm_edit_icon { @@ -436,6 +518,7 @@ input[type="radio"]:checked + label { background:url(../images/confirm_edit.png) no-repeat; width: 23px; height: 23px; + margin-right:10px; cursor: pointer; } @@ -451,7 +534,7 @@ input[type="radio"]:checked + label { height: 85px; width: 85px; float: left; - margin: 45px 0 0 135px; + margin: 45px 0 0 120px; cursor: pointer; } .index_card .edit_icon_container .curve_icon { @@ -459,14 +542,17 @@ input[type="radio"]:checked + label { height: 125px; width: 105px; float: left; + margin-left: 15px; } .index_card .edit_icon_container .edit_text { - color: #4B4B4B; + color: #8E8E8E; text-align: center; height: 20px; line-height: 20px; - margin-top: 11px; + margin-top: 20px; margin-bottom: 100px; + margin-right: 5px; + font-size:15px } .index_card .chart { @@ -488,6 +574,11 @@ input[type="radio"]:checked + label { cursor: pointer; text-decoration: none; } + +.index_card .card_bottom .understand_index a:hover, .index_card .card_bottom .simulation_sheet a:hover, .index_card .card_bottom .detail_history a:hover { + color: #99cc33; +} + .index_card .card_bottom .understand_index { width: 120px; } @@ -503,6 +594,8 @@ input[type="radio"]:checked + label { right: 0; margin: 5px 5px 0 0; cursor: pointer; + margin-top:10px; + margin-right:10px; } .index_card .card_delete_hover { background: url('../images/closed_hover.png') no-repeat; @@ -511,7 +604,7 @@ input[type="radio"]:checked + label { position: absolute; top: -3px; right: -2px; - margin: 5px 5px 0 0; + margin: 10px 10px 0 0; cursor: pointer; } .act_card_container { @@ -535,6 +628,8 @@ input[type="radio"]:checked + label { letter-spacing: 1px; cursor: pointer; } + + .move_div_2_left { float: left; } diff --git a/97suifangqa/apps/indicator/static/css/sidebar.css b/97suifangqa/apps/indicator/static/css/sidebar.css index 8df3a1a..c5d3be9 100644 --- a/97suifangqa/apps/indicator/static/css/sidebar.css +++ b/97suifangqa/apps/indicator/static/css/sidebar.css @@ -5,7 +5,7 @@ padding: 1.5em 0; position: absolute; z-index: 10; - width: 420px; + /*width: 420px;*/ height: 1020px; background-color: #F3F3F1; } @@ -79,8 +79,8 @@ /* 对比容器样式 */ #compare_container { - margin-top: 26px; - padding-left: 18px; + margin-top: -7px; + padding-left: 27px; width: 383px; } #compare_container .post-question .searchdiv .question { @@ -91,13 +91,14 @@ } #compare_container .post-question .searchdiv .submit { width: 72px; - height: 31px; + height: 35px; border: 1px solid #cce79a; vertical-align: baseline; float: right; + } #compare_container .similar_container { - margin-top: 14px; + margin-top: 0px; margin-left:15px; } .vertical_bar_component { @@ -156,6 +157,16 @@ position: absolute; z-index: 100; } + +#sidebar_container .submit{ + margin-left: 40px; + margin-top: -5px; + width: 330px; + height: 45px; + line-height: 1em; + padding-top:0.5em; +} + #compare_container .similar_container .similar_content { margin-left: 15px; float: left; @@ -168,7 +179,6 @@ } #compare_container .similar_container .similar_content .specifix_content { background: url("../images/dialog-default.png") no-repeat; - height: 47px; width: 343px; margin-left: -10px; margin-bottom: 35px; @@ -184,24 +194,22 @@ padding-left: 25px; font-size: 15px; } -#compare_container .compare_btn { +/*compare_container .compare_btn { border: 1px solid #7da625; width: 380px; height: 38px; border-radius: 3px; margin-top: 8px; cursor: pointer; -} -#compare_container .compare_btn .compare_btn_in{ - border: 1px solid #b8db71; - border-bottom: none; - background: #8bb830; +}*/ +#compare_btn_in{ + background: #99cc33; background: -webkit-gradient(linear, left top, left bottom, from(#99cc33), to(#8bb830)); background: -webkit-linear-gradient(top, #99cc33, #8bb830); background: -moz-linear-gradient(top, #99cc33, #8bb830); background: -ms-linear-gradient(top, #99cc33, #8bb830); background: -o-linear-gradient(top, #99cc33, #8bb830); - width: 378px; + width: 300px; height: 36px; line-height: 36px; color: #FFF; @@ -216,8 +224,9 @@ background: #8AB82E; box-shadow: 0 0 10px rgba(85 85 85 0.5) inset; } -#compare_container .logo_container { - margin-top: 30px; - text-align: center; +#sidebar_container .logo_container { + margin-top: 20px; + margin-left:115px; + } diff --git a/97suifangqa/apps/indicator/static/images/addicon.png b/97suifangqa/apps/indicator/static/images/addicon.png Binary files differindex 6ebf5eb..96a2c65 100644 --- a/97suifangqa/apps/indicator/static/images/addicon.png +++ b/97suifangqa/apps/indicator/static/images/addicon.png diff --git a/97suifangqa/apps/indicator/static/images/cancel_edit.png b/97suifangqa/apps/indicator/static/images/cancel_edit.png Binary files differindex 1cd9303..9b2530e 100644 --- a/97suifangqa/apps/indicator/static/images/cancel_edit.png +++ b/97suifangqa/apps/indicator/static/images/cancel_edit.png diff --git a/97suifangqa/apps/indicator/static/images/confirm_edit.png b/97suifangqa/apps/indicator/static/images/confirm_edit.png Binary files differindex 31f2658..2702737 100644 --- a/97suifangqa/apps/indicator/static/images/confirm_edit.png +++ b/97suifangqa/apps/indicator/static/images/confirm_edit.png diff --git a/97suifangqa/apps/indicator/static/images/last_edit_data.png b/97suifangqa/apps/indicator/static/images/last_edit_data.png Binary files differindex 7d13181..1e615fe 100644 --- a/97suifangqa/apps/indicator/static/images/last_edit_data.png +++ b/97suifangqa/apps/indicator/static/images/last_edit_data.png diff --git a/97suifangqa/apps/indicator/static/images/minusicon.png b/97suifangqa/apps/indicator/static/images/minusicon.png Binary files differindex 997a034..42851ff 100644 --- a/97suifangqa/apps/indicator/static/images/minusicon.png +++ b/97suifangqa/apps/indicator/static/images/minusicon.png diff --git a/97suifangqa/apps/indicator/static/images/pen.png b/97suifangqa/apps/indicator/static/images/pen.png Binary files differindex 18aafdf..09b855b 100644 --- a/97suifangqa/apps/indicator/static/images/pen.png +++ b/97suifangqa/apps/indicator/static/images/pen.png diff --git a/97suifangqa/apps/indicator/static/images/pen_large.png b/97suifangqa/apps/indicator/static/images/pen_large.png Binary files differindex ec75b6b..779684c 100644 --- a/97suifangqa/apps/indicator/static/images/pen_large.png +++ b/97suifangqa/apps/indicator/static/images/pen_large.png diff --git a/97suifangqa/apps/indicator/static/images/search.png b/97suifangqa/apps/indicator/static/images/search.png Binary files differindex 303f228..29ea9b9 100644 --- a/97suifangqa/apps/indicator/static/images/search.png +++ b/97suifangqa/apps/indicator/static/images/search.png diff --git a/97suifangqa/apps/indicator/static/images/sheet/AFP.jpg b/97suifangqa/apps/indicator/static/images/sheet/AFP.jpg Binary files differnew file mode 100644 index 0000000..527f207 --- /dev/null +++ b/97suifangqa/apps/indicator/static/images/sheet/AFP.jpg diff --git a/97suifangqa/apps/indicator/static/images/sheet/PCR.jpg b/97suifangqa/apps/indicator/static/images/sheet/PCR.jpg Binary files differnew file mode 100644 index 0000000..6e76089 --- /dev/null +++ b/97suifangqa/apps/indicator/static/images/sheet/PCR.jpg diff --git a/97suifangqa/apps/indicator/static/images/sheet/PT.jpg b/97suifangqa/apps/indicator/static/images/sheet/PT.jpg Binary files differnew file mode 100644 index 0000000..6085e53 --- /dev/null +++ b/97suifangqa/apps/indicator/static/images/sheet/PT.jpg diff --git a/97suifangqa/apps/indicator/static/images/sheet/gene.jpg b/97suifangqa/apps/indicator/static/images/sheet/gene.jpg Binary files differnew file mode 100644 index 0000000..224c592 --- /dev/null +++ b/97suifangqa/apps/indicator/static/images/sheet/gene.jpg diff --git a/97suifangqa/apps/indicator/static/images/sheet/两对半.jpg b/97suifangqa/apps/indicator/static/images/sheet/两对半.jpg Binary files differnew file mode 100644 index 0000000..1f2c2bc --- /dev/null +++ b/97suifangqa/apps/indicator/static/images/sheet/两对半.jpg diff --git a/97suifangqa/apps/indicator/static/images/sheet/肝功能.jpg b/97suifangqa/apps/indicator/static/images/sheet/肝功能.jpg Binary files differnew file mode 100644 index 0000000..fa1144c --- /dev/null +++ b/97suifangqa/apps/indicator/static/images/sheet/肝功能.jpg diff --git a/97suifangqa/apps/indicator/static/images/sheet/肝穿刺表格形式二1.jpg b/97suifangqa/apps/indicator/static/images/sheet/肝穿刺表格形式二1.jpg Binary files differnew file mode 100644 index 0000000..3680408 --- /dev/null +++ b/97suifangqa/apps/indicator/static/images/sheet/肝穿刺表格形式二1.jpg diff --git a/97suifangqa/apps/indicator/static/images/sheet/肝脏硬度.jpg b/97suifangqa/apps/indicator/static/images/sheet/肝脏硬度.jpg Binary files differnew file mode 100644 index 0000000..3b1c8ee --- /dev/null +++ b/97suifangqa/apps/indicator/static/images/sheet/肝脏硬度.jpg diff --git a/97suifangqa/apps/indicator/static/images/sheet/血细胞.jpg b/97suifangqa/apps/indicator/static/images/sheet/血细胞.jpg Binary files differnew file mode 100644 index 0000000..a87265b --- /dev/null +++ b/97suifangqa/apps/indicator/static/images/sheet/血细胞.jpg diff --git a/97suifangqa/apps/indicator/static/images/sheet/表格1.jpg b/97suifangqa/apps/indicator/static/images/sheet/表格1.jpg Binary files differnew file mode 100644 index 0000000..de00072 --- /dev/null +++ b/97suifangqa/apps/indicator/static/images/sheet/表格1.jpg diff --git a/97suifangqa/apps/indicator/static/images/sheet/表格5.jpg b/97suifangqa/apps/indicator/static/images/sheet/表格5.jpg Binary files differnew file mode 100644 index 0000000..deaadc2 --- /dev/null +++ b/97suifangqa/apps/indicator/static/images/sheet/表格5.jpg diff --git a/97suifangqa/apps/indicator/static/javascripts/edit_history_data.js b/97suifangqa/apps/indicator/static/javascripts/edit_history_data.js index d4ccdf5..898e904 100644 --- a/97suifangqa/apps/indicator/static/javascripts/edit_history_data.js +++ b/97suifangqa/apps/indicator/static/javascripts/edit_history_data.js @@ -21,8 +21,21 @@ $(document).ready(function(){ maxDate: 0 // 0->today, 1->tomorrow }); + // delete record {{{ // delete button $("#delete_btn").bind("click", function(){ + var this_edit_data_div = $(this).closest(".edit_data"); + var this_delete_prompt_div = this_edit_data_div.siblings(".delete_prompt"); + this_delete_prompt_div.show(); + return false; + }); + // cancel delete button + $("#cancel_delete_btn").bind("click", function(){ + $(this).closest(".delete_prompt").hide(); + return false; + }); + // confirm delete button + $("#confirm_delete_btn").bind("click", function(){ // delete record (ajax) var time = moment().valueOf(); $.ajax({ @@ -51,13 +64,16 @@ $(document).ready(function(){ }); return false; }); + // }}} // edit button $("#edit_btn").bind("click", function(){ var this_edit_data_div = $(this).closest(".edit_data"); var this_editing_data_div = this_edit_data_div.siblings(".editing_data"); - this_editing_data_div.show(); + var this_delete_prompt_div = this_edit_data_div.siblings(".delete_prompt"); + this_delete_prompt_div.hide(); this_edit_data_div.hide(); + this_editing_data_div.show(); return false; }); diff --git a/97suifangqa/apps/indicator/static/javascripts/new_delete_index.js b/97suifangqa/apps/indicator/static/javascripts/new_delete_index.js index e216f09..635e9c7 100644 --- a/97suifangqa/apps/indicator/static/javascripts/new_delete_index.js +++ b/97suifangqa/apps/indicator/static/javascripts/new_delete_index.js @@ -22,6 +22,16 @@ $(document).ready(function(){ } ); + // 'all_condition' letter selectors {{{ + // disable all letter selectors + $(".index_all_letter .letter").addClass("disabled"); + $(".index_letter_container .letter_section").each(function() { + var l = $(this).attr('id').replace('sec_', ''); + //console.log(l); + $(".index_all_letter #"+l).removeClass("disabled"); + }); + // }}} + // login control kit {{{ $(".drop-down-area").bind("click", function(){ var drop_down_menu = $(".drop-down-menu"); @@ -144,8 +154,9 @@ $(document).ready(function(){ $(".letter_selected").removeClass("letter_selected"); $(this).addClass("letter_selected"); var container = $(".index_letter_container"); - var letterClass = $(this).text(); - var scrollTo = $("."+letterClass); + var letterClass = $(this).attr('id'); + //console.log(letterClass); + var scrollTo = $("#sec_"+letterClass); container.scrollTop(scrollTo.offset().top - container.offset().top + container.scrollTop()); select_letter = letterClass; return false; diff --git a/97suifangqa/apps/indicator/templates/indicator/NewDeleteIndex.html b/97suifangqa/apps/indicator/templates/indicator/NewDeleteIndex.html index 24d8078..9651a93 100644 --- a/97suifangqa/apps/indicator/templates/indicator/NewDeleteIndex.html +++ b/97suifangqa/apps/indicator/templates/indicator/NewDeleteIndex.html @@ -3,7 +3,7 @@ {% load dict_get %} {% block title %} -指标状态 | 随访工具 | 97 随访 +指标状态 | 随访工具 | 医时代 {% endblock %} {% block css %} @@ -39,17 +39,17 @@ <!-- TODO --> <div id="login_container"> <div class="logged-in" id="login"> - <img class="user-photo" alt="" src="{% static "images/userPhoto.jpg" %}"> - <span class="number-block green-block user-level">6</span> + <!--img class="user-photo" alt="" src="{% static "images/userPhoto.jpg" %}"> + <span class="number-block green-block user-level">6</span--> <span class="drop-down-area"> - <span class="user-name">username</span> + <span class="user-name">isuifangqa</span> <img class="drop-down-menu-button" alt="" src="{% static "images/icon_down.png" %}"> </span> <div class="drop-down-menu" tabindex="0" onblur="javascript:alert('blur');" onfocus="javascript:alert('focus')"> <div class="text-pointer"></div> <ul class="links"> - <li><a href="javascript:void(0)">修改密码</a></li> - <li><a href="javascript:void(0)">完善信息</a></li> + <!--li><a href="javascript:void(0)">修改密码</a></li> + <li><a href="javascript:void(0)">完善信息</a></li--> <li class="last"><a href="javascript:void(0)">退出</a></li> </ul> </div> @@ -66,7 +66,7 @@ <div class="new_delete_title"> <div class="content">添加或删除关注指标</div> <div class="search"> - <input type="text" value="" placeholder="直接搜索指标" id="search_kw" /> + <input type="text" name="q" placeholder="直接找寻指标" id="search_kw" value="{{ q }}"/> <img id="search_btn" src="{% static "images/search.png" %}"> </div> <div style="clear: both;"></div> @@ -77,7 +77,7 @@ <div id="index_all" class="index_type {% if page_condition == "all" %}selected{% endif %}"> <a href="?tab=all">所有指标</a> </div> - <!-- 指标类别,页面只能容纳 7 个 --> + <!-- 指标类别,一行只能容纳 7 个按钮 --> {% for cat in categories %} <div class="index_type {% if selected_catid == cat.id %}selected{% endif %}"> <a href="?tab={{ cat.id }}">{{ cat.name }}</a> @@ -93,32 +93,32 @@ <div class="all_condition" style="display: {% if page_condition == "all" %}block{% else %}none{% endif %};"> <div class="index_all_title">所有指标</div> <div class="index_all_letter"> - <div>A</div> - <div>B</div> - <div>C</div> - <div>D</div> - <div>E</div> - <div>F</div> - <div>G</div> - <div>H</div> - <div>I</div> - <div>J</div> - <div>K</div> - <div>L</div> - <div>M</div> - <div>N</div> - <div>O</div> - <div>P</div> - <div>Q</div> - <div>R</div> - <div>S</div> - <div>T</div> - <div>U</div> - <div>V</div> - <div>W</div> - <div>X</div> - <div>Y</div> - <div>Z</div> + <div class="letter" id="A">A</div> + <div class="letter" id="B">B</div> + <div class="letter" id="C">C</div> + <div class="letter" id="D">D</div> + <div class="letter" id="E">E</div> + <div class="letter" id="F">F</div> + <div class="letter" id="G">G</div> + <div class="letter" id="H">H</div> + <div class="letter" id="I">I</div> + <div class="letter" id="J">J</div> + <div class="letter" id="K">K</div> + <div class="letter" id="L">L</div> + <div class="letter" id="M">M</div> + <div class="letter" id="N">N</div> + <div class="letter" id="O">O</div> + <div class="letter" id="P">P</div> + <div class="letter" id="Q">Q</div> + <div class="letter" id="R">R</div> + <div class="letter" id="S">S</div> + <div class="letter" id="T">T</div> + <div class="letter" id="U">U</div> + <div class="letter" id="V">V</div> + <div class="letter" id="W">W</div> + <div class="letter" id="X">X</div> + <div class="letter" id="Y">Y</div> + <div class="letter" id="Z">Z</div> </div> <!-- end: index_all_letter --> <div style="clear:both;"></div> {# display all indicators if in 'all' condition #} @@ -127,21 +127,21 @@ <div class="index_letter_container"> {# display all indicators by letter index #} {% for l in letters %} - {% with l_inds=indicators|dict_get:l %} - {% if l_inds|length >= 1 %} - <div class="index_lines {{ l|upper }} to_add"> - <div class="letter_title">{{ l|upper }}</div> - {% for ind in l_inds %} - <div class="index_line" index_id="{{ ind|dict_get:"id" }}"> - <div class="index_name">{{ ind|dict_get:"name" }}</div> - <div class="index_category"></div> - <div class="icon"></div> - <div style="clear:both"></div> - </div> - {% endfor %} - </div> - {% endif %} - {% endwith %} + {% with l_inds=indicators|dict_get:l %} + {% if l_inds|length >= 1 %} + <div class="index_lines to_add letter_section" id="sec_{{ l|upper }}"> + <div class="letter_title">{{ l|upper }}</div> + {% for ind in l_inds %} + <div class="index_line" index_id="{{ ind|dict_get:"id" }}"> + <div class="index_name">{{ ind|dict_get:"name" }}</div> + <div class="index_category"></div> + <div class="icon"></div> + <div style="clear:both"></div> + </div> + {% endfor %} + </div> + {% endif %} + {% endwith %} {% endfor %} {# end: display all indicators #} </div> <!-- end: index_letter_container --> {% endif %} {# end: page_condition == all #} @@ -154,7 +154,7 @@ <div class="index_title_container"> <div class="index_title">{{ selected_category.name }}</div> <div class="example_sheet"> - <a href="javascript:void(0)">仿真化验单</a> + <a href="{{ selected_category.description }}" class="thickbox" target="_blank">仿真化验单</a> </div> <div style="clear:both;"></div> </div> @@ -250,7 +250,7 @@ <div class="link_container"> <div class="status_link"> - <a href="{% url indicator_status %}">查看指标状态</a> + <a href="{% url indicator_status %}">完成并返回</a> </div> </div> {% endblock page %} diff --git a/97suifangqa/apps/indicator/templates/indicator/SheetDefault.html b/97suifangqa/apps/indicator/templates/indicator/SheetDefault.html index 5a6659f..362083b 100644 --- a/97suifangqa/apps/indicator/templates/indicator/SheetDefault.html +++ b/97suifangqa/apps/indicator/templates/indicator/SheetDefault.html @@ -4,7 +4,7 @@ {% load divisible_by %} {% block title %} -指标状态 | 随访工具 | 97 随访 +指标状态 | 随访工具 | 医时代 {% endblock %} {% block css %} @@ -274,6 +274,9 @@ {% elif ind|dict_get:"dataType" == DATA_TYPES|dict_get:"PM_TYPE" %} {# PM_TYPE #} {# TODO #} + {% elif ind|dict_get:"dataType" == DATA_TYPES|dict_get:"KIND_TYPE" %} + {# KIND_TYPE #} + {# TODO #} {% else %} {# unknown TYPE #} {% endif %} {# end: DATA_TYPES #} @@ -289,17 +292,17 @@ <!-- TODO --> <div id="login_container"> <div class="logged-in" id="login"> - <img class="user-photo" alt="user_photo" src="{% static "images/userPhoto.jpg" %}" /> - <span class="number-block green-block user-level">6</span> + <!--img class="user-photo" alt="user_photo" src="{% static "images/userPhoto.jpg" %}" /> + <span class="number-block green-block user-level">6</span--> <span class="drop-down-area"> - <span class="user-name">username</span> - <img class="drop-down-menu-button" alt="" src="{% static "images/icon_down.png" %}" /> + <span class="user-name">isuifangqa</span> + <!--img class="drop-down-menu-button" alt="" src="{% static "images/icon_down.png" %}" /--> </span> <div class="drop-down-menu" tabindex="0" onblur="javascript:alert('blur');" onfocus="javascript:alert('focus')"> <div class="text-pointer"></div> <ul class="links"> - <li><a href="javascript:void(0)">修改密码</a></li> - <li><a href="javascript:void(0)">完善信息</a></li> + <!--li><a href="javascript:void(0)">修改密码</a></li> + <li><a href="javascript:void(0)">完善信息</a></li--> <li class="last"><a href="javascript:void(0)">退出</a></li> </ul> </div> @@ -308,7 +311,7 @@ <div id="right_container"> <div id="index_status_container"> - <div class="index_title">指标状态</div> + <div class="index_title">随访医学指标</div> {% comment %} <!-- 这里需要后端读取cookie,来判断用户是否已经点击大叉。 @@ -330,7 +333,7 @@ <div class="refer_range"> <span class="refer_text">{{ ind|dict_get:"ref_text" }}</span> <span class="refer_value">{{ ind|dict_get:"ref_value"|safe }}</span> - <span class="data_unit">{% if ind|dict_get:"std_unit_symbol" %}({{ ind|dict_get:"std_unit_symbol" }}){% endif %}</span> + <span class="data_unit">{% if ind|dict_get:"std_unit_symbol"%}{{ ind|dict_get:"std_unit_symbol"|safe}}{% endif %}</span> </div> <div class="edit_data"> @@ -342,7 +345,7 @@ <div class="last_edit_data" style="display: block;"> {% endif %} <span class="data_value">{{ ind|dict_get:"last_record"|dict_get:"value_html"|safe }}</span> - <span class="data_unit">{% if ind|dict_get:"std_unit_symbol" %}({{ ind|dict_get:"std_unit_symbol" }}){% endif %}</span> + <span class="data_unit">{% if ind|dict_get:"std_unit_symbol" %}{{ ind|dict_get:"std_unit_symbol" }}{% endif %}</span> </div> <img class="small_edit_icon" alt="edit_icon" src="{% static "images/pen.png" %}" /> <!-- explain_icon --> @@ -397,14 +400,18 @@ <input type="radio" id="plus_r" name="pm_data" value="+" /> <label for="plus_r">阳性(+)</label> </div> + {% elif ind|dict_get:"dataType" == DATA_TYPES|dict_get:"KIND_TYPE" %} + {# KIND_TYPE #} + TODO {% else %} {# UNKNOWN TYPE #} ERROR: unknown data type {% endif %} </div> - <div class="data_unit">{% if ind|dict_get:"std_unit_symbol" %}({{ ind|dict_get:"std_unit_symbol" }}){% endif %}</div> - <div class="confirm_edit_icon"></div> + <div class="data_unit">{% if ind|dict_get:"std_unit_symbol" %}{{ ind|dict_get:"std_unit_symbol" }}{% endif %}</div> <div class="cancel_edit_icon"></div> + <div class="confirm_edit_icon"></div> + <div style="clear:both;"></div> <div class="date"> <div class="datepicker_container"> @@ -435,7 +442,7 @@ <div class="card_bottom"> <div class="understand_index"><a class="thickbox" href="{% url indicator_indexdesc %}?card_id={{ ind|dict_get:"id" }}&url_type=html&no_title=true&TB_iframe=true&height=367&width=630">了解该指标</a></div> <!-- TODO --> - <div class="simulation_sheet"><a href="{% static "images/demo_sheet.png" %}" class="thickbox">仿真化验单</a></div> + <div class="simulation_sheet"><a href="http://image.97suifang.com/media/imgs/2013/10/21/%E4%B8%A4%E5%AF%B9%E5%8D%8A.jpg" class="thickbox">仿真化验单</a></div> <div class="detail_history"> <a href="javascript:void(0)">详细历史记录</a> </div> @@ -450,7 +457,7 @@ width参数为弹出层页面宽度+2, card_id参数为 "卡片id" {% endcomment %} - <a class="card_delete_icon card_delete thickbox" href="{% url indicator_deletecardtip %}?card_id={{ ind|dict_get:"id" }}&url_type=html&no_title=true&TB_iframe=true&height=166&width=630"></a> + <a class="card_delete_icon card_delete thickbox" href="{% url indicator_deletecardtip %}?card_id={{ ind|dict_get:"id" }}&url_type=html&no_title=true&TB_iframe=true&height=180&width=650"></a> </div> <!-- end: index_card --> {% endfor %} {# end: indicators #} diff --git a/97suifangqa/apps/indicator/templates/indicator/SideBar.html b/97suifangqa/apps/indicator/templates/indicator/SideBar.html index 95ad4e9..a545c94 100644 --- a/97suifangqa/apps/indicator/templates/indicator/SideBar.html +++ b/97suifangqa/apps/indicator/templates/indicator/SideBar.html @@ -2,12 +2,13 @@ {% load static from staticfiles %} {% block title %} -边栏 | 随访工具 | 97 随访 +边栏 | 随访工具 | 医时代 {% endblock %} {% block css %} <link rel="stylesheet" type="text/css" href="{% static "css/normalize.css" %}"/> <link rel="stylesheet" type="text/css" href="{% static "css/sidebar.css" %}"/> + <link rel="stylesheet" type="text/css" href="{% static "css/nav.css" %}"/> {% endblock %} {% block scripts %} @@ -16,13 +17,32 @@ {% block page %} <div id="sidebar_container"> + <!-- ====================== navigation ====================== --> - <div id="nav_container"> + <nav id="nav-ribbon" role="navigation"> + <div class="controls-wrap"> + <div class="head-background"></div> + <div class="links-wrap"> + <ul class="links inline"> + <li class="first"><a href="/blog/index" target="_blank">返回首页</a></li> + <!--li><a href="{% url list_blogs %}">知识库</a></li--> + <li><a href="/indicator/status" target="_blank">随访工具</a></li> + <!--li class="last"><a href="">我的花费</a></li--> + </ul> + </div> + <div class="tail">导航</div> + <div class="tail-cut"></div> + </div> +</nav> + + + + <!--div id="nav_container"> <div class="head-background"></div> <div class="hidden_navs"> <ul> - <li><a href="javascript:void(0)">首页</a></li> - <li><a href="javascript:void(0)">医学知识</a></li> + <li><a href="/blog">首页</a></li> + <li><a href="/indicator/status">随访工具</a></li> </ul> </div> <div class="default_nav"> @@ -30,37 +50,57 @@ <a href="javascript:void(0)">导航</a> </div> <div class="tail-cut"></div> - <div class="curr_nav">随访工具</div> - </div> + <!--div class="curr_nav">随访工具</div--> + <!--/div> </div> - <div class="clear"></div> + <div class="clear"></div--> <!-- ====================== compare ====================== --> <div id="compare_container"> - <div class="post-question"> + <!--div class="post-question"> <form action="" class="searchdiv" method="get"> <input type="text" value="" class="question" placeholder="在这里搜索关键词" name="q"> - <input type="submit" class="submit" value="提问"> + <input type="submit" class="submit" value="搜 索"> </form> - </div> + </div--> <div class="similar_container"> - <div class="vertical_bar_component"> + <!--div class="vertical_bar_component"> <img src="{% static "images/gradient_bar.png" %}" /> - </div> - <div class="similar_content"> + </div--> + <h3 style="font-szie:20px;margin-bottom:5px;">为您推荐临床治疗经验:</h3> + <div class="related-questions"> + <a href="/blog/2/" target="_blank">e抗原阳性慢乙肝患者接受聚乙二醇干扰素alfa治疗前哪些起始因素可以预测未来疗效好与坏</a><br><br> + <span>Gastroenterology 胃肠病学 推荐指数:78%</span> + </div> + + <div class="related-questions"> + <a href="">聚乙二醇干扰素alfa-2a治疗时,病毒和e抗原到底是谁更重要?还是应该结合地去看?</a><br><br> + <span>Hepatology 肝脏病学 推荐指数:74%</span> + </div> + + <div class="related-questions"> + <a href="/blog/3/" target="_blank">用聚乙二醇干扰素治疗B型与C型e抗原阳性慢乙肝患者时,哪些患者乙肝e抗原血清学转换几率低?和疗程和剂量有哪些关系?</a><br><br> + <span>Hepatology 肝脏病学 推荐指数:70%</span> + </div> + + </div> + + <!--div class="similar_content"> <div class="similar_title">经比对,下文中的被研究患者与您很像:</div> - <div class="specifix_content" id="specifix_content1"><div class="specifix_text">有 80% 的患者有感到头疼</div></div> + <div class="specifix_content" id="specifix_content1"><div class="specifix_text">聚乙二醇干扰素alfa-2a治疗e抗原(HBeAg)阳性慢乙肝患者时,e抗原与病毒(DNA)预测疗效</div></div> <div class="specifix_content" id="specifix_content2"><div class="specifix_text">有 10% 的患者有感到头疼并且也感觉到肌疼</div></div> <div class="specifix_content" id="specifix_content3"><div class="specifix_text">有 20% 的患者ALT到达过正常值</div></div> <div class="specifix_content" id="specifix_content4"><div class="specifix_text">有 3% 的患者有感到肌疼</div></div> + </div--> + </div> + <div class="clear"></div> + + <div> + <a href="/blog" target="_blank"><input type="submit" value="推荐更多" class="submit"></a> </div> - </div> - <div class="clear"></div> - <div class="compare_btn"> - <div class="compare_btn_in">比对文献</div> - </div> + <div class="logo_container"> - <img src="{% static "images/slilogo.png" %}" /> + <a href="../../blog/index" target="_blank"><img src="{% static "images/slilogo.png" %}" /></a> </div> </div> diff --git a/97suifangqa/apps/indicator/templates/indicator/index.html b/97suifangqa/apps/indicator/templates/indicator/index.html index 408ce67..57af738 100644 --- a/97suifangqa/apps/indicator/templates/indicator/index.html +++ b/97suifangqa/apps/indicator/templates/indicator/index.html @@ -2,7 +2,7 @@ {% load static from staticfiles %} {% block title %} -首页 | 随访工具 | 97 随访 +首页 | 随访工具 | 医时代 {% endblock %} {% block body %} diff --git a/97suifangqa/apps/indicator/templates/indicator/nav-ribbon.html b/97suifangqa/apps/indicator/templates/indicator/nav-ribbon.html new file mode 100644 index 0000000..bf8d690 --- /dev/null +++ b/97suifangqa/apps/indicator/templates/indicator/nav-ribbon.html @@ -0,0 +1,15 @@ +<nav id="nav-ribbon" role="navigation">
+ <div class="controls-wrap">
+ <div class="head-background"></div>
+ <div class="links-wrap">
+ <ul class="links inline">
+ <li class="first"><a href="/blog">首页</a></li>
+ <!--li><a href="{% url list_blogs %}">知识库</a></li-->
+ <li><a href="/indicator/status">随访工具</a></li>
+ <!--li class="last"><a href="">我的花费</a></li-->
+ </ul>
+ </div>
+ <div class="tail">导航</div>
+ <div class="tail-cut"></div>
+ </div>
+</nav>
\ No newline at end of file diff --git a/97suifangqa/apps/indicator/templates/indicator/popup/DeleteCardTip.html b/97suifangqa/apps/indicator/templates/indicator/popup/DeleteCardTip.html index 4bdac43..9859e0d 100644 --- a/97suifangqa/apps/indicator/templates/indicator/popup/DeleteCardTip.html +++ b/97suifangqa/apps/indicator/templates/indicator/popup/DeleteCardTip.html @@ -2,7 +2,7 @@ {% load static from staticfiles %} {% block title %} -取消关注卡片提示 | 随访工具 | 97 随访 +取消关注卡片提示 | 随访工具 | 医时代 {% endblock %} {% block css %} diff --git a/97suifangqa/apps/indicator/templates/indicator/popup/EditHistoryData.html b/97suifangqa/apps/indicator/templates/indicator/popup/EditHistoryData.html index efe8588..e310fab 100644 --- a/97suifangqa/apps/indicator/templates/indicator/popup/EditHistoryData.html +++ b/97suifangqa/apps/indicator/templates/indicator/popup/EditHistoryData.html @@ -3,7 +3,7 @@ {% load dict_get %} {% block title %} -编辑历史数据 | 随访工具 | 97 随访 +编辑历史数据 | 随访工具 | 医时代 {% endblock %} {% block css %} @@ -41,7 +41,8 @@ 'FLOAT_TYPE': '{{ indicator_obj.FLOAT_TYPE }}', 'RANGE_TYPE': '{{ indicator_obj.RANGE_TYPE }}', 'FLOAT_RANGE_TYPE': '{{ indicator_obj.FLOAT_RANGE_TYPE }}', - 'PM_TYPE': '{{ indicator_obj.PM_TYPE }}' + 'PM_TYPE': '{{ indicator_obj.PM_TYPE }}', + 'KIND_TYPE': '{{ indicator_obj.KIND_TYPE }}' }; var data_type = '{{ indicator_obj.dataType }}'; // indicator record @@ -64,7 +65,7 @@ <div class="refer_range"> <span class="refer_text">{{ indicator_dict|dict_get:"ref_text" }}</span> <span class="refer_value">{{ indicator_dict|dict_get:"ref_value"|safe }}</span> - <span class="data_unit">{% if indicator_dict|dict_get:"std_unit_symbol" %}({{ indicator_dict|dict_get:"std_unit_symbol" }}){% endif %}</span> + <span class="data_unit">{% if indicator_dict|dict_get:"std_unit_symbol" %}{{ indicator_dict|dict_get:"std_unit_symbol" }}{% endif %}</span> </div> <div class="edit_data"> <div class="date"> @@ -73,8 +74,8 @@ </div> <div class="data"> <span class="prompt">结果</span> - <span class="data_value">{{ record_dict|dict_get:"value_html"|safe }}</span> - <span class="data_unit">{% if record_dict|dict_get:"unit_symbol" %}({{ record_dict|dict_get:"unit_symbol" }}){% endif %}</span> + <span class="data_value">{{ record_dict|dict_get:"value_html"|safe }} </span> + <span class="data_unit">{% if record_dict|dict_get:"unit_symbol" %}{{ record_dict|dict_get:"unit_symbol" }}{% endif %}</span> </div> <div class="state"> <span class="prompt">状态</span> @@ -91,7 +92,19 @@ </div> <input type="button" id="edit_btn" value="修改记录" /> <input type="button" id="delete_btn" value="删除记录" /> + <div style="clear:both;"></div> </div> + + <div class="delete_prompt" style="display:none;"> + <div class="prompt_btns" id="cancel_delete_btn"> + <img alt="cancel_delete" src="{% static "images/cancel_edit.png" %}" /> + </div> + <div class="prompt_btns" id="confirm_delete_btn"> + <img alt="confirm_delete" src="{% static "images/confirm_edit.png" %}" /> + </div> + <div class="prompt">确认删除该记录?</div> + </div> + <div class="editing_data"> {% csrf_token %} <div class="date"> @@ -102,6 +115,7 @@ </div> </div> <div class="data data_type_{{ indicator_obj.dataType }}"> + <div class="prompt">修改记录</div> {% if indicator_obj.dataType == indicator_obj.INTEGER_TYPE %} {# INTEGER_TYPE #} @@ -123,12 +137,15 @@ <input type="radio" id="plus_r" name="pm_data" value="+" /> <label for="plus_r">阳性(+)</label> </div> + {% elif indicator_obj.dataType == indicator_obj.KIND_TYPE %} + {# KIND_TYPE #} + TODO {% else %} {# UNKNOWN TYPE #} ERROR: unknown data type {% endif %} </div> - <div class="data_unit">{% if record_dict|dict_get:"unit_symbol" %}({{ record_dict|dict_get:"unit_symbol" }}){% endif %}</div> + <div class="data_unit">{% if record_dict|dict_get:"unit_symbol" %}{{ record_dict|dict_get:"unit_symbol" }}{% endif %}</div> <div class="reason"> <div class="prompt">修改原因</div> <input class="reason_input to_validate" type="text" value="" /> diff --git a/97suifangqa/apps/indicator/templates/indicator/popup/IndexDesc.html b/97suifangqa/apps/indicator/templates/indicator/popup/IndexDesc.html index 0d3f62c..0b5f708 100644 --- a/97suifangqa/apps/indicator/templates/indicator/popup/IndexDesc.html +++ b/97suifangqa/apps/indicator/templates/indicator/popup/IndexDesc.html @@ -2,7 +2,7 @@ {% load static from staticfiles %} {% block title %} -指标注释 | 随访工具 | 97 随访 +指标注释 | 随访工具 | 医时代 {% endblock %} {% block css %} @@ -68,6 +68,18 @@ {% block page %} <div id="index_desc_container"> + <!-- 直接使用 indicator 的 description 信息 --> + <div class="index_desc_title_line"> + <div class="index_desc_title"> + {{ indicator.name }} + </div> + <div class="index_desc_close"></div> + </div> + <div class="index_desc_content"> + {{ indicator.description|safe }} + </div> + <!-- 使用与 indicator 关联的 annotation 来提供详情 --> + {% comment %} <div class="index_desc_title_line"> <div class="index_desc_title"> {% if annotation_not_found %} @@ -85,6 +97,7 @@ {{ annotation.detail|safe }} {% endif %} </div> + {% endcomment %} <div class="collection" id="collection_btn"> {% if is_collected %} 点击取消收藏 (已有{{ collected_times }}人收藏) @@ -92,9 +105,9 @@ 收藏该注释 (已有{{ collected_times }}人收藏) {% endif %} </div> - <div class="go_library"> + <!--div class="go_library"> <input type="button" class="go_library_btn" value="前往医学知识库" /> - </div> + </div--> </div> {% endblock page %} diff --git a/97suifangqa/apps/indicator/templates/indicator/show_indicator.html b/97suifangqa/apps/indicator/templates/indicator/show_indicator.html index 0ecd027..ea70b26 100644 --- a/97suifangqa/apps/indicator/templates/indicator/show_indicator.html +++ b/97suifangqa/apps/indicator/templates/indicator/show_indicator.html @@ -32,6 +32,10 @@ <td>{{ object.addByUser.username }}</td> </tr> <tr> + <td>type:</td> + <td>{{ object.type }}</td> + </tr> + <tr> <td>categories_name:</td> <td> {% for c in object.categories.all %} diff --git a/97suifangqa/apps/indicator/templates/indicator/show_record.html b/97suifangqa/apps/indicator/templates/indicator/show_record.html index 49c7918..14a3671 100644 --- a/97suifangqa/apps/indicator/templates/indicator/show_record.html +++ b/97suifangqa/apps/indicator/templates/indicator/show_record.html @@ -44,6 +44,10 @@ <td>{{ object.val_min }}</td> </tr> <tr> + <td>kind:</td> + <td>{{ object.kind }}</td> + </tr> + <tr> <td>notes:</td> <td>{{ object.notes }}</td> </tr> diff --git a/97suifangqa/apps/indicator/tools.py b/97suifangqa/apps/indicator/tools.py index 1a9e6ab..781a843 100644 --- a/97suifangqa/apps/indicator/tools.py +++ b/97suifangqa/apps/indicator/tools.py @@ -15,6 +15,25 @@ import re import datetime +# types of recommended indicators, and weights {{{ +RI_TYPES = { + 'ANNOTATION_COLLECTED': u'ANN_CL', + 'BLOG_CATCHED': u'BLG_CT', + 'BLOG_COLLECTED': u'BLG_CL', + 'OTHER': u'OTHER', + 'ERROR': u'ERROR', # no 'RelatedIndicator' data +} +RI_WEIGHTS = { + RI_TYPES['ANNOTATION_COLLECTED']: 4.0, + RI_TYPES['BLOG_CATCHED']: 3.0, + RI_TYPES['BLOG_COLLECTED']: 2.0, + RI_TYPES['OTHER']: 1.0, + RI_TYPES['ERROR']: 0.0, +} +# }}} + + + # follow_indicator {{{ def follow_indicator(user_id, indicator_id): """ @@ -23,6 +42,10 @@ def follow_indicator(user_id, indicator_id): try: user = get_object_or_404(User, id=user_id) indicator = im.Indicator.objects.get(id=indicator_id) + # check the type of indicator + if indicator.type != im.Indicator.NORMAL_TYPE: + return False + # ui, created = im.UserIndicator.objects.get_or_create(user=user) ui.followedIndicators.add(indicator) # to remove the indicator from 'followedHistories' if exists @@ -55,7 +78,7 @@ def unfollow_indicator(user_id, indicator_id): # get_indicator {{{ -def get_indicator(category_id="all", startswith="all"): +def get_indicator(category_id="all", startswith="all", type="all"): """ 根据指定的 category_id 和 startswith 获取 indicator 返回一个 dict @@ -69,17 +92,23 @@ def get_indicator(category_id="all", startswith="all"): _idict = {} if category_id == 'all': - iqueryset = im.Indicator.objects.all() + if type == 'all': + iqueryset = im.Indicator.objects.all() + else: + iqueryset = im.Indicator.objects.filter(type=type) else: try: cid = int(category_id) cate = im.IndicatorCategory.objects.get(id=cid) - iqueryset = cate.indicators.all() + if type == 'all': + iqueryset = cate.indicators.all() + else: + iqueryset = cate.indicators.filter(type=type) except ValueError: - raise ValueError(u'category_id 不是整数型') + raise ValueError(u'Error: category_id 不是整数型') return _idict except im.IndicatorCategory.DoesNotExist: - raise ValueError(u'id=%s 的 IndicatorCategory 不存在' + raise ValueError(u'Error: IndicatorCategory(id=%s) 不存在' % cid) return _idict @@ -116,7 +145,7 @@ def get_followed_indicator(user_id, category_id="all", startswith="all"): cid = int(category_id) iqueryset = iqueryset.filter(categories__id=cid) except ValueError: - raise ValueError(u'category_id 不是整数型') + raise ValueError(u'Error: category_id 不是整数型') return _idict if startswith == 'all': @@ -140,6 +169,8 @@ def get_unfollowed_indicator(user_id, category_id="all", startswith="all"): """ 获取未关注的指标 返回 dict, 格式与 get_indicator() 一致 + + 只考虑 NORMAL_TYPE 的指标 """ u = User.objects.get(id=user_id) @@ -147,13 +178,15 @@ def get_unfollowed_indicator(user_id, category_id="all", startswith="all"): ui.save() _idict = {} # XXX: if 'exclude(followed_indicators=ui)' OK?? - iqueryset = im.Indicator.objects.exclude(followed_indicators=ui) + iqueryset = im.Indicator.objects.\ + filter(type=im.Indicator.NORMAL_TYPE).\ + exclude(followed_indicators=ui) if not category_id == 'all': try: cid = int(category_id) iqueryset = iqueryset.filter(categories__id=cid) except ValueError: - raise ValueError(u'category_id 不是整数型') + raise ValueError(u'Error: category_id 不是整数型') return _idict if startswith == 'all': @@ -448,24 +481,6 @@ def add_recordhistory(user_id, record_id, reason, created_at=None): # }}} -# types of recommended indicators, and weights {{{ -RI_TYPES = { - 'ANNOTATION_COLLECTED': u'ANN_CL', - 'BLOG_CATCHED': u'BLG_CT', - 'BLOG_COLLECTED': u'BLG_CL', - 'OTHER': u'OTHER', - 'ERROR': u'ERROR', # no 'RelatedIndicator' data -} -RI_WEIGHTS = { - RI_TYPES['ANNOTATION_COLLECTED']: 4.0, - RI_TYPES['BLOG_CATCHED']: 3.0, - RI_TYPES['BLOG_COLLECTED']: 2.0, - RI_TYPES['OTHER']: 1.0, - RI_TYPES['ERROR']: 0.0, -} -# }}} - - # calc_indicator_weight {{{ def calc_indicator_weight(user_id, indicator_id): """ @@ -533,11 +548,13 @@ def recommend_indicator(user_id, number=1, auto_follow=False): """ user_id = int(user_id) number = int(number) - # get unfollowed indicators + ## get unfollowed indicators (only 'NORMAL_TYPE' indicators) u = User.objects.get(id=user_id) ui, created = im.UserIndicator.objects.get_or_create(user=u) # XXX: is 'exclude(followed_indicators=ui)' OK?? - uf_ind_qs = im.Indicator.objects.exclude(followed_indicators=ui) + uf_ind_qs = im.Indicator.objects.\ + filter(type=im.Indicator.NORMAL_TYPE).\ + exclude(followed_indicators=ui) # calc weight for each unfollowed indicator weights = [] for ind in uf_ind_qs: @@ -567,7 +584,12 @@ def recommend_indicator(user_id, number=1, auto_follow=False): # format_data {{{ -def format_data(indicator_obj, value=None, val_max=None, val_min=None, type="html"): +def format_data(indicator_obj, + value=None, + val_max=None, + val_min=None, + kind=None, + type="html"): """ format given data according to the dataType of given Indicator, make it proper for django templates @@ -688,6 +710,13 @@ def format_data(indicator_obj, value=None, val_max=None, val_min=None, type="htm else: value_str = u'%s %s %s' % (val_min_str, range_sym_text, val_max_str) + elif kind is not None: + # KIND_TYPE + if (dataType == ind.KIND_TYPE) and\ + isinstance(kind, im.ValueKind): + value_str = u'%s' % kind.name + else: + value_str = u'' else: # other type?? return None diff --git a/97suifangqa/apps/indicator/urls.py b/97suifangqa/apps/indicator/urls.py index fe0fcdb..4c30d44 100644 --- a/97suifangqa/apps/indicator/urls.py +++ b/97suifangqa/apps/indicator/urls.py @@ -158,6 +158,12 @@ urlpatterns += patterns('indicator.views', ## recommend indicator url(r'^recommend/indicator/(?P<number>\d+)/$', 'recommend_indicator_view', name='recommend_indicator'), +) + + +## for forms.py (not updated) +""" +urlpatterns += patterns('indicator.views_forms', ## add/edit category url(r'^add/category/$', 'add_edit_category', name='add_category'), @@ -188,7 +194,7 @@ urlpatterns += patterns('indicator.views', 'add_recordhistory_view', name='add_recordhistory_view'), ) - +""" urlpatterns += patterns('', ## done diff --git a/97suifangqa/apps/indicator/views.py b/97suifangqa/apps/indicator/views.py index d317277..5f1d5d2 100644 --- a/97suifangqa/apps/indicator/views.py +++ b/97suifangqa/apps/indicator/views.py @@ -5,6 +5,7 @@ apps/indicator views """ +from django.conf import settings from django.contrib.auth.decorators import login_required from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden, Http404 from django.shortcuts import render, get_object_or_404 @@ -16,7 +17,6 @@ from django.template import RequestContext from haystack.query import SearchQuerySet from indicator import models as im -from indicator.forms import * from indicator.tools import * from sciblog import models as sm @@ -37,6 +37,8 @@ except ImportError: +########################################################### + def get_indicator_view(request, **kwargs): idict = get_indicator(**kwargs) return HttpResponse("%s" % idict) @@ -88,308 +90,6 @@ def get_record_view(request, indicator_id, date_range, **kwargs): # }}} - -########################################################### -###### forms ###### - -## add_edit_category # {{{ -@login_required -def add_edit_category(request, category_id=None, template='indicator/simple.html'): - """ - add/edit category: 'models.IndicatorCategory' - for 'staff' or 'normal user' - """ - # get or create model instance - if category_id: - category_id = int(category_id) - category = get_object_or_404(im.IndicatorCategory, - id=category_id) - action = 'Edit' - # check the user - # 'staff' can edit all data; - # normal users can only edit their own. - if category.addByUser != request.user and ( - not request.user.is_staff): - return HttpResponseForbidden() - else: - category = im.IndicatorCategory(addByUser=request.user) - action = 'Add' - - if request.method == 'POST': - form = IndicatorCategoryForm(request.POST, instance=category) - if form.is_valid(): - # form posted and valid - # save form to create/update the model instance - form.save() - # redirect url, avoid page reload/refresh - return HttpResponseRedirect('/indicator/done/') - else: - # form with data of the specified instance - form = IndicatorCategoryForm(instance=category) - - return render(request, template, { - 'object': 'IndicatorCategory', - 'action': action, - 'form': form, - }) -# }}} - - -# add_edit_indicator # {{{ -@login_required -def add_edit_indicator(request, indicator_id=None, template='indicator/simple.html'): - """ - add/edit indicator: 'models.Indicator' - for 'staff' or 'normal user' - """ - if indicator_id: - indicator_id = int(indicator_id) - indicator = get_object_or_404(im.Indicator, - id=indicator_id) - action = 'Edit' - # check the user - # 'staff' can edit all data; - # normal users can only edit their own. - if indicator.addByUser != request.user and ( - not request.user.is_staff): - return HttpResponseForbidden() - else: - indicator = im.Indicator(addByUser=request.user) - action = 'Add' - - if request.method == 'POST': - form = IndicatorForm(request.POST, instance=indicator) - if form.is_valid(): - # form posted and valid - form.save() - # redirect url, avoid page reload/refresh - return HttpResponseRedirect('/indicator/done/') - else: - # form with instance - form = IndicatorForm(instance=indicator) - - return render(request, template, { - 'object': 'Indicator', - 'action': action, - 'form': form, - }) -# }}} - - -## add_edit_unit {{{ -@login_required -def add_edit_unit(request, unit_id=None, template='indicator/simple.html'): - """ - add unit for indicator - """ - if unit_id: - unit_id = int(unit_id) - unit = get_object_or_404(im.Unit, id=unit_id) - action = 'Edit' - # check the user - # 'staff' can edit all data; - # normal users can only edit their own. - if unit.addByUser != request.user and ( - not request.user.is_staff): - return HttpResponseForbidden() - else: - unit = im.Unit(addByUser=request.user) - action = 'Add' - - if request.method == 'POST': - form = UnitForm(request.POST, instance=unit) - if form.is_valid(): - # form posted and valid - form.save() - # redirect url, avoid page reload/refresh - return HttpResponseRedirect('/indicator/done/') - else: - # form with instance - form = UnitForm(instance=unit) - - return render(request, template, { - 'object': 'Unit', - 'action': action, - 'form': form, - }) -# }}} - - -## add_edit_confine {{{ -@login_required -def add_edit_confine(request, confine_id=None, template='indicator/simple.html'): - """ - InnateConfine - add confines for indicator - """ - if confine_id: - confine_id = int(confine_id) - confine = get_object_or_404(im.InnateConfine, id=confine_id) - action = 'Edit' - # check the user - # 'staff' can edit all data; - # normal users can only edit their own. - if confine.addByUser != request.user and ( - not request.user.is_staff): - return HttpResponseForbidden() - else: - confine = im.InnateConfine(addByUser=request.user) - action = 'Add' - - if request.method == 'POST': - form = InnateConfineForm(request.POST, instance=confine) - if form.is_valid(): - # form posted and valid - form.save() - # redirect url, avoid page reload/refresh - return HttpResponseRedirect('/indicator/done/') - else: - # form with instance - form = InnateConfineForm(instance=confine) - - return render(request, template, { - 'object': 'InnateConfine', - 'action': action, - 'form': form, - }) -# }}} - - -## add_edit_record {{{ -@login_required -def add_edit_record(request, record_id=None, template='indicator/simple.html'): - """ - add/edit 'IndicatorRecord' - - staff 能自由地修改所有的记录,并且无需填写"修改原因"; - 普通用户只能修改自己的记录,而且必须填写"修改原因" -> RecordHistory - - TODO: - * 当用户选择好"indicator"后,重新筛选"unit",只提供与"indicator" - 对应的"unit"供选择; - * 对"普通用户"增加限制,修改数据"记录"时必须同时提交"修改原因", - 对应模型"RecordHistory"。 - """ - if record_id: - record_id = int(record_id) - record = get_object_or_404(im.IndicatorRecord, id=record_id) - action = 'Edit' - # check the user - if request.user.is_staff: - # 'staff' can edit all data; - pass - elif request.user == record.user: - # user modify the record - return HttpResponse("Not finished yet ...") - #return modify_record(request, record_id) - else: - return HttpResponseForbidden() - else: - record = im.IndicatorRecord(user=request.user) - action = 'Add' - - if request.method == 'POST': - form = IndicatorRecordForm(request.POST, instance=record) - if form.is_valid(): - #raise ValueError - form.save() - # redirect url, avoid page reload/refresh - return HttpResponseRedirect('/indicator/done/') - else: - # form with instance - form = IndicatorRecordForm(instance=record) - - return render(request, template, { - 'object': 'IndicatorRecord', - 'action': action, - 'form': form, - }) -# }}} - - -## modify_record {{{ -@login_required -def modify_record(request, record_id=None, template='indicator/simple.html'): - """ - modify an existing IndicatorRecord - - TODO: - a new 'RecordHistory' is added to record the modification reason - and backup the original data - """ - if record_id: - record_id = int(record_id) - record = get_object_or_404(im.IndicatorRecord, id=record_id) - action = 'Edit' - # check the user - if request.user.is_staff: - # 'staff' can edit all data; - return add_edit_record(request, record_id) - elif request.user == record.user: - # user modify the record - action = 'Modify' - pass - else: - return HttpResponseForbidden() - else: - return add_edit_record(request) - - if request.method == 'POST': - form = IndicatorRecordForm(request.POST, instance=record) - if form.is_valid(): - # form posted and valid - # TODO - raise ValueError(u"该功能尚未完整实现") - form.save() - # redirect url, avoid page reload/refresh - return HttpResponseRedirect('/indicator/done/') - else: - # form with instance - form = IndicatorRecordForm(instance=record) - - return render(request, template, { - 'object': 'IndicatorRecord', - 'action': action, - 'form': form, - }) -## }}} - - -## add_recordhistory_view {{{ -@login_required -def add_recordhistory_view(request, record_id, template='indicator/simple.html'): - """ - add 'RecordHistory' for a record by given - - 'staff' should use the 'admin' interface. - """ - record_id = int(record_id) - record = get_object_or_404(im.IndicatorRecord, id=record_id) - recordhistory = im.RecordHistory(indicatorRecord=record) - action = 'Add' - # check the user - if request.user != record.user: - return HttpResponseForbidden() - - if request.method == 'POST': - form = RecordHistoryForm(request.POST, instance=recordhistory) - if form.is_valid(): - # form posted and valid - form.save() - # redirect url, avoid page reload/refresh - return HttpResponseRedirect('/indicator/done/') - else: - # form with instance - form = RecordHistoryForm(instance=recordhistory) - - return render(request, template, { - 'object': 'RecordHistory', - 'action': action, - 'form': form, - }) -# }}} - - ########################################################### ###### indicator UI pages ###### # indicator/index.html {{{ @@ -425,7 +125,7 @@ def indicator_status(request): * how to deal with non-standard units """ # period between two recommendation of indicators (default 40 days) - recommend_period = 40 + recommend_period = getattr(settings, 'INDICATOR_RECOMMEND_PERIOD', 40) # template = 'indicator/SheetDefault.html' letters = map(chr, range(ord('a'), ord('z')+1)) @@ -526,7 +226,7 @@ def indicator_status(request): ind_obj = get_object_or_404(im.Indicator, id=ind['id']) # check if 'indicator.is_ready()' if not ind_obj.is_ready(): - raise ValueError(u"Indicator id=%s is NOT ready yet!" + raise ValueError(u"Error: Indicator id=%s is NOT ready yet!" % ind_obj.id) # the indicator is ready dataType = ind_obj.dataType @@ -557,6 +257,13 @@ def indicator_status(request): # std_unit ind['std_unit_name'] = u"" ind['std_unit_symbol'] = u"" + elif dataType == ind_obj.KIND_TYPE: + # KIND_TYPE + ind['ref_text'] = u"参考值" + ind['ref_value'] = confine.get('kind_norm').get('name') + ind['math_range_html'] = None + ind['std_unit_name'] = u"" + ind['std_unit_symbol'] = u"" else: ind['ref_text'] = u"参考" ind['ref_value'] = None @@ -592,6 +299,10 @@ def indicator_status(request): type="html") else: value_html = None + elif dataType == ind_obj.KIND_TYPE: + # KIND_TYPE + value_html = format_data(ind_obj, + kind=last_record.kind, type="html") else: # unknow value_html = None @@ -607,11 +318,12 @@ def indicator_status(request): # dataType DATA_TYPES = { - 'INTEGER_TYPE': im.Indicator.INTEGER_TYPE, - 'FLOAT_TYPE': im.Indicator.FLOAT_TYPE, - 'RANGE_TYPE': im.Indicator.RANGE_TYPE, + 'INTEGER_TYPE': im.Indicator.INTEGER_TYPE, + 'FLOAT_TYPE': im.Indicator.FLOAT_TYPE, + 'RANGE_TYPE': im.Indicator.RANGE_TYPE, 'FLOAT_RANGE_TYPE': im.Indicator.FLOAT_RANGE_TYPE, - 'PM_TYPE': im.Indicator.PM_TYPE, + 'PM_TYPE': im.Indicator.PM_TYPE, + 'KIND_TYPE': im.Indicator.KIND_TYPE, } # datatypes of indicators (for js) datatypes = {} @@ -628,11 +340,12 @@ def indicator_status(request): # confines confine = ind_obj.get_confine() confines['id%d'%id] = { - 'human_min': confine.get('human_min'), - 'human_max': confine.get('human_max'), - 'math_min': confine.get('math_min'), - 'math_max': confine.get('math_max'), - 'val_norm': confine.get('val_norm'), + 'human_min': confine.get('human_min'), + 'human_max': confine.get('human_max'), + 'math_min': confine.get('math_min'), + 'math_max': confine.get('math_max'), + 'val_norm': confine.get('val_norm'), + 'kind_name': confine.get('kind_norm').get('name', None), 'math_range_html': ind['math_range_html'], } @@ -664,9 +377,8 @@ def indicator_fanduf(request): template = 'indicator/NewDeleteIndex.html' letters = map(chr, range(ord('a'), ord('z')+1)) - # get 7 categories (page can only contains 1+7 categories) - categories = im.IndicatorCategory.objects.all().\ - order_by('id')[:7] + # get categories + categories = im.IndicatorCategory.objects.all().order_by('id') # set default value for 'selected_cat*' selected_catid = None selected_category = None @@ -692,9 +404,11 @@ def indicator_fanduf(request): selected_category = get_object_or_404( im.IndicatorCategory, id=selected_catid) page_condition = "category" - # get indicators of the category + # get indicators of the category (only 'NORMAL_TYPE') + # order by 'pinyin' indicators = selected_category.indicators.\ - all().order_by('pinyin') + filter(type=im.Indicator.NORMAL_TYPE).\ + order_by('pinyin') # page_condition: "search" # can override the above 'category' if 'tab' & 'kw' both exist if 'kw' in request.GET: @@ -730,7 +444,9 @@ def indicator_fanduf(request): # all indicators if page_condition == "all": # get indicators, P[inyin] dict format - indicators = get_indicator() + indicators = get_indicator( + type=im.Indicator.NORMAL_TYPE, + category_id="all", startswith="all") # get followed indicator, P[inyin] dict format followed_indicators_pdict = get_followed_indicator(request.user.id) @@ -818,12 +534,13 @@ def indicator_edithistorydata(request): # generate 'indicator_dict' and 'record_dict' # {{{ # check if 'indicator.is_ready()' if not ind_obj.is_ready(): - print u"Indicator id=%s is NOT ready yet!" % ind_obj.id + print u"Error: Indicator id=%s is NOT ready yet!" % ind_obj.id # the indicator is ready dataType = ind_obj.dataType # confine confine = ind_obj.get_confine() confine_val_norm = confine.get('val_norm') + confine_kind_norm_name = confine.get('kind_norm').get('name') confine_human_min = confine.get('human_min') confine_human_max = confine.get('human_max') confine_math_min = confine.get('math_min') @@ -833,6 +550,7 @@ def indicator_edithistorydata(request): # record data record_data_std = record_obj.get_data_std() record_value = record_data_std['value'] + record_kind_name = record_data_std.get('kind').get('name') record_val_min = record_data_std['val_min'] record_val_max = record_data_std['val_max'] record_unit_name = record_data_std.get('unit').get('name') @@ -892,6 +610,15 @@ def indicator_edithistorydata(request): type="html") record_value_text = format_data(ind_obj, value=record_value, type="text") + elif dataType == im.Indicator.KIND_TYPE: + # KIND_TYPE + ref_text = u"参考值" + ref_value = confine_kind_norm_name + confine_math_range_html = None + std_unit_name = None + std_unit_symbol = None + record_value_html = record_kind_name + record_value_text = record_kind_name else: ref_text = u"参考" ref_value = None @@ -909,6 +636,7 @@ def indicator_edithistorydata(request): 'math_min': confine_math_min, 'math_max': confine_math_max, 'val_norm': confine_val_norm, + 'kind_norm_name': confine_kind_norm_name, 'math_range_html': confine_math_range_html, } ind_dict = { @@ -922,6 +650,7 @@ def indicator_edithistorydata(request): 'value_html': record_value_html, 'value_text': record_value_text, 'value': record_value, + 'kind_name': record_kind_name, 'val_min': record_val_min, 'val_max': record_val_max, 'unit_name': record_unit_name, @@ -980,7 +709,7 @@ def indicator_indexdesc(request): annotation = related_annotations[0].annotation collected_times = len(annotation.collected_by.all()) is_collected = annotation.is_collected_by(request.user) - # TODO + ## TODO #annotation_url = annotation.get_absolute_url() else: annotation_not_found = True @@ -1100,6 +829,8 @@ def ajax_add_record(request): value=value, val_min=val_min, val_max=val_max, + # TODO: 'KIND_TYPE' support to be implemented + kind=None, notes=u"" ) if new_record.is_valid(): @@ -1348,6 +1079,9 @@ def ajax_get_card_data_chart(request): elif dataType == im.Indicator.PM_TYPE: # TODO pass + elif dataType == im.Indicator.KIND_TYPE: + # TODO + pass else: print u'Error: unknow dataType' data = {'failed': True} @@ -1511,6 +1245,10 @@ def ajax_get_card_data_table(request): # TODO r['value_html'] = "" pass + elif dataType == im.Indicator.KIND_TYPE: + # TODO + r['value_html'] = "" + pass else: print u'Error: unknow dataType' data = {'failed': True} @@ -1548,8 +1286,10 @@ def ajax_search_indicators(request): 'error_string': 'blank_keyword'} else: # TODO: howto order_by() by 'pinyin' + # XXX: only return 'NORMAL_TYPE' indicators sqs = SearchQuerySet().models(im.Indicator).\ - filter(content=search_kw) + filter(content=search_kw).\ + filter(type=im.Indicator.NORMAL_TYPE) if sqs: # search result not empty inds_unsort = [ind.dump() diff --git a/97suifangqa/apps/info/fixtures_bak/initial_data.json b/97suifangqa/apps/info/fixtures_bak/initial_data.json deleted file mode 100644 index 4440490..0000000 --- a/97suifangqa/apps/info/fixtures_bak/initial_data.json +++ /dev/null @@ -1,1094 +0,0 @@ -[ - { - "pk": 1, - "model": "info.keyword", - "fields": { - "standard_judge": false, - "created_at": "2013-06-08T13:41:51.053Z", - "object_id": null, - "content": "\u8c37\u4e19\u8f6c\u6c28\u9176", - "user": null, - "content_type": null, - "categoryid": null, - "description": "" - } - }, - { - "pk": 2, - "model": "info.keyword", - "fields": { - "standard_judge": false, - "created_at": "2013-06-12T00:46:54.790Z", - "object_id": null, - "content": "\u8868\u9762\u6297\u539f", - "user": null, - "content_type": null, - "categoryid": null, - "description": "" - } - }, - { - "pk": 1, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:12.684Z", - "object_id": null, - "content": "\u5982\u4f55\u53bb\u5b9a\u4e49\u4e59\u809d\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 2, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:12.754Z", - "object_id": null, - "content": "\u4ec0\u4e48\u662f\u6162\u6027\u4e59\u578b\u809d\u708e\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 3, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:12.775Z", - "object_id": null, - "content": "\u4ec0\u4e48\u662f\u6025\u6027\u4e59\u578b\u809d\u708e\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 4, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:12.797Z", - "object_id": null, - "content": "\u5c0f\u4e09\u9633\u7684\u4e59\u809d\u75c5\u72b6\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 5, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:12.823Z", - "object_id": null, - "content": "\u5c0f\u4e09\u9633\u7684\u4e59\u809d\u4e3a\u4f55\u4f1a\u6bd4\u5927\u4e09\u9633\u96be\u4ee5\u6cbb\u6108\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 6, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:12.852Z", - "object_id": null, - "content": "\u4ec0\u4e48\u662f\u4e59\u809d\uff1f\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 7, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:12.872Z", - "object_id": null, - "content": "\u5c0f\u4e09\u9633\u2019\u8f6c\u5316\u6210\u2018\u5c0f\u4e8c\u9633\u2019\u4ee3\u8868\u4ec0\u4e48\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 8, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:12.893Z", - "object_id": null, - "content": "\u5c0f\u4e09\u9633\u2019\u7684\u4e59\u809d\u75c5\u539f\u5b66\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 9, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:12.917Z", - "object_id": null, - "content": "\u6bcd\u5a74\u4f20\u64ad\u7a76\u7adf\u662f\u600e\u6837\u7684\u5f62\u5f0f\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 10, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:12.943Z", - "object_id": null, - "content": "\u6bcd\u4eb2\u6216\u7236\u4eb2\u5f97\u4e86\u809d\u708e\u662f\u5426\u80fd\u8981\u5c0f\u5b69\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 11, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:12.964Z", - "object_id": null, - "content": "\u82e5\u662f\u4e59\u809d\u60a3\u8005\uff0c\u8fdb\u884c\u6000\u5b55\u7684\u8fc7\u7a0b\u4e2d\u9700\u8981\u6ce8\u610f\u4ec0\u4e48\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 12, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:12.987Z", - "object_id": null, - "content": "\u82e5\u662f\u610f\u5916\u6000\u5b55\uff0c\u4f55\u79cd\u60c5\u51b5\u53ef\u4ee5\u4e0d\u5fc5\u6d41\u4ea7 \n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 13, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.009Z", - "object_id": null, - "content": "\u4ea7\u524d\u4ea7\u4e2d\u4ea7\u540e\u9700\u8981\u6ce8\u610f\u4ec0\u4e48\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 14, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.046Z", - "object_id": null, - "content": "\u4ea7\u540e\u9700\u8981\u4f55\u79cd\u65b9\u5f0f\u4fdd\u62a4\u65b0\u751f\u513f\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 15, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.065Z", - "object_id": null, - "content": "\u5404\u9879\u6307\u6807\u4ee3\u8868\u4ec0\u4e48\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 16, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.092Z", - "object_id": null, - "content": "\u4e24\u5bf9\u534a\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 17, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.121Z", - "object_id": null, - "content": "\u7532\u80ce\u86cb\u767d\u662f\u4ec0\u4e48\uff1f\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 18, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.144Z", - "object_id": null, - "content": "\u8c37\u4e19\u8f6c\u6c28\u9176\u662f\u4ec0\u4e48\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 19, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.165Z", - "object_id": null, - "content": "\u4ec0\u4e48\u662f\u75c5\u6bd2HBV DNA\uff1f\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 20, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.185Z", - "object_id": null, - "content": "\u2018\u5927\u4e09\u9633\u2019\u4ee3\u8868\u4ec0\u4e48\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 21, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.213Z", - "object_id": null, - "content": "\u5c0f\u4e09\u9633\u4ee3\u8868\u4ec0\u4e48\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 22, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.236Z", - "object_id": null, - "content": "\u2018\u5c0f\u4e8c\u9633\u2019\u7684\u6982\u5ff5\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 23, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.256Z", - "object_id": null, - "content": "\u76ee\u524d\u533b\u9662\u4f1a\u91c7\u53d6\u54ea\u4e9b\u68c0\u6d4b\u624b\u6bb5\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 24, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.278Z", - "object_id": null, - "content": "\u533b\u9662\u5728\u68c0\u6d4b\u4e59\u809d\u60a3\u8005\u662f\u4f1a\u91c7\u53d6\u4f55\u79cd\u68c0\u6d4b\u65b9\u6848\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 25, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.298Z", - "object_id": null, - "content": "\u6bcf\u4e00\u79cd\u68c0\u6d4b\u65b9\u6848\u6240\u4ee3\u8868\u7684\u610f\u4e49\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 26, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.319Z", - "object_id": null, - "content": "\u5728\u7ed3\u5408\u6307\u6807\u60c5\u51b5\u4e0b\u63a8\u9009\u4f55\u79cd\u5408\u9002\u65f6\u671f \n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 27, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.344Z", - "object_id": null, - "content": "\u7ed3\u5408\u6307\u6807\u4ee5\u53ca\u7528\u836f\u5386\u53f2\u8fdb\u884c\u5408\u7406\u7684\u89e3\u91ca \n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 28, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.367Z", - "object_id": null, - "content": "\u8fdb\u884c\u4f55\u79cd\u5176\u4ed6\u65b9\u9762\u7684\u68c0\u6d4b\uff1f \n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 29, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.419Z", - "object_id": null, - "content": "\u5728\u8fdb\u884c\u4e86\u5e38\u89c4\u68c0\u6d4b\u540e\uff0c\u4e3a\u4f55\u533b\u751f\u8fd8\u4f1a\u5efa\u8bae\u53bb\u505a\u5176\u4ed6\u65b9\u9762\u7684\u68c0\u6d4b\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 30, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.440Z", - "object_id": null, - "content": "\u4e3a\u4f55\u8fd9\u79cd\u68c0\u6d4b\u8f83\u4e3a\u6709\u6548\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 31, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.463Z", - "object_id": null, - "content": "\u6162\u6027\u4e59\u809d\u80fd\u81ea\u6211\u4fee\u590d\u5417\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 32, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.483Z", - "object_id": null, - "content": "\u2018\u5c0f\u4e09\u9633\u2019\u4e59\u809d\u5728\u4f53\u5185\u7684\u75c5\u53d8\u8fc7\u7a0b\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 33, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.501Z", - "object_id": null, - "content": "\u809d\u708e\u65f6\u4e3a\u4f55\u8f6c\u6c28\u9176\u5347\u9ad8\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 34, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.524Z", - "object_id": null, - "content": "\u6162\u6027\u809d\u708e\u60a3\u8005\u8f6c\u6c28\u9176\u6025\u5267\u5347\u9ad8\u4f1a\u6709\u4ec0\u4e48\u95ee\u9898\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 35, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.543Z", - "object_id": null, - "content": "\u8f6c\u6c28\u9176\u5347\u9ad8\uff0c\u5fc5\u5b9a\u662f\u809d\u75c5\u52a0\u91cd\u5417\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 36, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.565Z", - "object_id": null, - "content": "\u9488\u5bf9\u4e59\u809d\u75c5\u6bd2\u9700\u8981\u4ec0\u4e48\u6837\u7684\u514d\u75ab\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 37, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.585Z", - "object_id": null, - "content": "\u514d\u75ab\u7f3a\u9677\u662f\u4ec0\u4e48\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 38, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.605Z", - "object_id": null, - "content": "\u4ec0\u4e48\u6837\u7684\u514d\u75ab\u6cbb\u7597\u4f1a\u6709\u6548\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 39, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.630Z", - "object_id": null, - "content": "\u5e72\u6270\u7d20\u4f5c\u7528\u4e8e\u4eba\u4f53\u65f6\u6240\u4ea7\u751f\u7684\u514d\u75ab\u6fc0\u5316\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 40, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.655Z", - "object_id": null, - "content": "\u6162\u6027\u4e59\u809d\u7684\u75c5\u53d8\u60c5\u51b5?\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 41, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.681Z", - "object_id": null, - "content": "\u6297\u75c5\u6bd2\u6cbb\u7597\u662f\u4ec0\u4e48\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 42, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.704Z", - "object_id": null, - "content": "\u6297\u75c5\u6bd2\u6cbb\u7597\u4e0e\u975e\u6297\u75c5\u6bd2\u6cbb\u7597\u7684\u533a\u522b\u70b9\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 43, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.723Z", - "object_id": null, - "content": "\u4f55\u65f6\u5f00\u59cb\u542f\u7528\u6297\u75c5\u6bd2\u6cbb\u7597\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 44, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.744Z", - "object_id": null, - "content": "\u5bf9\u4e8e\u4e59\u809d\u6cbb\u7597\u6709\u54ea\u4e9b\u836f\u7269\u53ef\u4ee5\u4f7f\u7528\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 45, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.764Z", - "object_id": null, - "content": "\u9009\u62e9\u836f\u54c1\u7684\u65f6\u5019\u7ed3\u5408\u6307\u6807\u8fdb\u884c\u5408\u7406\u7684\u63a8\u8350\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 46, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.786Z", - "object_id": null, - "content": "\u7ed3\u5408\u6307\u6807\u4ee5\u53ca\u75c5\u53f2\u8fdb\u884c\u5408\u7406\u7684\u89e3\u51b3\u65b9\u6848\u63a8\u8350\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 47, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.807Z", - "object_id": null, - "content": "\u9009\u836f\u671f\u95f4\u9700\u8981\u6ce8\u610f\u4ec0\u4e48\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 48, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.830Z", - "object_id": null, - "content": "\u6362\u836f\u671f\u95f4\u9700\u8981\u6ce8\u610f\u4ec0\u4e48\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 49, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.848Z", - "object_id": null, - "content": "\u5e72\u6270\u7d20\u548c\u6838\u82f7\u7c7b\u836f\u54c1\u5728\u76f8\u5173\u66ff\u6362\u65f6\u9700\u8981\u6ce8\u610f\u4e9b\u4ec0\u4e48\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 50, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.870Z", - "object_id": null, - "content": "\u5e72\u6270\u7d20\u7684\u7597\u7a0b\u957f\u77ed\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 51, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.892Z", - "object_id": null, - "content": "\u5bf9\u4e8e\u4f7f\u7528\u5e72\u6270\u7d20\u4e4b\u540e\u4e00\u4e9b\u76f8\u5173\u6307\u6807\u7684\u53d8\u5316\u4ee3\u8868\u4ec0\u4e48\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 52, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.914Z", - "object_id": null, - "content": "\u5e72\u6270\u7d20\u7684\u6cbb\u7597\u7ec8\u70b9\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 53, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.939Z", - "object_id": null, - "content": "\u54ea\u4e9b\u65b9\u9762\u4ee3\u8868\u5e72\u6270\u7d20\u7684\u6cbb\u7597\u7ec8\u70b9\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 54, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.961Z", - "object_id": null, - "content": "\u6838\u82f7\u7c7b\u836f\u7269\u7684\u6cbb\u7597\u7ec8\u70b9\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 55, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:13.986Z", - "object_id": null, - "content": "\u54ea\u4e9b\u65b9\u9762\u4ee3\u8868\u6838\u82f7\u7c7b\u7684\u6cbb\u7597\u7ec8\u70b9\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 56, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.007Z", - "object_id": null, - "content": "\u505c\u836f\u4e4b\u540e\u9700\u8981\u6ce8\u610f\u4e9b\u4ec0\u4e48\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 57, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.123Z", - "object_id": null, - "content": "\u5b9e\u65f6\u76d1\u63a7\uff0c\u968f\u8bbf\u662f\u4ec0\u4e48\u610f\u601d\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 58, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.146Z", - "object_id": null, - "content": "\u5bf9\u4e8e\u968f\u8bbf\u7a76\u7adf\u6709\u591a\u91cd\u8981\uff0c\u9700\u8981\u8fdb\u884c\u600e\u6837\u7684\u5b9a\u671f\u68c0\u67e5\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 59, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.171Z", - "object_id": null, - "content": "\u600e\u6837\u7684\u5b9a\u671f\u68c0\u67e5\u7b26\u5408\u8be5\u540d\u60a3\u8005\u7684\u6cbb\u7597\u8fdb\u5ea6\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 60, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.197Z", - "object_id": null, - "content": "\u5e72\u6270\u7d20\u6bcf\u79cd\u836f\u54c1\u7684\u8be6\u7ec6\u8d44\u6599\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 61, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.221Z", - "object_id": null, - "content": "\u5e72\u6270\u7d20\u6cbb\u7597\u5728\u77ed\u671f\u5185\u4f1a\u6709\u4ec0\u4e48\u6548\u679c\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 62, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.244Z", - "object_id": null, - "content": "\u5e72\u6270\u7d20\u7597\u7a0b\u4e00\u822c\u591a\u957f\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 63, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.266Z", - "object_id": null, - "content": "\u5e72\u6270\u7d20\u6cbb\u7597\u8fdc\u671f\u76ee\u6807\u662f\u4ec0\u4e48\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 64, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.285Z", - "object_id": null, - "content": "\u5e72\u6270\u7d20\u7684\u836f\u54c1\u6709\u4ec0\u4e48\u4f18\u7f3a\u70b9\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 65, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.310Z", - "object_id": null, - "content": "\u5e72\u6270\u7d20\u7684\u4e00\u4e2a\u7597\u7a0b\u7ed3\u675f\u540e\u662f\u5426\u9700\u8981\u66f4\u6362\u4f7f\u7528\u53e6\u4e00\u79cd\u5e72\u6270\u7d20\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 66, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.332Z", - "object_id": null, - "content": "\u957f\u6548\u5e72\u6270\u7d20\u7684\u4f18\u7f3a\u70b9\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 67, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.359Z", - "object_id": null, - "content": "\u957f\u6548\u5e72\u6270\u7d20\u7684\u6cbb\u7597\u6548\u679c\u5982\u4f55\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 68, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.381Z", - "object_id": null, - "content": "\u54ea\u4e9b\u60a3\u8005\u53ef\u4ee5\u4f7f\u7528\u957f\u6548\u5e72\u6270\u7d20\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 69, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.404Z", - "object_id": null, - "content": "\u957f\u6548\u5e72\u6270\u7d20\u5bf9\u4e0d\u540c\u57fa\u56e0\u578b\u7684\u60a3\u8005\u7684\u7597\u6548\u5e94\u7b54\u6709\u533a\u522b\u5417\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 70, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.424Z", - "object_id": null, - "content": "\u5e72\u6270\u7d20\u662f\u5426\u4e5f\u4f1a\u4ea7\u751f\u8010\u836f\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 71, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.446Z", - "object_id": null, - "content": "\u5e72\u6270\u7d20\u662f\u5426\u4f1a\u6709\u5f3a\u70c8\u7684\u590d\u53d1\u4f5c\u7528\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 72, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.465Z", - "object_id": null, - "content": "\u6d3e\u7f57\u6b23\u80fd\u8ffd\u6c42\u8868\u9762\u6297\u539f\u8f6c\u9634\u5417\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 73, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.488Z", - "object_id": null, - "content": "\u6d3e\u7f57\u6b23\u9002\u7528\u4e8e\u54ea\u7c7b\u75c5\u4eba\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 74, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.507Z", - "object_id": null, - "content": "\u6d3e\u7f57\u6b23\u6709\u54ea\u4e9b\u4e0d\u826f\u53cd\u5e94\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 75, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.527Z", - "object_id": null, - "content": "\u54ea\u4e9b\u809d\u75c5\u662f\u6d3e\u7f57\u6b23\u7684\u9002\u5e94\u75c7\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - }, - { - "pk": 76, - "model": "info.query", - "fields": { - "standard_judge": false, - "level": 1, - "created_at": "2013-04-23T15:05:14.546Z", - "object_id": null, - "content": "\u4e4b\u524d\u63a5\u53d7\u6838\u82f7\u7c7b\u836f\u6cbb\u7597\u73b0\u5728\u80fd\u6539\u5e72\u6270\u7d20\u5417\n", - "user": 1, - "content_type": null, - "categoryid": 1 - } - } -]
\ No newline at end of file diff --git a/97suifangqa/apps/info/models.py b/97suifangqa/apps/info/models.py index 3bb1203..b4543d2 100644 --- a/97suifangqa/apps/info/models.py +++ b/97suifangqa/apps/info/models.py @@ -25,7 +25,7 @@ class KeyWord(models.Model): verbose_name_plural = u"关键词" def __unicode__(self): - return "< KeyWord: %s >" % self.content + return "%s" % self.content # Query {{{ diff --git a/97suifangqa/apps/location/fixtures_bak/initial_data.json b/97suifangqa/apps/location/fixtures_bak/initial_data.json deleted file mode 100644 index a06ec34..0000000 --- a/97suifangqa/apps/location/fixtures_bak/initial_data.json +++ /dev/null @@ -1,81 +0,0 @@ -[ - { - "pk": 1, - "model": "location.hospital", - "fields": { - "city": null, - "name": "\u53f0\u5927\u533b\u9662\u5185\u79d1\u90e8", - "unit": null - } - }, - { - "pk": 2, - "model": "location.hospital", - "fields": { - "city": null, - "name": "\u9999\u6e2f\u739b\u4e3d\u533b\u9662", - "unit": null - } - }, - { - "pk": 3, - "model": "location.hospital", - "fields": { - "city": null, - "name": "\u5317\u4eac\u4f51\u5b89\u533b\u9662\u6d88\u5316\u5185\u79d1", - "unit": null - } - }, - { - "pk": 4, - "model": "location.hospital", - "fields": { - "city": 1, - "name": "\u4e0a\u6d77\u745e\u91d1\u533b\u9662\u611f\u67d3\u79d1", - "unit": null - } - }, - { - "pk": 5, - "model": "location.hospital", - "fields": { - "city": null, - "name": "\u5df4\u9ece\u5927\u5b66", - "unit": null - } - }, - { - "pk": 6, - "model": "location.hospital", - "fields": { - "city": null, - "name": "Songklanagarind\u533b\u9662", - "unit": null - } - }, - { - "pk": 7, - "model": "location.hospital", - "fields": { - "city": null, - "name": "Erasmus MC \u5927\u5b66\u533b\u5b66\u4e2d\u5fc3", - "unit": null - } - }, - { - "pk": 1, - "model": "location.city", - "fields": { - "name": "\u4e0a\u6d77", - "nation": 1 - } - }, - { - "pk": 1, - "model": "location.nation", - "fields": { - "name": "\u4e2d\u56fd", - "img": "" - } - } -]
\ No newline at end of file diff --git a/97suifangqa/apps/recommend/models.py b/97suifangqa/apps/recommend/models.py index 0c24c67..9fe8b42 100644 --- a/97suifangqa/apps/recommend/models.py +++ b/97suifangqa/apps/recommend/models.py @@ -108,7 +108,7 @@ class ResearchIndicator(models.Model): # {{{ raise ValueError(u"Error: dataType与Indicator不符") return False elif self.dataType == self.SCOPE_TYPE: - if ind_dataType not in [ind_obj.RANGE_TYPE, ind_obj.FLOAT_RANGE_TYPE]: + if ind_dataType not in [ind_obj.RANGE_TYPE, ind_obj.FLOAT_RANGE_TYPE, ind_obj.FLOAT_TYPE]: raise ValueError(u"Error: dataType与Indicator不符") return False elif self.dataType == self.KIND_TYPE: @@ -208,7 +208,7 @@ class ResearchAtom(models.Model): scope_min = models.FloatField(u"范围下限", null=True, blank=True) scope_max = models.FloatField(u"范围上限", null=True, blank=True) # dataType: KIND - kind = models.ForeignKey("ValueKind", + kind = models.ForeignKey("indicator.ValueKind", null=True, blank=True, related_name="research_atoms", verbose_name=u"种类") ## datetime @@ -418,49 +418,6 @@ class ResearchConfig(models.Model): # }}} -class ValueKind(models.Model): # {{{ - """ - 记录系统所有可能使用到的"种类"值 - 并为需要使用"种类"值的地方提供可选范围(e.g.: recommend.ResearchAtom) - 使用统一的符号(symbol)来寻找及匹配 - """ - name = models.CharField(u"名称", max_length=30) - symbol = models.CharField(u"符号", max_length=30, - help_text=u"仅能使用字母、数字和下划线,最长30字符") - description = models.TextField(u"描述", blank=True) - - class Meta: - verbose_name_plural = u"可选种类" - - def __unicode__(self): - return u'< ValueKind: %s (%s) >' % (self.name, self.symbol) - - def save(self, **kwargs): - if self.is_valid(): - super(ValueKind, self).save(**kwargs) - else: - return self - - def is_valid(self): - # check symbol - sym_regex = re.compile(r'^[_0-9a-zA-Z]+$') - if sym_regex.search(self.symbol): - return True - else: - raise ValueError(u"仅能使用字母、数字和下划线,最长30字符") - return False - - def dump(self, **kwargs): - dump_data = { - 'id': self.id, - 'name': self.name, - 'symbol': self.symbol, - 'description': self.description, - } - return dump_data -# }}} - - # admin admin.site.register([ TreatResponse, @@ -468,6 +425,5 @@ admin.site.register([ #ResearchCombination, ResearchAtom, ResearchConfig, - ValueKind, ]) diff --git a/97suifangqa/apps/sciblog/admin.py b/97suifangqa/apps/sciblog/admin.py index 0dfb2ef..18a5490 100644 --- a/97suifangqa/apps/sciblog/admin.py +++ b/97suifangqa/apps/sciblog/admin.py @@ -2,7 +2,8 @@ from django.contrib import admin from django import forms from django.db import models -from .models import SciBlog, ResultContent, EndPoint +from .models import SciBlog, ResultContent, EndPoint, BlogAnnotation + from utils.widget import MarkitUpWidget, TinyMceWidget class ResultContentInline(admin.TabularInline): @@ -16,18 +17,35 @@ class SciBlogAdmin(admin.ModelAdmin): inlines = [ ResultContentInline, ] + filter_horizontal = ('hospital','konwledge_piece','endpoints','query') + def get_blogs(endp): - blog = endp.blogs.all()[0] - return "<a href='/admin/sciblog/sciblog/%s'>%s<a>" % (blog.id, blog.title) + blogList = endp.blogs.all() + blogListWith3 = [] + for each in blogList: + blogListWith3.append('#'+str(each.id)) + #blogsStringWith3 = "#".join(blogListWith3) + + #return "<a href='/admin/sciblog/sciblog/%s'>%s<a>" % (blog.id, blog.title) + + return blogListWith3 get_blogs.short_description = "SciBlog" -get_blogs.allow_tags = True +#get_blogs.allow_tags = True class EndPointAdmin(admin.ModelAdmin): - list_display = ('__unicode__', get_blogs) + #list_display = ('__unicode__', get_blogs) + list_display = ('__unicode__', 'type',get_blogs) + search_fields = ['content'] + + +class BlogAnnotationAdmin(admin.ModelAdmin): + list_display = ('__unicode__','no') + filter_horizontal = ('keywords',) admin.site.register(SciBlog, SciBlogAdmin) admin.site.register(EndPoint, EndPointAdmin) +admin.site.register(BlogAnnotation, BlogAnnotationAdmin)
\ No newline at end of file diff --git a/97suifangqa/apps/sciblog/fixtures/sciblogForTest.json b/97suifangqa/apps/sciblog/fixtures/sciblogForTest.json new file mode 100644 index 0000000..32dfd7a --- /dev/null +++ b/97suifangqa/apps/sciblog/fixtures/sciblogForTest.json @@ -0,0 +1,49 @@ +[ + { + "pk": 1, + "model": "sciblog.sciblog", + "fields": { + "subhead": "subtitleForTest", + "sample": [], + "readed_count": 0, + "references": [], + "catched_by": [], + "query": [], + "endpoint_content": "", + "treatment_content": "", + "baseline": [], + "title": "forTest", + "clinic_conditions": [], + "hospital": [], + "source": null, + "understanded_count": 0, + "safety": "", + "entitle": "enTitleForTest", + "konwledge_piece": [], + "method": "", + "conclusion": "", + "detectionAssay": "", + "ifvalue": 1.0, + "journal": "", + "authors": "default authors", + "abstractAE": "", + "confused_count": 0, + "collected_by": [], + "guidline": null, + "aim": "", + "publish_date": null, + "abstract_result": "", + "endpoints": [] + } + }, + { + "pk": 1, + "model": "sciblog.usercollection", + "fields": { + "lastCollectBlogTime": null, + "lastCatchBlogTime": null, + "user": 6, + "lastCollectAnnotationTime": null + } + } +]
\ No newline at end of file diff --git a/97suifangqa/apps/sciblog/fixtures_bak/initial_data.json b/97suifangqa/apps/sciblog/fixtures_bak/initial_data.json deleted file mode 100644 index 6038ffe..0000000 --- a/97suifangqa/apps/sciblog/fixtures_bak/initial_data.json +++ /dev/null @@ -1,1042 +0,0 @@ -[ - { - "pk": 1, - "model": "sciblog.sciblog", - "fields": { - "subhead": "\u5c0f\u4e09\u9633\u6162\u6027\u4e59\u809d\u60a3\u8005\u901a\u8fc7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\uff0c\u6216\u8005\u957f\u6548\u5e72\u6270\u7d20\uff0c\u6cbb\u7597\u7684\u6548\u679c\u5982\u4f55\uff1f\u526f\u4f5c\u7528\u662f\u5426\u5f88\u5927\uff1f\u548c\u62c9\u7c73\u592b\u5b9a\u76f8\u6bd4\u600e\u4e48\u6837\uff1f", - "sample": [], - "readed_count": 0, - "references": [], - "catched_by": [ - 1, - 4 - ], - "query": [ - 72, - 73, - 74, - 75 - ], - "endpoint_content": "", - "treatment_content": "\u6309\u71671\uff1a1\uff1a1\u5206\u7ec4\u3002\r\n\u7b2c\u4e00\u7ec4\uff1a\u5e72\u6270\u7d20\u5358\u836f\u7ec4\uff1a180ug\u6bcf\u5468\u4e00\u6b21\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\uff08\u6d3e\u7f57\u6b23\uff0c\u7f57\u6c0f\uff09\uff1b\r\n\u7b2c\u4e8c\u7ec4\uff1a\u5e72\u6270\u7d20\u62c9\u7c73\u592b\u5b9a\u8054\u7528\u7ec4\uff1a180ug\u6bcf\u5468\u4e00\u6b21\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\uff08\u6d3e\u7f57\u6b23\uff0c\u7f57\u6c0f\uff09\u7684\u540c\u65f6\u6bcf\u5929\u670d\u7528100mg\u62c9\u7c73\u592b\u5b9a\uff08 Epivir-HBV or Zeffix\uff0c\u845b\u5170\u7d20\u53f2\u514b\uff09\uff1b\r\n\u7b2c\u4e09\u7ec4\uff1a\u62c9\u7c73\u592b\u5b9a\u5358\u836f\u7ec4\uff1a\u6bcf\u5929\u670d\u7528100mg\u62c9\u7c73\u592b\u5b9a\uff08 Epivir-HBV or Zeffix\uff0c\u845b\u5170\u7d20\u53f2\u514b\uff09\r\n48\u5468\u7597\u7a0b\uff0c\u6cbb\u7597\u7ed3\u675f\u540e\u7ee7\u7eed\u968f\u8bbf\u89c2\u5bdf24\u5468\u3002", - "baseline": [], - "title": "\u5355\u7528\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u3001\u62c9\u7c73\u592b\u5b9a\u5355\u7528\u3001\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u4e0e\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7528\u836f\u5728\u6cbb\u7597e\u6297\u539f\u9634\u6027\u6162\u6027\u4e59\u809d\u65f6\u7684\u6548\u679c\u4e0e\u5b89\u5168\u6027", - "clinic_conditions": [ - 14 - ], - "hospital": [ - 1, - 2, - 3, - 4 - ], - "source": null, - "understanded_count": 0, - "safety": "\u4f1a\u4e0d\u4f1a\u53d1\u751fYMDD\u53d8\u5f02\uff1f\r\n\u7ed3\u675f\u6cbb\u7597\u65f6\uff0cYMDD\u53d8\u5f02\u53d1\u751f\u7387\u5728\u62c9\u7c73\u592b\u5b9a\u7ec4\u91cc\u9762\u662f18%\uff0c\u5728\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7ec4173\u540d\u60a3\u8005\u4e2d\uff0c\u53ea\u67091\u4f4d\u60a3\u8005\u53d1\u751fYMDD\u53d8\u5f02\u3002\r\n\r\n\u4e0d\u826f\u53cd\u5e94\u6709\u54ea\u4e9b\uff1f", - "entitle": "Peginterferon Alfa-2a Alone, Lamivudine Alone, and the Two in Combination in Patients with HBeAg-Negative Chronic Hepatitis B", - "konwledge_piece": [ - 1, - 2, - 3, - 24 - ], - "method": "\u672c\u6587\u6d89\u53ca\u7684\u7814\u7a76\u662f\u968f\u673a\u3001\u90e8\u5206\u53cc\u76f2\u7814\u7a76\uff0c\u4ece\u5168\u7403\u591a\u4e2d\u5fc3\uff0813\u4e2a\u56fd\u5bb654\u4e2a\u4e2d\u5fc3\uff0c\u6709\u4e00\u90e8\u5206\u5728\u4e9a\u6d32\u548c\u6b27\u6d32\uff09\u62db\u52df\u60a3\u8005\u3002 \r\n\r\n\u7814\u7a76\u5206\u6790\u4e86\u4e09\u7ec4\u4eba\u7fa4\uff08\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u3001\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u4e0e\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7528\u836f\u3001\u62c9\u7c73\u592b\u5b9a\u5355\u836f\u6cbb\u7597\uff09\u7684\u6cbb\u7597\u540e\u60c5\u51b5\u3002\u4e09\u7ec4\u4eba\u7fa4\u90fd\u662f48\u5468\u7684\u6cbb\u7597\u7597\u7a0b\uff0c\u6cbb\u7597\u540e\u7814\u7a76\u4eba\u5458\u4f1a\u7ee7\u7eed\u968f\u8bbf\u8ddf\u8e2a24\u5468\u75c5\u60c5\u53d1\u5c55\u3002", - "conclusion": "e\u6297\u539f\u9634\u6027\u7684\u6162\u6027\u4e59\u809d\u60a3\u8005\u7684\u6301\u7eed\u5e94\u7b54\u7387\u5728\u542b\u6709\u5e72\u6270\u7d20\u7684\u6cbb\u7597\u7ec4\u4e2d\u7684\u60a3\u8005\u660e\u663e\u9ad8\u4e8e\u4ec5\u7528\u62c9\u7c73\u592b\u5b9a\u7684\u60a3\u8005\u3002\r\n\r\n\u6301\u7eed\u5e94\u7b54\u6307\u7684\u662f\u505c\u836f24\u5468\u5468\u540e\u4ecd\u6709\u5e94\u7b54\u3002\r\n\r\n\u5728\u5e72\u6270\u7d20\u7684\u6cbb\u7597\u57fa\u7840\u4e0a\u52a0\u4e0a\u62c9\u7c73\u592b\u5b9a\u8fdb\u884c\u8054\u5408\u4f5c\u7528\uff0c\u76f8\u5bf9\u4e8e\u53ea\u7528\u5e72\u6270\u7d20\u6cbb\u7597\u5e76\u6ca1\u6709\u63d0\u9ad8\u4ec0\u4e48\u6548\u679c\u3002", - "detectionAssay": "", - "ifvalue": 11.0, - "journal": "NEJM", - "authors": "Patrick Marcellin , M.D., George K.K. Lau, M.D., Ferruccio Bonino, M.D., Patrizia Farci, M.D., Stephanos Hadziyannis, M.D., Rui Jin, M.D., Zhi-Meng Lu, M.D., Teerha Piratvisuth, M.D., Georgios Germanidis, M.D., Cihan Yurdaydin, M.D., Moises Diago, M.D., Selim Gurel, M.D., Ming-Yang Lai, M.D., Peter Button, M.Sc., and Nigel Pluck, M.D., for the Peginterferon Alfa-2a HBeAg-Negative Chronic Hepatitis B Study Group", - "abstractAE": "\u5173\u4e8e\u4e0d\u826f\u53cd\u5e94\uff0c\u5305\u62ec\u53d1\u70ed\u3001\u4e4f\u529b\u3001\u808c\u75db\u3001\u5934\u75db\u5728\u5185\u7684\u4e0d\u826f\u53cd\u5e94\u5728\u542b\u6709\u5e72\u6270\u7d20\u7684\u6cbb\u7597\u7ec4\u4eba\u7fa4\u4e2d\u8981\u7a0d\u5fae\u5927\u4e00\u4e9b\u3002", - "confused_count": 0, - "collected_by": [ - 1, - 4 - ], - "guidline": 1, - "aim": "<p class=\"highlight\">\u672c\u7814\u7a76\u6240\u89c2\u6d4b\u7684\u662f\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\uff08\u5355\u836f\u6cbb\u7597\u3001\u5e72\u6270\u7d20\u4e0e\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u6cbb\u7597\u3001\u62c9\u7c73\u592b\u5b9a\u5355\u836f\u6cbb\u7597\u8fd93\u4e2d\u4e0d\u540c\u7684\u65b9\u6cd5\u6cbb\u7597e\u6297\u539f\uff08HBeAg\uff09\u9634\u6027\u6162\u6027\u4e59\u809d\u7684\u6548\u679c\u3001\u5b89\u5168\u6027\u3002</p>", - "publish_date": "2005-03-27", - "abstract_result": "24\u5468\u968f\u8bbf\u671f\u7ed3\u675f\u4ee5\u540e\uff0c\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u7684\u590d\u5e38\u7387\uff08\u6062\u590d\u6b63\u5e38\u503c\u4ee5\u5185\u7684\u51e0\u7387\uff09\u6216\u8005\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09 DNA\u6c34\u5e73\u964d\u4f4e\u523020,000\u62f7\u8d1d/mL\u7684\u51e0\u7387\u5728\u63a5\u53d7\u542b\u6709\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\uff08 \u4e0b\u6587\u6b64\u7c7b\u5e72\u6270\u7d20\u90fd\u7b80\u79f0\u4e3a\u201c\u5e72\u6270\u7d20\u201d\uff0c\u5982\u6709\u8bf4\u5230\u666e\u901a\u5e72\u6270\u7d20\u4f1a\u7279\u522b\u6307\u51fa\uff09\u7684\u6cbb\u7597\u7ec4\u4eba\u7fa4\u4e2d\u4f1a\u66f4\u9ad8\uff08\u6bd4\u8d77\u90a3\u4e9b\u4ec5\u7528\u62c9\u7c73\u592b\u5b9a\u7684\u60a3\u8005\uff09\u3002\r\n\r\n\u5728\u7ed3\u675f\u6cbb\u759724\u5468\u540e\uff0c\u75c5\u6bd2\u6c34\u5e73\u964d\u5230400\u62f7\u8d1d/mL\u662f\u5f88\u591a\u4eba\u8ffd\u6c42\u7684\u6cbb\u7597\u7ec8\u70b9\uff0c\u5728\u542b\u6709\u5e72\u6270\u7d20\u7684\u6cbb\u7597\u7ec4\u4eba\u7fa4\u4e2d\u5927\u6982\u670920%\u5de6\u53f3\u83b7\u5f97\u4e86\u8fd9\u6837\u7684\u75c5\u6bd2\u5b66\u5e94\u7b54\uff0c\u4ec5\u7528\u62c9\u7c73\u592b\u5b9a\u7684\u60a3\u8005\u8fd9\u4e2a\u6570\u5b57\u53ea\u67097%\u3002\r\n\r\n\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u7684\u6e05\u9664\uff0c\u53ea\u670912\u4e2a\u4eba\u53d1\u751f\uff08\u90fd\u5728\u542b\u6709\u5e72\u6270\u7d20\u7684\u6cbb\u7597\u7ec4\u4eba\u7fa4\u4e2d\uff0c\u5360\u6bd43.4%\uff09\uff0c\u4ec5\u7528\u62c9\u7c73\u592b\u5b9a\u7684\u6cbb\u7597\u7ec4\u4e2d\u6ca1\u6709\u4eba\u83b7\u5f97HBsAg\u6e05\u9664\u3002", - "endpoints": [ - 1, - 2, - 3, - 4, - 5, - 6 - ] - } - }, - { - "pk": 2, - "model": "sciblog.sciblog", - "fields": { - "subhead": "HBeAg\u9634\u6027\u6162\u4e59\u809d\u60a3\u8005\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u6cbb\u7597\u65f6\uff0c\u65e9\u671f\u53ef\u4ee5\u901a\u8fc7HBsAg\u548cHBV DNA\u7684\u5b9a\u91cf\u6c34\u5e73\u6765\u9884\u6d4b\u4ee5\u540e\u7684\u5e94\u7b54\u6548\u679c", - "sample": [], - "readed_count": 0, - "references": [ - 2 - ], - "catched_by": [], - "query": [], - "endpoint_content": "\u672c\u7814\u7a76\u6839\u636e\u6b27\u6d32\u809d\u75c5\u534f\u4f1a\u6700\u65b0\u6307\u5357\u4e2d\u5bf9\u4e8e\u6cbb\u7597\u7ec8\u70b9\u4ee5\u53ca\uff08\u805a\u4e59\u4e8c\u9187\uff09\u5e72\u6270\u7d20\u6cbb\u7597\u7684\u75c5\u6bd2\u5b66\u5e94\u7b54\u7684\u5b9a\u4e49\u6765\u786e\u5b9a\u7814\u7a76\u7ec8\u70b9SR\u3002\u672c\u6587\u4e2d\uff0cHBeAg\u9634\u6027\u6162\u6027\u4e59\u809d\u60a3\u8005\u83b7\u5f97SR(sustained response\uff0c\u6301\u7eed\u5e94\u7b54\uff09\u662f\u6307\uff1a\r\n\u968f\u8bbf\u7ec8\u70b9\uff08\u7b2c72\u5468\uff09\u7684\u65f6\u5019\uff0cHBV DNA\u6c34\u5e73\u5c0f\u4e8e10000\u62f7\u8d1d/ml\uff08\u76f8\u5f53\u4e8e1714 IU/mL \uff09\r\n\u968f\u8bbf\u7ec8\u70b9\uff08\u7b2c72\u5468\uff09\u7684\u65f6\u5019\uff0cALT\u6062\u590d\u6b63\u5e38", - "treatment_content": "\u60a3\u8005\u6309\u71671\uff1a1\u6bd4\u4f8b\u88ab\u968f\u673a\u5206\u914d\u5230\u4e24\u7ec4\u4eba\u5f53\u4e2d\uff0c\u4e00\u7ec4\u63a5\u53d7180ug/\u6bcf\u5468\u7684\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u8054\u5408\u5229\u5df4\u97e6\u67971000mg/\u6bcf\u5929\uff08\u4f53\u91cd\u5c0f\u4e8e75\u5343\u514b\uff09\u6216\u80051200mg/\u6bcf\u5929\uff08\u4f53\u91cd>=75\u5343\u514b\u7684\uff09\u6cbb\u7597\uff0c\u8fd8\u6709\u4e00\u7ec4\u662f\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20180ug/\u6bcf\u5468\u7684\u5358\u836f\u6cbb\u7597\u3002\r\n\r\n48\u5468\u7597\u7a0b\uff0c\u6cbb\u7597\u7ed3\u675f\u540e\u7ee7\u7eed\u968f\u8bbf\u89c2\u5bdf24\u5468\u3002\r\n\r\n\u75c5\u60a3\u6bcf\u4e2a\u6708\u53c2\u52a0\u4e00\u6b21\u95e8\u8bca\u3002\r\n\r\n\u8868\u9762\u6297\u539f\u5b9a\u91cf\u68c0\u6d4b\u65f6\u95f4\u70b9\uff1a\u6cbb\u7597\u671f\u95f4\u7b2c4\u30018\u300112\u300124\u300136\u300148\u5468\uff0c\u968f\u8bbf\u671f\u95f4\u7b2c60\u300172\u5468\u3002", - "baseline": [], - "title": "HBeAg\u9634\u6027\u6162\u4e59\u809d\u60a3\u8005\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u6cbb\u7597\u65f6\uff0c\u65e9\u671f\u53ef\u4ee5\u901a\u8fc7HBsAg\u548cHBV DNA\u7684\u5b9a\u91cf\u6c34\u5e73\u6765\u9884\u6d4b\u4ee5\u540e\u7684\u5e94\u7b54\u6548\u679c", - "clinic_conditions": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ], - "hospital": [], - "source": null, - "understanded_count": 0, - "safety": "", - "entitle": "Early on-treatment prediction of response to peginterferon alfa-2a for hbeag-negative chronic hepatitis b using hbsag and hbv dna levels", - "konwledge_piece": [ - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "method": "\u672c\u7814\u7a76\u60a3\u8005\u90fd\u662f\u63a5\u53d7PEG\u5e72\u6270\u7d20\u6cbb\u7597\u3002", - "conclusion": "\u9488\u5bf9\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\u7684HBeAg\u9634\u6027\u6162\u4e59\u809d\u60a3\u8005\uff0c\u672c\u7814\u7a76\u5b66\u8005\u5efa\u8bae\u4e86\u4e00\u4e2a\u5728\u6cbb\u7597\u5f00\u59cb\u540e\u7b2c12\u5468\u65f6\u5224\u65ad\u662f\u5426\u9700\u8981\u505c\u836f\u7684\u51c6\u5219\uff0c\u8fd9\u4e2a\u51c6\u5219\u57fa\u4e8e\u8840\u6e05\u4e2dHBV DNA\u548cHBsAg\u4e24\u4e2a\u6307\u6807\u4ece\u57fa\u7ebf\u5f00\u59cb\u7684\u4e0b\u964d\u6c34\u5e73\u3002\u6362\u8a00\u4e4b\uff0c\u4e34\u5e8a\u4e2d\uff0c\u540c\u65f6\u5b9a\u91cf\u68c0\u6d4bHBsAg\u548cHBV DNA\u80fd\u591f\u8c03\u6574\u805a\u4e59\u4e8c\u9187\u6cbb\u7597HBeAg\u9634\u6027\u6162\u4e59\u809d\u7684\u7b56\u7565\u3002\r\n\r\n\u5bf9\u4e8e\u4ee5\u4e0b\u60a3\u8005\uff1a\u6cbb\u7597\u7b2c12\u5468\u65f6\uff0c\u76f8\u6bd4\u57fa\u7ebf\uff08\u6cbb\u7597\u5f00\u59cb\uff09\uff0c\u8840\u6e05HBsAg\u6c34\u5e73\u6ca1\u6709\u4e0b\u964d\u800c\u4e14HBV DNA \u4e0b\u964d<2 log \u62f7\u8d1d/mL \uff0c\u5e94\u8be5\u505c\u6b62\u5e72\u6270\u7d20\u7684\u6cbb\u7597\uff0c\u6362\u7528\u5176\u4ed6\u6cbb\u7597\u65b9\u6cd5\u3002", - "detectionAssay": "\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u5b9a\u91cf\u68c0\u6d4b\uff1a\u96c5\u57f9 Architect HBsAg assay (Abbott Laboratories\uff09\u63d0\u4f9b\uff0c \u7ebf\u6027\u8303\u56f4\u662f0.05-250 IU/mL\r\n\u4e59\u809d\u75c5\u6bd2\uff08HBV DNA\uff09\u68c0\u6d4b\uff1a\u7f57\u6c0f\u8bca\u65ad TaqMan HBV assay, Roche Diagnostics\u63d0\u4f9b\uff0c\u68c0\u6d4b\u4e0b\u965035copies/mL\r\n\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u68c0\u6d4b\uff1a\u5728\u7814\u7a76\u5f53\u5730\u533b\u9662\u6309\u7167\u6807\u51c6\u64cd\u4f5c\r\n\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09\u57fa\u56e0\u578b\u68c0\u6d4b\uff1a INNO-LiPA assay (Innogenetics)\r\n\u809d\u7a7f\u523a\u68c0\u6d4b\uff1a\u6bcf\u4e2a\u60a3\u8005\u90fd\u6709\u5165\u7ec4\u524d\u4e00\u5e74\u5185\u7684\u809d\u7a7f\u7ed3\u679c\uff0c\u7528Ishak\u8bc4\u5206\u7cfb\u7edf\u6765\u8868\u793a\u809d\u810f\u708e\u75c7\u7684\u7b49\u7ea7\uff080-18\u5206\uff09\u548c\u809d\u810f\u7ea4\u7ef4\u5316\u7684\u7a0b\u5ea6\uff080-6\u5206\uff09", - "ifvalue": 11.0, - "journal": "Hepatology", - "authors": "Harry Janssen , Vincent Rijckborst\uff0cBettina E. Hansen, Yilmaz Cakaloglu, Peter Ferenci, Fehmi Tabak, Meral Akdogan, Krzysztof Simon, Ulus S. Akarca, Robert Flisiak, Elke Verhey, Anneke J. Van Vuuren, Charles A. B. Boucher, Martijn J. ter Borg Harry L. A. Janssen ", - "abstractAE": "", - "confused_count": 0, - "collected_by": [], - "guidline": null, - "aim": "\u8fd9\u9879\u7814\u7a76\u662f\u7814\u7a76\u8005\u4e3b\u5bfc\u578b\u3001\u591a\u4e2d\u5fc3\u3001\u968f\u673a\u3001\u53cc\u76f2\u3001\u5bf9\u7167\u7814\u7a76\uff0c\u8be5\u7814\u7a76\u9075\u5b88\u8d6b\u5c14\u8f9b\u57fa\u5ba3\u8a00\u3002\r\n1.\u7814\u7a76\u7684\u76ee\u7684\u662f\u4e3a\u5f04\u6e05\u695a\u5728\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alpha-2a\u6cbb\u7597\u7684e\u6297\u539f\u9634\u6027\u6162\u4e59\u809d\u60a3\u8005\u4e2d\uff0c\u6cbb\u7597\u524d\u671f\u5b9a\u91cf\u7684\u8840\u6e05HBsAg\u542b\u91cf\u5728\u9884\u6d4b\u4eca\u540e\u6301\u7eed\u5e94\u7b54\u6548\u5e94\u65f6\u7684\u4f5c\u7528\u3002\r\n2. \u9488\u5bf9\u8fd9\u90e8\u5206\u60a3\u8005\u6765\u627e\u5230\u53ef\u9760\u7684\u6cbb\u7597\u6307\u5357\u65b9\u9488\u6765\u6307\u5bfc\u505c\u836f\u3002", - "publish_date": "2010-04-19", - "abstract_result": "\u56de\u987e\u8be5\u7814\u7a76\u4e2d\u7684\u6301\u7eed\u5e94\u7b54\u8005\u5728\u6cbb\u7597\u671f\u95f4\u7684\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u6c34\u5e73\u7684\u53d8\u5316\uff0c\u4ece\u6cbb\u75978\u5468\u5f00\u59cb\uff0c\u8fd9\u4e9b\u5e94\u7b54\u8005\u7684HBsAg\u7684\u6c34\u5e73\u660e\u663e\u4e0b\u964d\uff1b\u76f8\u53cd\uff0c\u7ed3\u675f\u6cbb\u7597\u540e\u6ca1\u6709\u53d1\u751f\u6301\u7eed\u5e94\u7b54\u7684\u60a3\u8005\u6cbb\u7597\u671f\u95f4HBsAg\u6c34\u5e73\u53ea\u6709\u8f7b\u5fae\u7684\u4e0b\u964d\u3002\r\n\r\n\u6839\u636e\u7edf\u8ba1\u5b66\u5904\u7406\uff0c\u6216\u8005\u8bf4\u901a\u8fc7\u53d7\u8bd5\u8005\u5de5\u4f5c\u66f2\u7ebf\u7684AUC\u5224\u65ad\uff0c\u4ec5\u4ec5\u4f9d\u9760HBsAg\u7684\u4e0b\u964d\u9884\u6d4b\u6301\u7eed\u5e94\u7b54\u6709\u9650\u5236\u3002\r\n\r\n\u628aHBsAg\u4e0b\u964d\u548c\u4e59\u809d\u75c5\u6bd2\uff08HBV DNA\uff09\u4e0b\u964d\u7ed3\u5408\u8d77\u6765\u80fd\u591f\u6700\u597d\u5730\u9884\u6d4b\u6301\u7eed\u5e94\u7b54\u3002\r\n\r\n\u672c\u6587\u88ab\u89c2\u5bdf\u7684\u901a\u8fc7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\u7684e\u6297\u539f\u9634\u6027\u6162\u4e59\u809d\u60a3\u8005\u4e2d\uff0c\u6cbb\u7597\u671f\u95f4HBsAg\u6ca1\u6709\u51fa\u73b0\u4e0b\u964d\u5e76\u4e14DNA\u6c34\u5e73\u4e0b\u964d\u5c0f\u4e8e2\u4e2alog \u62f7\u8d1d/ml\u7684\u4eba\uff0c\u6cbb\u7597\u7ed3\u675f\u540e\u90fd\u6ca1\u6709\u51fa\u73b0\u6301\u7eed\u5e94\u7b54\uff0c\u8fd9\u90e8\u5206\u60a3\u8005\u5360\u672c\u6587\u88ab\u89c2\u5bdf\u60a3\u800520%\u3002\r\n\r\n\u76f8\u53cd\uff0c\u5982\u679c12\u5468\u540c\u65f6\u51fa\u73b0HBsAg\u4e0b\u964d\u4ee5\u53caDNA\u6c34\u5e73\u4e0b\u964d\u5927\u4e8e2\u4e2alog \u62f7\u8d1d/ml\u60a3\u8005\u6700\u7ec8\u51fa\u73b0\u6301\u7eed\u5e94\u7b54\u7684\u51e0\u7387\u4e3a39%\uff08\u76f8\u5bf9\u672c\u7814\u7a76\u5176\u4ed6\u7ec4\u522b\u6700\u9ad8\uff09\uff0c\u8fd9\u90e8\u5206\u60a3\u8005\u5360\u672c\u7814\u7a76\u6574\u4e2a\u4eba\u7fa427%\u3002", - "endpoints": [ - 1, - 7 - ] - } - }, - { - "pk": 3, - "model": "sciblog.sciblog", - "fields": { - "subhead": "\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u6cbb\u7597e\u6297\u539f\u9633\u6027\u6162\u6027\u4e59\u809d\uff0c\u8868\u9762\u6297\u539f\u6cbb\u7597\u671f\u95f412\u5468\u300124\u5468\u6c34\u5e73\u53ef\u80fd\u9884\u793a\u6301\u4e45\u5e94\u7b54", - "sample": [], - "readed_count": 0, - "references": [ - 3 - ], - "catched_by": [ - 1 - ], - "query": [], - "endpoint_content": "\u672c\u6587\u6cbb\u7597\u5e94\u7b54\u5b9a\u4e49\u4e3a\uff1a\u6cbb\u7597\u7ed3\u675f6\u4e2a\u6708\u540ee\u6297\u539f\uff08HBeAg\uff09\u53d1\u751f\u8840\u6e05\u5b66\u8f6c\u6362\u3002", - "treatment_content": "\u88ab\u7814\u7a76\u8005\uff08399\u4eba\uff09\u4e2d\uff0c \u4e00\u534a\u4eba\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\uff08\u6bcf\u5468180ug\uff09\uff0c\u53e6\u4e00\u534a\u4eba\u63a5\u53d7\u8054\u5408\u6cbb\u7597\uff0c\u5373\u5728\u7b2c\u4e00\u7ec4\u6cbb\u7597\u65b9\u6848\u7684\u57fa\u7840\u4e0a\u518d\u52a0\u7528\u62c9\u7c73\u592b\u5b9a\uff08\u6bcf\u5929100mg\uff09\uff0c\u4e24\u7ec4\u6cbb\u7597\u90fd\u662f\u6301\u7eed48\u5468\u3002\r\n\u968f\u8bbf\u65f6\u95f4\u70b9\uff1a\u57fa\u7ebf\uff08\u6cbb\u7597\u5f00\u59cb\uff09\u3001\u6cbb\u7597\u5f00\u59cb\u540e12\u5468\uff0c24\u5468\uff0c48\u5468\uff08\u6cbb\u7597\u7ed3\u675f\uff09", - "baseline": [], - "title": "[\u56de\u987e\u6027\u5206\u6790]\u8868\u9762\u6297\u539f\u4e0e\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u6cbb\u7597e\u6297\u539f\u9633\u6027\u6162\u4e59\u809d\u60a3\u8005\u6301\u4e45\u5e94\u7b54\u7684\u5173\u7cfb", - "clinic_conditions": [], - "hospital": [ - 4, - 5, - 6 - ], - "source": null, - "understanded_count": 0, - "safety": "", - "entitle": "Hepatitis B surface antigen: association with sustained response to peginterferon alfa-2a in hepatitis B e antigen-positive patients", - "konwledge_piece": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23 - ], - "method": "\u672c\u7814\u7a76\u662f\u9488\u5bf9\u4e00\u4e2a\u5927\u578b\u7684\u3001\u968f\u673a\u7814\u7a76\u7684\u56de\u987e\u6027\u5206\u6790\u3002\u56e0\u4e3a\u672c\u6587\u8981\u89c2\u5bdf\u60a3\u8005\u5728\u6cbb\u7597\u671f\u95f4\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u7684\u53d8\u5316\uff0c\u6240\u4ee5\u56de\u987e\u91c7\u7528\u7684\u90fd\u662f\u4fdd\u7559\u6709\u8868\u9762\u6297\u539f\u968f\u8bbf\u8bb0\u5f55\u7684\u60a3\u8005\u7684\u6570\u636e\uff0c\u539f\u6765\u7684\u5927\u578b\u7814\u7a76\u6709542\u4eba\uff0c\u672c\u6587\u5206\u6790\u7528\u5230\u7684\u6570\u636e\u6709399\u4eba\u3002\u8fd9399\u4eba\u4e2d\uff0c\u4e00\u534a\u4eba\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u6cbb\u7597\uff08\u6bcf\u5468180ug\uff09\uff0c\u53e6\u4e00\u534a\u4eba\u63a5\u53d7\u8054\u5408\u6cbb\u7597\uff0c\u5c31\u662f\u5728\u7b2c\u4e00\u7ec4\u6cbb\u7597\u65b9\u6848\u7684\u57fa\u7840\u4e0a\u518d\u52a0\u7528\u62c9\u7c73\u592b\u5b9a\uff08\u6bcf\u5929100mg\uff09\uff0c\u4e24\u7ec4\u6cbb\u7597\u90fd\u662f\u6301\u7eed48\u5468\u3002", - "conclusion": "\u901a\u8fc7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u6cbb\u7597e\u6297\u539f\uff08HBeAg\uff09\u9633\u6027\u6162\u4e59\u809d\u60a3\u8005\u7684\u65f6\u5019\uff0c\u6cbb\u7597\u671f\u95f4\u8840\u6e05\u4e2d\u8868\u9762\u6297\u539f\u7684\u6c34\u5e73\u4e0e\u6cbb\u7597\u7ed3\u675f\u540e\u6301\u4e45\u5e94\u7b54\u6709\u5173\u8054\u3002\u57fa\u7ebf\u8868\u9762\u6297\u539f\u6c34\u5e73\u548c\u6301\u4e45\u5e94\u7b54\u662f\u5426\u6709\u5173\u7cfb\u672c\u7814\u7a76\u4e0d\u8db3\u4ee5\u8bc1\u5b9e\u3002\u4f46\u5b9a\u91cf\u68c0\u6d4b\u8868\u9762\u6297\u539f\u6216\u8bb8\u53ef\u4ee5\u5e2e\u52a9\u60a3\u8005\u6307\u5bfc\u4eca\u540e\u7684\u6cbb\u7597\u65b9\u6848\u3002[2]", - "detectionAssay": "\u8868\u9762\u6297\u539f(HBsAg)\u6c34\u5e73\u7684\u5b9a\u91cf\u68c0\u6d4b\uff1a Abbott Architect HBsAg assay (Abbott Laboratories, IL, USA\uff09\r\nHBV DNA\u6c34\u5e73\u68c0\u6d4b\uff1a Amplicor HBV test (\u7f57\u6c0f\u5206\u5b50\u8bca\u65ad Roche Molecular Diagnostics, Pleasanton, CA, USA\uff09", - "ifvalue": 2.6, - "journal": "Hepatol Int. ", - "authors": "default authors", - "abstractAE": "<br data-mce-bogus=\"1\">", - "confused_count": 0, - "collected_by": [ - 1, - 2 - ], - "guidline": null, - "aim": "\u5728\u4f7f\u7528\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u8fdb\u884c\u6cbb\u7597e\u6297\u539f\uff08HBeAg\uff09\u9633\u6027\u6162\u6027\u4e59\u578b\u809d\u708e\u7684\u65f6\u5019\uff0c\u6cbb\u7597\u7ed3\u675f\u540e6\u4e2a\u6708\u5982\u679c\u53d1\u751fe\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\uff0c\u90a3\u5c31\u9884\u793a\u7740\u505c\u836f\u540e\u957f\u671f\u968f\u8bbf\u671f\u95f4\u8868\u9762\u6297\u539f\u7684\u6e05\u9664\u7387\u4f1a\u63d0\u9ad8\u3002\u800c\u672c\u6587\u5b66\u8005\u628a\u5173\u6ce8\u70b9\u653e\u5728\u4e86\u53e6\u4e00\u4e2a\u6307\u6807--\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u4e0a\uff0c\u6240\u7814\u7a76\u7684\u8bdd\u9898\u662f\u5728\u6cbb\u7597\u671f\u95f4\u7684\u65f6\u5019\u901a\u8fc7\u5b9a\u91cf\u68c0\u6d4b\u8868\u9762\u6297\u539f\u80fd\u5426\u4e5f\u53ef\u4ee5\u9884\u6d4b\u6cbb\u7597\u7ed3\u675f\u540e\u7684\u5e94\u7b54\u3002", - "publish_date": "2011-01-05", - "abstract_result": "\u6cbb\u7597\u7ed3\u675f\u540e\u83b7\u5f97\u6cbb\u7597\u5e94\u7b54\u7684\u60a3\u8005\u57fa\u7ebf\u65f6\u8868\u9762\u6297\u539f\u7684\u6c34\u5e73\uff0c\u6bd4\u8d77\u90a3\u4e9b\u6ca1\u6709\u83b7\u5f97\u5e94\u7b54\u7684\u60a3\u8005\u7684\u57fa\u7ebf\u8868\u9762\u6297\u539f\u6c34\u5e73\u8981\u4f4e\u3002\uff083.97 log10 IU/mL \u6bd4 4.21 log10IU/mL\uff09\u3002\u5e76\u4e14\u83b7\u5f97\u5e94\u7b54\u7684\u60a3\u8005\u5728\u6574\u4e2a\u6cbb\u7597\u671f\u95f4>\u9762\u6297\u539f\uff08HBsAg\uff09\u4e0b\u964d\u7a0b\u5ea6\u66f4\u5927\u3002\r\n\u5728\u6cbb\u7597\u5f00\u59cb\u540e\u7b2c12\u5468\u8868\u9762\u6297\u539f\u7684\u503c\u4e0b\u964d\u52301,500IU/mL\u4ee5\u4e0b\u7684\u60a3\u8005\uff0c\u6cbb\u7597\u7ed3\u675f\u540ee\u6297\u539f\uff08HBeAg\uff09\u8840\u6e05\u5b66\u8f6c\u6362\u7387\u4e3a56.7%\uff1b \r\n\u572824\u5468\u8868\u9762\u6297\u539f\u7684\u503c\u4e0b\u964d\u52301,500IU/mL\u4ee5\u4e0b\u7684\u60a3\u8005\uff0c\u6cbb\u7597\u7ed3\u675f\u540ee\u6297\u539f\uff08HBeAg\uff09\u8840\u6e05\u5b66\u8f6c\u6362\u7387\u4e3a54.4%\u3002\u5982\u679c\u5728\u6cbb\u7597\u5f00\u59cb\u540e12\u5468\u6216\u800524\u5468\uff0c\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u6d4b\u5f97\u66f4\u9ad8\u7684\u503c\uff0c\u6bd4\u59821,500\u523020,000IU/mL\u6216\u8005\u5927\u4e8e20,000IU/mL\uff0c\u90a3\u4e48\u6cbb\u7597\u540e\u83b7\u5f97e\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\u7684\u51e0\u7387\u8981\u66f4\u4f4e\u3002\uff08\u524d\u8005\u4e3a32.3%\uff0c\u540e\u8005\u4e3a15.4%\uff09", - "endpoints": [ - 8, - 9, - 10 - ] - } - }, - { - "pk": 4, - "model": "sciblog.sciblog", - "fields": { - "subhead": "e\u6297\u539f\u9633\u6027\u6162\u4e59\u809d\u60a3\u8005\u63a5\u53d7\u805a\u4e8c\u4e59\u9187\u5e72\u6270\u7d20alfa\u6cbb\u7597\u524d\u54ea\u4e9b\u8d77\u59cb\u56e0\u7d20\u53ef\u4ee5\u9884\u6d4b\u672a\u6765\u7597\u6548\u597d\u4e0e\u574f", - "sample": [], - "readed_count": 0, - "references": [], - "catched_by": [], - "query": [], - "endpoint_content": "", - "treatment_content": "\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa\u6cbb\u7597\u7684e\u6297\u539f\u6162\u4e59\u809d\u60a3\u8005\u4e2d\u6700\u6709\u53ef\u80fd\u83b7\u5f97\u6301\u4e45\u5e94\u7b54\u7684\u4eba\u6709\uff1a\r\n<ul><li>\u57fa\u7ebf\u9ad8\u8c37\u4e19\u8f6c\u6c28\u9176\u6c34\u5e73\u6216\u8005\u4f4eHBV DNA\u6c34\u5e73\u7684HBV\u57fa\u56e0\u578b\u4e3aA\u578b\u7684\u60a3\u8005\uff1b</li>\r\n<li>\u57fa\u7ebf\u9ad8\u8c37\u4e19\u8f6c\u6c28\u9176\u6c34\u5e73\u4e14HBV DNA\u4f4e\u6c34\u5e73\u7684B\u3001C\u578b\u60a3\u8005\u3002</li></ul>\r\nD\u578b\u60a3\u8005\u83b7\u5f97\u6301\u4e45\u5e94\u7b54\u7684\u51e0\u7387\u4f4e\u3002\r\n\u8be5\u7814\u7a76\u63d0\u4f9b\u4e86\u4e00\u4e2a\u5de5\u5177\u6765\u8ba1\u7b97\u901a\u8fc7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597e\u6297\u539f\uff08HBeAg\uff09\u9633\u6027\u60a3\u8005\u83b7\u5f97\u6301\u7eed\u5e94\u7b54\u7684\u51e0\u7387\u3002\u7814\u7a76\u5efa\u8bae\u4e86\u51e0\u4e2a\u91cd\u8981\u7684\u4eba\u7fa4\u5e94\u8be5\u8003\u8651\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\u3002\r\n", - "baseline": [], - "title": "\u80fd\u591f\u9884\u6d4b\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa\u6cbb\u7597e\u6297\u539f\u9633\u6027\u6162\u6027\u4e59\u578b\u809d\u708e\u5e94\u7b54\u7ed3\u679c\u7684\u56e0\u5b50", - "clinic_conditions": [], - "hospital": [ - 7 - ], - "source": null, - "understanded_count": 0, - "safety": "", - "entitle": "Factors That Predict Response of Patients With Hepatitis B e Antigen\u2013Positive Chronic Hepatitis B to Peginterferon-Alfa", - "konwledge_piece": [ - 25, - 26, - 27, - 28 - ], - "method": "\u8be5\u7814\u7a76\u4e2d\u6709542\u4f4d\u60a3\u8005\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u6bcf\u5468180ug\u957f\u8fbe48\u5468\u7684\u6cbb\u7597\uff0c\u53e6\u5916\u6709266\u4f4d\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2b\u6bcf\u5468100ug\u957f\u8fbe52\u5468\u7684\u6cbb\u7597\u3002\u6700\u7ec8\u62ff\u6765\u505a\u6570\u636e\u5206\u6790\u7684\u60a3\u8005\u6709721\u4f4d\uff08\u7531\u4e8e\u6570\u636e\u7f3a\u5931\u7b49\u5ba2\u89c2\u539f\u56e0\uff09\u3002\u53e6\u5916\u79d1\u7814\u4e2d\u5e38\u7528\u7684\u6570\u7406\u7edf\u8ba1\u65b9\u6cd5\u8bf8\u5982\u903b\u8f91\u56de\u5f52\u5206\u6790\u65b9\u6cd5\u7528\u6765\u8bc1\u5b9e\u6301\u4e45\u5e94\u7b54\u7684\u56e0\u5b50\uff0c\u4ece\u800c\u8be5\u7814\u7a76\u8fd8\u5efa\u7acb\u4e86\u591a\u53d8\u91cf\u7684\u9884\u6d4b\u7597\u6548\u7684\u6570\u5b66\u6a21\u578b\uff0c\u8fd9\u662f\u672c\u6587\u6700\u5927\u7684\u4eae\u70b9\u3002", - "conclusion": "\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa\u6cbb\u7597\u7684e\u6297\u539f\u6162\u4e59\u809d\u60a3\u8005\u4e2d\u6700\u6709\u53ef\u80fd\u83b7\u5f97\u6301\u4e45\u5e94\u7b54\u7684\u4eba\u6709\uff1a\r\n<ul><li>\u57fa\u7ebf\u9ad8\u8c37\u4e19\u8f6c\u6c28\u9176\u6c34\u5e73\u6216\u8005\u4f4eHBV DNA\u6c34\u5e73\u7684HBV\u57fa\u56e0\u578b\u4e3aA\u578b\u7684\u60a3\u8005\uff1b</li>\r\n<li>\u57fa\u7ebf\u9ad8\u8c37\u4e19\u8f6c\u6c28\u9176\u6c34\u5e73\u4e14HBV DNA\u4f4e\u6c34\u5e73\u7684B\u3001C\u578b\u60a3\u8005\u3002</li></ul>\r\nD\u578b\u60a3\u8005\u83b7\u5f97\u6301\u4e45\u5e94\u7b54\u7684\u51e0\u7387\u4f4e\u3002", - "detectionAssay": "", - "ifvalue": 11.68, - "journal": "Gastroenterology", - "authors": "Harry Janssen , Erik H.C.J.\u00a0Buster, Bettina E.\u00a0Hansen, George K.K.\u00a0Lau, Teerha\u00a0Piratvisuth, Stefan\u00a0Zeuzem, Ewout W.\u00a0Steyerberg", - "abstractAE": "\u672c\u6587\u672a\u6d89\u53ca\u526f\u4f5c\u7528\u7684\u8be6\u7ec6\u8ba8\u8bba\u3002", - "confused_count": 0, - "collected_by": [], - "guidline": null, - "aim": "\u901a\u8fc7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa\u6cbb\u7597\u6162\u4e59\u809d\u80fd\u591f\u5728\u5c11\u90e8\u5206\u4eba\u8eab\u4e0a\u8fbe\u5230\u6301\u7eed\u6027\u7684\u5e94\u7b54\uff0c\u800c\u4e14\u4e5f\u6709\u76f8\u5f53\u7684\u526f\u4f5c\u7528\u3002\u672c\u6587\u5206\u6790\u4e862\u4e2a\u6700\u5927\u7684\u5173<div class=\"image-wrap\">\r\n\t<a href=\"http://image.97suifang.com/media/imgs/2013/07/21/23-%E8%A1%A81_2.jpg\" class=\"enlarge-image\">\r\n\t\t<img src=\"http://image.97suifang.com/media/imgs/2013/07/21/22-%E8%A1%A83-1_4.jpg\" alt=\"\">\r\n\t</a>\r\n</div>\u4e8ee\u6297\u539f\u9633\u6027\u6162\u4e59\u809d\u7684\u5168\u7403\u4e34\u5e8a\u5b9e\u9a8c\uff0c\u6765\u786e\u5b9a\u54ea\u4e9b\u4eba\u6700\u5bb9\u6613\u5bf9\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20-alfa\u7684\u6cbb\u7597\u4ea7\u751f\u5e94\u7b54\u3002", - "publish_date": "2009-12-01", - "abstract_result": "<ol><li>HBV\u57fa\u56e0\u578b</li></ol>\u3001\u57fa\u7ebf\u9ad8\u6c34\u5e73\u7684\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u6c34\u5e73\uff08>2\u4e2a\u6b63\u5e38\u503c\u4e0a\u9650\uff09\u3001\u57fa\u7ebf\u4f4e\u6c34\u5e73\u7684HBV DNA\uff08<2.0*10^8IU/mL\uff09\u3001\u5973\u6027\u3001\u5e74\u957f\u3001\u4ee5\u524d\u6ca1\u6709\u63a5\u53d7\u8fc7\u5e72\u6270\u7d20\u6cbb\u7597\u8fd9\u4e9b\u56e0\u7d20\u90fd\u80fd\u591f\u9884\u6d4b\u6301\u4e45\u5e94\u7b54\u3002\r\n\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09\u57fa\u56e0\u578bA\u578b\u3001\u57fa\u7ebf\u9ad8ALT\u503c\u548c/\u6216\u8005\u4f4eHBV-DNA\u6c34\u5e73\u7684\u60a3\u8005\u6709\u9ad8\u51e0\u7387\u83b7\u5f97\u6301\u4e45\u5e94\u7b54\uff08\u8d85\u8fc730%\uff09\u3002\r\n<p>\u4e0a\u8ff0\u8fd9\u4e9b\u56e0\u7d20\u4e2d\u6700\u5f3a\u7684\u9884\u6d4b\u56e0\u5b50\u662f\u57fa\u7ebf\u9ad8\u6c34\u5e73\u7684\u8c37\u4e19\u8f6c\u6c28\u9176\uff08\u5bf9\u4e8eHBV\u57fa\u56e0\u578bB\u578b\u60a3\u8005\uff09\u548c\u57fa\u7ebf\u4f4e\u6c34\u5e73\u7684HBV-DNA\uff08\u5bf9\u4e8eHBV\u57fa\u56e0\u578bC\u578b\u60a3\u8005\uff09\u3002\u57fa\u56e0\u578bD\u578b\u7684\u60a3\u8005\u83b7\u5f97\u6301\u4e45\u5e94\u7b54\u7684\u51e0\u7387\u4f4e\u3002</p>", - "endpoints": [] - } - }, - { - "pk": 1, - "model": "sciblog.resultcontent", - "fields": { - "card_content": "\u8be5\u7814\u7a76\u6240\u6709\u60a3\u8005\r\n", - "blog": 1, - "shorttitle": "\u6cbb\u7597\u524d\u7684\u5404\u9879\u6307\u6807\u60c5\u51b5", - "abstract": "", - "content": "\u88ab\u62db\u52df\u8005\u603b\u4f53\u4eba\u7fa4\u7279\u5f81\r\n[\u88ab\u62db\u52df\u60a3\u8005\u90fd\u5fc5\u987b\u7b26\u5408\u4ee5\u4e0b\u6761\u4ef6]\r\ne\u6297\u539f\uff08HBeAg\uff09\u9634\u6027\u81f3\u5c11\u516d\u4e2a\u6708\uff1b\r\ne\u6297\u4f53\uff08HBeAb\uff09\u548c\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u81f3\u5c11\u9633\u6027\u516d\u4e2a\u6708\uff1b\r\n\u4e59\u809d\u75c5\u6bd2\uff08DNA\uff09\u6c34\u5e73\u81f3\u5c11100,000\u62f7\u8d1d/mL\r\n\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u57281\u500d\u6b63\u5e38\u503c\u4e0a\u9650\uff08ULN\uff09\u548c10\u88ab\u6b63\u5e38\u503c\u4e0a\u9650\u4e4b\u95f4\uff1b\r\n\u5728\u8fc7\u53bb24\u4e2a\u6708\u5185\u809d\u810f\u6d3b\u68c0\u8bc1\u5b9e\u6709\u809d\u708e\u3002\r\n\r\n[\u88ab\u62db\u52df\u60a3\u8005\u4e0d\u5305\u62ec\u4ee5\u4e0b\u60c5\u51b5]\r\n\u60a3\u6709\u5931\u4ee3\u507f\u809d\u786c\u5316\uff1b\r\n\u66fe\u7ecf\u6709\u8fc7\u4e25\u91cd\u7684\u7cbe\u795e\u548c\u5185\u79d1\u75be\u75c5\uff1b\r\n\u4e00\u5f00\u59cb\u4e2d\u6027\u7c92\u7ec6\u80de\u6570\u5c0f\u4e8e1500/mm3;\r\n\u8840\u5c0f\u677f\u6570\u91cf\u5c0f\u4e8e90,000/mm3;\r\n\u8840\u6e05\u808c\u9150\u4e3a\u6b63\u5e38\u503c\u4e0a\u9650\u7684\u81f3\u5c111.5\u500d\u4ee5\u4e0a\uff1b\r\n\u5165\u7ec4\u524d\u4e00\u5e74\u5185\u6709\u8fc7\u8fc7\u5ea6\u996e\u9152\u6216\u8005\u6ee5\u7528\u836f\u7269\u7684\u7ecf\u5386\uff1b\r\n\u5728\u6700\u8fd1\u76846\u4e2a\u6708\u5185\u63a5\u53d7\u8fc7\u6297\uff08\u4e59\u809d\uff09\u75c5\u6bd2\u6cbb\u7597\uff1b\r\n\u5408\u5e76\u4e19\u578b\u809d\u708e\uff08HCV\uff09\u3001\u4e01\u809d\u6216\u8005HIV\u3002\r\n", - "sample": [], - "indicators": [ - 3, - 2, - 1 - ], - "type": 1 - } - }, - { - "pk": 2, - "model": "sciblog.resultcontent", - "fields": { - "card_content": "\u611f\u67d3\u75c5\u6bd2\u57fa\u56e0\u578b\u4e3aA\u578b\r\n\u611f\u67d3\u75c5\u6bd2\u57fa\u56e0\u578b\u4e3aB\u578b\r\n\u611f\u67d3\u75c5\u6bd2\u57fa\u56e0\u578b\u4e3aC\u578b\r\n\u611f\u67d3\u75c5\u6bd2\u57fa\u56e0\u578b\u4e3aD\u578b", - "blog": 1, - "shorttitle": "\u957f\u671f\u968f\u8bbf\u8c01\u7597\u6548\u66f4\u6301\u4e45", - "abstract": "", - "content": "\u63a5\u53d7\u4e09\u79cd\u4e0d\u540c\u6cbb\u7597\u7684\u60a3\u8005\u7684\u57fa\u7ebf\u6c34\u5e73\uff0c\u751f\u5316\u5b66\u5e94\u7b54\uff0c\u75c5\u6bd2\u5b66\u5e94\u7b54\u4ee5\u53ca\u8868\u9762\u6297\u539f\u5e94\u7b54\r\n\r\n\u57fa\u7ebf\u6c34\u5e73\r\n\r\n\r\n\r\n\r\n\u751f\u5316\u5b66\u5e94\u7b54\u5982\u4f55\uff1f\r\n\u6cbb\u759748\u5468\u7ed3\u675f\u65f6\uff0c\u62c9\u7c73\u592b\u5b9a\u7ec4\uff08\u60a3\u8005\u7684\uff09\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u6062\u590d\u6b63\u5e38\u7684\u6bd4\u7387\u6bd4\u5e72\u6270\u7d20\u7ec4\u3001\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7ec4\u9ad8\uff08\u672c\u7814\u7a76\u540e\u9762\u7684\u6570\u636e\u663e\u793a\u8fd9\u53ea\u662f\u6682\u65f6\u7684\uff09\uff1b\r\n\u6cbb\u7597\u7ed3\u675f\u540e24\u5468\u65f6\uff0c\u5e72\u6270\u7d20\u7ec4\u3001\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7ec4\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u6062\u590d\u6b63\u5e38\u7684\u6bd4\u7387\u660e\u663e\u6bd4\u62c9\u7c73\u592b\u5b9a\u7ec4\u9ad8\uff1b\r\n\u5728\u6cbb\u7597\u671f\u95f4\uff0c\u5e72\u6270\u7d20\u7ec4\u3001\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7ec4\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u51fa\u73b0\u5347\u9ad8\uff08\u523010\u4e2a\u6b63\u5e38\u503c\u4ee5\u4e0a\uff0c\u6216\u8005300IU/L\u4ee5\u4e0a\uff09\u7684\u51e0\u7387\u660e\u663e\u591a\u4e8e\u62c9\u7c73\u592b\u5b9a\u7ec4\uff1b\r\n\u6cbb\u7597\u7ed3\u675f\u540e24\u5468\u968f\u8bbf\u671f\u95f4\uff0c\u62c9\u7c73\u592b\u5b9a\u7ec4\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u51fa\u73b0\u5347\u9ad8\uff08\u523010\u4e2a\u6b63\u5e38\u503c\u4ee5\u4e0a\uff0c\u6216\u8005300IU/L\u4ee5\u4e0a\uff09\u7684\u51e0\u7387\u660e\u663e\u591a\u4e8e\u5e72\u6270\u7d20\u7ec4\u3001\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7ec4\uff1b\r\nALT\u6062\u590d\u6b63\u5e38\u548c\u5728\u6cbb\u7597\u671f\u95f4ALT\u4e0a\u5347\u6709\u5f88\u5927\u5173\u8054\u3002\r\n\r\n\u4e0b\u9762\u6709ALT\u7684\u5177\u4f53\u53d8\u5316\u8d8b\u52bf\uff08\u56fe 2A\uff09\uff1a\r\n\r\n\r\n\r\n\r\n\u56fe 1A \u6cbb\u7597\u7ed3\u675f24\u5468\u65f6\u7684\u751f\u5316\u5b66\u5e94\u7b54\u7387\uff08\u4e09\u7ec4\u4e0d\u540c\u6cbb\u7597\u65b9\u6848\u60a3\u8005\u6bd4\u8f83\uff09\r\n\r\n\u75c5\u6bd2\u5b66\u5e94\u7b54\u5982\u4f55\uff1f\r\n\u5728\u6cbb\u7597\u7ed3\u675f\u65f6\uff0c\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09DNA\u572820,000\u62f7\u8d1d/mL\u4ee5\u5185\u60a3\u8005\u7684\u6bd4\u4f8b\u5728\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7ec4\u4e2d\u6700\u9ad8\uff1b\r\n\u5728\u6cbb\u7597\u7ed3\u675f24\u5468\u65f6\uff0c\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09DNA\u572820,000\u62f7\u8d1d/mL\u4ee5\u5185\u60a3\u8005\u7684\u6bd4\u4f8b\u5728\u5e72\u6270\u7d20\u7ec4\u548c\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7ec4\u5dee\u4e0d\u591a\uff0843%\u300144%\uff09\uff0c\u90fd\u8981\u6bd4\u62c9\u7c73\u592b\u5b9a\u7ec4\u9ad8\uff0829%\uff09\uff1b\r\n\u53e6\u5916\uff0c\u5173\u4e8e\u75c5\u6bd2\u5b66\u5e94\u7b54\u7684\u6b21\u8981\u6807\u51c6\u4e4b\u4e00\uff1aHBV\u4e0b\u964d\u5230400\u62f7\u8d1d/mL\u4ee5\u4e0b\uff1a\r\n\u5728\u6cbb\u7597\u7ed3\u675f24\u5468\u65f6\uff0c\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09DNA\u5728400\u62f7\u8d1d/mL\u4ee5\u5185\u60a3\u8005\u7684\u6bd4\u4f8b\u5728\u5e72\u6270\u7d20\u548c\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7ec4\u662f19%\u300120%\uff0c\u62c9\u7c73\u592b\u5b9a\u7ec4\u53ea\u67097%\uff1b\r\n48\u5468\u4ee5\u540e\uff0cDNA\u4e0b\u964d\u7a0b\u5ea6\u6700\u5927\u7684\u662f\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u7528\u7ec4\uff0c\u5e72\u6270\u7d20\u5358\u836f\u7ec4\u548c\u62c9\u7c73\u592b\u5b9a\u5358\u836f\u7ec4\u5dee\u4e0d\u591a\u3002\r\n\r\n\u60a3\u8005\u75c5\u6bd2\u6c34\u5e73\u968f\u8bbf\u8bb0\u5f55\u8868\u683c\uff1a\r\n\r\n\r\n\r\n\u56fe 1B\uff1a\u6cbb\u7597\u7ed3\u675f24\u5468\u65f6\uff0c\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09DNA\u572820,000\u62f7\u8d1d/mL\u4ee5\u5185\u60a3\u8005\u7684\u6bd4\u4f8b\r\n\r\n\r\n\u56fe 2B \u75c5\u6bd2\u7684\u5177\u4f53\u53d8\u5316\u8d8b\u52bf\r\n\r\n\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u5e94\u7b54\u5982\u4f55\uff1f\r\n\u6cbb\u7597\u7ed3\u675f\u540e24\u5468\u65f6\uff0c\u5728\u5e72\u6270\u7d20\u7ec4\u76847\u540d\u60a3\u8005\u83b7\u5f97\u4e86\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u6e05\u9664\uff085\u540d\u4e9a\u6d32\u4eba\uff0c2\u540d\u767d\u79cd\u4eba\uff09\uff0c\u5728\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7ec4\u67095\u540d\u60a3\u8005\u83b7\u5f97\u4e86\u8868\u9762\u6297\u539f\u6e05\u9664\uff084\u540d\u4e9a\u6d32\u4eba\uff0c1\u540d\u767d\u79cd\u4eba\uff09\u3002\r\n\u540c\u6837\u65f6\u95f4\u83b7\u5f97\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u8840\u6e05\u5b66\u8f6c\u6362\uff08\u5b9a\u4e49\u4e3a\u8868\u9762\u6297\u539f\u6e05\u9664\u540c\u65f6\u51fa\u73b0\u8868\u9762\u6297\u4f53HBsAb\uff09\u7684\u6709\u5e72\u6270\u7d20\u7ec45\u4eba\uff0c\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7ec43\u4eba\u3002\r\n\u6cbb\u7597\u7ed3\u675f\u540e24\u5468\u65f6\u8868\u9762\u6297\u539f\u7684\u6e05\u9664\u6216\u8005\u8840\u6e05\u5b66\u8f6c\u6362\u5728\u62c9\u7c73\u592b\u5b9a\u60a3\u8005\u4e2d\u6ca1\u6709\u88ab\u53d1\u73b0\u3002\r\n\u8868\u9762\u6297\u539f\u7684\uff08HBsAg\uff09\u5e94\u7b54\u7387\u5728\u542b\u6709\u5e72\u6270\u7d20\u7684\u6cbb\u7597\u7ec4\u4e2d\u4e0e\u62c9\u7c73\u592b\u5b9a\uff08\u5358\u836f\uff09\u7ec4\u7684\u5dee\u8ddd\u5f88\u5927\u3002", - "sample": [], - "indicators": [], - "type": 2 - } - }, - { - "pk": 3, - "model": "sciblog.resultcontent", - "fields": { - "card_content": "", - "blog": 2, - "shorttitle": "", - "abstract": "", - "content": "$\u8be5\u7814\u7a76\u603b\u4f53\u4eba\u7fa4$\r\n$$\u57fa\u7ebf\u6c34\u5e73\u548c\u6cbb\u7597\u7ed3\u679c\u5982\u4f55\uff1f$$\r\n$$$\u8868\u9762\u6297\u539f HBsAg \r\n\u4e59\u809d\u75c5\u6bd2HBV DNA\r\ne\u6297\u539f HBeAg\r\n\u8c37\u4e19\u8f6c\u6c28\u9176 ALT$$$\r\n\r\n\u88ab\u62db\u52df\u60a3\u8005\u90fd\u5fc5\u987b\u7b26\u5408\u4ee5\u4e0b\u6761\u4ef6]\r\n\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u9633\u6027\u81f3\u5c11\u516d\u4e2a\u6708 \u3010\u5df2\u6709\u3011\r\n\u5165\u7ec4\u524d2\u4e2a\u6708\u5185\uff0ce\u6297\u539f\uff08HBeAg\uff09\u88ab\u53d1\u73b0\u9634\u6027\u81f3\u5c11\u4e24\u6b21\r\n\u5165\u7ec4\u524d2\u4e2a\u6708\uff0ce\u6297\u4f53\uff08HBeAb\uff09\u88ab\u53d1\u73b0\u9634\u6027\u81f3\u5c11\u4e24\u6b21\r\n\u5165\u7ec4\u524d2\u4e2a\u6708\uff0c\u81f3\u5c11\u4e24\u6b21\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u5904\u57281.5\u523010\u500d\u6b63\u5e38\u503c\u4e0a\u9650\uff08ULN\uff09\u4e4b\u95f4\r\n\u4e59\u809d\u75c5\u6bd2\uff08HBV DNA\uff09\u6c34\u5e73\u5927\u4e8e100,000\u62f7\u8d1d/ml\uff08\u76f8\u5f53\u4e8e17,143IU/ml\uff09\r\n\r\n[\u88ab\u62db\u52df\u60a3\u8005\u4e0d\u5305\u62ec\u4ee5\u4e0b\u60c5\u51b5]\r\n\u5165\u7ec4\u524d\u516d\u4e2a\u6708\u524d\u63a5\u53d7\u8fc7\u6297\u75c5\u6bd2\u6216\u8005\u514d\u75ab\u6291\u5236\u5242\u6cbb\u7597\r\n\u5408\u5e76\u611f\u67d3\u4e19\u809d\u3001\u4e01\u809d\u6216\u8005HIV\u611f\u67d3\r\n\u60a3\u6709\u5176\u4ed6\u83b7\u5f97\u6027\u6216\u8005\u9057\u4f20\u6027\u7684\u809d\u810f\u75be\u75c5\r\n\u66fe\u7ecf\u6709\u8fc7\u7ec6\u80de\u51cf\u5c11\u75c7\u6216\u8005\u5931\u4ee3\u507f\u809d\u75c5\r\n\r\n[\u57fa\u7ebf\u6c34\u5e73]\r\n\r\n[\u6574\u4f53\u7597\u6548]\r\n\u672c\u7814\u7a76\u7684107\u4e2a\u4eba\u4e2d\u670922%\uff0824/107\uff09\u7684\u60a3\u8005\u83b7\u5f97\u6301\u7eed\u5e94\u7b54\u3002\u5355\u7528\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u7684\u60a3\u8005\u548c\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u52a0\u4e0a\u5229\u5df4\u97e6\u6797\u8054\u5408\u6cbb\u7597\u7684\u60a3\u8005\u83b7\u5f97\u6301\u7eed\u514d\u75ab\u5e94\u7b54\u5206\u522b\u670914\u4eba\uff08\u5360\u5355\u836f\u6cbb\u7597\u4eba\u657026%=14/53\uff09\u548c10\u4eba\uff08\u5360\u8054\u5408\u7528\u836f\u4eba\u657019%=10/54\uff09\u3002", - "sample": [], - "indicators": [], - "type": null - } - }, - { - "pk": 4, - "model": "sciblog.resultcontent", - "fields": { - "card_content": "", - "blog": 2, - "shorttitle": "", - "abstract": "", - "content": "$\u7ed3\u675f\u65f6\u83b7\u5f97\u6301\u4e45\u5e94\u7b54\r\n\u6ca1\u6709\u6301\u4e45\u5e94\u7b54\u7684\u60a3\u8005$\r\n$$\u6cbb\u7597\u671f\u95f4\u6307\u6807\u53d8\u5316\u533a\u522b$$\r\n$$$\u8868\u9762\u6297\u539f HBsAg \r\n\u4e59\u809d\u75c5\u6bd2HBV DNA$$$\r\n\r\n\u6700\u7ec8\u83b7\u5f97\u6301\u7eed\u5e94\u7b54\uff08SR\uff09\u548c\u672a\u83b7\u5f97SR\u7684\u60a3\u8005\u5728\u6cbb\u7597\u8fc7\u7a0b\u4e2d\u8840\u6e05HBsAg\u7684\u4e0b\u964d\u8d8b\u52bf\u6709\u4ec0\u4e48\u533a\u522b\uff1f\r\n\r\n\u6700\u7ec8\u83b7\u5f97\u6301\u7eed\u5e94\u7b54\uff08SR\uff09\u548c\u975e\u672a\u83b7\u5f97SR\u7684\u60a3\u8005\u5728\u6cbb\u7597\u8fc7\u7a0b\u4e2dHBVDNA\u7684\u4e0b\u964d\u8d8b\u52bf\u6709\u4ec0\u4e48\u533a\u522b\uff1f\r\n\r\n\u6700\u7ec8\u83b7\u5f97\u6301\u7eed\u5e94\u7b54\uff08SR\uff09\u548c\u975e\u672a\u83b7\u5f97SR\u7684\u60a3\u8005\u5728\u6cbb\u7597\u8fc7\u7a0b\u5f53\u4e2d\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u53d8\u5316\u5dee\u5f02\u5927\u5417\uff1f\r\n\u65e0\u8bba\u662f\u6700\u7ec8\u83b7\u5f97SR\u7684\u60a3\u8005\uff0c\u8fd8\u662f\u672a\u83b7\u5f97SR\u60a3\u8005\uff0c\u4ed6\u4eec\u7684\u8840\u6e05\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u6c34\u5e73\u5728\u6cbb\u7597\u8fc7\u7a0b\u4e2d\u53d8\u5316\u76f8\u540c\u3002\u6240\u4ee5\u8fd9\u91cc\u7edf\u8ba1\u5b66\u4e0a\uff0cALT\u5e76\u65e0\u9884\u6d4b\u5c06\u6765\u6301\u7eed\u5e94\u7b54\uff08SR\uff09\u7684\u4f5c\u7528\u3002", - "sample": [], - "indicators": [], - "type": null - } - }, - { - "pk": 5, - "model": "sciblog.resultcontent", - "fields": { - "card_content": "", - "blog": 2, - "shorttitle": "", - "abstract": "", - "content": "$\u6cbb\u7597\u7b2c12\u5468\uff0c\u76f8\u5bf9\u5f00\u59cb\r\nHBsAg\u6ca1\u6709\u4e0b\u964d\u4e14DNA\u4e0b\u964d\u8f83\u5c0f\r\nHBsAg\u6ca1\u6709\u4e0b\u964d\u4f46DNA\u4e0b\u964d\u8f83\u5927\r\nHBsAg\u53d1\u751f\u4e0b\u964d\u4f46DNA\u4e0b\u964d\u8f83\u5c0f\r\nHBsAg\u53d1\u751f\u4e0b\u964d\u4e14DNA\u4e0b\u964d\u8f83\u5927$\r\n$$\u54ea\u79cd\u60a3\u8005\u6301\u7eed\u5e94\u7b54\u51e0\u7387\u6700\u5927\uff0c\u54ea\u79cd\u6700\u5c0f\uff1f$$\r\n$$$\u8868\u9762\u6297\u539f HBsAg \r\n\u4e59\u809d\u75c5\u6bd2HBV DNA\r\n\u8c37\u4e19\u8f6c\u6c28\u9176 ALT$$$\r\n\r\n\u4ee5\u4e0b\u54ea\u90e8\u5206\u60a3\u8005\u968f\u8bbf\u7ed3\u675f\u65f6\u83b7\u5f97\u6301\u7eed\u5e94\u7b54\u7684\u51e0\u7387\u6700\u9ad8\uff1f\u8c01\u53c8\u6700\u4f4e\uff1f\r\n\u6839\u636e\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u548c\u4e59\u809d\u75c5\u6bd2\uff08HBV DNA\uff09\u4e0b\u964d\u7a0b\u5ea6\u5206\u7ec4\uff1a\r\n\u6cbb\u7597\u5f00\u59cb\u540e\u7b2c12\u5468\u65f6\uff0c\u76f8\u6bd4\u57fa\u7ebf\u6c34\u5e73\uff08\u6cbb\u7597\u5f00\u59cb\uff09\uff0c\r\nHBsAg\u6ca1\u6709\u4e0b\u964d\u4e14DNA\u4e0b\u964d\u7a0b\u5ea6\u5c0f\u4e8e2\u4e2alog \u62f7\u8d1d/mL\uff1b\r\nHBsAg\u6ca1\u6709\u4e0b\u964d\u4f46DNA\u4e0b\u964d\u7a0b\u5ea6\u5927\u4e8e\u6216\u8005\u7b49\u4e8e2\u4e2alog \u62f7\u8d1d/mL\uff1b\r\nHBsAg\u53d1\u751f\u4e0b\u964d\u4f46DNA\u4e0b\u964d\u7a0b\u5ea6\u5c0f\u4e8e2\u4e2alog \u62f7\u8d1d/mL\uff1b\r\nHBsAg\u53d1\u751f\u4e0b\u964d\u4e14DNA\u4e0b\u964d\u7a0b\u5ea6\u5927\u4e8e\u6216\u8005\u7b49\u4e8e2\u4e2alog\u62f7\u8d1d/mL\r\n\u8fd9\u56db\u7c7b\u60a3\u8005\u3002", - "sample": [], - "indicators": [], - "type": null - } - }, - { - "pk": 6, - "model": "sciblog.resultcontent", - "fields": { - "card_content": "", - "blog": 3, - "shorttitle": "", - "abstract": "", - "content": "$\u8be5\u7814\u7a76\u603b\u4f53\u4eba\u7fa4$\r\n$$\u57fa\u7ebf\u6c34\u5e73\u548c\u6cbb\u7597\u7ed3\u679c\u5982\u4f55\uff1f$$\r\n$$$\u8868\u9762\u6297\u539f HBsAg \r\n\u4e59\u809d\u75c5\u6bd2HBV DNA\r\ne\u6297\u539f HBeAg$$$\r\n\u7814\u7a76\u4e2d\u603b\u4f53\u4eba\u7fa4\u7684\u57fa\u7ebf\u6c34\u5e73\u3001\u6574\u4f53\u7597\u6548\u5982\u4f55\uff1f\r\n\u60a3\u8005\u6240\u611f\u67d3\u7684\u4e59\u809d\u75c5\u6bd2\u7684\u57fa\u56e0\u578b\u5927\u90e8\u5206\u662fB\u578b\uff08\u5360\u603b\u4eba\u657032.6%\uff09\u6216\u8005C\u578b\uff08\u5360\u603b\u4eba\u657058.4%\uff09\u3002\r\n\u4e00\u534a\u4eba\u63a5\u53d7\u5e72\u6270\u7d20\u5355\u836f\u6cbb\u7597\uff0c\u4e00\u534a\u4eba\u8054\u5408\u5e72\u6270\u7d20\u548c\u6838\u82f7\u7c7b\u8fdb\u884c\u6cbb\u7597\u3002\r\n\u6574\u4f53\u7597\u6548\r\n399\u4f4d\u6240\u6709\u88ab\u7814\u7a76\u5206\u6790\u7684\u60a3\u8005\u4e2d\uff0c\r\n34%\u7684\u4eba\u6cbb\u7597\u7ed3\u675f6\u4e2a\u6708\u540e\u6d4b\u5f97e\u6297\u539f\uff08HBeAg\uff09\u8840\u6e05\u5b66\u8f6c\u6362\uff1b\r\n\u6cbb\u7597\u540e6\u4e2a\u6708e\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\u7387\uff1aHBV\u57fa\u56e0\u578b\u4e3aB\u7684\u60a3\u8005\u662f34%\uff08\u540c\u4e0a\u9762\u603b\u4f53\u6c34\u5e73\uff09\uff0cC\u578b\u4e5f\u662f34%\uff1b\r\n28%\u7684\u4eba\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09 DNA\u6cbb\u7597\u7ed3\u675f6\u4e2a\u6708\u540e\u88ab\u68c0\u6d4b\u5c0f\u4e8e\u7b49\u4e8e2,000\u62f7\u8d1d/mL\uff1b\r\n4%\u7684\u60a3\u8005\u6cbb\u7597\u7ed3\u675f6\u4e2a\u6708\u540e\u6d4b\u5f97\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u88ab\u6e05\u9664\u3002", - "sample": [], - "indicators": [], - "type": null - } - }, - { - "pk": 7, - "model": "sciblog.resultcontent", - "fields": { - "card_content": "", - "blog": 3, - "shorttitle": "", - "abstract": "", - "content": "$\u6cbb\u7597\u7ed3\u675f6\u4e2a\u6708\u540e\r\ne\u6297\u539f\u53d1\u751f\u8840\u6e05\u5b66\u8f6c\u6362\u7684\r\ne\u6297\u539f\u672a\u51fa\u73b0\u8840\u6e05\u5b66\u8f6c\u6362\u7684$\r\n$$\u57fa\u7ebf\u548c\u6cbb\u7597\u671f\u95f4\u51e0\u9879\u6307\u6807\u5dee\u522b$$\r\n$$$\u8868\u9762\u6297\u539f HBsAg$$$\r\n\r\n\u6cbb\u7597\u7ed3\u675f6\u4e2a\u6708\u540ee\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\u548c\u6ca1\u6709\u53d1\u751f\u8f6c\u6362\u7684\u60a3\u8005\uff0c\u4ed6\u4eec\u57fa\u7ebf\u53ca\u6cbb\u7597\u671f\u95f4\u51e0\u9879\u6307\u6807\u6c34\u5e73\u7684\u5dee\u5f02\r\n\u672c\u6587\u628a\u6cbb\u7597\u7ed3\u675f6\u4e2a\u6708\u540ee\u6297\u539f\uff08HBeAg\uff09\u53d1\u751f\u8840\u6e05\u5b66\u8f6c\u6362\u5b9a\u4e49\u6210\u83b7\u5f97\u5e94\u7b54\u3002\r\n\r\ne\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\u4e0e\u672a\u8f6c\u6362 \uff0c\u57fa\u7ebf\u65f6\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u6709\u5dee\u5f02\r\n\r\n\u6cbb\u7597\u7ed3\u675f\u540e\u83b7\u5f97\u6cbb\u7597\u5e94\u7b54\u7684\u60a3\u8005\u7684\u57fa\u7ebf\uff08\u5373\u6cbb\u7597\u5f00\u59cb\uff09\u8868\u9762\u6297\u539f\u6c34\u5e73\uff0c\u6bd4\u8d77\u90a3\u4e9b\u6ca1\u6709\u83b7\u5f97\u5e94\u7b54\u7684\u60a3\u8005\u7684\u57fa\u7ebf\u8868\u9762\u6297\u539f\u6c34\u5e73\u8981\u4f4e\u3002\uff083.97 log10 IU/mL \u6bd4 4.21 log10IU/mL\uff09\u3002\r\n\r\ne\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\u4e0e\u672a\u8f6c\u6362\uff0c\u6cbb\u7597\u671f\u95f4\u8868\u9762\u6297\u539f\u4e0b\u964d\u7a0b\u5ea6\u7684\u4e0d\u540c\r\n\r\n\u5728\u6cbb\u7597\u7ed3\u675f\u540e6\u4e2a\u6708\u53d1\u751fe\u6297\u539f\uff08HBeAg\uff09\u8840\u6e05\u5b66\u8f6c\u6362\u7684\u60a3\u8005\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u7684\u4e0b\u964d\u7a0b\u5ea6\u5728\u6cbb\u7597\u5f00\u59cb\u540e12\u5468\u300124\u5468\u300124\u5468\u300148\u5468\u548c\u6cbb\u7597\u7ed3\u675f6\u4e2a\u6708\uff08\u4e5f\u5c31\u662f72\u5468\uff09\u8981\u6bd4\u6ca1\u6709\u53d1\u751f\u8fc7\u8840\u6e05\u5b66\u8f6c\u6362\u7684\u4eba\u5927\u3002\r\n\r\ne\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\u4e0e\u672a\u8f6c\u6362\uff0cHBV DNA\u4e0b\u964d\u7a0b\u5ea6\u7684\u4e0d\u540c\r\n\r\n\u65e0\u8bba\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u5358\u836f\u8fd8\u662f\u8054\u5408\u7528\u836f\uff0c\u5728\u6cbb\u7597\u7ed3\u675f\u540e6\u5468\u53d1\u751fe\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\u7684\u60a3\u8005\uff0c\u5176\u4f53\u5185\u75c5\u6bd2DNA\u7684\u4e0b\u964d\u5728\u6cbb\u7597\u5f00\u59cb\u540e12\u5468\u300124\u5468\u300148\u5468\u548c\u6cbb\u7597\u7ed3\u675f6\u4e2a\u6708\uff08\u4e5f\u5c31\u662f72\u5468\uff09\u8981\u6bd4\u6ca1\u6709\u53d1\u751f\u8fc7e\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\u7684\u4eba\u7a0b\u5ea6\u8981\u5927\u3002\r\n\u7136\u800c\uff0c\u63a5\u53d7\u8054\u5408\u7528\u836f\u7684\u7ec4\u522b\u4e2d\uff0c\u60a3\u8005\u7684\u8fd9\u79cdDNA\u4e0b\u964d\u7684\u5dee\u5f02\u53ea\u6709\u572872\u5468\uff08\u6cbb\u7597\u7ed3\u675f\u540e\u534a\u5e74\uff09\u7684\u65f6\u5019\u663e\u73b0\u3002\r\n\r\n", - "sample": [], - "indicators": [], - "type": null - } - }, - { - "pk": 8, - "model": "sciblog.resultcontent", - "fields": { - "card_content": "", - "blog": 3, - "shorttitle": "", - "abstract": "", - "content": "<br data-mce-bogus=\"1\">", - "sample": [], - "indicators": [], - "type": null - } - }, - { - "pk": 9, - "model": "sciblog.resultcontent", - "fields": { - "card_content": "", - "blog": 3, - "shorttitle": "", - "abstract": "", - "content": "<br data-mce-bogus=\"1\">", - "sample": [], - "indicators": [], - "type": null - } - }, - { - "pk": 10, - "model": "sciblog.resultcontent", - "fields": { - "card_content": "", - "blog": 3, - "shorttitle": "", - "abstract": "", - "content": "<br data-mce-bogus=\"1\">", - "sample": [], - "indicators": [], - "type": null - } - }, - { - "pk": 11, - "model": "sciblog.resultcontent", - "fields": { - "card_content": "", - "blog": 3, - "shorttitle": "", - "abstract": "", - "content": "<br data-mce-bogus=\"1\">", - "sample": [], - "indicators": [], - "type": null - } - }, - { - "pk": 12, - "model": "sciblog.resultcontent", - "fields": { - "card_content": "\u7a76\u540e\u9762\u7684\u6570\u636e\u663e\u793a\u8fd9\u53ea\u662f\u6682", - "blog": 1, - "shorttitle": "\u7a76\u540e\u9762\u7684\u6570\u636e\u663e\u793a\u8fd9\u53ea\u662f\u6682", - "abstract": "", - "content": "\u7a76\u540e\u9762\u7684\u6570\u636e\u663e\u793a\u8fd9\u53ea\u662f\u6682", - "sample": [], - "indicators": [], - "type": 3 - } - }, - { - "pk": 1, - "model": "sciblog.reference", - "fields": { - "link": "http://www.ncbi.nlm.nih.gov/pubmed/14697813", - "description": "Lai CL, Ratziu V, Yuen MF, Poynard T. Viral hepatitis B. Lancet 2003;362:2089-94." - } - }, - { - "pk": 2, - "model": "sciblog.reference", - "fields": { - "link": "http://onlinelibrary.wiley.com/doi/10.1002/hep.23722/full", - "description": "Rijckborst V, Hansen BE, Cakaloglu Y, Ferenci P, Tabak F, Akdogan M, Simon K, Akarca US, Flisiak R, Verhey E, Van Vuuren AJ, Boucher CA, ter Borg MJ, Janssen HL. Early on-treatment prediction of response to peginterferon alfa-2a for HBeAg-negative chronic hepatitis B using HBsAg and HBV DNA levels.Hepatology. 2010 Aug;52(2):454-61. doi: 10.1002" - } - }, - { - "pk": 3, - "model": "sciblog.reference", - "fields": { - "link": "", - "description": "Hepatitis B surface antigen: association with sustained response to peginterferon alfa-2a in hepatitis B e antigen-positive patients\r\n" - } - }, - { - "pk": 1, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u6162\u6027\u4e59\u578b\u809d\u708e\u662f\u5168\u7403\u7684\u533b\u5b66\u96be\u9898\uff0c\u67094\u4ebf\u4eba\u53e3\u88ab\u611f\u67d3\u4e59\u809d\u75c5\u6bd2\u3002\u8fd9\u79cd\u75be\u75c5\u548c\u809d\u8870\u7aed\u3001\u809d\u7ec6\u80de\u764c\u3001\u809d\u786c\u5316\u6709\u5f88\u5927\u5173\u7cfb\u3002e\u6297\u539f\uff08HBeAg\uff09\u9634\u6027\u6162\u6027\u4e59\u809d\u4ee3\u8868\u7740HBV\u75c5\u6bd2\u611f\u67d3\u5230\u4e86\u4e00\u4e2a\u8f83\u4e3a\u540e\u671f\u7684\u9636\u6bb5\uff0c\u548c\u809d\u810f\u8fdb\u4e00\u6b65\u88ab\u7834\u574f\u3001\u75c5\u6bd2\u57fa\u56e0\u53d8\u5f02\u3002\u5728\u8fd9\u79cdHBeAg\u9634\u6027\u6162\u4e59\u809d\u4e2d\uff0c\u81ea\u53d1\u7684\u6301\u4e45\u514d\u75ab\u5e94\u7b54\u6216\u8005\u8bf4\u7f13\u89e3\u5f88\u7f55\u89c1\u3002\u4ece\u5168\u7403\u6765\u8bf4\uff0ce\u6297\u539f\u9634\u6027\u7684\u6162\u6027\u4e59\u578b\u809d\u708e\u904d\u5e03\u5168\u7403\uff0c\u800c\u4e14\u8d8a\u6765\u8d8a\u6d41\u884c\u3002", - "type": 0, - "title": "test" - } - }, - { - "pk": 2, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u73b0\u884c\u7684\u4e34\u5e8a\u6cbb\u7597\u6307\u5357\u63a8\u8350\u5c06\u5e72\u6270\u7d20alfa\u6216\u8005\u6838\u82f7\uff08\u9178\uff09\u7c7b\u4f3c\u7269\u4f5c\u4e3ae\u6297\u539f\uff08HBeAg\uff09\u9634\u6027\u6162\u6027\u4e59\u809d\u7684\u4e00\u7ebf\u6cbb\u7597\u65b9\u6848\u3002\u4f46\u662f\uff0c\u4f20\u7edf\u7684\u5e72\u6270\u7d20\uff08\u6709\u7684\u5730\u65b9\u79f0\u4f5c\u666e\u901a\u5e72\u6270\u7d20\uff09\u56e0\u4e3a\u836f\u4ee3\u52a8\u529b\u5b66\u7684\u4e0d\u8db3\u4f7f\u5f97\u5728\u4f7f\u7528\u8d77\u6765\u5242\u91cf\u7684\u63a7\u5236\u4e0d\u65b9\u4fbf\u3001\u4e0d\u7a33\u5b9a\uff08\u4ece\u800c\u5f71\u54cd\u836f\u7269\u5728\u4f53\u5185\u7684\u6d53\u5ea6\uff0c\u6216\u8005\u8bf4\u8840\u836f\u6d53\u5ea6\uff0c\u836f\u6548\u4f1a\u88ab\u5f71\u54cd\uff09\u3002\u800c\uff08\u6838\u82f7\u7c7b\u4f3c\u7269\u4e2d\u7684\uff09\u62c9\u7c73\u592b\u5b9a\u548c\u8010\u836f\u6709\u5173\u3002", - "type": 0, - "title": "" - } - }, - { - "pk": 3, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\uff0c\u5728\u666e\u901a\u5e72\u6270\u7d20\u7684\u57fa\u7840\u4e0a\u52a0\u4e0a40KD\u805a\u4e59\u4e8c\u9187\u9ad8\u5206\u5b50\u7269\u8d28\u5f62\u6210\u65b0\u7684\u836f\u7269\u3002\u5b83\u6bcf\u5468\u53ea\u9700\u4e00\u6b21\u4f7f\u7528\uff0c\u975e\u5e38\u65b9\u4fbf\uff0c\u80fd\u591f\u5728\u7528\u836f\u95f4\u9694\u671f\u5185\u6709\u6548\u5730\u4fdd\u6301\u4f53\u5185\u7684\u8840\u836f\u6d53\u5ea6\u3002\u5728\u4f5c\u7528\u673a\u7406\u4e0a\uff0c\u548c\u666e\u901a\u5e72\u6270\u7d20\u7c7b\u4f3c\uff0c\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u80fd\u591f\u6709\u514d\u75ab\u63d0\u54e6\u554a\u63a5\u548c\u6297\u75c5\u6bd2\u7684\u53cc\u91cd\u8c03\u8282\u4f5c\u7528\uff1b\u4f46\u662f\u76f8\u6bd4\u666e\u901a\u5e72\u6270\u7d20\uff0c\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6709\u66f4\u597d\u7684\u4e34\u5e8a\u6cbb\u7597\u6548\u679c\u3002", - "type": 0, - "title": "" - } - }, - { - "pk": 4, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "HBeAg\u9634\u6027\u6162\u6027\u4e59\u578b\u809d\u708e\uff08CHB\uff09\u4ee3\u8868\u7740\u6574\u4e2a\u75c5\u6bd2\u611f\u67d3\u7684\u540e\u671f\u3002", - "type": 0, - "title": "" - } - }, - { - "pk": 5, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u56e0\u4e3a\u60a3\u6709\u8fd9\u7c7b\u809d\u708e\u7684\u60a3\u8005\u81ea\u7136\u7f13\u89e3\u5f88\u5c11\u53d1\u751f\uff0c\u6240\u4ee5\u836f\u7269\u6cbb\u7597\u7ecf\u5e38\u88ab\u8fd0\u7528\u5728\u4ed6\u4eec\u8eab\u4e0a\uff0c\u800c\u4e14e\u6297\u539f\u9634\u6027\u4e59\u809d\u7684\u60a3\u8005\uff0c\u6bd4\u8d77e\u6297\u539f\u9633\u6027\u60a3\u8005\uff0c\u4f34\u6709\u7684\u809d\u810f\u75be\u75c5\u66f4\u52a0\u4e25\u91cd\u3002", - "type": 0, - "title": "" - } - }, - { - "pk": 6, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u6838\u82f7\u7c7b\uff08\u9178\uff09\u7c7b\u4f3c\u7269\u5728\u5927\u591a\u6570\u9634\u6027\u4e59\u809d\u60a3\u8005\u4e2d\uff0c\u80fd\u591f\u4fdd\u6301\u5bf9\u4e8e\u75c5\u6bd2\u590d\u5236\u7684\u6291\u5236\uff0c\u800c\u4e14\u4eba\u4f53\u5bf9\u5176\u6709\u5f88\u597d\u7684\u836f\u7269\u8010\u53d7\u6027\u3002\u4f46\u662f\uff0c\u975e\u5e38\u96be\u786e\u5b9a\u8fd9\u79cd\u53e3\u670d\u7684\u6297\u75c5\u6bd2\u6cbb\u7597\u662f\u5426\u53ef\u4ee5\u505c\u836f\u3002\u4e0d\u8fc7\uff0c\u4e00\u5e74\u7684\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\u53ef\u4ee5\u4f7f\u5f97\u4e00\u4e9b\u9634\u6027\u4e59\u809d\u7684\u60a3\u8005\u80fd\u591f\u83b7\u5f97\u505c\u836f\u540e\u6301\u7eed\u7684\u5e94\u7b54\u6548\u5e94\u3002", - "type": 0, - "title": "" - } - }, - { - "pk": 7, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u4e59\u809d\u75c5\u6bd2\uff08HBV DNA\uff09\u5b9a\u91cf\u68c0\u6d4b\u88ab\u5e7f\u6cdb\u5730\u7528\u6765\u8861\u91cf\u4eba\u4f53\u5bf9\u4e8e\u6838\u82f7\uff08\u9178\uff09\u7c7b\u4f3c\u7269\u7684\u5e94\u7b54\uff0c\u4f46\u662f\u901a\u8fc7HBV DNA\u6c34\u5e73\u6765\u76f4\u63a5\u9884\u6d4b\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\u6548\u679c\u662f\u56f0\u96be\u7684\u3002", - "type": 0, - "title": "" - } - }, - { - "pk": 8, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u8840\u6e05\u4e2d<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08HBsAg\uff09\u4f3c\u4e4e\u53ef\u4ee5\u53cd\u6620\u809d\u810f\u4e2d\u5171\u4ef7\u95ed\u5408\u73af\u72b6DNA\uff08cccDNA\uff09\u7684\u91cf\uff0ccccDNA\u662fHBV\u75c5\u6bd2\u57fa\u56e0\u8f6c\u5f55\u7684\u6a21\u677f\u3002\u6700\u8fd1\u51e0\u9879\u7814\u7a76\u90fd\u5efa\u8bae\u8840\u6e05\u4e2d\u7684HBsAg\u6c34\u5e73\u53ef\u80fd\u6807\u5fd7\u7740\u4eba\u4f53\u5bf9\u4e8e\u5e72\u6270\u7d20\u6cbb\u7597\u5e94\u7b54\u51e0\u7387\u7684\u9ad8\u4e0e\u4f4e\u3002HBsAg\u7684\u4e0b\u964d\u53cd\u6620\u4e86\u809d\u810f\u5185cccDNA\u7684\u4e0b\u964d\u3002", - "type": 0, - "title": "" - } - }, - { - "pk": 9, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u4ec0\u4e48\u65f6\u5019\u505a\u7ee7\u7eed\u6cbb\u7597\u8fd8\u662f\u505c\u836f\u6362\u65b9\u6848\u6bd4\u8f83\u5408\u9002\uff1f\r\n\u7528\u4e8e\u9884\u6d4bSR\u7684\u6700\u4f73\u65b9\u6cd5\u662f\u5c06HBsAg\u5b9a\u91cf\u6c34\u5e73\u4e0eHBV DNA\u4e0b\u964d\u6c34\u5e73\u7ed3\u5408\u8d77\u6765\u770b\u3002\u7ecf\u7edf\u8ba1\u5904\u7406\u53d1\u73b0\uff0c\u51b3\u5b9a\u662f\u5426\u7ee7\u7eed\u6cbb\u7597\u4e5f\u4e0d\u9700\u8981\u592a\u665a\uff0c\u6bd4\u598224\u5468\uff0c\u56e0\u4e3a\u4e0e12\u5468\u76f8\u6bd4\uff0c24\u5468\u9884\u6d4bSR\u7684\u4f5c\u7528\u5e76\u6ca1\u6709\u66f4\u597d\u4e00\u4e9b\u3002", - "type": 1, - "title": "" - } - }, - { - "pk": 10, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u9884\u6d4b\u6301\u7eed\u5e94\u7b54\uff08SR\uff09\u51e0\u7387\u770b<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08HBsAg\uff09\u4e00\u4e2a\u6307\u6807\u591f\u5417\uff1f\r\n\u7ecf\u6570\u5b66\u7edf\u8ba1\u5904\u7406\u8bc1\u660e\uff0c\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\u7684HBeAg\u9634\u6027\u6162\u6027\u4e59\u809d\u60a3\u8005\u5728\u65e9\u671f\u9636\u6bb5\u4ec5\u4ec5\u4f9d\u9760HBsAg\u6c34\u5e73\u6765\u7cbe\u786e\u9884\u6d4b\u6301\u7eed\u5e94\u7b54\uff08SR\uff09\u662f\u4e0d\u53ef\u80fd\u7684\u3002\r\n\u7136\u800c\uff0c\u628a\u7597\u7a0b\u8fc7\u7a0b\u7684\u4e2dHBsAg\u4e0b\u964d\u548c\u75c5\u6bd2\u4e0b\u964d\u60c5\u51b5\u4e24\u8005\u7ed3\u5408\u5728\u4e00\u8d77\uff0c\u4fbf\u80fd\u591f\u5f62\u6210\u4e00\u6761\u660e\u786e\u7684\u505c\u836f\u539f\u5219\u3002", - "type": 1, - "title": "" - } - }, - { - "pk": 11, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u6b64\u7814\u7a76\u4e2d\uff0c\u7a76\u7adf\u54ea\u4e00\u90e8\u5206e\u6297\u539f\u9634\u6027\u6162\u4e59\u809d\u60a3\u8005\u63a5\u53d7PEG\u5e72\u6270\u7d20\u6cbb\u7597\u6548\u679c\u76f8\u5bf9\u66f4\u597d\uff1f\r\n\u572812\u5468\u65f6\uff0c\u540c\u65f6\u53d1\u73b0<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08HBsAg\uff09\u4e0b\u964d\u548c\u4e59\u809d\u75c5\u6bd2\uff08HBV DNA\uff09\u4e0b\u964d\u5927\u4e8e2log \u62f7\u8d1d/ml\u7684\u60a3\u8005\u62e5\u6709\u6700\u9ad8\u7684\u83b7\u5f97SR\u7684\u51e0\u7387\uff0839%\uff09\u3002\r\n\u8fd9\u4e00\u7ec4\u4eba\u5e94\u8be5\u88ab\u9f13\u52b1\u5b8c\u6210\u4e3a\u671f48\u5468\u7684\u6cbb\u7597\u3002", - "type": 1, - "title": "" - } - }, - { - "pk": 12, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "DNA\u8981\u4e0b\u964d\u5230\u591a\u5c11\u5bf9\u4e8ee\u6297\u539f\uff08HBeAg\uff09\u9634\u6027\u6162\u4e59\u809d\u60a3\u8005\u6700\u5408\u9002?\r\n\u8be5\u7814\u7a76\u628a\u6301\u7eed\u5e94\u7b54\uff08SR\uff09\u5b9a\u4e49\u4e3a\u6cbb\u7597\u7ed3\u675f6 \u4e2a\u6708\u65f6\uff0cHBV DNA \u6c34\u5e73<10,000 \u62f7\u8d1d/mL\uff0c\u5e76\u4e14ALT \u6c34\u5e73\u6062\u590d\u6b63\u5e38\u3002", - "type": 1, - "title": "" - } - }, - { - "pk": 13, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u6709\u4e9b\u4eba\u53ef\u80fd\u4f1a\u4e89\u8bae\u8bf4HBV DNA \u7684\u4e0b\u9650\u5e94\u8be5\u66f4\u4f4e\u4e00\u70b9\u3002\u7528\u654f\u611f\u7684PCR \u68c0\u6d4b\u65b9\u6cd5\u68c0\u6d4b\u5230\u6cbb\u7597\u540eHBV DNA \u9634\u6027\u7684\u786e\u662f\u4e00\u4e2a\u4e3b\u8981\u7684\u6cbb\u7597\u7ec8\u70b9\u3002\r\n\u5c3d\u7ba1\u5982\u6b64\uff0c\u5e72\u6270\u7d20\u6cbb\u7597\u7684HBeAg \u9634\u6027\u7684CHB \u75c5\u4eba\u5e38\u5e38\u4e0d\u80fd\u8fbe\u5230\u8fd9\u4e9b\u6cbb\u7597\u7ec8\u70b9\u3002", - "type": 1, - "title": "" - } - }, - { - "pk": 14, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u53e6\u5916\uff0c\u5927\u6837\u672c\u7814\u7a76\u8868\u660e\uff0c\u5982\u679cHBeAg \u9634\u6027\u7684CHB \u75c5\u4ebaHBV DNA<10,000 \u62f7\u8d1d /mL\uff0c\u90a3\u4e48\u4ed6\u4eec\u53d1\u5c55\u4e3a\u809d\u786c\u5316\u548c\u809d\u7ec6\u80de\u764c\u7684\u5371\u9669\u6027\u964d\u4f4e\u3002", - "type": 1, - "title": "" - } - }, - { - "pk": 15, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u800c\u4e14\uff0c\u672c\u7814\u7a76\u4e2dHBV DNA \u7684\u4e34\u754c\u503c\u4ee5\u53ca\u968f\u8bbf\u671f\u9650\u4e0e\u6700\u8fd1\u7684\u6b27\u6d32\u6307\u5357\u5bf9\u5e72\u6270\u7d20\u6cbb\u7597\u5e94\u7b54\u7684\u5b9a\u4e49\u548c\u51e0\u9879\u91cd\u8981\u7684\u5173\u4e8e\u5e72\u6270\u7d20\u6cbb\u7597\u6162\u6027\u4e59\u809d\u7684\u7814\u7a76\u7684\u968f\u8bbf\u671f\u9650\u5206\u522b\u662f\u4e00\u81f4\u7684\u3002", - "type": 1, - "title": "" - } - }, - { - "pk": 16, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u4e3a\u4ec0\u4e48\u672c\u7814\u7a76\u7684\u603b\u4f53\u6301\u7eed\u5e94\u7b54\u51e0\u7387\u6bd4\u8d77\u5176\u4ed6\u7814\u7a76\u4f1a\u8f83\u4f4e\uff0c\u53ea\u670922%\uff1f\r\n\u8be5\u7814\u7a76\u53d7\u8bd5\u8005\u5927\u591a\u6570\u4eba\u90fd\u662f\u767d\u79cd\u4eba\uff0c\u611f\u67d3\u7684HBV\u57fa\u56e0\u578b\u4e3aA\u548cD\uff0cD\u578b\u60a3\u8005\u5e94\u7b54\u6548\u679c\u4f3c\u4e4e\u4f4e\u4e8e\u5176\u4ed6\u57fa\u56e0\u578b\uff0c\u8fd9\u4e5f\u8bb8\u80fd\u89e3\u91ca\u4e3a\u4ec0\u4e48\u6b64\u7814\u7a76\u7684\u603b\u4f53\u7597\u6548\u6b20\u4f73\u3002", - "type": 1, - "title": "" - } - }, - { - "pk": 17, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u4e3a\u4ec0\u4e48<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\u6e05\u9664\u662f\u91cd\u8981\u7684\u6cbb\u7597\u7ec8\u70b9\uff1f\r\n\u6cbb\u7597\u4e59\u809d\u7684\u65f6\u5019\uff0c<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08HBsAg\uff09\u7684\u6e05\u9664\u80fd\u591f\u4f7f\u5f97\u7ec4\u7ec7\u5b66\u6539\u5584\uff0c\u964d\u4f4e\u809d\u786c\u5316\u548c\u809d\u7ec6\u80de\u764c\u7684\u53d1\u751f\u7387\uff0c\u4ece\u800c\u63d0\u9ad8\u751f\u5b58\u7387\u3002\u6240\u4ee5\u5b83\u73b0\u5728\u53d8\u6210\u4e86\u91cd\u8981\u7684\u6cbb\u7597\u7ec8\u70b9\u3002", - "type": 0, - "title": "" - } - }, - { - "pk": 18, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\u6e05\u9664\u662f\u4e0d\u662f\u5408\u9002\u7684\u77ed\u671f\u6cbb\u7597\u7ec8\u70b9\uff1f\r\n\u4f46\u662f\uff0c<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08\u6e05\u9664\u5e76\u4e0d\u662f\u4e00\u4e2a\u6700\u5408\u9002\u7684\u77ed\u671f\u6cbb\u7597\u7684\u7ec8\u70b9\u56e0\u4e3a\u5728\u63a5\u53d7\u6cbb\u7597\u540e\u5f88\u77ed\u4e00\u6bb5\u65f6\u95f4\u4e4b\u5185\uff0c\u8fd9\u4e2a\u6307\u6807\u88ab\u6e05\u9664\u7684\u51e0\u7387\u5b9e\u5728\u592a\u4f4e\u3002", - "type": 0, - "title": "" - } - }, - { - "pk": 19, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u4ee4\u4eba\u6ee1\u610f\u7684\u6cbb\u7597\u7ec8\u70b9-e\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\r\n\u6700\u8fd1\u7684\u4e34\u5e8a\u6cbb\u7597\u6307\u5357\u5efa\u8baee\u6297\u539f\uff08HBeAg\uff09\u6301\u4e45\u7684\u8840\u6e05\u5b66\u8f6c\u6362\u662f\u4e00\u4e2a\u4ee4\u4eba\u6ee1\u610f\u7684\u6cbb\u7597\u7ec8\u70b9\uff0c\u5728\u6cbb\u7597e\u6297\u539f\u9633\u6027\u6162\u6027\u4e59\u809d\u60a3\u8005\u65f6\u5019\u3002\u56e0\u4e3a\u8fd9\u79cd\u8f6c\u6362\u548c\u826f\u597d\u7684\u9884\u540e\u6709\u5173\u3002\r\n\u901a\u8fc7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597e\u6297\u539f\u9633\u6027\u6162\u6027\u4e59\u809d\u5df2\u7ecf\u88ab\u88ab\u8ba4\u53ef\u4e3a\u662f\u4e00\u7ebf\u6cbb\u7597\u9009\u62e9\u65b9\u6848\uff0c\u56e0\u4e3a\u5b83\u80fd\u591f\u5728\u6709\u9650\u7684\u65f6\u95f4\u5e26\u6765\u6cbb\u7597\u540e\u7684\u6301\u4e45\u5e94\u7b54\u3002\r\n\u5927\u7ea6\u4e09\u5206\u4e4b\u4e00\u7684e\u6297\u539f\u9633\u6027\u6162\u4e59\u809d\u5728\u63a5\u53d7\u5b8c\u6574\u7684\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\u7684\u60a3\u8005\uff0c\u5728\u6cbb\u7597\u7ed3\u675f\u540e6\u4e2a\u6708\u53d1\u751f\u4e86e\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\u3002", - "type": 0, - "title": "" - } - }, - { - "pk": 20, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u5224\u522b\u6cbb\u7597\u65e9\u671f\u5e94\u7b54\u7684\u610f\u4e49\r\n\uff08\u65e0\u8bba\u662f\u6cbb\u7597\u524d\u8fd8\u662f\u6cbb\u7597\u671f\u95f4\uff09\u6cbb\u7597\u65e9\u671f\u65f6\u5019\u5bf9\u4e8e\u60a3\u8005\u5e94\u7b54\u7684\u5224\u522b\u5bf9\u4e8e\u4e34\u5e8a\u533b\u5e08\u662f\u5f88\u6709\u5e2e\u52a9\u7684\uff0c\u56e0\u4e3a\u8fd9\u80fd\u591f\u8ba9\u4e34\u5e8a\u533b\u5e08\u5728\u90a3\u4e9b\u6700\u6709\u53ef\u80fd\u53d1\u751f\u5e94\u7b54\u7684\u4eba\u8eab\u4e0a\u4f7f\u7528\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\uff0c\u800c\u90a3\u4e9b\u5bf9\u4e8e\u5e72\u6270\u7d2048\u5468\u6807\u51c6\u7597\u7a0b\u7684\u6cbb\u7597\u5c06\u6765\u4e0d\u5927\u53ef\u80fd\u53d1\u751f\u5e94\u7b54\u7684\u60a3\u8005\u5e94\u8be5\u5373\u4f7f\u8c03\u6574\u6cbb\u7597\u65b9\u6848\u3002\r\n\u80fd\u591f\u5728\u65e9\u4e9b\u65f6\u5019\u80fd\u591f\u8fa8\u8ba4\u51fa\u60a3\u8005\u4e0d\u9002\u5408\u5e72\u6270\u7d20\u6cbb\u7597\uff0c\u6216\u8005\u8bf4\u5bf9\u4e8e\u5e72\u6270\u7d20\u6cbb\u7597\u4e0d\u56de\u5e94\u7b54\uff0c\u4e5f\u80fd\u591f\u9632\u6b62\u60a3\u8005\u7ecf\u53d7\u4e0d\u5fc5\u8981\u7684\u526f\u4f5c\u7528\u3002", - "type": 0, - "title": "" - } - }, - { - "pk": 21, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u5173\u4e8ecccDNA\u548c<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\u7684\u5173\u7cfb\uff0c\u4ece\u673a\u7406\u4e0a\u89e3\u91ca\u5b9a\u91cf\u68c0\u6d4b<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\u7684\u91cd\u8981\u6027\uff1a\r\n\r\n<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08HBsAg\uff09\u548c\u5171\u4ef7\u95ed\u5408\u73af\u72b6\uff08cccDNA\uff09\u6709\u6b63\u76f8\u5173\uff0c\u4e5f\u5c31\u662f\u8bf4<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\u6c34\u5e73\u5347\u9ad8\u65f6cccDNA\u4e5f\u4f1a\u5347\u9ad8\uff0c\u53cd\u4e4b\u4ea6\u7136\u3002\r\n\r\ncccDNA\u662f\u4e59\u809d\u75c5\u6bd2\u524d\u57fa\u56e0\u7ec4RNA\u590d\u5236\u7684\u539f\u59cb\u6a21\u677f\uff0c\u867d\u7136\u5176\u542b\u91cf\u8f83\u5c11\uff0c\u6bcf\u4e2a\u809d\u7ec6\u80de\u5185\u53ea\u6709\u7ea65\uff5e50\u4e2a\u62f7\u8d1d\uff0c\u6545cccDNA\u53cd\u6620\u4e86\u611f\u67d3\u75c5\u6bd2\u7684\u809d\u7ec6\u80de\u7684\u6570\u91cf\uff0c\u800c\u4e14\u4ed6\u626e\u6f14\u7740\u75c5\u6bd2\u57fa\u56e0\u8f6c\u5f55\u6a21\u677f\u7684\u89d2\u8272\u3002\r\n\r\n\u5373\u4f7f\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09DNA\u68c0\u6d4b\u4e0d\u5230\uff08\u5373\u5316\u9a8c\u5355\u4e0a\u663e\u793a\u9634\u6027\uff09\uff0c\u4f46cccDNA\u5982\u679c\u7ee7\u7eed\u5b58\u5728\u4e8e\u809d\u7ec6\u80de\u4e2d\uff0c\u90a3\u4e48\u60a3\u8005\u8fd8\u662f\u9762\u4e34\u7740HBV\u611f\u67d3\u590d\u53d1\u7684\u53ef\u80fd\u6027\u7684\u3002\u5e72\u6270\u7d20\u7684\u514d\u75ab\u8c03\u8282\u6d3b\u6027\u80fd\u591f\u4fc3\u4f7f\u75c5\u6bd2T\u7ec6\u80de\u7684\u6d3b\u5316\uff0c\u4ece\u800c\u6e05\u9664\u611f\u67d3\u7684\u809d\u7ec6\u80de\uff0c\u4e5f\u5c31\u51cf\u5c11\u4e86cccDNA\u7684\u6570\u91cf\u3002\r\n\r\n\u603b\u7ed3\u4e0a\u9762\u51e0\u70b9\uff0c\u5b9a\u91cf\u68c0\u6d4b<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\u662f\u4e00\u4e2a\u975e\u5e38\u5408\u9002\u7684\u65b9\u6cd5\u6765\u68c0\u6d4b\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u5bf9\u4e8e\u88ab\u611f\u67d3\u7684\u809d\u7ec6\u80de\u7684\u514d\u75ab\u6e05\u9664\u60c5\u51b5\u548c\u5bf9cccDNA\u7684\u6d88\u9664\u60c5\u51b5\u3002", - "type": 1, - "title": "" - } - }, - { - "pk": 22, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u5bf9\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u4ea7\u751f\u514d\u75ab\u5e94\u7b54\u7684\u60a3\u8005\u548c\u6ca1\u6709\u4ea7\u751f\u514d\u75ab\u5e94\u7b54\u7684\u60a3\u8005\uff0c\u5728\u6cbb\u7597\u671f\u95f4<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\u7684\u4e0b\u964d\u7a0b\u5ea6\u662f\u4e0d\u540c\u7684\u3002\u5728\u6cbb\u7597\u671f\u95f4\uff0c\u4f4e<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\u6c34\u5e73\u548c\u66f4\u9ad8\u7684\u5e94\u7b54\u7387\u6709\u5173\u3002", - "type": 1, - "title": "" - } - }, - { - "pk": 23, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u6cbb\u7597\u9636\u6bb5\u7684\u65e9\u671f\u5e94\u7b54\uff0c\u8bf8\u5982<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\u4e0b\u964d\u663e\u8457\uff0c\u5bf9\u4e8e\u60a3\u8005\u575a\u6301\u5b8c\u621048\u5468\u7597\u7a0b\u7684\u6cbb\u7597\u662f\u4e00\u4e2a\u9f13\u52b1\u3002", - "type": 1, - "title": "" - } - }, - { - "pk": 24, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u7528\u4e8e\u9884\u6d4b\u6301\u7eed\u5e94\u7b54\uff08SR\uff09\u7684\u6700\u4f73\u65b9\u6cd5\u662f\u5c06<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08HBsAg\uff09\u5b9a\u91cf\u6c34\u5e73\u4e0e\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09 DNA\u4e0b\u964d\u6c34\u5e73\u7ed3\u5408\u8d77\u6765\u770b\u3002\u7ecf\u7edf\u8ba1\u5904\u7406\u53d1\u73b0\uff0c\u51b3\u5b9a\u662f\u5426\u7ee7\u7eed\u6cbb\u7597\u4e5f\u4e0d\u9700\u8981\u592a\u665a\uff0c\u6bd4\u598224\u5468\uff0c\u56e0\u4e3a\u4e0e12\u5468\u76f8\u6bd4\uff0c24\u5468\u9884\u6d4bSR\u7684\u4f5c\u7528\u5e76\u6ca1\u6709\u66f4\u597d\u4e00\u4e9b\u3002", - "type": 1, - "title": "" - } - }, - { - "pk": 25, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u4e59\u578b\u809d\u708e\u662f\u4e00\u4e2a\u5168\u7403\u8303\u56f4\u5185\u4e3b\u8981\u7684\u5065\u5eb7\u95ee\u9898\u3002\u4e16\u754c\u536b\u751f\u7ec4\u7ec7\uff08WHO\uff09\u66fe\u62a5\u9053\u5927\u7ea6\u5168\u7403\u6709\u8d85\u8fc74\u4ebf\u4e59\u809d\u75c5\u6bd2\u643a\u5e26\u8005\uff0c\u5c06\u8fd175%\u7684\u643a\u5e26\u8005\u5c45\u4f4f\u5728\u4e9a\u6d32\u548c\u897f\u592a\u5e73\u6d0b\u5730\u533a\u3002\u5728\u8fd9\u4e9b\u5730\u533a\uff0cHBV\u611f\u67d3\u7ecf\u5e38\u53d1\u751f\u5728\u56f4\u4ea7\u671f\u548c\u5e7c\u513f\u65f6\u671f\u3002\r\n\u5927\u591a\u6570\u6765\u81ea\u8fd9\u4e9b\u5730\u533a\u7684\u60a3\u8005\u662f\u5178\u578b\u7684e\u6297\u539f\uff08HBeAg\uff09\u9633\u6027\u6162\u6027\u4e59\u578b\u809d\u708e\u60a3\u8005\uff0c\u4ed6\u4eec\u4f53\u5185\u6709\u7740\u9ad8\u6c34\u5e73\u7684\u4e59\u809d\u75c5\u6bd2\uff0c\u5728\u611f\u67d3\u540e\u768410-30\u5e74\uff0c\u4ed6\u4eec\u4f1a\u9010\u6e10\u53d1\u5c55\u6210\u4e25\u91cd\u7684\u809d\u708e\uff0c<a href=\"#jargon-1\" class=\"jargon\">\u8c37\u4e19\u8f6c\u6c28\u9176</a>\uff08ALT\uff09\u4f1a\u4e0a\u5347\u3002\u76f8\u53cd\uff0c\u5728\u7ae5\u5e74\u665a\u671f\u3001\u9752\u6625\u671f\u3001\u6210\u5e74\u540e\u611f\u67d3\u7684\u60a3\u8005\u4f1a\u5728\u611f\u67d3\u540e\u5f88\u77ed\u4e00\u6bb5\u65f6\u95f4\u5185\u51fa\u73b0\u8c37\u4e19\u8f6c\u6c28\u9176\u5347\u9ad8\u3002\r\n\u5c3d\u7ba1\u81ea\u53d1\u7684e\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\u4f1a\u5728\u5927\u591a\u6570e\u6297\u539f\u9633\u6027\u7684\u60a3\u8005\u4e2d\u51fa\u73b0\uff0c\u4f46\u662f\u809d\u708e\u7684\u6301\u7eed\u65f6\u95f4\u4f1a\u53d8\u957f\u800c\u4e14\u75c5\u75c7\u4f1a\u53d8\u5f97\u8d8a\u6765\u8d8a\u4e25\u91cd\uff0c\u53ef\u80fd\u53d1\u5c55\u6210\u809d\u786c\u5316\u3002\u56e0\u6b64\uff0c\u5728ALT\u51fa\u73b0\u5347\u9ad8\u540e\u76843\u52306\u4e2a\u6708\u5185\u5982\u679c\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09DNA\u59cb\u7ec8\u4fdd\u6301\u9ad8\u6c34\u5e73\u7684e\u6297\u539f\u9633\u6027\u60a3\u8005\u5e94\u8be5\u63a5\u53d7\u6297\u75c5\u6bd2\u6cbb\u7597\u3002", - "type": 0, - "title": "\u4e59\u809d\u6982\u51b5" - } - }, - { - "pk": 26, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u4e0d\u7ba1\u662f\u7528\u4ec0\u4e48\u6297\u75c5\u6bd2\u836f\u7269\uff0c\u6210\u529f\u6cbb\u7597\u6162\u6027\u4e59\u809d\u75c5\u6bd2\u611f\u67d3\u90fd\u662f\u6307e\u6297\u539f\u7684\u6e05\u9664\u3001\u8840\u6e05\u4e59\u809d\u75c5\u6bd2DNA\u6c34\u5e73\u7684\u4e0b\u964d\u4ee5\u53ca<a href=\"#jargon-1\" class=\"jargon\">\u8c37\u4e19\u8f6c\u6c28\u9176</a>\u6c34\u5e73\u6062\u590d\u6b63\u5e38\uff0c\u56e0\u4e3a\u8fd9\u4e9b\u6307\u6807\u53d8\u5316\u90fd\u548c\u826f\u597d\u7684\u957f\u671f\u7597\u6548\u6709\u5173\u8054\u3002\r\n<p>\r\n\u5728e\u6297\u539f\u9633\u6027\u7684\u60a3\u8005\u4e2d\uff0c\u8840\u6e05\u4e2d\u6301\u4e45\u7684e\u6297\u539f\u6e05\u9664\u548c\u65e5\u540e\u8840\u6e05\u4e2d<a href=\"#jargon-2\" class=\"jargon\"><a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a></a>\uff08HBsAg\uff09\u7684\u6e05\u9664\u3001\u6f14\u53d8\u6210\u809d\u786c\u5316\u548c\u809d\u7ec6\u80de\u764c\u7684\u51e0\u7387\u7684\u964d\u4f4e\u4ee5\u53ca\u6700\u7ec8\u751f\u5b58\u8d28\u91cf\u7684\u6539\u5584\u6709\u5173\u3002</p>", - "type": 0, - "title": "\u6cbb\u7597\u4e59\u809d\u7684\u666e\u904d\u7684\u6cbb\u7597\u7ec8\u70b9" - } - }, - { - "pk": 27, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u5728\u76ee\u524d\u7684\u6cbb\u7597\u4e59\u809d\u65b9\u6cd5\u4e2d\uff0c\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u4f9d\u7136\u80fd\u591f\u4fc3\u4f7f\u4e00\u5e74\u7597\u7a0b\u7ed3\u675f\u540e\u6700\u9ad8\u7684\u6301\u7eed\u5e94\u7b54\u7387\u3002\u53e6\u5916\uff0c\u5bf9\u57fa\u4e8e\u5e72\u6270\u7d20\u6cbb\u7597\u6709\u5e94\u7b54\u7684\u60a3\u8005\u6709\u5f88\u5927\u7684\u673a\u4f1a\u53d1\u751f<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\u6e05\u9664\u3002\u5728\u4f17\u591a\u8fc7\u53bb\u7684\u7814\u7a76\u4e2d\uff0ce\u6297\u539f\u6e05\u9664\u540e\u968f\u8bbf5\u5e74\u7684\u6570\u636e\u663e\u793a\uff0c12%\u523065%\u7684\u60a3\u8005\u5728\u8fd95\u5e74\u4e2d\u540e\u6765\u51fa\u73b0\u4e86\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u7684\u6e05\u9664\u3002\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\u53d8\u5f97\u76f8\u5bf9\u590d\u6742\u662f\u56e0\u4e3a\u5176\u526f\u4f5c\u7528\u7684\u53d1\u751f\uff0c\u8bf8\u5982\u6d41\u611f\u6837\u75c7\u72b6\u3001\u8840\u7ec6\u80de\u51cf\u5c11\u3001\u6291\u90c1\u3002\r\n<p>\u6838\u82f7\uff08\u9178\uff09\u7c7b\u4f3c\u7269\u8bf8\u5982\u62c9\u7c73\u592b\u5b9a\u3001\u963f\u5fb7\u798f\u97e6\u3001\u6069\u66ff\u5361\u97e6\u548c\u66ff\u8bfa\u798f\u97e6\u75c5\u60a3\u80fd\u591f\u5f88\u597d\u7684\u8010\u53d7\uff0c\u4f46\u662f\u7531\u4e8e\u5e76\u4e0d\u663e\u8457\u7684\u8840\u6e05\u5b66\u8f6c\u6362\u7387\u4ee5\u53ca\u505c\u836f\u540e\u9ad8\u98ce\u9669\u7684\u590d\u53d1\u7387\uff0c\u60a3\u8005\u7ecf\u5e38\u9700\u8981\u5ef6\u957f\u6cbb\u7597\u751a\u81f3\u957f\u671f\u7528\u836f\u3002\u4eca\u5929\uff0c\u901a\u8fc7\u5ef6\u957f\u6cbb\u7597\u4f7f\u5f97\u75c5\u6bd2\u5b66\u5e94\u7b54\u6301\u4e45\u662f\u53ef\u884c\u7684\uff0c\u4f46\u662f\u60a3\u8005\u4ecd\u9762\u4e34\u7740\u957f\u671f\u6cbb\u7597\u8fc7\u7a0b\u4e2d\u7684\u8010\u836f\u98ce\u9669\u3002</p>", - "type": 0, - "title": "\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u548c\u6838\u82f7\uff08\u9178\uff09\u7c7b\u4f3c\u7269\u7b80\u4ecb" - } - }, - { - "pk": 28, - "model": "sciblog.knowledgepiece", - "fields": { - "content": "\u56e0\u4e3a\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u548c\u6838\u82f7\uff08\u9178\uff09\u7c7b\u4f3c\u7269\u7684\u6cbb\u7597\u90fd\u662f\u6709\u6548\u7684\uff0c\u800c\u4e14\u5b83\u4eec\u6709\u5404\u81ea\u7684\u4f18\u70b9\u548c\u7f3a\u9677\uff0c\u6240\u4ee5\u4ec0\u4e48\u6cbb\u7597\u624b\u6bb5\u5728\u4ec0\u4e48\u6837\u7684\u60a3\u8005\u4e2d\u5e94\u4f5c\u4e3a\u4e00\u7ebf\u6cbb\u7597\u65b9\u6848\u4e00\u76f4\u5f88\u53d7\u5173\u6ce8\u3002\u5728\u9009\u62e9\u91c7\u7528\u54ea\u79cd\u6297\u75c5\u6bd2\u6cbb\u7597\u65b9\u6848\u65f6\uff0c\u836f\u7269\u4f7f\u5f97\u60a3\u8005\u83b7\u5f97\u5e94\u7b54\u7684\u51e0\u7387\u548c\u60a3\u8005\u81ea\u8eab\u7684\u7279\u5f81\u90fd\u5e94\u4e88\u4ee5\u8003\u8651\u3002\r\n\r\n<p>\u6700\u8fd1\u8bb8\u591a\u5173\u4e8e\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u4e3a\u671f1\u5e74\u6cbb\u7597e\u6297\u539f\u9633\u6027\u4e59\u809d\u60a3\u8005\u7684\u7814\u7a76\u8bc1\u5b9e\uff0c\u57fa\u7ebf\u9ad8<a href=\"#jargon-1\" class=\"jargon\">\u8c37\u4e19\u8f6c\u6c28\u9176</a>\uff08ALT\uff09\u6c34\u5e73\u3001\u4f4e\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09DNA\u6c34\u5e73\u4ee5\u53ca\u4e4b\u524d\u6ca1\u6709\u63a5\u53d7\u8fc7\u5e72\u6270\u7d20\u6cbb\u7597\u3001\u57fa\u7ebf\u4f4ee\u6297\u539f\uff08HBeAg\uff09\u6c34\u5e73\u3001HBV\u57fa\u56e0\u578b\uff08A\u3001B\u578b\uff09\u662f\u80fd\u591f\u83b7\u5f97\u5e94\u7b54\u7684\u9884\u6d4b\u56e0\u5b50\u3002</p>\r\n\r\n<p>\u96f6\u4e5d\u5e74\u7684\u6b27\u6d32\u809d\u75c5\u534f\u4f1a\u4e34\u5e8a\u6cbb\u7597\u6307\u5357\u5e76\u6ca1\u6709\u63d0\u4f9b\u7279\u6b8a\u7684\u5efa\u8bae\u6765\u6307\u5bfc\u4e34\u5e8a\u54ea\u4e9b\u60a3\u8005\u9002\u5408\u4f7f\u7528\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6765\u6cbb\u7597\uff1b\u65e9\u671f\u7684\u7814\u7a76\u4e2d\u5173\u4e8e\u7c7b\u4f3c\u7684\u8bc1\u636e\u4e5f\u5f88\u5c11\u3002\u6240\u4ee5\uff0c\u672c\u7814\u7a76\u4e2d\u7684\u76ee\u7684\u5c31\u662f\u7814\u7a76\u51fa\u4e00\u4e2a\u6a21\u578b\uff1a\u80fd\u591f\u7528\u6765\u9884\u6d4be\u6297\u539f\u9633\u6027\u6162\u4e59\u809d\u60a3\u8005\u5728\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\u540e\uff0c\u83b7\u5f97\u6301\u4e45\u5e94\u7b54\u7684\u51e0\u7387\u3002</p>\r\n\r\n<p>\u8fd9\u4e2a\u6a21\u578b\u80fd\u591f\u4f7f\u5f97\u5168\u7403\u7684\u4e34\u5e8a\u533b\u5e08\u9009\u62e9\u6700\u9002\u5408\u4f7f\u7528\u8be5\u836f\u7269\u8fdb\u884c\u6cbb\u7597\u7684\u60a3\u8005\u3002</p>", - "type": 0, - "title": "\u5982\u4f55\u66f4\u52a0\u79d1\u5b66\u5730\u4e8b\u5148\u627e\u5230\u6700\u9002\u5408\u4f7f\u7528\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u7684\u60a3\u8005\uff1f--\u9884\u6d4b\u7684\u5a01\u529b " - } - }, - { - "pk": 1, - "model": "sciblog.blogannotation", - "fields": { - "no": null, - "blogs": [ - 1, - 2, - 4 - ], - "collected_by": [ - 1, - 4 - ], - "detail": "\u3010\u56fe\u89e3\u3011\u56fe\u4e2d\u53ef\u4ee5\u770b\u5230\u8c37\u4e19\u8f6c\u6c28\u9176\u7684\u53c2\u8003\u503c\u4e3a0-45U/L\uff0c\u6bcf\u5bb6\u533b\u9662\u53c2\u8003\u503c\u4e0d\u4e00\u6837\uff0c\u7f16\u53f7\u4e3aALT\uff0c\u53ef\u4ee5\u53c2\u8003\u76f8\u5bf9\u6570\u503c\u3002\u5982\u679c\u53c2\u8003\u503c\u5355\u4f4d\u51fa\u73b0IU/L\uff0c\u5219\u4e0eU/L\u5e76\u65e0\u591a\u5927\u5dee\u8ddd\uff0c\u800c\u82e5\u51fa\u73b0\u62f7\u8d1d/mL\uff0c\u5219\u53ef\u4ee5\u6309\u71675\u500dU/L\u7ea6\u7b49\u4e8e1\u500d\u62f7\u8d1d/mL\u8fdb\u884c\u6362\u7b97\u3002\r\n\u3010\u6982\u8ff0\u3011<p>\u8c37\u4e19\u8f6c\u6c28\u9176\u662f\u4e00\u79cd\u5b58\u5728\u8840\u6e05\u548c\u5927\u91cf\u7ec4\u7ec7\u5668\u5b98\u4e2d\u7684\u4e00\u79cd\u8f6c\u6c28\u9176\uff0c\u4f46\u662f\u6b64\u79cd\u9176\u5927\u591a\u4e0e\u809d\u810f\u76f8\u5173\u3002\u6b64\u79cd\u9176\u5728\u809d\u810f\u5faa\u73af\u4e2d\u8d77\u7740\u50ac\u5316\u7684\u4f5c\u7528\uff0c\u809d\u810f\u5185\u4e0d\u65ad\u8fdb\u884c\u7740\u4e19\u916e\u9178+\u8c37\u6c28\u9178=alpha\u916e\u620a\u4e8c\u9178+\u4e19\u6c28\u9178\u7684\u5faa\u73af\uff0c\u7ed9\u673a\u4f53\u63d0\u4f9b\u6709\u6548\u7684\u6c28\u57fa\u9178\uff0c\u8c37\u4e19\u8f6c\u6c28\u9178\u7684\u5347\u9ad8\u4f7f\u5f97\u916e\u620a\u4e8c\u9178\u4e0d\u65ad\u4ea7\u751f\uff0c\u5bfc\u81f4\u809d\u810f\u708e\u75c7\u7684\u4ea7\u751f\u3002\r\n\u4e0d\u8fc7\u8c37\u4e19\u8f6c\u6c28\u9176</p>\u5347\u9ad8\u4e5f\u5e76\u4e0d\u5168\u7136\u662f\u7531\u4e8e\u751f\u75c5\u7684\u539f\u56e0\uff0c\u6709\u7684\u65f6\u5019\u5267\u70c8\u8fd0\u52a8\u4e5f\u662f\u4f1a\u5bfc\u81f4\u8c37\u4e19\u8f6c\u6c28\u9176\u5347\u9ad8\r\n\uff081\uff09\u6458\u81ea\u7ef4\u57fa\u767e\u79d1<a href='http://zh.wikipedia.org/wiki/%E8%B0%B7%E4%B8%99%E8%BD%AC%E6%B0%A8%E9%85%B6'>\u201c\u8c37\u4e19\u8f6c\u6c28\u9176\u201d</a>\r\n\uff082\uff09Molecular Testing in the Diagnosis and Management of Chronic Hepatitis B\r\nhttp://cmr.asm.org/content/20/3/426.full\r\n\u3010\u56fe\u89e3\u3011\u56fe\u4e2d\u53ef\u4ee5\u770b\u5230\u8c37\u4e19\u8f6c\u6c28\u9176\u7684\u53c2\u8003\u503c\u4e3a0-45U/L\uff0c\u6bcf\u5bb6\u533b\u9662\u53c2\u8003\u503c\u4e0d\u4e00\u6837\uff0c\u7f16\u53f7\u4e3aALT\uff0c\u53ef\u4ee5\u53c2\u8003\u76f8\u5bf9\u6570\u503c\u3002\u5982\u679c\u53c2\u8003\u503c\u5355\u4f4d\u51fa\u73b0IU/L\uff0c\u5219\u4e0eU/L\u5e76\u65e0\u591a\u5927\u5dee\u8ddd\uff0c\u800c\u82e5\u51fa\u73b0\u62f7\u8d1d/mL\uff0c\u5219\u53ef\u4ee5\u6309\u71675\u500dU/L\u7ea6\u7b49\u4e8e1\u500d\u62f7\u8d1d/mL\u8fdb\u884c\u6362\u7b97\u3002\r\n\u3010\u6982\u8ff0\u3011\u8c37\u4e19\u8f6c\u6c28\u9176\u662f\u4e00\u79cd\u5b58\u5728\u8840\u6e05\u548c\u5927\u91cf\u7ec4\u7ec7\u5668\u5b98\u4e2d\u7684\u4e00\u79cd\u8f6c\u6c28\u9176\uff0c\u4f46\u662f\u6b64\u79cd\u9176\u5927\u591a\u4e0e\u809d\u810f\u76f8\u5173\u3002\u6b64\u79cd\u9176\u5728\u809d\u810f\u5faa\u73af\u4e2d\u8d77\u7740\u50ac\u5316\u7684\u4f5c\u7528\uff0c\u809d\u810f\u5185\u4e0d\u65ad\u8fdb\u884c\u7740\u4e19\u916e\u9178+\u8c37\u6c28\u9178=alpha\u916e\u620a\u4e8c\u9178+\u4e19\u6c28\u9178\u7684\u5faa\u73af\uff0c\u7ed9\u673a\u4f53\u63d0\u4f9b\u6709\u6548\u7684\u6c28\u57fa\u9178\uff0c\u8c37\u4e19\u8f6c\u6c28\u9178\u7684\u5347\u9ad8\u4f7f\u5f97\u916e\u620a\u4e8c\u9178\u4e0d\u65ad\u4ea7\u751f\uff0c\u5bfc\u81f4\u809d\u810f\u708e\u75c7\u7684\u4ea7\u751f\u3002\r\n\u4e0d\u8fc7\u8c37\u4e19\u8f6c\u6c28\u9176\u5347\u9ad8\u4e5f\u5e76\u4e0d\u5168\u7136\u662f\u7531\u4e8e\u751f\u75c5\u7684\u539f\u56e0\uff0c\u6709\u7684\u65f6\u5019\u5267\u70c8\u8fd0\u52a8\u4e5f\u662f\u4f1a\u5bfc\u81f4\u8c37\u4e19\u8f6c\u6c28\u9176\u5347\u9ad8\r\n\uff081\uff09\u6458\u81ea\u7ef4\u57fa\u767e\u79d1<a href='http://zh.wikipedia.org/wiki/%E8%B0%B7%E4%B8%99%E8%BD%AC%E6%B0%A8%E9%85%B6'>\u201c\u8c37\u4e19\u8f6c\u6c28\u9176\u201d</a>\r\n\uff082\uff09Molecular Testing in the Diagnosis and Management of Chronic Hepatitis B\r\nhttp://cmr.asm.org/content/20/3/426.full\r\n\u6587\u7ae0\u4e3b\u8981\u9488\u5bf9HBV\u7684\u5206\u5b50\u7ed3\u6784\u8fdb\u884c\u7814\u7a76\uff0c\u540c\u65f6\u63ed\u9732\u75c5\u6bd2\u590d\u5236\u60c5\u51b5\uff0c\u53d8\u5f02\u60c5\u51b5\u4ee5\u53ca\u4e00\u4e9b\u8bca\u65ad\u7684\u6307\u6807\u6570\u636e\uff0c\u4e3a\u4e86\u8ba9\u4eba\u4eec\u66f4\u597d\u7684\u7406\u89e3\u6162\u6027\u4e59\u809d\uff0c\u5e76\u63d0\u4f9b\u4e00\u5b9a\u7684\u6cbb\u7597\u63a8\u8350", - "figures": [], - "keywords": [ - 1 - ], - "brief_content": "\u8c37\u4e19\u8f6c\u6c28\u9176", - "type": 1 - } - }, - { - "pk": 2, - "model": "sciblog.blogannotation", - "fields": { - "no": null, - "blogs": [ - 1, - 2, - 3 - ], - "collected_by": [ - 1, - 2, - 3 - ], - "detail": "test", - "figures": [], - "keywords": [ - 2 - ], - "brief_content": "\u8868\u9762\u6297\u539f", - "type": 1 - } - }, - { - "pk": 3, - "model": "sciblog.blogannotation", - "fields": { - "no": null, - "blogs": [ - 1 - ], - "collected_by": [ - 2 - ], - "detail": "HBsAg \u53d1\u751f\u8840\u6e05\u5b66\u8f6c\u6362\u662f\u7406\u60f3\u7ec8\u70b9\uff0c\u8fd9\u70b9\u5728EASL2012\u7684\u4e34\u5e8a\u6cbb\u7597\u6307\u5357\u4e2d\u6709\u6240\u63d0\u53ca\u3002", - "figures": [], - "keywords": [ - 1, - 2 - ], - "brief_content": "\u4ec0\u4e48\u662f\u7406\u60f3\u7ec8\u70b9\uff1f\u6cbb\u7597\u6307\u5357\u4e2d\u6709\u6ca1\u6709\u63d0\u53ca\uff1f ", - "type": 0 - } - }, - { - "pk": 1, - "model": "sciblog.guideline", - "fields": { - "content": "HBeAg\u9634\u6027\u4e59\u809d\u60a3\u8005\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u6cbb\u7597\u7684\u8fc7\u7a0b\u4e2d\uff0c\u540c\u65f6\u5b9a\u91cf\u68c0\u6d4bHBsAg\u548cHBV DNA\u80fd\u591f\u5e2e\u52a9\u51b3\u5b9a\u7ee7\u7eed\u8fd8\u662f\u505c\u6b62\u6cbb\u7597\u65b9\u6848\u3002\r\n\r\n\u5f53\u7136\u5f88\u660e\u663e\u7684\u662f\uff0c\u6700\u7ec8\u7684\u51b3\u5b9a\u662f\u5426\u7ee7\u7eed\u6cbb\u7597\u8fd8\u8981\u57fa\u4e8e\u533b\u751f\u7684\u5224\u5b9a\uff0c\u4ed6\uff08\u5979\uff09\u5e94\u8be5\u5c06\u5176\u4ed6\u56e0\u7d20\uff0c\u8bf8\u5982\u75c5\u4eba\u5bf9\u4e8e\u836f\u7269\u7684\u8010\u53d7\uff0c\u8003\u8651\u8fdb\u53bb\u3002\r\n\r\n\u5173\u4e8e\u51b3\u5b9a\u65f6\u95f4\uff1a\r\n\r\n\u6cbb\u7597\u768412\u5468\u4ee5\u524d\u8fd8\u4e0d\u80fd\u4e3a\u662f\u5426\u8981\u505c\u6b62\u6cbb\u7597\u5236\u5b9a\u4e34\u5e8a\u6307\u5bfc\u539f\u5219\uff0c\u56e0\u4e3aHBsAg\u548cHBV DNA\u6c34\u5e73\u5728\u524d8\u5468\u7684\u53d8\u5316\u4e0d\u80fd\u63d0\u4f9b\u8db3\u591f\u7684\u8bc1\u636e\u3002\r\n\r\n\u53e6\u4e00\u65b9\u9762\uff0c\u8fc7\u4e8612\u5468\uff0c\u51b3\u5b9a\u201c\u662f\u5426\u7ee7\u7eed\u6cbb\u7597\u201d\u4e0d\u5e94\u8be5\u63a8\u8fdf\u5230\u592a\u665a\uff0c\u56e0\u4e3a\u6570\u5b66\u7edf\u8ba1\u5904\u7406\u8868\u793a\u9884\u6d4b\u83b7\u5f97SR\u51e0\u7387\u7684\u4f5c\u7528\uff08\u6216\u8005\u7cbe\u51c6\u5ea6\uff09\u572824\u5468\u5e76\u6ca1\u6709\u6bd412\u5468\u66f4\u597d\u3002", - "figures": [] - } - }, - { - "pk": 1, - "model": "sciblog.endpoint", - "fields": { - "content": "\u6cbb\u7597\u7ed3\u675f\u968f\u8bbf24\u5468\u4ee5\u540e\uff0c<a href=\"#jargon-1\" class=\"jargon\"><a href=\"#jargon-1\" class=\"jargon\">\u8c37\u4e19\u8f6c\u6c28\u9176</a></a>\uff08ALT\uff09\u6062\u590d\u6b63\u5e38\u6c34\u5e73", - "indicator": null, - "type": 1 - } - }, - { - "pk": 2, - "model": "sciblog.endpoint", - "fields": { - "content": "\u6cbb\u7597\u7ed3\u675f\u968f\u8bbf24\u5468\u4ee5\u540e\uff0c\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09DNA\u6c34\u5e73\u4e0b\u964d\u523020,000\u62f7\u8d1d/mL", - "indicator": null, - "type": 1 - } - }, - { - "pk": 3, - "model": "sciblog.endpoint", - "fields": { - "content": "\u6cbb\u7597\u7ed3\u675f\u968f\u8bbf24\u5468\u4ee5\u540e\uff0c<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08HBsAg\uff09\u6e05\u9664", - "indicator": null, - "type": 2 - } - }, - { - "pk": 4, - "model": "sciblog.endpoint", - "fields": { - "content": "\u6cbb\u7597\u7ed3\u675f\u968f\u8bbf24\u5468\u4ee5\u540e\uff0c<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08HBsAg\uff09\u8840\u6e05\u5b66\u8f6c\u6362\uff08\u5b9a\u4e49\u4e3a<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>HBsAg\u6e05\u9664\u800c\u4e14\u8868\u9762\u6297\u4f53HBsAb\u51fa\u73b0\uff09", - "indicator": null, - "type": 2 - } - }, - { - "pk": 5, - "model": "sciblog.endpoint", - "fields": { - "content": "\u6cbb\u7597\u7ed3\u675f\u968f\u8bbf24\u5468\u4ee5\u540e\uff0c\u7ec4\u7ec7\u5b66\u5e94\u7b54\uff08\u5b9a\u4e49\u4e3aMHAI, The Ishak modified histological activity index\u4e0b\u964d\u81f3\u5c112\u5206\uff09", - "indicator": null, - "type": 2 - } - }, - { - "pk": 6, - "model": "sciblog.endpoint", - "fields": { - "content": "\u6cbb\u7597\u7ed3\u675f\u968f\u8bbf24\u5468\u4ee5\u540e\uff0c\u4e59\u809d\u75c5\u6bd2\uff08DNA\u6c34\u5e73\uff09\u4e0b\u964d\u5230400\u62f7\u8d1d\u4ee5\u4e0b", - "indicator": null, - "type": 2 - } - }, - { - "pk": 7, - "model": "sciblog.endpoint", - "fields": { - "content": "\u968f\u8bbf\u7ec8\u70b9\uff08\u7b2c72\u5468\uff09\u7684\u65f6\u5019\uff0cHBV DNA\u6c34\u5e73\u5c0f\u4e8e10000\u62f7\u8d1d/ml\uff08\u76f8\u5f53\u4e8e1714 IU/mL \uff09", - "indicator": null, - "type": 1 - } - }, - { - "pk": 8, - "model": "sciblog.endpoint", - "fields": { - "content": "e\u6297\u539f\uff08HBeAg\uff09\u8840\u6e05\u5b66\u8f6c\u6362", - "indicator": null, - "type": 1 - } - }, - { - "pk": 9, - "model": "sciblog.endpoint", - "fields": { - "content": "\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09DNA\u5c0f\u4e8e\u7b49\u4e8e2,000IU/mL\uff08\u76f8\u5f53\u4e8e\u5927\u698210,000\u62f7\u8d1d/mL\uff09", - "indicator": null, - "type": 1 - } - }, - { - "pk": 10, - "model": "sciblog.endpoint", - "fields": { - "content": "\u6cbb\u7597\u7ed3\u675f\u540e6\u4e2a\u6708\u968f\u8bbf\u671f\u95f4\u53d1\u751f<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08HBsAg\uff09\u6e05\u9664", - "indicator": null, - "type": 1 - } - }, - { - "pk": 1, - "model": "sciblog.cliniccondition", - "fields": { - "content": "e\u6297\u539f\uff08HBeAg\uff09\u9634\u6027\u81f3\u5c11\u516d\u4e2a\u6708", - "indicator": null, - "type": 0 - } - }, - { - "pk": 2, - "model": "sciblog.cliniccondition", - "fields": { - "content": "e\u6297\u4f53\uff08HBeAb\uff09\u81f3\u5c11\u9633\u6027\u516d\u4e2a\u6708", - "indicator": null, - "type": 0 - } - }, - { - "pk": 3, - "model": "sciblog.cliniccondition", - "fields": { - "content": "\u4e59\u809d\u75c5\u6bd2\uff08DNA\uff09\u6c34\u5e73\u81f3\u5c11100,000\u62f7\u8d1d/mL", - "indicator": null, - "type": 0 - } - }, - { - "pk": 4, - "model": "sciblog.cliniccondition", - "fields": { - "content": "\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u57281\u500d\u6b63\u5e38\u503c\u4e0a\u9650\uff08ULN\uff09\u548c10\u88ab\u6b63\u5e38\u503c\u4e0a\u9650\u4e4b\u95f4", - "indicator": null, - "type": 0 - } - }, - { - "pk": 5, - "model": "sciblog.cliniccondition", - "fields": { - "content": "\u5728\u8fc7\u53bb24\u4e2a\u6708\u5185\u809d\u810f\u6d3b\u68c0\u8bc1\u5b9e\u6709\u809d\u708e", - "indicator": null, - "type": 0 - } - }, - { - "pk": 6, - "model": "sciblog.cliniccondition", - "fields": { - "content": "\u60a3\u6709\u5931\u4ee3\u507f\u809d\u786c\u5316", - "indicator": null, - "type": 1 - } - }, - { - "pk": 7, - "model": "sciblog.cliniccondition", - "fields": { - "content": "\u66fe\u7ecf\u6709\u8fc7\u4e25\u91cd\u7684\u7cbe\u795e\u548c\u5185\u79d1\u75be\u75c5", - "indicator": null, - "type": 1 - } - }, - { - "pk": 8, - "model": "sciblog.cliniccondition", - "fields": { - "content": "\u4e00\u5f00\u59cb\u4e2d\u6027\u7c92\u7ec6\u80de\u6570\u5c0f\u4e8e1500/mm3", - "indicator": null, - "type": 1 - } - }, - { - "pk": 9, - "model": "sciblog.cliniccondition", - "fields": { - "content": "\u8840\u5c0f\u677f\u6570\u91cf\u5c0f\u4e8e90,000/mm3", - "indicator": null, - "type": 1 - } - }, - { - "pk": 10, - "model": "sciblog.cliniccondition", - "fields": { - "content": "\u8840\u6e05\u808c\u9150\u4e3a\u6b63\u5e38\u503c\u4e0a\u9650\u7684\u81f3\u5c111.5\u500d\u4ee5\u4e0a", - "indicator": null, - "type": 1 - } - }, - { - "pk": 11, - "model": "sciblog.cliniccondition", - "fields": { - "content": "\u5165\u7ec4\u524d\u4e00\u5e74\u5185\u6709\u8fc7\u8fc7\u5ea6\u996e\u9152\u6216\u8005\u6ee5\u7528\u836f\u7269\u7684\u7ecf\u5386", - "indicator": null, - "type": 1 - } - }, - { - "pk": 12, - "model": "sciblog.cliniccondition", - "fields": { - "content": "\u5728\u6700\u8fd1\u76846\u4e2a\u6708\u5185\u63a5\u53d7\u8fc7\u6297\uff08\u4e59\u809d\uff09\u75c5\u6bd2\u6cbb\u7597", - "indicator": null, - "type": 1 - } - }, - { - "pk": 13, - "model": "sciblog.cliniccondition", - "fields": { - "content": "\u5408\u5e76\u4e19\u578b\u809d\u708e\uff08HCV\uff09\u3001\u4e01\u809d\u6216\u8005HIV", - "indicator": null, - "type": 1 - } - }, - { - "pk": 14, - "model": "sciblog.cliniccondition", - "fields": { - "content": "<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08HBsAg\uff09\u81f3\u5c11\u9633\u6027\u516d\u4e2a\u6708", - "indicator": null, - "type": 0 - } - }, - { - "pk": 15, - "model": "sciblog.cliniccondition", - "fields": { - "content": "\u5165\u7ec4\u524d2\u4e2a\u6708\u5185\uff0ce\u6297\u539f\uff08HBeAg\uff09\u88ab\u53d1\u73b0\u9634\u6027\u81f3\u5c11\u4e24\u6b21", - "indicator": null, - "type": 0 - } - }, - { - "pk": 16, - "model": "sciblog.cliniccondition", - "fields": { - "content": "\u5165\u7ec4\u524d2\u4e2a\u6708\uff0ce\u6297\u4f53\uff08HBeAb\uff09\u88ab\u53d1\u73b0\u9634\u6027\u81f3\u5c11\u4e24\u6b21", - "indicator": null, - "type": 0 - } - }, - { - "pk": 17, - "model": "sciblog.cliniccondition", - "fields": { - "content": "\u5165\u7ec4\u524d2\u4e2a\u6708\uff0c\u81f3\u5c11\u4e24\u6b21<a href=\"#jargon-1\" class=\"jargon\">\u8c37\u4e19\u8f6c\u6c28\u9176</a>\uff08ALT\uff09\u5904\u57281.5\u523010\u500d\u6b63\u5e38\u503c\u4e0a\u9650\uff08ULN\uff09\u4e4b\u95f4", - "indicator": null, - "type": 0 - } - }, - { - "pk": 18, - "model": "sciblog.cliniccondition", - "fields": { - "content": "\u4e59\u809d\u75c5\u6bd2\uff08HBV DNA\uff09\u6c34\u5e73\u5927\u4e8e100,000\u62f7\u8d1d/ml\uff08\u76f8\u5f53\u4e8e17,143IU/ml\uff09", - "indicator": null, - "type": 0 - } - }, - { - "pk": 19, - "model": "sciblog.cliniccondition", - "fields": { - "content": "\u5165\u7ec4\u524d\u516d\u4e2a\u6708\u524d\u63a5\u53d7\u8fc7\u6297\u75c5\u6bd2\u6216\u8005\u514d\u75ab\u6291\u5236\u5242\u6cbb\u7597", - "indicator": null, - "type": 1 - } - }, - { - "pk": 20, - "model": "sciblog.cliniccondition", - "fields": { - "content": "\u60a3\u6709\u5176\u4ed6\u83b7\u5f97\u6027\u6216\u8005\u9057\u4f20\u6027\u7684\u809d\u810f\u75be\u75c5", - "indicator": null, - "type": 1 - } - }, - { - "pk": 21, - "model": "sciblog.cliniccondition", - "fields": { - "content": "\u66fe\u7ecf\u6709\u8fc7\u7ec6\u80de\u51cf\u5c11\u75c7\u6216\u8005\u5931\u4ee3\u507f\u809d\u75c5", - "indicator": null, - "type": 1 - } - } -]
\ No newline at end of file diff --git a/97suifangqa/apps/sciblog/managers.py b/97suifangqa/apps/sciblog/managers.py index 8ec0773..9b0e01a 100644 --- a/97suifangqa/apps/sciblog/managers.py +++ b/97suifangqa/apps/sciblog/managers.py @@ -9,14 +9,18 @@ class AnnotationManager(models.Manager): def paracomments(self): u''' 获取段落注释 + + PARAGRAPH: 0 ''' - return self.filter(type = self.PARAGRAPH) + return self.filter(type = 0) def propernouns(self): u''' 获取专有名词 + + PROPER_NOUN: 1 ''' - return self.filter(type = self.PROPER_NOUN) + return self.filter(type = 1) def all_json(self, user = AnonymousUser()): u''' diff --git a/97suifangqa/apps/sciblog/models.py b/97suifangqa/apps/sciblog/models.py index 48f8a09..abee4cc 100644 --- a/97suifangqa/apps/sciblog/models.py +++ b/97suifangqa/apps/sciblog/models.py @@ -28,6 +28,8 @@ class SciBlog(models.Model): treatment_content = models.TextField(u"treatmentContent", blank=True) safety = models.TextField(u"安全性", blank=True) + + hospital = models.ManyToManyField("location.Hospital", verbose_name=u"作者医院", related_name="sciblogs", null=True, blank=True) guidline = models.OneToOneField("Guideline", verbose_name=u"临床策略", related_name="blog", null=True, blank=True) baseline = models.ManyToManyField("BaseLine", verbose_name=u"研究基线", related_name="blog", null=True, blank=True) @@ -50,7 +52,7 @@ class SciBlog(models.Model): verbose_name_plural = u"文章" def __unicode__(self): - return "< SciBlog: %s >" % self.title + return "%s %s" % (self.id, self.subhead) def show(self): """ @@ -169,7 +171,7 @@ class KnowledgePiece(models.Model): verbose_name_plural = u"知识条目" def __unicode__(self): - return "< KnowledgePiece: %s %s >" % (self.id, self.content if len(self.content) < 20 else self.content[0:20]) + return "< %d %s >" % (self.type, self.content if len(self.content) < 20 else self.content[0:20]) # }}} @@ -203,12 +205,13 @@ class BlogAnnotation(models.Model): verbose_name=u"收藏者", related_name="annotation_collection", null=True, blank=True) objects = AnnotationManager() + blogListWords = models.TextField(u"blogPosition", blank=True) class Meta: verbose_name_plural = u"文章注释" def __unicode__(self): - return "<BlogAnnotation: %s>" % get_abstract(self.brief_content) + return "%s" % get_abstract(self.brief_content) def show(self): """ @@ -233,7 +236,7 @@ class BlogAnnotation(models.Model): bloglist页面二上内容的阶段, django里面的注释第一段的末尾都是一个空格 ''' - return self.detail.split(' ')[0] + return self.detail.split('</p>')[0]+'...</p>' def is_collected_by(self, user): u''' @@ -282,7 +285,7 @@ class EndPoint(models.Model): verbose_name_plural = u"治疗终点" def __unicode__(self): - return "<EndPoint: %s>" % get_abstract(self.content) + return "%s, %s" % (self.type,get_abstract(self.content)) # }}} @@ -373,10 +376,9 @@ admin.site.register([ Source, Reference, KnowledgePiece, + ResultContent, Guideline, ClinicCondition, BaseLine, - ResultContent, - BlogAnnotation, UserCollection, ]) diff --git a/97suifangqa/apps/sciblog/signals.py b/97suifangqa/apps/sciblog/signals.py index b2b2ce9..a7d0604 100644 --- a/97suifangqa/apps/sciblog/signals.py +++ b/97suifangqa/apps/sciblog/signals.py @@ -35,7 +35,7 @@ def mark_keywords_in_textfield(model, fields, related_name='NONE'): mark_keywords_in_textfield(SciBlog, ['abstract_result', 'method', 'aim', 'abstractAE', 'treatment_content', 'endpoint_content', 'detectionAssay'], 'blogs') -mark_keywords_in_textfield(ResultContent, ['abstract', 'content', 'card_content']) +mark_keywords_in_textfield(ResultContent, ['content']) mark_keywords_in_textfield(Reference, ['description']) mark_keywords_in_textfield(KnowledgePiece, ['content']) mark_keywords_in_textfield(Guideline, ['content']) diff --git a/97suifangqa/apps/sciblog/views.py b/97suifangqa/apps/sciblog/views.py index 1bd7cf8..d4b81eb 100644 --- a/97suifangqa/apps/sciblog/views.py +++ b/97suifangqa/apps/sciblog/views.py @@ -91,14 +91,14 @@ def query(request): request.session['search_history'] = '&&&'.join(search_history) results = form.search() - (has_blogs, blogs) = generator_has_content(limit(objects_of_sqs(results),10)) + (has_blogs, blogs) = generator_has_content(limit(objects_of_sqs(results),20)) questuinsqs = QuerySearchForm(request.GET).search() (has_relate_questions, questions) = generator_has_content(limit(objects_of_sqs(questuinsqs),8)) ppnounsqs = ProperNounSearchForm(request.GET).search() - (hasppnouns, ppnouns) = generator_has_content(limit(objects_of_sqs(ppnounsqs),10)) + (hasppnouns, ppnouns) = generator_has_content(limit(objects_of_sqs(ppnounsqs),5)) return render(request, 'sciblog/blog_list.html', locals()) else: - (has_blogs, blogs) = generator_has_content(limit(sm.SciBlog.objects.all(),10)) + (has_blogs, blogs) = generator_has_content(limit(sm.SciBlog.objects.all(),30)) return render(request, 'sciblog/blog_list.html', locals()) @@ -109,7 +109,7 @@ def blog_collection(request): has_blogs = len(blogs) > 0 ppnouns = request.user.annotation_collection.all() has_ppnouns = request.user.annotation_collection.count() > 0 - return render(request, 'sciblog/blog_list.html', locals()) + return render(request, 'sciblog/blog_list_collection.html', locals()) @login_required diff --git a/97suifangqa/apps/sfaccount/templates/sfaccount/activate.html b/97suifangqa/apps/sfaccount/templates/sfaccount/activate.html index 1a6c6f9..ab1fc6a 100644 --- a/97suifangqa/apps/sfaccount/templates/sfaccount/activate.html +++ b/97suifangqa/apps/sfaccount/templates/sfaccount/activate.html @@ -2,7 +2,7 @@ {% load staticfiles %} {% block title %} -激活账户 | 97 随访 +激活账户 | 医时代 {% endblock %} {% block bodyclasses %}{{ block.super }} registration signup{% endblock %} @@ -82,7 +82,7 @@ {% endblock %} {% block body %} - <h2>加入97随访   科学了解乙肝治疗</h2> + <h2>加入医时代   科学了解乙肝治疗</h2> <div class="activate_failed" style="display: {% if activate_failed %}block{% else %}none{% endif %} ;"> <h4>激活账户失败</h4> diff --git a/97suifangqa/apps/sfaccount/templates/sfaccount/activate_done.html b/97suifangqa/apps/sfaccount/templates/sfaccount/activate_done.html index 8432a39..fc388aa 100644 --- a/97suifangqa/apps/sfaccount/templates/sfaccount/activate_done.html +++ b/97suifangqa/apps/sfaccount/templates/sfaccount/activate_done.html @@ -2,7 +2,7 @@ {% load staticfiles %} {% block title %} -账户已激活 | 97 随访 +账户已激活 | 医时代 {% endblock %} {% block othercss %} @@ -23,9 +23,9 @@ {% endblock %} {% block body %} - <h2>加入97随访   科学了解乙肝治疗</h2> + <h2>加入医时代   科学了解乙肝治疗</h2> - <h4>欢迎加入97随访!</h4> + <h4>欢迎加入医时代!</h4> <p>您的账户已成功激活,现在您可以登录使用。</p> <p> diff --git a/97suifangqa/apps/sfaccount/templates/sfaccount/activate_send_mail.html b/97suifangqa/apps/sfaccount/templates/sfaccount/activate_send_mail.html index e95a881..5072ae4 100644 --- a/97suifangqa/apps/sfaccount/templates/sfaccount/activate_send_mail.html +++ b/97suifangqa/apps/sfaccount/templates/sfaccount/activate_send_mail.html @@ -2,7 +2,7 @@ {% load staticfiles %} {% block title %} -重发激活邮件 | 97 随访 +重发激活邮件 | 医时代 {% endblock %} {% block othercss %} @@ -10,7 +10,7 @@ {% endblock %} {% block body %} - <h2>加入97随访   科学了解乙肝治疗</h2> + <h2>加入医时代   科学了解乙肝治疗</h2> <p> 还未收到激活邮件? diff --git a/97suifangqa/apps/sfaccount/templates/sfaccount/activation_email_body.html b/97suifangqa/apps/sfaccount/templates/sfaccount/activation_email_body.html index 51b1751..5dd1a58 100644 --- a/97suifangqa/apps/sfaccount/templates/sfaccount/activation_email_body.html +++ b/97suifangqa/apps/sfaccount/templates/sfaccount/activation_email_body.html @@ -1,13 +1,13 @@ {% autoescape off %} <p>尊敬的 {{ username }},<p> -<p>欢迎您加入97随访(97suifang.com)。<p> +<p>欢迎您加入医时代(yishidai.org)。<p> <p> 您的激活码为 {{ activation_key }},请在 {{ expiration_days }} 天内激活账户,直接打开以下链接进行激活:<br /> -http://www.97suifang.com{{ activation_url }} +http://www.yishidai.org{{ activation_url }} </p> <br /> -<p>97随访 团队</p> +<p>医时代 团队</p> {% endautoescape %} diff --git a/97suifangqa/apps/sfaccount/templates/sfaccount/activation_email_body.txt b/97suifangqa/apps/sfaccount/templates/sfaccount/activation_email_body.txt index 44a2c4d..890f827 100644 --- a/97suifangqa/apps/sfaccount/templates/sfaccount/activation_email_body.txt +++ b/97suifangqa/apps/sfaccount/templates/sfaccount/activation_email_body.txt @@ -1,9 +1,9 @@ 尊敬的 {{ username }}, -欢迎您加入97随访(97suifang.com)。 +欢迎您加入医时代(yishidai.org)。 您的激活码为 {{ activation_key }},请在 {{ expiration_days }} 天内激活账户,直接打开以下链接进行激活: -http://www.97suifang.com{{ activation_url }} +http://www.yishidai.org{{ activation_url }} -97随访 团队 +医时代 团队 diff --git a/97suifangqa/apps/sfaccount/templates/sfaccount/activation_email_subject.txt b/97suifangqa/apps/sfaccount/templates/sfaccount/activation_email_subject.txt index 9a9a040..98fb815 100644 --- a/97suifangqa/apps/sfaccount/templates/sfaccount/activation_email_subject.txt +++ b/97suifangqa/apps/sfaccount/templates/sfaccount/activation_email_subject.txt @@ -1 +1 @@ -97随访(97suifang.com)账户激活 +医时代(yishidai.org)账户激活 diff --git a/97suifangqa/apps/sfaccount/templates/sfaccount/login.html b/97suifangqa/apps/sfaccount/templates/sfaccount/login.html index 46e4bb6..ac5fcae 100644 --- a/97suifangqa/apps/sfaccount/templates/sfaccount/login.html +++ b/97suifangqa/apps/sfaccount/templates/sfaccount/login.html @@ -6,11 +6,11 @@ {% endblock %} {% block title %} -登录 | 97随访 +登录 | 医时代 {% endblock %} {% block body %} -<h2>加入97随访   科学了解乙肝治疗</h2> +<h2>加入医时代   科学了解乙肝治疗</h2> <p></p> <p> <img src="{% static "images/sinalogo.png" %}" alt="" style="width: 2.5em; vertical-align: middle;"> diff --git a/97suifangqa/apps/sfaccount/templates/sfaccount/logout.html b/97suifangqa/apps/sfaccount/templates/sfaccount/logout.html index 0d05ae5..bbd727f 100644 --- a/97suifangqa/apps/sfaccount/templates/sfaccount/logout.html +++ b/97suifangqa/apps/sfaccount/templates/sfaccount/logout.html @@ -2,7 +2,7 @@ {% load staticfiles %} {% block title %} -注销 | 97 随访 +注销 | 医时代 {% endblock %} {% block othercss %} @@ -23,9 +23,9 @@ {% endblock %} {% block body %} - <h2>加入97随访   科学了解乙肝治疗</h2> + <h2>加入医时代   科学了解乙肝治疗</h2> - <p>感谢您使用97随访!</p> + <p>感谢您使用医时代!</p> <p> <input type="button" id="re-login" value="重新登录" /> diff --git a/97suifangqa/apps/sfaccount/templates/sfaccount/password_change.html b/97suifangqa/apps/sfaccount/templates/sfaccount/password_change.html index 7918016..33f318b 100644 --- a/97suifangqa/apps/sfaccount/templates/sfaccount/password_change.html +++ b/97suifangqa/apps/sfaccount/templates/sfaccount/password_change.html @@ -6,11 +6,11 @@ {% endblock %} {% block title %} -修改密码 | 97随访 +修改密码 | 医时代 {% endblock %} {% block body %} - <h2>加入97随访   科学了解乙肝治疗</h2> + <h2>加入医时代   科学了解乙肝治疗</h2> <h3>修改密码</h3> <form action="" method="post">{% csrf_token %} diff --git a/97suifangqa/apps/sfaccount/templates/sfaccount/password_change_done.html b/97suifangqa/apps/sfaccount/templates/sfaccount/password_change_done.html index ac22668..1c843b5 100644 --- a/97suifangqa/apps/sfaccount/templates/sfaccount/password_change_done.html +++ b/97suifangqa/apps/sfaccount/templates/sfaccount/password_change_done.html @@ -2,7 +2,7 @@ {% load staticfiles %} {% block title %} -修改密码 | 97 随访 +修改密码 | 医时代 {% endblock %} {% block othercss %} @@ -23,7 +23,7 @@ {% endblock %} {% block body %} - <h2>加入97随访   科学了解乙肝治疗</h2> + <h2>加入医时代   科学了解乙肝治疗</h2> <h4>密码修改成功!</h4> diff --git a/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset.html b/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset.html index 87421d3..667f7c3 100644 --- a/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset.html +++ b/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset.html @@ -2,7 +2,7 @@ {% load staticfiles %} {% block title %} -重设密码 | 97 随访 +重设密码 | 医时代 {% endblock %} {% block othercss %} @@ -10,7 +10,7 @@ {% endblock %} {% block body %} - <h2>加入97随访   科学了解乙肝治疗</h2> + <h2>加入医时代   科学了解乙肝治疗</h2> <p> 忘记了密码? diff --git a/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_complete.html b/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_complete.html index 2027cd2..89f2d27 100644 --- a/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_complete.html +++ b/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_complete.html @@ -2,7 +2,7 @@ {% load staticfiles %} {% block title %} -重设密码 | 97 随访 +重设密码 | 医时代 {% endblock %} {% block othercss %} @@ -23,7 +23,7 @@ {% endblock %} {% block body %} - <h2>加入97随访   科学了解乙肝治疗</h2> + <h2>加入医时代   科学了解乙肝治疗</h2> <h4>重设密码成功!</h4> diff --git a/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_confirm.html b/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_confirm.html index 8522af5..3212c17 100644 --- a/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_confirm.html +++ b/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_confirm.html @@ -2,7 +2,7 @@ {% load staticfiles %} {% block title %} -重设密码 | 97随访 +重设密码 | 医时代 {% endblock %} {% block othercss %} @@ -23,7 +23,7 @@ {% endblock %} {% block body %} - <h2>加入97随访   科学了解乙肝治疗</h2> + <h2>加入医时代   科学了解乙肝治疗</h2> {% if validlink %} <h4>请设置新密码</h4> diff --git a/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_done.html b/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_done.html index c7bd9a3..9f5a492 100644 --- a/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_done.html +++ b/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_done.html @@ -2,7 +2,7 @@ {% load staticfiles %} {% block title %} -重设密码 | 97 随访 +重设密码 | 医时代 {% endblock %} {% block othercss %} @@ -23,7 +23,7 @@ {% endblock %} {% block body %} - <h2>加入97随访   科学了解乙肝治疗</h2> + <h2>加入医时代   科学了解乙肝治疗</h2> <h4> 密码重设邮件已发送! diff --git a/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_email.html b/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_email.html index beae46f..bec013a 100644 --- a/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_email.html +++ b/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_email.html @@ -4,7 +4,7 @@ <body> <p>尊敬的 {{ user.username }},</p> - <p>您收到该邮件是因为您已请求重设97随访({{ domain }})账户的密码。</p> + <p>您收到该邮件是因为您已请求重设医时代({{ domain }})账户的密码。</p> <p>请打开以下链接来为您的账户设置新密码:<br /> {% block reset_link %} @@ -19,7 +19,7 @@ <p>感谢您使用我们的产品!</p> <br /> - <p>97随访 团队</p> + <p>医时代 团队</p> </body> </html> {% endautoescape %} diff --git a/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_email.txt b/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_email.txt index 20c817c..a1031d5 100644 --- a/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_email.txt +++ b/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_email.txt @@ -1,6 +1,6 @@ 尊敬的 {{ user.username }}, -您收到该邮件是因为您已请求重设97随访({{ domain }})账户的密码。 +您收到该邮件是因为您已请求重设医时代({{ domain }})账户的密码。 请打开以下链接来为您的账户设置新密码: {{ protocol }}://{{ domain }}{% url django.contrib.auth.views.password_reset_confirm uidb36=uid, token=token %} @@ -10,4 +10,4 @@ 感谢您使用我们的产品! -97随访 团队 +医时代 团队 diff --git a/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_subject.txt b/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_subject.txt index b980ba1..d0d914b 100644 --- a/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_subject.txt +++ b/97suifangqa/apps/sfaccount/templates/sfaccount/password_reset_subject.txt @@ -1 +1 @@ -97随访(97suifang.com)密码重设 +医时代(yishidai.org)密码重设 diff --git a/97suifangqa/apps/sfaccount/templates/sfaccount/signup.html b/97suifangqa/apps/sfaccount/templates/sfaccount/signup.html index bf6c193..6e7bf7d 100644 --- a/97suifangqa/apps/sfaccount/templates/sfaccount/signup.html +++ b/97suifangqa/apps/sfaccount/templates/sfaccount/signup.html @@ -2,7 +2,7 @@ {% load staticfiles %} {% block title %} -注册账户 | 97随访 +注册账户 | 医时代 {% endblock %} {% block bodyclasses %}{{ block.super }} registration signup{% endblock %} @@ -10,7 +10,7 @@ <link rel="stylesheet" href="{% static "stylesheets/sass/registration.css" %}"> {% endblock %} {% block body %} -<h2>加入97随访   科学了解乙肝治疗</h2> +<h2>加入医时代   科学了解乙肝治疗</h2> <form action="" method="post">{% csrf_token %} <table class="reg-form register-form"> {% for item in form %} diff --git a/97suifangqa/backupdata/queries.txt b/97suifangqa/backupdata/queries.txt deleted file mode 100644 index 437d8d9..0000000 --- a/97suifangqa/backupdata/queries.txt +++ /dev/null @@ -1,76 +0,0 @@ -如何去定义乙肝 -什么是慢性乙型肝炎 -什么是急性乙型肝炎 -小三阳的乙肝病状 -小三阳的乙肝为何会比大三阳难以治愈 -什么是乙肝? -小三阳’转化成‘小二阳’代表什么 -小三阳’的乙肝病原学 -母婴传播究竟是怎样的形式 -母亲或父亲得了肝炎是否能要小孩 -若是乙肝患者,进行怀孕的过程中需要注意什么 -若是意外怀孕,何种情况可以不必流产 -产前产中产后需要注意什么 -产后需要何种方式保护新生儿 -各项指标代表什么 -两对半 -甲胎蛋白是什么? -谷丙转氨酶是什么 -什么是病毒HBV DNA? -‘大三阳’代表什么 -小三阳代表什么 -‘小二阳’的概念 -目前医院会采取哪些检测手段 -医院在检测乙肝患者是会采取何种检测方案 -每一种检测方案所代表的意义 -在结合指标情况下推选何种合适时期 -结合指标以及用药历史进行合理的解释 -进行何种其他方面的检测? -在进行了常规检测后,为何医生还会建议去做其他方面的检测 -为何这种检测较为有效 -慢性乙肝能自我修复吗 -‘小三阳’乙肝在体内的病变过程 -肝炎时为何转氨酶升高 -慢性肝炎患者转氨酶急剧升高会有什么问题 -转氨酶升高,必定是肝病加重吗 -针对乙肝病毒需要什么样的免疫 -免疫缺陷是什么 -什么样的免疫治疗会有效 -干扰素作用于人体时所产生的免疫激化 -慢性乙肝的病变情况? -抗病毒治疗是什么 -抗病毒治疗与非抗病毒治疗的区别点 -何时开始启用抗病毒治疗 -对于乙肝治疗有哪些药物可以使用 -选择药品的时候结合指标进行合理的推荐 -结合指标以及病史进行合理的解决方案推荐 -选药期间需要注意什么 -换药期间需要注意什么 -干扰素和核苷类药品在相关替换时需要注意些什么 -干扰素的疗程长短 -对于使用干扰素之后一些相关指标的变化代表什么 -干扰素的治疗终点 -哪些方面代表干扰素的治疗终点 -核苷类药物的治疗终点 -哪些方面代表核苷类的治疗终点 -停药之后需要注意些什么 -实时监控,随访是什么意思 -对于随访究竟有多重要,需要进行怎样的定期检查 -怎样的定期检查符合该名患者的治疗进度 -干扰素每种药品的详细资料 -干扰素治疗在短期内会有什么效果 -干扰素疗程一般多长 -干扰素治疗远期目标是什么 -干扰素的药品有什么优缺点 -干扰素的一个疗程结束后是否需要更换使用另一种干扰素 -长效干扰素的优缺点 -长效干扰素的治疗效果如何 -哪些患者可以使用长效干扰素 -长效干扰素对不同基因型的患者的疗效应答有区别吗 -干扰素是否也会产生耐药 -干扰素是否会有强烈的复发作用 -派罗欣能追求表面抗原转阴吗 -派罗欣适用于哪类病人 -派罗欣有哪些不良反应 -哪些肝病是派罗欣的适应症 -之前接受核苷类药治疗现在能改干扰素吗 diff --git a/97suifangqa/isuifangqa.db b/97suifangqa/isuifangqa.db Binary files differindex 3b35a22..2c44528 100644 --- a/97suifangqa/isuifangqa.db +++ b/97suifangqa/isuifangqa.db diff --git a/97suifangqa/mail_settings.py b/97suifangqa/mail_settings.py new file mode 100644 index 0000000..268b664 --- /dev/null +++ b/97suifangqa/mail_settings.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- + +## smtp settings to send email +SF_EMAIL = { + 'smtp_host': 'smtp.126.com', + 'smtp_port': 25, + 'username': 'isuifang@126.com', + 'password': '97suifang123', + 'from': 'isuifang@126.com', + 'display_from': 'account@yishidai.org', +} + + diff --git a/97suifangqa/settings.py b/97suifangqa/settings.py index 0ddda3d..1be7e29 100644 --- a/97suifangqa/settings.py +++ b/97suifangqa/settings.py @@ -170,6 +170,9 @@ MAX_USERNAME_LENGTH = 30 MIN_PASSWORD_LENGTH = 6 MAX_PASSWORD_LENGTH = 30 +## period between two recommendation of indicators (days) +INDICATOR_RECOMMEND_PERIOD = 40 + ## async send mail ASYNC_SEND_MAIL = True diff --git a/97suifangqa/staticfiles/images/back_main.jpg b/97suifangqa/staticfiles/images/back_main.jpg Binary files differindex ee4f950..74e9128 100644 --- a/97suifangqa/staticfiles/images/back_main.jpg +++ b/97suifangqa/staticfiles/images/back_main.jpg diff --git a/97suifangqa/staticfiles/images/card-bg-blue.png b/97suifangqa/staticfiles/images/card-bg-blue.png Binary files differindex 51d9a4a..d0ef1af 100644 --- a/97suifangqa/staticfiles/images/card-bg-blue.png +++ b/97suifangqa/staticfiles/images/card-bg-blue.png diff --git a/97suifangqa/staticfiles/images/card-bg-blue_bak.png b/97suifangqa/staticfiles/images/card-bg-blue_bak.png Binary files differnew file mode 100644 index 0000000..51d9a4a --- /dev/null +++ b/97suifangqa/staticfiles/images/card-bg-blue_bak.png diff --git a/97suifangqa/staticfiles/images/card-bg-green.png b/97suifangqa/staticfiles/images/card-bg-green.png Binary files differindex 5e58ccd..ff991eb 100644 --- a/97suifangqa/staticfiles/images/card-bg-green.png +++ b/97suifangqa/staticfiles/images/card-bg-green.png diff --git a/97suifangqa/staticfiles/images/card-bg-green_bak.png b/97suifangqa/staticfiles/images/card-bg-green_bak.png Binary files differnew file mode 100644 index 0000000..5e58ccd --- /dev/null +++ b/97suifangqa/staticfiles/images/card-bg-green_bak.png diff --git a/97suifangqa/staticfiles/images/card-bg-grey.png b/97suifangqa/staticfiles/images/card-bg-grey.png Binary files differindex ce16bcc..8962144 100644 --- a/97suifangqa/staticfiles/images/card-bg-grey.png +++ b/97suifangqa/staticfiles/images/card-bg-grey.png diff --git a/97suifangqa/staticfiles/images/card-bg-grey_bak.png b/97suifangqa/staticfiles/images/card-bg-grey_bak.png Binary files differnew file mode 100644 index 0000000..ce16bcc --- /dev/null +++ b/97suifangqa/staticfiles/images/card-bg-grey_bak.png diff --git a/97suifangqa/staticfiles/images/logo-overlay-white.png b/97suifangqa/staticfiles/images/logo-overlay-white.png Binary files differindex 99b5b31..8aa0d54 100644 --- a/97suifangqa/staticfiles/images/logo-overlay-white.png +++ b/97suifangqa/staticfiles/images/logo-overlay-white.png diff --git a/97suifangqa/staticfiles/images/slilogo-white.png b/97suifangqa/staticfiles/images/slilogo-white.png Binary files differnew file mode 100644 index 0000000..a779cc5 --- /dev/null +++ b/97suifangqa/staticfiles/images/slilogo-white.png diff --git a/97suifangqa/staticfiles/images/slilogo.png b/97suifangqa/staticfiles/images/slilogo.png Binary files differindex e50c568..39ace36 100644 --- a/97suifangqa/staticfiles/images/slilogo.png +++ b/97suifangqa/staticfiles/images/slilogo.png diff --git a/97suifangqa/staticfiles/logo-overlay-white.png b/97suifangqa/staticfiles/logo-overlay-white.png Binary files differnew file mode 100644 index 0000000..99b5b31 --- /dev/null +++ b/97suifangqa/staticfiles/logo-overlay-white.png diff --git a/97suifangqa/staticfiles/plugins/jquery-ui/themes/97suifang/jquery-ui.css b/97suifangqa/staticfiles/plugins/jquery-ui/themes/97suifang/jquery-ui.css index 45b7bfc..1bfd940 100644 --- a/97suifangqa/staticfiles/plugins/jquery-ui/themes/97suifang/jquery-ui.css +++ b/97suifangqa/staticfiles/plugins/jquery-ui/themes/97suifang/jquery-ui.css @@ -65,17 +65,17 @@ ----------------------------------*/ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #4c4948; } .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #006699; background: #cce0eb; font-weight: bold; color: #006699; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #a8a8a8; background: #a8a8a8; font-weight: bold; color: white; } .ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #a8a8a8; background: #a8a8a8; font-weight: bold; color: white; } .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; } .ui-widget :active { outline: none; } /* Interaction Cues ----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; } +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #a8a8a8; background: #a8a8a8; color: white; } .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } -.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: red; url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; } .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; } .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; } .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } diff --git a/97suifangqa/staticfiles/slilogo2.png b/97suifangqa/staticfiles/slilogo2.png Binary files differnew file mode 100644 index 0000000..e50c568 --- /dev/null +++ b/97suifangqa/staticfiles/slilogo2.png diff --git a/97suifangqa/staticfiles/stylesheets/sass/blog.css b/97suifangqa/staticfiles/stylesheets/sass/blog.css index 424fb4c..9c3ed72 100644 --- a/97suifangqa/staticfiles/stylesheets/sass/blog.css +++ b/97suifangqa/staticfiles/stylesheets/sass/blog.css @@ -15,16 +15,29 @@ body.scrolled-down.blog #blog-top-nav .background { /* line 22, ../../../sass/sass/blog.scss */
.blog .post-question input[type="text"] {
- background-color: #8b8885;
+ background-color: white;
color: white;
border: 1px solid white;
-webkit-box-shadow: 0px 0px 2px white;
-moz-box-shadow: 0px 0px 2px white;
box-shadow: 0px 0px 2px white;
+ height: 29px;
+ border-radius: 3px;
+
+}
+
+.blog .post-question input[type="text"]:focus {
+ background-color: #white;
+ color: #727171;
+ border-color: #99cc33;
+ height: 29px;
+ border-radius: 3px;
+ outline:0;
}
+
/* line 65, ../../../sass/sass/_custom.scss */
.blog .post-question input[type="text"].placeholder {
- color: #eeeeee;
+ color: #a8a8a8;
}
/* line 68, ../../../sass/sass/_custom.scss */
.blog .post-question input[type="text"]:focus.placeholder {
@@ -32,7 +45,7 @@ body.scrolled-down.blog #blog-top-nav .background { }
/* line 65, ../../../sass/sass/_custom.scss */
.blog .post-question input[type="text"].input-placeholder {
- color: #eeeeee;
+ color: #a8a8a8;
}
/* line 68, ../../../sass/sass/_custom.scss */
.blog .post-question input[type="text"]:focus.input-placeholder {
@@ -40,7 +53,7 @@ body.scrolled-down.blog #blog-top-nav .background { }
/* line 65, ../../../sass/sass/_custom.scss */
.blog .post-question input[type="text"]:-moz-placeholder {
- color: #eeeeee;
+ color: #a8a8a8;
}
/* line 68, ../../../sass/sass/_custom.scss */
.blog .post-question input[type="text"]:focus:-moz-placeholder {
@@ -48,7 +61,7 @@ body.scrolled-down.blog #blog-top-nav .background { }
/* line 65, ../../../sass/sass/_custom.scss */
.blog .post-question input[type="text"]::-webkit-input-placeholder {
- color: #eeeeee;
+ color: #a8a8a8;
}
/* line 68, ../../../sass/sass/_custom.scss */
.blog .post-question input[type="text"]:focus::-webkit-input-placeholder {
@@ -56,7 +69,7 @@ body.scrolled-down.blog #blog-top-nav .background { }
/* line 65, ../../../sass/sass/_custom.scss */
.blog .post-question input[type="text"]::-moz-placeholder {
- color: #eeeeee;
+ color: #a8a8a8;
}
/* line 68, ../../../sass/sass/_custom.scss */
.blog .post-question input[type="text"]:focus::-moz-placeholder {
@@ -64,7 +77,7 @@ body.scrolled-down.blog #blog-top-nav .background { }
/* line 65, ../../../sass/sass/_custom.scss */
.blog .post-question input[type="text"]:-ms-input-placeholder {
- color: #eeeeee;
+ color: #a8a8a8;
}
/* line 68, ../../../sass/sass/_custom.scss */
.blog .post-question input[type="text"]:focus:-ms-input-placeholder {
@@ -76,6 +89,7 @@ body.scrolled-down.blog #blog-top-nav .background { bottom: 30px;
text-align: center;
width: auto;
+
}
/* line 40, ../../../sass/sass/blog.scss */
.blog #nav-ribbon {
@@ -179,7 +193,7 @@ body.scrolled-down.blog #blog-top-nav .background { /* line 134, ../../../sass/sass/blog.scss */
.blog #nav-ribbon .tail {
width: 50px;
- cursor: pointer;
+ cursor:default;
}
/* line 139, ../../../sass/sass/blog.scss */
.blog #nav-ribbon .tail-cut {
@@ -227,8 +241,12 @@ body.scrolled-down.blog #blog-top-nav .background { }
/* line 186, ../../../sass/sass/blog.scss */
.blog-details #blog-top-nav .breadcrumb ul.inline li a.button {
- padding-top: 0.2em;
- padding-bottom: 0.2em;
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ padding-left:0.8em;
+ padding-right: 0.8em;
+ border-radius: 3px 3px 3px 3px;
+ height: 40px;
}
/* line 191, ../../../sass/sass/blog.scss */
.blog-details #blog-top-nav .breadcrumb ul.inline li a.button.first {
@@ -273,8 +291,8 @@ body.scrolled-down.blog #blog-top-nav .background { }
/* line 231, ../../../sass/sass/blog.scss */
.blog-details #blog-top-nav .section-nav ul.links li a.active {
- color: #006699;
- border-bottom: 1px solid #006699;
+ color: #99cc33;
+ /*border-bottom: 1px dashed #99cc33;*/
text-decoration: none;
}
/* line 237, ../../../sass/sass/blog.scss */
@@ -284,8 +302,8 @@ body.scrolled-down.blog #blog-top-nav .background { }
/* line 244, ../../../sass/sass/blog.scss */
.blog-details #blog-top-nav .section-nav ul.links li a:hover, .blog-details #blog-top-nav .section-nav ul.links:hover li a:hover {
- color: #006699;
- border-bottom: 1px solid #006699;
+ color: #99cc33;
+ /*border-bottom: 1px dashed #99cc33;*/
text-decoration: none;
}
/* line 250, ../../../sass/sass/blog.scss */
@@ -315,6 +333,7 @@ body.scrolled-down.blog #blog-top-nav .background { .blog-details #content .text h3 {
font-size: 1.1em;
color: #4c4a49;
+ line-height: 1.5em;
}
/* line 274, ../../../sass/sass/blog.scss */
.blog-details #content .text h4 {
@@ -363,7 +382,7 @@ body.scrolled-down.blog #blog-top-nav .background { /* line 306, ../../../sass/sass/blog.scss */
.blog-details #content .jargon-explanation-box .content-wrap .jargon-details {
min-height: 150px;
- max-height: 200px;
+ max-height: 250px;
overflow: auto;
}
/* line 311, ../../../sass/sass/blog.scss */
@@ -464,7 +483,14 @@ body.scrolled-down.blog #blog-top-nav .background { font-size: 0.875em;
line-height: 1.30612em;
cursor: pointer;
- border: 1px solid #c9caca;
+ border: 1px solid #e3e1d5;
+ background-color:white;
+
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ -ms-border-radius: 2px;
+ -o-border-radius: 2px;
+ border-radius: 2px;
}
/* line 397, ../../../sass/sass/blog.scss */
.blog-details #content .cards .card .back .card-wrap {
@@ -490,7 +516,7 @@ body.scrolled-down.blog #blog-top-nav .background { /* line 415, ../../../sass/sass/blog.scss */
.blog-details #content .cards .card .front .card-wrap .card-title {
font-weight: normal;
- background-color: #4c4948;
+ background-color: #484848;
color: white;
margin: 0;
position: absolute;
@@ -523,6 +549,8 @@ body.scrolled-down.blog #blog-top-nav .background { /* line 450, ../../../sass/sass/blog.scss */
.blog-details #content .cards .card .front .card-wrap .card-details {
padding: 0.5em;
+ color:rgba(126,136,138,0.92);
+ font-family: "Open Sans", sans-serif;
}
/* line 455, ../../../sass/sass/blog.scss */
.blog-details #content .cards .card .front {
@@ -574,19 +602,19 @@ body.scrolled-down.blog #blog-top-nav .background { /* line 500, ../../../sass/sass/blog.scss */
.blog-details #content .cards .card.blue .back .card-wrap {
background-image: url(../../images/card-bg-blue.png);
- background-color: #0063a8;
+ background-color: #3879D9;
}
/* line 504, ../../../sass/sass/blog.scss */
.blog-details #content .cards .card.blue .front .card-wrap {
- color: #006699;
+ color: #3879D9;
}
/* line 506, ../../../sass/sass/blog.scss */
.blog-details #content .cards .card.blue .front .card-wrap .card-title {
- background-color: #0063a8;
+ background-color: #3879D9;
}
/* line 509, ../../../sass/sass/blog.scss */
.blog-details #content .cards .card.blue .front .card-wrap .card-subtitle {
- background-color: #00508f;
+ background-color: #326cc4;
}
/* line 517, ../../../sass/sass/blog.scss */
.blog-details #sidebar-first,
@@ -613,9 +641,11 @@ body.scrolled-down.blog #blog-top-nav .background { }
/* line 535, ../../../sass/sass/blog.scss */
.blog-details #sidebar-second .social ul.buttons .multi-segment-button .segment.first {
- width: 60px;
+ width: 63px;
white-space: nowrap;
overflow: hidden;
+ font-weight: normal;
+ font-size: 15px;
}
/* line 540, ../../../sass/sass/blog.scss */
.blog-details #sidebar-second .social ul.buttons .multi-segment-button {
@@ -626,6 +656,7 @@ body.scrolled-down.blog #blog-top-nav .background { background-image: url(../../images/grey-star.png);
background-repeat: no-repeat;
background-position: 10px center;
+ margin-bottom: 0.2em;
}
/* line 550, ../../../sass/sass/blog.scss */
.blog-details #sidebar-second .social ul.buttons #no-idea-button {
@@ -636,6 +667,7 @@ body.scrolled-down.blog #blog-top-nav .background { background-image: url(../../images/white-unhappy-face.png);
background-repeat: no-repeat;
background-position: 10px center;
+ margin-bottom: 0.2em;
}
/* line 561, ../../../sass/sass/blog.scss */
.blog-details #sidebar-second .comments {
@@ -643,14 +675,15 @@ body.scrolled-down.blog #blog-top-nav .background { }
/* line 563, ../../../sass/sass/blog.scss */
.blog-details #sidebar-second .comments ol {
- font-size: 0.92857em;
- line-height: 1.38462em;
+ font-size: 1em;
+ line-height: 1.58462em;
max-height: 400px;
overflow: hidden;
overflow: auto;
counter-reset: comments-counter;
margin: 0;
- padding: 0;
+ padding:0;
+ width: 265px;
}
/* line 571, ../../../sass/sass/blog.scss */
.blog-details #sidebar-second .comments ol li:before {
@@ -669,6 +702,7 @@ body.scrolled-down.blog #blog-top-nav .background { padding-left: 0.05em;
content: counter(comments-counter);
counter-increment: comments-counter;
+ padding-top: 0.1em;
}
/* line 581, ../../../sass/sass/blog.scss */
.blog-details #sidebar-second .comments ol li {
@@ -717,9 +751,10 @@ body.scrolled-down.blog #blog-top-nav .background { display: block;
color: inherit;
text-decoration: none;
- padding-left: 1.5em;
+ padding-left: 2em;
padding-top: 0.3em;
padding-bottom: 0.3em;
+ font-size: 15px;
}
/* line 619, ../../../sass/sass/blog.scss */
.blog-details #sidebar-second .jargon-list ul li a:hover,
@@ -771,7 +806,7 @@ body.scrolled-down.blog #blog-top-nav .background { -moz-border-radius: 2px;
-ms-border-radius: 2px;
-o-border-radius: 2px;
- border-radius: 2px;
+ border-radius: 3px;
}
/* line 658, ../../../sass/sass/blog.scss */
.blog-details #sidebar-first .related-questions h3 {
@@ -857,7 +892,7 @@ body.scrolled-down.blog #blog-top-nav .background { /* line 732, ../../../sass/sass/blog.scss */
.blog-details #back-to-top-button {
bottom: 50px;
- left: 960px;
+ left: 1020px;
}
/* line 736, ../../../sass/sass/blog.scss */
.blog-details .confirm-dialog {
@@ -897,7 +932,7 @@ body.scrolled-down.blog #blog-top-nav .background { /* line 771, ../../../sass/sass/blog.scss */
.blog-list #content #blog-list-top-nav .search-type-nav {
vertical-align: bottom;
- border-bottom: 1px solid #c9caca;
+ /*border-bottom: 1px solid #c9caca;*/
}
/* line 776, ../../../sass/sass/blog.scss */
.blog-list #content #blog-list-top-nav .search-type-nav ul.links li a {
@@ -1058,6 +1093,7 @@ body.scrolled-down.blog #blog-top-nav .background { border: 1px solid #c2b59e;
background-color: #918e8c;
background-color: rgba(0, 0, 0, 0.5);
+
}
/* line 923, ../../../sass/sass/blog.scss */
.blog-list #sidebar-first .post-question .submit {
@@ -1082,7 +1118,7 @@ body.blog-index #main { /* line 940, ../../../sass/sass/blog.scss */
body.blog-index #main .background {
z-index: -1000;
- background: url(../../images/back_main.jpg) no-repeat center top;
+ background: url(../../images/back_main.jpg) no-repeat 80%;
position: fixed;
top: 0;
left: 0;
@@ -1168,12 +1204,12 @@ body.blog-index #main .post-question .submit { /* line 969, ../../../sass/sass/blog.scss */
body.blog-index #main .post-question .question, body.blog-index #main .post-question .submit {
font-size: 1.14286em;
- line-height: 1.25em;
- vertical-align: 2px;
+
}
/* line 974, ../../../sass/sass/blog.scss */
body.blog-index #main #logo {
margin-top: 65px;
+ /*margin-left:120px;*/
width: 100%;
text-align: center;
}
@@ -1183,3 +1219,28 @@ body.blog-index #main #copyright { bottom: 75px;
left: 75px;
}
+
+.blog-list #content #blog-list-content ul.articles .excerpt ol li{
+ list-style: decimal;
+}
+
+#wenzhongzhushi{
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ -ms-border-radius: 3px;
+ -o-border-radius:3px;
+ border-radius: 3px;
+ text-align: center;
+ font-family: "Courier New", "DejaVu Sans Mono", monospace, sans-serif, "STHeiti", "WenQuanYi Micro Hei", "Microsoft YaHei", SimSun, sans-serif;
+ background-color: #898989;
+ color: white;
+ padding:0.10em 0.3em 0 0.35em;
+}
+
+/*#pbzb{
+ line-height: 1.1em;
+}*/
+
+div .panbiezhibiao p{
+ line-height: 1.1em;
+}
\ No newline at end of file diff --git a/97suifangqa/staticfiles/stylesheets/sass/elements.css b/97suifangqa/staticfiles/stylesheets/sass/elements.css index 5ed4bde..56d2c87 100644 --- a/97suifangqa/staticfiles/stylesheets/sass/elements.css +++ b/97suifangqa/staticfiles/stylesheets/sass/elements.css @@ -19,14 +19,21 @@ }
/* line 26, ../../../sass/sass/elements.scss */
.multi-segment-button .segment.first {
- padding-left: 0.5em;
+ padding-left: 0.8em;
+ padding-top: 0.1em;
}
/* line 30, ../../../sass/sass/elements.scss */
.multi-segment-button .segment.last {
- padding-right: 0.5em;
+ padding-right: 0.6em;
border-right: none;
+ font-weight: normal;
+ font-size: 16px;
+ padding-top: 0.2em;
}
+.multi-segment-button .segment.last:active {
+ outline: 0;
+}
/* line 38, ../../../sass/sass/elements.scss */
.multi-button .button, .multi-button .multi-segment-button {
margin: 0;
@@ -63,7 +70,7 @@ /* line 60, ../../../sass/sass/elements.scss */
.border-box, .expand-heading {
background-color: #f7f7f7;
- border: solid 1px #c9caca;
+ /*border: solid 1px #c9caca;*/
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
-ms-border-radius: 3px;
@@ -73,13 +80,14 @@ padding-right: 1em;
padding-top: 0.4em;
padding-bottom: 0.4em;
+ font-size: 15px;
}
/* line 72, ../../../sass/sass/elements.scss */
.expand-heading {
cursor: pointer;
color: #99cc33;
- padding-left: 30px;
+ padding: 10px 0 10px 30px;
background-image: url(../../images/green-triangle-right.png);
background-repeat: no-repeat;
background-position: 10px center;
@@ -247,9 +255,12 @@ body.modal-active { /* line 191, ../../../sass/sass/elements.scss */
.grey-button {
- border-color: #cccccc;
+ /*border-color: #cccccc;*/
color: #6f6f6f;
background-color: #f7f7f7;
+ font-weight: bold;
+ padding-top:0.1em;
+
}
/* line 194, ../../../sass/sass/elements.scss */
.grey-button:visited {
@@ -272,19 +283,19 @@ body.modal-active { .dark-grey-button {
border: none;
color: white;
- background-color: #4c4948;
+ background-color: #f2f2f0;
}
/* line 217, ../../../sass/sass/elements.scss */
.dark-grey-button:visited {
- color: white;
+ color: #898989;
}
/* line 221, ../../../sass/sass/elements.scss */
.dark-grey-button:hover {
- background-color: #3f3c3c;
+ background-color: #e9eaea;
}
/* line 224, ../../../sass/sass/elements.scss */
.dark-grey-button:active {
- background-color: #32302f;
+ background-color: #f2f2f0;
}
/* line 229, ../../../sass/sass/elements.scss */
.dark-grey-button.disabled:hover, .dark-grey-button.disabled:active {
diff --git a/97suifangqa/staticfiles/stylesheets/sass/layouts/fixed-width.css b/97suifangqa/staticfiles/stylesheets/sass/layouts/fixed-width.css index dbe26f9..4c14438 100644 --- a/97suifangqa/staticfiles/stylesheets/sass/layouts/fixed-width.css +++ b/97suifangqa/staticfiles/stylesheets/sass/layouts/fixed-width.css @@ -120,7 +120,7 @@ /* Span 3 columns, starting in 2nd column from left. */
float: left;
width: 660px;
- margin-left: 300px;
+ margin-left: 350px;
margin-right: -1000px;
}
/* line 128, ../../../../sass/sass/layouts/fixed-width.scss */
@@ -128,7 +128,7 @@ .two-sidebars .region-sidebar-first {
/* Span 1 column, starting in 1st column from left. */
float: left;
- width: 260px;
+ width: 290px;
margin-left: 0px;
margin-right: -300px;
}
@@ -138,7 +138,7 @@ /* Span 1 column, starting in 5th column from left. */
float: left;
width: 260px;
- margin-left: 1000px;
+ margin-left: 1060px;
margin-right: -1300px;
}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/normalize.css b/97suifangqa/staticfiles/stylesheets/sass/normalize.css index 26c95e2..c651cba 100644 --- a/97suifangqa/staticfiles/stylesheets/sass/normalize.css +++ b/97suifangqa/staticfiles/stylesheets/sass/normalize.css @@ -144,13 +144,13 @@ body { */
/* line 162, ../../../sass/sass/normalize.scss */
a {
- color: #006699;
+ color: #99cc33;
text-decoration: none;
}
/* line 167, ../../../sass/sass/normalize.scss */
a:visited {
- color: #006699;
+ color: #99cc33;
}
/* line 172, ../../../sass/sass/normalize.scss */
@@ -586,7 +586,9 @@ input[type="reset"] { color: white;
padding-left: 0.8em;
padding-right: 0.8em;
- height: 2.1em;
+ padding-top:0.4em;
+ height: 35px;
+ font-size: 16px;
vertical-align: middle;
}
/* line 588, ../../../sass/sass/normalize.scss */
@@ -651,9 +653,9 @@ input[type="text"], input[type="password"] {
padding-left: 0.5em;
padding-right: 0.5em;
- padding-top: 0;
- padding-bottom: 0;
- height: 1.95em;
+ padding-top: 0em;
+ padding-bottom: 0.3em;
+ height: 1.65em;
}
/*
diff --git a/97suifangqa/staticfiles/stylesheets/sass/pages.css b/97suifangqa/staticfiles/stylesheets/sass/pages.css index 0ceb23c..cf5674b 100644 --- a/97suifangqa/staticfiles/stylesheets/sass/pages.css +++ b/97suifangqa/staticfiles/stylesheets/sass/pages.css @@ -36,16 +36,25 @@ body { /* line 48, ../../../sass/sass/pages.scss */
.text .highlight {
- background-color: #efeff0;
- border: 1px solid #c9caca;
- padding: 2px;
- font-weight: bold;
+ background-color: #f3f2f0;
+ /*border: 1px solid #c9caca;*/
+ padding:10px 10px 10px 10px;
+ margin:25px 0 25px 0;
+
}
/* line 53, ../../../sass/sass/pages.scss */
.text .highlight p {
margin: 0;
}
+.highlight {
+ background-color: #f3f2f0;
+ /*border: 1px solid #c9caca;*/
+ padding: 10px 10px 10px 10px;
+ margin:25px 0 25px 0;
+
+}
+
/*
* Header
*/
@@ -200,7 +209,6 @@ body.scrolled-down #back-to-top-button { /* Wrapping link for logo */
float: left;
/* LTR */
- margin: 0;
padding: 0;
}
/* line 202, ../../../sass/sass/pages.scss */
@@ -431,7 +439,7 @@ span.field-label { bottom: 0;
background: url(../../images/back_main.jpg) no-repeat center top;
background-size: auto 100%;
- min-height: 600px;
+
}
/* line 397, ../../../sass/sass/pages.scss */
.left-picture #sidebar-first #header {
diff --git a/97suifangqa/templates/base.html b/97suifangqa/templates/base.html index a93f207..a54037f 100644 --- a/97suifangqa/templates/base.html +++ b/97suifangqa/templates/base.html @@ -26,7 +26,7 @@ <meta charset="utf-8" /> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> - <title>{% block title %}97 随访{% endblock %}</title> + <title>{% block title %}医时代{% endblock %}</title> {% block css %} <link rel="stylesheet" href="{% static "stylesheets/base.css" %}"> {% block othercss %}{% endblock %} diff --git a/97suifangqa/templates/blog_list_backup.html b/97suifangqa/templates/blog_list_backup.html new file mode 100644 index 0000000..9afadee --- /dev/null +++ b/97suifangqa/templates/blog_list_backup.html @@ -0,0 +1,139 @@ +{% extends "picture-base.html" %} +{% block bodyclasses %}{{ block.super }} blog blog-list{% endblock %} +{% load staticfiles %} +{% block othercss %} +<link rel="stylesheet" href="{% static "stylesheets/sass/blog.css" %}"> +{% endblock %} +{% block sidebar_first_content %} + {% include "sciblog/nav-ribbon.html" %} + <div class="region-wrap"> + <div class="post-question"> + {% include "sciblog/blog_search_form.html" %} + </div> + </div> + <div class="hover-overlay"> + <div class="region-wrap"> + <div class="user-info"> + <h3>{{ user.username }}</h3> + </div> + <div class="search-history"> + <h3>搜索记录</h3> + <ul> + {% for search in search_history %} + <li><a href="{% url query_blogs %}?q={{ search }}">{{ search }}</a></li> + {% endfor%} + </ul> + </div> + <div class="related-questions"> + <h3>您可能对一下问题也感兴趣</h3> + <ul> + {% for query in questions%} + <li> + <a href="{% url query_blogs %}?q={{ query.content }}" title="查询与此问题相关的文章">{{ query.content }}</a> + </li> + {% endfor %} + </ul> + </div> + <div class="search-history"> + <h3><a href="{% url blog_collection %}" target="_blank">我的收藏</a></h3> + + </div> + + </div> + </div> +{% endblock %} +{% block body %} + + <section id="blog-list-top-nav"> + {% include "login-menu.inc.html" %} + <nav class="search-type-nav"> + <ul class="links inline"> + <li class="first-level"><!--a href="" class="{% if tab == 'list' %}active{% endif %}"-->搜索结果<!--/a--></li> + <!--li class="first-level"><a href="">术语</a></li--> + <li class="first-level"><a href="{% url blog_collection %}" class="{% if tab == 'collection' %}active{% endif %}">我的收藏</a></li> + </ul> + </nav> + </section> + <section id="blog-list-content"> + + <div> + <div style="width:630px;height:1px;margin:40px 0 -5px 0;padding:0px;background-color:#b3b3b1;overflow:hidden;"></div> + <h2 class="section-name" style="color:#a8a8a8;font-weight:normal;">医学文章</h2> + <div style="width:630px;height:1px;margin:2px 0 30px 0;padding:0px;background-color:#b3b3b1;overflow:hidden;"></div> + </div> + + {% if has_blogs %} + <div class="articles"> + {% for blog in blogs %} + <div class="article"> + <div class="article-title"><a href="{% url blog_detail blog.id %}" target="_blank">{{ blog.subhead }}</a></div> + <ul class="article-subtitles inline"> + <!--li> + <span>难度:</span> + {% load get_range %} + <ul class="difficulty inline rating-blocks"> + {% for num in 5|get_range %} + {% if num < blog.level %} + <li class="filled"></li> + {% else %} + <li class="empty"></li> + {% endif %} + {% endfor %} + </ul> + </li> + <li> + <span>权威:</span> + <ul class="difficulty inline rating-blocks"> + {% for num in 5|get_range %} + {% if num < blog.quality_value %} + <li class="filled"></li> + {% else %} + <li class="empty"></li> + {% endif %} + {% endfor %} + </ul> + </li--> + <li> <span>杂志:</span><span>{{ blog.journal }}</span></li> + <li> <span>作者:</span><span>{{ blog.communication_author }}</span></li> + </ul> + <br /> + <div class="excerpt"> + {{ blog.conclusion|safe }} + </div> + <div style="width:630px;height:1px;margin:40px 0 20px 0;padding:0px;background-color:#f2f2f0;overflow:hidden;"></div> + </div> + {% endfor %} + </div> + {% else %} + <div class="not-found" style="margin-bottom:50px;"> + <img src="{% static "images/blog-not-found.png" %}" alt=""> + <div class="message">{% if tab == 'list'%}没有搜索到匹配的{% else %}暂时未收藏{% endif %}医学文章</div> + </div> + {% endif %} + + <div style="width:630px;height:1px;margin:-41px 0 40px 0;padding:0px;background-color:#fff;overflow:hidden;"></div> + <!--div style="width:150px;border:1px solid #d5d5d5;margin:-21px auto 40px auto;padding:0px;overflow:hidden;"></div--> + + <div style="margin-top:-15px;"> + <div style="width:630px;height:1px;margin-bottom:-5px;padding:0px;background-color:#b3b3b1;overflow:hidden;"></div> + <h2 class="section-name" style="color:#a8a8a8;font-weight:normal;margin-bottom:5px;">专业术语</h2> + <div style="width:630px;height:1px;margin:0 0 30px 0;padding:0px;background-color:#b3b3b1;overflow:hidden;"></div> + </div> + + {% for noun in ppnouns %} + <ul class="articles"> + <li class="article"> + <div class="article-title"><!--a href=""-->{{noun.firstkeyword }}<!--/a--></div> + <div class="excerpt"> + {{ noun.detail|safe }} + </div> + </li> + <div style="width:630px;height:1px;margin:20px 0 35px 0;padding:0px;background-color:#f2f2f0;overflow:hidden;"></div> + {% endfor %} + </ul> + + </section> + +{% endblock %} + +{# vim: set ts=2 sw=2 tw=0 fenc=utf-8 ft=htmldjango: #} diff --git a/97suifangqa/templates/picture-base.html b/97suifangqa/templates/picture-base.html index 087d890..7b09f5a 100644 --- a/97suifangqa/templates/picture-base.html +++ b/97suifangqa/templates/picture-base.html @@ -6,9 +6,9 @@ <div class="background"></div>
{% block sidebar_first_content %}{% endblock %}
<header id="header">
- <div id="logo">
+ <div id="logo" style="margin-left:40px;">
{% block logo %}
- <img src="{% static "images/logo-overlay-white.png" %}" alt="">
+ <a href="/blog/index"><img src="{% static "images/slilogo-white.png" %}" alt=""></a>
{% endblock %}
</div>
</header>
diff --git a/97suifangqa/templates/sciblog/blog_detail.html b/97suifangqa/templates/sciblog/blog_detail.html index d9e53c9..3273feb 100644 --- a/97suifangqa/templates/sciblog/blog_detail.html +++ b/97suifangqa/templates/sciblog/blog_detail.html @@ -11,9 +11,12 @@ {% include "sciblog/blog_search_form.html" %} </div> <div class="related-questions"> - <h3>关联问题</h3> + <h3 style="margin-left:-5px;margin-bottom:25px;margin-top:2px;">相关问题</h3> {% for query in blog.query.all %} - <div><a href="{% url query_blogs %}?q={{ query.content }}" title="查询与此问题相关的文章">{{ query.content }}</a></div> + <!--div style="width:260px;height:1px;margin:0 -12px 0 -14px;padding:0px;background-color:#f2f2f0;overflow:hidden;"></div--> + <ul style="margin-left:-18px;margin-right:-5px;"> + <li style="margin:-20px 10px -15px auto;"><a href="{% url query_blogs %}?q={{ query.content }}" title="查询与此问题相关的文章">{{ query.content }}</a></li> + </ul> {% endfor %} </div> <div class="toc"> @@ -42,9 +45,10 @@ </li> </ul> </div> + <header id="header"> - <div id="logo"> - <img src="{% static "images/slilogo.png" %}" alt=""> + <div id="logo" style="margin-left:35px;margin-bottom:-20px;"> + <a href="../index"><img src="{% static "images/slilogo.png" %}" alt=""></a> </div> </header> </aside> @@ -84,12 +88,12 @@ <div id="card-abstract"></div> <div class="lists-container"> <nav class="comments expandable expanded" data-expand-group-selector="#sidebar-second .lists-container nav"> - <h4 class="expand-heading">段落注释</h4> + <h4 class="expand-heading">文中注释</h4> <ol class="expand-container jargon-links" id="paracomments-list"> </ol> </nav> <nav class="jargon-list expandable" data-expand-group-selector="#sidebar-second .lists-container nav"> - <h4 class="expand-heading">专业名词</h4> + <h4 class="expand-heading">术语科普</h4> <ul class="expand-container jargon-links" id="propernouns-list"> </ul> </nav> @@ -103,10 +107,11 @@ <div class="breadcrumb"> <ul class="links inline"> <!--li><a href="" class="button dark-grey-button first">更多文章</a></li--> - <li><a id="return-to-results-button" href="{% url blog_detail blog.id 'results'%}" class="button dark-grey-button">返回治疗结果</a></li> + <!--li><a id="return-to-results-button" href="{% url blog_detail blog.id 'results'%}" class="button dark-grey-button">返回</a></li--> + <br> </ul> </div> - <h1 class="blog-title">{{ blog.subhead }}</h1> + <h1 class="blog-title">{{ blog.subhead|safe }}</h1> <h2 class="section-name">{% block sectionname %}临床策略{% endblock %}</h2> <!-- if firstSection --> {% block navigation %} @@ -153,14 +158,14 @@ {% if user.is_authenticated %} <a class="button like-button grey-button collect"><img src="{% static "images/grey-heart.png" %}" alt="">收藏该条注释</a> {% else %} - <div class="button like-button disabled grey-button" disabled="disabled"><a href="{% url login %}?next={{ request.path }}" class="login-button">登陆</a>97随访网站搜索此条目</div> + <div class="button like-button disabled grey-button" disabled="disabled"><a href="{% url login %}?next={{ request.path }}" class="login-button">登陆</a>医时代网站搜索此条目</div> {% endif %} </div> <!-- else --> <!-- for ... --> <div id="back-to-top-button" title="返回顶部"></div> <div id="related-questions-confirm" class="dialog-content confirm-dialog"> - <p>我们将要帮您重新搜索医学文章,会离开本文页面,您确定吗?</p> + <p>我们将要帮您重新搜索临床治疗经验,会离开本文页面,您确定吗?</p> <div class="controls"> <button class="dialog-ok">确认</button> diff --git a/97suifangqa/templates/sciblog/blog_detail_abstract.html b/97suifangqa/templates/sciblog/blog_detail_abstract.html index 03a00f3..a9572c2 100644 --- a/97suifangqa/templates/sciblog/blog_detail_abstract.html +++ b/97suifangqa/templates/sciblog/blog_detail_abstract.html @@ -1,11 +1,12 @@ {% extends "sciblog/blog_detail.html" %} + {% block sectionname %} -文章简读 +<span style="font-weight:normal;margin-top:0px;">文章简读</span> {% endblock %} {% block navigation %} -<nav role="navigation" class="section-nav"> +<nav role="navigation" class="section-nav" > <ul class="links inline"> <li><a href="#methods" class="active">治疗方案</a></li> <li><a href="#objectives">研究目标</a></li> diff --git a/97suifangqa/templates/sciblog/blog_detail_comment.html b/97suifangqa/templates/sciblog/blog_detail_comment.html index 53dc07c..b64b6e6 100644 --- a/97suifangqa/templates/sciblog/blog_detail_comment.html +++ b/97suifangqa/templates/sciblog/blog_detail_comment.html @@ -1,7 +1,7 @@ {% extends "sciblog/blog_detail.html" %} {% block sectionname %} -学者科学评论 +<span style="font-weight:normal;">学者科学评论</span> {% endblock %} {% block navigation %} @@ -11,5 +11,6 @@ {% for piece in blog.konwledge_piece.comments %} <h4>{{ piece.title }}</h4> <p>{{ piece.content }}</p> +<div style="width:645px;height:1px;margin:30px 0 40px -20px;padding:0px;background-color:#f2f2f0;overflow:hidden;"></div> {% endfor %} {% endblock %} diff --git a/97suifangqa/templates/sciblog/blog_detail_follow.html b/97suifangqa/templates/sciblog/blog_detail_follow.html index 3635f9b..a5cdad6 100644 --- a/97suifangqa/templates/sciblog/blog_detail_follow.html +++ b/97suifangqa/templates/sciblog/blog_detail_follow.html @@ -1,7 +1,7 @@ {% extends "sciblog/blog_detail.html" %} {% block sectionname %} -随访与用药 +<span style="font-weight:normal;">随访与用药</span> {% endblock %} {% block navigation %} @@ -19,7 +19,7 @@ <h3>用药与随访历史</h3> <p>{{ blog.treatment_content }}</p> <a href="" id="endpoints"></a> -<h3>判别疗效的指标</h3> +<br><div class="panbiezhibiao"><h3>判别疗效的指标</h3> <h4>主要</h4> {% for end in blog.endpoints.all %} {% if end.type == 1 %} @@ -32,8 +32,23 @@ {{ end.content }} {% endif %} {% endfor %} -<div></div> +</div> + +{% if blog.endpoint_content %} +<h4>注意</h4> +{{ blog.endpoint_content }} +{% else %} +<br> +{% endif %} +<br><br> <a href="" id="guideline"></a> + + + <h3>治疗策略</h3> +{% if blog.guidline %} {{ blog.guidline.content }} +{% else %} +暂无详细资料 +{% endif%} {% endblock %} diff --git a/97suifangqa/templates/sciblog/blog_detail_knowledge.html b/97suifangqa/templates/sciblog/blog_detail_knowledge.html index 6ab749d..15c230a 100644 --- a/97suifangqa/templates/sciblog/blog_detail_knowledge.html +++ b/97suifangqa/templates/sciblog/blog_detail_knowledge.html @@ -1,7 +1,7 @@ {% extends "sciblog/blog_detail.html" %} {% block sectionname %} -科普扫盲 +<span style="font-weight:normal;">科普扫盲</span> {% endblock %} {% block navigation %} @@ -11,5 +11,7 @@ {% for piece in blog.konwledge_piece.knowledges %} <h4>{{ piece.title }}</h4> <p>{{ piece.content }}</p> + +<div style="width:645px;height:1px;margin:30px 0 40px -20px;padding:0px;background-color:#f2f2f0;overflow:hidden;"></div> {% endfor %} {% endblock %} diff --git a/97suifangqa/templates/sciblog/blog_detail_refrences.html b/97suifangqa/templates/sciblog/blog_detail_refrences.html index a60935d..99ff7b2 100644 --- a/97suifangqa/templates/sciblog/blog_detail_refrences.html +++ b/97suifangqa/templates/sciblog/blog_detail_refrences.html @@ -1,7 +1,7 @@ {% extends "sciblog/blog_detail.html" %} {% block sectionname %} -参考信息 +<span style="font-weight:normal;">参考信息</span> {% endblock %} {% block navigation %} @@ -20,6 +20,7 @@ <a href="" id="refrences"></a> <h3>参考文献</h3> {% for ref in blog.references.all %} -<a href="{{ ref.link }}">{{ ref.description }}</a> +{{ ref.description }}<br> +<a href="{{ ref.link }}" target="_blank">阅读更多</a><br><br> {% endfor %} {% endblock %} diff --git a/97suifangqa/templates/sciblog/blog_detail_results-detail.html b/97suifangqa/templates/sciblog/blog_detail_results-detail.html index 3e6ed25..aafc4f4 100644 --- a/97suifangqa/templates/sciblog/blog_detail_results-detail.html +++ b/97suifangqa/templates/sciblog/blog_detail_results-detail.html @@ -1,23 +1,20 @@ {% extends "sciblog/blog_detail.html" %} -{% block bodyclasses %}{{ block.super }} blog-results blog-results-detail{% endblock %} +{% block bodyclasses %}{{ block.super }} blog-results blog-results-detail{% endblock %} + + {% block sectionname %} -病友治疗结果 +<span style="font-weight:normal;">详细治疗结果</span> {% endblock %} {% block navigation %} {% endblock %} -{% block cards_abstract %} - <div class="cards-abstract"> - <div> - <p>{{ result.abstract }}</p> - </div> -</div> -{% endblock %} + + {% load group_list %} {% block block_pieces %} -<div class="cards three-columns"> +<div class="cards three-columns" style="margin:5px 0 0 -5px;"> <div class="column-first"> <div class="card {{ result.color }}" href=""> <div class="front"> @@ -44,6 +41,9 @@ <p>{{ result.abstract }}</p> </div> </div> -<br /> +<div style="width:645px;height:1px;margin:35px 0 10px -20px;padding:0px;background-color:#e6e6e6;overflow:hidden;"></div> {{ result.content }} +<br><br> +<a id="return-to-results-button" href="{% url blog_detail blog.id 'results'%}" class="button dark-grey-button" style="margin-left:245px;font-size:15px;height:30px;padding-bottom:9px;padding-top:8px;color:white;background-color:#242628;">返回治疗结果</a> {% endblock %} + diff --git a/97suifangqa/templates/sciblog/blog_detail_results.html b/97suifangqa/templates/sciblog/blog_detail_results.html index 1427a01..4672a8a 100644 --- a/97suifangqa/templates/sciblog/blog_detail_results.html +++ b/97suifangqa/templates/sciblog/blog_detail_results.html @@ -1,7 +1,7 @@ {% extends "sciblog/blog_detail.html" %} {% block bodyclasses %}{{ block.super }} blog-results{% endblock %} {% block sectionname %} -病友治疗结果 +<span style="font-weight:normal;">治疗结果</span> {% endblock %} {% block navigation %} @@ -9,6 +9,7 @@ {% load group_list %} {% block block_pieces %} + {% for chunk in blog.results.all|chunks:3 %} <div class="cards three-columns"> {% for result in chunk %} @@ -40,6 +41,7 @@ {% endfor %} </div> + <br /> {% endfor %} {% endblock %} diff --git a/97suifangqa/templates/sciblog/blog_detail_source.html b/97suifangqa/templates/sciblog/blog_detail_source.html index 83be5f1..6f57b4e 100644 --- a/97suifangqa/templates/sciblog/blog_detail_source.html +++ b/97suifangqa/templates/sciblog/blog_detail_source.html @@ -1,7 +1,7 @@ {% extends "sciblog/blog_detail.html" %} {% block sectionname %} -文章来源 +<span style="font-weight:normal;">文章来源</span> {% endblock %} {% block navigation %} @@ -24,7 +24,7 @@ <p>{{ blog.authors }}</p> <h4>学者机构</h4> <p>{% for h in blog.hospital.all %} -{{ h.name }}({{ h.city.nation.name }}) +{{ h.name }}({{ h.city.nation.name }}) {% endfor %} -等等</p> +等</p> {% endblock %} diff --git a/97suifangqa/templates/sciblog/blog_detail_test.html b/97suifangqa/templates/sciblog/blog_detail_test.html index b6823a9..b7d9f5b 100644 --- a/97suifangqa/templates/sciblog/blog_detail_test.html +++ b/97suifangqa/templates/sciblog/blog_detail_test.html @@ -47,8 +47,8 @@ </ul> </div> <header id="header"> - <div id="logo"> - <img src="{% static "images/slilogo.png" %}" alt=""> + <div id="logo" > + <a href="/blog/index"><img src="{% static "images/slilogo.png" %}" alt=""></a> </div> </header> </aside> diff --git a/97suifangqa/templates/sciblog/blog_list.html b/97suifangqa/templates/sciblog/blog_list.html index e1eb542..ad5d069 100644 --- a/97suifangqa/templates/sciblog/blog_list.html +++ b/97suifangqa/templates/sciblog/blog_list.html @@ -14,10 +14,10 @@ <div class="hover-overlay"> <div class="region-wrap"> <div class="user-info"> - <h3>用户姓名</h3> + <h3>{{ user.username }}</h3> </div> <div class="search-history"> - <h3>搜索历史</h3> + <h3>搜索记录</h3> <ul> {% for search in search_history %} <li><a href="{% url query_blogs %}?q={{ search }}">{{ search }}</a></li> @@ -25,7 +25,7 @@ </ul> </div> <div class="related-questions"> - <h3>相关问题</h3> + <h3>您可能对一下问题也感兴趣</h3> <ul> {% for query in questions%} <li> @@ -34,38 +34,59 @@ {% endfor %} </ul> </div> + <div class="search-history"> + <h3><a href="{% url blog_collection %}" target="_blank">我的收藏</a></h3> + + </div> + </div> </div> {% endblock %} {% block body %} <section id="blog-list-top-nav"> {% include "login-menu.inc.html" %} - <nav class="search-type-nav"> - <ul class="links inline"> - <li class="first-level"><a href="" class="{% if tab == 'list' %}active{% endif %}">搜索结果</a></li> - <!--li class="first-level"><a href="">术语</a></li--> - <li class="first-level"><a href="{% url blog_collection %}" class="{% if tab == 'collection' %}active{% endif %}">我的收藏</a></li> - </ul> - </nav> + </section> <section id="blog-list-content"> - <h2 class="section-name">专业术语</h2> - {% for noun in ppnouns %} + + <div style="margin-top:-25px;"> + <div style="width:630px;height:1px;margin:40px 0 -3px 0;padding:0px;background-color:#b3b3b1;overflow:hidden;"></div> + <h2 class="section-name" style="color:#a8a8a8;font-weight:normal;">术语科普</h2> + <div style="width:630px;height:1px;margin:2px 0 30px 0;padding:0px;background-color:#b3b3b1;overflow:hidden;"></div> + </div> + + {% for noun in ppnouns %} <ul class="articles"> <li class="article"> <div class="article-title"><!--a href=""-->{{noun.firstkeyword }}<!--/a--></div> <div class="excerpt"> - {{ noun.firstparagraph }} + {{ noun.detail|safe }} </div> </li> + <div style="width:630px;height:1px;margin:20px 0 35px 0;padding:0px;background-color:#f2f2f0;overflow:hidden;"></div> {% endfor %} </ul> - <h2 class="section-name">医学文章</h2> + + + + + + <div style="width:630px;height:1px;margin:-41px 0 40px 0;padding:0px;background-color:#fff;overflow:hidden;"></div> + <!--div style="width:150px;border:1px solid #d5d5d5;margin:-21px auto 40px auto;padding:0px;overflow:hidden;"></div--> + + <div style="margin-top:-35px;"> + <div style="width:630px;height:1px;margin-bottom:-5px;padding:0px;background-color:#b3b3b1;overflow:hidden;"></div> + <h2 class="section-name" style="color:#a8a8a8;font-weight:normal;margin-bottom:5px;">临床治疗经验</h2> + <div style="width:630px;height:1px;margin:0 0 30px 0;padding:0px;background-color:#b3b3b1;overflow:hidden;"></div> + </div> + + + {% if has_blogs %} <div class="articles"> {% for blog in blogs %} <div class="article"> - <div class="article-title"><a href="{% url blog_detail blog.id %}">{{ blog.subhead }}</a></div> + <div class="article-title"><a href="{% url blog_detail blog.id %}" target="_blank">{{ blog.subhead|safe }}</a></div> <ul class="article-subtitles inline"> <!--li> <span>难度:</span> @@ -92,22 +113,28 @@ {% endfor %} </ul> </li--> - <li> <span>杂志:</span><span>{{ blog.journal }}</span></li> + <li> <span>杂志:</span><span>{{ blog.journal|safe }}</span></li> <li> <span>作者:</span><span>{{ blog.communication_author }}</span></li> </ul> <br /> <div class="excerpt"> {{ blog.conclusion|safe }} </div> + <div style="width:630px;height:1px;margin:40px 0 20px 0;padding:0px;background-color:#f2f2f0;overflow:hidden;"></div> </div> {% endfor %} </div> {% else %} - <div class="not-found"> + <div class="not-found" style="margin-bottom:50px;"> <img src="{% static "images/blog-not-found.png" %}" alt=""> - <div class="message">没有搜索到{% if tab == 'list'%}文章{% else %}收藏{% endif %}</div> + <div class="message">{% if tab == 'list'%}没有搜索到匹配的{% else %}暂时未收藏{% endif %}医学文章</div> </div> {% endif %} + + + + + </section> {% endblock %} diff --git a/97suifangqa/templates/sciblog/blog_list_collection.html b/97suifangqa/templates/sciblog/blog_list_collection.html new file mode 100644 index 0000000..0eb951d --- /dev/null +++ b/97suifangqa/templates/sciblog/blog_list_collection.html @@ -0,0 +1,137 @@ +{% extends "picture-base.html" %} +{% block bodyclasses %}{{ block.super }} blog blog-list{% endblock %} +{% load staticfiles %} +{% block othercss %} +<link rel="stylesheet" href="{% static "stylesheets/sass/blog.css" %}"> +{% endblock %} +{% block sidebar_first_content %} + {% include "sciblog/nav-ribbon.html" %} + <div class="region-wrap"> + <div class="post-question"> + {% include "sciblog/blog_search_form.html" %} + </div> + </div> + <!--div class="hover-overlay"> + <div class="region-wrap"> + <div class="user-info"> + <h3>{{ user.username }}</h3> + </div> + <div class="search-history"> + <h3>搜索记录</h3> + <ul> + {% for search in search_history %} + <li><a href="{% url query_blogs %}?q={{ search }}">{{ search }}</a></li> + {% endfor%} + </ul> + </div> + <div class="related-questions"> + <h3>您可能对一下问题也感兴趣</h3> + <ul> + {% for query in questions%} + <li> + <a href="{% url query_blogs %}?q={{ query.content }}" title="查询与此问题相关的文章">{{ query.content }}</a> + </li> + {% endfor %} + </ul> + </div> + <div class="search-history"> + <h3><a href="{% url blog_collection %}" target="_blank">我的收藏</a></h3> + + </div> + + </div> + </div--> +{% endblock %} +{% block body %} + <section id="blog-list-top-nav"> + {% include "login-menu.inc.html" %} + <nav class="search-type-nav"> + <ul class="links inline"> + + <li class="first-level"><!--a href="{% url blog_collection %}"-->我的收藏</a></li> + </ul> + </nav> + </section> + <section id="blog-list-content"> + + <div style="margin-top:-15px;"> + <div style="width:630px;height:1px;margin:40px 0 -5px 0;padding:0px;background-color:#b3b3b1;overflow:hidden;"></div> + <h2 class="section-name" style="color:#a8a8a8;font-weight:normal;">临床治疗经验</h2> + <div style="width:630px;height:1px;margin:2px 0 30px 0;padding:0px;background-color:#b3b3b1;overflow:hidden;"></div> + </div> + + {% if has_blogs %} + <div class="articles"> + {% for blog in blogs %} + <div class="article"> + <div class="article-title"><a href="{% url blog_detail blog.id %}" target="_blank">{{ blog.subhead }}</a></div> + <ul class="article-subtitles inline"> + <!--li> + <span>难度:</span> + {% load get_range %} + <ul class="difficulty inline rating-blocks"> + {% for num in 5|get_range %} + {% if num < blog.level %} + <li class="filled"></li> + {% else %} + <li class="empty"></li> + {% endif %} + {% endfor %} + </ul> + </li> + <li> + <span>权威:</span> + <ul class="difficulty inline rating-blocks"> + {% for num in 5|get_range %} + {% if num < blog.quality_value %} + <li class="filled"></li> + {% else %} + <li class="empty"></li> + {% endif %} + {% endfor %} + </ul> + </li--> + <li> <span>杂志:</span><span>{{ blog.journal }}</span></li> + <li> <span>作者:</span><span>{{ blog.communication_author }}</span></li> + </ul> + <br /> + <div class="excerpt"> + {{ blog.conclusion|safe }} + </div> + <div style="width:630px;height:1px;margin:40px 0 20px 0;padding:0px;background-color:#f2f2f0;overflow:hidden;"></div> + </div> + {% endfor %} + </div> + {% else %} + <div class="not-found" style="margin-bottom:50px;"> + <img src="{% static "images/blog-not-found.png" %}" alt=""> + <div class="message">{% if tab == 'list'%}没有搜索到匹配的{% else %}暂时未收藏{% endif %}临床治疗经验</div> + </div> + {% endif %} + + <div style="width:630px;height:1px;margin:-41px 0 40px 0;padding:0px;background-color:#fff;overflow:hidden;"></div> + <!--div style="width:150px;border:1px solid #d5d5d5;margin:-21px auto 40px auto;padding:0px;overflow:hidden;"></div--> + + <div style="margin-top:-15px;"> + <div style="width:630px;height:1px;margin-bottom:-5px;padding:0px;background-color:#b3b3b1;overflow:hidden;"></div> + <h2 class="section-name" style="color:#a8a8a8;font-weight:normal;margin-bottom:5px;">术语科普</h2> + <div style="width:630px;height:1px;margin:0 0 30px 0;padding:0px;background-color:#b3b3b1;overflow:hidden;"></div> + </div> + + {% for noun in ppnouns %} + <ul class="articles"> + <li class="article"> + <div class="article-title"><!--a href=""-->{{noun.firstkeyword }}<!--/a--></div> + <div class="excerpt"> + {{ noun.detail|safe }} + </div> + </li> + <div style="width:630px;height:1px;margin:20px 0 35px 0;padding:0px;background-color:#f2f2f0;overflow:hidden;"></div> + {% endfor %} + </ul> + + </section> + +{% endblock %} + +{# vim: set ts=2 sw=2 tw=0 fenc=utf-8 ft=htmldjango: #} diff --git a/97suifangqa/templates/sciblog/blog_search_form.html b/97suifangqa/templates/sciblog/blog_search_form.html index e2869e9..a55f27c 100644 --- a/97suifangqa/templates/sciblog/blog_search_form.html +++ b/97suifangqa/templates/sciblog/blog_search_form.html @@ -1,5 +1,5 @@ <form method="get" class="searchdiv" action="{% url query_blogs %}"> - <input type="text" name="q" placeholder="在这里搜索关键词" class="question" value="{{ q }}"> + <input type="text" name="q" placeholder=" 在这里搜索关键词" class="question" value="{{ q }}"> <input type="submit" value="搜 索" class="submit"> </form> diff --git a/97suifangqa/templates/sciblog/index.html b/97suifangqa/templates/sciblog/index.html index 86769c2..39e8896 100644 --- a/97suifangqa/templates/sciblog/index.html +++ b/97suifangqa/templates/sciblog/index.html @@ -13,7 +13,7 @@ <header id="header">
<div id="logo">
- <img src="{% static "images/logo-overlay-white.png" %}" alt="">
+ <a href="/blog/index"><img src="{% static "images/logo-overlay-white.png" %}" alt=""></a>
</div>
</header>
diff --git a/97suifangqa/templates/sciblog/nav-ribbon.html b/97suifangqa/templates/sciblog/nav-ribbon.html index 16b2bc1..4505693 100644 --- a/97suifangqa/templates/sciblog/nav-ribbon.html +++ b/97suifangqa/templates/sciblog/nav-ribbon.html @@ -3,9 +3,9 @@ <div class="head-background"></div>
<div class="links-wrap">
<ul class="links inline">
- <li class="first"><a href="/blog/index">首页</a></li>
- <li><a href="{% url list_blogs %}">知识库</a></li>
- <!--li><a href="">随访工具</a></li-->
+ <li class="first"><a href="/blog/index" target="_blank">返回首页</a></li>
+ <!--li><a href="{% url list_blogs %}">知识库</a></li-->
+ <li><a href="/indicator/status" target="_blank">随访工具</a></li>
<!--li class="last"><a href="">我的花费</a></li-->
</ul>
</div>
diff --git a/97suifangqa/templates/search/indexes/sciblog/blogannotation_text.txt b/97suifangqa/templates/search/indexes/sciblog/blogannotation_text.txt index a347fc0..ceb9fd7 100644 --- a/97suifangqa/templates/search/indexes/sciblog/blogannotation_text.txt +++ b/97suifangqa/templates/search/indexes/sciblog/blogannotation_text.txt @@ -1,5 +1,7 @@ +{%if object.type == 1 %} {{ object.brief_content }} {{ object.detail }} {% for keyword in object.keywords.all %} {{ keyword.content }} {% endfor %} +{% endif %} diff --git a/isuifang_solr/solr/conf/schema.xml b/isuifang_solr/solr/conf/schema.xml index 5ae6f28..feeae96 100644 --- a/isuifang_solr/solr/conf/schema.xml +++ b/isuifang_solr/solr/conf/schema.xml @@ -178,6 +178,10 @@ <field name="addByUser" type="text_en" indexed="true" stored="true" multiValued="false" /> + <field name="pinyin" type="text_en" indexed="true" stored="true" multiValued="false" /> + + <field name="type" type="text_en" indexed="true" stored="true" multiValued="false" /> + <field name="dataType" type="text_en" indexed="true" stored="true" multiValued="false" /> <field name="categories_id" type="text_en" indexed="true" stored="true" multiValued="true" /> |