profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/MatthewVita/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.

kakoni/awesome-healthcare 1789

Curated list of awesome open source healthcare software, libraries, tools and resources.

MatthewVita/spring-boot-private-chat 103

1-1 instant messaging project designed to demonstrate WebSockets in a load-balanced environment.

MatthewVita/node-hl7-complete 41

Node module that is bridged with the Java Hapi HL7 library.

MatthewVita/fake-patient-web 5

FakePatientWeb shows a realistic fake patient record in a nice UI as well as in JSON form. 300,000 NAMCS records are used as the data source. TODO: FHIR integration

MatthewVita/Mirth-Learning-Project 4

A trivial example project for my learning about Mirth.

MatthewVita/awesome-healthcare 1

Curated list of awesome open source healthcare software, libraries, tools and resources.

MatthewVita/openemr 1

OpenEMR is the most popular open source electronic health records and medical practice management solution. ONC certified with international usage, OpenEMR's goal is a superior alternative to its proprietary counterparts.

MatthewVita/openemr-devops 1

OpenEMR administration and deployment tooling

MatthewVita/ambulatory-ehr-data 0

300k patient records generated to be representative to US-states using NAMCS

issue commentMatthewVita/node-hl7-complete

UNKNOWN in the hl7 to json output

@privateOmega

/**
 * Looking for UNKNOWNs... did the HAPI upgrade mess with stuff or are the examples incorrect/very specific?
 * It's fair to say that HL7 (not FHIR) is a pretty loose standard and these are just specific messages that
 * only internal systems know how to map (i.e.: Health Sentry HL7 interfaces). I found all of these messages
 * years ago and now I'm realizing that I should have considered their context instead of "oh wow, the messages
 * are showing... it must be working and contextually valid!"
 * 
 * This code was written in less than 30 minutes. _Please_ ignore how bad it is to follow.
 * 
 * Start testing this code by checking out 771202d71fd618f013c9dcafe2c361126d4370f1 which is v2.2... then on master. 
 * There are txt files that are spat out to see what's going on. Make sure to rename the first files so you don't override them when running the script on master. 
 * 
 * My diff tool (meld) sees NO difference between the old 2.2 and 2.3 systems integration.
 */


const NodeHL7Complete = require('./index.js')
const nodeHL7Instance = new NodeHL7Complete()


// THIS IS THE EXAMPLE ON THE README - THIS WORKS
let data1 = ''
data1 += 'MSH|^~\\&|||||||VXU^V04|19970522MA53|P|2.3.1|||AL\r'
data1 += 'PID|||221345671^^^^SS||KENNEDY^JOHN^FITZGERALD^JR|BOUVIER^^^^^^M|19900607|M|||^^^^MA^^^BLD\r'
data1 += 'NK1|1|KENNEDY^JACQUELINE^LEE|32^MOTHER^HL70063\r'
data1 += 'RXA|0|1|19900607|19900607|08^HEPB-PEDIATRIC/ADOLESCENT^CVX|.5|ML^^ISO+||||||||MRK12345||MSD^MERCK^MVX\r'


// PICKED RANDOMLY - LOTS OF UNKNOWNS
let data2 = ''
data2 += 'MSH|^~\\&|HealthSentry^HealthSentry^L|Baseline West MC^33D1234567^L|VISN_OUT^VISN_OUT^L|VISN_OUT^VISN_OUT^L|201011041640||ORU^R01^ORU_R01|201010010913000771|P|2.5.1|||||||||PHLabReport-NoAck^^2.16.840.1.114222.4.10.3^ISO'
data2 += 'SFT|Cerner Corporation|20101001|HealthSentry|HealthSentry|HealthSentry|20101001'
data2 += 'PID|1||9339683996^^^Baseline West MC&33D1234567&L^MR^Baseline West MC&33D1234567&L|7903^^^Cerner Corp|Miller^Paul^One^^^^L||20050715050000|M||White^Caucasian^HL70005|555 Flower Street^^Aurora^CO^80011^USA^C||^PRN^PH^^^303^5549936||en^English^ISO6391||||765894312|||N^Non Hispanic^HL70189'
data2 += 'ORC|RE|||||||||||Harrison , Kyle^Harrison^Kyle^^^^^^Baseline West MC&33D1234567&L|||||||||Baseline West MC^L^^^^Baseline West MC&33D1234567&L^XX^Baseline West MC&33D1234567&L^^123|2800 Rockcreek Parkway^^Kansas City^MO^64117^^B|^^PH^^^816^2211024|2800 Rockcreek Parkway^^Kansas City^MO^64117^^B'
data2 += 'OBR|1||2010273000016^EHR^33D1234567^L|548-8^Culture Sputum^LN^114^Culture Sputum^99zzz or L|||201011041640||||||None|201011041640||Harrison , Kyle^Harrison^Kyle^^^^^^Baseline West MC&33D1234567&L|^^PH^^^816^2211024|||||20101001132800||MB|F||||||786.2^COUGH^I9~786.03^APNEA^I9~786.0^DYSPNEA AND RESPIRATORY ABNORMALITIES^I9'
data2 += 'SPM|1|||119334006^Sputum^SCT^SPT^Sputum^HL70070^20080131^2.5.1'
data2 += 'OBX|1|CE|548-8^Culture Sputum^LN^114^Culture Sputum^99zzz or L|1|^Bordetella pertussis^SNM|||A|||F|||201011041640|||||20101105132800||||Baseline West MC^L^^^^Baseline West MC&33D1234567&L^XX^Baseline West MC&33D1234567&L^^123|2800 Rockcreek Parkway^^Kansas City^MO^64117^^B'


