New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ccda service for ccd document generation to support CCM and Onsite portal. #543
Conversation
What to do! I have tested hook to calling ccda fetching from CCM for portal use using cURL but this requires modification to CCM public index where action is handled for authentication. Also the fall through for that create data function call is missing the component array in called createdata function and I can not see this as anything but an oversight, but because that is the same public call made by myportal external portal soap web api, I can't be sure I'm not missing some setup soap controller does or it is not currently being used. |
@sjpadgett |
Thanks, authentication really isn't my issue. I'm just trying to avoid
touching code base too much. I think I figured out fetching and once I
finish sorting out CCM dependencies, I'll do fetching direct. I just can't
figure out if I'm missing something because from what I see the public
interface is not up to date and has bugs. Also, so far, I still can not see
that enough data is provided from module to fully complete core template
types and sections and am somewhat leery because guardian portion of data
set was abandoned or forgotten. Though guardian information may not be
needed to meet M.U. it should be included if available. However, I'm
somewhat new to ccda and may be trying to cover 100% when 50% will do. I
should have portal interface to ccda service done by tomorrow night.
…On Thu, Mar 16, 2017 at 2:42 PM, Brady Miller ***@***.***> wrote:
@sjpadgett <https://github.com/sjpadgett>
The offsite portal also required a work around to create the ccdas. Is
this helpful:
a700e47
<a700e47>
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#543 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/ABxhkaVYhjF2ehPMZfa3SSOTjMcTATr2ks5rmYJ5gaJpZM4MajuY>
.
--
Jerry Padgett
(Skype) 813-699-4264
(Google Voice) 813-644-2333
Padgett Systems and Consulting Brandon, Florida 33511
|
Sounds good. If we do decide that we need to improve things in the CCDA creation(which sounds like it will be a good thing to do), then will likely make sense at that point to "duplicate" the code (so MU2 stuff isn't touched); but can do that after the mechanism is working well. |
@sjpadgett , Just let me know if you want me to start testing this out. -brady |
I went through most of the CCM call chains last night. Hell of a way to
become more familiar with Zend CCM I'm here to tell you but it got me
there(I don't think most people realize and appreciate how much work and
time had to have gone into that feature). We really are lucky to have it. I
found at least three ways to trigger the fetching from portal and have
opted for a single cURL call as to be easiest and least messy way. So now
my biggest decision as to project architecture is whether to set up
document service in Ubuntu as an os service started when apache starts or
start it as an app process. Suppose depends on what you think is better fit
for OpenEMR. I also re-review the M.U compliance yesterday and am pretty
certain we will meet with the service template setup as is with some small
changes. Will try to post on git new changes later today so you can test if
you like.
…On Sat, Mar 18, 2017 at 5:51 AM, Brady Miller ***@***.***> wrote:
@sjpadgett <https://github.com/sjpadgett> , Just let me know if you want
me to start testing this out. -brady
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#543 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/ABxhkZ6Os9i1PXNsl8Z39k7744wRhtj6ks5rm6k1gaJpZM4MajuY>
.
--
Jerry Padgett
(Skype) 813-699-4264
(Google Voice) 813-644-2333
Padgett Systems and Consulting Brandon, Florida 33511
|
…n. I put up if anyone happens to be following.
Hi @sjpadgett , |
…authentication for portal and main. Going to move to ccdaservice directory for use elsewhere soon. * Service changes seem radical but merely reorg of function ordering. * Also did some work in template for empty encounter history array blowing up(exception in template populate). Not sure encounter history should come from Billing table but, where else?
Don't know what I want to do next. Starting to get bored with. |
Sounds like we are nearing point to bring this into the codebase. Recommend placing the sql backround service code in database.sql and the upgrade script and setting it inactive by default. And then making a setting in globals to turn it on/off (rec looking at the Direct service code to see how they did this and could just go along for the ride). Then sounds like ready to bring this in. And if still bored, there is fhir :) |
ccdaservice/README.md
Outdated
@@ -0,0 +1,49 @@ | |||
Copyright 2017 sjpadgett@gmail.com |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mention gpl license
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
or whatever gpl compatible license you prefer
@@ -0,0 +1,1519 @@ | |||
"use strict"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
needs a standard author/copyright/license header
@@ -0,0 +1,66 @@ | |||
<?php |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
needs a standard author/copyright/license header
ccdaservice/ssmanager.php
Outdated
@@ -0,0 +1,66 @@ | |||
<?php | |||
$ignoreAuth = true; | |||
// require_once(dirname(__file__) . './../interface/globals.php'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can remove above 2 lines
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
ccdaservice/ssmanager.php
Outdated
set_time_limit( 0 ); | ||
ob_implicit_flush(); | ||
session_write_close(); // Release session lock to prevent freezing of other scripts | ||
ignore_user_abort( 1 ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a more strategic place for these flags (in case wish to use this library without starting session_write_close() )?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I forgot about them. They are hold over from my php socket server when I had them integrated together. Code it once and forget about it, that's my motto.:) They can go.
-- | ||
|
||
INSERT INTO `background_services` (`name`, `title`, `active`, `running`, `next_run`, `execute_interval`, `function`, `require_once`, `sort_order`) VALUES | ||
('handle-ccda-service', 'C-CDA Node Service', 1, 0, '2017-03-02 06:15:58', 1, 'runCheck', '/ccdaservice/ssmanager.php', 99); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add to database.sql and upgrade sql script. 0 for active and blank for next_run. And see below comments on having it turned on in globals. Also noted that the running flag is not being set when this process is running.
ccdaservice/support/populate.js
Outdated
@@ -0,0 +1,1097 @@ | |||
/* Template javascript objects for generating cda. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
needs a standard author/copyright/license header
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
testing file i'll pull it.
@@ -0,0 +1,18 @@ | |||
var isWin = /^win/.test(process.platform); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
needs a standard author/copyright/license header
@@ -0,0 +1,18 @@ | |||
var isWin = /^win/.test(process.platform); | |||
if( isWin ){ | |||
var Service = require('node-windows').Service; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tried sudo node unservice and wasn't able to remove the service (it was started via background service); I can kill it with kill -9 if needed, though. Is there a way to turn off the background service within OpenEMR if, for example, make it inactive in globals?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The winservice/unservice run as expected in windows however in Linux, the current setup is winservice starts in root and is not seen by OpenEMR running above root so it runs as a process. Prefer method would be to run in root and I keep going back and forth as to best way to handle. Thus the two methods. I haven't worried too much on how to stop it, several ways to do. Long time since I've looked at background service code but there, I assume, is where to enable feature. Remembering that if CCM and/or Portal is enabled, so must ccda service. I'll figure this out.
@@ -0,0 +1,37 @@ | |||
var isWin = /^win/.test(process.platform); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
needs a standard author/copyright/license header
|
||
if( isWin ){ | ||
var Service = require('node-windows').Service; | ||
//f = '\\xampp\\htdocs\\openemr\\services\\ccdaservice\\serveccda.njs'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, out of curiosity. For this script and the one above, if I go this in a web browser, will they run?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not as is but could be using browserify. May be some permission issues though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just wanted to make sure they couldn't be run by a user going to them in the web browser.
@@ -43,6 +43,9 @@ | |||
if(strtolower($controllerName) == 'soap' && strtolower($actionName) == 'index') { | |||
$ignoreAuth_offsite_portal = true; | |||
} | |||
if($_REQUEST['recipient'] === 'patient' && $_REQUEST['site']){ | |||
$ignoreAuth = true; //@todo figure this out - carry forward session maybe I don't trust globals | |||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Definitely need to secure this, which you already know :)
portal/ccda_gateway.php
Outdated
if (!$parameterArray ['view']){ | ||
header ( 'Content-Type: application/xml' ); | ||
} | ||
else $h='<a href="./home.php" </a><button style="font-size:18px; color:red;" >Return Home</button><br>'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
translate
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can wait on that of course if this is still in flux
@@ -43,6 +43,9 @@ | |||
if(strtolower($controllerName) == 'soap' && strtolower($actionName) == 'index') { | |||
$ignoreAuth_offsite_portal = true; | |||
} | |||
elseif($_REQUEST['recipient'] === 'patient' && $_REQUEST['site'] && $controllerName){ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there downstream credentialing authorization done here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added authentication through a forward of current portal session login authorizations.
@@ -210,17 +216,14 @@ function saveProfile(){ | |||
<div class="panel panel-primary collapse" id="downloadpanel"> | |||
<header class="panel-heading"> <?php echo xlt('Download Documents'); ?> </header> | |||
<div id="docsdownload" class="panel-body"> | |||
<?php if ( $GLOBALS['portal_onsite_document_download'] ) { ?> | |||
<?php if ( $GLOBALS['portal_onsite_document_download'] ) { ?>// really should always be able to download! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are you suggesting that patients actually should own their own medical data?(sarcasm) :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sometimes I prefer to be in the dark.
sql/5_0_0-to-5_0_1_upgrade.sql
Outdated
|
||
#IfNotRow background_services name ccdaservice | ||
INSERT INTO `background_services` (`name`, `title`, `execute_interval`, `function`, `require_once`, `sort_order`) VALUES ('ccdaservice', 'C-CDA Node Service', 1, 'runCheck', '/ccdaservice/ssmanager.php', 95); | ||
ALTER TABLE `background_services` CHANGE `running` `running` TINYINT(1) NOT NULL DEFAULT '-1' COMMENT 'True indicates managed service is busy. Skip this interval.'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the placing of this comment. Should also place it this in the database.sql table.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
Come to think of it, no. Just checks for portal enable in globals. Now I
remember why I was trying to carry session forward from portal. How about
if I encrypt portal authentication and bring forward. Or create a custom
cookie.
…On Sun, Mar 26, 2017 at 6:33 PM, Brady Miller ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In interface/modules/zend_modules/public/index.php
<#543 (comment)>:
> @@ -43,6 +43,9 @@
if(strtolower($controllerName) == 'soap' && strtolower($actionName) == 'index') {
$ignoreAuth_offsite_portal = true;
}
+elseif($_REQUEST['recipient'] === 'patient' && $_REQUEST['site'] && $controllerName){
Is there downstream credentialing authorization done here?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#543 (review)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABxhkYKAC7Kslz4PAslRq-MgKo3OWyD-ks5rpuecgaJpZM4MajuY>
.
--
Jerry Padgett
(Skype) 813-699-4264
(Google Voice) 813-644-2333
Padgett Systems and Consulting Brandon, Florida 33511
|
Are you using curl to go into it to collect the ccda from the care coordination module? Is it standard practice to place onsite portal credentials on that call? Wouldn't it already get encrypted if the user has server set up to use https? It does look like MU3 may require OATH2 (I need to confirm this in the testing scripts), so perhaps could also leverage that here if needed. Lots of question :) (obviously I need to do some research on this stuff) |
$parameterArray [0] [6] = $_SESSION ['portal_username']; // set to an onsite portal user | ||
|
||
if(!isset($_SESSION ['site_id'])) $_SESSION ['site_id'] = 'default'; // do believe globals does this but I go rogue at times. | ||
$server_url = 'http://localhost'. $GLOBALS['webroot']; // I alias into openemr directory on my sights causing webroot to be empty. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a way to figure out if the user on the portal(or from within openemr) is using http or https along with the server name, since would be good to use https if that is being used (especially if passing credentials) and would need to work from outside localhost also (unless I am missing something; for example, is this call coming from the server itself?).
Add comment to running flag in database.sql
Yes on curl. No credentials are in query, only portal session id and
parameters for calling fetching. I'm not encrypting but instead passing
session cookie id created by portal login to verify that indeed I'm being
called by authorized patient and portal is currently an authorized session.
Really not any different then if I called a library directly.
The CCM public interface is there specifically for calling modules via soap
as api's. This is how external portal grabs fetching except via a
pre-authorized soap controller session. But more specifically, external
portal uses curl for ccdafetching. So external portal, as with me, has
already validated user before public call to fetching where external portal
re-validates by the mere fact the soap controller is defined and I by the
fact that the authorized portal session exists and is reverified.
Yes on the OAUTH, not so much for our internal functionality(wget,cURL
e.t.c) but for sure for api's like FHIR.
…On Mon, Mar 27, 2017 at 1:58 AM, Brady Miller ***@***.***> wrote:
Are you using curl to go into it to collect the ccda from the care
coordination module? Is it standard practice to place onsite portal
credentials on that call? Wouldn't it already get encrypted if the user has
server set up to use https? It does look like MU3 may require OATH2 (I need
to confirm this in the testing scripts), so perhaps could also leverage
that here if needed. Lots of question :) (obviously I need to do some
research on this stuff)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#543 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/ABxhkRIb6kkqyX1zrw1-ylq81lTC28fTks5rp0_0gaJpZM4MajuY>
.
--
Jerry Padgett
(Skype) 813-699-4264
(Google Voice) 813-644-2333
Padgett Systems and Consulting Brandon, Florida 33511
|
"(especially if passing credentials)" I'm not passing credentials in sense
of password/user only the patient id and site. Really the curl call is just
as if I called verify_session for a local library. Anyway, yes on ssl, we
know. My gut asks me, why would I want to do round robin back to domain to
make a local call? Also, depending on how servers domain alias is setup,
web root could be empty. I planned all ccda service calls to be localhost,
am I missing something?
…On Mon, Mar 27, 2017 at 2:01 AM, Brady Miller ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In ccdaservice/ccda_gateway.php
<#543 (comment)>:
> +
+//eventually below will qualify what document to fetch
+$parameterArray = array();
+$parameterArray ['encounter'];
+$parameterArray ['combination'] = $pid;
+$parameterArray ['components']; // = 'progress_note|consultation_note|continuity_care_document|diagnostic_image_reporting|discharge_summary|history_physical_note|operative_note|procedure_note|unstructured_document';
+$parameterArray ['sections']; // = 'allergies|medications|problems|immunizations|procedures|results|plan_of_care|vitals|social_history|encounters|functional_status|referral|instructions';
+$parameterArray ['downloadccda']=1;
+$parameterArray ['sent_by'];
+$parameterArray ['send'];
+$parameterArray ['view'] = 1;
+$parameterArray ['recipients'] = 'patient'; // emr_direct or hie else if not set $_SESSION['authUserID']
+$parameterArray [0] [6] = $_SESSION ['portal_username']; // set to an onsite portal user
+
+if(!isset($_SESSION ['site_id'])) $_SESSION ['site_id'] = 'default'; // do believe globals does this but I go rogue at times.
+$server_url = 'http://localhost'. $GLOBALS['webroot']; // I alias into openemr directory on my sights causing webroot to be empty.
Is there a way to figure out if the user on the portal is using http or
https along with the server name, since would be good to use https if that
is being used (especially if passing credentials) and would need to work
from outside localhost also (unless I am missing something).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#543 (review)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABxhkeYhZb2TUdnoEBK-oN2_XRPqlQPFks5rp1C4gaJpZM4MajuY>
.
--
Jerry Padgett
(Skype) 813-699-4264
(Google Voice) 813-644-2333
Padgett Systems and Consulting Brandon, Florida 33511
|
Too be honest with you my friend, my eyes glaze over whenever I have to
deal with sessions and server configurations. You know far better than I
how you need this to work with OpenEMR, so I yield to you. However you want
this just let me know and I'll try to make it work.
…On Mon, Mar 27, 2017 at 1:29 PM, Jerry Padgett ***@***.***> wrote:
"(especially if passing credentials)" I'm not passing credentials in
sense of password/user only the patient id and site. Really the curl call
is just as if I called verify_session for a local library. Anyway, yes on
ssl, we know. My gut asks me, why would I want to do round robin back to
domain to make a local call? Also, depending on how servers domain alias is
setup, web root could be empty. I planned all ccda service calls to be
localhost, am I missing something?
On Mon, Mar 27, 2017 at 2:01 AM, Brady Miller ***@***.***>
wrote:
> ***@***.**** commented on this pull request.
> ------------------------------
>
> In ccdaservice/ccda_gateway.php
> <#543 (comment)>:
>
> > +
> +//eventually below will qualify what document to fetch
> +$parameterArray = array();
> +$parameterArray ['encounter'];
> +$parameterArray ['combination'] = $pid;
> +$parameterArray ['components']; // = 'progress_note|consultation_note|continuity_care_document|diagnostic_image_reporting|discharge_summary|history_physical_note|operative_note|procedure_note|unstructured_document';
> +$parameterArray ['sections']; // = 'allergies|medications|problems|immunizations|procedures|results|plan_of_care|vitals|social_history|encounters|functional_status|referral|instructions';
> +$parameterArray ['downloadccda']=1;
> +$parameterArray ['sent_by'];
> +$parameterArray ['send'];
> +$parameterArray ['view'] = 1;
> +$parameterArray ['recipients'] = 'patient'; // emr_direct or hie else if not set $_SESSION['authUserID']
> +$parameterArray [0] [6] = $_SESSION ['portal_username']; // set to an onsite portal user
> +
> +if(!isset($_SESSION ['site_id'])) $_SESSION ['site_id'] = 'default'; // do believe globals does this but I go rogue at times.
> +$server_url = 'http://localhost'. $GLOBALS['webroot']; // I alias into openemr directory on my sights causing webroot to be empty.
>
> Is there a way to figure out if the user on the portal is using http or
> https along with the server name, since would be good to use https if that
> is being used (especially if passing credentials) and would need to work
> from outside localhost also (unless I am missing something).
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <#543 (review)>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/ABxhkeYhZb2TUdnoEBK-oN2_XRPqlQPFks5rp1C4gaJpZM4MajuY>
> .
>
--
Jerry Padgett
(Skype) 813-699-4264 <(813)%20699-4264>
(Google Voice) 813-644-2333 <(813)%20644-2333>
Padgett Systems and Consulting Brandon, Florida 33511
--
Jerry Padgett
(Skype) 813-699-4264
(Google Voice) 813-644-2333
Padgett Systems and Consulting Brandon, Florida 33511
|
…unt task to get it down to 10meg. 2. Updated project readme with new install instructions.
New commit. Testing of recent changes working well on Ubuntu and Windows. Scaled back dependencies for service. Did cursory FHIR api testing for api web service ( no commits for this yet ). I think, if possible, all ccda service ports and calls should be done through localhost. The only problem I see using localhost would be if a server was configured with several virtual hosts and localhost was aliased on a different virtual host than OpenEMR. I see no reason to access ccda service or ccda fetching( for my purposes ) outside of localhost but, I may be missing something. |
sql/database.sql
Outdated
@@ -151,7 +151,7 @@ CREATE TABLE `background_services` ( | |||
INSERT INTO `background_services` (`name`, `title`, `execute_interval`, `function`, `require_once`, `sort_order`) VALUES | |||
('ccdaservice', 'C-CDA Node Service', 1, 'runCheck', '/ccdaservice/ssmanager.php', 95), | |||
('phimail', 'phiMail Direct Messaging Service', 5, 'phimail_check', '/library/direct_message_check.inc', 100); | |||
|
|||
ALTER TABLE `background_services` CHANGE `running` `running` TINYINT(1) NOT NULL DEFAULT '-1' COMMENT 'True indicates managed service is busy. Skip this interval.'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sorry, should of been more clear. we don't do alters in the database.sql. We just go straight to the source and change the actual table.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I feel silly, of course! I'm getting sloppy.
Hi @sjpadgett , |
I think getting into code base is possible. I test all the time and am satisfied but two items need addressing beforehand.
As soon as I get a decent testing jig setup for new api's, I'll put up and start a new pull request. You know, just so we can be cool, once FHIR api is in place we just have to write a mobile app! |
whoohooo on the mobile app :) |
Fixed database.sql comment for running flag.
I was being facetious concerning perl. Seems I've written something in every other script or language lately, why not perl! It landed in my head, just didn't translate well. |
Wish they would make Close button RED! |
I guess I fell for the perl statement since it's my second favorite language (after bash of course) :) |
Maybe if we could count on the exact environment nodejs is installed.
Reasonably, we can't. What I may do is write an install and place in
dashboard or an auto install. My main concern is keeping dependencies size
reasonable because of backup's. Depending on how far we take FHIR, we could
really be in dependency hell. So some importance needs to be placed on
putting as much of the dependencies as reliable under the operating system.
First thought is to simply install the node_modules as pre-setup files but
my initial attempt at this proved troublesome. I always knew this was going
to be an issue but I have faith I can find a reasonable solution to lessen
the impact on our users.
…On Thu, Mar 30, 2017 at 6:25 AM, Brady Miller ***@***.***> wrote:
I guess I fell for the perl statement since it's my second favorite
language (after bash of course) :)
One more quick question. Would it make sense to run the command to import
the dependencies into the main openemr codebase, so the user wouldn't need
to do that?(or is this craziness?or maybe there is some os dependent stuff
going on?)
After I have clarity on that, then I think this is ready to come into the
codebas (either with or without dependencies).
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
<#543 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/ABxhkR3CxlfTB2EQZSlcyUSGj73zRfg_ks5rq4MOgaJpZM4MajuY>
.
--
Jerry Padgett
(Skype) 813-699-4264
(Google Voice) 813-644-2333
Padgett Systems and Consulting Brandon, Florida 33511
|
Sounds like we are at a good point to bring this into the codebase since packaging issues can be improved after it's in the codebase. Do you think it's ready?(if you say so, I'll bring it in :) ) |
Okay with me. I'm pretty sure it wouldn't be to hard to patch into in
v5.0.0 if someone wanted to use it there.
…On Fri, Mar 31, 2017 at 2:29 AM, Brady Miller ***@***.***> wrote:
Sounds like we are at a good point to bring this into the codebase since
packaging issues can be improved after it's in the codebase. Do you think
it's ready?(if you say so, I'll bring it in :) )
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
<#543 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/ABxhkS2QADbf023-oyFiuTl9O43APpnlks5rrJ0ygaJpZM4MajuY>
.
--
Jerry Padgett
(Skype) 813-699-4264
(Google Voice) 813-644-2333
Padgett Systems and Consulting Brandon, Florida 33511
|
Just brought it into the codebase. thanks!! -brady |
Once again @bradymiller thanks for all the help. You make this process so much easier. |
This is a background service for generating MU compliant ccda documents.
See readme.md for testing implementation.