smart-classic / smart_server Goto Github PK
View Code? Open in Web Editor NEWSMArt Bootstrap Server
License: Apache License 2.0
SMArt Bootstrap Server
License: Apache License 2.0
setting path /accounts/{user_id}/apps/{smart_app_id}/preferences <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1039a7650>
setting path /records/{record_id}/allergies/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1039c5bd0>
setting path /records/{record_id}/problems/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1039bedd0>
Permission denied for session_create None
[11/Apr/2012 15:02:56] "POST /oauth/internal/session_create HTTP/1.1" 403 26
2012-04-11 19:02:56,408 DEBUG
>>> error: likely a bad username/password, or incorrect tokens from UI server to backend server.
[11/Apr/2012 19:02:56] "POST /login HTTP/1.1" 200 3637
When performing a POST
to POST /records/{record-id}/apps/{app-id}/scratchpad
, a 403 is returned. A 405 would probably be better.
There are errors in
Ideas? Does the dev branch need an updated client submodule?
INDEX ui/index
[17/Apr/2012 21:00:32] "GET / HTTP/1.1" 302 0
[17/Apr/2012 21:00:32] "GET /login HTTP/1.1" 200 3440
In helper app data store chrome
got calls 39
setting path /records/{record_id}/immunizations/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028c0990>
setting path /records/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1024a4bd0>
setting path /records/{record_id}/allergies/{allergy_id} <smart.client.common.rdf_ontology.SMART_API_Call object at 0x102896250>
setting path /records/{record_id}/immunizations/{immunization_id} <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028c0950>
setting path /records/{record_id}/lab_results/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028f5f50>
setting path /records/{record_id}/allergies/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028961d0>
setting path /ontology <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028e2c90>
setting path /records/{record_id}/problems/{problem_id} <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028cda10>
setting path /records/{record_id}/encounters/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x102896f10>
setting path /records/{record_id}/allergies/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x102896210>
setting path /records/{record_id}/problems/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028cd990>
setting path /users/{user_id} <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028cd150>
setting path /accounts/{user_id}/apps/{smart_app_id}/preferences <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028fc2d0>
setting path /records/{record_id}/vital_signs/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x10288d050>
setting path /records/{record_id}/demographics <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028d3190>
setting path /records/{record_id}/demographics <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028d31d0>
setting path /records/{record_id}/fulfillments/{fulfillment_id} <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028ddf10>
setting path /records/{record_id}/vital_signs/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x102892fd0>
setting path /records/{record_id}/immunizations/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028c09d0>
setting path /accounts/{user_id}/apps/{smart_app_id}/preferences <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028fc290>
setting path /records/{record_id}/fulfillments/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028dded0>
setting path /records/{record_id}/vital_signs/{vital_signs_id} <smart.client.common.rdf_ontology.SMART_API_Call object at 0x10288d090>
setting path /capabilities/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028c7310>
setting path /records/{record_id}/lab_results/{lab_result_id} <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028f5ed0>
setting path /apps/manifests/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x102896350>
setting path /records/{record_id}/demographics <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028d3110>
setting path /records/{record_id}/fulfillments/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028ddf50>
setting path /records/{record_id}/problems/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028cd9d0>
setting path /apps/{descriptor}/manifest <smart.client.common.rdf_ontology.SMART_API_Call object at 0x102896310>
setting path /records/{record_id}/medications/{medication_id} <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028dd3d0>
setting path /records/{record_id}/alerts/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028e2610>
setting path /records/{record_id}/encounters/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x102896f50>
setting path /records/search?given_name={given_name}&family_name={family_name}&zipcode={zipcode}&birthday={birthday}&gender={gender}&medical_record_number={medical_record_number} <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028d3150>
setting path /users/search?given_name={given_name}&family_name={family_name} <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028cd190>
setting path /accounts/{user_id}/apps/{smart_app_id}/preferences <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028fc310>
setting path /records/{record_id}/medications/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028dd350>
setting path /records/{record_id}/medications/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028dd390>
setting path /records/{record_id}/lab_results/ <smart.client.common.rdf_ontology.SMART_API_Call object at 0x1028f5f10>
setting path /records/{record_id}/encounters/{encounter_id} <smart.client.common.rdf_ontology.SMART_API_Call object at 0x102896ed0>
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 279, in run
self.result = application(self.environ, self.start_response)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 651, in __call__
return self.application(environ, start_response)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 241, in __call__
response = self.get_response(request)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/base.py", line 134, in get_response
return self.handle_uncaught_exception(request, resolver, exc_info)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/base.py", line 83, in get_response
request.path_info)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/urlresolvers.py", line 218, in resolve
sub_match = pattern.resolve(new_path)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/urlresolvers.py", line 216, in resolve
for pattern in self.url_patterns:
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/urlresolvers.py", line 245, in _get_url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/urlresolvers.py", line 240, in _get_urlconf_module
self._urlconf_module = import_module(self.urlconf_name)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/Users/arjunsanyal/Desktop/chip_new/code/smart_server/smart/urls/urls.py", line 87, in <module>
OntologyURLMapper(urlpatterns)
File "/Users/arjunsanyal/Desktop/chip_new/code/smart_server/smart/models/ontology_url_patterns.py", line 15, in __init__
mapper = CallMapper.map_call(c)
File "/Users/arjunsanyal/Desktop/chip_new/code/smart_server/smart/models/ontology_url_patterns.py", line 66, in map_call
return in_order[-1]
IndexError: list index out of range
[17/Apr/2012 17:00:54] "POST /oauth/internal/session_create HTTP/1.1" 500 2438
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 279, in run
self.result = application(self.environ, self.start_response)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 651, in __call__
return self.application(environ, start_response)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 241, in __call__
response = self.get_response(request)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/base.py", line 134, in get_response
return self.handle_uncaught_exception(request, resolver, exc_info)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/base.py", line 92, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/Users/arjunsanyal/Desktop/chip_new/code/smart_ui_server/ui/views.py", line 366, in login
ret = tokens_get_from_server(request, username, password)
File "/Users/arjunsanyal/Desktop/chip_new/code/smart_ui_server/ui/views.py", line 56, in tokens_get_from_server
tmp = api.create_session({'username' : username, 'user_pass' : password})
File "/Users/arjunsanyal/Desktop/chip_new/code/smart_ui_server/indivo_client_py/lib/client.py", line 270, in create_session
chrome_token = self.api.call(self.ds.app_info, chrome_auth)['prd']
File "/Users/arjunsanyal/Desktop/chip_new/code/smart_ui_server/indivo_client_py/lib/api.py", line 23, in call
return method(**kwargs)
File "/Users/arjunsanyal/Desktop/chip_new/code/smart_ui_server/indivo_client_py/lib/api.py", line 84, in create_session
debug=debug)
File "/Users/arjunsanyal/Desktop/chip_new/code/smart_ui_server/indivo_client_py/lib/iutils.py", line 382, in get_response
), app_info, parameters, req_data),
File "/Users/arjunsanyal/Desktop/chip_new/code/smart_ui_server/indivo_client_py/lib/iutils.py", line 156, in http_conn
return self._http_request(method, oauth_header, data)
File "/Users/arjunsanyal/Desktop/chip_new/code/smart_ui_server/indivo_client_py/lib/iutils.py", line 111, in _http_request
raise IUtilsError('Server Error')
IUtilsError: 'Server Error'
[17/Apr/2012 21:00:54] "POST /login HTTP/1.1" 500 2413
to strip: references to old capabilities API:
Capabilities RDF A SMART Container's capabilities are reported as an RDF graph. So far only three capabilities have been defined, as shown in the example below. These are: * lookup in SNOMED * lookup in FDA Structured Product Labels * lookup in NLM Pillbox.
Is this behavior correct? Calling /apps/(manifests)
does only return PHA
instances, but no HelperApp
instances.
Would be nicer if it returned an error message. :)
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/django/core/servers/basehttp.py", line 280, in run
self.result = application(self.environ, self.start_response)
File "/Library/Python/2.7/site-packages/django/core/servers/basehttp.py", line 674, in __call__
return self.application(environ, start_response)
File "/Library/Python/2.7/site-packages/django/core/handlers/wsgi.py", line 248, in __call__
response = self.get_response(request)
File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 141, in get_response
return self.handle_uncaught_exception(request, resolver, sys.exc_info())
File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 80, in get_response
response = middleware_method(request)
File "/Library/SMART/smart_server/../smart_server/smart/middlewares/authentication.py", line 29, in process_request
request.principal, request.oauth_request = security.get_principal(request)
File "/Library/SMART/smart_server/smart/accesscontrol/security.py", line 41, in get_principal
pha, token, parameters, oauth_request = get_oauth_info(request, SMART_CONNECT_OAUTH_SERVER)
File "/Library/SMART/smart_server/smart/accesscontrol/security.py", line 26, in get_oauth_info
oauth_request = server.extract_oauth_request(djangoutils.extract_request(request))
File "/Library/SMART/smart_server/oauth/oauth.py", line 516, in extract_oauth_request
return OAuthRequest.from_http_request(http_request, self.store)
File "/Library/SMART/smart_server/oauth/oauth.py", line 462, in from_http_request
consumer = oauth_store.lookup_consumer(oauth_consumer_key)
File "/Library/SMART/smart_server/smart/accesscontrol/oauth_servers.py", line 266, in lookup_consumer
return self._get_chrome_app(consumer_key)
File "/Library/SMART/smart_server/smart/accesscontrol/oauth_servers.py", line 349, in _get_chrome_app
return models.MachineApp.objects.get(consumer_key = consumer_key, app_type='chrome')
File "/Library/Python/2.7/site-packages/django/db/models/manager.py", line 132, in get
return self.get_query_set().get(*args, **kwargs)
File "/Library/Python/2.7/site-packages/django/db/models/query.py", line 342, in get
num = len(clone)
File "/Library/Python/2.7/site-packages/django/db/models/query.py", line 80, in __len__
self._result_cache = list(self.iterator())
File "/Library/Python/2.7/site-packages/django/db/models/query.py", line 271, in iterator
for row in compiler.results_iter():
File "/Library/Python/2.7/site-packages/django/db/models/sql/compiler.py", line 677, in results_iter
for rows in self.execute_sql(MULTI):
File "/Library/Python/2.7/site-packages/django/db/models/sql/compiler.py", line 731, in execute_sql
cursor = self.connection.cursor()
File "/Library/Python/2.7/site-packages/django/db/backends/__init__.py", line 75, in cursor
cursor = self._cursor()
File "/Library/Python/2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 136, in _cursor
self.connection = Database.connect(**conn_params)
OperationalError: FATAL: database "smart" does not exist
[05/Jul/2012 10:37:26] "POST /oauth/internal/session_create HTTP/1.1" 500 3187
--> Internal server error
[testStructure] RDF structure check failed
Unexpected results (first 3 shown):
DxyOzFZN612
Test:
sp:Person must have at least one vcard:n property
Fail condition:
Query returns a non-empty result set
Query:
PREFIX rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#
PREFIX sp:http://smartplatforms.org/terms#
PREFIX vcard:http://www.w3.org/2006/vcard/ns#
SELECT ?s
WHERE {
?s rdf:type sp:Person .
OPTIONAL {
?s vcard:n ?o .
?o rdf:type vcard:Name .
}
FILTER ( !BOUND(?o) )
}
For further information:
http://wiki.chip.org/smart-project/index.php/Developers_Documentation:_SMART_Data_Model#Person_RDF
Should return a 404 if the app does not exists, but throws a 500 and:
IndexError: list index out of range
function addGraphs(){
//add all graphs in arguments to new rdfquery object
var rq = SMART.$.rdf();
$.each(arguments, function(){
rq.databank = rq.databank.add(this.graph.databank,{namespaces:
this.graph.prefix()});
});
return rq;
}
On branch dev
, commit 0b6a5ec62ba18efe7d3deb43e833b5c37c8361d5
. When calling api.call("GET", "/records/search/xml")
from the UI-server, I get a 500 on the server:
PROCESSING EXCEPTION
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__getitem__', '__getslice__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', 'args', 'body', 'message', 'status']
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 111, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/Library/SMART/smart_server/smart/views/smarthacks.py", line 275, in record_search_xml
record_list = Record.search_records(q)
File "/Library/SMART/smart_server/smart/models/records.py", line 37, in search_records
ids = parse_rdf(c.sparql(query))
File "/Library/SMART/smart_server/smart/triplestore/triplestore.py", line 42, in sparql
return super(TripleStore, self).sparql(query)
File "/Library/SMART/smart_server/smart/triplestore/sesame.py", line 74, in sparql
"Accept" : "application/rdf+xml, application/sparql-results+json"}, data)
File "/Library/SMART/smart_server/smart/triplestore/sesame.py", line 37, in _request
return utils.url_request(url, method, headers, data)
File "/Library/SMART/smart_server/smart/lib/utils.py", line 162, in url_request
return url_request_execute(req)
File "/Library/SMART/smart_server/smart/lib/utils.py", line 196, in url_request_execute
raise URLFetchException(r.status, data)
URLFetchException
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/django/core/servers/basehttp.py", line 283, in run
self.result = application(self.environ, self.start_response)
File "/Library/Python/2.7/site-packages/django/contrib/staticfiles/handlers.py", line 68, in __call__
return self.application(environ, start_response)
File "/Library/Python/2.7/site-packages/django/core/handlers/wsgi.py", line 272, in __call__
response = self.get_response(request)
File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 169, in get_response
response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 111, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/Library/SMART/smart_server/smart/views/smarthacks.py", line 275, in record_search_xml
record_list = Record.search_records(q)
File "/Library/SMART/smart_server/smart/models/records.py", line 37, in search_records
ids = parse_rdf(c.sparql(query))
File "/Library/SMART/smart_server/smart/triplestore/triplestore.py", line 42, in sparql
return super(TripleStore, self).sparql(query)
File "/Library/SMART/smart_server/smart/triplestore/sesame.py", line 74, in sparql
"Accept" : "application/rdf+xml, application/sparql-results+json"}, data)
File "/Library/SMART/smart_server/smart/triplestore/sesame.py", line 37, in _request
return utils.url_request(url, method, headers, data)
File "/Library/SMART/smart_server/smart/lib/utils.py", line 162, in url_request
return url_request_execute(req)
File "/Library/SMART/smart_server/smart/lib/utils.py", line 196, in url_request_execute
raise URLFetchException(r.status, data)
URLFetchException
[05/Jul/2012 19:47:05] "GET /records/search/xml HTTP/1.1" 500 1830
Change the operation of SMART REST so that instead of attaching an OAuth header as a URL param, the individual OAuth params are just passes as URL params themselves, as per http://oauth.net/core/1.0a Section 5.2 #3.
Also: document a complete example of a signed request in the SMART docs.
We need a better way to host manifests on sample-apps.smartplatforms.org. Currently the manifests have:
"base_url" : "http://localhost:8001",
which is super-confusing for anyone building a container who wants to load these directly, e.g. from:
http://sample-apps.smartplatforms.org/framework/got_statins/smart_manifest.json
(The OpenMRS team has pointed out how confusing this is.)
Current ontology has lost the LabResultPanel model. Need to add this back with an example.
Looks like I made a copy/paste error resulting in the Demographics example being replaced with a LabResult example nearly a month ago! I've updated the ontology in master
+ dev
.
Nikolai, do you want new v0.4x tags pushed too?
These data just aren't routinely available in EMRs.
This is about explicitly conveying the difference between absence of
evidence (e.g. maybe no one ever asked) vs. evidence of absence (asked
and denied). This isn't elegant but it is explicit -- which is to
say, I've tried to avoid "modifier" predicates that would drastically
change meaning of an element.
A pattern that shows up in clinical models is something like an
"isNegated" triple to say that whatever thing this is, the opposite is
in fact true. This is scary, because apps have to really "get it
right," and the semantics of negating an entire clinical statements
aren't always clear (e.g. is this statement denying the patient ever
took Penicillin? Or just denying that she took it within the
specified date range?)
For more background, see "Clinical Statement Status and Negation" at:
http://www.openehr.org/releases/1.0.1/html/architecture/overview/Output/design_of_ehr.html
This code in UI server:
params = None
record_rdf = api.call("GET", "/records/search", options={'parameters': params});
results in this call to the backend:
GET /records/search
and correctly returns all records.
This code in UI server:
params = {'family_name': 'Morgan'}
record_rdf = api.call("GET", "/records/search", options={'parameters': params});
executes on the backend:
GET /records/search?family_name=Morgan
and returns no records, despite there being an "Amy Morgan". Similarly:
params = {'family_name': 'M'}
record_rdf = api.call("GET", "/records/search", options={'parameters': params});
executes on the backend:
GET /records/search?family_name=M
and returns no records, although it should return all records that start with the letter "M".
Ran as: "python smart_manager.py -a -d". Looks like a difference in sed params? I'll check this out.
Configuring SMART server settings...
SMART API Server [http://localhost:7000]:
Chrome App Consumer ID [chrome]:
Chrome App Consumer secret [tQrQCWbk]:
SMART UI server [http://localhost:7001]:
SMART App server [http://localhost:8001]:
Run server in standalone mode (patient data stored in local db)?
If you choose 'no', the server will be configured in proxy mode,
with patient data hosted at a REST URL you provide. [yes]:
cp smart_server/settings.py.default smart_server/settings.py
cp smart_server/bootstrap_helpers/application_list.json.default smart_server/bootstrap_helpers/application_list.json
sed -i -e's/http:\/\/localhost:8001/http:\/\/localhost:8001/' smart_server/bootstrap_helpers/application_list.json
sed: 1: "smart_server/bootstrap_ ...": unterminated substitute pattern
cp smart_ui_server/settings.py.default smart_ui_server/settings.py
cp smart_sample_apps/settings.py.default smart_sample_apps/settings.py
sed -i -e's/{{path_to_smart_server}}/\/Users\/arjunsanyal\/Desktop\/chip_new\/code\/smart_server/' smart_server/settings.py
sed: 1: "smart_server/settings.py": unterminated substitute pattern
sed -i -e's/{{path_to_smart_ui_server}}/\/Users\/arjunsanyal\/Desktop\/chip_new\/code\/smart_ui_server/' smart_ui_server/settings.py
sed: 1: "smart_ui_server/setting ...": unterminated substitute pattern
sed -i -e's/{{path_to_smart_sample_apps}}/\/Users\/arjunsanyal\/Desktop\/chip_new\/code\/smart_sample_apps/' smart_sample_apps/settings.py
sed: 1: "smart_sample_apps/setti ...": unterminated substitute in regular expression
sed -i -e's/{{api_server_base_url}}/http:\/\/localhost:7000/' smart_server/settings.py
sed: 1: "smart_server/settings.py": unterminated substitute pattern
sed -i -e's/{{api_server_base_url}}/http:\/\/localhost:7000/' smart_ui_server/settings.py
sed: 1: "smart_ui_server/setting ...": unterminated substitute pattern
sed -i -e's/{{app_server_base_url}}/http:\/\/localhost:8001/' smart_sample_apps/settings.py
sed: 1: "smart_sample_apps/setti ...": unterminated substitute in regular expression
sed -i -e's/{{api_server_base_url}}/http:\/\/localhost:7000/' smart_sample_apps/settings.py
sed: 1: "smart_sample_apps/setti ...": unterminated substitute in regular expression
sed -i -e's/{{chrome_consumer}}/chrome/' smart_server/settings.py
sed: 1: "smart_server/settings.py": unterminated substitute pattern
sed -i -e's/{{chrome_secret}}/tQrQCWbk/' smart_server/settings.py
sed: 1: "smart_server/settings.py": unterminated substitute pattern
sed -i -e's/{{chrome_consumer}}/chrome/' smart_ui_server/settings.py
sed: 1: "smart_ui_server/setting ...": unterminated substitute pattern
sed -i -e's/{{chrome_secret}}/tQrQCWbk/' smart_ui_server/settings.py
sed: 1: "smart_ui_server/setting ...": unterminated substitute pattern
sed -i -e's/{{ui_server_base_url}}/http:\/\/localhost:7001/' smart_server/settings.py
sed: 1: "smart_server/settings.py": unterminated substitute pattern
yes standalone
sed -i -e's/{{use_proxy}}/False/' smart_server/settings.py
sed: 1: "smart_server/settings.py": unterminated substitute pattern
Traceback (most recent call last):
File "smart_manager.py", line 331, in <module>
main()
File "smart_manager.py", line 235, in main
server_settings = imp.load_source("settings", "smart_server/settings.py")
File "smart_server/settings.py", line 20, in <module>
PLUGIN_USE_PROXY = {{use_proxy}} # Enable PROXY_MODE: True or False
NameError: name 'use_proxy' is not defined
None of our sample demographics supply race, ethnicity, or preferredLanguage.
I think the right thing to do is require preferredLanguage be a ISO 639-1 string (two letter language abbreviation) whenever possible. http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
Column 2 of the properties tables is incorrectly showing the sp:Statement type instead of a full property name.
Where's XMLField?
~/Desktop/chip_new/code/$ python smart_manager.py -l
cd smart_server; PYTHONPATH=.:.. DJANGO_SETTINGS_MODULE=settings python load_tools/load_one_patient.py ../smart_sample_patients/generated-data/* ;cd ..;
Traceback (most recent call last):
File "load_tools/load_one_patient.py", line 3, in <module>
from smart.models.rdf_store import TemporaryStoreConnector, RecordStoreConnector
File "/Users/arjunsanyal/Desktop/chip_new/code/smart_server/smart/models/__init__.py", line 11, in <module>
from records import *
File "/Users/arjunsanyal/Desktop/chip_new/code/smart_server/smart/models/records.py", line 16, in <module>
from smart.models.rdf_store import DemographicConnector, RecordStoreConnector
File "/Users/arjunsanyal/Desktop/chip_new/code/smart_server/smart/models/rdf_store.py", line 18, in <module>
class PHA_RDFStore(Object):
File "/Users/arjunsanyal/Desktop/chip_new/code/smart_server/smart/models/rdf_store.py", line 21, in PHA_RDFStore
triples = models.XMLField(schema_path="%s../schema/%s"%(settings.XSLT_STYLESHEET_LOC, "rdf.xsd"))
AttributeError: 'module' object has no attribute 'XMLField'
~/Desktop/chip_new/code/$ grep -r XMLField .
./smart_server/smart/models/rdf_store.py: triples = models.XMLField(schema_path="%s../schema/%s"%(settings.XSLT_STYLESHEET_LOC, "rdf.xsd"))
Binary file ./smart_server/smart/models/rdf_store.pyc matches
~/Desktop/chip_new/code/$
I had a hard shutdown and restarted the servers via smart_manager but didn't remember to re-start tomcat for sesame. There should be some check in SM for this
The wiki documentation makes it seem as though clinical statements are blank nodes, represented in RDF/XML by <sp:Medication>
tags.
The should actually look like
<sp:Medication rdf:about=’http://smart.org/records/123/medicationss/456’>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.