Getting some informations of Patient from HL7 Message V2.4 - hl7

I need to get some information about patient from HL7Message V2.4(Or V2.3, V2.3.1), How do i get these?
i need these; Filenumber, recorddate, department name, doctor, father name, complaint, diagnosis info and diagnosis date, etc.

You might be refering to certain terms in your own language. As far as I can break down your terms below is a list for your requirements.
File number :
PID.18 Patient account number, thats where the filenumber goes. If filenumber is treated as patient IDs then its either PID.2 or PID.3
Father name :
in NK1.2 or GT1.3 or IN1.16 segment, if relation ship is established. That is, if NK1.3,GT1.11 or IN1.17 code suggest it is a father son relationship.
Department :
PV1.3.1 -point of care in an ADT message or in the LDP segment in LDP.2 in an MFN message.
Doctor:
PV1.7 Attending provider.
PV1.8 referring provider.
PV1.52 Auxilliary Provider.
OBR.16 Ordering provider.
Diagnosis Information:
DG1 segment
DG1.3 - Code
DG1.5 - Date and time
You can find more documentation on this link

Just check the relevant fields of the PID segment, especially
PID/5 Patient Name
PID/7 Date/Time of Birth
PID/8 Sex
PID/11 Patient Adress
PID/..
a.s.o
You will find location data in the PV1 segment.
All the doctors should be in PV1 too.
Diagnosis data is in the DG1 segment.
Fathers name could be in NK1.

Related

How can I write a nested IF statement in Zapier?