const _ = [data1, data2]
_.forEach((input, idx) => {
    nodeHL7Instance.hl7ToJs(input, function(err, output) {
        idx++; require('fs').writeFileSync(`result_${idx}.txt`, JSON.stringify(output))
    });
});
privateOmega

comment created time in a day

push eventMatthewVita/node-hl7-complete

mvim

commit sha fbcd52b62634ad46fc271d51778dcbbd0e1a6fc0

v3.1.1

view details

mvim

commit sha 8932730ad987b8c8fd0c7d6e1031e152c7ceb5d2

Merge pull request #25 from MatthewVita/v3.1.1 v3.1.1

view details

push time in 13 days

PR opened MatthewVita/node-hl7-complete

v3.1.1
+1 -1

0 comment

1 changed file

pr created time in 13 days

create barnchMatthewVita/node-hl7-complete

branch : v3.1.1

created branch time in 13 days

push eventMatthewVita/node-hl7-complete

Matthew Vita

commit sha e9cec13c8c55910a0de7b754aca40e0ce3135eaf

start of the endpoints for docker

view details

privateOmega

commit sha 98d1fe1980a9351b1eea44afa0c50a329d18e5ea

feat: add Dockerfile for node-hl7-complete

view details

privateOmega

commit sha ef27ae11581f2e97b2ec4e2f45f2c1e494e994f1

fix: remove host to fix binding

view details

Matthew Vita

commit sha 13ded9df5e957b7debd046085960ae5255c02efc

Fixed middleware and added docs

view details

mvim

commit sha be6fe9e7682fcdf7fb3bca72ef6bd72eec63a62d

Merge pull request #22 from MatthewVita/mv-docker docker solution

view details

push time in 13 days

pull request commentMatthewVita/node-hl7-complete

Dockerized HTTP server

@privateOmega thanks for reviewing. Okay to merge (and maybe bump)?

I saw the crosspost. I won't have time to look at this for a few days. Obviously very important and the tests are clearly not serving us.

privateOmega

comment created time in 13 days

pull request commentMatthewVita/node-hl7-complete

Dockerized HTTP server

I won't have time to look into this immediately, but I wanted to point out that there may be a bug somewhere. See the "UNKNOWN"s. Just posting this more as a reminder for myself. Feel free to ignore.

issue

privateOmega

comment created time in 13 days

pull request commentMatthewVita/node-hl7-complete

Dockerized HTTP server

@privateOmega Hi. I added my bits. Please let me know if it looks good.

privateOmega

comment created time in 13 days

push eventprivateOmega/node-hl7-complete

Matthew Vita

commit sha 5b75f90b41c110dd49a3656962451d2b083b30e6

Fixed middleware and added docs

view details

push time in 13 days

issue commentMatthewVita/node-hl7-complete

Project Discussion (Aug 15th)

@privateOmega okay, I put together something we can start to play with here: https://github.com/MatthewVita/node-hl7-complete/pull/22

It's a node express server that accepts calls to our solution (I'm using the package directly for now). The curls are just for testing.

Ignore the bodyParser stuff... I'm having a terrible time figuring out how to meet my goals with the latest middleware there so I'm using an outdated approach!

Please note I put this together sort of quickly so we can start testing. We will certainly refine the code/etc as we make progress!

MatthewVita

comment created time in 18 days

create barnchMatthewVita/node-hl7-complete