I'm trying to use Numbers: Spreadsheet style formula to write a nested IF statement and I keep getting this error: Error parsing response. We got: " Show details. Here is the statement: 
If("{{Alpine School District Schools}}"<>"", "{{Alpine School District Schools}}", If ("{{Bonsall Unified School District Schools}}"<>"","{{Bonsall Unified School District Schools}}", "NA")
(As an FYI, when I copy and pasted this here I removed the numbers that preceded the fields when copying and pasting {{110470936__Alpine School District Schools}}) 
This is stating if the field (which is a picklist) Alpine School District is not blank, add the school selected in this field; if it is blank but Bonsall School district is not blank, add the school selected in the Bonsall School District field, if Bonsall is also blank, add “NA”.
Any guidance on how to write to correctly is welcome.
I believe you don't have enough closing parens on the end of your statement. Here's your input, but spaced out to be more informative:
If(
"{{Alpine School District Schools}}"<>"",
"{{Alpine School District Schools}}",
If (
"{{Bonsall Unified School District Schools}}"<>"",
"{{Bonsall Unified School District Schools}}",
"NA"
)
<-- missing paren
Fixing it may be as easy as adding ) to the end of your statement.

graphing dorm movements in neo4j

I'm really struggling getting my head around neo4j and was hoping someone might be able to help point me in the right direction with the below.
Basically, I have a list of what can be referred to as events; the event can be said to describe a patient entering and leaving a room.
Each event has a unique identifier; it also has an identifier for the student in question along with start and end times (e.g. the student entered the room at 12:00 and left at 12:05) and an identifier for the room.
The event and data might look along the lines of the below, columns separated by a pipe delimiter
ID|SID|ROOM|ENTERS|LEAVES
1|1|BLUE|1/01/2015 11:00|4/01/2015 10:19
2|2|GREEN|1/01/2015 12:11|1/01/2015 12:11
3|2|YELLOW|1/01/2015 12:11|1/01/2015 12:20
4|2|BLUE|1/01/2015 12:20|5/01/2015 10:48
5|3|GREEN|1/01/2015 18:41|1/01/2015 18:41
6|3|YELLOW|1/01/2015 18:41|1/01/2015 21:00
7|3|BLUE|1/01/2015 21:00|9/01/2015 9:30
8|4|BLUE|1/01/2015 19:30|3/01/2015 11:00
9|5|GREEN|2/01/2015 19:08|2/01/2015 19:08
10|5|ORANGE|2/01/2015 19:08|3/01/2015 2:43
11|5|PURPLE|3/01/2015 2:43|4/01/2015 16:44
12|6|GREEN|3/01/2015 11:52|3/01/2015 11:52
13|6|YELLOW|3/01/2015 11:52|3/01/2015 17:45
14|6|RED|3/01/2015 17:45|7/01/2015 10:00
Questions that might be asked could be:
what rooms have student x visited and in what order
what does the movement of students between rooms look like - to which room does students go to when they leave room y
That sounds simple enough but I'm tying myself into knots.
I started off creating unique constraints for both student and room
create constraint on (student: Student) assert student.id is unique
I then did the same for room.
I then loaded student as
using periodic commit 1000 load csv with headers from 'file://c:/event.csv' as line merge (s:Student {id: line.SID});
I also did the same for room and visits.
I have absolutely no idea how to create the relationships though to be able to answer the above questions though. Each event lists the time the student enters and leaves the room but not the room the student went to. Starting with the extract, should the extract be changed so that it contains the room the student left for? If someone could help talk through how I need to think of the relationships that needs to be created, that would be very much appreciated.
Cheers
As the popular saying goes, there is more than one way to skin an Ouphe - or thwart a mage. One way you could do it (which makes for the simplest modeling imo) is as follows :
CREATE CONSTRAINT ON (s:Student) ASSERT s.studentID IS UNIQUE;
CREATE CONSTRAINT ON (r:Room) ASSERT r.roomID IS UNIQUE;
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///dorm.csv" as line fieldterminator '|'
MERGE (s:Student {studentID: line.SID})
MERGE (r:Room {roomID: line.ROOM})
CREATE (s)-[:VISIT {starttime: apoc.date.parse(line.ENTERS,'s',"dd/MM/yyyy HH:mm"), endtime: apoc.date.parse(line.LEAVES,'s',"dd/MM/yyyy HH:mm")}]->(r);
# What rooms has student x visited and in what order
MATCH (s:Student {studentID: "2"})-[v:VISIT]->(r:Room)
RETURN r.roomID,v.starttime ORDER BY v.starttime;
# What does the movement of students between rooms look like - to which room does students go to when they leave room y
MATCH (s:Student)-[v:VISIT]->(r:Room {roomID: "GREEN"})
WITH s, v
MATCH (s)-[v2:VISIT]->(r2:Room)
WHERE v2.starttime > v.endtime
RETURN s.studentID, r2.roomID, v2.starttime ORDER BY s.studentID, v2.starttime;
So actually you would only have Student and Room as nodes and a student VISITing a room would make up the relationship (with the enter/leave times as properties of that relationship). Now, as you can see that might not be ideal for your second query (although it does work). One alternative is to have a Visit node and chain it (as timeline events) to both Students and Rooms. There's plenty of examples around on how to do that.
Hope this helps,
Tom

Writing a lambda in Ruby to get the latest selling date of a collection of Tickets

How to write a lambda solving the following problem: I have a Theatre class, containing a list of Tickets, which in turn have the Date type attribute sold_at. Starting from the Theatre, I'd like to get the latest date in which any ticket was sold. In pseudo code, I would write something like:
Theatre.tickets.map(t -> t-due_date).max
I can't seem to find online how to code this.
Thanks a lot for any help.
You use ActiveRecord::Calculations#maximum:
Calculates the maximum value on a given column. The value is returned
with the same data type of the column, or nil if there's no row.
Theatre.joins(:tickets).maximum('tickets.sold_at') # I assume Theatre has_many :tickets
This will return you the date at which the ticket was sold last time for a specific theatre.
Ticket.joins(:theatre).where(theatre_id: id).order(sold_at: :desc).limit(1).sold_at

Quickbooks - migrate import IIF to QODBC

I'm trying to migrate my actual logic to import invoices into Quickbooks using QODBC tool, and I'm having trouble finding the relationship of the columns of the IIF file with the columns of the DB.
Here is the header of my IIF file
!TRNS TRNSID TRNSTYPE DATE ACCNT NAME CLASS AMOUNT DOCNUM MEMO CLEAR TOPRINT NAMEISTAXABLE ADDR1 ADDR2 ADDR3 ADDR4 ADDR5 PONUM DUEDATE TERMS OTHER1
!SPL SPLID TRNSTYPE DATE ACCNT NAME CLASS AMOUNT DOCNUM MEMO CLEAR QNTY PRICE INVITEM PAYMETH TAXABLE VALADJ SERVICEDATE OTHER2 EXTRA
!ENDTRNS
In which tables and columns should insert data to generate an invoice with similar data that I have now?
There is some documentation where this all these relationships?
Thanks in advance!
I would suggest trying Bait and Sync technique.
Enter something unique in customer, note, address, item, etc in the front end or the source from where you are creating the IIF file. Once the data is entered you can export it to IIF file.
Once you have that you know which fields of IIF file links to what.
You can then refer QODBC Invoice / InvoiceLine table schema/relationship.
Refer:
http://qodbc.com/schema.htm
You need to then do the field mapping, get the SQL Statement generated and execute the insert statements.
Refererences:
http://support.flexquarters.com/esupport/index.php?/Knowledgebase/Article/View/2389/0/how-to-create-invoices-using-qodbc
http://support.flexquarters.com/esupport/index.php?/Knowledgebase/Article/View/2810/44/how-to-insert-invoice-using-excel---vba

Is there a benefit to creating a very generic data model for a Rails 3 Project?

A Product can have lots of things said about it, I'll call them Properties. It can have a brief description. But that description can be in multiple languages. Likewise, it can have multiple Prices, some which are specific to Customers. Given the following data:
Product:
identifier: 123-ABC
Price:
value: $1.25
currency: USD
customer: Wal-Mart
Price:
value: $1.96
currency: USD
Description:
short: "A Widget"
language: EN
Description:
marketing: "Made from Space Age Polymers."
language: EN
Does it make sense to use STI here, and make a generic set of models:
Product has_many Properties
Property has_many Attributes
Price < Property
Description < Property
Package < Property
Is this way too broad of a generalization in the data model? Should I just stick with regular models and their associated tables?
No.
Seriously
No.
at least not in a SQL database.
If you want to use Cassandra or a NoSQL database, that's exactly how everything is stored.
Read my answer here
and
Read this
Think of a SQL Table with First Name, Last Name, and Birth date
Find all the LNAME = Page older than 30.
in one table it's
SELECT FNAME, LNAME, (SYSDATE - BDATE)/365 age
FROM people
WHERE LNAME = 'Page' and BDate < SYSDATE - 30*365
Now try it in an EAV
Post your answer.

Resources