branch : mv-docker

created branch time in 18 days

issue commentMatthewVita/node-hl7-complete

Project Discussion (Aug 15th)

@privateOmega,

I did use the word "nuts" haha. It can solve the problem but it's likely going to be too much effort like you said. Also, anyone looking at the code will be "what is going on here???".

At this point, the only way to support "modern Java" is to hide away our code in a Docker container with a single http endpoint. I've brought this up before and think it's also nuts but may be realistic. The current solution remains, of course... this is just a wrapper.

Maybe this Docker conversation is worth bringing up? We're running out of options with this issue :(.

MatthewVita

comment created time in 20 days

issue commentMatthewVita/node-hl7-complete

Project Discussion (Aug 15th)

@privateOmega

Hey!

You can probably tell I'm pretty hooked on supporting modern Java... i.e.: my old crazy/stupid idea to run the solution in a docker container with an API endpoint for instance :). Regardless, here's some new research on a possible solution... we'd be looking at this flow:

Node -> Node FFI -> C++ JNI -> our HAPI code ... and then the whole way back.

Links:

This would work. It's complex though. It's adding 1 more binding and 1 more programming language to the mix. Having two is elegant... three is kinda nuts.

As for node-java and Java > 8 support, I haven't put any serious amount of time to test/research. On my list.

MatthewVita

comment created time in a month

pull request commentkakoni/awesome-healthcare

Add iSyntax

@JeroenKnoops The headers inside CompressionCodeSamples ("Compression", "Image Format", and "Post-processing for Image Viewing") indeed include the 3-Clause BSD License. The interest now is to confirm if the SDK itself is open source/free software by reviewing the SDK's EULA.

I'm particularly interested in the "Open Source Restrictions" and "License restrictions" clauses but I must admit they are hard to parse.

At the end of the day, the major question (for now) is: "is this SDK dual licensed (commercial & open source license)?". I think it's fair to say that the EULA has many commercial elements. Such elements are later concatenated with open source license verbiage/information. That is the point where I get confused.

JeroenKnoops

comment created time in a month

issue commentMatthewVita/node-hl7-complete

Project Discussion (Aug 15th)

@privateOmega Howdy. Both of us keep busy!

Oh wow. I didn't word that well at all! I'm certainly not for getting rid of HAPI - that would defeat the purpose of our project. What I meant to say is we're not necessary stuck with using node java as the middle layer (in theory), which has that nasty old Java dependency issue. Perhaps we can get around that by having node bind with a (compiled?) language that can somehow bind with Java and therefore, Hapi. It's architecturally a mess but it's important that we at least think about some binding solution so we're not stuck with Java 8 and can call modern Java nonetheless. I have a feeling the old version is a deal breaker for many folks when they check out our README. What I'm proposing sounds (is?) sloppy/complex but it least we can start the Java 8 conversation.

As for branding the readme... when you have a chance, please check out https://github.com/matiassingers/awesome-readme. We can compare what we like shortly.

Agree on SLF4J.

Talk soon. Sorry for the confusion on the HAPI stuff!!!

MatthewVita

comment created time in a month

issue openedMatthewVita/node-hl7-complete

Project Discussion (Aug 15th)

New Release!

@privateOmega

3.1.0 is merged in and is testing well! We now have:

  • Updated hapi jar
  • Version bumps to java, js2xmlparser, and xml2js (primary deps)
  • Corrected unit test object
  • Improved hl7 parsing support with the latest version of Hapi (forces node >12 with the Node Engine Version)
  • Agreement to keep devDependencies frozen as as they aren't managed/don't work together with version bumps
  • Potential speed improvements?

Potential Work Items

We're in a good place so this will be tricky to come up with a list of what we want to do with with the library.

  • Completely redo the unit and functional tests based on how the devDeps are super old?

  • The name of our project has nothing to do with Java. Maybe we can find a mature Hapi binding in a nice programming language to replace Java. Obviously this is a bit more abstract then our current design / the binding would have to cover like everything.

  • Maybe we can go wild and really "brand" the README? Only if your interested. I'm mildly interesated.

  • Fix SLF4J logs (very boring)

created time in a month

issue closedMatthewVita/node-hl7-complete

Project Discussion (July 4th)

Hi @privateOmega,

Sorry for my absence. Life keeps happening. I figured I'd put together this issue so we can discuss recent changes/ideas in one place. Please reference everything by the section name.

Node Version

I'm happy to say that I'm able to install the project with Node versions greater than 8 now (e.x.: 14). All it took it was bumping node java to 0.12.1. Please let me know if that PR is correct :).

Node Engine Version

I get the idea of incorporating this, and we should, I just don't follow why you have Node 11 as the limit. "node" : "<11.0.0". Can we go with 14 and under? I'm new to this package field/concept so forgive my ignorance!

Hapi/Jar Updates

Thanks for handling this. All is testing well on my end. It's good to know we are current and folks can benefit!

HL7 Jar Versioning Question

I figured I'd keep the Node and Java codebases versioned separately. I don't see it ask a problem honestly. Let me know if I'm missing something/this is a bad pattern.

SLF4J Question

I saw your comment. I haven't had the time to look into this. It's not a great developer experience to always see this unrelated log all of the time.

README Node Version Reference

Currently the README states "[...] rely on those versions to function (Java 8/Node 8.0.0 exactly)." Once my PR is good, I'll update the Node part.

Mention of Docker

You asked if having a Docker solution would contain a newer version of Java. This (and Node) can be locked down. The reason I brought this up is because most developers likely (?) don't use Java 8 anymore and don't want to roll it back (even with solutions such as Jabba). Having a container would solve this problem if the developer is in a Docker-centric environment and doesn't mind making a call http to actually use our solution. From my experience, this isn't an uncommon approach in that environment. I'm still considering if this is worth it. I'll put together a proof-of-concept.

Publish

I haven't forgot about publishing everything to NPM. On my list. I haven't looked into how to give you NPM access.

closed time in a month

MatthewVita

startedshyiko/jabba

started time in a month

push eventMatthewVita/node-hl7-complete

Matthew Vita

commit sha 734e2b243e53fc0501cad0d46852b4b0dba7cb72

getting everything ready for release

view details

mvim

commit sha 968a8f8f380000823e67710f6c1b585cf1b4092f

Delete package-lock.json... maybe add later as a best practice?

view details

mvim

commit sha 3bd6727e53be051923c8c7fb19fe06ebd3b2468f

had this backwards Co-authored-by: Kiran Mathew Mohan <privateomega@protonmail.com>

view details

mvim

commit sha 4e939c40219b5c9b5d4e33101f5b725ca04a7663

had this backwards Co-authored-by: Kiran Mathew Mohan <privateomega@protonmail.com>

view details

mvim

commit sha f5fc6a6efbaaf793c3c2c88393c911ef2e2b3b65

Merge pull request #20 from MatthewVita/mv-for-release mv-for-release

view details

push time in a month

push eventMatthewVita/node-hl7-complete

Matthew Vita

commit sha 66c2246e27c6b6a283d72d07bb84f5b1fef647de

bump node java

view details

Matthew Vita

commit sha 1f53e2b842b134fe465c6bf4661f6942e9507ca1

bump primary deps

view details

mvim

commit sha 0726f1ba8c6028c60b6f204d461b09ce55a59ca7

Merge pull request #18 from MatthewVita/bump-node-java bump node java

view details

push time in a month

push eventMatthewVita/node-hl7-complete

mvim

commit sha 4e939c40219b5c9b5d4e33101f5b725ca04a7663

had this backwards Co-authored-by: Kiran Mathew Mohan <privateomega@protonmail.com>

view details

push time in a month

push eventMatthewVita/node-hl7-complete

mvim

commit sha 3bd6727e53be051923c8c7fb19fe06ebd3b2468f

had this backwards Co-authored-by: Kiran Mathew Mohan <privateomega@protonmail.com>

view details

push time in a month

pull request commentMatthewVita/node-hl7-complete

bump node java

@privateOmega Hope you're well. Sorry for the late reply (work/life again... mainly work). I just added a commit here that bumps our main dependencies as you suggested (good idea!). Only one had a breaking change but it was easy to adjust in the code/unit tests.

I don't want to touch the dev deps because 2 of the 3 testing packages are either deprecated or in maintenance mode... I'm happy to leave them frozen.

Please let me know if this commit checks out with you. I'll be replying to the main PR this weekend. I think I have a bit of confusion there to be honest.

MatthewVita

comment created time in 2 months

push eventMatthewVita/node-hl7-complete

Matthew Vita

commit sha 1f53e2b842b134fe465c6bf4661f6942e9507ca1

bump primary deps

view details

push time in 2 months

issue commentMatthewVita/node-hl7-complete

Project Discussion (July 4th)

(also I branched off of the https://github.com/MatthewVita/node-hl7-complete/pull/18 branch for this just to make this simple)

MatthewVita

comment created time in 2 months